Skip to content

Allow "wheel.packages" to take a dictionary instead of an array? #669

@bennyrowland

Description

@bennyrowland

My company has a collection of Python packages that are distributed as namespace packages under a single master package name (for reasons, don't ask). Some of those packages are mainly C++ with some Python bindings and I would like to use a source layout that looks something like:

src/
    python/
        python_code.py
        python_bindings.cpp
        CMakeLists.txt
    cpp_code.cpp
    CMakeLists.txt

I can use the current wheel.packages option but then I have to add in folders for the master package and the package name inside the python folder (src/python/$COMPANY_NAME/$PACKAGE_NAME/) which feels like a lot of folders for no very good reason. If we allowed wheel.packages to be a dictionary, then presumably I could specify something like:

[tool.scikit-build.wheel.packages]
$COMPANY_NAME.$PACKAGE_NAME = "src/python"

or inline as

[tool.scikit-build]
wheel.packages = {$COMPANY_NAME.$PACKAGE_NAME = "src/python"}

I haven't really looked at how this part of the code is implemented, so I don't know how hard it would be to make this change. It falls under a "nice to have" rather than "really important" label for me, so I would have a go if it is mainly a matter of adapting the input from the toml file into the internal representation, but if it requires a wholesale rewriting of the internal path machinery then probably not worth it. @henryiii, perhaps you could comment on that?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions