grokcore.component 4.1.1__tar.gz → 4.2__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- grokcore_component-4.2/.pre-commit-config.yaml +28 -0
- {grokcore_component-4.1.1 → grokcore_component-4.2}/CHANGES.rst +8 -0
- {grokcore_component-4.1.1 → grokcore_component-4.2}/CONTRIBUTING.md +1 -1
- {grokcore_component-4.1.1 → grokcore_component-4.2}/MANIFEST.in +1 -0
- {grokcore_component-4.1.1 → grokcore_component-4.2}/PKG-INFO +24 -5
- grokcore_component-4.2/pyproject.toml +32 -0
- {grokcore_component-4.1.1 → grokcore_component-4.2}/setup.cfg +1 -4
- {grokcore_component-4.1.1 → grokcore_component-4.2}/setup.py +5 -5
- {grokcore_component-4.1.1 → grokcore_component-4.2}/src/grokcore/component/decorators.py +2 -0
- {grokcore_component-4.1.1 → grokcore_component-4.2}/src/grokcore/component/tests/subscriptions/multisubscriptions.py +1 -1
- {grokcore_component-4.1.1 → grokcore_component-4.2}/src/grokcore/component/tests/subscriptions/ordered_multisubscriptions.py +2 -2
- {grokcore_component-4.1.1 → grokcore_component-4.2}/src/grokcore/component/tests/test_grok.py +1 -1
- {grokcore_component-4.1.1 → grokcore_component-4.2}/src/grokcore/component/util.py +1 -1
- {grokcore_component-4.1.1 → grokcore_component-4.2}/src/grokcore.component.egg-info/PKG-INFO +24 -5
- {grokcore_component-4.1.1 → grokcore_component-4.2}/src/grokcore.component.egg-info/SOURCES.txt +2 -0
- grokcore_component-4.2/tox.ini +74 -0
- grokcore_component-4.1.1/tox.ini +0 -77
- {grokcore_component-4.1.1 → grokcore_component-4.2}/COPYRIGHT.txt +0 -0
- {grokcore_component-4.1.1 → grokcore_component-4.2}/CREDITS.rst +0 -0
- {grokcore_component-4.1.1 → grokcore_component-4.2}/INSTALL.txt +0 -0
- {grokcore_component-4.1.1 → grokcore_component-4.2}/LICENSE.txt +0 -0
- {grokcore_component-4.1.1 → grokcore_component-4.2}/README.rst +0 -0
- {grokcore_component-4.1.1 → grokcore_component-4.2}/TODO.rst +0 -0
- {grokcore_component-4.1.1 → grokcore_component-4.2}/buildout.cfg +0 -0
- {grokcore_component-4.1.1 → grokcore_component-4.2}/src/grokcore/__init__.py +0 -0
- {grokcore_component-4.1.1 → grokcore_component-4.2}/src/grokcore/component/__init__.py +0 -0
- {grokcore_component-4.1.1 → grokcore_component-4.2}/src/grokcore/component/compat.py +0 -0
- {grokcore_component-4.1.1 → grokcore_component-4.2}/src/grokcore/component/components.py +0 -0
- {grokcore_component-4.1.1 → grokcore_component-4.2}/src/grokcore/component/directive.py +0 -0
- {grokcore_component-4.1.1 → grokcore_component-4.2}/src/grokcore/component/interfaces.py +0 -0
- {grokcore_component-4.1.1 → grokcore_component-4.2}/src/grokcore/component/meta.py +0 -0
- {grokcore_component-4.1.1 → grokcore_component-4.2}/src/grokcore/component/meta.zcml +0 -0
- {grokcore_component-4.1.1 → grokcore_component-4.2}/src/grokcore/component/subscription.py +0 -0
- {grokcore_component-4.1.1 → grokcore_component-4.2}/src/grokcore/component/templates/default_display_form.pt +0 -0
- {grokcore_component-4.1.1 → grokcore_component-4.2}/src/grokcore/component/templates/default_edit_form.pt +0 -0
- {grokcore_component-4.1.1 → grokcore_component-4.2}/src/grokcore/component/testing.py +0 -0
- {grokcore_component-4.1.1 → grokcore_component-4.2}/src/grokcore/component/tests/__init__.py +0 -0
- {grokcore_component-4.1.1 → grokcore_component-4.2}/src/grokcore/component/tests/adapter/__init__.py +0 -0
- {grokcore_component-4.1.1 → grokcore_component-4.2}/src/grokcore/component/tests/adapter/adapter.py +0 -0
- {grokcore_component-4.1.1 → grokcore_component-4.2}/src/grokcore/component/tests/adapter/adapterdecorator.py +0 -0
- {grokcore_component-4.1.1 → grokcore_component-4.2}/src/grokcore/component/tests/adapter/alphabetical.py +0 -0
- {grokcore_component-4.1.1 → grokcore_component-4.2}/src/grokcore/component/tests/adapter/classcontext.py +0 -0
- {grokcore_component-4.1.1 → grokcore_component-4.2}/src/grokcore/component/tests/adapter/classcontextimported.py +0 -0
- {grokcore_component-4.1.1 → grokcore_component-4.2}/src/grokcore/component/tests/adapter/classcontextmultiple.py +0 -0
- {grokcore_component-4.1.1 → grokcore_component-4.2}/src/grokcore/component/tests/adapter/classcontextmultiple_fixture.py +0 -0
- {grokcore_component-4.1.1 → grokcore_component-4.2}/src/grokcore/component/tests/adapter/classorinterface.py +0 -0
- {grokcore_component-4.1.1 → grokcore_component-4.2}/src/grokcore/component/tests/adapter/conflict.py +0 -0
- {grokcore_component-4.1.1 → grokcore_component-4.2}/src/grokcore/component/tests/adapter/functionasargument_fixture.py +0 -0
- {grokcore_component-4.1.1 → grokcore_component-4.2}/src/grokcore/component/tests/adapter/functioncontext.py +0 -0
- {grokcore_component-4.1.1 → grokcore_component-4.2}/src/grokcore/component/tests/adapter/globaladapter.py +0 -0
- {grokcore_component-4.1.1 → grokcore_component-4.2}/src/grokcore/component/tests/adapter/implementsmany.py +0 -0
- {grokcore_component-4.1.1 → grokcore_component-4.2}/src/grokcore/component/tests/adapter/implementsnone.py +0 -0
- {grokcore_component-4.1.1 → grokcore_component-4.2}/src/grokcore/component/tests/adapter/implementsnonemulti.py +0 -0
- {grokcore_component-4.1.1 → grokcore_component-4.2}/src/grokcore/component/tests/adapter/importedmodel.py +0 -0
- {grokcore_component-4.1.1 → grokcore_component-4.2}/src/grokcore/component/tests/adapter/importedmodel2.py +0 -0
- {grokcore_component-4.1.1 → grokcore_component-4.2}/src/grokcore/component/tests/adapter/interface.py +0 -0
- {grokcore_component-4.1.1 → grokcore_component-4.2}/src/grokcore/component/tests/adapter/interfacemodule.py +0 -0
- {grokcore_component-4.1.1 → grokcore_component-4.2}/src/grokcore/component/tests/adapter/modulecontext.py +0 -0
- {grokcore_component-4.1.1 → grokcore_component-4.2}/src/grokcore/component/tests/adapter/modulecontextimported.py +0 -0
- {grokcore_component-4.1.1 → grokcore_component-4.2}/src/grokcore/component/tests/adapter/modulecontextmultiple.py +0 -0
- {grokcore_component-4.1.1 → grokcore_component-4.2}/src/grokcore/component/tests/adapter/modulecontextmultiple_fixture.py +0 -0
- {grokcore_component-4.1.1 → grokcore_component-4.2}/src/grokcore/component/tests/adapter/multiadapter.py +0 -0
- {grokcore_component-4.1.1 → grokcore_component-4.2}/src/grokcore/component/tests/adapter/multiadaptsnone.py +0 -0
- {grokcore_component-4.1.1 → grokcore_component-4.2}/src/grokcore/component/tests/adapter/multiple.py +0 -0
- {grokcore_component-4.1.1 → grokcore_component-4.2}/src/grokcore/component/tests/adapter/namedadapter.py +0 -0
- {grokcore_component-4.1.1 → grokcore_component-4.2}/src/grokcore/component/tests/adapter/noarguments_fixture.py +0 -0
- {grokcore_component-4.1.1 → grokcore_component-4.2}/src/grokcore/component/tests/adapter/nomodel.py +0 -0
- {grokcore_component-4.1.1 → grokcore_component-4.2}/src/grokcore/component/tests/adapter/oldstyleclass.py +0 -0
- {grokcore_component-4.1.1 → grokcore_component-4.2}/src/grokcore/component/tests/adapter/order.py +0 -0
- {grokcore_component-4.1.1 → grokcore_component-4.2}/src/grokcore/component/tests/adapter/providerdecorator.py +0 -0
- {grokcore_component-4.1.1 → grokcore_component-4.2}/src/grokcore/component/tests/api.txt +0 -0
- {grokcore_component-4.1.1 → grokcore_component-4.2}/src/grokcore/component/tests/directive/__init__.py +0 -0
- {grokcore_component-4.1.1 → grokcore_component-4.2}/src/grokcore/component/tests/directive/argumenterror.py +0 -0
- {grokcore_component-4.1.1 → grokcore_component-4.2}/src/grokcore/component/tests/directive/argumenterror_fixture.py +0 -0
- {grokcore_component-4.1.1 → grokcore_component-4.2}/src/grokcore/component/tests/directive/multipletimes.py +0 -0
- {grokcore_component-4.1.1 → grokcore_component-4.2}/src/grokcore/component/tests/event/__init__.py +0 -0
- {grokcore_component-4.1.1 → grokcore_component-4.2}/src/grokcore/component/tests/event/errorconditions.py +0 -0
- {grokcore_component-4.1.1 → grokcore_component-4.2}/src/grokcore/component/tests/event/errorconditions_fixture.py +0 -0
- {grokcore_component-4.1.1 → grokcore_component-4.2}/src/grokcore/component/tests/event/provideHandler.py +0 -0
- {grokcore_component-4.1.1 → grokcore_component-4.2}/src/grokcore/component/tests/event/subscriber.py +0 -0
- {grokcore_component-4.1.1 → grokcore_component-4.2}/src/grokcore/component/tests/grok_component.txt +0 -0
- {grokcore_component-4.1.1 → grokcore_component-4.2}/src/grokcore/component/tests/grokker/__init__.py +0 -0
- {grokcore_component-4.1.1 → grokcore_component-4.2}/src/grokcore/component/tests/grokker/continue_scanning.py +0 -0
- {grokcore_component-4.1.1 → grokcore_component-4.2}/src/grokcore/component/tests/grokker/continue_scanning_fixture.py +0 -0
- {grokcore_component-4.1.1 → grokcore_component-4.2}/src/grokcore/component/tests/grokker/grokcomponent.py +0 -0
- {grokcore_component-4.1.1 → grokcore_component-4.2}/src/grokcore/component/tests/grokker/onlyonce.py +0 -0
- {grokcore_component-4.1.1 → grokcore_component-4.2}/src/grokcore/component/tests/grokker/onlyonce_fixture/__init__.py +0 -0
- {grokcore_component-4.1.1 → grokcore_component-4.2}/src/grokcore/component/tests/grokker/onlyonce_fixture/_meta.py +0 -0
- {grokcore_component-4.1.1 → grokcore_component-4.2}/src/grokcore/component/tests/grokker/onlyonce_fixture/component.py +0 -0
- {grokcore_component-4.1.1 → grokcore_component-4.2}/src/grokcore/component/tests/grokker/onlyonce_fixture/implementation.py +0 -0
- {grokcore_component-4.1.1 → grokcore_component-4.2}/src/grokcore/component/tests/grokker/priority.py +0 -0
- {grokcore_component-4.1.1 → grokcore_component-4.2}/src/grokcore/component/tests/grokker/priority_fixture.py +0 -0
- {grokcore_component-4.1.1 → grokcore_component-4.2}/src/grokcore/component/tests/inherit/__init__.py +0 -0
- {grokcore_component-4.1.1 → grokcore_component-4.2}/src/grokcore/component/tests/inherit/inherit.py +0 -0
- {grokcore_component-4.1.1 → grokcore_component-4.2}/src/grokcore/component/tests/inherit/inherit_fixture.py +0 -0
- {grokcore_component-4.1.1 → grokcore_component-4.2}/src/grokcore/component/tests/order/__init__.py +0 -0
- {grokcore_component-4.1.1 → grokcore_component-4.2}/src/grokcore/component/tests/order/arg_orderdirective.py +0 -0
- {grokcore_component-4.1.1 → grokcore_component-4.2}/src/grokcore/component/tests/order/combined_orderdirective.py +0 -0
- {grokcore_component-4.1.1 → grokcore_component-4.2}/src/grokcore/component/tests/order/combinednoorder_orderdirective.py +0 -0
- {grokcore_component-4.1.1 → grokcore_component-4.2}/src/grokcore/component/tests/order/inter1.py +0 -0
- {grokcore_component-4.1.1 → grokcore_component-4.2}/src/grokcore/component/tests/order/inter2.py +0 -0
- {grokcore_component-4.1.1 → grokcore_component-4.2}/src/grokcore/component/tests/order/noarg_orderdirective.py +0 -0
- {grokcore_component-4.1.1 → grokcore_component-4.2}/src/grokcore/component/tests/order/nodirective.py +0 -0
- {grokcore_component-4.1.1 → grokcore_component-4.2}/src/grokcore/component/tests/subscriptions/__init__.py +0 -0
- {grokcore_component-4.1.1 → grokcore_component-4.2}/src/grokcore/component/tests/subscriptions/decorator.py +0 -0
- {grokcore_component-4.1.1 → grokcore_component-4.2}/src/grokcore/component/tests/subscriptions/multisubscriptions_no_adapts.py +0 -0
- {grokcore_component-4.1.1 → grokcore_component-4.2}/src/grokcore/component/tests/subscriptions/multisubscriptions_no_interface.py +0 -0
- {grokcore_component-4.1.1 → grokcore_component-4.2}/src/grokcore/component/tests/subscriptions/ordered_subscriptions.py +0 -0
- {grokcore_component-4.1.1 → grokcore_component-4.2}/src/grokcore/component/tests/subscriptions/subscriptions.py +0 -0
- {grokcore_component-4.1.1 → grokcore_component-4.2}/src/grokcore/component/tests/subscriptions/subscriptions_no_context.py +0 -0
- {grokcore_component-4.1.1 → grokcore_component-4.2}/src/grokcore/component/tests/subscriptions/subscriptions_no_interface.py +0 -0
- {grokcore_component-4.1.1 → grokcore_component-4.2}/src/grokcore/component/tests/utility/__init__.py +0 -0
- {grokcore_component-4.1.1 → grokcore_component-4.2}/src/grokcore/component/tests/utility/conflict.py +0 -0
- {grokcore_component-4.1.1 → grokcore_component-4.2}/src/grokcore/component/tests/utility/implementsmany.py +0 -0
- {grokcore_component-4.1.1 → grokcore_component-4.2}/src/grokcore/component/tests/utility/implementsmany2.py +0 -0
- {grokcore_component-4.1.1 → grokcore_component-4.2}/src/grokcore/component/tests/utility/implementsnone.py +0 -0
- {grokcore_component-4.1.1 → grokcore_component-4.2}/src/grokcore/component/tests/utility/implementsnone2.py +0 -0
- {grokcore_component-4.1.1 → grokcore_component-4.2}/src/grokcore/component/tests/utility/providesmany.py +0 -0
- {grokcore_component-4.1.1 → grokcore_component-4.2}/src/grokcore/component/tests/utility/providesmany2.py +0 -0
- {grokcore_component-4.1.1 → grokcore_component-4.2}/src/grokcore/component/tests/utility/providesnone.py +0 -0
- {grokcore_component-4.1.1 → grokcore_component-4.2}/src/grokcore/component/tests/utility/providesnone2.py +0 -0
- {grokcore_component-4.1.1 → grokcore_component-4.2}/src/grokcore/component/tests/utility/utility.py +0 -0
- {grokcore_component-4.1.1 → grokcore_component-4.2}/src/grokcore/component/tests/view/__init__.py +0 -0
- {grokcore_component-4.1.1 → grokcore_component-4.2}/src/grokcore/component/tests/view/nomodulename.py +0 -0
- {grokcore_component-4.1.1 → grokcore_component-4.2}/src/grokcore/component/tests/view/nomodulename_fixture.py +0 -0
- {grokcore_component-4.1.1 → grokcore_component-4.2}/src/grokcore/component/tests/zcml/__init__.py +0 -0
- {grokcore_component-4.1.1 → grokcore_component-4.2}/src/grokcore/component/tests/zcml/conflict.py +0 -0
- {grokcore_component-4.1.1 → grokcore_component-4.2}/src/grokcore/component/tests/zcml/conflictpkg/__init__.py +0 -0
- {grokcore_component-4.1.1 → grokcore_component-4.2}/src/grokcore/component/tests/zcml/conflictpkg/fixture.py +0 -0
- {grokcore_component-4.1.1 → grokcore_component-4.2}/src/grokcore/component/tests/zcml/exclude.py +0 -0
- {grokcore_component-4.1.1 → grokcore_component-4.2}/src/grokcore/component/tests/zcml/excludemany.py +0 -0
- {grokcore_component-4.1.1 → grokcore_component-4.2}/src/grokcore/component/tests/zcml/excludemanypkg/__init__.py +0 -0
- {grokcore_component-4.1.1 → grokcore_component-4.2}/src/grokcore/component/tests/zcml/excludemanypkg/file_1.py +0 -0
- {grokcore_component-4.1.1 → grokcore_component-4.2}/src/grokcore/component/tests/zcml/excludemanypkg/test_asdf.py +0 -0
- {grokcore_component-4.1.1 → grokcore_component-4.2}/src/grokcore/component/tests/zcml/excludepkg/__init__.py +0 -0
- {grokcore_component-4.1.1 → grokcore_component-4.2}/src/grokcore/component/tests/zcml/excludepkg/sample.py +0 -0
- {grokcore_component-4.1.1 → grokcore_component-4.2}/src/grokcore/component/zcml.py +0 -0
- {grokcore_component-4.1.1 → grokcore_component-4.2}/src/grokcore.component.egg-info/dependency_links.txt +0 -0
- {grokcore_component-4.1.1 → grokcore_component-4.2}/src/grokcore.component.egg-info/namespace_packages.txt +0 -0
- {grokcore_component-4.1.1 → grokcore_component-4.2}/src/grokcore.component.egg-info/not-zip-safe +0 -0
- {grokcore_component-4.1.1 → grokcore_component-4.2}/src/grokcore.component.egg-info/requires.txt +0 -0
- {grokcore_component-4.1.1 → grokcore_component-4.2}/src/grokcore.component.egg-info/top_level.txt +0 -0
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
# Generated from:
|
|
2
|
+
# https://github.com/zopefoundation/meta/tree/master/config/pure-python
|
|
3
|
+
minimum_pre_commit_version: '3.6'
|
|
4
|
+
repos:
|
|
5
|
+
- repo: https://github.com/pycqa/isort
|
|
6
|
+
rev: "6.0.1"
|
|
7
|
+
hooks:
|
|
8
|
+
- id: isort
|
|
9
|
+
- repo: https://github.com/hhatto/autopep8
|
|
10
|
+
rev: "v2.3.2"
|
|
11
|
+
hooks:
|
|
12
|
+
- id: autopep8
|
|
13
|
+
args: [--in-place, --aggressive, --aggressive]
|
|
14
|
+
- repo: https://github.com/asottile/pyupgrade
|
|
15
|
+
rev: v3.19.1
|
|
16
|
+
hooks:
|
|
17
|
+
- id: pyupgrade
|
|
18
|
+
args: [--py39-plus]
|
|
19
|
+
- repo: https://github.com/isidentical/teyit
|
|
20
|
+
rev: 0.4.3
|
|
21
|
+
hooks:
|
|
22
|
+
- id: teyit
|
|
23
|
+
- repo: https://github.com/PyCQA/flake8
|
|
24
|
+
rev: "7.2.0"
|
|
25
|
+
hooks:
|
|
26
|
+
- id: flake8
|
|
27
|
+
additional_dependencies:
|
|
28
|
+
- flake8-debugger == 4.1.2
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
Metadata-Version: 2.
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
2
|
Name: grokcore.component
|
|
3
|
-
Version: 4.
|
|
3
|
+
Version: 4.2
|
|
4
4
|
Summary: Grok-like configuration for basic components (adapters, utilities, subscribers)
|
|
5
5
|
Home-page: https://github.com/zopefoundation/grokcore.component
|
|
6
6
|
Author: Grok Team
|
|
@@ -11,14 +11,14 @@ Classifier: Development Status :: 6 - Mature
|
|
|
11
11
|
Classifier: License :: OSI Approved :: Zope Public License
|
|
12
12
|
Classifier: Operating System :: OS Independent
|
|
13
13
|
Classifier: Programming Language :: Python :: 3
|
|
14
|
-
Classifier: Programming Language :: Python :: 3.7
|
|
15
|
-
Classifier: Programming Language :: Python :: 3.8
|
|
16
14
|
Classifier: Programming Language :: Python :: 3.9
|
|
17
15
|
Classifier: Programming Language :: Python :: 3.10
|
|
18
16
|
Classifier: Programming Language :: Python :: 3.11
|
|
17
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
18
|
+
Classifier: Programming Language :: Python :: 3.13
|
|
19
19
|
Classifier: Programming Language :: Python :: Implementation :: CPython
|
|
20
20
|
Classifier: Programming Language :: Python :: Implementation :: PyPy
|
|
21
|
-
Requires-Python: >=3.
|
|
21
|
+
Requires-Python: >=3.9
|
|
22
22
|
License-File: LICENSE.txt
|
|
23
23
|
Requires-Dist: setuptools
|
|
24
24
|
Requires-Dist: martian>=1.2
|
|
@@ -28,6 +28,17 @@ Requires-Dist: zope.interface
|
|
|
28
28
|
Requires-Dist: zope.testing
|
|
29
29
|
Provides-Extra: test
|
|
30
30
|
Requires-Dist: zope.event; extra == "test"
|
|
31
|
+
Dynamic: author
|
|
32
|
+
Dynamic: author-email
|
|
33
|
+
Dynamic: classifier
|
|
34
|
+
Dynamic: description
|
|
35
|
+
Dynamic: home-page
|
|
36
|
+
Dynamic: license
|
|
37
|
+
Dynamic: license-file
|
|
38
|
+
Dynamic: provides-extra
|
|
39
|
+
Dynamic: requires-dist
|
|
40
|
+
Dynamic: requires-python
|
|
41
|
+
Dynamic: summary
|
|
31
42
|
|
|
32
43
|
This package provides base classes of basic component types for the
|
|
33
44
|
Zope Component Architecture, as well as means for configuring and
|
|
@@ -275,6 +286,14 @@ multiple objects.
|
|
|
275
286
|
Changes
|
|
276
287
|
=======
|
|
277
288
|
|
|
289
|
+
4.2 (2025-06-03)
|
|
290
|
+
----------------
|
|
291
|
+
|
|
292
|
+
* Add support for Python 3.12, 3.13.
|
|
293
|
+
|
|
294
|
+
* Drop support for Python 3.7, 3.8.
|
|
295
|
+
|
|
296
|
+
|
|
278
297
|
4.1.1 (2025-01-28)
|
|
279
298
|
------------------
|
|
280
299
|
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
# Generated from:
|
|
2
|
+
# https://github.com/zopefoundation/meta/tree/master/config/pure-python
|
|
3
|
+
|
|
4
|
+
[build-system]
|
|
5
|
+
requires = [
|
|
6
|
+
"setuptools == 78.1.1",
|
|
7
|
+
"wheel",
|
|
8
|
+
]
|
|
9
|
+
build-backend = "setuptools.build_meta"
|
|
10
|
+
|
|
11
|
+
[tool.coverage.run]
|
|
12
|
+
branch = true
|
|
13
|
+
source = ["grokcore.component"]
|
|
14
|
+
|
|
15
|
+
[tool.coverage.report]
|
|
16
|
+
fail_under = 96
|
|
17
|
+
precision = 2
|
|
18
|
+
ignore_errors = true
|
|
19
|
+
show_missing = true
|
|
20
|
+
exclude_lines = [
|
|
21
|
+
"pragma: no cover",
|
|
22
|
+
"pragma: nocover",
|
|
23
|
+
"except ImportError:",
|
|
24
|
+
"raise NotImplementedError",
|
|
25
|
+
"if __name__ == '__main__':",
|
|
26
|
+
"self.fail",
|
|
27
|
+
"raise AssertionError",
|
|
28
|
+
"raise unittest.Skip",
|
|
29
|
+
]
|
|
30
|
+
|
|
31
|
+
[tool.coverage.html]
|
|
32
|
+
directory = "parts/htmlcov"
|
|
@@ -1,6 +1,3 @@
|
|
|
1
|
-
[bdist_wheel]
|
|
2
|
-
universal = 0
|
|
3
|
-
|
|
4
1
|
[flake8]
|
|
5
2
|
doctests = 1
|
|
6
3
|
|
|
@@ -13,7 +10,7 @@ ignore =
|
|
|
13
10
|
force_single_line = True
|
|
14
11
|
combine_as_imports = True
|
|
15
12
|
sections = FUTURE,STDLIB,THIRDPARTY,ZOPE,FIRSTPARTY,LOCALFOLDER
|
|
16
|
-
known_third_party =
|
|
13
|
+
known_third_party = docutils, pkg_resources, pytz
|
|
17
14
|
known_zope =
|
|
18
15
|
known_first_party =
|
|
19
16
|
default_section = ZOPE
|
|
@@ -20,7 +20,7 @@ tests_require = [
|
|
|
20
20
|
|
|
21
21
|
setup(
|
|
22
22
|
name='grokcore.component',
|
|
23
|
-
version='4.
|
|
23
|
+
version='4.2',
|
|
24
24
|
author='Grok Team',
|
|
25
25
|
author_email='zope-dev@zope.dev',
|
|
26
26
|
url='https://github.com/zopefoundation/grokcore.component',
|
|
@@ -34,21 +34,21 @@ setup(
|
|
|
34
34
|
'License :: OSI Approved :: Zope Public License',
|
|
35
35
|
'Operating System :: OS Independent',
|
|
36
36
|
'Programming Language :: Python :: 3',
|
|
37
|
-
'Programming Language :: Python :: 3.7',
|
|
38
|
-
'Programming Language :: Python :: 3.8',
|
|
39
37
|
'Programming Language :: Python :: 3.9',
|
|
40
38
|
'Programming Language :: Python :: 3.10',
|
|
41
39
|
'Programming Language :: Python :: 3.11',
|
|
40
|
+
'Programming Language :: Python :: 3.12',
|
|
41
|
+
'Programming Language :: Python :: 3.13',
|
|
42
42
|
'Programming Language :: Python :: Implementation :: CPython',
|
|
43
43
|
'Programming Language :: Python :: Implementation :: PyPy',
|
|
44
|
-
|
|
44
|
+
],
|
|
45
45
|
|
|
46
46
|
packages=find_packages('src'),
|
|
47
47
|
package_dir={'': 'src'},
|
|
48
48
|
namespace_packages=['grokcore'],
|
|
49
49
|
include_package_data=True,
|
|
50
50
|
zip_safe=False,
|
|
51
|
-
python_requires='>=3.
|
|
51
|
+
python_requires='>=3.9',
|
|
52
52
|
install_requires=['setuptools',
|
|
53
53
|
'martian >= 1.2',
|
|
54
54
|
'zope.component',
|
|
@@ -31,6 +31,7 @@ class subscribe:
|
|
|
31
31
|
as a subscriber for the object type and the event interface.
|
|
32
32
|
|
|
33
33
|
"""
|
|
34
|
+
|
|
34
35
|
def __init__(self, *args):
|
|
35
36
|
self.subscribed = args
|
|
36
37
|
|
|
@@ -122,6 +123,7 @@ class provider:
|
|
|
122
123
|
This is akin to calling directlyProvides() on the function object.
|
|
123
124
|
|
|
124
125
|
"""
|
|
126
|
+
|
|
125
127
|
def __init__(self, *interfaces):
|
|
126
128
|
self.interfaces = interfaces
|
|
127
129
|
|
|
@@ -80,14 +80,14 @@ class Cleaning(DayTimeActivity):
|
|
|
80
80
|
grok.order(99)
|
|
81
81
|
|
|
82
82
|
def do(self):
|
|
83
|
-
print('{} is cleaning the {
|
|
83
|
+
print(f'{self.who.name} is cleaning the {self.where.name}.')
|
|
84
84
|
|
|
85
85
|
|
|
86
86
|
class Cooking(DayTimeActivity):
|
|
87
87
|
grok.order(10)
|
|
88
88
|
|
|
89
89
|
def do(self):
|
|
90
|
-
print('{} is cooking in {
|
|
90
|
+
print(f'{self.who.name} is cooking in {self.where.name}!')
|
|
91
91
|
|
|
92
92
|
|
|
93
93
|
class Gardening(DayTimeActivity):
|
{grokcore_component-4.1.1 → grokcore_component-4.2}/src/grokcore/component/tests/test_grok.py
RENAMED
|
@@ -36,7 +36,7 @@ def suiteFromPackage(name):
|
|
|
36
36
|
optionflags=doctest.ELLIPSIS
|
|
37
37
|
| doctest.NORMALIZE_WHITESPACE
|
|
38
38
|
| doctest.IGNORE_EXCEPTION_DETAIL)
|
|
39
|
-
except
|
|
39
|
+
except ModuleNotFoundError: # or should this accept anything?
|
|
40
40
|
traceback.print_exc()
|
|
41
41
|
raise
|
|
42
42
|
suite.addTest(test)
|
|
@@ -131,7 +131,7 @@ def provideInterface(id, interface, iface_type=None, info=''):
|
|
|
131
131
|
['I']
|
|
132
132
|
"""
|
|
133
133
|
if not id:
|
|
134
|
-
id = "{}.{
|
|
134
|
+
id = f"{interface.__module__}.{interface.__name__}"
|
|
135
135
|
|
|
136
136
|
if not IInterface.providedBy(interface):
|
|
137
137
|
if not isinstance(interface, class_types):
|
{grokcore_component-4.1.1 → grokcore_component-4.2}/src/grokcore.component.egg-info/PKG-INFO
RENAMED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
Metadata-Version: 2.
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
2
|
Name: grokcore.component
|
|
3
|
-
Version: 4.
|
|
3
|
+
Version: 4.2
|
|
4
4
|
Summary: Grok-like configuration for basic components (adapters, utilities, subscribers)
|
|
5
5
|
Home-page: https://github.com/zopefoundation/grokcore.component
|
|
6
6
|
Author: Grok Team
|
|
@@ -11,14 +11,14 @@ Classifier: Development Status :: 6 - Mature
|
|
|
11
11
|
Classifier: License :: OSI Approved :: Zope Public License
|
|
12
12
|
Classifier: Operating System :: OS Independent
|
|
13
13
|
Classifier: Programming Language :: Python :: 3
|
|
14
|
-
Classifier: Programming Language :: Python :: 3.7
|
|
15
|
-
Classifier: Programming Language :: Python :: 3.8
|
|
16
14
|
Classifier: Programming Language :: Python :: 3.9
|
|
17
15
|
Classifier: Programming Language :: Python :: 3.10
|
|
18
16
|
Classifier: Programming Language :: Python :: 3.11
|
|
17
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
18
|
+
Classifier: Programming Language :: Python :: 3.13
|
|
19
19
|
Classifier: Programming Language :: Python :: Implementation :: CPython
|
|
20
20
|
Classifier: Programming Language :: Python :: Implementation :: PyPy
|
|
21
|
-
Requires-Python: >=3.
|
|
21
|
+
Requires-Python: >=3.9
|
|
22
22
|
License-File: LICENSE.txt
|
|
23
23
|
Requires-Dist: setuptools
|
|
24
24
|
Requires-Dist: martian>=1.2
|
|
@@ -28,6 +28,17 @@ Requires-Dist: zope.interface
|
|
|
28
28
|
Requires-Dist: zope.testing
|
|
29
29
|
Provides-Extra: test
|
|
30
30
|
Requires-Dist: zope.event; extra == "test"
|
|
31
|
+
Dynamic: author
|
|
32
|
+
Dynamic: author-email
|
|
33
|
+
Dynamic: classifier
|
|
34
|
+
Dynamic: description
|
|
35
|
+
Dynamic: home-page
|
|
36
|
+
Dynamic: license
|
|
37
|
+
Dynamic: license-file
|
|
38
|
+
Dynamic: provides-extra
|
|
39
|
+
Dynamic: requires-dist
|
|
40
|
+
Dynamic: requires-python
|
|
41
|
+
Dynamic: summary
|
|
31
42
|
|
|
32
43
|
This package provides base classes of basic component types for the
|
|
33
44
|
Zope Component Architecture, as well as means for configuring and
|
|
@@ -275,6 +286,14 @@ multiple objects.
|
|
|
275
286
|
Changes
|
|
276
287
|
=======
|
|
277
288
|
|
|
289
|
+
4.2 (2025-06-03)
|
|
290
|
+
----------------
|
|
291
|
+
|
|
292
|
+
* Add support for Python 3.12, 3.13.
|
|
293
|
+
|
|
294
|
+
* Drop support for Python 3.7, 3.8.
|
|
295
|
+
|
|
296
|
+
|
|
278
297
|
4.1.1 (2025-01-28)
|
|
279
298
|
------------------
|
|
280
299
|
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
# Generated from:
|
|
2
|
+
# https://github.com/zopefoundation/meta/tree/master/config/pure-python
|
|
3
|
+
[tox]
|
|
4
|
+
minversion = 3.18
|
|
5
|
+
envlist =
|
|
6
|
+
release-check
|
|
7
|
+
lint
|
|
8
|
+
py39
|
|
9
|
+
py310
|
|
10
|
+
py311
|
|
11
|
+
py312
|
|
12
|
+
py313
|
|
13
|
+
pypy3
|
|
14
|
+
coverage
|
|
15
|
+
|
|
16
|
+
[testenv]
|
|
17
|
+
usedevelop = true
|
|
18
|
+
package = wheel
|
|
19
|
+
wheel_build_env = .pkg
|
|
20
|
+
deps =
|
|
21
|
+
setuptools == 78.1.1
|
|
22
|
+
zope.testrunner
|
|
23
|
+
commands =
|
|
24
|
+
zope-testrunner --test-path=src {posargs:-vc}
|
|
25
|
+
extras =
|
|
26
|
+
test
|
|
27
|
+
|
|
28
|
+
[testenv:setuptools-latest]
|
|
29
|
+
basepython = python3
|
|
30
|
+
deps =
|
|
31
|
+
git+https://github.com/pypa/setuptools.git\#egg=setuptools
|
|
32
|
+
zope.testrunner
|
|
33
|
+
|
|
34
|
+
[testenv:release-check]
|
|
35
|
+
description = ensure that the distribution is ready to release
|
|
36
|
+
basepython = python3
|
|
37
|
+
skip_install = true
|
|
38
|
+
deps =
|
|
39
|
+
setuptools == 78.1.1
|
|
40
|
+
wheel
|
|
41
|
+
twine
|
|
42
|
+
build
|
|
43
|
+
check-manifest
|
|
44
|
+
check-python-versions >= 0.20.0
|
|
45
|
+
wheel
|
|
46
|
+
commands_pre =
|
|
47
|
+
commands =
|
|
48
|
+
check-manifest
|
|
49
|
+
check-python-versions --only setup.py,tox.ini,.github/workflows/tests.yml
|
|
50
|
+
python -m build --sdist --no-isolation
|
|
51
|
+
twine check dist/*
|
|
52
|
+
|
|
53
|
+
[testenv:lint]
|
|
54
|
+
description = This env runs all linters configured in .pre-commit-config.yaml
|
|
55
|
+
basepython = python3
|
|
56
|
+
skip_install = true
|
|
57
|
+
deps =
|
|
58
|
+
pre-commit
|
|
59
|
+
commands_pre =
|
|
60
|
+
commands =
|
|
61
|
+
pre-commit run --all-files --show-diff-on-failure
|
|
62
|
+
|
|
63
|
+
[testenv:coverage]
|
|
64
|
+
basepython = python3
|
|
65
|
+
allowlist_externals =
|
|
66
|
+
mkdir
|
|
67
|
+
deps =
|
|
68
|
+
coverage[toml]
|
|
69
|
+
zope.testrunner
|
|
70
|
+
commands =
|
|
71
|
+
mkdir -p {toxinidir}/parts/htmlcov
|
|
72
|
+
coverage run -m zope.testrunner --test-path=src {posargs:-vc}
|
|
73
|
+
coverage html
|
|
74
|
+
coverage report
|
grokcore_component-4.1.1/tox.ini
DELETED
|
@@ -1,77 +0,0 @@
|
|
|
1
|
-
# Generated from:
|
|
2
|
-
# https://github.com/zopefoundation/meta/tree/master/config/pure-python
|
|
3
|
-
[tox]
|
|
4
|
-
minversion = 3.18
|
|
5
|
-
envlist =
|
|
6
|
-
lint
|
|
7
|
-
py37
|
|
8
|
-
py38
|
|
9
|
-
py39
|
|
10
|
-
py310
|
|
11
|
-
py311
|
|
12
|
-
pypy3
|
|
13
|
-
coverage
|
|
14
|
-
|
|
15
|
-
[testenv]
|
|
16
|
-
usedevelop = true
|
|
17
|
-
deps =
|
|
18
|
-
zope.testrunner
|
|
19
|
-
commands =
|
|
20
|
-
zope-testrunner --test-path=src {posargs:-vc}
|
|
21
|
-
extras =
|
|
22
|
-
test
|
|
23
|
-
|
|
24
|
-
[testenv:lint]
|
|
25
|
-
basepython = python3
|
|
26
|
-
skip_install = true
|
|
27
|
-
commands =
|
|
28
|
-
isort --check-only --diff {toxinidir}/src {toxinidir}/setup.py
|
|
29
|
-
flake8 src setup.py
|
|
30
|
-
check-manifest
|
|
31
|
-
check-python-versions
|
|
32
|
-
deps =
|
|
33
|
-
check-manifest
|
|
34
|
-
check-python-versions >= 0.19.1
|
|
35
|
-
wheel
|
|
36
|
-
flake8
|
|
37
|
-
isort
|
|
38
|
-
|
|
39
|
-
[testenv:isort-apply]
|
|
40
|
-
basepython = python3
|
|
41
|
-
skip_install = true
|
|
42
|
-
commands_pre =
|
|
43
|
-
deps =
|
|
44
|
-
isort
|
|
45
|
-
commands =
|
|
46
|
-
isort {toxinidir}/src {toxinidir}/setup.py []
|
|
47
|
-
|
|
48
|
-
[testenv:coverage]
|
|
49
|
-
basepython = python3
|
|
50
|
-
allowlist_externals =
|
|
51
|
-
mkdir
|
|
52
|
-
deps =
|
|
53
|
-
coverage
|
|
54
|
-
zope.testrunner
|
|
55
|
-
commands =
|
|
56
|
-
mkdir -p {toxinidir}/parts/htmlcov
|
|
57
|
-
coverage run -m zope.testrunner --test-path=src {posargs:-vc}
|
|
58
|
-
coverage html --ignore-errors
|
|
59
|
-
coverage report --ignore-errors --show-missing --fail-under=96
|
|
60
|
-
|
|
61
|
-
[coverage:run]
|
|
62
|
-
branch = True
|
|
63
|
-
source = grokcore.component
|
|
64
|
-
|
|
65
|
-
[coverage:report]
|
|
66
|
-
precision = 2
|
|
67
|
-
exclude_lines =
|
|
68
|
-
pragma: no cover
|
|
69
|
-
pragma: nocover
|
|
70
|
-
except ImportError:
|
|
71
|
-
raise NotImplementedError
|
|
72
|
-
if __name__ == '__main__':
|
|
73
|
-
self.fail
|
|
74
|
-
raise AssertionError
|
|
75
|
-
|
|
76
|
-
[coverage:html]
|
|
77
|
-
directory = parts/htmlcov
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{grokcore_component-4.1.1 → grokcore_component-4.2}/src/grokcore/component/tests/__init__.py
RENAMED
|
File without changes
|
{grokcore_component-4.1.1 → grokcore_component-4.2}/src/grokcore/component/tests/adapter/__init__.py
RENAMED
|
File without changes
|
{grokcore_component-4.1.1 → grokcore_component-4.2}/src/grokcore/component/tests/adapter/adapter.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{grokcore_component-4.1.1 → grokcore_component-4.2}/src/grokcore/component/tests/adapter/conflict.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{grokcore_component-4.1.1 → grokcore_component-4.2}/src/grokcore/component/tests/adapter/multiple.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{grokcore_component-4.1.1 → grokcore_component-4.2}/src/grokcore/component/tests/adapter/nomodel.py
RENAMED
|
File without changes
|
|
File without changes
|
{grokcore_component-4.1.1 → grokcore_component-4.2}/src/grokcore/component/tests/adapter/order.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{grokcore_component-4.1.1 → grokcore_component-4.2}/src/grokcore/component/tests/event/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{grokcore_component-4.1.1 → grokcore_component-4.2}/src/grokcore/component/tests/event/subscriber.py
RENAMED
|
File without changes
|
{grokcore_component-4.1.1 → grokcore_component-4.2}/src/grokcore/component/tests/grok_component.txt
RENAMED
|
File without changes
|
{grokcore_component-4.1.1 → grokcore_component-4.2}/src/grokcore/component/tests/grokker/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{grokcore_component-4.1.1 → grokcore_component-4.2}/src/grokcore/component/tests/grokker/onlyonce.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{grokcore_component-4.1.1 → grokcore_component-4.2}/src/grokcore/component/tests/grokker/priority.py
RENAMED
|
File without changes
|
|
File without changes
|
{grokcore_component-4.1.1 → grokcore_component-4.2}/src/grokcore/component/tests/inherit/__init__.py
RENAMED
|
File without changes
|
{grokcore_component-4.1.1 → grokcore_component-4.2}/src/grokcore/component/tests/inherit/inherit.py
RENAMED
|
File without changes
|
|
File without changes
|
{grokcore_component-4.1.1 → grokcore_component-4.2}/src/grokcore/component/tests/order/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{grokcore_component-4.1.1 → grokcore_component-4.2}/src/grokcore/component/tests/order/inter1.py
RENAMED
|
File without changes
|
{grokcore_component-4.1.1 → grokcore_component-4.2}/src/grokcore/component/tests/order/inter2.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{grokcore_component-4.1.1 → grokcore_component-4.2}/src/grokcore/component/tests/utility/__init__.py
RENAMED
|
File without changes
|
{grokcore_component-4.1.1 → grokcore_component-4.2}/src/grokcore/component/tests/utility/conflict.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{grokcore_component-4.1.1 → grokcore_component-4.2}/src/grokcore/component/tests/utility/utility.py
RENAMED
|
File without changes
|
{grokcore_component-4.1.1 → grokcore_component-4.2}/src/grokcore/component/tests/view/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{grokcore_component-4.1.1 → grokcore_component-4.2}/src/grokcore/component/tests/zcml/__init__.py
RENAMED
|
File without changes
|
{grokcore_component-4.1.1 → grokcore_component-4.2}/src/grokcore/component/tests/zcml/conflict.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{grokcore_component-4.1.1 → grokcore_component-4.2}/src/grokcore/component/tests/zcml/exclude.py
RENAMED
|
File without changes
|
{grokcore_component-4.1.1 → grokcore_component-4.2}/src/grokcore/component/tests/zcml/excludemany.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{grokcore_component-4.1.1 → grokcore_component-4.2}/src/grokcore.component.egg-info/not-zip-safe
RENAMED
|
File without changes
|
{grokcore_component-4.1.1 → grokcore_component-4.2}/src/grokcore.component.egg-info/requires.txt
RENAMED
|
File without changes
|
{grokcore_component-4.1.1 → grokcore_component-4.2}/src/grokcore.component.egg-info/top_level.txt
RENAMED
|
File without changes
|