enum-properties 2.6.0__tar.gz → 2.8.0__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.
- {enum_properties-2.6.0 → enum_properties-2.8.0}/.github/dependabot.yml +0 -12
- {enum_properties-2.6.0 → enum_properties-2.8.0}/.github/workflows/lint.yml +5 -5
- {enum_properties-2.6.0 → enum_properties-2.8.0}/.github/workflows/release.yml +10 -11
- {enum_properties-2.6.0 → enum_properties-2.8.0}/.github/workflows/scorecard.yml +7 -3
- {enum_properties-2.6.0 → enum_properties-2.8.0}/.github/workflows/test.yml +31 -30
- {enum_properties-2.6.0 → enum_properties-2.8.0}/.github/workflows/zizmor.yml +4 -4
- {enum_properties-2.6.0 → enum_properties-2.8.0}/.gitignore +1 -0
- {enum_properties-2.6.0 → enum_properties-2.8.0}/PKG-INFO +1 -1
- {enum_properties-2.6.0 → enum_properties-2.8.0}/doc/source/changelog.rst +11 -0
- {enum_properties-2.6.0 → enum_properties-2.8.0}/doc/source/howto.rst +3 -2
- {enum_properties-2.6.0 → enum_properties-2.8.0}/justfile +2 -2
- {enum_properties-2.6.0 → enum_properties-2.8.0}/pyproject.toml +2 -1
- {enum_properties-2.6.0 → enum_properties-2.8.0}/src/enum_properties/__init__.py +70 -58
- {enum_properties-2.6.0 → enum_properties-2.8.0}/src/enum_properties/__init__.pyi +24 -7
- {enum_properties-2.6.0 → enum_properties-2.8.0}/tests/annotations/test.py +15 -1
- {enum_properties-2.6.0 → enum_properties-2.8.0}/tests/annotations/test_symmetric.py +7 -6
- {enum_properties-2.6.0 → enum_properties-2.8.0}/tests/examples/howto_symmetric_decorator.py +0 -2
- {enum_properties-2.6.0 → enum_properties-2.8.0}/tests/legacy/test.py +2 -2
- {enum_properties-2.6.0 → enum_properties-2.8.0}/tests/test_functional.py +5 -0
- {enum_properties-2.6.0 → enum_properties-2.8.0}/tests/type_hints/test.py +18 -0
- enum_properties-2.6.0/uv.lock +0 -1950
- {enum_properties-2.6.0 → enum_properties-2.8.0}/.codecov.yml +0 -0
- {enum_properties-2.6.0 → enum_properties-2.8.0}/.github/CODEOWNERS +0 -0
- {enum_properties-2.6.0 → enum_properties-2.8.0}/.pre-commit-config.yaml +0 -0
- {enum_properties-2.6.0 → enum_properties-2.8.0}/CODE_OF_CONDUCT.md +0 -0
- {enum_properties-2.6.0 → enum_properties-2.8.0}/CONTRIBUTING.md +0 -0
- {enum_properties-2.6.0 → enum_properties-2.8.0}/LICENSE +0 -0
- {enum_properties-2.6.0 → enum_properties-2.8.0}/README.md +0 -0
- {enum_properties-2.6.0 → enum_properties-2.8.0}/SECURITY.md +0 -0
- {enum_properties-2.6.0 → enum_properties-2.8.0}/conftest.py +0 -0
- {enum_properties-2.6.0 → enum_properties-2.8.0}/doc/.readthedocs.yaml +0 -0
- {enum_properties-2.6.0 → enum_properties-2.8.0}/doc/source/_static/style.css +0 -0
- {enum_properties-2.6.0 → enum_properties-2.8.0}/doc/source/conf.py +0 -0
- {enum_properties-2.6.0 → enum_properties-2.8.0}/doc/source/index.rst +0 -0
- {enum_properties-2.6.0 → enum_properties-2.8.0}/doc/source/reference.rst +0 -0
- {enum_properties-2.6.0 → enum_properties-2.8.0}/doc/source/tutorial.rst +0 -0
- {enum_properties-2.6.0 → enum_properties-2.8.0}/src/enum_properties/py.typed +0 -0
- {enum_properties-2.6.0 → enum_properties-2.8.0}/tests/__init__.py +0 -0
- {enum_properties-2.6.0 → enum_properties-2.8.0}/tests/annotations/test_aliases.py +0 -0
- {enum_properties-2.6.0 → enum_properties-2.8.0}/tests/annotations/test_flags.py +0 -0
- {enum_properties-2.6.0 → enum_properties-2.8.0}/tests/annotations/test_future_annotations.py +0 -0
- {enum_properties-2.6.0 → enum_properties-2.8.0}/tests/annotations/test_interface_eq.py +0 -0
- {enum_properties-2.6.0 → enum_properties-2.8.0}/tests/annotations/test_nestedclass.py +0 -0
- {enum_properties-2.6.0 → enum_properties-2.8.0}/tests/annotations/test_none_coercion.py +0 -0
- {enum_properties-2.6.0 → enum_properties-2.8.0}/tests/annotations/test_perf.py +0 -0
- {enum_properties-2.6.0 → enum_properties-2.8.0}/tests/annotations/test_pickle.py +0 -0
- {enum_properties-2.6.0 → enum_properties-2.8.0}/tests/annotations/test_specialize.py +0 -0
- {enum_properties-2.6.0 → enum_properties-2.8.0}/tests/annotations/test_type_hints.py +0 -0
- {enum_properties-2.6.0 → enum_properties-2.8.0}/tests/big_enum.py +0 -0
- {enum_properties-2.6.0 → enum_properties-2.8.0}/tests/big_enum_annotations.py +0 -0
- {enum_properties-2.6.0 → enum_properties-2.8.0}/tests/examples/__init__.py +0 -0
- {enum_properties-2.6.0 → enum_properties-2.8.0}/tests/examples/address.py +0 -0
- {enum_properties-2.6.0 → enum_properties-2.8.0}/tests/examples/color_example.py +0 -0
- {enum_properties-2.6.0 → enum_properties-2.8.0}/tests/examples/hash_equiv_def.py +0 -0
- {enum_properties-2.6.0 → enum_properties-2.8.0}/tests/examples/howto_add_props.py +0 -0
- {enum_properties-2.6.0 → enum_properties-2.8.0}/tests/examples/howto_dataclass.py +0 -0
- {enum_properties-2.6.0 → enum_properties-2.8.0}/tests/examples/howto_dataclass_integration.py +0 -0
- {enum_properties-2.6.0 → enum_properties-2.8.0}/tests/examples/howto_flag.py +0 -0
- {enum_properties-2.6.0 → enum_properties-2.8.0}/tests/examples/howto_flag_boundaries.py +0 -0
- {enum_properties-2.6.0 → enum_properties-2.8.0}/tests/examples/howto_flags_no_iterable.py +0 -0
- {enum_properties-2.6.0 → enum_properties-2.8.0}/tests/examples/howto_functional.py +0 -0
- {enum_properties-2.6.0 → enum_properties-2.8.0}/tests/examples/howto_hash_equiv.py +0 -0
- {enum_properties-2.6.0 → enum_properties-2.8.0}/tests/examples/howto_hash_equiv_def.py +0 -0
- {enum_properties-2.6.0 → enum_properties-2.8.0}/tests/examples/howto_legacy.py +0 -0
- {enum_properties-2.6.0 → enum_properties-2.8.0}/tests/examples/howto_members_and_aliases.py +0 -0
- {enum_properties-2.6.0 → enum_properties-2.8.0}/tests/examples/howto_metaclass.py +0 -0
- {enum_properties-2.6.0 → enum_properties-2.8.0}/tests/examples/howto_nested_classes.py +0 -0
- {enum_properties-2.6.0 → enum_properties-2.8.0}/tests/examples/howto_nested_classes_313.py +0 -0
- {enum_properties-2.6.0 → enum_properties-2.8.0}/tests/examples/howto_specialized.py +0 -0
- {enum_properties-2.6.0 → enum_properties-2.8.0}/tests/examples/howto_specialized_default.py +0 -0
- {enum_properties-2.6.0 → enum_properties-2.8.0}/tests/examples/howto_specialized_list.py +0 -0
- {enum_properties-2.6.0 → enum_properties-2.8.0}/tests/examples/howto_specialized_missing.py +0 -0
- {enum_properties-2.6.0 → enum_properties-2.8.0}/tests/examples/howto_symmetric_builtins.py +0 -0
- {enum_properties-2.6.0 → enum_properties-2.8.0}/tests/examples/howto_symmetric_metaclass.py +0 -0
- {enum_properties-2.6.0 → enum_properties-2.8.0}/tests/examples/howto_symmetric_overload.py +0 -0
- {enum_properties-2.6.0 → enum_properties-2.8.0}/tests/examples/howto_symmetry.py +0 -0
- {enum_properties-2.6.0 → enum_properties-2.8.0}/tests/examples/howto_verify_unique.py +0 -0
- {enum_properties-2.6.0 → enum_properties-2.8.0}/tests/examples/mapbox.py +0 -0
- {enum_properties-2.6.0 → enum_properties-2.8.0}/tests/examples/specialization_example.py +0 -0
- {enum_properties-2.6.0 → enum_properties-2.8.0}/tests/examples/symmetric_example.py +0 -0
- {enum_properties-2.6.0 → enum_properties-2.8.0}/tests/examples/test_examples.py +0 -0
- {enum_properties-2.6.0 → enum_properties-2.8.0}/tests/legacy/__init__.py +0 -0
- {enum_properties-2.6.0 → enum_properties-2.8.0}/tests/legacy/test_flags.py +0 -0
- {enum_properties-2.6.0 → enum_properties-2.8.0}/tests/legacy/test_interface_eq.py +0 -0
- {enum_properties-2.6.0 → enum_properties-2.8.0}/tests/legacy/test_multi_primitives.py +0 -0
- {enum_properties-2.6.0 → enum_properties-2.8.0}/tests/legacy/test_nestedclass.py +0 -0
- {enum_properties-2.6.0 → enum_properties-2.8.0}/tests/legacy/test_none_coercion.py +0 -0
- {enum_properties-2.6.0 → enum_properties-2.8.0}/tests/legacy/test_perf.py +0 -0
- {enum_properties-2.6.0 → enum_properties-2.8.0}/tests/legacy/test_pickle.py +0 -0
- {enum_properties-2.6.0 → enum_properties-2.8.0}/tests/legacy/test_specialize.py +0 -0
- {enum_properties-2.6.0 → enum_properties-2.8.0}/tests/legacy/test_type_hints.py +0 -0
- {enum_properties-2.6.0 → enum_properties-2.8.0}/tests/pickle_enums.py +0 -0
- {enum_properties-2.6.0 → enum_properties-2.8.0}/tests/pickle_enums_annotations.py +0 -0
- {enum_properties-2.6.0 → enum_properties-2.8.0}/tests/type_hints/__init__.py +0 -0
- {enum_properties-2.6.0 → enum_properties-2.8.0}/tests/type_hints/pyright.json +0 -0
|
@@ -26,21 +26,21 @@ jobs:
|
|
|
26
26
|
# run static analysis on bleeding and trailing edges
|
|
27
27
|
python-version: [ '3.10', '3.14' ]
|
|
28
28
|
steps:
|
|
29
|
-
- uses: actions/checkout@
|
|
29
|
+
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0
|
|
30
30
|
with:
|
|
31
31
|
persist-credentials: false
|
|
32
32
|
- name: Set up Python ${{ matrix.python-version }}
|
|
33
33
|
id: sp
|
|
34
|
-
uses: actions/setup-python@
|
|
34
|
+
uses: actions/setup-python@ece7cb06caefa5fff74198d8649806c4678c61a1
|
|
35
35
|
with:
|
|
36
36
|
python-version: ${{ matrix.python-version }}
|
|
37
37
|
allow-prereleases: true
|
|
38
38
|
- name: Install uv
|
|
39
|
-
uses: astral-sh/setup-uv@
|
|
39
|
+
uses: astral-sh/setup-uv@fac544c07dec837d0ccb6301d7b5580bf5edae39
|
|
40
40
|
with:
|
|
41
41
|
enable-cache: true
|
|
42
42
|
- name: Install Just
|
|
43
|
-
uses: extractions/setup-just@
|
|
43
|
+
uses: extractions/setup-just@53165ef7e734c5c07cb06b3c8e7b647c5aa16db3
|
|
44
44
|
- name: Install Dependencies
|
|
45
45
|
env:
|
|
46
46
|
PYTHON_PATH: ${{ steps.sp.outputs.python-path }}
|
|
@@ -52,7 +52,7 @@ jobs:
|
|
|
52
52
|
sudo apt install emacs
|
|
53
53
|
- name: Setup tmate session
|
|
54
54
|
if: ${{ github.event.inputs.debug == 'true' }}
|
|
55
|
-
uses: mxschmitt/action-tmate@
|
|
55
|
+
uses: mxschmitt/action-tmate@35b54afac29c97fb54faba5b513f8fbd1882f113
|
|
56
56
|
with:
|
|
57
57
|
detached: true
|
|
58
58
|
timeout-minutes: 60
|
|
@@ -25,9 +25,8 @@ jobs:
|
|
|
25
25
|
permissions:
|
|
26
26
|
contents: read
|
|
27
27
|
actions: write
|
|
28
|
+
id-token: write
|
|
28
29
|
uses: ./.github/workflows/test.yml
|
|
29
|
-
secrets:
|
|
30
|
-
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}
|
|
31
30
|
|
|
32
31
|
build:
|
|
33
32
|
name: Build Package
|
|
@@ -39,21 +38,21 @@ jobs:
|
|
|
39
38
|
PACKAGE_NAME: ${{ steps.set-package.outputs.package_name }}
|
|
40
39
|
RELEASE_VERSION: ${{ steps.set-package.outputs.release_version }}
|
|
41
40
|
steps:
|
|
42
|
-
- uses: actions/checkout@
|
|
41
|
+
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0
|
|
43
42
|
with:
|
|
44
43
|
persist-credentials: true
|
|
45
44
|
- name: Set up Python
|
|
46
|
-
uses: actions/setup-python@
|
|
45
|
+
uses: actions/setup-python@ece7cb06caefa5fff74198d8649806c4678c61a1
|
|
47
46
|
with:
|
|
48
47
|
python-version: ">=3.11" # for tomlib
|
|
49
48
|
- name: Install uv
|
|
50
|
-
uses: astral-sh/setup-uv@
|
|
49
|
+
uses: astral-sh/setup-uv@fac544c07dec837d0ccb6301d7b5580bf5edae39
|
|
51
50
|
with:
|
|
52
51
|
enable-cache: false
|
|
53
52
|
restore-cache: false
|
|
54
53
|
save-cache: false
|
|
55
54
|
- name: Setup Just
|
|
56
|
-
uses: extractions/setup-just@
|
|
55
|
+
uses: extractions/setup-just@53165ef7e734c5c07cb06b3c8e7b647c5aa16db3
|
|
57
56
|
- name: Verify Tag
|
|
58
57
|
run: |
|
|
59
58
|
TAG_NAME=${GITHUB_REF#refs/tags/}
|
|
@@ -74,7 +73,7 @@ jobs:
|
|
|
74
73
|
- name: Build the binary wheel and a source tarball
|
|
75
74
|
run: just build
|
|
76
75
|
- name: Store the distribution packages
|
|
77
|
-
uses: actions/upload-artifact@
|
|
76
|
+
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a
|
|
78
77
|
with:
|
|
79
78
|
name: python-package-distributions
|
|
80
79
|
path: dist/
|
|
@@ -98,12 +97,12 @@ jobs:
|
|
|
98
97
|
id-token: write # IMPORTANT: mandatory for trusted publishing
|
|
99
98
|
steps:
|
|
100
99
|
- name: Download all the dists
|
|
101
|
-
uses: actions/download-artifact@
|
|
100
|
+
uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c
|
|
102
101
|
with:
|
|
103
102
|
name: python-package-distributions
|
|
104
103
|
path: dist/
|
|
105
104
|
- name: Publish distribution 📦 to PyPI
|
|
106
|
-
uses: pypa/gh-action-pypi-publish@
|
|
105
|
+
uses: pypa/gh-action-pypi-publish@cef221092ed1bacb1cc03d23a2d87d1d172e277b
|
|
107
106
|
|
|
108
107
|
github-release:
|
|
109
108
|
name: Publish GitHub Release
|
|
@@ -118,12 +117,12 @@ jobs:
|
|
|
118
117
|
|
|
119
118
|
steps:
|
|
120
119
|
- name: Download all the dists
|
|
121
|
-
uses: actions/download-artifact@
|
|
120
|
+
uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c
|
|
122
121
|
with:
|
|
123
122
|
name: python-package-distributions
|
|
124
123
|
path: dist/
|
|
125
124
|
- name: Sign the dists with Sigstore
|
|
126
|
-
uses: sigstore/gh-action-sigstore-python@
|
|
125
|
+
uses: sigstore/gh-action-sigstore-python@5b79a39c381910c090341a2c9b0bf022c8b387e1
|
|
127
126
|
with:
|
|
128
127
|
inputs: >-
|
|
129
128
|
./dist/*.tar.gz
|
|
@@ -15,13 +15,17 @@ jobs:
|
|
|
15
15
|
analysis:
|
|
16
16
|
name: Scorecard analysis
|
|
17
17
|
runs-on: ubuntu-latest
|
|
18
|
+
environment:
|
|
19
|
+
name: scorecard
|
|
20
|
+
deployment: false # Prevents creating a GitHub deployment object
|
|
21
|
+
|
|
18
22
|
permissions:
|
|
19
23
|
security-events: write
|
|
20
24
|
id-token: write
|
|
21
25
|
|
|
22
26
|
steps:
|
|
23
27
|
- name: "Checkout code"
|
|
24
|
-
uses: actions/checkout@
|
|
28
|
+
uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0
|
|
25
29
|
with:
|
|
26
30
|
persist-credentials: false
|
|
27
31
|
|
|
@@ -48,7 +52,7 @@ jobs:
|
|
|
48
52
|
# Upload the results as artifacts (optional). Commenting out will disable uploads of run results in SARIF
|
|
49
53
|
# format to the repository Actions tab.
|
|
50
54
|
- name: "Upload artifact"
|
|
51
|
-
uses: actions/upload-artifact@
|
|
55
|
+
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a
|
|
52
56
|
with:
|
|
53
57
|
name: SARIF file
|
|
54
58
|
path: results.sarif
|
|
@@ -57,6 +61,6 @@ jobs:
|
|
|
57
61
|
# Upload the results to GitHub's code scanning dashboard (optional).
|
|
58
62
|
# Commenting out will disable upload of results to your repo's Code Scanning dashboard
|
|
59
63
|
- name: "Upload to code-scanning"
|
|
60
|
-
uses: github/codeql-action/upload-sarif@
|
|
64
|
+
uses: github/codeql-action/upload-sarif@8aad20d150bbac5944a9f9d289da16a4b0d87c1e
|
|
61
65
|
with:
|
|
62
66
|
sarif_file: results.sarif
|
|
@@ -10,9 +10,6 @@ on:
|
|
|
10
10
|
pull_request:
|
|
11
11
|
merge_group:
|
|
12
12
|
workflow_call:
|
|
13
|
-
secrets:
|
|
14
|
-
CODECOV_TOKEN:
|
|
15
|
-
required: true
|
|
16
13
|
workflow_dispatch:
|
|
17
14
|
inputs:
|
|
18
15
|
debug:
|
|
@@ -42,19 +39,19 @@ jobs:
|
|
|
42
39
|
if: ${{ github.event.inputs.clear_cache == 'true' }}
|
|
43
40
|
run: sudo rm -rf /opt/hostedtoolcache
|
|
44
41
|
|
|
45
|
-
- uses: actions/checkout@
|
|
42
|
+
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0
|
|
46
43
|
with:
|
|
47
44
|
persist-credentials: false
|
|
48
45
|
- name: Set up Python ${{ matrix.python-version }}
|
|
49
46
|
id: sp
|
|
50
|
-
uses: actions/setup-python@
|
|
47
|
+
uses: actions/setup-python@ece7cb06caefa5fff74198d8649806c4678c61a1
|
|
51
48
|
with:
|
|
52
49
|
python-version: ${{ matrix.python-version }}
|
|
53
50
|
allow-prereleases: true
|
|
54
51
|
- name: Install Just
|
|
55
|
-
uses: extractions/setup-just@
|
|
52
|
+
uses: extractions/setup-just@53165ef7e734c5c07cb06b3c8e7b647c5aa16db3
|
|
56
53
|
- name: Install uv
|
|
57
|
-
uses: astral-sh/setup-uv@
|
|
54
|
+
uses: astral-sh/setup-uv@fac544c07dec837d0ccb6301d7b5580bf5edae39
|
|
58
55
|
with:
|
|
59
56
|
enable-cache: true
|
|
60
57
|
- name: Install Emacs
|
|
@@ -63,7 +60,7 @@ jobs:
|
|
|
63
60
|
sudo apt install emacs
|
|
64
61
|
- name: Setup tmate session
|
|
65
62
|
if: ${{ github.event.inputs.debug == 'true' }}
|
|
66
|
-
uses: mxschmitt/action-tmate@
|
|
63
|
+
uses: mxschmitt/action-tmate@35b54afac29c97fb54faba5b513f8fbd1882f113
|
|
67
64
|
with:
|
|
68
65
|
detached: true
|
|
69
66
|
- name: Install Dependencies
|
|
@@ -76,7 +73,7 @@ jobs:
|
|
|
76
73
|
just test
|
|
77
74
|
|
|
78
75
|
- name: Store coverage files
|
|
79
|
-
uses: actions/upload-artifact@
|
|
76
|
+
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a
|
|
80
77
|
with:
|
|
81
78
|
name: ${{ env.COVERAGE_FILE }}
|
|
82
79
|
path: ${{ env.COVERAGE_FILE }}
|
|
@@ -97,19 +94,19 @@ jobs:
|
|
|
97
94
|
if: ${{ github.event.inputs.clear_cache == 'true' }}
|
|
98
95
|
run: sudo rm -rf /Users/runner/hostedtoolcache
|
|
99
96
|
|
|
100
|
-
- uses: actions/checkout@
|
|
97
|
+
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0
|
|
101
98
|
with:
|
|
102
99
|
persist-credentials: false
|
|
103
100
|
- name: Set up Python ${{ matrix.python-version }}
|
|
104
101
|
id: sp
|
|
105
|
-
uses: actions/setup-python@
|
|
102
|
+
uses: actions/setup-python@ece7cb06caefa5fff74198d8649806c4678c61a1
|
|
106
103
|
with:
|
|
107
104
|
python-version: ${{ matrix.python-version }}
|
|
108
105
|
allow-prereleases: true
|
|
109
106
|
- name: Install Just
|
|
110
|
-
uses: extractions/setup-just@
|
|
107
|
+
uses: extractions/setup-just@53165ef7e734c5c07cb06b3c8e7b647c5aa16db3
|
|
111
108
|
- name: Install uv
|
|
112
|
-
uses: astral-sh/setup-uv@
|
|
109
|
+
uses: astral-sh/setup-uv@fac544c07dec837d0ccb6301d7b5580bf5edae39
|
|
113
110
|
with:
|
|
114
111
|
enable-cache: true
|
|
115
112
|
- name: install-emacs-macos
|
|
@@ -118,7 +115,7 @@ jobs:
|
|
|
118
115
|
brew install emacs
|
|
119
116
|
- name: Setup tmate session
|
|
120
117
|
if: ${{ github.event.inputs.debug == 'true' }}
|
|
121
|
-
uses: mxschmitt/action-tmate@
|
|
118
|
+
uses: mxschmitt/action-tmate@35b54afac29c97fb54faba5b513f8fbd1882f113
|
|
122
119
|
with:
|
|
123
120
|
detached: true
|
|
124
121
|
- name: Install Dependencies
|
|
@@ -131,7 +128,7 @@ jobs:
|
|
|
131
128
|
just test
|
|
132
129
|
|
|
133
130
|
- name: Store coverage files
|
|
134
|
-
uses: actions/upload-artifact@
|
|
131
|
+
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a
|
|
135
132
|
with:
|
|
136
133
|
name: ${{ env.COVERAGE_FILE }}
|
|
137
134
|
path: ${{ env.COVERAGE_FILE }}
|
|
@@ -151,27 +148,27 @@ jobs:
|
|
|
151
148
|
- name: Clear GitHub Actions cache
|
|
152
149
|
if: ${{ github.event.inputs.clear_cache == 'true' }}
|
|
153
150
|
run: Remove-Item -Recurse -Force C:\hostedtoolcache
|
|
154
|
-
- uses: actions/checkout@
|
|
151
|
+
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0
|
|
155
152
|
with:
|
|
156
153
|
persist-credentials: false
|
|
157
154
|
- name: Set up Python ${{ matrix.python-version }}
|
|
158
155
|
id: sp
|
|
159
|
-
uses: actions/setup-python@
|
|
156
|
+
uses: actions/setup-python@ece7cb06caefa5fff74198d8649806c4678c61a1
|
|
160
157
|
with:
|
|
161
158
|
python-version: ${{ matrix.python-version }}
|
|
162
159
|
allow-prereleases: true
|
|
163
160
|
- name: Install Just
|
|
164
|
-
uses: extractions/setup-just@
|
|
161
|
+
uses: extractions/setup-just@53165ef7e734c5c07cb06b3c8e7b647c5aa16db3
|
|
165
162
|
- name: Install uv
|
|
166
|
-
uses: astral-sh/setup-uv@
|
|
163
|
+
uses: astral-sh/setup-uv@fac544c07dec837d0ccb6301d7b5580bf5edae39
|
|
167
164
|
with:
|
|
168
165
|
enable-cache: true
|
|
169
166
|
- name: install-vim-windows
|
|
170
167
|
if: ${{ github.event.inputs.debug == 'true' }}
|
|
171
|
-
uses: rhysd/action-setup-vim@
|
|
168
|
+
uses: rhysd/action-setup-vim@febef33995d6649302e9d88dda81e071b68f16a7
|
|
172
169
|
- name: Setup tmate session
|
|
173
170
|
if: ${{ github.event.inputs.debug == 'true' }}
|
|
174
|
-
uses: mxschmitt/action-tmate@
|
|
171
|
+
uses: mxschmitt/action-tmate@35b54afac29c97fb54faba5b513f8fbd1882f113
|
|
175
172
|
with:
|
|
176
173
|
detached: true
|
|
177
174
|
- name: Install Dependencies
|
|
@@ -184,7 +181,7 @@ jobs:
|
|
|
184
181
|
just test
|
|
185
182
|
|
|
186
183
|
- name: Store coverage files
|
|
187
|
-
uses: actions/upload-artifact@
|
|
184
|
+
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a
|
|
188
185
|
with:
|
|
189
186
|
name: ${{ env.COVERAGE_FILE }}
|
|
190
187
|
path: ${{ env.COVERAGE_FILE }}
|
|
@@ -192,22 +189,25 @@ jobs:
|
|
|
192
189
|
coverage-combine:
|
|
193
190
|
needs: [linux, macos, windows]
|
|
194
191
|
runs-on: ubuntu-latest
|
|
192
|
+
permissions:
|
|
193
|
+
contents: read
|
|
194
|
+
id-token: write
|
|
195
195
|
|
|
196
196
|
steps:
|
|
197
|
-
- uses: actions/checkout@
|
|
197
|
+
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0
|
|
198
198
|
with:
|
|
199
199
|
persist-credentials: false
|
|
200
|
-
- uses: actions/setup-python@
|
|
200
|
+
- uses: actions/setup-python@ece7cb06caefa5fff74198d8649806c4678c61a1
|
|
201
201
|
id: sp
|
|
202
202
|
with:
|
|
203
203
|
python-version: '3.14'
|
|
204
204
|
|
|
205
205
|
- name: Install uv
|
|
206
|
-
uses: astral-sh/setup-uv@
|
|
206
|
+
uses: astral-sh/setup-uv@fac544c07dec837d0ccb6301d7b5580bf5edae39
|
|
207
207
|
with:
|
|
208
208
|
enable-cache: true
|
|
209
209
|
- name: Setup Just
|
|
210
|
-
uses: extractions/setup-just@
|
|
210
|
+
uses: extractions/setup-just@53165ef7e734c5c07cb06b3c8e7b647c5aa16db3
|
|
211
211
|
- name: Install Release Dependencies
|
|
212
212
|
env:
|
|
213
213
|
PYTHON_PATH: ${{ steps.sp.outputs.python-path }}
|
|
@@ -215,7 +215,7 @@ jobs:
|
|
|
215
215
|
just setup "$PYTHON_PATH"
|
|
216
216
|
|
|
217
217
|
- name: Get coverage files
|
|
218
|
-
uses: actions/download-artifact@
|
|
218
|
+
uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c
|
|
219
219
|
with:
|
|
220
220
|
pattern: "*.coverage"
|
|
221
221
|
merge-multiple: true
|
|
@@ -223,7 +223,8 @@ jobs:
|
|
|
223
223
|
- run: just coverage
|
|
224
224
|
|
|
225
225
|
- name: Upload coverage to Codecov
|
|
226
|
-
uses: codecov/codecov-action@
|
|
226
|
+
uses: codecov/codecov-action@fb8b3582c8e4def4969c97caa2f19720cb33a72f
|
|
227
227
|
with:
|
|
228
|
-
|
|
229
|
-
|
|
228
|
+
use_oidc: true
|
|
229
|
+
files:
|
|
230
|
+
./coverage.xml
|
|
@@ -22,12 +22,12 @@ jobs:
|
|
|
22
22
|
|
|
23
23
|
steps:
|
|
24
24
|
- name: Checkout repository
|
|
25
|
-
uses: actions/checkout@
|
|
25
|
+
uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0
|
|
26
26
|
with:
|
|
27
27
|
persist-credentials: false
|
|
28
28
|
|
|
29
29
|
- name: Set up Rust
|
|
30
|
-
uses: actions-rust-lang/setup-rust-toolchain@
|
|
30
|
+
uses: actions-rust-lang/setup-rust-toolchain@166cdcfd11aee3cb47222f9ddb555ce30ddb9659
|
|
31
31
|
- name: Install jq
|
|
32
32
|
run: |
|
|
33
33
|
sudo apt-get update
|
|
@@ -41,14 +41,14 @@ jobs:
|
|
|
41
41
|
zizmor --format sarif .github/workflows/ > results.sarif
|
|
42
42
|
|
|
43
43
|
- name: Upload analysis results
|
|
44
|
-
uses: actions/upload-artifact@
|
|
44
|
+
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a
|
|
45
45
|
with:
|
|
46
46
|
name: zizmor-results
|
|
47
47
|
path: results.sarif
|
|
48
48
|
retention-days: 7
|
|
49
49
|
|
|
50
50
|
- name: Upload to code-scanning
|
|
51
|
-
uses: github/codeql-action/upload-sarif@
|
|
51
|
+
uses: github/codeql-action/upload-sarif@8aad20d150bbac5944a9f9d289da16a4b0d87c1e
|
|
52
52
|
with:
|
|
53
53
|
sarif_file: results.sarif
|
|
54
54
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: enum-properties
|
|
3
|
-
Version: 2.
|
|
3
|
+
Version: 2.8.0
|
|
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
|
|
@@ -2,6 +2,17 @@
|
|
|
2
2
|
Change Log
|
|
3
3
|
==========
|
|
4
4
|
|
|
5
|
+
v2.8.0 (2026-08-03)
|
|
6
|
+
===================
|
|
7
|
+
|
|
8
|
+
* Throw TypeError instead of ValueError when wrong types are encountered in enum class definitions.
|
|
9
|
+
* Fix linting issues with latest versions of ruff.
|
|
10
|
+
|
|
11
|
+
v2.7.0 (2026-03-04)
|
|
12
|
+
===================
|
|
13
|
+
|
|
14
|
+
* Implemented `Make @symmetric a property if it wraps a plain function. <https://github.com/bckohan/enum-properties/issues/153>`_
|
|
15
|
+
|
|
5
16
|
v2.6.0 (2026-03-04)
|
|
6
17
|
===================
|
|
7
18
|
|
|
@@ -148,8 +148,9 @@ example to make name case insensitive we might:
|
|
|
148
148
|
Mark @properties as Symmetric
|
|
149
149
|
-----------------------------
|
|
150
150
|
|
|
151
|
-
The :py:func:`~enum_properties.symmetric` decorator may be used to mark
|
|
152
|
-
|
|
151
|
+
The :py:func:`~enum_properties.symmetric` decorator may be used to mark methods as
|
|
152
|
+
symmetric. Plain functions are automatically wrapped as properties, so ``@property``
|
|
153
|
+
is not required. For example:
|
|
153
154
|
|
|
154
155
|
.. literalinclude:: ../../tests/examples/howto_symmetric_decorator.py
|
|
155
156
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
set windows-shell := ["powershell.exe", "-NoLogo", "-Command"]
|
|
2
|
-
set unstable
|
|
3
|
-
set script-interpreter := ['uv', 'run', '--script']
|
|
2
|
+
set unstable
|
|
3
|
+
set script-interpreter := ['uv', 'run', '--project', '.', '--script']
|
|
4
4
|
|
|
5
5
|
export PYTHONPATH := source_directory()
|
|
6
6
|
|
|
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "enum-properties"
|
|
7
|
-
version = "2.
|
|
7
|
+
version = "2.8.0"
|
|
8
8
|
description = "Add properties and method specializations to Python enumeration values with a simple declarative syntax."
|
|
9
9
|
requires-python = ">=3.10,<4.0"
|
|
10
10
|
authors = [
|
|
@@ -139,6 +139,7 @@ exclude = [
|
|
|
139
139
|
"examples",
|
|
140
140
|
"tests/resources/bad_code.py"
|
|
141
141
|
]
|
|
142
|
+
extend-exclude = ["*.md"]
|
|
142
143
|
|
|
143
144
|
[tool.ruff.lint]
|
|
144
145
|
exclude = [
|