[Catalog-sig] [Announce] Distutils Catalog Prototype

Robin Dunn robin@alldunn.com
Mon, 26 Feb 2001 15:54:03 -0800

> Hi Guys,
> I finally got off my butt and built a distutils catalog prototype. Now
> for a limited time you can get to it at
> This is a Zope site that allows you to upload distutils archives and
> search them. I added a basic HTML and XML interface. The XML interface
> should be used by command-line clients. The user name and password for
> uploading are both 'guest'. I am going to remove this account in a
> couple days since it is fundamentally insecure. I mostly want to post
> this now so folks can see what I'm doing. If you want to play with the
> prototype more, get Zope 2.3 and install the
> DistutilsArchive20010226.tgz file.
> I've preloaded the site with one archive (distutils 1.0.1). Try out the
> site by uploading your own archives. If the site can't parse them take a
> look in Parse.py and figure out what the problem is and send me a patch.
> Issues
>   * Executing setup.py to find meta-data is insecure. Plus I've found
> that many existing distutils archives don't actually expose the
> meta-data very well this way. I propose that we fix this by having
> distutils write a meta-data file when you build an archive.

This sounds like a good idea.  It would probably be useful for other things
as well.

>   * What API would command-line tools like? XML in some home-cooked DTD?
> Maybe XML-RPC?

Definitily XML-RPC.  It's so easy to use from the client side that it
doesn't make sense to NOT have it IMHO.  That isn't to say that some other
format in addition to XML-RPC shouldn't be done too, both may make sense.

> Let me know what you think!

I don't have time to debug it right now (maybe later) but if you try to load
this file:

then you get this error:

      Zope Error
      Zope has encountered an error while publishing this resource.

      Error Type: ParseError
      Error Value: Archive does not contain a setup.py file


Traceback (innermost last):
  File /home/amos/DistSite/lib/python/ZPublisher/Publish.py, line 223, in
  File /home/amos/DistSite/lib/python/ZPublisher/Publish.py, line 187, in
  File /home/amos/DistSite/lib/python/Zope/__init__.py, line 221, in
  File /home/amos/DistSite/lib/python/ZPublisher/Publish.py, line 171, in
  File /home/amos/DistSite/lib/python/ZPublisher/mapply.py, line 160, in
    (Object: addMethod)
  File /home/amos/DistSite/lib/python/ZPublisher/Publish.py, line 112, in
    (Object: addMethod)
  File /home/amos/DistSite/lib/python/Products/DistutilsArchive/Archive.py,
line 25, in addMethod
  File /home/amos/DistSite/lib/python/Products/DistutilsArchive/Archive.py,
line 84, in update
    (Object: RoleManager)
  File /home/amos/DistSite/lib/python/Products/DistutilsArchive/Parse.py,
line 63, in parse_meta_data
ParseError: (see above)

The archive does have a setup.py.

Robin Dunn
Software Craftsman
robin@AllDunn.com       Java give you jitters?
http://wxPython.org      Relax with wxPython!