Hello community, here is the log from the commit of package python-zope.component for openSUSE:Factory checked in at 2020-08-01 12:29:06 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/python-zope.component (Old) and /work/SRC/openSUSE:Factory/.python-zope.component.new.3592 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-zope.component" Sat Aug 1 12:29:06 2020 rev:9 rq:822053 version:4.6.2 Changes: -------- --- /work/SRC/openSUSE:Factory/python-zope.component/python-zope.component.changes 2020-04-07 10:21:18.389828140 +0200 +++ /work/SRC/openSUSE:Factory/.python-zope.component.new.3592/python-zope.component.changes 2020-08-01 12:29:20.694353837 +0200 @@ -1,0 +2,6 @@ +Tue Jul 21 09:07:11 UTC 2020 - Marketa Calabkova <mcalabk...@suse.com> + +- update to version 4.6.2 + * Improve the documentation, both published and in docstrings. + +------------------------------------------------------------------- Old: ---- zope.component-4.6.1.tar.gz New: ---- zope.component-4.6.2.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ python-zope.component.spec ++++++ --- /var/tmp/diff_new_pack.NI3IDi/_old 2020-08-01 12:29:26.322359106 +0200 +++ /var/tmp/diff_new_pack.NI3IDi/_new 2020-08-01 12:29:26.326359110 +0200 @@ -27,7 +27,7 @@ %bcond_with test %endif Name: python-zope.component%{psuffix} -Version: 4.6.1 +Version: 4.6.2 Release: 0 Summary: Zope Component Architecture ++++++ zope.component-4.6.1.tar.gz -> zope.component-4.6.2.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/zope.component-4.6.1/CHANGES.rst new/zope.component-4.6.2/CHANGES.rst --- old/zope.component-4.6.1/CHANGES.rst 2020-03-23 14:02:44.000000000 +0100 +++ new/zope.component-4.6.2/CHANGES.rst 2020-07-03 17:25:02.000000000 +0200 @@ -2,6 +2,13 @@ Changes ========= +4.6.2 (2020-07-03) +================== + +- Improve the documentation, both published and in docstrings. See `PR + 49 <https://github.com/zopefoundation/zope.component/pull/49>`_. + + 4.6.1 (2020-03-23) ================== diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/zope.component-4.6.1/PKG-INFO new/zope.component-4.6.2/PKG-INFO --- old/zope.component-4.6.1/PKG-INFO 2020-03-23 14:02:45.246509000 +0100 +++ new/zope.component-4.6.2/PKG-INFO 2020-07-03 17:25:03.111320700 +0200 @@ -1,6 +1,6 @@ Metadata-Version: 2.1 Name: zope.component -Version: 4.6.1 +Version: 4.6.2 Summary: Zope Component Architecture Home-page: https://github.com/zopefoundation/zope.component Author: Zope Foundation and Contributors @@ -45,6 +45,13 @@ Changes ========= + 4.6.2 (2020-07-03) + ================== + + - Improve the documentation, both published and in docstrings. See `PR + 49 <https://github.com/zopefoundation/zope.component/pull/49>`_. + + 4.6.1 (2020-03-23) ================== diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/zope.component-4.6.1/docs/api/adapter.rst new/zope.component-4.6.2/docs/api/adapter.rst --- old/zope.component-4.6.1/docs/api/adapter.rst 2020-03-23 14:02:44.000000000 +0100 +++ new/zope.component-4.6.2/docs/api/adapter.rst 2020-07-03 17:25:02.000000000 +0200 @@ -1,15 +1,24 @@ -Adapter Registration APIs -========================= +=========================== + Adapter Registration APIs +=========================== + +This document covers a specific subset of the APIs in :mod:`zope.component`. + +.. currentmodule:: zope.component .. testsetup:: from zope.component.testing import setUp setUp() -.. autofunction:: zope.component.provideUtility +.. autofunction:: zope.component.provideAdapter + +.. autofunction:: zope.component.provideHandler + +.. autofunction:: zope.component.provideSubscriptionAdapter Conforming Adapter Lookup -------------------------- +========================= .. autofunction:: zope.component.getAdapterInContext @@ -21,7 +30,7 @@ If so, the object is returned immediately. Otherwise, the adapter factory is looked up in the site manager, and called. -Let's start by creating a component that supports the `__conform__()` method: +Let's start by creating a component that supports the ``__conform__()`` method: .. doctest:: @@ -39,14 +48,14 @@ to use in these tests. We now have to create a site manager (other than the default global one) -with which we can register adapters for `I1`. +with which we can register adapters for ``I1``. .. doctest:: >>> from zope.component.globalregistry import BaseGlobalComponents >>> sitemanager = BaseGlobalComponents() -Now we create a new `context` that knows how to get to our custom site +Now we create a new ``context`` that knows how to get to our custom site manager. .. doctest:: @@ -111,7 +120,7 @@ 43 Named Adapter Lookup --------------------- +==================== .. autofunction:: zope.component.getAdapter @@ -141,7 +150,7 @@ >>> queryAdapter(ob, I2, '', '<default>') '<default>' -The 'requires' argument to `registerAdapter` must be a sequence, rather than +The 'requires' argument to ``registerAdapter`` must be a sequence, rather than a single interface: .. doctest:: @@ -154,7 +163,7 @@ ... TypeError: the required argument should be a list of interfaces, not a single interface -After register an adapter from `I1` to `I2` with the global site manager: +After register an adapter from ``I1`` to ``I2`` with the global site manager: .. doctest:: @@ -208,10 +217,10 @@ True Invoking an Interface to Perform Adapter Lookup ------------------------------------------------ +=============================================== :mod:`zope.component` registers an adapter hook with -:mod:`zope.interface.interface`, allowing a convenient spelling for +`zope.interface.interface.adapter_hooks`, allowing a convenient spelling for adapter lookup: just "call" the interface, passing the context: .. doctest:: @@ -241,10 +250,10 @@ True Registering Adapters For Arbitrary Objects ------------------------------------------- +========================================== Providing an adapter for None says that your adapter can adapt anything -to `I2`. +to ``I2``. .. doctest:: @@ -267,7 +276,7 @@ True Looking Up Adapters Using Multiple Objects ------------------------------------------- +========================================== .. autofunction:: zope.component.getMultiAdapter @@ -284,7 +293,7 @@ As with regular adapters, if an adapter isn't registered for the given objects and interface, the :func:`~zope.component.getMultiAdapter` API -raises `ComponentLookupError`: +raises `zope.interface.interfaces.ComponentLookupError`: .. doctest:: @@ -342,7 +351,7 @@ Finding More Than One Adapter ------------------------------ +============================= .. autofunction:: zope.component.getAdapters @@ -388,17 +397,17 @@ Subscription Adapters ---------------------- +===================== .. autofunction:: zope.component.subscribers Event handlers --------------- +============== .. autofunction:: zope.component.handle Helpers for Declaring / Testing Adapters ----------------------------------------- +======================================== .. autofunction:: zope.component.adapter diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/zope.component-4.6.1/docs/api/hooks.rst new/zope.component-4.6.2/docs/api/hooks.rst --- old/zope.component-4.6.1/docs/api/hooks.rst 1970-01-01 01:00:00.000000000 +0100 +++ new/zope.component-4.6.2/docs/api/hooks.rst 2020-07-03 17:25:02.000000000 +0200 @@ -0,0 +1,8 @@ +========================================================== + ``zope.component.hooks``: The current component registry +========================================================== + +.. seealso:: :doc:`../hooks` for narrative documentation and examples. + +.. automodule:: zope.component.hooks + :noindex: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/zope.component-4.6.1/docs/api/module.rst new/zope.component-4.6.2/docs/api/module.rst --- old/zope.component-4.6.1/docs/api/module.rst 1970-01-01 01:00:00.000000000 +0100 +++ new/zope.component-4.6.2/docs/api/module.rst 2020-07-03 17:25:02.000000000 +0200 @@ -0,0 +1,12 @@ +============================================ + ``zope.component``: Module-level functions +============================================ + +This document provides a summary of the APIs available directly from +``zope.component``. For more details, see the remaining documentation. + +.. These are generally explored in more detail in + specific documentation, so default indexing should go + to that instead of here. +.. automodule:: zope.component + :noindex: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/zope.component-4.6.1/docs/api/utility.rst new/zope.component-4.6.2/docs/api/utility.rst --- old/zope.component-4.6.1/docs/api/utility.rst 2020-03-23 14:02:44.000000000 +0100 +++ new/zope.component-4.6.2/docs/api/utility.rst 2020-07-03 17:25:02.000000000 +0200 @@ -1,5 +1,8 @@ -Utility Registration APIs -========================= +=========================== + Utility Registration APIs +=========================== + +.. autofunction:: zope.component.provideUtility .. autofunction:: zope.component.getUtility @@ -56,7 +59,7 @@ Named Utilities ---------------- +=============== Registering a utility without a name does not mean that it is available when looking for the utility with a name: @@ -84,7 +87,7 @@ True Querying Multiple Utilities ---------------------------- +=========================== .. autofunction:: zope.component.getUtilitiesFor @@ -159,7 +162,7 @@ Delegated Utility Lookup ------------------------- +======================== .. autofunction:: zope.component.getNextUtility diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/zope.component-4.6.1/docs/api.rst new/zope.component-4.6.2/docs/api.rst --- old/zope.component-4.6.1/docs/api.rst 2020-03-23 14:02:44.000000000 +0100 +++ new/zope.component-4.6.2/docs/api.rst 2020-07-03 17:25:02.000000000 +0200 @@ -1,10 +1,12 @@ -:mod:`zope.component` API Reference -=================================== +===================================== + ``zope.component`` API Reference +===================================== .. toctree:: :maxdepth: 2 + api/module api/interfaces api/sitemanager api/utility @@ -13,3 +15,4 @@ api/interface api/security api/persistent + api/hooks diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/zope.component-4.6.1/docs/changelog.rst new/zope.component-4.6.2/docs/changelog.rst --- old/zope.component-4.6.1/docs/changelog.rst 1970-01-01 01:00:00.000000000 +0100 +++ new/zope.component-4.6.2/docs/changelog.rst 2020-07-03 17:25:02.000000000 +0200 @@ -0,0 +1 @@ +.. include:: ../CHANGES.rst diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/zope.component-4.6.1/docs/hooks.rst new/zope.component-4.6.2/docs/hooks.rst --- old/zope.component-4.6.1/docs/hooks.rst 2020-03-23 14:02:44.000000000 +0100 +++ new/zope.component-4.6.2/docs/hooks.rst 2020-07-03 17:25:02.000000000 +0200 @@ -74,6 +74,39 @@ >>> getSiteManager() is site2.registry True +However, the default `zope.component.getSiteManager` function isn't +yet aware of this: + +.. doctest:: + + >>> from zope.component import getSiteManager as global_getSiteManager + >>> global_getSiteManager() + <BaseGlobalComponents base> + +To integrate that with the notion of the current site, we need to call ``setHooks``: + +.. autofunction:: setHooks + +.. doctest:: + + >>> from zope.component.hooks import setHooks + >>> setHooks() + >>> getSiteManager() is site2.registry + True + >>> global_getSiteManager() is site2.registry + True + +This can be reversed using ``resetHooks``: + +.. autofunction:: resetHooks + +.. doctest:: + + >>> from zope.component.hooks import resetHooks + >>> resetHooks() + >>> global_getSiteManager() + <BaseGlobalComponents base> + Finally we can unset the site and the global component registry is used again: .. doctest:: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/zope.component-4.6.1/docs/index.rst new/zope.component-4.6.2/docs/index.rst --- old/zope.component-4.6.1/docs/index.rst 2020-03-23 14:02:44.000000000 +0100 +++ new/zope.component-4.6.2/docs/index.rst 2020-07-03 17:25:02.000000000 +0200 @@ -4,6 +4,11 @@ Contents: .. toctree:: + :maxdepth: 1 + + changelog + +.. toctree:: :maxdepth: 2 narr diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/zope.component-4.6.1/docs/testlayer.rst new/zope.component-4.6.2/docs/testlayer.rst --- old/zope.component-4.6.1/docs/testlayer.rst 2020-03-23 14:02:44.000000000 +0100 +++ new/zope.component-4.6.2/docs/testlayer.rst 2020-07-03 17:25:02.000000000 +0200 @@ -4,6 +4,8 @@ .. currentmodule:: zope.component.testlayer +.. module:: zope.component.testlayer + ``zope.component.testlayer`` defines two things: * a `LayerBase` that makes it easier and saner to use zope.testing's diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/zope.component-4.6.1/setup.py new/zope.component-4.6.2/setup.py --- old/zope.component-4.6.1/setup.py 2020-03-23 14:02:44.000000000 +0100 +++ new/zope.component-4.6.2/setup.py 2020-07-03 17:25:02.000000000 +0200 @@ -62,7 +62,7 @@ setup( name='zope.component', - version='4.6.1', + version='4.6.2', url='https://github.com/zopefoundation/zope.component', license='ZPL 2.1', description='Zope Component Architecture', diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/zope.component-4.6.1/src/zope/component/__init__.py new/zope.component-4.6.2/src/zope/component/__init__.py --- old/zope.component-4.6.1/src/zope/component/__init__.py 2020-03-23 14:02:44.000000000 +0100 +++ new/zope.component-4.6.2/src/zope/component/__init__.py 2020-07-03 17:25:02.000000000 +0200 @@ -11,7 +11,16 @@ # FOR A PARTICULAR PURPOSE. # ############################################################################## -"""Zope 3 Component Architecture +""" +Zope 3 Component Architecture + +This module provides an implementation of +:class:`~zope.component.interfaces.IComponentArchitecture`, using the +current :mod:`site <zope.component.hooks>`. + +This module also provides an implementation of +:class:`~zope.component.interfaces.IComponentRegistrationConvenience` +using the `global site manager <getGlobalSiteManager>`_. """ from zope.interface import Interface from zope.interface import implementedBy @@ -58,4 +67,9 @@ from zope.component._declaration import adapts moduleProvides(IComponentArchitecture, IComponentRegistrationConvenience) -__all__ = tuple(IComponentArchitecture) +__all__ = tuple(IComponentArchitecture) + tuple(IComponentRegistrationConvenience) + ( + 'named', + 'adapts', + 'adapter', + 'adaptedBy', +) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/zope.component-4.6.1/src/zope/component/_api.py new/zope.component-4.6.2/src/zope/component/_api.py --- old/zope.component-4.6.1/src/zope/component/_api.py 2020-03-23 14:02:44.000000000 +0100 +++ new/zope.component-4.6.2/src/zope/component/_api.py 2020-07-03 17:25:02.000000000 +0200 @@ -21,12 +21,15 @@ from zope.interface.interfaces import IComponentLookup from zope.component.interfaces import IFactory +from zope.component.interfaces import inherits_arch_docs as inherits_docs + # getSiteManager() returns a component registry. Although the term # "site manager" is deprecated in favor of "component registry", # the old term is kept around to maintain a stable API. base = None @hookable +@inherits_docs def getSiteManager(context=None): """ See IComponentArchitecture. """ @@ -44,13 +47,14 @@ raise ComponentLookupError(*error.args) # Adapter API - +@inherits_docs def getAdapterInContext(object, interface, context): adapter = queryAdapterInContext(object, interface, context) if adapter is None: raise ComponentLookupError(object, interface) return adapter +@inherits_docs def queryAdapterInContext(object, interface, context, default=None): conform = getattr(object, '__conform__', None) if conform is not None: @@ -78,12 +82,14 @@ return getSiteManager(context).queryAdapter(object, interface, '', default) +@inherits_docs def getAdapter(object, interface=Interface, name=u'', context=None): adapter = queryAdapter(object, interface, name, None, context) if adapter is None: raise ComponentLookupError(object, interface, name) return adapter +@inherits_docs def queryAdapter(object, interface=Interface, name=u'', default=None, context=None): if context is None: @@ -91,12 +97,14 @@ return getSiteManager(context).queryAdapter(object, interface, name, default) +@inherits_docs def getMultiAdapter(objects, interface=Interface, name=u'', context=None): adapter = queryMultiAdapter(objects, interface, name, context=context) if adapter is None: raise ComponentLookupError(objects, interface, name) return adapter +@inherits_docs def queryMultiAdapter(objects, interface=Interface, name=u'', default=None, context=None): try: @@ -107,6 +115,7 @@ return sitemanager.queryMultiAdapter(objects, interface, name, default) +@inherits_docs def getAdapters(objects, provided, context=None): try: sitemanager = getSiteManager(context) @@ -115,6 +124,7 @@ return [] return sitemanager.getAdapters(objects, provided) +@inherits_docs def subscribers(objects, interface, context=None): try: sitemanager = getSiteManager(context) @@ -123,6 +133,7 @@ return [] return sitemanager.subscribers(objects, interface) +@inherits_docs def handle(*objects): getSiteManager(None).subscribers(objects, None) @@ -146,26 +157,29 @@ # Utility API - +@inherits_docs def getUtility(interface, name='', context=None): utility = queryUtility(interface, name, context=context) if utility is not None: return utility raise ComponentLookupError(interface, name) +@inherits_docs def queryUtility(interface, name='', default=None, context=None): return getSiteManager(context).queryUtility(interface, name, default) +@inherits_docs def getUtilitiesFor(interface, context=None): return getSiteManager(context).getUtilitiesFor(interface) - +@inherits_docs def getAllUtilitiesRegisteredFor(interface, context=None): return getSiteManager(context).getAllUtilitiesRegisteredFor(interface) _marker = object() +@inherits_docs def queryNextUtility(context, interface, name='', default=None): """Query for the next available utility. @@ -184,7 +198,7 @@ return util return default - +@inherits_docs def getNextUtility(context, interface, name=''): """Get the next available utility. @@ -200,6 +214,7 @@ # Factories +@inherits_docs def createObject(__factory_name, *args, **kwargs): """Invoke the named factory and return the result. @@ -208,6 +223,7 @@ context = kwargs.pop('context', None) return getUtility(IFactory, __factory_name, context)(*args, **kwargs) +@inherits_docs def getFactoryInterfaces(name, context=None): """Return the interface provided by the named factory's objects @@ -215,6 +231,7 @@ """ return getUtility(IFactory, name, context).getInterfaces() +@inherits_docs def getFactoriesFor(interface, context=None): """Return info on all factories implementing the given interface. """ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/zope.component-4.6.1/src/zope/component/_declaration.py new/zope.component-4.6.2/src/zope/component/_declaration.py --- old/zope.component-4.6.1/src/zope/component/_declaration.py 2020-03-23 14:02:44.000000000 +0100 +++ new/zope.component-4.6.2/src/zope/component/_declaration.py 2020-07-03 17:25:02.000000000 +0200 @@ -18,7 +18,13 @@ from zope.component._compat import CLASS_TYPES class adapter(object): - + """ + Decorator that declares that the decorated object adapts the given + *interfaces*. + + This is commonly used in conjunction with :obj:`zope.interface.implementer` + to declare what adapting the *interfaces* will provide. + """ def __init__(self, *interfaces): self.interfaces = interfaces @@ -44,6 +50,9 @@ locals['__component_adapts__'] = _adapts_descr(interfaces) def adaptedBy(ob): + """ + Return the *interfaces* that *ob* will adapt, as declared by :obj:`adapter`. + """ return getattr(ob, '__component_adapts__', None) def getName(ob): diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/zope.component-4.6.1/src/zope/component/globalregistry.py new/zope.component-4.6.2/src/zope/component/globalregistry.py --- old/zope.component-4.6.1/src/zope/component/globalregistry.py 2020-03-23 14:02:44.000000000 +0100 +++ new/zope.component-4.6.2/src/zope/component/globalregistry.py 2020-07-03 17:25:02.000000000 +0200 @@ -13,11 +13,11 @@ ############################################################################## """Global components support """ -from zope.interface import implementer from zope.interface.adapter import AdapterRegistry from zope.interface.registry import Components -from zope.interface.interfaces import IComponentLookup +from zope.component.interfaces import inherits_arch_docs +from zope.component.interfaces import inherits_reg_docs def GAR(components, registryName): @@ -59,6 +59,7 @@ del addCleanUp globalSiteManager = base +@inherits_arch_docs def getGlobalSiteManager(): return globalSiteManager @@ -66,14 +67,18 @@ # We eventually want to deprecate these in favor of using the global # component registry directly. +@inherits_reg_docs def provideUtility(component, provides=None, name=u''): base.registerUtility(component, provides, name, event=False) +@inherits_reg_docs def provideAdapter(factory, adapts=None, provides=None, name=u''): base.registerAdapter(factory, adapts, provides, name, event=False) +@inherits_reg_docs def provideSubscriptionAdapter(factory, adapts=None, provides=None): base.registerSubscriptionAdapter(factory, adapts, provides, event=False) +@inherits_reg_docs def provideHandler(factory, adapts=None): base.registerHandler(factory, adapts, event=False) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/zope.component-4.6.1/src/zope/component/hooks.py new/zope.component-4.6.2/src/zope/component/hooks.py --- old/zope.component-4.6.1/src/zope/component/hooks.py 2020-03-23 14:02:44.000000000 +0100 +++ new/zope.component-4.6.2/src/zope/component/hooks.py 2020-07-03 17:25:02.000000000 +0200 @@ -30,6 +30,14 @@ from zope.interface.interfaces import ComponentLookupError from zope.interface.interfaces import IComponentLookup +__all__ = [ + 'setSite', + 'getSite', + 'site', + 'getSiteManager', + 'setHooks', + 'resetHooks', +] class read_property(object): """Descriptor for property-like computed attributes. @@ -130,11 +138,32 @@ def setHooks(): + """ + Make `zope.component.getSiteManager` and interface adaptation + respect the current site. + + Most applications will want to be sure te call this early in their + startup sequence. Test code that uses these APIs should also arrange to + call this. + + .. seealso:: :mod:`zope.component.testlayer` + """ from zope.component import _api _api.adapter_hook.sethook(adapter_hook) _api.getSiteManager.sethook(getSiteManager) def resetHooks(): + """ + Reset `zope.component.getSiteManager` and interface adaptation to + their original implementations that are unaware of the current + site. + + Use caution when calling this; most code will not need to call + this. If code using the global API executes following this, it + will most likely use the base global component registry instead of + a site-specific registry it was expected. This can lead to + failures in adaptation and utility lookup. + """ # Reset hookable functions to original implementation. from zope.component import _api _api.adapter_hook.reset() diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/zope.component-4.6.1/src/zope/component/interfaces.py new/zope.component-4.6.2/src/zope/component/interfaces.py --- old/zope.component-4.6.1/src/zope/component/interfaces.py 2020-03-23 14:02:44.000000000 +0100 +++ new/zope.component-4.6.2/src/zope/component/interfaces.py 2020-07-03 17:25:02.000000000 +0200 @@ -11,7 +11,11 @@ # FOR A PARTICULAR PURPOSE. # ############################################################################ -"""Component and Component Architecture Interfaces +""" +Component and Component Architecture Interfaces + +The `IComponentArchitecture` and `IComponentRegistrationConvenience` interfaces +are provided by `zope.component` directly. """ from zope.interface import Attribute from zope.interface import Interface @@ -380,3 +384,24 @@ created by this factory will implement. If the callable's Implements instance cannot be created, an empty Implements instance is returned. """ + + +# Internal helpers + +def _inherits_docs(func, iface): + doc = iface[func.__name__].__doc__ + # By adding the ..seealso:: we get a link from our overview page + # to the specific narrative place where the function is described, because + # our overview page uses :noindex: + doc += "\n .. seealso::" + doc += "\n Function `~zope.component.%s` for notes, and " % (func.__name__,) + doc += "\n `~zope.component.interfaces.%s` for the defining interface." % (iface.__name__,) + doc += "\n" + func.__doc__ = doc + return func + +def inherits_arch_docs(func): + return _inherits_docs(func, IComponentArchitecture) + +def inherits_reg_docs(func): + return _inherits_docs(func, IComponentRegistrationConvenience) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/zope.component-4.6.1/src/zope.component.egg-info/PKG-INFO new/zope.component-4.6.2/src/zope.component.egg-info/PKG-INFO --- old/zope.component-4.6.1/src/zope.component.egg-info/PKG-INFO 2020-03-23 14:02:45.000000000 +0100 +++ new/zope.component-4.6.2/src/zope.component.egg-info/PKG-INFO 2020-07-03 17:25:02.000000000 +0200 @@ -1,6 +1,6 @@ Metadata-Version: 2.1 Name: zope.component -Version: 4.6.1 +Version: 4.6.2 Summary: Zope Component Architecture Home-page: https://github.com/zopefoundation/zope.component Author: Zope Foundation and Contributors @@ -45,6 +45,13 @@ Changes ========= + 4.6.2 (2020-07-03) + ================== + + - Improve the documentation, both published and in docstrings. See `PR + 49 <https://github.com/zopefoundation/zope.component/pull/49>`_. + + 4.6.1 (2020-03-23) ================== diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/zope.component-4.6.1/src/zope.component.egg-info/SOURCES.txt new/zope.component-4.6.2/src/zope.component.egg-info/SOURCES.txt --- old/zope.component-4.6.1/src/zope.component.egg-info/SOURCES.txt 2020-03-23 14:02:45.000000000 +0100 +++ new/zope.component-4.6.2/src/zope.component.egg-info/SOURCES.txt 2020-07-03 17:25:02.000000000 +0200 @@ -13,6 +13,7 @@ tox.ini docs/Makefile docs/api.rst +docs/changelog.rst docs/conf.py docs/configure.rst docs/event.rst @@ -29,8 +30,10 @@ docs/_static/.gitignore docs/api/adapter.rst docs/api/factory.rst +docs/api/hooks.rst docs/api/interface.rst docs/api/interfaces.rst +docs/api/module.rst docs/api/persistent.rst docs/api/security.rst docs/api/sitemanager.rst