Skip to content

Compatibility with pathlib #3925

Description

@stefan6419846

Short Description

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

Possible Labels

  • new feature
  • enhancement

Select Category

  • 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.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions