tox-envfile 0.0.4__py3-none-any.whl → 0.0.6__py3-none-any.whl
Sign up to get free protection for your applications and to get access to all the features.
- tox_envfile/__init__.py +1 -1
- tox_envfile-0.0.6.dist-info/METADATA +206 -0
- tox_envfile-0.0.6.dist-info/RECORD +8 -0
- {tox_envfile-0.0.4.dist-info → tox_envfile-0.0.6.dist-info}/WHEEL +1 -1
- tox_envfile-0.0.4.dist-info/METADATA +0 -71
- tox_envfile-0.0.4.dist-info/RECORD +0 -8
- /tox_envfile/{main.py → plugin.py} +0 -0
- {tox_envfile-0.0.4.dist-info → tox_envfile-0.0.6.dist-info}/LICENSE +0 -0
- {tox_envfile-0.0.4.dist-info → tox_envfile-0.0.6.dist-info}/entry_points.txt +0 -0
- {tox_envfile-0.0.4.dist-info → tox_envfile-0.0.6.dist-info}/top_level.txt +0 -0
tox_envfile/__init__.py
CHANGED
@@ -1 +1 @@
|
|
1
|
-
from tox_envfile.
|
1
|
+
from tox_envfile.plugin import tox_configure
|
@@ -0,0 +1,206 @@
|
|
1
|
+
Metadata-Version: 2.1
|
2
|
+
Name: tox-envfile
|
3
|
+
Version: 0.0.6
|
4
|
+
Summary: Load env files in your tox envs.
|
5
|
+
Home-page: https://github.com/hypothesis/tox-envfile
|
6
|
+
Project-URL: Bug Tracker, https://github.com/hypothesis/tox-envfile/issues
|
7
|
+
Project-URL: Changelog, https://github.com/hypothesis/tox-envfile/releases
|
8
|
+
Classifier: Programming Language :: Python :: 3
|
9
|
+
Classifier: License :: OSI Approved :: BSD License
|
10
|
+
Classifier: Intended Audience :: Developers
|
11
|
+
Requires-Python: >=3.8
|
12
|
+
Description-Content-Type: text/markdown
|
13
|
+
License-File: LICENSE
|
14
|
+
Requires-Dist: python-dotenv
|
15
|
+
|
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>
|
17
|
+
<a href="https://pypi.org/project/tox-envfile"><img src="https://img.shields.io/pypi/v/tox-envfile"></a>
|
18
|
+
<a><img src="https://img.shields.io/badge/python-3.12 | 3.11 | 3.10 | 3.9 | 3.8-success"></a>
|
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>
|
20
|
+
<a href="https://github.com/hypothesis/cookiecutters/tree/main/pypackage"><img src="https://img.shields.io/badge/cookiecutter-pypackage-success"></a>
|
21
|
+
<a href="https://black.readthedocs.io/en/stable/"><img src="https://img.shields.io/badge/code%20style-black-000000"></a>
|
22
|
+
|
23
|
+
# tox-envfile
|
24
|
+
|
25
|
+
Load env files in your tox envs.
|
26
|
+
|
27
|
+
tox-envfile reads environment variables from a file named `.devdata.env` in the
|
28
|
+
same directory as your `tox.ini` file and adds them to the environment that tox
|
29
|
+
runs your commands in.
|
30
|
+
|
31
|
+
This is a pretty dumb plugin for now: all of the environment variables in
|
32
|
+
`.devdata.env` will be loaded into the environment for every tox env that you
|
33
|
+
run, unconditionally. Any existing envvars with conflicting names will be
|
34
|
+
overwritten. Only a single environment file is supported and it must be named
|
35
|
+
`.devdata.env`.
|
36
|
+
|
37
|
+
env File Format
|
38
|
+
---------------
|
39
|
+
|
40
|
+
[python-dotenv](https://saurabh-kumar.com/python-dotenv/) is used for the env file parsing.
|
41
|
+
|
42
|
+
The `.devdata.env` file should be an env file with contents that look like
|
43
|
+
this:
|
44
|
+
|
45
|
+
```shell
|
46
|
+
# a comment that will be ignored.
|
47
|
+
REDIS_ADDRESS=localhost:6379
|
48
|
+
MEANING_OF_LIFE=42
|
49
|
+
MULTILINE_VAR="hello\nworld"
|
50
|
+
```
|
51
|
+
|
52
|
+
Or like this:
|
53
|
+
|
54
|
+
```shell
|
55
|
+
export S3_BUCKET=YOURS3BUCKET
|
56
|
+
export SECRET_KEY=YOURSECRETKEYGOESHERE
|
57
|
+
```
|
58
|
+
|
59
|
+
POSIX variable expansion works, using variables from the environment or from
|
60
|
+
earlier lines in the env file:
|
61
|
+
|
62
|
+
```shell
|
63
|
+
CONFIG_PATH=${HOME}/.config/foo
|
64
|
+
DOMAIN=example.org
|
65
|
+
EMAIL=admin@${DOMAIN}
|
66
|
+
```
|
67
|
+
|
68
|
+
## Setting up Your tox-envfile Development Environment
|
69
|
+
|
70
|
+
First you'll need to install:
|
71
|
+
|
72
|
+
* [Git](https://git-scm.com/).
|
73
|
+
On Ubuntu: `sudo apt install git`, on macOS: `brew install git`.
|
74
|
+
* [GNU Make](https://www.gnu.org/software/make/).
|
75
|
+
This is probably already installed, run `make --version` to check.
|
76
|
+
* [pyenv](https://github.com/pyenv/pyenv).
|
77
|
+
Follow the instructions in pyenv's README to install it.
|
78
|
+
The **Homebrew** method works best on macOS.
|
79
|
+
The **Basic GitHub Checkout** method works best on Ubuntu.
|
80
|
+
You _don't_ need to set up pyenv's shell integration ("shims"), you can
|
81
|
+
[use pyenv without shims](https://github.com/pyenv/pyenv#using-pyenv-without-shims).
|
82
|
+
|
83
|
+
Then to set up your development environment:
|
84
|
+
|
85
|
+
```terminal
|
86
|
+
git clone https://github.com/hypothesis/tox-envfile.git
|
87
|
+
cd tox-envfile
|
88
|
+
make help
|
89
|
+
```
|
90
|
+
|
91
|
+
## Releasing a New Version of the Project
|
92
|
+
|
93
|
+
1. First, to get PyPI publishing working you need to go to:
|
94
|
+
<https://github.com/organizations/hypothesis/settings/secrets/actions/PYPI_TOKEN>
|
95
|
+
and add tox-envfile to the `PYPI_TOKEN` secret's selected
|
96
|
+
repositories.
|
97
|
+
|
98
|
+
2. Now that the tox-envfile project has access to the `PYPI_TOKEN` secret
|
99
|
+
you can release a new version by just [creating a new GitHub release](https://docs.github.com/en/repositories/releasing-projects-on-github/managing-releases-in-a-repository).
|
100
|
+
Publishing a new GitHub release will automatically trigger
|
101
|
+
[a GitHub Actions workflow](.github/workflows/pypi.yml)
|
102
|
+
that will build the new version of your Python package and upload it to
|
103
|
+
<https://pypi.org/project/tox-envfile>.
|
104
|
+
|
105
|
+
## Changing the Project's Python Versions
|
106
|
+
|
107
|
+
To change what versions of Python the project uses:
|
108
|
+
|
109
|
+
1. Change the Python versions in the
|
110
|
+
[cookiecutter.json](.cookiecutter/cookiecutter.json) file. For example:
|
111
|
+
|
112
|
+
```json
|
113
|
+
"python_versions": "3.10.4, 3.9.12",
|
114
|
+
```
|
115
|
+
|
116
|
+
2. Re-run the cookiecutter template:
|
117
|
+
|
118
|
+
```terminal
|
119
|
+
make template
|
120
|
+
```
|
121
|
+
|
122
|
+
3. Commit everything to git and send a pull request
|
123
|
+
|
124
|
+
## Changing the Project's Python Dependencies
|
125
|
+
|
126
|
+
To change the production dependencies in the `setup.cfg` file:
|
127
|
+
|
128
|
+
1. Change the dependencies in the [`.cookiecutter/includes/setuptools/install_requires`](.cookiecutter/includes/setuptools/install_requires) file.
|
129
|
+
If this file doesn't exist yet create it and add some dependencies to it.
|
130
|
+
For example:
|
131
|
+
|
132
|
+
```
|
133
|
+
pyramid
|
134
|
+
sqlalchemy
|
135
|
+
celery
|
136
|
+
```
|
137
|
+
|
138
|
+
2. Re-run the cookiecutter template:
|
139
|
+
|
140
|
+
```terminal
|
141
|
+
make template
|
142
|
+
```
|
143
|
+
|
144
|
+
3. Commit everything to git and send a pull request
|
145
|
+
|
146
|
+
To change the project's formatting, linting and test dependencies:
|
147
|
+
|
148
|
+
1. Change the dependencies in the [`.cookiecutter/includes/tox/deps`](.cookiecutter/includes/tox/deps) file.
|
149
|
+
If this file doesn't exist yet create it and add some dependencies to it.
|
150
|
+
Use tox's [factor-conditional settings](https://tox.wiki/en/latest/config.html#factors-and-factor-conditional-settings)
|
151
|
+
to limit which environment(s) each dependency is used in.
|
152
|
+
For example:
|
153
|
+
|
154
|
+
```
|
155
|
+
lint: flake8,
|
156
|
+
format: autopep8,
|
157
|
+
lint,tests: pytest-faker,
|
158
|
+
```
|
159
|
+
|
160
|
+
2. Re-run the cookiecutter template:
|
161
|
+
|
162
|
+
```terminal
|
163
|
+
make template
|
164
|
+
```
|
165
|
+
|
166
|
+
3. Commit everything to git and send a pull request
|
167
|
+
|
168
|
+
Testing Manually
|
169
|
+
----------------
|
170
|
+
|
171
|
+
To test it manually you can install your local development copy of
|
172
|
+
`tox-envfile` into the local development environment of another tox-using
|
173
|
+
project such as
|
174
|
+
[cookiecutter-pypackage-test](https://github.com/hypothesis/cookiecutter-pypackage-test):
|
175
|
+
|
176
|
+
1. Install a local development copy of `cookiecutter-pypackage-test` in a temporary directory:
|
177
|
+
|
178
|
+
```terminal
|
179
|
+
git clone https://github.com/hypothesis/cookiecutter-pypackage-test.git /tmp/cookiecutter-pypackage-test
|
180
|
+
```
|
181
|
+
|
182
|
+
2. Run `cookiecutter-pypackage-test`'s `make sure` command to make sure that
|
183
|
+
everything is working and to trigger tox to create its `.tox/.tox`
|
184
|
+
venv:
|
185
|
+
|
186
|
+
```terminal
|
187
|
+
make --directory "/tmp/cookiecutter-pypackage-test" sure
|
188
|
+
```
|
189
|
+
|
190
|
+
3. Uninstall the production copy of `tox-envfile` from `cookiecutter-pypackage-test`'s `.tox/.tox` venv:
|
191
|
+
|
192
|
+
```terminal
|
193
|
+
/tmp/cookiecutter-pypackage-test/.tox/.tox/bin/pip uninstall tox-envfile
|
194
|
+
```
|
195
|
+
|
196
|
+
4. Install your local development copy of `tox-envfile` into `cookiecutter-pypackage-test`'s `.tox/.tox` venv:
|
197
|
+
|
198
|
+
```terminal
|
199
|
+
/tmp/cookiecutter-pypackage-test/.tox/.tox/bin/pip install -e .
|
200
|
+
```
|
201
|
+
|
202
|
+
5. Now `cookiecutter-pypackage-test` commands will use your local development copy of `tox-envfile`:
|
203
|
+
|
204
|
+
```terminal
|
205
|
+
make --directory "/tmp/cookiecutter-pypackage-test" test
|
206
|
+
```
|
@@ -0,0 +1,8 @@
|
|
1
|
+
tox_envfile/__init__.py,sha256=QYYaJKPtsRn1iDs3euGfMdC2Z93-w-uFhYxzyg0k6Rs,45
|
2
|
+
tox_envfile/plugin.py,sha256=G5R2fu1KOWF5NJ0SHGdq4cIyntW-yX3XSOH2okrj4Ck,344
|
3
|
+
tox_envfile-0.0.6.dist-info/LICENSE,sha256=dBzUThlLQ34NAPMuoq9vyDNVRMrQJX0DHJqa5S4qc7M,1320
|
4
|
+
tox_envfile-0.0.6.dist-info/METADATA,sha256=V-CAY4jRTRiCjMaoVZchXF1wCHBsCmbjcqkCdiZs130,7086
|
5
|
+
tox_envfile-0.0.6.dist-info/WHEEL,sha256=GJ7t_kWBFywbagK5eo9IoUwLW6oyOeTKmQ-9iHFVNxQ,92
|
6
|
+
tox_envfile-0.0.6.dist-info/entry_points.txt,sha256=GEYCdOwC6X70XpS5Gt71rnmuGgMTje8QiBLWi_trr4Y,32
|
7
|
+
tox_envfile-0.0.6.dist-info/top_level.txt,sha256=Dv2s9K5Qd8CyUm7ZPvBsz_aoTe2QPAglDimil5l9VFk,12
|
8
|
+
tox_envfile-0.0.6.dist-info/RECORD,,
|
@@ -1,71 +0,0 @@
|
|
1
|
-
Metadata-Version: 2.1
|
2
|
-
Name: tox-envfile
|
3
|
-
Version: 0.0.4
|
4
|
-
Summary: Load env files in your tox envs.
|
5
|
-
Home-page: https://github.com/hypothesis/tox-envfile
|
6
|
-
Project-URL: Bug Tracker, https://github.com/hypothesis/tox-envfile/issues
|
7
|
-
Project-URL: Changelog, https://github.com/hypothesis/tox-envfile/releases
|
8
|
-
Classifier: Programming Language :: Python :: 3
|
9
|
-
Classifier: License :: OSI Approved :: BSD License
|
10
|
-
Classifier: Intended Audience :: Developers
|
11
|
-
Requires-Python: >=3.8
|
12
|
-
Description-Content-Type: text/markdown
|
13
|
-
License-File: LICENSE
|
14
|
-
Requires-Dist: python-dotenv
|
15
|
-
|
16
|
-
<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/CI/main"></a>
|
17
|
-
<a href="https://pypi.org/project/tox-envfile"><img src="https://img.shields.io/pypi/v/tox-envfile"></a>
|
18
|
-
<a><img src="https://img.shields.io/badge/python-3.10 | 3.9 | 3.8-success"></a>
|
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>
|
20
|
-
<a href="https://github.com/hypothesis/cookiecutters/tree/main/pypackage"><img src="https://img.shields.io/badge/cookiecutter-pypackage-success"></a>
|
21
|
-
<a href="https://black.readthedocs.io/en/stable/"><img src="https://img.shields.io/badge/code%20style-black-000000"></a>
|
22
|
-
|
23
|
-
# tox-envfile
|
24
|
-
|
25
|
-
Load env files in your tox envs.
|
26
|
-
|
27
|
-
For installation instructions see [INSTALL.md](https://github.com/hypothesis/tox-envfile/blob/main/INSTALL.md).
|
28
|
-
|
29
|
-
For how to set up a tox-envfile development environment see
|
30
|
-
[HACKING.md](https://github.com/hypothesis/tox-envfile/blob/main/HACKING.md).
|
31
|
-
|
32
|
-
tox-envfile reads environment variables from a file named `.devdata.env` in the
|
33
|
-
same directory as your `tox.ini` file and adds them to the environment that tox
|
34
|
-
runs your commands in.
|
35
|
-
|
36
|
-
This is a pretty dumb plugin for now: all of the environment variables in
|
37
|
-
`.devdata.env` will be loaded into the environment for every tox env that you
|
38
|
-
run, unconditionally. Any existing envvars with conflicting names will be
|
39
|
-
overwritten. Only a single environment file is supported and it must be named
|
40
|
-
`.devdata.env`.
|
41
|
-
|
42
|
-
env File Format
|
43
|
-
---------------
|
44
|
-
|
45
|
-
[python-dotenv](https://saurabh-kumar.com/python-dotenv/) is used for the env file parsing.
|
46
|
-
|
47
|
-
The `.devdata.env` file should be an env file with contents that look like
|
48
|
-
this:
|
49
|
-
|
50
|
-
```shell
|
51
|
-
# a comment that will be ignored.
|
52
|
-
REDIS_ADDRESS=localhost:6379
|
53
|
-
MEANING_OF_LIFE=42
|
54
|
-
MULTILINE_VAR="hello\nworld"
|
55
|
-
```
|
56
|
-
|
57
|
-
Or like this:
|
58
|
-
|
59
|
-
```shell
|
60
|
-
export S3_BUCKET=YOURS3BUCKET
|
61
|
-
export SECRET_KEY=YOURSECRETKEYGOESHERE
|
62
|
-
```
|
63
|
-
|
64
|
-
POSIX variable expansion works, using variables from the environment or from
|
65
|
-
earlier lines in the env file:
|
66
|
-
|
67
|
-
```shell
|
68
|
-
CONFIG_PATH=${HOME}/.config/foo
|
69
|
-
DOMAIN=example.org
|
70
|
-
EMAIL=admin@${DOMAIN}
|
71
|
-
```
|
@@ -1,8 +0,0 @@
|
|
1
|
-
tox_envfile/__init__.py,sha256=Rfupoi4NArJRSY9ydXUb2Wq9RzDjU83OVnTUIMoz1RQ,43
|
2
|
-
tox_envfile/main.py,sha256=G5R2fu1KOWF5NJ0SHGdq4cIyntW-yX3XSOH2okrj4Ck,344
|
3
|
-
tox_envfile-0.0.4.dist-info/LICENSE,sha256=dBzUThlLQ34NAPMuoq9vyDNVRMrQJX0DHJqa5S4qc7M,1320
|
4
|
-
tox_envfile-0.0.4.dist-info/METADATA,sha256=K3IPnWs8Z-qQQBHosx-aiFGx0E8glqZfqlUpRmPMlAQ,2784
|
5
|
-
tox_envfile-0.0.4.dist-info/WHEEL,sha256=G16H4A3IeoQmnOrYV4ueZGKSjhipXx8zc8nu9FGlvMA,92
|
6
|
-
tox_envfile-0.0.4.dist-info/entry_points.txt,sha256=GEYCdOwC6X70XpS5Gt71rnmuGgMTje8QiBLWi_trr4Y,32
|
7
|
-
tox_envfile-0.0.4.dist-info/top_level.txt,sha256=Dv2s9K5Qd8CyUm7ZPvBsz_aoTe2QPAglDimil5l9VFk,12
|
8
|
-
tox_envfile-0.0.4.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|