classcore 1.5.2__tar.gz → 1.5.3__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.
Files changed (24) hide show
  1. {classcore-1.5.2 → classcore-1.5.3}/PKG-INFO +1 -1
  2. {classcore-1.5.2 → classcore-1.5.3}/sources/classcore/__init__.py +1 -1
  3. {classcore-1.5.2 → classcore-1.5.3}/sources/classcore/standard/behaviors.py +1 -0
  4. {classcore-1.5.2 → classcore-1.5.3}/sources/classcore/standard/decorators.py +6 -4
  5. {classcore-1.5.2 → classcore-1.5.3}/sources/classcore/utilities.py +2 -2
  6. {classcore-1.5.2 → classcore-1.5.3}/.gitignore +0 -0
  7. {classcore-1.5.2 → classcore-1.5.3}/LICENSE.txt +0 -0
  8. {classcore-1.5.2 → classcore-1.5.3}/README.rst +0 -0
  9. {classcore-1.5.2 → classcore-1.5.3}/pyproject.toml +0 -0
  10. {classcore-1.5.2 → classcore-1.5.3}/sources/classcore/__/__init__.py +0 -0
  11. {classcore-1.5.2 → classcore-1.5.3}/sources/classcore/__/doctab.py +0 -0
  12. {classcore-1.5.2 → classcore-1.5.3}/sources/classcore/__/imports.py +0 -0
  13. {classcore-1.5.2 → classcore-1.5.3}/sources/classcore/__/nomina.py +0 -0
  14. {classcore-1.5.2 → classcore-1.5.3}/sources/classcore/decorators.py +0 -0
  15. {classcore-1.5.2 → classcore-1.5.3}/sources/classcore/exceptions.py +0 -0
  16. {classcore-1.5.2 → classcore-1.5.3}/sources/classcore/factories.py +0 -0
  17. {classcore-1.5.2 → classcore-1.5.3}/sources/classcore/nomina.py +0 -0
  18. {classcore-1.5.2 → classcore-1.5.3}/sources/classcore/py.typed +0 -0
  19. {classcore-1.5.2 → classcore-1.5.3}/sources/classcore/standard/__.py +0 -0
  20. {classcore-1.5.2 → classcore-1.5.3}/sources/classcore/standard/__init__.py +0 -0
  21. {classcore-1.5.2 → classcore-1.5.3}/sources/classcore/standard/classes.py +0 -0
  22. {classcore-1.5.2 → classcore-1.5.3}/sources/classcore/standard/dynadoc.py +0 -0
  23. {classcore-1.5.2 → classcore-1.5.3}/sources/classcore/standard/modules.py +0 -0
  24. {classcore-1.5.2 → classcore-1.5.3}/sources/classcore/standard/nomina.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: classcore
3
- Version: 1.5.2
3
+ Version: 1.5.3
4
4
  Summary: Foundational class factories and decorators.
5
5
  Project-URL: Homepage, https://github.com/emcd/python-classcore
6
6
  Project-URL: Documentation, https://emcd.github.io/python-classcore
@@ -62,7 +62,7 @@ from .factories import *
62
62
 
63
63
 
64
64
  __version__: __.typx.Annotated[ str, __.ddoc.Visibilities.Reveal ]
65
- __version__ = '1.5.2'
65
+ __version__ = '1.5.3'
66
66
 
67
67
 
68
68
  standard.dynadoc.assign_module_docstring( __name__, table = __.fragments )
@@ -182,6 +182,7 @@ def augment_class_attributes_allocations(
182
182
  __.cabc.Sequence[ str ],
183
183
  None
184
184
  ] = namespace.get( '__slots__' )
185
+ if slots and behaviors_name in slots: return
185
186
  if isinstance( slots, __.cabc.Mapping ):
186
187
  slots_ = dict( slots )
187
188
  slots_[ behaviors_name ] = 'Active behaviors.'
@@ -47,11 +47,13 @@ def prepare_dataclass_for_instances(
47
47
  ''' Annotates dataclass in support of instantiation machinery. '''
48
48
  annotations = __.inspect.get_annotations( cls )
49
49
  behaviors_name = attributes_namer( 'instance', 'behaviors' )
50
- # TODO? Only use mangling if not slotted.
51
- behaviors_name_m = _utilities.mangle_name( cls, behaviors_name )
52
- annotations[ behaviors_name_m ] = set[ str ]
50
+ # TODO: Only use mangling if not slotted.
51
+ # behaviors_name_ = _utilities.mangle_name( cls, behaviors_name )
52
+ behaviors_name_ = behaviors_name
53
+ annotations[ behaviors_name_ ] = set[ str ]
53
54
  setattr( cls, '__annotations__', annotations ) # in case of absence
54
- setattr( cls, behaviors_name_m, __.dcls.field( init = False ) )
55
+ setattr( cls, behaviors_name_, __.dcls.field(
56
+ compare = False, hash = False, init = False, repr = False ) )
55
57
 
56
58
 
57
59
  def apply_cfc_core_functions(
@@ -99,11 +99,11 @@ def mangle_name( objct: object, /, name: str ) -> str:
99
99
  # Need to debug weird issue with using 'id' early on dataclasses.
100
100
  if not __.inspect.isclass( objct ):
101
101
  return mangle_name( type( objct ), name )
102
- # return "{name}_{uid}".format( name = name, uid = id( objct ) )
102
+ # return "{name}{uid}".format( name = name, uid = id( objct ) )
103
103
  namehash = __.hashlib.sha256( )
104
104
  namehash.update( qualify_class_name( objct ).encode( ) )
105
105
  namehash_hex = namehash.hexdigest( )
106
- return f"{name}_{namehash_hex}"
106
+ return f"{name}{namehash_hex}"
107
107
 
108
108
 
109
109
  def qualify_class_name( cls: type ) -> str:
File without changes
File without changes
File without changes
File without changes