dash/underscore on name of package uploaded on pypi
Terry Reedy
tjreedy at udel.edu
Thu Feb 28 16:07:36 EST 2019
On 2/28/2019 11:09 AM, ast wrote:
> Hello
>
> I just uploaded a package on pypi, whose name is "arith_lib"
>
> The strange thing is that on pypi the package is renamed "arith-lib"
> The underscore is substitued with a dash
>
> If we search for this package:
>
> pip search arith
>
> arith-lib (2.0.0) - A set of functions for miscellaneous arithmetic
> (so a dash)
>
> For installation both:
>
> pip install -U arith_lib
> pip install -U arith-lib
>
> are working well
>
> and in both case I got a directory with an underscore
>
> C:\Program Files\Python36-32\Lib\site-packages
>
> 28/02/2019 16:57 <REP> arith_lib
> 28/02/2019 16:57 <REP> arith_lib-2.0.0.dist-info
>
> What happens ?
To expand on Paul's answer.
English uses '-' both as a connector for compound names and as a
subtraction operator. Context usually makes the choice obvious. But
context-free parsers must choose just one, and for computation,
subtraction wins. 'arith-lib' is parsed as (arith) - (lib). Many
algorithm languages use '_' instead of '-' as the compounder for
identifiers (object names).
In addition, Python uses filenames -(minus) '.py' as identifiers for
imported modules. So if the repository allows '-' in package names,
installers must convert '-' to '_'. But if the repository allows
'arith_lib' and 'arith-lib' to be distinct names for different packages,
both would be installed with the same file name. So the repository
standardizes on one form, and it went with English instead of Pythonese.
--
Terry Jan Reedy
More information about the Python-list
mailing list