[Cython] Package names
Robert Bradshaw
robertwb at math.washington.edu
Wed Apr 1 01:38:21 CEST 2009
On Mar 31, 2009, at 1:48 PM, Lisandro Dalcin wrote:
> On Tue, Mar 31, 2009 at 3:17 PM, Stefan Behnel
> <stefan_ml at behnel.de> wrote:
>>
>> Lisandro Dalcin wrote:
>>>> 2) Should all the package names be converted to lowercase?
>>>
>>> Perhaps we should follow PEP 8 ?
>>
>> Sure. When we break stuff, make sure we only have to do it once.
>> That also
>> includes asking on python-dev what a suitable target package would
>> be for
>> the stdlib.
+1
>>>> 3) Should one perhaps distribute Cython under two seperate package
>>>> names, so that a standalone version can coexist with the one in
>>>> stdlib?
>>>> This would facilitate easy installation and usage of non-stdlib
>>>> Cython
>>>> releases. Can't come up with any good names though.
>>>
>>> 1) cython
>>> 2) cython.core
>>> 3) cython.pyximport
>>
>> Yes, one package for everything. So, what you mean is: rename the
>> current
>> Cython package to "cython.core"? Would that be for the stdlib or
>> for the
>> external package?
>>
>
> Both stdlib and external :-) ... but doing 'import cython' should not
> have the side-effect of importing 'cython.core' ... Then we could
> decide that stdlib cython.__version__ is old for a project, and
> hot-fix "sys.path" to get a newer Cython, perhaps from a ZIP file.
One thing I just realized is that we use (by necessity) some absolute
imports in the cython library, which will make having separate names
rather a pain (though manageable). Are there any other packages that
have both an internal and external version that we could learn from?
>>> and also have cython/run.py for cmd line work with -m
>>> switch, and make __init__py use that for newer Python versions that
>>> let you run packages.
>>
>> Note that those aren't that "new" anymore. What do people think about
>> dropping the "cython" frontend alltogether, and making
>>
>> python -m cython
>>
>> the official way to start the Cython compiler? I doubt that there
>> are still
>> a lot of developers who do not have access to Python 2.4 or later
>> in one
>> way or another.
>
> Stefan, the -m switch is know to be broken in Python 2.4. It does not
> work for packages. See yourself:
>
> $ python2.5 -m distutils # the output is nothing
>
> $ python2.4 -m distutils
> python2.4: module distutils has no associated file
>
> that is, 2.4 does not handle __init__.py as the associated file for
> a package..
This is motivation to keep the frontend around, though we should
still try and keep as much of the logic outside of that file as
possible.
- Robert
More information about the Cython-dev
mailing list