classcore 1.6__tar.gz → 1.6.1__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.
- {classcore-1.6 → classcore-1.6.1}/PKG-INFO +1 -1
- {classcore-1.6 → classcore-1.6.1}/sources/classcore/__init__.py +1 -1
- {classcore-1.6 → classcore-1.6.1}/sources/classcore/standard/modules.py +42 -3
- {classcore-1.6 → classcore-1.6.1}/.gitignore +0 -0
- {classcore-1.6 → classcore-1.6.1}/LICENSE.txt +0 -0
- {classcore-1.6 → classcore-1.6.1}/README.rst +0 -0
- {classcore-1.6 → classcore-1.6.1}/pyproject.toml +0 -0
- {classcore-1.6 → classcore-1.6.1}/sources/classcore/__/__init__.py +0 -0
- {classcore-1.6 → classcore-1.6.1}/sources/classcore/__/doctab.py +0 -0
- {classcore-1.6 → classcore-1.6.1}/sources/classcore/__/imports.py +0 -0
- {classcore-1.6 → classcore-1.6.1}/sources/classcore/__/nomina.py +0 -0
- {classcore-1.6 → classcore-1.6.1}/sources/classcore/decorators.py +0 -0
- {classcore-1.6 → classcore-1.6.1}/sources/classcore/exceptions.py +0 -0
- {classcore-1.6 → classcore-1.6.1}/sources/classcore/factories.py +0 -0
- {classcore-1.6 → classcore-1.6.1}/sources/classcore/nomina.py +0 -0
- {classcore-1.6 → classcore-1.6.1}/sources/classcore/py.typed +0 -0
- {classcore-1.6 → classcore-1.6.1}/sources/classcore/standard/__.py +0 -0
- {classcore-1.6 → classcore-1.6.1}/sources/classcore/standard/__init__.py +0 -0
- {classcore-1.6 → classcore-1.6.1}/sources/classcore/standard/behaviors.py +0 -0
- {classcore-1.6 → classcore-1.6.1}/sources/classcore/standard/classes.py +0 -0
- {classcore-1.6 → classcore-1.6.1}/sources/classcore/standard/decorators.py +0 -0
- {classcore-1.6 → classcore-1.6.1}/sources/classcore/standard/dynadoc.py +0 -0
- {classcore-1.6 → classcore-1.6.1}/sources/classcore/standard/nomina.py +0 -0
- {classcore-1.6 → classcore-1.6.1}/sources/classcore/utilities.py +0 -0
|
@@ -81,7 +81,7 @@ def finalize_module( # noqa: PLR0913
|
|
|
81
81
|
*fragments,
|
|
82
82
|
introspection = introspection,
|
|
83
83
|
table = dynadoc_table )
|
|
84
|
-
|
|
84
|
+
_reclassify_module(
|
|
85
85
|
module,
|
|
86
86
|
attributes_namer = attributes_namer,
|
|
87
87
|
recursive = recursive,
|
|
@@ -108,7 +108,6 @@ def reclassify_modules(
|
|
|
108
108
|
__.ddoc.Doc( ''' New class for module. ''' ),
|
|
109
109
|
] = Module,
|
|
110
110
|
) -> None:
|
|
111
|
-
# TODO? Ensure correct operation with namespace packages.
|
|
112
111
|
''' Reclassifies modules to have attributes concealment and immutability.
|
|
113
112
|
|
|
114
113
|
Can operate on individual modules or entire package hierarchies.
|
|
@@ -121,6 +120,46 @@ def reclassify_modules(
|
|
|
121
120
|
|
|
122
121
|
Has no effect on already-reclassified modules.
|
|
123
122
|
'''
|
|
123
|
+
_reclassify_module(
|
|
124
|
+
attributes,
|
|
125
|
+
attributes_namer = attributes_namer,
|
|
126
|
+
recursive = recursive,
|
|
127
|
+
replacement_class = replacement_class )
|
|
128
|
+
|
|
129
|
+
|
|
130
|
+
def _reclassify_module(
|
|
131
|
+
attributes: __.typx.Annotated[
|
|
132
|
+
__.cabc.Mapping[ str, __.typx.Any ] | __.types.ModuleType | str,
|
|
133
|
+
__.ddoc.Doc(
|
|
134
|
+
''' Module, module name, or dictionary of object attributes. ''' ),
|
|
135
|
+
], /, *,
|
|
136
|
+
attributes_namer: __.typx.Annotated[
|
|
137
|
+
_nomina.AttributesNamer,
|
|
138
|
+
__.ddoc.Doc(
|
|
139
|
+
''' Attributes namer function with which to seal class. ''' ),
|
|
140
|
+
] = __.calculate_attrname,
|
|
141
|
+
recursive: __.typx.Annotated[
|
|
142
|
+
bool, __.ddoc.Doc( ''' Recursively reclassify package modules? ''' )
|
|
143
|
+
] = False,
|
|
144
|
+
replacement_class: __.typx.Annotated[
|
|
145
|
+
type[ __.types.ModuleType ],
|
|
146
|
+
__.ddoc.Doc( ''' New class for module. ''' ),
|
|
147
|
+
] = Module,
|
|
148
|
+
) -> None:
|
|
149
|
+
# TODO? Ensure correct operation with namespace packages.
|
|
150
|
+
''' Core implementation for module reclassification.
|
|
151
|
+
|
|
152
|
+
Reclassifies modules to have attributes concealment and immutability.
|
|
153
|
+
Can operate on individual modules or entire package hierarchies.
|
|
154
|
+
|
|
155
|
+
Only converts modules within the same package to prevent unintended
|
|
156
|
+
modifications to external modules.
|
|
157
|
+
|
|
158
|
+
When used with a dictionary, converts any module objects found as
|
|
159
|
+
values if they belong to the same package.
|
|
160
|
+
|
|
161
|
+
Has no effect on already-reclassified modules.
|
|
162
|
+
'''
|
|
124
163
|
if isinstance( attributes, str ):
|
|
125
164
|
attributes = __.sys.modules[ attributes ]
|
|
126
165
|
if isinstance( attributes, __.types.ModuleType ):
|
|
@@ -134,7 +173,7 @@ def reclassify_modules(
|
|
|
134
173
|
if not __.inspect.ismodule( value ): continue
|
|
135
174
|
if not value.__name__.startswith( f"{package_name}." ): continue
|
|
136
175
|
if recursive:
|
|
137
|
-
|
|
176
|
+
_reclassify_module(
|
|
138
177
|
value,
|
|
139
178
|
attributes_namer = attributes_namer,
|
|
140
179
|
recursive = True,
|
|
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
|
|
File without changes
|
|
File without changes
|