[Fedora-packaging] Python Egg Draft 3

Panu Matilainen pmatilai at a1.balanced.postal.mail.dreamhost.com
Thu Sep 13 07:51:08 UTC 2007


On Wed, 12 Sep 2007, Toshio Kuratomi wrote:

> Panu Matilainen wrote:
>>
>> Separating the namespaces is a fundamental problem for the dependency
>> extractor. For provides this is obviously not an issue, but requires
>> need to be generated without being able to actually locate (and possibly
>> import) the actual module. Python syntax for importing egg- and regular
>> modules is the same, so they need to live in the same namespace,
>>  otherwise the manual Requires just turn into manual BuildRequires and
>> the depency extractor will be just adding syntactic sugar for nothing :)
>>
> I think I've figured out a way to make this almost work::
>  import sqlalchemy
>
> is equal to Requires python(sqlalchemy)
>
> Any of these::
>  __requires__='SQLAlchemy'
>  pkg_resources.require('SQLAlchemy')
>  requires.txt:
>    install_requires = [ 'SQLAlchemy' ]
>
> are equal to python-egg(sqlalchemy)
>
> This breaks down when thinking about what happens in this case::
>  __requires__='TurboGears'
>  import pkg_requires
>  import sqlachemy
>
> At this point you have to know whether TurboGears or anything that it
> requires has a requires.txt which includes ['SQLAlchemy'].  If it does
> we are using the egg interface to sqlalchemy.  If it doesn't we are
> using the normal interface.
>
> So, assuming we remove our patch that stops generation of egg-info files
> for distutils generated modules for F9, I agree that there isn't very
> much value for quite a bit of work.

Let me put it this way: why exactly do you want the eggs in a separate 
namespace? If using modules from them *required* using new interfaces it'd 
be a different story, but since they can be imported just like any regular 
module they should be in the same namespace. (or am I missing something 
here - I'm certainly not very familiar with the egg stuff?)

One possibility would be to *only* extract python module dependencies from 
egg modules and software using the new requires interfaces and simply 
forget about the old-style modules.

 	- Panu -




More information about the Fedora-packaging mailing list