A very simple GUI and CLI to manage environment variables.
Project description
A very simple GUI and CLI to manage environment variables.
Project page : https://smarie.github.io/env-switcher-gui/
Developer memo for QtDesigner
Architecture
This is a kind of MVC pattern where
the View is made of two parts: the static one UI_MainWindow, generated with qt designer, and the dynamic one EnvSwitcherView. It deals with the various widgets and popups.
the Model is provided by EnvSwitcherState and deals with the configuration files and persistence.
the Controller, or the Application, is provided by EnvSwitcherApp and provides the Qt application boilerplate as well as persistence of the application settings (recent edited files).
PyQt Code generation
Prerequisite: install PyQt5, but warning: using pip to install pyqt in anaconda root may compromise your global conda environment (see `here <https://github.com/ContinuumIO/anaconda-issues/issues/1970>`__) * Run designer, save file as *.ui for example we use ./ui/sprint2_dynamic.ui * Generate equivalent python file with pyuic5 ui/sprint2_dynamic.ui -o envswitch/qt_design.py
Want to contribute ?
Contributions are welcome ! Simply fork this project on github, commit your contributions, and create pull requests.
Here is a non-exhaustive list of interesting open topics: https://github.com/smarie/env-switcher-gui/issues
Running the tests
This project uses pytest.
pytest -v envswitch/tests/
You may need to install requirements for tests beforehand, using
pip install -r ci_tools/requirements-test.txt
Packaging
Python wheel
This project uses setuptools_scm to synchronise the version number. Therefore the following command should be used for development snapshots as well as official releases:
python setup.py egg_info bdist_wheel rotate -m.whl -k3
You may need to install requirements for setup beforehand, using
pip install -r ci_tools/requirements-setup.txt
Standalone app
To build the executable distribution there is a separate setup file for cx_freeze.
The following command builds a distribution folder under build/ containing all resources needed and an envswitch executable for you platform.
python setup_cx_app.py build
The following command builds a .msi distribution for windows in dist/
python setup_cx_app.py bdist_msi
The following command builds a RPM distribution for linux in dist/
python setup_cx_app.py bdist_rpm
The following command builds a .app distribution for mac in dist/
python setup_cx_app.py bdist_mac
The following command builds a DMG disk image distribution for mac
python setup_cx_app.py bdist_dmg
Generating the documentation page
This project uses mkdocs to generate its documentation page. Therefore building a local copy of the doc page may be done using:
mkdocs build
You may need to install requirements for doc beforehand, using
pip install -r ci_tools/requirements-doc.txt
Generating the test reports
The following commands generate the html test report and the associated badge. Note that in order for the test to succeed, you should create an environment variable named ‘FOO’ beforehand, with random content.
pytest --junitxml=junit.xml -v envswitch/tests/
ant -f ci_tools/generate-junit-html.xml
python ci_tools/generate-junit-badge.py
PyPI Releasing memo
This project is now automatically deployed to PyPI by Travis when a tag is created. Anyway, for manual deployment we can use:
twine upload dist/* -r pypitest
twine upload dist/*
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file envswitch-1.4.1.tar.gz
.
File metadata
- Download URL: envswitch-1.4.1.tar.gz
- Upload date:
- Size: 353.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 979eb6d7354f1f57f8ff473c8d7587c6d2f9b0cce02d8e43d01f8037ee379ad7 |
|
MD5 | adc0fda5256080ca6658d09d161dbcd4 |
|
BLAKE2b-256 | 04c45d2b9a7d0738c72897c8274f683af5a9f943314de7dd50819d3b7e33ab53 |
File details
Details for the file envswitch-1.4.1-py3-none-any.whl
.
File metadata
- Download URL: envswitch-1.4.1-py3-none-any.whl
- Upload date:
- Size: 41.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5e68ca013fb7bed13eb7d4437a5d2e09aaa1c9987fbc4df08b0b0fab8120c086 |
|
MD5 | 3e33dc59e220d211f9271ffdc805acf9 |
|
BLAKE2b-256 | 9fae26fa722368fe8f7c5d549b1d25efb6d00016ea4e283145addca35dd749d7 |