本文整理汇总了Python中zope.annotation.factory函数的典型用法代码示例。如果您正苦于以下问题:Python factory函数的具体用法?Python factory怎么用?Python factory使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了factory函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Python代码示例。
示例1: test_factory_no_location
def test_factory_no_location(self):
getAnnotation = factory(Target)
context = Context()
target = getAnnotation(context)
# Several things have happened now.
# First, we have an annotation, derived from
# our class name
key = 'zope.annotation.tests.test_factory.Target'
self.assertEqual([key],
list(context))
# Second, a target object is stored at that location.
self.assertEqual(type(context[key]), Target)
# Third, the returned object is an ILocation, rooted at the
# parent and having the given name.
self.assertTrue(ILocation.providedBy(target))
self.assertIs(target.__parent__, context)
self.assertEqual(target.__name__, key)
# But it's a proxy.
self.assertNotEqual(type(target), Target)
self.assertTrue(ITarget.providedBy(target))
开发者ID:zopefoundation,项目名称:zope.annotation,代码行数:26,代码来源:test_factory.py
示例2: note_factory
def note_factory(klass, key):
"""\
Named Annotation Factory maker specific for PMR2 annotations
"""
key = PREFIX + key
return factory(klass, key)
开发者ID:metatoaster,项目名称:pmr2.app,代码行数:7,代码来源:factory.py
示例3: test_factory_location
def test_factory_location(self):
# Given an object that is a location,
# it is not proxied
@interface.implementer(ILocation)
class LocatedTarget(Target):
__name__ = None
__parent__ = None
getAnnotation = factory(LocatedTarget)
context = Context()
target = getAnnotation(context)
key = 'zope.annotation.tests.test_factory.LocatedTarget'
self.assertEqual([key],
list(context))
# Second, a target object is stored at that location.
self.assertEqual(type(context[key]), LocatedTarget)
# Third, the returned object is an ILocation, rooted at the
# parent and having the given name.
self.assertTrue(ILocation.providedBy(target))
self.assertIs(target.__parent__, context)
self.assertEqual(target.__name__, key)
# And it's not a proxy.
self.assertEqual(type(target), LocatedTarget)
self.assertTrue(ITarget.providedBy(target))
self.assertIs(target, context[key])
开发者ID:zopefoundation,项目名称:zope.annotation,代码行数:30,代码来源:test_factory.py
示例4: settings_factory
def settings_factory(klass, name, title=None, fields=None):
key = PREFIX + name
result = factory(klass, key)
result.name = result.title = name
if title is not None:
result.title = title
result.fields = fields
return result
开发者ID:metatoaster,项目名称:pmr2.app,代码行数:8,代码来源:settings.py
示例5: test_factory_with_key
def test_factory_with_key(self):
key = 'testkey'
getAnnotation = factory(Target, key)
context = Context()
getAnnotation(context)
self.assertEqual([key],
list(context))
# Second, a target object is stored at that location.
self.assertEqual(type(context[key]), Target)
开发者ID:zopefoundation,项目名称:zope.annotation,代码行数:13,代码来源:test_factory.py
示例6: SolgemaRichMenuAttributesAdapter
from plone.memoize.ram import global_cache
from plone.app.layout.navigation.defaultpage import isDefaultPage
from Solgema.RichMenu.interfaces import ISolgemaRichMenuAttributes, ISolgemaRichMenuMarker
from Solgema.RichMenu.config import _
LOG = logging.getLogger('Solgema.RichMenu')
class SolgemaRichMenuAttributesAdapter(Persistent):
implements(ISolgemaRichMenuAttributes)
component.adapts(interface.Interface)
def __init__(self):
for iface in list(directlyProvidedBy(self)):
for field in [iface.get(name) for name in iface.names() if schema.interfaces.IField.providedBy(iface.get(name))]:
setattr(self, field.__name__, field.default)
SolgemaRichMenuAttributes = factory(SolgemaRichMenuAttributesAdapter)
class z3cManageSolgemaRichMenuAttributes(form.EditForm):
label = _('Rich Menu parameters')
@property
def fields(self):
fields = field.Fields(ISolgemaRichMenuAttributes)
portal_quickinstaller = getToolByName(self.context, 'portal_quickinstaller')
if has_p5 and has_rel and portal_quickinstaller.isProductInstalled('plone.app.widgets'):
fields['section_menu_item'].widgetFactory[INPUT_MODE] = RelatedItemsFieldWidget
elif not has_p5 and not has_rel and has_ctree:
fields['section_menu_item'].widgetFactory[INPUT_MODE] = ContentTreeFieldWidget
return fields
开发者ID:Martronic-SA,项目名称:Solgema.RichMenu,代码行数:30,代码来源:content.py
示例7: ISettings
from zope.annotation.interfaces import IAttributeAnnotatable
from zope.annotation import factory
from zope import component
from zope import interface
from zope import schema
from collective.rcse.settings import getDefaultSettings
class ISettings(interface.Interface):
settings = schema.Dict(
title=u"Settings",
key_type=schema.ASCIILine(),
value_type=schema.ASCIILine()
)
class Settings(object):
interface.implements(ISettings)
component.adapts(IAttributeAnnotatable)
def __init__(self):
self.settings = getDefaultSettings()
SettingsFactory = factory(Settings)
开发者ID:collective,项目名称:collective.rcse,代码行数:26,代码来源:settings.py
示例8: list
email_list = self._user_email_lists.get(login, ())
if not email_list:
return
if not emails:
# remove all user's email addresses.
emails = list(email_list)
for email in emails:
try:
self._email_to_login.pop(email, None)
email_list.remove(email)
except ValueError:
pass
def get_emails_for(self, login):
"""
Return all emails for this login.
"""
return sorted(self._user_email_lists.get(login, []))
def get_login_for(self, email):
"""
Return the login for this email address.
"""
return self._email_to_login.get(email, None)
EmailManagerFactory = factory(EmailManager)
开发者ID:PMR2,项目名称:pmr2.users,代码行数:30,代码来源:email.py
示例9: Responsibility
# 2010 Ilshad Khabibullin <[email protected]>
from persistent import Persistent
from zope.interface import implements
from zope.component import adapts
from zope.component import getUtility
from zope.annotation import factory
from zope.schema.fieldproperty import FieldProperty
from zope.authentication.interfaces import IAuthentication
from zope.authentication.interfaces import PrincipalLookupError
from interfaces import IResponsibility
from interfaces import IIssue
class Responsibility(Persistent):
implements(IResponsibility)
adapts(IIssue)
responsible = FieldProperty(IResponsibility["responsible"])
def get_principal(self):
auth = getUtility(IAuthentication)
if self.responsible is None:
return None
try:
return auth.getPrincipal(self.responsible)
except PrincipalLookupError:
return None
annotation_factory = factory(Responsibility)
开发者ID:ilshad,项目名称:tacklets,代码行数:29,代码来源:responsibility.py
示例10: IRecaptchaInfo
class IRecaptchaInfo(Interface):
error = schema.TextLine()
verified = schema.Bool()
class RecaptchaInfoAnnotation(object):
implements(IRecaptchaInfo)
adapts(IBrowserRequest)
def __init__(self):
self.error = None
self.verified = False
RecaptchaInfo = factory(RecaptchaInfoAnnotation)
class RecaptchaView(BrowserView):
def __init__(self, context, request):
self.context = context
self.request = request
self.settings = getRecaptchaSettings()
def image_tag(self):
portal_state = queryMultiAdapter(
(self.context, self.request), name=u'plone_portal_state')
if portal_state is not None:
lang = portal_state.language()[:2]
else:
开发者ID:collective,项目名称:collective.recaptcha,代码行数:29,代码来源:view.py
示例11: getToolByName
"""Make the adapter penetratable for the vocabulary to find the cat"""
return getToolByName(getSite(), 'portal_catalog')
@property
def portal_url(self):
"""Make the adapter penetratable for the vocabulary to find the cat"""
return getToolByName(getSite(), 'portal_url')
urls = []
class LinkList(LinkListBase):
implements(ILinkList, ILinkListDocument)
adapts(IATDocument)
linklist_adapter_document = factory(LinkList)
class LinkListFolder(LinkListBase):
implements(ILinkList, ILinkListFolder)
adapts(IATFolder)
linklist_adapter_folder = factory(LinkListFolder)
class LinkCollectionForm(form.PageEditForm):
form_fields = form.Fields(ILinkList)
label = u"Add Content Objects to point to"
form_fields['urls'].custom_widget = UberMultiSelectionWidget
@form.action(_("Apply"))
开发者ID:collective,项目名称:slc.linkcollection,代码行数:31,代码来源:linkbox_edit.py
示例12: add
def add(self, subscription):
self.subscriptions[self._next_id] = subscription
self._next_id += 1
def remove(self, n):
del self.subscriptions[n]
def list_with_keys(self):
for n, subscription in self.subscriptions.iteritems():
yield n, subscription
def __iter__(self):
for subscription in self.subscriptions.itervalues():
yield subscription
subscription_container_factory = annotation.factory(SubscriptionContainer)
class AccountSubscription(object):
interface.implements(ISubscription)
def __init__(self, user_id, notif_type, lang):
self.user_id = user_id
self.lang = lang
self.notif_type = notif_type
def check_permission(self, obj):
acl_users = obj.getSite().getAuthenticationTool()
user = acl_users.get_user_with_userid(self.user_id)
if user is None:
return False
开发者ID:bogtan,项目名称:Naaya,代码行数:31,代码来源:NotificationTool.py
示例13: TypeError
'location is not a workspace container')
else:
raise TypeError('the content returned is not a user workspace '
'container')
return obj
def getExposureContainer(self):
return self.siteManagerUnrestrictedTraverse(
self.default_exposure_subpath)
def siteManagerUnrestrictedTraverse(self, subpath):
sm = getSiteManager(self)
path = '../%s' % subpath
return sm.unrestrictedTraverse(str(path), None)
PMR2GlobalSettings = factory(PMR2GlobalSettingsAnnotation)
def _make_default_path():
# While ${SOFTWARE_HOME} is typically standard "default" location
# for application specific files, this product is normally installed
# via buildout, hence this directory will be recreated on each
# reinstall. This basically makes it a bad choice for storing any
# persistent information as they will be unlinked every upgrade.
# The ${CLIENT_HOME} is more stable, however it might not exist, so
# we will have fallback.
suffix = 'pmr2'
envvar = ['CLIENT_HOME', 'SOFTWARE_HOME']
for v in envvar:
开发者ID:metatoaster,项目名称:pmr2.app,代码行数:31,代码来源:settings.py
示例14: WorkspaceRDFInfo
import zope.interface
import zope.component
from zope.schema import fieldproperty
from zope.annotation.interfaces import IAttributeAnnotatable
from zope.annotation import factory
from zope.container.contained import Contained
from persistent import Persistent
from pmr2.virtuoso.interfaces import IWorkspaceRDFInfo
@zope.component.adapter(IAttributeAnnotatable)
@zope.interface.implementer(IWorkspaceRDFInfo)
class WorkspaceRDFInfo(Persistent, Contained):
paths = fieldproperty.FieldProperty(IWorkspaceRDFInfo['paths'])
WorkspaceRDFInfoFactory = factory(WorkspaceRDFInfo)
开发者ID:PMR2,项目名称:pmr2.virtuoso,代码行数:19,代码来源:workspace.py
示例15: super
super(StagingRelationValue, self).__init__(to_id)
self.staging_properties = PersistentDict()
# remember the creator
portal = getUtility(ISiteRoot)
mstool = getToolByName(portal, 'portal_membership')
self.creator = mstool.getAuthenticatedMember().getId()
class Storage(Persistent):
implements(IWCAnnotator)
adapts(IDexterityContent)
def __init__(self):
super(Storage, self).__init__()
self._data = None
def set_relation(self, value):
# dewrap __parent__ attribute,
# CMFEdition cannot pickle wrapped objects
value.__parent__ = aq_base(value.__parent__)
self._data = value
def get_relation(self):
return self._data
def delete(self):
self._data = None
WCAnnotator = factory(Storage)
开发者ID:abstract-open-solutions,项目名称:plone.app.stagingbehavior,代码行数:30,代码来源:relation.py
示例16: import
import orm
from schema import metadata
from domain import User, Minister
from domain import (GroupMembership, Group, Government, Parliament,
PoliticalParty, Ministry, Committee, CommitteeType, CommitteeTypeStatus
)
from domain import (GroupSitting, GroupSittingType, GroupSittingAttendance,
AttendanceType
)
from domain import ParliamentSession, PoliticalGroup
from domain import (Question, QuestionVersion, QuestionChange, QuestionType,
ResponseType
)
from domain import Motion, MotionVersion, MotionChange
from domain import Bill, BillVersion, BillChange, BillType
from domain import Constituency, Parliament
from domain import Country, Region, Province
from domain import MemberOfParliament, MemberElectionType
from domain import TitleType, MemberTitle
from domain import ItemSchedule
from domain import AddressType, GroupAddress, UserAddress, PostalAddressType
from zope.annotation import factory
from zope import component
from roles import SubRoleAnnotations
component.provideAdapter(factory(SubRoleAnnotations))
开发者ID:BenoitTalbot,项目名称:bungeni-portal,代码行数:29,代码来源:__init__.py
示例17: FavoritingStorage
)
class FavoritingStorage(object):
interface.implements(IFavoritingStorage)
component.adapts(IAttributeAnnotatable)
def __init__(self):
"""
Note that the annotation implementation does not expect any arguments
to its `__init__`. Otherwise it's basically an adapter.
"""
self.favoritedby = []
FavoritingStorageFactory = factory(FavoritingStorage)
class FavoritingManager(BrowserView):
"""implementation of IFavoriting using annotation + portal_catalog"""
interface.implements(IFavoritingManager)
def __init__(self, context, request):
self.context = context
self.request = request
self.userid = None
self.membership = None
self.catalog = None
self.favorites = []
self.storage = None
开发者ID:toutpt,项目名称:collective.favoriting,代码行数:30,代码来源:storage.py
示例18: LayoutSettings
from cellml.theme.vocab import get_layout
class LayoutSettings(Persistent):
"""
Maps between the two thing,
"""
interface.implements(ILayoutSettings)
component.adapts(interface.Interface)
layout = fieldproperty.FieldProperty(ILayoutSettings['layout'])
def get_layout(self, sl, sr):
"""
Return the layout name.
"""
leftcolumn, rightcolumn, bothcolumns = get_layout(self.layout)
# a simple truth table to figure this out.
return {
(False, False): u'layoutZero',
(True, False): leftcolumn,
(False, True): rightcolumn,
(True, True): bothcolumns,
}[(sl, sr)]
LayoutSettingsFactory = factory(LayoutSettings)
开发者ID:PMR2,项目名称:cellml.theme,代码行数:30,代码来源:content.py
示例19: Subscription
from zope.interface import implements
from zope.annotation import factory
from tackle.interfaces import ISubscription, ISubscribable
from tackle.profile import get_profile
from tackle.smtp import send_mail
class Subscription(Persistent):
implements(ISubscription)
adapts(ISubscribable)
def __init__(self):
self.subscribers = OOTreeSet()
def subscribe(self, principal_id):
self.subscribers.insert(principal_id)
def unsubscribe(self, principal_id):
self.subscribers.remove(principal_id)
def send(self, message, subject):
for pid in self.subscribers.keys():
profile = get_profile(pid, "basic")
send_mail(message, subject, profile.email)
annotation_factory = factory(Subscription)
def subscribe(ob, event):
subscription = ISubscription(event.context)
subscription.send(event.message)
开发者ID:ilshad,项目名称:tackle,代码行数:30,代码来源:subscription.py
示例20: OdooPasSettingsAdapter
# -*- coding: utf-8 --
import logging
from persistent import Persistent
from zope import component, schema
from zope.interface import implementer, provider
from zope.component import adapter
from zope.annotation import factory
from Products.CMFCore.interfaces import ISiteRoot
import interfaces
LOG = logging.getLogger(__name__)
@implementer(interfaces.IOdooPasSettings)
@adapter(ISiteRoot)
class OdooPasSettingsAdapter(Persistent):
def __init__(self, **kwargs):
iface = interfaces.IOdooPasSettings
for field in [iface.get(name) for name in iface.names() if schema.interfaces.IField.providedBy(iface.get(name))]:
setattr(self, field.__name__, kwargs.get(field.__name__, field.default))
OdooPasSettings = factory(OdooPasSettingsAdapter)
开发者ID:collective,项目名称:collective.odoo.pas,代码行数:22,代码来源:adapters.py
注:本文中的zope.annotation.factory函数示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论