aboutcode-org / aboutcode-org/scancode-toolkit

Compatibility with pathlib

Open
#3,925 0 comments 2 reactions 0 assignees View on GitHub
new feature
Dominant language
Python
Stars
2.6k
Forks
791
Avg merge
1d 12h
Merged PRs (30d)
5

Description

## Short Description

SCTK should support proper path objects instead of relying on string operations for paths.

## Possible Labels

- new feature
- enhancement

## Select Category

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

## **Describe the Update**

SCTK and its sister projects currently tend to mostly rely on all paths being passed as strings. The stdlib includes the `pathlib` module which provides a proper wrapper for working with paths.

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

I am a consumer of the Python-level APIs provided by SCTK and its sister projects inside my own libraries/modules, widely relying on `pathlib.Path` for working with paths. When working on new integrations, I regularly stumble upon SCTK code which strictly expects strings and thus requires a conversion each time.

## **Possible Solution/Implementation Details**

SCTK should either support both variants properly or make object-oriented paths a first-level citizen.

## **Example/Links if Any**

My most recent encounter has been with `licensedcode.models.ignore_editor_tmp_files` where the file extension is being checked with `.endswith()`.

There already have been some discussions in #1610 and #1637 in the past, but there have been doubts about parallel compatibility for Python 2 and 3. As Python 2 is EOL for over four years now, this should not be an issue anymore. The topic is slightly related to #3487 as well - if tend to see myself searching for the correct types to pass to functions from time to time.

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

This topic covers large parts of the code base and probably should be discussed beforehand to decide how to go with it. Depending on my workload, I might be able to support with this.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.