Skip to content

data_dir lacks optional build tag #193

Open
@tibdex

Description

@tibdex

This is related to #171 but this issue impacts all wheels with a build tag and data files.

For example, using the following command to create a wheel for a package named foo with version 0.4.2:

python setup.py bdist_wheel --build-number 1337

will create a wheel named foo-0.4.2-1337-py3-none-any.whl. The build_tag in:

WheelFilename = namedtuple(
"WheelFilename", ["distribution", "version", "build_tag", "tag"]
)

will be 1337.

Data files in the wheel will have paths such as foo-0.4.2-1337.data/some_folder/some_file.txt. Due to the implementation of data_dir:

@property
def data_dir(self) -> str:
"""Name of the data directory."""
return f"{self.distribution}-{self.version}.data"

we'll thus have the following variable values here:

if posixpath.commonprefix([data_dir, path]) != data_dir:

assert data_dir == "foo-0.4.2.data"
assert path == "foo-0.4.2-1337.data/some_folder/some_file.txt"
assert posixpath.commonprefix([data_dir, path]) == "foo-0.4.2"
assert posixpath.commonprefix([data_dir, path]) != data_dir
# -> the scheme is incorrectly determined as root_scheme.

Can the implementation of data_dir be changed to take into account the wheel's build tag?


Environment:

  • Python 3.9.17
  • setuptools 67.7.2
  • installer 0.7.0

Metadata

Metadata

Assignees

No one assigned

    Labels

    component: destinationsRelated to WheelDestination and friendstype: bugA confirmed bug or unintended behavior

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions