Skip to main content

Provides a formalism for marking adapter specifications as discriminators.

Project description

Overview

z3c.discriminator provides a formalism for marking adapter specifications as discriminators in the sense that they will be used only for adapter lookup, not instantiation.

Using z3c.discriminator

To mark one or more interfaces as discriminators in a provideAdapter call, simply wrap your interface with the discriminator method:

>>> from z3c.discriminator import discriminator
>>> provideAdapter(MyAdapter, (IFoo, discriminator(IBar)))

To do the same in a Zope configuration file, prefix your dotted path with a dash like so:

<adapter for=”IFoo -IBar” factory=”some.package.YourFactory” />

Note that any interface in the declaration can be made a discriminator; they need not come in any particular order.

In your factory definition, simply require only the arguments that correspond to non-discriminator specifications, e.g.

class GetsOnlyFoo(object):
def __init__(self, foo):

-or-

def gets_only_bar(bar):

Changelog

Version 0.2 - November 26, 2007

  • Discriminator machinery is now introduced globally by patching the global adapter registry and the GlobalObject configuration field.

    The discriminator method now returns an interface that is in all aspects equal to the discriminated interface except it’s marked as a discriminator.

    Test suite have been expanded by including the entire test suite from zope.component. [malthe]

Version 0.1 - November 23, 2007

  • First public release [malthe]

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

z3c.discriminator-0.2.tar.gz (4.4 kB view details)

Uploaded Source

Built Distribution

z3c.discriminator-0.2-py2.4.egg (9.0 kB view details)

Uploaded Source

File details

Details for the file z3c.discriminator-0.2.tar.gz.

File metadata

File hashes

Hashes for z3c.discriminator-0.2.tar.gz
Algorithm Hash digest
SHA256 0fce6e7fa74c4dec4d14c5b604402cfe202566ae7c9d82eefa29796529d9fb72
MD5 cc07d24681b82bd71c4cb01cb5381934
BLAKE2b-256 11488ea87bf525797c2919b58f146bee412c2e52481eac5a903d2b060d6fef37

See more details on using hashes here.

File details

Details for the file z3c.discriminator-0.2-py2.4.egg.

File metadata

File hashes

Hashes for z3c.discriminator-0.2-py2.4.egg
Algorithm Hash digest
SHA256 f02ed21dd41b6de21b6b5c07f01c53a0c70d45c5818d7b3f1891e0b088e3093b
MD5 c9f86b9d38577236886535afdec1340b
BLAKE2b-256 24762701a11aab361e1f7f80c21004c19f7b01c5491cd4a3d870d27557bcddba

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page