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
[email protected]
_______________________________________________
Distutils-SIG maillist - [email protected]
http://mail.python.org/mailman/listinfo/distutils-sig