tox-envfile 0.0.5__tar.gz → 0.0.6__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.6}/.cookiecutter/cookiecutter.json +8 -3
- {tox-envfile-0.0.5 → tox_envfile-0.0.6}/.cookiecutter/includes/README/head.md +0 -1
- {tox-envfile-0.0.5 → tox_envfile-0.0.6}/.cookiecutter/includes/README/tail.md +0 -1
- {tox-envfile-0.0.5 → tox_envfile-0.0.6}/.github/workflows/ci.yml +32 -10
- tox_envfile-0.0.6/.github/workflows/slack.yml +18 -0
- {tox-envfile-0.0.5 → tox_envfile-0.0.6}/.gitignore +2 -1
- tox_envfile-0.0.6/.python-version +5 -0
- {tox-envfile-0.0.5 → tox_envfile-0.0.6}/Makefile +30 -19
- {tox-envfile-0.0.5 → tox_envfile-0.0.6}/PKG-INFO +6 -5
- {tox-envfile-0.0.5 → tox_envfile-0.0.6}/README.md +3 -3
- {tox-envfile-0.0.5 → tox_envfile-0.0.6}/bin/make_python +2 -2
- {tox-envfile-0.0.5 → tox_envfile-0.0.6}/bin/make_template +1 -1
- {tox-envfile-0.0.5 → tox_envfile-0.0.6}/pyproject.toml +26 -2
- {tox-envfile-0.0.5 → tox_envfile-0.0.6}/setup.cfg +1 -1
- {tox-envfile-0.0.5 → tox_envfile-0.0.6}/src/tox_envfile.egg-info/PKG-INFO +6 -5
- {tox-envfile-0.0.5 → tox_envfile-0.0.6}/src/tox_envfile.egg-info/SOURCES.txt +1 -0
- {tox-envfile-0.0.5 → tox_envfile-0.0.6}/tests/pyproject.toml +2 -2
- {tox-envfile-0.0.5 → tox_envfile-0.0.6}/tox.ini +21 -7
- tox-envfile-0.0.5/.python-version +0 -4
- {tox-envfile-0.0.5 → tox_envfile-0.0.6}/.cookiecutter/includes/setuptools/entry_points +0 -0
- {tox-envfile-0.0.5 → tox_envfile-0.0.6}/.cookiecutter/includes/setuptools/install_requires +0 -0
- {tox-envfile-0.0.5 → tox_envfile-0.0.6}/.cookiecutter/includes/tox/deps +0 -0
- {tox-envfile-0.0.5 → tox_envfile-0.0.6}/.github/dependabot.yml +0 -0
- {tox-envfile-0.0.5 → tox_envfile-0.0.6}/.github/workflows/pypi.yml +0 -0
- {tox-envfile-0.0.5 → tox_envfile-0.0.6}/LICENSE +0 -0
- {tox-envfile-0.0.5 → tox_envfile-0.0.6}/src/tox_envfile/__init__.py +0 -0
- {tox-envfile-0.0.5 → tox_envfile-0.0.6}/src/tox_envfile/plugin.py +0 -0
- {tox-envfile-0.0.5 → tox_envfile-0.0.6}/src/tox_envfile.egg-info/dependency_links.txt +0 -0
- {tox-envfile-0.0.5 → tox_envfile-0.0.6}/src/tox_envfile.egg-info/entry_points.txt +0 -0
- {tox-envfile-0.0.5 → tox_envfile-0.0.6}/src/tox_envfile.egg-info/requires.txt +0 -0
- {tox-envfile-0.0.5 → tox_envfile-0.0.6}/src/tox_envfile.egg-info/top_level.txt +0 -0
- {tox-envfile-0.0.5 → tox_envfile-0.0.6}/tests/__init__.py +0 -0
- {tox-envfile-0.0.5 → tox_envfile-0.0.6}/tests/functional/__init__.py +0 -0
- {tox-envfile-0.0.5 → tox_envfile-0.0.6}/tests/functional/sanity_test.py +0 -0
- {tox-envfile-0.0.5 → tox_envfile-0.0.6}/tests/unit/__init__.py +0 -0
- {tox-envfile-0.0.5 → tox_envfile-0.0.6}/tests/unit/tox_envfile/__init__.py +0 -0
- {tox-envfile-0.0.5 → tox_envfile-0.0.6}/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.4, 3.11.9, 3.10.14, 3.9.19, 3.8.19",
|
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', '3.8']
|
33
53
|
name: Unit tests with Python ${{ matrix.python-version }}
|
34
54
|
steps:
|
35
55
|
- uses: actions/checkout@v3
|
@@ -37,8 +57,10 @@ 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
65
|
uses: actions/upload-artifact@v3
|
44
66
|
with:
|
@@ -52,18 +74,18 @@ jobs:
|
|
52
74
|
- name: Install Python
|
53
75
|
uses: actions/setup-python@v4
|
54
76
|
with:
|
55
|
-
python-version: '3.
|
77
|
+
python-version: '3.12'
|
56
78
|
- name: Download coverage files
|
57
79
|
uses: actions/download-artifact@v3
|
58
80
|
with:
|
59
81
|
name: coverage
|
60
|
-
- run: python -m pip install tox
|
82
|
+
- run: python -m pip install 'tox<4'
|
61
83
|
- run: tox -e coverage
|
62
84
|
Functests:
|
63
85
|
runs-on: ubuntu-latest
|
64
86
|
strategy:
|
65
87
|
matrix:
|
66
|
-
python-version: ['3.
|
88
|
+
python-version: ['3.12', '3.11', '3.10', '3.9', '3.8']
|
67
89
|
name: Functional tests with Python ${{ matrix.python-version }}
|
68
90
|
steps:
|
69
91
|
- uses: actions/checkout@v3
|
@@ -71,5 +93,5 @@ jobs:
|
|
71
93
|
uses: actions/setup-python@v4
|
72
94
|
with:
|
73
95
|
python-version: ${{ matrix.python-version }}
|
74
|
-
- run: python -m pip install tox
|
96
|
+
- run: python -m pip install 'tox<4'
|
75
97
|
- run: tox -e functests
|
@@ -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,39 +34,50 @@ 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
56
|
.PHONY: test-py38
|
44
57
|
$(call help,make test-py38,"run the unit tests in Python 3.8")
|
45
|
-
coverage: test-py38
|
46
58
|
test-py38: python
|
47
59
|
@pyenv exec tox -qe py38-tests
|
48
60
|
|
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
61
|
.PHONY: coverage
|
56
62
|
$(call help,make coverage,"run the tests and print the coverage report")
|
57
63
|
coverage: python
|
58
|
-
@pyenv exec tox -qe coverage
|
64
|
+
@pyenv exec tox --parallel -qe 'tests,py{311,310,39,38}-tests,coverage'
|
59
65
|
|
60
66
|
.PHONY: functests
|
61
|
-
$(call help,make functests,"run the functional tests in Python 3.
|
67
|
+
$(call help,make functests,"run the functional tests in Python 3.12")
|
62
68
|
functests: python
|
63
69
|
@pyenv exec tox -qe functests
|
64
70
|
|
71
|
+
.PHONY: functests-py311
|
72
|
+
$(call help,make functests-py311,"run the functional tests in Python 3.11")
|
73
|
+
functests-py311: python
|
74
|
+
@pyenv exec tox -qe py311-functests
|
75
|
+
|
76
|
+
.PHONY: functests-py310
|
77
|
+
$(call help,make functests-py310,"run the functional tests in Python 3.10")
|
78
|
+
functests-py310: python
|
79
|
+
@pyenv exec tox -qe py310-functests
|
80
|
+
|
65
81
|
.PHONY: functests-py39
|
66
82
|
$(call help,make functests-py39,"run the functional tests in Python 3.9")
|
67
83
|
functests-py39: python
|
@@ -72,16 +88,11 @@ $(call help,make functests-py38,"run the functional tests in Python 3.8")
|
|
72
88
|
functests-py38: python
|
73
89
|
@pyenv exec tox -qe py38-functests
|
74
90
|
|
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
91
|
.PHONY: sure
|
81
92
|
$(call help,make sure,"make sure that the formatting$(comma) linting and tests all pass")
|
82
93
|
sure: python
|
83
94
|
sure:
|
84
|
-
@pyenv exec tox --parallel -qe 'checkformatting,lint,tests,py{39,38
|
95
|
+
@pyenv exec tox --parallel -qe 'checkformatting,lint,typecheck,tests,py{311,310,39,38}-tests,coverage,functests,py{311,310,39,38}-functests'
|
85
96
|
|
86
97
|
.PHONY: template
|
87
98
|
$(call help,make template,"update from the latest cookiecutter template")
|
@@ -91,7 +102,7 @@ template: python
|
|
91
102
|
.PHONY: clean
|
92
103
|
$(call help,make clean,"delete temporary files etc")
|
93
104
|
clean:
|
94
|
-
@rm -rf build dist .tox
|
105
|
+
@rm -rf build dist .tox .coverage coverage .eslintcache node_modules supervisord.log supervisord.pid yarn-error.log
|
95
106
|
@find . -path '*/__pycache__*' -delete
|
96
107
|
@find . -path '*.egg-info*' -delete
|
97
108
|
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: tox-envfile
|
3
|
-
Version: 0.0.
|
3
|
+
Version: 0.0.6
|
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.8
|
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 | 3.8-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 | 3.8-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.4 3.11.9 3.10.14 3.9.19 3.8.19; 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,10 @@ 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",
|
13
17
|
]
|
14
18
|
|
15
19
|
[tool.pydocstyle]
|
@@ -71,9 +75,7 @@ jobs = 0 # Use one process for CPU.
|
|
71
75
|
load-plugins = [
|
72
76
|
"pylint.extensions.bad_builtin",
|
73
77
|
"pylint.extensions.check_elif",
|
74
|
-
"pylint.extensions.comparetozero",
|
75
78
|
"pylint.extensions.docparams",
|
76
|
-
"pylint.extensions.emptystring",
|
77
79
|
"pylint.extensions.mccabe",
|
78
80
|
"pylint.extensions.overlapping_exceptions",
|
79
81
|
"pylint.extensions.redefined_variable_type",
|
@@ -85,11 +87,15 @@ load-plugins = [
|
|
85
87
|
fail-on = ["C", "E", "F", "I", "R", "W"]
|
86
88
|
|
87
89
|
[tool.pylint.messages_control]
|
90
|
+
ignore-paths=[
|
91
|
+
]
|
88
92
|
enable = [
|
89
93
|
"bad-inline-option",
|
90
94
|
"deprecated-pragma",
|
91
95
|
"useless-suppression",
|
92
96
|
"use-symbolic-message-instead",
|
97
|
+
"use-implicit-booleaness-not-comparison-to-zero",
|
98
|
+
"use-implicit-booleaness-not-comparison-to-string",
|
93
99
|
]
|
94
100
|
disable = [
|
95
101
|
# Docstrings are encouraged but we don't want to enforce that everything
|
@@ -133,6 +139,24 @@ good-names = [
|
|
133
139
|
output-format = "colorized"
|
134
140
|
score = "no"
|
135
141
|
|
142
|
+
[tool.mypy]
|
143
|
+
warn_unused_configs = true
|
144
|
+
warn_redundant_casts = true
|
145
|
+
warn_unused_ignores = true
|
146
|
+
|
147
|
+
disable_error_code = [
|
148
|
+
# https://mypy.readthedocs.io/en/stable/error_code_list.html#code-import-untyped
|
149
|
+
"import-untyped",
|
150
|
+
]
|
151
|
+
|
152
|
+
[[tool.mypy.overrides]]
|
153
|
+
module= [
|
154
|
+
# Don't try to typecheck the tests for now
|
155
|
+
"tests.*",
|
156
|
+
]
|
157
|
+
ignore_errors = true
|
158
|
+
|
159
|
+
|
136
160
|
[tool.hdev]
|
137
161
|
project_name = "tox-envfile"
|
138
162
|
project_type = "library"
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: tox-envfile
|
3
|
-
Version: 0.0.
|
3
|
+
Version: 0.0.6
|
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.8
|
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 | 3.8-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
|
|
@@ -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{39,38
|
49
|
+
coverage: tests,py{311,310,39,38}-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
|