In Artifactory versions 7.77 and above, you can use the File Path Name Normalization feature to bring Artifactory closer in alignment with the PyPI.org registry.
This feature helps you keep a consistent naming method for PyPI artifacts to reduce potential package name duplications due to the use of non-normalized characters.
We recommend using this feature alongside Enforce Layout: for more information, see Use Enforce Layout and Using Both File Path Name Normalization and Enforce Layout.
Backward Compatibility
File Path Name Normalization applies to all PyPI repositories in your Artifactory instance, previously uploaded packages that already exist in your instance will not be updated but if you attempt to upload a newer version or overwrite an existing one you will be prevented from doing so since the file path name does not conform to the normalization rules.
When this feature is enabled, Artifactory blocks the deployment of files with path name/distribution values that do not conform to the PyPI standard naming conventions, as specified in the Python documentation pages Source Distribution File Name and File Format.
{NAME}-{VERSION}-{OPTIONAL-PARAMETERS}.tar.gz {DISTRIBUTION}-{VERSION}-{OPTIONAL-PARAMETERS}.whl
The most common example of how this feature provides value is the prevention of Dash (-) that is considered a Reserved Character between the different segments of the naming path (name/distribution, version, optional parameters, etc.) from being used within the name/distribution segment.
For example, see whether different names would be allowed when File Path Name Normalization is enabled:
Encrypted Assertion
pypi.enforce.naming.normalization = true
Artifactory will return an error when trying to perform actions on an artifact whose name does not match the naming conventions, with a description of the issue:
Error | Description |
---|---|
403 |
|