classcore 1.5__tar.gz → 1.5.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.5 → classcore-1.5.1}/PKG-INFO +1 -1
- {classcore-1.5 → classcore-1.5.1}/sources/classcore/__init__.py +1 -1
- {classcore-1.5 → classcore-1.5.1}/sources/classcore/standard/decorators.py +46 -16
- {classcore-1.5 → classcore-1.5.1}/.gitignore +0 -0
- {classcore-1.5 → classcore-1.5.1}/LICENSE.txt +0 -0
- {classcore-1.5 → classcore-1.5.1}/README.rst +0 -0
- {classcore-1.5 → classcore-1.5.1}/pyproject.toml +0 -0
- {classcore-1.5 → classcore-1.5.1}/sources/classcore/__/__init__.py +0 -0
- {classcore-1.5 → classcore-1.5.1}/sources/classcore/__/doctab.py +0 -0
- {classcore-1.5 → classcore-1.5.1}/sources/classcore/__/imports.py +0 -0
- {classcore-1.5 → classcore-1.5.1}/sources/classcore/__/nomina.py +0 -0
- {classcore-1.5 → classcore-1.5.1}/sources/classcore/decorators.py +0 -0
- {classcore-1.5 → classcore-1.5.1}/sources/classcore/exceptions.py +0 -0
- {classcore-1.5 → classcore-1.5.1}/sources/classcore/factories.py +0 -0
- {classcore-1.5 → classcore-1.5.1}/sources/classcore/nomina.py +0 -0
- {classcore-1.5 → classcore-1.5.1}/sources/classcore/py.typed +0 -0
- {classcore-1.5 → classcore-1.5.1}/sources/classcore/standard/__.py +0 -0
- {classcore-1.5 → classcore-1.5.1}/sources/classcore/standard/__init__.py +0 -0
- {classcore-1.5 → classcore-1.5.1}/sources/classcore/standard/behaviors.py +0 -0
- {classcore-1.5 → classcore-1.5.1}/sources/classcore/standard/classes.py +0 -0
- {classcore-1.5 → classcore-1.5.1}/sources/classcore/standard/dynadoc.py +0 -0
- {classcore-1.5 → classcore-1.5.1}/sources/classcore/standard/modules.py +0 -0
- {classcore-1.5 → classcore-1.5.1}/sources/classcore/standard/nomina.py +0 -0
- {classcore-1.5 → classcore-1.5.1}/sources/classcore/utilities.py +0 -0
|
@@ -54,6 +54,33 @@ def prepare_dataclass_for_instances(
|
|
|
54
54
|
setattr( cls, behaviors_name_m, __.dcls.field( init = False ) )
|
|
55
55
|
|
|
56
56
|
|
|
57
|
+
def apply_cfc_core_functions(
|
|
58
|
+
clscls: type[ __.T ], /,
|
|
59
|
+
attributes_namer: _nomina.AttributesNamer,
|
|
60
|
+
assigner_core: __.typx.Optional[ _nomina.AssignerCore ] = None,
|
|
61
|
+
deleter_core: __.typx.Optional[ _nomina.DeleterCore ] = None,
|
|
62
|
+
surveyor_core: __.typx.Optional[ _nomina.SurveyorCore ] = None,
|
|
63
|
+
) -> None:
|
|
64
|
+
''' Stores core functions on metaclass. '''
|
|
65
|
+
cores = dict(
|
|
66
|
+
classes_assigner_core = assigner_core,
|
|
67
|
+
classes_deleter_core = deleter_core,
|
|
68
|
+
classes_surveyor_core = surveyor_core )
|
|
69
|
+
cores_default = dict(
|
|
70
|
+
assigner = _behaviors.assign_attribute_if_mutable,
|
|
71
|
+
deleter = _behaviors.delete_attribute_if_mutable,
|
|
72
|
+
surveyor = _behaviors.survey_visible_attributes )
|
|
73
|
+
for core_name in ( 'assigner', 'deleter', 'surveyor' ):
|
|
74
|
+
core_function = _behaviors.access_core_function(
|
|
75
|
+
clscls,
|
|
76
|
+
attributes_namer = attributes_namer,
|
|
77
|
+
arguments = cores,
|
|
78
|
+
level = 'classes', name = core_name,
|
|
79
|
+
default = cores_default[ core_name ] )
|
|
80
|
+
core_aname = attributes_namer( 'classes', f"{core_name}_core" )
|
|
81
|
+
setattr( clscls, core_aname, core_function )
|
|
82
|
+
|
|
83
|
+
|
|
57
84
|
def apply_cfc_dynadoc_configuration(
|
|
58
85
|
clscls: type[ __.T ], /,
|
|
59
86
|
attributes_namer: _nomina.AttributesNamer,
|
|
@@ -107,7 +134,7 @@ def apply_cfc_attributes_assigner(
|
|
|
107
134
|
clscls: type[ __.T ], /,
|
|
108
135
|
attributes_namer: _nomina.AttributesNamer,
|
|
109
136
|
error_class_provider: _nomina.ErrorClassProvider,
|
|
110
|
-
implementation_core: _nomina.AssignerCore,
|
|
137
|
+
implementation_core: __.typx.Optional[ _nomina.AssignerCore ],
|
|
111
138
|
) -> None:
|
|
112
139
|
''' Injects '__setattr__' method into metaclass. '''
|
|
113
140
|
decorator = produce_attributes_assignment_decorator(
|
|
@@ -122,7 +149,7 @@ def apply_cfc_attributes_deleter(
|
|
|
122
149
|
clscls: type[ __.T ], /,
|
|
123
150
|
attributes_namer: _nomina.AttributesNamer,
|
|
124
151
|
error_class_provider: _nomina.ErrorClassProvider,
|
|
125
|
-
implementation_core: _nomina.DeleterCore,
|
|
152
|
+
implementation_core: __.typx.Optional[ _nomina.DeleterCore ],
|
|
126
153
|
) -> None:
|
|
127
154
|
''' Injects '__delattr__' method into metaclass. '''
|
|
128
155
|
decorator = produce_attributes_deletion_decorator(
|
|
@@ -136,7 +163,7 @@ def apply_cfc_attributes_deleter(
|
|
|
136
163
|
def apply_cfc_attributes_surveyor(
|
|
137
164
|
clscls: type[ __.T ],
|
|
138
165
|
attributes_namer: _nomina.AttributesNamer,
|
|
139
|
-
implementation_core: _nomina.SurveyorCore,
|
|
166
|
+
implementation_core: __.typx.Optional[ _nomina.SurveyorCore ],
|
|
140
167
|
) -> None:
|
|
141
168
|
''' Injects '__dir__' method into metaclass. '''
|
|
142
169
|
decorator = produce_attributes_surveillance_decorator(
|
|
@@ -149,17 +176,20 @@ def apply_cfc_attributes_surveyor(
|
|
|
149
176
|
def class_factory( # noqa: PLR0913
|
|
150
177
|
attributes_namer: _nomina.AttributesNamer = __.calculate_attrname,
|
|
151
178
|
error_class_provider: _nomina.ErrorClassProvider = __.provide_error_class,
|
|
152
|
-
assigner_core: _nomina.AssignerCore =
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
_behaviors.delete_attribute_if_mutable ),
|
|
156
|
-
surveyor_core: _nomina.SurveyorCore = (
|
|
157
|
-
_behaviors.survey_visible_attributes ),
|
|
179
|
+
assigner_core: __.typx.Optional[ _nomina.AssignerCore ] = None,
|
|
180
|
+
deleter_core: __.typx.Optional[ _nomina.DeleterCore ] = None,
|
|
181
|
+
surveyor_core: __.typx.Optional[ _nomina.SurveyorCore ] = None,
|
|
158
182
|
dynadoc_configuration: __.cabc.Mapping[ str, __.typx.Any ] = (
|
|
159
183
|
_dynadoc_configuration ),
|
|
160
184
|
) -> _nomina.Decorator[ __.T ]:
|
|
161
185
|
''' Produces decorator to apply standard behaviors to metaclass. '''
|
|
162
186
|
def decorate( clscls: type[ __.T ] ) -> type[ __.T ]:
|
|
187
|
+
apply_cfc_core_functions(
|
|
188
|
+
clscls,
|
|
189
|
+
attributes_namer = attributes_namer,
|
|
190
|
+
assigner_core = assigner_core,
|
|
191
|
+
deleter_core = deleter_core,
|
|
192
|
+
surveyor_core = surveyor_core )
|
|
163
193
|
apply_cfc_dynadoc_configuration(
|
|
164
194
|
clscls,
|
|
165
195
|
attributes_namer = attributes_namer,
|
|
@@ -281,8 +311,8 @@ def produce_attributes_assignment_decorator(
|
|
|
281
311
|
core = _behaviors.access_core_function(
|
|
282
312
|
cls,
|
|
283
313
|
attributes_namer = attributes_namer,
|
|
284
|
-
arguments = { f"{
|
|
285
|
-
level =
|
|
314
|
+
arguments = { f"{level}_assigner": implementation_core },
|
|
315
|
+
level = level, name = 'assigner',
|
|
286
316
|
default = _behaviors.assign_attribute_if_mutable )
|
|
287
317
|
|
|
288
318
|
if original is None:
|
|
@@ -344,8 +374,8 @@ def produce_attributes_deletion_decorator(
|
|
|
344
374
|
core = _behaviors.access_core_function(
|
|
345
375
|
cls,
|
|
346
376
|
attributes_namer = attributes_namer,
|
|
347
|
-
arguments = { f"{
|
|
348
|
-
level =
|
|
377
|
+
arguments = { f"{level}_deleter": implementation_core },
|
|
378
|
+
level = level, name = 'deleter',
|
|
349
379
|
default = _behaviors.delete_attribute_if_mutable )
|
|
350
380
|
|
|
351
381
|
if original is None:
|
|
@@ -402,8 +432,8 @@ def produce_attributes_surveillance_decorator(
|
|
|
402
432
|
core = _behaviors.access_core_function(
|
|
403
433
|
cls,
|
|
404
434
|
attributes_namer = attributes_namer,
|
|
405
|
-
arguments = { f"{
|
|
406
|
-
level =
|
|
435
|
+
arguments = { f"{level}_surveyor": implementation_core },
|
|
436
|
+
level = level, name = 'surveyor',
|
|
407
437
|
default = _behaviors.survey_visible_attributes )
|
|
408
438
|
|
|
409
439
|
if original is None:
|
|
@@ -512,7 +542,7 @@ def _produce_instances_decoration_preparers(
|
|
|
512
542
|
if class_preparer is not None:
|
|
513
543
|
preprocessors.append(
|
|
514
544
|
__.funct.partial(
|
|
515
|
-
class_preparer, attributes_namer = attributes_namer
|
|
545
|
+
class_preparer, attributes_namer = attributes_namer ) )
|
|
516
546
|
return tuple( preprocessors )
|
|
517
547
|
|
|
518
548
|
|
|
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
|