Hi all,

  I'm working with the Akara project. It contains a web server. The server 
loads extensions from a special directory (let's say "$AKARA" for now). An 
extension can register handlers for URLs. An example extension might look like:

installs to $AKARA/spam_extension.py
(note: only .py files are supported; not even .pyc files)
=========================
from akara.services import simple_service

import my_spam # This is part of the distribution, and gets put in site-packages

@simple_service("GET", "http://vikings.protocol.id/";)
def vikings(say=my_spam.DEFAULT_TEXT):
    return my_spam.vikings(say)
=========================


We want people to be able to distribute Akara plugins and install via setup.py. 
Ideally I would like to say:

from distutils.core import setup
from akara.distutils ... I'm not sure what here ...

setup(name="Spam services",
      package="my_spam",
      akara_extensions=["spam_extension.py"]
)


To clarify, the development/distribution package looks like:
  $PACKAGE/setup.py
  $PACKAGE/README
  $PACKAGE/spam_extensions.py
  $PACKAGE/my_spam/__init__.py
  $PACKAGE/my_spam/dramatis_personae.py
  $PACKAGE/my_spam/cafe.py

and $PACKAGE/spam_extensions.py goes to $AKARA/spam_extensions.py while 
$PACKAGE/my_spam is copied to site-packages.

The installation does not need to byte-compile spam_extension.py.

It should also include spam_extension.py in any distribution that it makes.


I looked through the documentation and searched for existing examples, but 
found nothing which does this. The plugins I found used entry_points, and 
that's an architecture change which I don't think is appropriate for us.

Suggestions?

I had hoped that I could add my own cmdclasses like "build_akara" and 
"install_akara" which would get called during the correct stages of the build 
process, but that seems to be a dead end. I might be able to hack the 
"install_data" cmdclass to make it work, but that would prevent anyone from 
using it in their own setup.py distributions.


                                Andrew
                                da...@dalkescientific.com


_______________________________________________
Distutils-SIG maillist  -  Distutils-SIG@python.org
http://mail.python.org/mailman/listinfo/distutils-sig

Reply via email to