Skip to main content

A very simple GUI and CLI to manage environment variables.

Project description

Windows Build Linux build Documentation PyPI

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).

EnvswitchDesign

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

envswitch-1.4.1.tar.gz (353.7 kB view details)

Uploaded Source

Built Distribution

envswitch-1.4.1-py3-none-any.whl (41.0 kB view details)

Uploaded Python 3

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

Hashes for envswitch-1.4.1.tar.gz
Algorithm Hash digest
SHA256 979eb6d7354f1f57f8ff473c8d7587c6d2f9b0cce02d8e43d01f8037ee379ad7
MD5 adc0fda5256080ca6658d09d161dbcd4
BLAKE2b-256 04c45d2b9a7d0738c72897c8274f683af5a9f943314de7dd50819d3b7e33ab53

See more details on using hashes here.

File details

Details for the file envswitch-1.4.1-py3-none-any.whl.

File metadata

File hashes

Hashes for envswitch-1.4.1-py3-none-any.whl
Algorithm Hash digest
SHA256 5e68ca013fb7bed13eb7d4437a5d2e09aaa1c9987fbc4df08b0b0fab8120c086
MD5 3e33dc59e220d211f9271ffdc805acf9
BLAKE2b-256 9fae26fa722368fe8f7c5d549b1d25efb6d00016ea4e283145addca35dd749d7

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page