This is a pre-production deployment of Warehouse, however changes made here WILL affect the production instance of PyPI.
Latest Version Dependencies status unknown Test status unknown Test coverage unknown
Project Description

venusianconfiguration

This package (venusianconfiguration) provides venusian based Python configuration syntax for zope.configuration as an alternative to zcml. This package does not replace zope.configuration like grok used to do, but just provides generic Python bindings for existing zope.configuration directives. So, venusianconfiguration is more an alternative to grok than it is to zope.configuration.

The current status of this package can be described as already in internal use, but maybe not yet ready for the community.

The good:

from venusianconfiguration import configure

configure.i18n.registerTranslations(directory='locales')

@configure.browser.page.klass(
    name='hello-world', for_=Interface,
    permission='zope2.View')
class HelloWorld(BrowserView):
    def __call__(self):
        return u'Hello world!'

@configure.plone.behavior.provides(
    title=_(u'My behavior),
    description=_(u'Enables magic'))
class IMyBehavior(model.Schema):
    custom_field = schema.TextLine()
alsoProvides(IMyBehavior, IFormFieldProvider)

The bad:

from venusianconfiguration import scan
from venusianconfiguration import configure

from mypackage import browser
scan(browser)

import zcmlpackage
configure.include(package=zcmlpackage)

import otherpypackage
configure.include(package=otherpypackage, file='configure.py')

import mypackage.submodule
configure.include(package=mypackage.submodule,
                  file='configure.py')

The ugly:

zope.configuration is mostly syntax-agnostic, but unfortunately ZCML has been the only implemented syntax for it and we have also used to call its ZCML-specific API directly (e.g. in test fixtures and in z3c.autoinclude).

Therefore a new zope.configuration syntax cannot be introduced outside zope.configuration without monkeypatching…

venusianconfiguration works by monkeypatching the processxmlfile method in zope.configuration’s ZCML-support to accept also Python files pass those to venusianconfiguration to process.

To support z3c.autoinclude, venusianconfiguration also monkeypatches z3c.autoincludes’s includePluginsDirective and includePluginsOveridesDirective (includeDependencies-directive is considered evil and is intentionally left unsupported).

So, three monkeypatches in total for zcml-free configuration.

Usage

[instance]
recipe = plone.recipe.zope2instance
...
eggs =
    ...
    venusianconfiguration
zope-conf-additional =
    # Enable venuasianconfiguration monkeypatches
    %import venusianconfiguration

For more examples, look into the demo-package included in the sources.

Troubleshooting

Because the configuration now written in Python, your add-on must have its namespaces packages properly defined in its setup.py. E.g. add-on called my.product would have following namespace package definition:

setup(
    ...
    namespace_packages=['my'],
    ...
 )

Even there’s no ZCML, the add-on must be registered to be configured. This can be done by adding the usual z3c.autoinclude-entrypoint into add-on’s setup.py:

setup(
    ...
    entry_points="""
    # -*- Entry points: -*-
    [z3c.autoinclude.plugin]
    target = plone
    """
)

An alternative would be to add the package into the zcml-option of your Plone instance’s buildout-part for plone.recipe.zope2instance:

[instance]
recipe=plone.recipe.zope2instance
...
zcml = my.product

Changelog

1.0.1 (2016-09-21)

  • Fix issue where zope.deferredimported module was not recognized as module [Asko Soukka]

1.0.0 (2016-04-19)

  • First release.
Release History

Release History

1.0.1

This version

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

1.0.0

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

Download Files

Download Files

TODO: Brief introduction on what you do with files - including link to relevant help section.

File Name & Checksum SHA256 Checksum Help Version File Type Upload Date
venusianconfiguration-1.0.1.tar.gz (12.8 kB) Copy SHA256 Checksum SHA256 Source Sep 21, 2016

Supported By

WebFaction WebFaction Technical Writing Elastic Elastic Search Pingdom Pingdom Monitoring Dyn Dyn DNS HPE HPE Development Sentry Sentry Error Logging CloudAMQP CloudAMQP RabbitMQ Heroku Heroku PaaS Kabu Creative Kabu Creative UX & Design Fastly Fastly CDN DigiCert DigiCert EV Certificate Rackspace Rackspace Cloud Servers DreamHost DreamHost Log Hosting