enum-properties 2.2.4__tar.gz → 2.2.5__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 (82) hide show
  1. {enum_properties-2.2.4 → enum_properties-2.2.5}/PKG-INFO +3 -3
  2. {enum_properties-2.2.4 → enum_properties-2.2.5}/README.md +2 -2
  3. {enum_properties-2.2.4 → enum_properties-2.2.5}/doc/source/changelog.rst +6 -0
  4. {enum_properties-2.2.4 → enum_properties-2.2.5}/pyproject.toml +1 -1
  5. {enum_properties-2.2.4 → enum_properties-2.2.5}/src/enum_properties/__init__.py +1 -1
  6. {enum_properties-2.2.4 → enum_properties-2.2.5}/tests/annotations/test_symmetric.py +25 -2
  7. {enum_properties-2.2.4 → enum_properties-2.2.5}/uv.lock +1 -1
  8. {enum_properties-2.2.4 → enum_properties-2.2.5}/.codecov.yml +0 -0
  9. {enum_properties-2.2.4 → enum_properties-2.2.5}/.github/dependabot.yml +0 -0
  10. {enum_properties-2.2.4 → enum_properties-2.2.5}/.github/workflows/lint.yml +0 -0
  11. {enum_properties-2.2.4 → enum_properties-2.2.5}/.github/workflows/release.yml +0 -0
  12. {enum_properties-2.2.4 → enum_properties-2.2.5}/.github/workflows/scorecard.yml +0 -0
  13. {enum_properties-2.2.4 → enum_properties-2.2.5}/.github/workflows/test.yml +0 -0
  14. {enum_properties-2.2.4 → enum_properties-2.2.5}/.gitignore +0 -0
  15. {enum_properties-2.2.4 → enum_properties-2.2.5}/.pre-commit-config.yaml +0 -0
  16. {enum_properties-2.2.4 → enum_properties-2.2.5}/CODE_OF_CONDUCT.md +0 -0
  17. {enum_properties-2.2.4 → enum_properties-2.2.5}/CONTRIBUTING.md +0 -0
  18. {enum_properties-2.2.4 → enum_properties-2.2.5}/LICENSE +0 -0
  19. {enum_properties-2.2.4 → enum_properties-2.2.5}/SECURITY.md +0 -0
  20. {enum_properties-2.2.4 → enum_properties-2.2.5}/doc/.readthedocs.yaml +0 -0
  21. {enum_properties-2.2.4 → enum_properties-2.2.5}/doc/source/conf.py +0 -0
  22. {enum_properties-2.2.4 → enum_properties-2.2.5}/doc/source/howto.rst +0 -0
  23. {enum_properties-2.2.4 → enum_properties-2.2.5}/doc/source/index.rst +0 -0
  24. {enum_properties-2.2.4 → enum_properties-2.2.5}/doc/source/reference.rst +0 -0
  25. {enum_properties-2.2.4 → enum_properties-2.2.5}/doc/source/tutorial.rst +0 -0
  26. {enum_properties-2.2.4 → enum_properties-2.2.5}/justfile +0 -0
  27. {enum_properties-2.2.4 → enum_properties-2.2.5}/src/enum_properties/py.typed +0 -0
  28. {enum_properties-2.2.4 → enum_properties-2.2.5}/tests/__init__.py +0 -0
  29. {enum_properties-2.2.4 → enum_properties-2.2.5}/tests/annotations/test.py +0 -0
  30. {enum_properties-2.2.4 → enum_properties-2.2.5}/tests/annotations/test_flags.py +0 -0
  31. {enum_properties-2.2.4 → enum_properties-2.2.5}/tests/annotations/test_interface_eq.py +0 -0
  32. {enum_properties-2.2.4 → enum_properties-2.2.5}/tests/annotations/test_nestedclass.py +0 -0
  33. {enum_properties-2.2.4 → enum_properties-2.2.5}/tests/annotations/test_none_coercion.py +0 -0
  34. {enum_properties-2.2.4 → enum_properties-2.2.5}/tests/annotations/test_perf.py +0 -0
  35. {enum_properties-2.2.4 → enum_properties-2.2.5}/tests/annotations/test_pickle.py +0 -0
  36. {enum_properties-2.2.4 → enum_properties-2.2.5}/tests/annotations/test_specialize.py +0 -0
  37. {enum_properties-2.2.4 → enum_properties-2.2.5}/tests/annotations/test_type_hints.py +0 -0
  38. {enum_properties-2.2.4 → enum_properties-2.2.5}/tests/big_enum.py +0 -0
  39. {enum_properties-2.2.4 → enum_properties-2.2.5}/tests/big_enum_annotations.py +0 -0
  40. {enum_properties-2.2.4 → enum_properties-2.2.5}/tests/examples/__init__.py +0 -0
  41. {enum_properties-2.2.4 → enum_properties-2.2.5}/tests/examples/address.py +0 -0
  42. {enum_properties-2.2.4 → enum_properties-2.2.5}/tests/examples/color_example.py +0 -0
  43. {enum_properties-2.2.4 → enum_properties-2.2.5}/tests/examples/hash_equiv_def.py +0 -0
  44. {enum_properties-2.2.4 → enum_properties-2.2.5}/tests/examples/howto_add_props.py +0 -0
  45. {enum_properties-2.2.4 → enum_properties-2.2.5}/tests/examples/howto_dataclass.py +0 -0
  46. {enum_properties-2.2.4 → enum_properties-2.2.5}/tests/examples/howto_dataclass_integration.py +0 -0
  47. {enum_properties-2.2.4 → enum_properties-2.2.5}/tests/examples/howto_flag.py +0 -0
  48. {enum_properties-2.2.4 → enum_properties-2.2.5}/tests/examples/howto_flag_boundaries.py +0 -0
  49. {enum_properties-2.2.4 → enum_properties-2.2.5}/tests/examples/howto_flags_no_iterable.py +0 -0
  50. {enum_properties-2.2.4 → enum_properties-2.2.5}/tests/examples/howto_hash_equiv.py +0 -0
  51. {enum_properties-2.2.4 → enum_properties-2.2.5}/tests/examples/howto_hash_equiv_def.py +0 -0
  52. {enum_properties-2.2.4 → enum_properties-2.2.5}/tests/examples/howto_legacy.py +0 -0
  53. {enum_properties-2.2.4 → enum_properties-2.2.5}/tests/examples/howto_metaclass.py +0 -0
  54. {enum_properties-2.2.4 → enum_properties-2.2.5}/tests/examples/howto_nested_classes.py +0 -0
  55. {enum_properties-2.2.4 → enum_properties-2.2.5}/tests/examples/howto_nested_classes_313.py +0 -0
  56. {enum_properties-2.2.4 → enum_properties-2.2.5}/tests/examples/howto_specialized.py +0 -0
  57. {enum_properties-2.2.4 → enum_properties-2.2.5}/tests/examples/howto_specialized_default.py +0 -0
  58. {enum_properties-2.2.4 → enum_properties-2.2.5}/tests/examples/howto_specialized_list.py +0 -0
  59. {enum_properties-2.2.4 → enum_properties-2.2.5}/tests/examples/howto_specialized_missing.py +0 -0
  60. {enum_properties-2.2.4 → enum_properties-2.2.5}/tests/examples/howto_symmetric_builtins.py +0 -0
  61. {enum_properties-2.2.4 → enum_properties-2.2.5}/tests/examples/howto_symmetric_decorator.py +0 -0
  62. {enum_properties-2.2.4 → enum_properties-2.2.5}/tests/examples/howto_symmetric_metaclass.py +0 -0
  63. {enum_properties-2.2.4 → enum_properties-2.2.5}/tests/examples/howto_symmetric_overload.py +0 -0
  64. {enum_properties-2.2.4 → enum_properties-2.2.5}/tests/examples/howto_symmetry.py +0 -0
  65. {enum_properties-2.2.4 → enum_properties-2.2.5}/tests/examples/howto_verify_unique.py +0 -0
  66. {enum_properties-2.2.4 → enum_properties-2.2.5}/tests/examples/mapbox.py +0 -0
  67. {enum_properties-2.2.4 → enum_properties-2.2.5}/tests/examples/specialization_example.py +0 -0
  68. {enum_properties-2.2.4 → enum_properties-2.2.5}/tests/examples/symmetric_example.py +0 -0
  69. {enum_properties-2.2.4 → enum_properties-2.2.5}/tests/examples/test_examples.py +0 -0
  70. {enum_properties-2.2.4 → enum_properties-2.2.5}/tests/legacy/__init__.py +0 -0
  71. {enum_properties-2.2.4 → enum_properties-2.2.5}/tests/legacy/test.py +0 -0
  72. {enum_properties-2.2.4 → enum_properties-2.2.5}/tests/legacy/test_flags.py +0 -0
  73. {enum_properties-2.2.4 → enum_properties-2.2.5}/tests/legacy/test_interface_eq.py +0 -0
  74. {enum_properties-2.2.4 → enum_properties-2.2.5}/tests/legacy/test_multi_primitives.py +0 -0
  75. {enum_properties-2.2.4 → enum_properties-2.2.5}/tests/legacy/test_nestedclass.py +0 -0
  76. {enum_properties-2.2.4 → enum_properties-2.2.5}/tests/legacy/test_none_coercion.py +0 -0
  77. {enum_properties-2.2.4 → enum_properties-2.2.5}/tests/legacy/test_perf.py +0 -0
  78. {enum_properties-2.2.4 → enum_properties-2.2.5}/tests/legacy/test_pickle.py +0 -0
  79. {enum_properties-2.2.4 → enum_properties-2.2.5}/tests/legacy/test_specialize.py +0 -0
  80. {enum_properties-2.2.4 → enum_properties-2.2.5}/tests/legacy/test_type_hints.py +0 -0
  81. {enum_properties-2.2.4 → enum_properties-2.2.5}/tests/pickle_enums.py +0 -0
  82. {enum_properties-2.2.4 → enum_properties-2.2.5}/tests/pickle_enums_annotations.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: enum-properties
3
- Version: 2.2.4
3
+ Version: 2.2.5
4
4
  Summary: Add properties and method specializations to Python enumeration values with a simple declarative syntax.
5
5
  Project-URL: Homepage, https://github.com/bckohan/enum-properties
6
6
  Project-URL: Documentation, https://enum-properties.readthedocs.io
@@ -39,8 +39,8 @@ Description-Content-Type: text/markdown
39
39
  [![PyPI status](https://img.shields.io/pypi/status/enum-properties.svg)](https://pypi.python.org/pypi/enum-properties)
40
40
  [![Documentation Status](https://readthedocs.org/projects/enum-properties/badge/?version=latest)](http://enum-properties.readthedocs.io/?badge=latest/)
41
41
  [![Code Cov](https://codecov.io/gh/bckohan/enum-properties/branch/main/graph/badge.svg?token=0IZOKN2DYL)](https://codecov.io/gh/bckohan/enum-properties)
42
- [![Test Status](https://github.com/bckohan/django-enum/actions/workflows/test.yml/badge.svg?branch=main)](https://github.com/bckohan/enum-properties/actions/workflows/test.yml?query=branch:main)
43
- [![Lint Status](https://github.com/bckohan/django-enum/actions/workflows/lint.yml/badge.svg?branch=main)](https://github.com/bckohan/enum-properties/actions/workflows/lint.yml?query=branch:main)
42
+ [![Test Status](https://github.com/bckohan/enum-properties/actions/workflows/test.yml/badge.svg?branch=main)](https://github.com/bckohan/enum-properties/actions/workflows/test.yml?query=branch:main)
43
+ [![Lint Status](https://github.com/bckohan/enum-properties/actions/workflows/lint.yml/badge.svg?branch=main)](https://github.com/bckohan/enum-properties/actions/workflows/lint.yml?query=branch:main)
44
44
 
45
45
  Add properties to Python enumeration values with a simple declarative syntax. [Enum Properties](https://enum-properties.readthedocs.io/en/latest) is a lightweight extension to [Python's Enum class](https://docs.python.org/3/library/enum.html). Example:
46
46
 
@@ -7,8 +7,8 @@
7
7
  [![PyPI status](https://img.shields.io/pypi/status/enum-properties.svg)](https://pypi.python.org/pypi/enum-properties)
8
8
  [![Documentation Status](https://readthedocs.org/projects/enum-properties/badge/?version=latest)](http://enum-properties.readthedocs.io/?badge=latest/)
9
9
  [![Code Cov](https://codecov.io/gh/bckohan/enum-properties/branch/main/graph/badge.svg?token=0IZOKN2DYL)](https://codecov.io/gh/bckohan/enum-properties)
10
- [![Test Status](https://github.com/bckohan/django-enum/actions/workflows/test.yml/badge.svg?branch=main)](https://github.com/bckohan/enum-properties/actions/workflows/test.yml?query=branch:main)
11
- [![Lint Status](https://github.com/bckohan/django-enum/actions/workflows/lint.yml/badge.svg?branch=main)](https://github.com/bckohan/enum-properties/actions/workflows/lint.yml?query=branch:main)
10
+ [![Test Status](https://github.com/bckohan/enum-properties/actions/workflows/test.yml/badge.svg?branch=main)](https://github.com/bckohan/enum-properties/actions/workflows/test.yml?query=branch:main)
11
+ [![Lint Status](https://github.com/bckohan/enum-properties/actions/workflows/lint.yml/badge.svg?branch=main)](https://github.com/bckohan/enum-properties/actions/workflows/lint.yml?query=branch:main)
12
12
 
13
13
  Add properties to Python enumeration values with a simple declarative syntax. [Enum Properties](https://enum-properties.readthedocs.io/en/latest) is a lightweight extension to [Python's Enum class](https://docs.python.org/3/library/enum.html). Example:
14
14
 
@@ -2,6 +2,12 @@
2
2
  Change Log
3
3
  ==========
4
4
 
5
+ v2.2.5 (2025-03-22)
6
+ ===================
7
+
8
+ * Fix readme badges.
9
+
10
+
5
11
  v2.2.4 (2025-03-17)
6
12
  ===================
7
13
 
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "enum-properties"
7
- version = "2.2.4"
7
+ version = "2.2.5"
8
8
  description = "Add properties and method specializations to Python enumeration values with a simple declarative syntax."
9
9
  requires-python = ">=3.8,<4.0"
10
10
  authors = [
@@ -19,7 +19,7 @@ from collections.abc import Generator, Hashable, Iterable
19
19
  from dataclasses import dataclass
20
20
  from functools import cached_property
21
21
 
22
- VERSION = (2, 2, 4)
22
+ VERSION = (2, 2, 5)
23
23
 
24
24
  __title__ = "Enum Properties"
25
25
  __version__ = ".".join(str(i) for i in VERSION)
@@ -1,7 +1,11 @@
1
1
  from unittest import TestCase
2
- from typing_extensions import Annotated
3
-
4
2
  from enum_properties import EnumProperties, symmetric
3
+ import sys
4
+
5
+ if sys.version_info[0:2] >= (3, 11):
6
+ from enum import property as enum_property
7
+ else:
8
+ from types import DynamicClassAttribute as enum_property
5
9
 
6
10
 
7
11
  class TestSymmetricDecorator(TestCase):
@@ -82,3 +86,22 @@ class TestSymmetricDecorator(TestCase):
82
86
  self.assertTrue(SymEnum(SymEnum.ONE.label) is SymEnum.ONE)
83
87
  self.assertTrue(SymEnum(SymEnum.TWO.label) is SymEnum.TWO)
84
88
  self.assertTrue(SymEnum(SymEnum.THREE.label) is SymEnum.THREE)
89
+
90
+ def test_make_enum_properties_symmetric(self):
91
+ class SymEnum(EnumProperties):
92
+ ONE = 1
93
+ TWO = 2
94
+ THREE = 3
95
+
96
+ @symmetric(case_fold=True)
97
+ @enum_property
98
+ def label(self):
99
+ return self.name
100
+
101
+ self.assertEqual(SymEnum.ONE.label, "ONE")
102
+ self.assertEqual(SymEnum.TWO.label, "TWO")
103
+ self.assertEqual(SymEnum.THREE.label, "THREE")
104
+
105
+ self.assertTrue(SymEnum("one") is SymEnum.ONE)
106
+ self.assertTrue(SymEnum("tWo") is SymEnum.TWO)
107
+ self.assertTrue(SymEnum("THRee") is SymEnum.THREE)
@@ -605,7 +605,7 @@ wheels = [
605
605
 
606
606
  [[package]]
607
607
  name = "enum-properties"
608
- version = "2.2.4"
608
+ version = "2.2.5"
609
609
  source = { editable = "." }
610
610
 
611
611
  [package.dev-dependencies]
File without changes