[Zope3-dev] Zope 3 Packages vs Python Packages

Jeffrey P Shell jeffrey@cuemedia.com
Thu, 16 Jan 2003 10:20:35 -0700


On Thursday, January 16, 2003, at 09:30  AM, Steve Alexander wrote:

> Chris Withers wrote:
>> Steve Alexander wrote:
>>>> Are Zope 3 Packages and Python Packages the same thing?
>>>
>>>
>>> I don't know what a "Zope 3 package" is.
>>>
>>> A Persistent Package (as used in Zope 3) is not the same as a Python 
>>> Package.
>> That sounds liek whatan outside oberver might refer to as a 'Zope 3 
>> packacge' ;-)
>>>> If not, please can we change the name NOW?
>>>
>>>
>>> Both do the job of "packaging".
>>>
>>> "Package" is a pretty good name for both things.
>> Ugh! Is it only me who see's the potential for huge amounts of 
>> unnecessary confusion?! Python got Package first, why not call the 
>> Zope 3 things 'bundles'.
>
> Do we need a different name for Zope 3 Persistent Classes and Zope 3 
> Persistent Modules too? Perhaps 'db-behaviours' and 
> 'db-code-containers'?

If you put a Persistent Module in a Persistent Package, how do you 
address the module?  If I add a persistent package through the web 
called "jtestpack" and put a persistent module inside it called 
"jtestmod", do I refer to that module as 'jtestpack.jtestmod'?  If 
that's true, keep calling them packages.  If not, I think that's a big 
enough feature difference between Python Packages and Persistent 
Packages.



> I'm absolutely fine with Python having packages, modules and classes, 
> and with Zope 3 having persistent packages, persistent modules and 
> persistent classes.
> We expect the 'persistent' variants of these things to work a bit 
> differently to the standard python ones.

How differently will the persistent ones work?  If the difference is 
shockingly different from typical Python behavior, then yes - different 
would be good.

If Persistent packages have as much - or more - to do with 
configuration, installation, and deployment as they do with code, I 
stand by what I say above.  When you download a new module or package 
for Python, the top level piece that holds the configuration (ie, 
distutils scripts) is typically not thought of as a Python package.  
You can't just download docutils and use the root part of the tarball 
like any other python package - you have to run the setup that puts the 
appropriate packages in the right place for import.