aboutcode-org / aboutcode-org/scancode-toolkit

Handling of run-specific temporary directories when using as library

Ouverte
#3,431 3 commentaires 2 réactions 0 personnes assignées Voir sur GitHub
new feature
Langage dominant
Python
Étoiles
2.6k
Forks
791
Merge moyen
1 j 12 h
PR mergées (30 j)
5

Description

## Short Description

Running *scancode* as a library will generate run-specific temporary directories, which are never cleaned up.

## Possible Labels

- new feature

## Select Category

- [X] Enhancement
- [ ] Add License/Copyright
- [ ] Scan Feature
- [ ] Packaging
- [ ] Documentation
- [ ] Expand Support
- [ ] Other

## **Describe the Update**

There is a documented/automated way to clean the temporary directories after each run (or it happens automatically) as soon as they are not used any more.

## **How This Feature will help you/your organization**

Writing custom wrappers around *scancode* functionality without using the CLI requires manual cleanup of temporary directories, which seems to be undocumented and might unnecessarily use/block space on the hard drive.

## **Possible Solution/Implementation Details**

There should be clear documentation for the public(?) API in `scancode.api` that manual cleanup as in https://github.com/nexB/scancode-toolkit/blob/a29ae817d95296146ba8ac5bd94ed043d541cdc6/src/scancode/cli.py#L1021-L1035 is required.

Alternatively, *scancode* should automatically register the corresponding directories for cleanup during exit or provide a corresponding context manager to simplify usage.

## **Example/Links if Any**

I am currently using `atexit.register(fileutils.delete, scancode_config.scancode_temp_dir)` in every parallel processing unit after noticing the behavior.

## **Can you help with this Feature**

Maybe. I am not sure about general use cases, but for now *scancode* does not seem to have any explicit documentation on library usage or on a public API anyway.

Guide de contribution

Ouvrir le guide de contribution

Évaluation

Cette issue n'a pas encore été évaluée.

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.