tox-envfile 0.0.5__tar.gz → 0.0.7__tar.gz
Sign up to get free protection for your applications and to get access to all the features.
- {tox-envfile-0.0.5 → tox_envfile-0.0.7}/.cookiecutter/cookiecutter.json +8 -3
- {tox-envfile-0.0.5 → tox_envfile-0.0.7}/.cookiecutter/includes/README/head.md +0 -1
- {tox-envfile-0.0.5 → tox_envfile-0.0.7}/.cookiecutter/includes/README/tail.md +0 -1
- {tox-envfile-0.0.5 → tox_envfile-0.0.7}/.github/workflows/ci.yml +38 -14
- tox_envfile-0.0.7/.github/workflows/keepalive.yml +23 -0
- tox_envfile-0.0.7/.github/workflows/slack.yml +18 -0
- {tox-envfile-0.0.5 → tox_envfile-0.0.7}/.gitignore +3 -1
- tox_envfile-0.0.7/.python-version +4 -0
- {tox-envfile-0.0.5 → tox_envfile-0.0.7}/Makefile +30 -29
- {tox-envfile-0.0.5 → tox_envfile-0.0.7}/PKG-INFO +7 -6
- {tox-envfile-0.0.5 → tox_envfile-0.0.7}/README.md +3 -3
- {tox-envfile-0.0.5 → tox_envfile-0.0.7}/bin/make_python +2 -2
- {tox-envfile-0.0.5 → tox_envfile-0.0.7}/bin/make_template +1 -1
- {tox-envfile-0.0.5 → tox_envfile-0.0.7}/pyproject.toml +28 -5
- {tox-envfile-0.0.5 → tox_envfile-0.0.7}/setup.cfg +1 -1
- {tox-envfile-0.0.5 → tox_envfile-0.0.7}/src/tox_envfile.egg-info/PKG-INFO +7 -6
- {tox-envfile-0.0.5 → tox_envfile-0.0.7}/src/tox_envfile.egg-info/SOURCES.txt +2 -0
- {tox-envfile-0.0.5 → tox_envfile-0.0.7}/tests/pyproject.toml +2 -2
- {tox-envfile-0.0.5 → tox_envfile-0.0.7}/tox.ini +21 -7
- tox-envfile-0.0.5/.python-version +0 -4
- {tox-envfile-0.0.5 → tox_envfile-0.0.7}/.cookiecutter/includes/setuptools/entry_points +0 -0
- {tox-envfile-0.0.5 → tox_envfile-0.0.7}/.cookiecutter/includes/setuptools/install_requires +0 -0
- {tox-envfile-0.0.5 → tox_envfile-0.0.7}/.cookiecutter/includes/tox/deps +0 -0
- {tox-envfile-0.0.5 → tox_envfile-0.0.7}/.github/dependabot.yml +0 -0
- {tox-envfile-0.0.5 → tox_envfile-0.0.7}/.github/workflows/pypi.yml +0 -0
- {tox-envfile-0.0.5 → tox_envfile-0.0.7}/LICENSE +0 -0
- {tox-envfile-0.0.5 → tox_envfile-0.0.7}/src/tox_envfile/__init__.py +0 -0
- {tox-envfile-0.0.5 → tox_envfile-0.0.7}/src/tox_envfile/plugin.py +0 -0
- {tox-envfile-0.0.5 → tox_envfile-0.0.7}/src/tox_envfile.egg-info/dependency_links.txt +0 -0
- {tox-envfile-0.0.5 → tox_envfile-0.0.7}/src/tox_envfile.egg-info/entry_points.txt +0 -0
- {tox-envfile-0.0.5 → tox_envfile-0.0.7}/src/tox_envfile.egg-info/requires.txt +0 -0
- {tox-envfile-0.0.5 → tox_envfile-0.0.7}/src/tox_envfile.egg-info/top_level.txt +0 -0
- {tox-envfile-0.0.5 → tox_envfile-0.0.7}/tests/__init__.py +0 -0
- {tox-envfile-0.0.5 → tox_envfile-0.0.7}/tests/functional/__init__.py +0 -0
- {tox-envfile-0.0.5 → tox_envfile-0.0.7}/tests/functional/sanity_test.py +0 -0
- {tox-envfile-0.0.5 → tox_envfile-0.0.7}/tests/unit/__init__.py +0 -0
- {tox-envfile-0.0.5 → tox_envfile-0.0.7}/tests/unit/tox_envfile/__init__.py +0 -0
- {tox-envfile-0.0.5 → tox_envfile-0.0.7}/tests/unit/tox_envfile/plugin_test.py +0 -0
@@ -1,13 +1,16 @@
|
|
1
1
|
{
|
2
2
|
"template": "https://github.com/hypothesis/cookiecutters",
|
3
3
|
"directory": "pypackage",
|
4
|
-
"ignore": [
|
4
|
+
"ignore": [
|
5
|
+
"src/tox_envfile/core.py",
|
6
|
+
"tests/unit/tox_envfile/core_test.py"
|
7
|
+
],
|
5
8
|
"extra_context": {
|
6
9
|
"name": "tox-envfile",
|
7
10
|
"package_name": "tox_envfile",
|
8
11
|
"slug": "tox-envfile",
|
9
12
|
"short_description": "Load env files in your tox envs.",
|
10
|
-
"python_versions": "3.
|
13
|
+
"python_versions": "3.12.7, 3.11.10, 3.10.15, 3.9.20",
|
11
14
|
"github_owner": "hypothesis",
|
12
15
|
"copyright_holder": "Hypothesis",
|
13
16
|
"public": "yes",
|
@@ -15,6 +18,8 @@
|
|
15
18
|
"dependabot_pip_interval": "monthly",
|
16
19
|
"__entry_point": "tox-envfile",
|
17
20
|
"__github_url": "https://github.com/hypothesis/tox-envfile",
|
18
|
-
"__pypi_url": "https://pypi.org/project/tox-envfile"
|
21
|
+
"__pypi_url": "https://pypi.org/project/tox-envfile",
|
22
|
+
"__copyright_year": "2022",
|
23
|
+
"pypi": "yes"
|
19
24
|
}
|
20
25
|
}
|
@@ -1,7 +1,17 @@
|
|
1
1
|
name: CI
|
2
2
|
on:
|
3
3
|
push:
|
4
|
+
paths-ignore:
|
5
|
+
- '.cookiecutter/*'
|
6
|
+
- '.github/dependabot.yml'
|
7
|
+
- 'bin/make_python'
|
8
|
+
- 'bin/make_template'
|
9
|
+
- 'docs/*'
|
10
|
+
- '**/.gitignore'
|
11
|
+
- 'LICENSE'
|
12
|
+
- '*.md'
|
4
13
|
workflow_dispatch:
|
14
|
+
workflow_call:
|
5
15
|
schedule:
|
6
16
|
- cron: '0 1 * * *'
|
7
17
|
jobs:
|
@@ -12,8 +22,8 @@ jobs:
|
|
12
22
|
- name: Install Python
|
13
23
|
uses: actions/setup-python@v4
|
14
24
|
with:
|
15
|
-
python-version: '3.
|
16
|
-
- run: python -m pip install tox
|
25
|
+
python-version: '3.12'
|
26
|
+
- run: python -m pip install 'tox<4'
|
17
27
|
- run: tox -e checkformatting
|
18
28
|
Lint:
|
19
29
|
runs-on: ubuntu-latest
|
@@ -22,14 +32,24 @@ jobs:
|
|
22
32
|
- name: Install Python
|
23
33
|
uses: actions/setup-python@v4
|
24
34
|
with:
|
25
|
-
python-version: '3.
|
26
|
-
- run: python -m pip install tox
|
35
|
+
python-version: '3.12'
|
36
|
+
- run: python -m pip install 'tox<4'
|
27
37
|
- run: tox -e lint
|
38
|
+
Typecheck:
|
39
|
+
runs-on: ubuntu-latest
|
40
|
+
steps:
|
41
|
+
- uses: actions/checkout@v3
|
42
|
+
- name: Install Python
|
43
|
+
uses: actions/setup-python@v4
|
44
|
+
with:
|
45
|
+
python-version: '3.12'
|
46
|
+
- run: python -m pip install 'tox<4'
|
47
|
+
- run: tox -e typecheck
|
28
48
|
Tests:
|
29
49
|
runs-on: ubuntu-latest
|
30
50
|
strategy:
|
31
51
|
matrix:
|
32
|
-
python-version: ['3.
|
52
|
+
python-version: ['3.12', '3.11', '3.10', '3.9']
|
33
53
|
name: Unit tests with Python ${{ matrix.python-version }}
|
34
54
|
steps:
|
35
55
|
- uses: actions/checkout@v3
|
@@ -37,13 +57,16 @@ jobs:
|
|
37
57
|
uses: actions/setup-python@v4
|
38
58
|
with:
|
39
59
|
python-version: ${{ matrix.python-version }}
|
40
|
-
- run: python -m pip install tox
|
60
|
+
- run: python -m pip install 'tox<4'
|
41
61
|
- run: tox -e tests
|
62
|
+
env:
|
63
|
+
COVERAGE_FILE: .coverage.${{ matrix.python-version }}
|
42
64
|
- name: Upload coverage file
|
43
|
-
uses: actions/upload-artifact@
|
65
|
+
uses: actions/upload-artifact@v4
|
44
66
|
with:
|
45
|
-
name: coverage
|
67
|
+
name: coverage-python${{ matrix.python-version}}
|
46
68
|
path: .coverage.*
|
69
|
+
include-hidden-files: true
|
47
70
|
Coverage:
|
48
71
|
needs: tests
|
49
72
|
runs-on: ubuntu-latest
|
@@ -52,18 +75,19 @@ jobs:
|
|
52
75
|
- name: Install Python
|
53
76
|
uses: actions/setup-python@v4
|
54
77
|
with:
|
55
|
-
python-version: '3.
|
78
|
+
python-version: '3.12'
|
56
79
|
- name: Download coverage files
|
57
|
-
uses: actions/download-artifact@
|
80
|
+
uses: actions/download-artifact@v4
|
58
81
|
with:
|
59
|
-
|
60
|
-
|
82
|
+
pattern: coverage-python*
|
83
|
+
merge-multiple: true
|
84
|
+
- run: python -m pip install 'tox<4'
|
61
85
|
- run: tox -e coverage
|
62
86
|
Functests:
|
63
87
|
runs-on: ubuntu-latest
|
64
88
|
strategy:
|
65
89
|
matrix:
|
66
|
-
python-version: ['3.
|
90
|
+
python-version: ['3.12', '3.11', '3.10', '3.9']
|
67
91
|
name: Functional tests with Python ${{ matrix.python-version }}
|
68
92
|
steps:
|
69
93
|
- uses: actions/checkout@v3
|
@@ -71,5 +95,5 @@ jobs:
|
|
71
95
|
uses: actions/setup-python@v4
|
72
96
|
with:
|
73
97
|
python-version: ${{ matrix.python-version }}
|
74
|
-
- run: python -m pip install tox
|
98
|
+
- run: python -m pip install 'tox<4'
|
75
99
|
- run: tox -e functests
|
@@ -0,0 +1,23 @@
|
|
1
|
+
# Prevent scheduled workflows from being disabled due to inactivity.
|
2
|
+
#
|
3
|
+
# GitHub disables scheduled workflows after 60 days of repo inactivity:
|
4
|
+
#
|
5
|
+
# > Warning: To prevent unnecessary workflow runs, scheduled workflows may be
|
6
|
+
# > disabled automatically.
|
7
|
+
# > ... In a public repository, scheduled workflows are automatically disabled
|
8
|
+
# > when no repository activity has occurred in 60 days.
|
9
|
+
#
|
10
|
+
# https://docs.github.com/en/actions/using-workflows/disabling-and-enabling-a-workflow
|
11
|
+
#
|
12
|
+
# This keep-alive workflow triggers whenever one of the scheduled workflows
|
13
|
+
# listed below completes and prevents that scheduled workflow from being
|
14
|
+
# disabled.
|
15
|
+
name: Keepalive
|
16
|
+
on:
|
17
|
+
workflow_run:
|
18
|
+
workflows: [CI]
|
19
|
+
types: [completed]
|
20
|
+
branches: [main]
|
21
|
+
jobs:
|
22
|
+
Keepalive:
|
23
|
+
uses: hypothesis/workflows/.github/workflows/keepalive.yml@main
|
@@ -0,0 +1,18 @@
|
|
1
|
+
name: Slack
|
2
|
+
on:
|
3
|
+
workflow_run:
|
4
|
+
workflows: [CI]
|
5
|
+
types: [completed]
|
6
|
+
branches: [main]
|
7
|
+
jobs:
|
8
|
+
on-failure:
|
9
|
+
runs-on: ubuntu-latest
|
10
|
+
if: ${{ github.event.workflow_run.conclusion == 'failure' }}
|
11
|
+
steps:
|
12
|
+
- name: Post to Slack
|
13
|
+
uses: slackapi/slack-github-action@v1.24.0
|
14
|
+
with:
|
15
|
+
channel-id: 'C4K6M7P5E'
|
16
|
+
slack-message: "A workflow run failed\n*Repo:* `${{ github.event.repository.full_name }}` (${{ github.event.repository.html_url }})\n*Workflow:* ${{ github.event.workflow.name }} (${{ github.event.workflow.html_url }})\n*Branch:* `${{ github.event.workflow_run.head_branch }}`\n*Commit:* `${{ github.event.workflow_run.head_commit.id }}`\n*Run:* ${{ github.event.workflow_run.html_url }}\n*Conclusion:* ${{ github.event.workflow_run.conclusion }}"
|
17
|
+
env:
|
18
|
+
SLACK_BOT_TOKEN: ${{ secrets.SLACK_BOT_TOKEN }}
|
@@ -18,6 +18,11 @@ $(call help,make lint,"lint the code and print any warnings")
|
|
18
18
|
lint: python
|
19
19
|
@pyenv exec tox -qe lint
|
20
20
|
|
21
|
+
.PHONY: typecheck
|
22
|
+
$(call help,make typecheck,"type check the code and print any warnings")
|
23
|
+
typecheck: python
|
24
|
+
@pyenv exec tox -qe typecheck
|
25
|
+
|
21
26
|
.PHONY: format
|
22
27
|
$(call help,make format,"format the code")
|
23
28
|
format: python
|
@@ -29,59 +34,55 @@ checkformatting: python
|
|
29
34
|
@pyenv exec tox -qe checkformatting
|
30
35
|
|
31
36
|
.PHONY: test
|
32
|
-
$(call help,make test,"run the unit tests in Python 3.
|
33
|
-
coverage: test
|
37
|
+
$(call help,make test,"run the unit tests in Python 3.12")
|
34
38
|
test: python
|
35
39
|
@pyenv exec tox -qe tests
|
36
40
|
|
41
|
+
.PHONY: test-py311
|
42
|
+
$(call help,make test-py311,"run the unit tests in Python 3.11")
|
43
|
+
test-py311: python
|
44
|
+
@pyenv exec tox -qe py311-tests
|
45
|
+
|
46
|
+
.PHONY: test-py310
|
47
|
+
$(call help,make test-py310,"run the unit tests in Python 3.10")
|
48
|
+
test-py310: python
|
49
|
+
@pyenv exec tox -qe py310-tests
|
50
|
+
|
37
51
|
.PHONY: test-py39
|
38
52
|
$(call help,make test-py39,"run the unit tests in Python 3.9")
|
39
|
-
coverage: test-py39
|
40
53
|
test-py39: python
|
41
54
|
@pyenv exec tox -qe py39-tests
|
42
55
|
|
43
|
-
.PHONY: test-py38
|
44
|
-
$(call help,make test-py38,"run the unit tests in Python 3.8")
|
45
|
-
coverage: test-py38
|
46
|
-
test-py38: python
|
47
|
-
@pyenv exec tox -qe py38-tests
|
48
|
-
|
49
|
-
.PHONY: test-py37
|
50
|
-
$(call help,make test-py37,"run the unit tests in Python 3.7")
|
51
|
-
coverage: test-py37
|
52
|
-
test-py37: python
|
53
|
-
@pyenv exec tox -qe py37-tests
|
54
|
-
|
55
56
|
.PHONY: coverage
|
56
57
|
$(call help,make coverage,"run the tests and print the coverage report")
|
57
58
|
coverage: python
|
58
|
-
@pyenv exec tox -qe coverage
|
59
|
+
@pyenv exec tox --parallel -qe 'tests,py{311,310,39}-tests,coverage'
|
59
60
|
|
60
61
|
.PHONY: functests
|
61
|
-
$(call help,make functests,"run the functional tests in Python 3.
|
62
|
+
$(call help,make functests,"run the functional tests in Python 3.12")
|
62
63
|
functests: python
|
63
64
|
@pyenv exec tox -qe functests
|
64
65
|
|
66
|
+
.PHONY: functests-py311
|
67
|
+
$(call help,make functests-py311,"run the functional tests in Python 3.11")
|
68
|
+
functests-py311: python
|
69
|
+
@pyenv exec tox -qe py311-functests
|
70
|
+
|
71
|
+
.PHONY: functests-py310
|
72
|
+
$(call help,make functests-py310,"run the functional tests in Python 3.10")
|
73
|
+
functests-py310: python
|
74
|
+
@pyenv exec tox -qe py310-functests
|
75
|
+
|
65
76
|
.PHONY: functests-py39
|
66
77
|
$(call help,make functests-py39,"run the functional tests in Python 3.9")
|
67
78
|
functests-py39: python
|
68
79
|
@pyenv exec tox -qe py39-functests
|
69
80
|
|
70
|
-
.PHONY: functests-py38
|
71
|
-
$(call help,make functests-py38,"run the functional tests in Python 3.8")
|
72
|
-
functests-py38: python
|
73
|
-
@pyenv exec tox -qe py38-functests
|
74
|
-
|
75
|
-
.PHONY: functests-py37
|
76
|
-
$(call help,make functests-py37,"run the functional tests in Python 3.7")
|
77
|
-
functests-py37: python
|
78
|
-
@pyenv exec tox -qe py37-functests
|
79
|
-
|
80
81
|
.PHONY: sure
|
81
82
|
$(call help,make sure,"make sure that the formatting$(comma) linting and tests all pass")
|
82
83
|
sure: python
|
83
84
|
sure:
|
84
|
-
@pyenv exec tox --parallel -qe 'checkformatting,lint,tests,py{
|
85
|
+
@pyenv exec tox --parallel -qe 'checkformatting,lint,typecheck,tests,py{311,310,39}-tests,coverage,functests,py{311,310,39}-functests'
|
85
86
|
|
86
87
|
.PHONY: template
|
87
88
|
$(call help,make template,"update from the latest cookiecutter template")
|
@@ -91,7 +92,7 @@ template: python
|
|
91
92
|
.PHONY: clean
|
92
93
|
$(call help,make clean,"delete temporary files etc")
|
93
94
|
clean:
|
94
|
-
@rm -rf build dist .tox
|
95
|
+
@rm -rf build dist .tox .coverage coverage .eslintcache node_modules supervisord.log supervisord.pid yarn-error.log
|
95
96
|
@find . -path '*/__pycache__*' -delete
|
96
97
|
@find . -path '*.egg-info*' -delete
|
97
98
|
|
@@ -1,6 +1,6 @@
|
|
1
|
-
Metadata-Version: 2.
|
1
|
+
Metadata-Version: 2.2
|
2
2
|
Name: tox-envfile
|
3
|
-
Version: 0.0.
|
3
|
+
Version: 0.0.7
|
4
4
|
Summary: Load env files in your tox envs.
|
5
5
|
Home-page: https://github.com/hypothesis/tox-envfile
|
6
6
|
Project-URL: Bug Tracker, https://github.com/hypothesis/tox-envfile/issues
|
@@ -8,13 +8,14 @@ Project-URL: Changelog, https://github.com/hypothesis/tox-envfile/releases
|
|
8
8
|
Classifier: Programming Language :: Python :: 3
|
9
9
|
Classifier: License :: OSI Approved :: BSD License
|
10
10
|
Classifier: Intended Audience :: Developers
|
11
|
-
Requires-Python: >=3.
|
11
|
+
Requires-Python: >=3.9
|
12
12
|
Description-Content-Type: text/markdown
|
13
13
|
License-File: LICENSE
|
14
|
+
Requires-Dist: python-dotenv
|
14
15
|
|
15
|
-
<a href="https://github.com/hypothesis/tox-envfile/actions/workflows/ci.yml?query=branch%3Amain"><img src="https://img.shields.io/github/workflow/status/hypothesis/tox-envfile/
|
16
|
+
<a href="https://github.com/hypothesis/tox-envfile/actions/workflows/ci.yml?query=branch%3Amain"><img src="https://img.shields.io/github/actions/workflow/status/hypothesis/tox-envfile/ci.yml?branch=main"></a>
|
16
17
|
<a href="https://pypi.org/project/tox-envfile"><img src="https://img.shields.io/pypi/v/tox-envfile"></a>
|
17
|
-
<a><img src="https://img.shields.io/badge/python-3.
|
18
|
+
<a><img src="https://img.shields.io/badge/python-3.12 | 3.11 | 3.10 | 3.9-success"></a>
|
18
19
|
<a href="https://github.com/hypothesis/tox-envfile/blob/main/LICENSE"><img src="https://img.shields.io/badge/license-BSD--2--Clause-success"></a>
|
19
20
|
<a href="https://github.com/hypothesis/cookiecutters/tree/main/pypackage"><img src="https://img.shields.io/badge/cookiecutter-pypackage-success"></a>
|
20
21
|
<a href="https://black.readthedocs.io/en/stable/"><img src="https://img.shields.io/badge/code%20style-black-000000"></a>
|
@@ -83,7 +84,7 @@ Then to set up your development environment:
|
|
83
84
|
|
84
85
|
```terminal
|
85
86
|
git clone https://github.com/hypothesis/tox-envfile.git
|
86
|
-
cd
|
87
|
+
cd tox-envfile
|
87
88
|
make help
|
88
89
|
```
|
89
90
|
|
@@ -1,6 +1,6 @@
|
|
1
|
-
<a href="https://github.com/hypothesis/tox-envfile/actions/workflows/ci.yml?query=branch%3Amain"><img src="https://img.shields.io/github/workflow/status/hypothesis/tox-envfile/
|
1
|
+
<a href="https://github.com/hypothesis/tox-envfile/actions/workflows/ci.yml?query=branch%3Amain"><img src="https://img.shields.io/github/actions/workflow/status/hypothesis/tox-envfile/ci.yml?branch=main"></a>
|
2
2
|
<a href="https://pypi.org/project/tox-envfile"><img src="https://img.shields.io/pypi/v/tox-envfile"></a>
|
3
|
-
<a><img src="https://img.shields.io/badge/python-3.
|
3
|
+
<a><img src="https://img.shields.io/badge/python-3.12 | 3.11 | 3.10 | 3.9-success"></a>
|
4
4
|
<a href="https://github.com/hypothesis/tox-envfile/blob/main/LICENSE"><img src="https://img.shields.io/badge/license-BSD--2--Clause-success"></a>
|
5
5
|
<a href="https://github.com/hypothesis/cookiecutters/tree/main/pypackage"><img src="https://img.shields.io/badge/cookiecutter-pypackage-success"></a>
|
6
6
|
<a href="https://black.readthedocs.io/en/stable/"><img src="https://img.shields.io/badge/code%20style-black-000000"></a>
|
@@ -69,7 +69,7 @@ Then to set up your development environment:
|
|
69
69
|
|
70
70
|
```terminal
|
71
71
|
git clone https://github.com/hypothesis/tox-envfile.git
|
72
|
-
cd
|
72
|
+
cd tox-envfile
|
73
73
|
make help
|
74
74
|
```
|
75
75
|
|
@@ -8,11 +8,11 @@ if [ -n "${CI+x}" ]; then exit; fi
|
|
8
8
|
|
9
9
|
pyenv_root=$(pyenv root)
|
10
10
|
|
11
|
-
for python_version in 3.
|
11
|
+
for python_version in 3.12.7 3.11.10 3.10.15 3.9.20; do
|
12
12
|
bin_dir=$pyenv_root/versions/$python_version/bin
|
13
13
|
if [ ! -f "$bin_dir"/tox ]; then
|
14
14
|
pyenv install --skip-existing "$python_version"
|
15
|
-
"$bin_dir"/pip install --disable-pip-version-check tox
|
15
|
+
"$bin_dir"/pip install --disable-pip-version-check 'tox<4'
|
16
16
|
pyenv rehash
|
17
17
|
fi
|
18
18
|
done
|
@@ -12,7 +12,7 @@ with open(".cookiecutter/cookiecutter.json", "r", encoding="utf-8") as cookiecut
|
|
12
12
|
|
13
13
|
extra_context = config.get("extra_context", {})
|
14
14
|
extra_context["__ignore__"] = config.get("ignore", [])
|
15
|
-
extra_context["__target_dir__"] = Path(os.getcwd())
|
15
|
+
extra_context["__target_dir__"] = str(Path(os.getcwd()))
|
16
16
|
|
17
17
|
parser = argparse.ArgumentParser(description="Update the project from the cookiecutter template")
|
18
18
|
parser.add_argument("--template", help="the cookiecutter template to use (default: what's in cookiecutter.json)")
|
@@ -10,6 +10,11 @@ filterwarnings = [
|
|
10
10
|
"error", # Fail the tests if there are any warnings.
|
11
11
|
"ignore:^find_module\\(\\) is deprecated and slated for removal in Python 3.12; use find_spec\\(\\) instead$:DeprecationWarning:importlib",
|
12
12
|
"ignore:^FileFinder.find_loader\\(\\) is deprecated and slated for removal in Python 3.12; use find_spec\\(\\) instead$:DeprecationWarning:importlib",
|
13
|
+
"ignore:^pkg_resources is deprecated as an API:DeprecationWarning:pkg_resources",
|
14
|
+
"ignore:^pkg_resources is deprecated as an API:DeprecationWarning:pyramid",
|
15
|
+
"ignore:^Deprecated call to .pkg_resources\\.declare_namespace\\('.*'\\).\\.:DeprecationWarning:pkg_resources",
|
16
|
+
"ignore:^'cgi' is deprecated and slated for removal in Python 3\\.13$:DeprecationWarning:webob",
|
17
|
+
"ignore:^datetime\\.datetime\\.utcnow\\(\\) is deprecated and scheduled for removal in a future version\\.:DeprecationWarning",
|
13
18
|
]
|
14
19
|
|
15
20
|
[tool.pydocstyle]
|
@@ -71,9 +76,7 @@ jobs = 0 # Use one process for CPU.
|
|
71
76
|
load-plugins = [
|
72
77
|
"pylint.extensions.bad_builtin",
|
73
78
|
"pylint.extensions.check_elif",
|
74
|
-
"pylint.extensions.comparetozero",
|
75
79
|
"pylint.extensions.docparams",
|
76
|
-
"pylint.extensions.emptystring",
|
77
80
|
"pylint.extensions.mccabe",
|
78
81
|
"pylint.extensions.overlapping_exceptions",
|
79
82
|
"pylint.extensions.redefined_variable_type",
|
@@ -85,11 +88,15 @@ load-plugins = [
|
|
85
88
|
fail-on = ["C", "E", "F", "I", "R", "W"]
|
86
89
|
|
87
90
|
[tool.pylint.messages_control]
|
91
|
+
ignore-paths=[
|
92
|
+
]
|
88
93
|
enable = [
|
89
94
|
"bad-inline-option",
|
90
95
|
"deprecated-pragma",
|
91
96
|
"useless-suppression",
|
92
97
|
"use-symbolic-message-instead",
|
98
|
+
"use-implicit-booleaness-not-comparison-to-zero",
|
99
|
+
"use-implicit-booleaness-not-comparison-to-string",
|
93
100
|
]
|
94
101
|
disable = [
|
95
102
|
# Docstrings are encouraged but we don't want to enforce that everything
|
@@ -133,6 +140,22 @@ good-names = [
|
|
133
140
|
output-format = "colorized"
|
134
141
|
score = "no"
|
135
142
|
|
136
|
-
[tool.
|
137
|
-
|
138
|
-
|
143
|
+
[tool.mypy]
|
144
|
+
allow_untyped_globals = true
|
145
|
+
error_summary = false
|
146
|
+
pretty = true
|
147
|
+
warn_unused_configs = true
|
148
|
+
warn_redundant_casts = true
|
149
|
+
warn_unused_ignores = true
|
150
|
+
|
151
|
+
disable_error_code = [
|
152
|
+
# https://mypy.readthedocs.io/en/stable/error_code_list.html#code-import-untyped
|
153
|
+
"import-untyped",
|
154
|
+
]
|
155
|
+
|
156
|
+
[[tool.mypy.overrides]]
|
157
|
+
module= [
|
158
|
+
# Don't try to typecheck the tests for now
|
159
|
+
"tests.*",
|
160
|
+
]
|
161
|
+
ignore_errors = true
|
@@ -1,6 +1,6 @@
|
|
1
|
-
Metadata-Version: 2.
|
1
|
+
Metadata-Version: 2.2
|
2
2
|
Name: tox-envfile
|
3
|
-
Version: 0.0.
|
3
|
+
Version: 0.0.7
|
4
4
|
Summary: Load env files in your tox envs.
|
5
5
|
Home-page: https://github.com/hypothesis/tox-envfile
|
6
6
|
Project-URL: Bug Tracker, https://github.com/hypothesis/tox-envfile/issues
|
@@ -8,13 +8,14 @@ Project-URL: Changelog, https://github.com/hypothesis/tox-envfile/releases
|
|
8
8
|
Classifier: Programming Language :: Python :: 3
|
9
9
|
Classifier: License :: OSI Approved :: BSD License
|
10
10
|
Classifier: Intended Audience :: Developers
|
11
|
-
Requires-Python: >=3.
|
11
|
+
Requires-Python: >=3.9
|
12
12
|
Description-Content-Type: text/markdown
|
13
13
|
License-File: LICENSE
|
14
|
+
Requires-Dist: python-dotenv
|
14
15
|
|
15
|
-
<a href="https://github.com/hypothesis/tox-envfile/actions/workflows/ci.yml?query=branch%3Amain"><img src="https://img.shields.io/github/workflow/status/hypothesis/tox-envfile/
|
16
|
+
<a href="https://github.com/hypothesis/tox-envfile/actions/workflows/ci.yml?query=branch%3Amain"><img src="https://img.shields.io/github/actions/workflow/status/hypothesis/tox-envfile/ci.yml?branch=main"></a>
|
16
17
|
<a href="https://pypi.org/project/tox-envfile"><img src="https://img.shields.io/pypi/v/tox-envfile"></a>
|
17
|
-
<a><img src="https://img.shields.io/badge/python-3.
|
18
|
+
<a><img src="https://img.shields.io/badge/python-3.12 | 3.11 | 3.10 | 3.9-success"></a>
|
18
19
|
<a href="https://github.com/hypothesis/tox-envfile/blob/main/LICENSE"><img src="https://img.shields.io/badge/license-BSD--2--Clause-success"></a>
|
19
20
|
<a href="https://github.com/hypothesis/cookiecutters/tree/main/pypackage"><img src="https://img.shields.io/badge/cookiecutter-pypackage-success"></a>
|
20
21
|
<a href="https://black.readthedocs.io/en/stable/"><img src="https://img.shields.io/badge/code%20style-black-000000"></a>
|
@@ -83,7 +84,7 @@ Then to set up your development environment:
|
|
83
84
|
|
84
85
|
```terminal
|
85
86
|
git clone https://github.com/hypothesis/tox-envfile.git
|
86
|
-
cd
|
87
|
+
cd tox-envfile
|
87
88
|
make help
|
88
89
|
```
|
89
90
|
|
@@ -14,7 +14,9 @@ tox.ini
|
|
14
14
|
.cookiecutter/includes/tox/deps
|
15
15
|
.github/dependabot.yml
|
16
16
|
.github/workflows/ci.yml
|
17
|
+
.github/workflows/keepalive.yml
|
17
18
|
.github/workflows/pypi.yml
|
19
|
+
.github/workflows/slack.yml
|
18
20
|
bin/make_python
|
19
21
|
bin/make_template
|
20
22
|
src/tox_envfile/__init__.py
|
@@ -4,9 +4,7 @@ jobs = 0 # Use one process for CPU.
|
|
4
4
|
load-plugins = [
|
5
5
|
"pylint.extensions.bad_builtin",
|
6
6
|
"pylint.extensions.check_elif",
|
7
|
-
"pylint.extensions.comparetozero",
|
8
7
|
"pylint.extensions.docparams",
|
9
|
-
"pylint.extensions.emptystring",
|
10
8
|
"pylint.extensions.mccabe",
|
11
9
|
"pylint.extensions.overlapping_exceptions",
|
12
10
|
"pylint.extensions.redefined_variable_type",
|
@@ -25,6 +23,8 @@ enable = [
|
|
25
23
|
"deprecated-pragma",
|
26
24
|
"useless-suppression",
|
27
25
|
"use-symbolic-message-instead",
|
26
|
+
"use-implicit-booleaness-not-comparison-to-zero",
|
27
|
+
"use-implicit-booleaness-not-comparison-to-string",
|
28
28
|
]
|
29
29
|
disable = [
|
30
30
|
# Docstrings are encouraged but we don't want to enforce that everything
|
@@ -1,7 +1,7 @@
|
|
1
1
|
[tox]
|
2
2
|
envlist = tests
|
3
|
-
minversion = 3.25.0
|
4
3
|
requires =
|
4
|
+
tox>=3.25.0,<4
|
5
5
|
tox-envfile
|
6
6
|
tox-faster
|
7
7
|
tox-run-command
|
@@ -14,26 +14,39 @@ skip_install =
|
|
14
14
|
setenv =
|
15
15
|
PYTHONUNBUFFERED = 1
|
16
16
|
OBJC_DISABLE_INITIALIZE_FORK_SAFETY = YES
|
17
|
+
dev: DEV = {env:DEV:true}
|
18
|
+
dev: SENTRY_ENVIRONMENT = {env:SENTRY_ENVIRONMENT:dev}
|
19
|
+
dev: NEW_RELIC_APP_NAME = {env:NEW_RELIC_APP_NAME:tox-envfile}
|
20
|
+
dev: NEW_RELIC_ENVIRONMENT = {env:NEW_RELIC_ENVIRONMENT:dev}
|
21
|
+
dev,tests,functests: PYTHONDEVMODE = {env:PYTHONDEVMODE:1}
|
22
|
+
tests: COVERAGE_FILE = {env:COVERAGE_FILE:.coverage.{envname}}
|
17
23
|
passenv =
|
18
24
|
HOME
|
19
25
|
PYTEST_ADDOPTS
|
26
|
+
dev: DEBUG
|
27
|
+
dev: SENTRY_DSN
|
28
|
+
dev: NEW_RELIC_LICENSE_KEY
|
20
29
|
deps =
|
21
30
|
dev: ipython
|
22
31
|
format,checkformatting: black
|
23
32
|
format,checkformatting: isort
|
24
33
|
lint: toml
|
25
|
-
lint: pylint
|
34
|
+
lint: pylint>=3.0.0
|
26
35
|
lint: pydocstyle
|
27
36
|
lint: pycodestyle
|
28
37
|
lint,tests: pytest-mock
|
29
|
-
lint,tests,coverage: coverage[toml]
|
30
38
|
lint,tests,functests: pytest
|
39
|
+
lint,tests,functests: h-testkit
|
40
|
+
tests: pytest-cov
|
41
|
+
coverage: coverage[toml]
|
31
42
|
lint,tests,functests: factory-boy
|
43
|
+
lint,tests,functests: pytest-factoryboy
|
32
44
|
lint,tests,functests: h-matchers
|
33
45
|
lint,template: cookiecutter
|
46
|
+
typecheck: mypy
|
34
47
|
pluggy
|
35
48
|
depends =
|
36
|
-
coverage: tests,py{
|
49
|
+
coverage: tests,py{311,310,39}-tests
|
37
50
|
commands =
|
38
51
|
dev: {posargs:ipython --classic --no-banner --no-confirm-exit}
|
39
52
|
format: black src tests bin
|
@@ -44,8 +57,9 @@ commands =
|
|
44
57
|
lint: pylint --rcfile=tests/pyproject.toml tests
|
45
58
|
lint: pydocstyle src tests bin
|
46
59
|
lint: pycodestyle src tests bin
|
47
|
-
tests:
|
48
|
-
functests: pytest --failed-first --new-first --no-header --quiet {posargs:tests/functional/}
|
49
|
-
coverage:
|
60
|
+
tests: python -m pytest --cov --cov-report= --cov-fail-under=0 --failed-first --new-first --no-header --quiet {posargs:tests/unit/}
|
61
|
+
functests: python -m pytest --failed-first --new-first --no-header --quiet {posargs:tests/functional/}
|
62
|
+
coverage: coverage combine
|
50
63
|
coverage: coverage report
|
64
|
+
typecheck: mypy src
|
51
65
|
template: python3 bin/make_template {posargs}
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|