linkedin / pygradle

Using Gradle to build Python projects
https://github.com/linkedin/pygradle
Apache License 2.0
586 stars 147 forks source link

Ivy and PyPi module, file names compatibility #341

Open BrainLogic opened 4 years ago

BrainLogic commented 4 years ago

Fix for the following issue: for PiPy modules that have non-equal file and module names, ivy metafiles will be generated incorrectly. Because when Importer generates dependencies part of ivy file, it takes module name from name field of PyPi meta but when Importer creates directories and artifact file itself, directory name and file name are created from filename field of PyPi meta, and these two configuration aspects can be different. It means that ivy cannot find files for specified dependencies.

for instance, I was trying to add mypy library https://pypi.org/pypi/mypy/json Importer created dependencies like this:

<dependencies defaultconfmapping="*->default">
    <dependency org="pypi" name="typed-ast" rev="1.4.0" conf="default" />
    <dependency org="pypi" name="typing-extensions" rev="3.7.4" conf="default" />
    <dependency org="pypi" name="mypy-extensions" rev="0.4.3" conf="default" />
</dependencies>

but directories and file names have been created with underscore mypy_extensions.

In the fix, module name, directory name and file name are created from the same value of the name field of PyPi metafile (ex. https://pypi.org/pypi/mypy/json).

BrainLogic commented 4 years ago

@zvezdan please help to review and merge this PR