New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

envswitch

Package Overview
Dependencies
Maintainers
1
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

envswitch

A very simple GUI and CLI to manage environment variables.

  • 1.4.1
  • PyPI
  • Socket score

Maintainers
1

env-switcher-gui

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

.. code:: bash

pytest -v envswitch/tests/

You may need to install requirements for tests beforehand, using

.. code:: bash

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:

.. code:: bash

    python setup.py egg_info bdist_wheel rotate -m.whl -k3

You may need to install requirements for setup beforehand, using

.. code:: bash

    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.

.. code:: bash

python setup_cx_app.py build

The following command builds a .msi distribution for windows in dist/

.. code:: bash

python setup_cx_app.py bdist_msi

The following command builds a RPM distribution for linux in dist/

.. code:: bash

python setup_cx_app.py bdist_rpm

The following command builds a .app distribution for mac in dist/

.. code:: bash

python setup_cx_app.py bdist_mac

The following command builds a DMG disk image distribution for mac

.. code:: bash

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:

.. code:: bash

mkdocs build

You may need to install requirements for doc beforehand, using

.. code:: bash

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.

.. code:: bash

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:

.. code:: bash

    twine upload dist/* -r pypitest
    twine upload dist/*

.. |Windows Build| image:: https://ci.appveyor.com/api/projects/status/15y7mvbqi4qu2v4y?svg=true
   :target: https://ci.appveyor.com/project/smarie/env-switcher-gui
.. |Linux build| image:: https://travis-ci.org/smarie/env-switcher-gui.svg?branch=master
   :target: https://travis-ci.org/smarie/env-switcher-gui
.. |Documentation| image:: https://img.shields.io/badge/docs-latest-blue.svg
   :target: https://smarie.github.io/env-switcher-gui/
.. |PyPI| image:: https://img.shields.io/badge/PyPI-envswitch-blue.svg
   :target: https://pypi.python.org/pypi/envswitch/
.. |EnvswitchDesign| image:: https://raw.githubusercontent.com/smarie/env-switcher-gui/master/docs/DesignOverview.png
   :target: https://raw.githubusercontent.com/smarie/env-switcher-gui/master/docs/DesignOverview.png


Keywords

FAQs


Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc