local-ip-address 0.1.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.
Files changed (39) hide show
  1. local_ip_address-0.1.0/.bumpversion.cfg +28 -0
  2. local_ip_address-0.1.0/.github/ISSUE_TEMPLATE/bug_report.md +51 -0
  3. local_ip_address-0.1.0/.github/ISSUE_TEMPLATE/feature_request.md +27 -0
  4. local_ip_address-0.1.0/.github/auto_assign.yml +9 -0
  5. local_ip_address-0.1.0/.github/dependabot.yml +11 -0
  6. local_ip_address-0.1.0/.github/milestones.py +28 -0
  7. local_ip_address-0.1.0/.github/stale.yml +63 -0
  8. local_ip_address-0.1.0/.github/workflows/CI.yml +205 -0
  9. local_ip_address-0.1.0/.github/workflows/flake8.yml +49 -0
  10. local_ip_address-0.1.0/.github/workflows/mypy.yml +53 -0
  11. local_ip_address-0.1.0/.github/workflows/octocheese.yml +20 -0
  12. local_ip_address-0.1.0/.github/workflows/python_ci.yml +75 -0
  13. local_ip_address-0.1.0/.github/workflows/python_ci_linux.yml +109 -0
  14. local_ip_address-0.1.0/.github/workflows/python_ci_macos.yml +75 -0
  15. local_ip_address-0.1.0/.gitignore +86 -0
  16. local_ip_address-0.1.0/.imgbotconfig +6 -0
  17. local_ip_address-0.1.0/.pre-commit-config.yaml +121 -0
  18. local_ip_address-0.1.0/.pylintrc +407 -0
  19. local_ip_address-0.1.0/.readthedocs.yml +24 -0
  20. local_ip_address-0.1.0/.style.yapf +393 -0
  21. local_ip_address-0.1.0/CONTRIBUTING.rst +73 -0
  22. local_ip_address-0.1.0/Cargo.lock +407 -0
  23. local_ip_address-0.1.0/Cargo.toml +18 -0
  24. local_ip_address-0.1.0/LICENSE +19 -0
  25. local_ip_address-0.1.0/PKG-INFO +154 -0
  26. local_ip_address-0.1.0/README.rst +126 -0
  27. local_ip_address-0.1.0/formate.toml +41 -0
  28. local_ip_address-0.1.0/justfile +30 -0
  29. local_ip_address-0.1.0/pyproject.toml +83 -0
  30. local_ip_address-0.1.0/python/local_ip_address/__init__.py +57 -0
  31. local_ip_address-0.1.0/python/local_ip_address/_local_ip_address.pyi +2 -0
  32. local_ip_address-0.1.0/python/local_ip_address/py.typed +0 -0
  33. local_ip_address-0.1.0/repo_helper.yml +33 -0
  34. local_ip_address-0.1.0/requirements.txt +0 -0
  35. local_ip_address-0.1.0/rustfmt.toml +1 -0
  36. local_ip_address-0.1.0/src/lib.rs +45 -0
  37. local_ip_address-0.1.0/tests/requirements.txt +7 -0
  38. local_ip_address-0.1.0/tests/test_ip_address.py +28 -0
  39. local_ip_address-0.1.0/tox.ini +205 -0
@@ -0,0 +1,28 @@
1
+ [bumpversion]
2
+ current_version = 0.1.0
3
+ commit = True
4
+ tag = True
5
+
6
+ [bumpversion:file:README.rst]
7
+
8
+ [bumpversion:file:python/local_ip_address/__init__.py]
9
+ search = : str = "{current_version}"
10
+ replace = : str = "{new_version}"
11
+
12
+ [bumpversion:file:pyproject.toml]
13
+ search = version = "{current_version}"
14
+ replace = version = "{new_version}"
15
+
16
+ [bumpversion:file:Cargo.toml]
17
+ search = version = "{current_version}"
18
+ replace = version = "{new_version}"
19
+
20
+ [bumpversion:file:Cargo.lock]
21
+ search =
22
+ name = "py-local-ip-address"
23
+ version = "{current_version}"
24
+ replace =
25
+ name = "py-local-ip-address"
26
+ version = "{new_version}"
27
+
28
+ [bumpversion:file:repo_helper.yml]
@@ -0,0 +1,51 @@
1
+ ---
2
+ name: Bug report
3
+ about: Create a report to help us improve
4
+ labels: bug
5
+ assignees: domdfcoding
6
+
7
+ ---
8
+
9
+ <!-- Have you searched for similar issues? Before submitting this issue, please check the open issues and add a note before logging a new issue.
10
+
11
+ PLEASE USE THE TEMPLATE BELOW TO PROVIDE INFORMATION ABOUT THE ISSUE.
12
+ THE ISSUE WILL BE CLOSED IF INSUFFICIENT INFORMATION IS PROVIDED.
13
+ -->
14
+
15
+ ## Description
16
+ <!--Provide a brief description of the issue-->
17
+
18
+
19
+ ## Steps to Reproduce
20
+ <!--Please add a series of steps to reproduce the issue.
21
+
22
+ If possible, please include a small, self-contained reproduction.
23
+ -->
24
+
25
+ 1.
26
+ 2.
27
+ 3.
28
+
29
+ ## Actual result:
30
+ <!--Please add screenshots if needed and include the Python traceback if present-->
31
+
32
+
33
+ ## Expected result:
34
+
35
+
36
+ ## Reproduces how often:
37
+ <!--[Easily reproduced/Intermittent issue/No steps to reproduce]-->
38
+
39
+
40
+ ## Version
41
+
42
+ * Operating System:
43
+ * Python:
44
+ * local-ip-address:
45
+
46
+ ## Installation source
47
+ <!-- e.g. GitHub repository, GitHub Releases, PyPI/pip, Anaconda/conda -->
48
+
49
+
50
+ ## Other Additional Information:
51
+ <!--Any additional information, related issues, extra QA steps, configuration or data that might be necessary to reproduce the issue-->
@@ -0,0 +1,27 @@
1
+ ---
2
+ name: Feature request
3
+ about: Suggest an idea for this project
4
+ labels: "enhancement"
5
+ assignees: domdfcoding
6
+
7
+ ---
8
+
9
+ <!-- Have you searched for similar issues? Someone may already be working on the feature you are suggesting. Before submitting this issue, please check the open issues and add a note before logging a new issue.
10
+ -->
11
+
12
+
13
+ ## Description
14
+ <!--Provide a clear and concise description of what the problem is and the improvement you are suggesting-->
15
+
16
+ <!--Please add screenshots if needed-->
17
+
18
+
19
+ ## Version
20
+
21
+ * Operating System:
22
+ * Python:
23
+ * local-ip-address:
24
+
25
+
26
+ ## Other Additional Information:
27
+ <!--Any additional information, related issues, etc.-->
@@ -0,0 +1,9 @@
1
+ # This file is managed by 'repo_helper'. Don't edit it directly.
2
+ ---
3
+ addReviewers: true
4
+ addAssignees: true
5
+ reviewers:
6
+ - domdfcoding
7
+ numberOfReviewers: 0
8
+
9
+ # more settings at https://github.com/marketplace/actions/auto-assign-action
@@ -0,0 +1,11 @@
1
+ # This file is managed by 'repo_helper'. Don't edit it directly.
2
+ ---
3
+ version: 2
4
+ updates:
5
+ - package-ecosystem: pip
6
+ directory: /
7
+ schedule:
8
+ interval: weekly
9
+ open-pull-requests-limit: 0
10
+ reviewers:
11
+ - domdfcoding
@@ -0,0 +1,28 @@
1
+ #!/usr/bin/env python
2
+
3
+ # stdlib
4
+ import os
5
+ import sys
6
+
7
+ # 3rd party
8
+ from github3 import GitHub
9
+ from github3.repos import Repository
10
+ from packaging.version import InvalidVersion, Version
11
+
12
+ latest_tag = os.environ["GITHUB_REF_NAME"]
13
+
14
+ try:
15
+ current_version = Version(latest_tag)
16
+ except InvalidVersion:
17
+ sys.exit()
18
+
19
+ gh: GitHub = GitHub(token=os.environ["GITHUB_TOKEN"])
20
+ repo: Repository = gh.repository(*os.environ["GITHUB_REPOSITORY"].split('/', 1))
21
+
22
+ for milestone in repo.milestones(state="open"):
23
+ try:
24
+ milestone_version = Version(milestone.title)
25
+ except InvalidVersion:
26
+ continue
27
+ if milestone_version == current_version:
28
+ sys.exit(not milestone.update(state="closed"))
@@ -0,0 +1,63 @@
1
+ # This file is managed by 'repo_helper'. Don't edit it directly.
2
+ # Configuration for probot-stale - https://github.com/probot/stale
3
+ ---
4
+
5
+ # Number of days of inactivity before an Issue or Pull Request becomes stale
6
+ daysUntilStale: 180
7
+
8
+ # Number of days of inactivity before an Issue or Pull Request with the stale label is closed.
9
+ # Set to false to disable. If disabled, issues still need to be closed manually, but will remain marked as stale.
10
+ daysUntilClose: false
11
+
12
+ # Only issues or pull requests with all of these labels are check if stale. Defaults to `[]` (disabled)
13
+ onlyLabels: []
14
+
15
+ # Issues or Pull Requests with these labels will never be considered stale. Set to `[]` to disable
16
+ exemptLabels:
17
+ - pinned
18
+ - security
19
+ - "[Status] Maybe Later"
20
+
21
+ # Set to true to ignore issues in a project (defaults to false)
22
+ exemptProjects: false
23
+
24
+ # Set to true to ignore issues in a milestone (defaults to false)
25
+ exemptMilestones: false
26
+
27
+ # Set to true to ignore issues with an assignee (defaults to false)
28
+ exemptAssignees: false
29
+
30
+ # Label to use when marking as stale
31
+ staleLabel: stale
32
+
33
+ # Comment to post when marking as stale. Set to `false` to disable
34
+ markComment: false
35
+ # This issue has been automatically marked as stale because it has not had
36
+ # recent activity. It will be closed if no further activity occurs. Thank you
37
+ # for your contributions.
38
+
39
+ # Comment to post when removing the stale label.
40
+ # unmarkComment: >
41
+ # Your comment here.
42
+
43
+ # Comment to post when closing a stale Issue or Pull Request.
44
+ # closeComment: >
45
+ # Your comment here.
46
+
47
+ # Limit the number of actions per hour, from 1-30. Default is 30
48
+ limitPerRun: 30
49
+
50
+ # Limit to only `issues` or `pulls`
51
+ # only: issues
52
+
53
+ # Optionally, specify configuration settings that are specific to just 'issues' or 'pulls':
54
+ # pulls:
55
+ # daysUntilStale: 30
56
+ # markComment: >
57
+ # This pull request has been automatically marked as stale because it has not had
58
+ # recent activity. It will be closed if no further activity occurs. Thank you
59
+ # for your contributions.
60
+
61
+ # issues:
62
+ # exemptLabels:
63
+ # - confirmed
@@ -0,0 +1,205 @@
1
+ # This file is autogenerated by maturin v1.10.2
2
+ # To update, run
3
+ #
4
+ # maturin generate-ci github
5
+ #
6
+ name: CI
7
+
8
+ on:
9
+ push:
10
+ branches:
11
+ - master
12
+ tags:
13
+ - '*'
14
+ pull_request:
15
+ workflow_dispatch:
16
+
17
+ permissions:
18
+ contents: read
19
+
20
+ jobs:
21
+ linux:
22
+ runs-on: ${{ matrix.platform.runner }}
23
+ strategy:
24
+ matrix:
25
+ platform:
26
+ - runner: ubuntu-22.04
27
+ target: x86_64
28
+ - runner: ubuntu-22.04
29
+ target: x86
30
+ - runner: ubuntu-22.04
31
+ target: aarch64
32
+ - runner: ubuntu-22.04
33
+ target: armv7
34
+ - runner: ubuntu-22.04
35
+ target: s390x
36
+ - runner: ubuntu-22.04
37
+ target: ppc64le
38
+ steps:
39
+ - uses: actions/checkout@v4
40
+ - uses: actions/setup-python@v5
41
+ with:
42
+ python-version: 3.x
43
+ - name: Build wheels
44
+ uses: PyO3/maturin-action@v1
45
+ with:
46
+ target: ${{ matrix.platform.target }}
47
+ args: --release --out dist --find-interpreter
48
+ sccache: ${{ !startsWith(github.ref, 'refs/tags/') }}
49
+ manylinux: auto
50
+ - name: Upload wheels
51
+ uses: actions/upload-artifact@v4
52
+ with:
53
+ name: wheels-linux-${{ matrix.platform.target }}
54
+ path: dist
55
+
56
+ musllinux:
57
+ runs-on: ${{ matrix.platform.runner }}
58
+ strategy:
59
+ matrix:
60
+ platform:
61
+ - runner: ubuntu-22.04
62
+ target: x86_64
63
+ - runner: ubuntu-22.04
64
+ target: x86
65
+ - runner: ubuntu-22.04
66
+ target: aarch64
67
+ - runner: ubuntu-22.04
68
+ target: armv7
69
+ steps:
70
+ - uses: actions/checkout@v4
71
+ - uses: actions/setup-python@v5
72
+ with:
73
+ python-version: 3.x
74
+ - name: Build wheels
75
+ uses: PyO3/maturin-action@v1
76
+ with:
77
+ target: ${{ matrix.platform.target }}
78
+ args: --release --out dist --find-interpreter
79
+ sccache: ${{ !startsWith(github.ref, 'refs/tags/') }}
80
+ manylinux: musllinux_1_2
81
+ - name: Upload wheels
82
+ uses: actions/upload-artifact@v4
83
+ with:
84
+ name: wheels-musllinux-${{ matrix.platform.target }}
85
+ path: dist
86
+
87
+ windows:
88
+ runs-on: ${{ matrix.platform.runner }}
89
+ strategy:
90
+ matrix:
91
+ platform:
92
+ - runner: windows-latest
93
+ target: x64
94
+ - runner: windows-latest
95
+ target: x86
96
+ steps:
97
+ - uses: actions/checkout@v4
98
+ - uses: actions/setup-python@v5
99
+ with:
100
+ python-version: 3.x
101
+ architecture: ${{ matrix.platform.target }}
102
+ - name: Build wheels
103
+ uses: PyO3/maturin-action@v1
104
+ with:
105
+ target: ${{ matrix.platform.target }}
106
+ args: --release --out dist --find-interpreter
107
+ sccache: ${{ !startsWith(github.ref, 'refs/tags/') }}
108
+ - name: Upload wheels
109
+ uses: actions/upload-artifact@v4
110
+ with:
111
+ name: wheels-windows-${{ matrix.platform.target }}
112
+ path: dist
113
+
114
+ macos:
115
+ runs-on: ${{ matrix.platform.runner }}
116
+ strategy:
117
+ matrix:
118
+ platform:
119
+ - runner: macos-15-intel
120
+ target: x86_64
121
+ - runner: macos-14
122
+ target: aarch64
123
+ steps:
124
+ - uses: actions/checkout@v4
125
+ - uses: actions/setup-python@v5
126
+ with:
127
+ python-version: 3.x
128
+ - name: Build wheels
129
+ uses: PyO3/maturin-action@v1
130
+ with:
131
+ target: ${{ matrix.platform.target }}
132
+ args: --release --out dist --find-interpreter
133
+ sccache: ${{ !startsWith(github.ref, 'refs/tags/') }}
134
+ - name: Upload wheels
135
+ uses: actions/upload-artifact@v4
136
+ with:
137
+ name: wheels-macos-${{ matrix.platform.target }}
138
+ path: dist
139
+
140
+ sdist:
141
+ runs-on: ubuntu-latest
142
+ steps:
143
+ - uses: actions/checkout@v4
144
+ - name: Build sdist
145
+ uses: PyO3/maturin-action@v1
146
+ with:
147
+ command: sdist
148
+ args: --out dist
149
+ - name: Upload sdist
150
+ uses: actions/upload-artifact@v4
151
+ with:
152
+ name: wheels-sdist
153
+ path: dist
154
+
155
+ release:
156
+ name: Release
157
+ runs-on: ubuntu-latest
158
+ if: ${{ startsWith(github.ref, 'refs/tags/') || github.event_name == 'workflow_dispatch' }}
159
+ needs: [linux, musllinux, windows, macos, sdist]
160
+ permissions:
161
+ # Use to sign the release artifacts
162
+ id-token: write
163
+ # Used to upload release artifacts
164
+ contents: write
165
+ # Used to generate artifact attestation
166
+ attestations: write
167
+ steps:
168
+ - name: Checkout 🛎️
169
+ uses: "actions/checkout@v4"
170
+ if: startsWith(github.ref, 'refs/tags/')
171
+
172
+ - name: Setup Python 🐍
173
+ uses: "actions/setup-python@v5"
174
+ if: startsWith(github.ref, 'refs/tags/')
175
+ with:
176
+ python-version: 3.8
177
+
178
+ - name: Install dependencies 🔧
179
+ if: startsWith(github.ref, 'refs/tags/')
180
+ run: |
181
+ python -m pip install --upgrade pip setuptools wheel
182
+ python -m pip install --upgrade tox~=3.0
183
+
184
+ - uses: actions/download-artifact@v4
185
+ - name: Generate artifact attestation
186
+ uses: actions/attest-build-provenance@v2
187
+ with:
188
+ subject-path: 'wheels-*/*'
189
+
190
+ - name: Upload distribution to PyPI 🚀
191
+ if: startsWith(github.ref, 'refs/tags/')
192
+ uses: PyO3/maturin-action@v1
193
+ env:
194
+ MATURIN_PYPI_TOKEN: ${{ secrets.PYPI_TOKEN }}
195
+ with:
196
+ command: upload
197
+ args: --non-interactive --skip-existing wheels-*/*
198
+
199
+ - name: Close milestone 🚪
200
+ if: startsWith(github.ref, 'refs/tags/')
201
+ run: |
202
+ python -m pip install --upgrade github3.py packaging
203
+ python .github/milestones.py
204
+ env:
205
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
@@ -0,0 +1,49 @@
1
+ # This file is managed by 'repo_helper'. Don't edit it directly.
2
+ ---
3
+ name: Flake8
4
+
5
+ on:
6
+ push:
7
+ branches-ignore:
8
+ - 'repo-helper-update'
9
+ - 'pre-commit-ci-update-config'
10
+ - 'imgbot'
11
+ pull_request:
12
+
13
+ jobs:
14
+ Run:
15
+ name: "Flake8"
16
+ permissions:
17
+ contents: read
18
+ runs-on: "ubuntu-22.04"
19
+
20
+ steps:
21
+ - name: Checkout 🛎️
22
+ uses: "actions/checkout@v6"
23
+
24
+ - name: Check for changed files
25
+ uses: dorny/paths-filter@v4
26
+ id: changes
27
+ with:
28
+ list-files: "json"
29
+ filters: |
30
+ code:
31
+ - '!(doc-source/**|CONTRIBUTING.rst|.imgbotconfig|.pre-commit-config.yaml|.pylintrc|.readthedocs.yml)'
32
+
33
+ - name: Setup Python 🐍
34
+ if: steps.changes.outputs.code == 'true'
35
+ uses: "actions/setup-python@v6"
36
+ with:
37
+ python-version: "3.9"
38
+
39
+ - name: Install dependencies 🔧
40
+ if: steps.changes.outputs.code == 'true'
41
+ run: |
42
+ python -VV
43
+ python -m site
44
+ python -m pip install --upgrade pip setuptools wheel
45
+ python -m pip install tox~=3.0
46
+
47
+ - name: "Run Flake8"
48
+ if: steps.changes.outputs.code == 'true'
49
+ run: "python -m tox -e lint -s false -- --format github"
@@ -0,0 +1,53 @@
1
+ # This file is managed by 'repo_helper'. Don't edit it directly.
2
+ ---
3
+ name: mypy
4
+
5
+ on:
6
+ push:
7
+ branches-ignore:
8
+ - 'repo-helper-update'
9
+ - 'pre-commit-ci-update-config'
10
+ - 'imgbot'
11
+ pull_request:
12
+
13
+ jobs:
14
+ Run:
15
+ permissions:
16
+ contents: read
17
+ name: "mypy / ${{ matrix.os }}"
18
+ runs-on: ${{ matrix.os }}
19
+
20
+ strategy:
21
+ matrix:
22
+ os: ['ubuntu-22.04', 'windows-2022']
23
+ fail-fast: false
24
+
25
+ steps:
26
+ - name: Checkout 🛎️
27
+ uses: "actions/checkout@v6"
28
+
29
+ - name: Check for changed files
30
+ uses: dorny/paths-filter@v4
31
+ id: changes
32
+ with:
33
+ list-files: "json"
34
+ filters: |
35
+ code:
36
+ - '!(doc-source/**|CONTRIBUTING.rst|.imgbotconfig|.pre-commit-config.yaml|.pylintrc|.readthedocs.yml)'
37
+
38
+ - name: Setup Python 🐍
39
+ if: steps.changes.outputs.code == 'true'
40
+ uses: "actions/setup-python@v6"
41
+ with:
42
+ python-version: "3.9"
43
+
44
+ - name: Install dependencies 🔧
45
+ run: |
46
+ python -VV
47
+ python -m site
48
+ python -m pip install --upgrade pip setuptools wheel
49
+ python -m pip install --upgrade tox~=3.0 virtualenv!=20.16.0
50
+
51
+ - name: "Run mypy"
52
+ if: steps.changes.outputs.code == 'true'
53
+ run: "python -m tox -e mypy -s false"
@@ -0,0 +1,20 @@
1
+ # This file is managed by 'repo_helper'. Don't edit it directly.
2
+ ---
3
+
4
+ name: "GitHub Releases"
5
+ on:
6
+ schedule:
7
+ - cron: 0 12 * * *
8
+
9
+ jobs:
10
+ Run:
11
+ permissions:
12
+ contents: write
13
+ runs-on: ubuntu-latest
14
+ steps:
15
+ - uses: domdfcoding/octocheese@master
16
+ with:
17
+ pypi_name: "local-ip-address"
18
+ env:
19
+ GITHUB_TOKEN: ${{secrets.GITHUB_TOKEN}}
20
+ if: startsWith(github.ref, 'refs/tags/') != true
@@ -0,0 +1,75 @@
1
+ # This file is managed by 'repo_helper'. Don't edit it directly.
2
+ ---
3
+ name: Windows
4
+
5
+ on:
6
+ push:
7
+ branches-ignore:
8
+ - 'repo-helper-update'
9
+ - 'pre-commit-ci-update-config'
10
+ - 'imgbot'
11
+
12
+ pull_request:
13
+
14
+ jobs:
15
+ tests:
16
+ permissions:
17
+ actions: write
18
+ contents: read
19
+ name: "windows-2022 / Python ${{ matrix.config.python-version }}"
20
+ runs-on: "windows-2022"
21
+ continue-on-error: ${{ matrix.config.experimental }}
22
+ env:
23
+ USING_COVERAGE: '3.8,3.9,3.10,3.11,3.12,3.13'
24
+
25
+ strategy:
26
+ fail-fast: False
27
+ matrix:
28
+ config:
29
+ - {python-version: "3.8", testenvs: "py38,build", experimental: False}
30
+ - {python-version: "3.9", testenvs: "py39,build", experimental: False}
31
+ - {python-version: "3.10", testenvs: "py310,build", experimental: False}
32
+ - {python-version: "3.11", testenvs: "py311,build", experimental: False}
33
+ - {python-version: "3.12", testenvs: "py312,build", experimental: False}
34
+ - {python-version: "3.13", testenvs: "py313,build", experimental: False}
35
+
36
+ steps:
37
+ - name: Checkout 🛎️
38
+ uses: "actions/checkout@v6"
39
+
40
+ - name: Check for changed files
41
+ if: startsWith(github.ref, 'refs/tags/') != true
42
+ uses: dorny/paths-filter@v4
43
+ id: changes
44
+ with:
45
+ list-files: "json"
46
+ filters: |
47
+ code:
48
+ - '!(doc-source/**|CONTRIBUTING.rst|.imgbotconfig|.pre-commit-config.yaml|.pylintrc|.readthedocs.yml)'
49
+
50
+ - name: Setup Python 🐍
51
+ id: setup-python
52
+ if: ${{ steps.changes.outputs.code == 'true' || steps.changes.outcome == 'skipped' }}
53
+ uses: "actions/setup-python@v6"
54
+ with:
55
+ python-version: "${{ matrix.config.python-version }}"
56
+
57
+ - name: Install dependencies 🔧
58
+ if: steps.setup-python.outcome == 'success'
59
+ run: |
60
+ python -VV
61
+ python -m site
62
+ python -m pip install --upgrade pip setuptools wheel
63
+ python -m pip install --upgrade tox~=3.0 virtualenv!=20.16.0
64
+
65
+ - name: "Run Tests for Python ${{ matrix.config.python-version }}"
66
+ if: steps.setup-python.outcome == 'success'
67
+ run: python -m tox -e "${{ matrix.config.testenvs }}" -s false
68
+
69
+ - name: "Upload Coverage 🚀"
70
+ uses: actions/upload-artifact@v4
71
+ if: ${{ always() && steps.setup-python.outcome == 'success' }}
72
+ with:
73
+ name: "coverage-${{ matrix.config.python-version }}"
74
+ path: .coverage
75
+ include-hidden-files: true