enumerific 1.0.3__py3-none-any.whl → 1.0.4__py3-none-any.whl

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.
enumerific/extensible.py CHANGED
@@ -1707,7 +1707,18 @@ class Enumeration(metaclass=EnumerationMetaClass):
1707
1707
  elif self._annotations and name in self._annotations:
1708
1708
  return self._annotations[name]
1709
1709
  elif self._context and name in dir(self._context):
1710
- return object.__getattribute__(self._context, name)
1710
+ # Handle class methods, instance methods and properties here; because we are
1711
+ # performing some special handling for enumerations, we need to reintroduce
1712
+ # the necessary context to the methods here via the descriptor protocol so
1713
+ # the methods and properties work as expected:
1714
+ if callable(attribute := object.__getattribute__(self._context, name)):
1715
+ return attribute.__get__(self)
1716
+ elif isinstance(attribute, property):
1717
+ return attribute.__get__(self)
1718
+ elif isinstance(attribute, classmethod):
1719
+ return attribute.__get__(self)
1720
+ else:
1721
+ return attribute
1711
1722
  else:
1712
1723
  # EnumerationOptionError subclasses AttributeError so we adhere to convention
1713
1724
  raise EnumerationOptionError(
enumerific/version.txt CHANGED
@@ -1 +1 @@
1
- 1.0.3
1
+ 1.0.4
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: enumerific
3
- Version: 1.0.3
3
+ Version: 1.0.4
4
4
  Summary: Simplifies working with Python enums.
5
5
  Author: Daniel Sissman
6
6
  License-Expression: MIT
@@ -0,0 +1,12 @@
1
+ enumerific/__init__.py,sha256=K9iFirgxSkrHgXfhocOvgRkskGe0VfWRgxEvppnVWBM,587
2
+ enumerific/exceptions.py,sha256=lvfcH1cz43hDjzSUpgm1-OZjKzxo--fyZ8UsBS-GiZA,359
3
+ enumerific/extensible.py,sha256=nf82wPMWSzfpjF-LB5-UxreDji01cztG8rLWJe50SXE,84958
4
+ enumerific/logging.py,sha256=zz1Phnot1BFWMoxwvZ0FlZDsiYZZYhz-_S4IzgPYc40,97
5
+ enumerific/standard.py,sha256=xQhhwlcYZ6-8DmgscbV38g2Ol5Z8_vvBwonz-Ww0I40,3254
6
+ enumerific/version.txt,sha256=rqWtvvV0eFJzxPOcG3aHz4AZk-DLa_Z4GkFonk7bsgw,5
7
+ enumerific-1.0.4.dist-info/licenses/LICENSE.md,sha256=j1XidOCGUhPx7CyXA31uC0XGKDRnvUcZpMp161qHI6g,1077
8
+ enumerific-1.0.4.dist-info/METADATA,sha256=WjQvIzsJYm4D75GhiF703QwI39Ph6TP55DfcNY18xP8,32990
9
+ enumerific-1.0.4.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
10
+ enumerific-1.0.4.dist-info/top_level.txt,sha256=hyemsMgPYZgSx71XHmFRF-gvc_2Y4rDAESR8e0hbYHU,11
11
+ enumerific-1.0.4.dist-info/zip-safe,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
12
+ enumerific-1.0.4.dist-info/RECORD,,
@@ -1,12 +0,0 @@
1
- enumerific/__init__.py,sha256=K9iFirgxSkrHgXfhocOvgRkskGe0VfWRgxEvppnVWBM,587
2
- enumerific/exceptions.py,sha256=lvfcH1cz43hDjzSUpgm1-OZjKzxo--fyZ8UsBS-GiZA,359
3
- enumerific/extensible.py,sha256=AS9rU-luPjfau_PHFa52r-rlaDWpbxiF4qgnh4BdH9o,84320
4
- enumerific/logging.py,sha256=zz1Phnot1BFWMoxwvZ0FlZDsiYZZYhz-_S4IzgPYc40,97
5
- enumerific/standard.py,sha256=xQhhwlcYZ6-8DmgscbV38g2Ol5Z8_vvBwonz-Ww0I40,3254
6
- enumerific/version.txt,sha256=INLLCW0atBpBQCRtEvB79rjLdD_UgSK3JTLAPUTFwUo,5
7
- enumerific-1.0.3.dist-info/licenses/LICENSE.md,sha256=j1XidOCGUhPx7CyXA31uC0XGKDRnvUcZpMp161qHI6g,1077
8
- enumerific-1.0.3.dist-info/METADATA,sha256=EEriXyK6TOyNDx0_juEMGnyf4h5NKP_o2JNWncNssgY,32990
9
- enumerific-1.0.3.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
10
- enumerific-1.0.3.dist-info/top_level.txt,sha256=hyemsMgPYZgSx71XHmFRF-gvc_2Y4rDAESR8e0hbYHU,11
11
- enumerific-1.0.3.dist-info/zip-safe,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
12
- enumerific-1.0.3.dist-info/RECORD,,