Skip to main content

Run commands set in the pyproject.toml file

Project description

🏎️💨 pyqwe

The Quick Work Environment for Python.

Run commands quickly from the pyproject.toml file.

pip install pyqwe

For .env file support using python-dotenv:

pip install pyqwe[dotenv]
# If zsh install extra using:
pip install 'pyqwe[dotenv]'

See using environment variables for more information.

Usage

Add commands to the pyproject.toml file.

[tool.pyqwe]
flask = "flask_app:run"
say_hello = "*:echo Hello World"

You will be able to see what commands you have set in the pyproject.toml file by running:

pyqwe list

Python commands:

For Python, the commands are structured like (package:module):function

Package example:

project/
    flask_app/
        __init__.py
[tool.pyqwe]
flask = "flask_app:run"

This command will run the function run() from the __init__.py file in the flask_app package.

Module example:

project/
    app.py
[tool.pyqwe]
flask = "app:run"

This command will run the function run() from the app.py file.

Now run the pyqwe command:

pyqwe flask

This will start the Flask app.

*:... commands:

Any command that starts with * will be run using subprocess.

For example:

[tool.pyqwe]
say_hello = "*:echo Hello World"

Now running the pyqwe command:

pyqwe say_hello

Will print Hello World.

Run as shell

To run the command as a subprocess shell command, add the shell key to the command.

[tool.pyqwe]
say_hello = "*shell:echo Hello World"

Change the working directory

You can change the working directory of a subprocess by adding the folder within parentheses to the command, (node_app) for example.

The folder must be relative to the pyproject.toml file.

Absolute paths are not supported.

Moving up directories is not supported, ../node_app for example.

[tool.pyqwe]
npm_install = "*(node_app):npm install"

This can be used with the shell key.

[tool.pyqwe]
npm_install = "*shell(node_app):npm i"

Using environment variables

To use environment variables in the command, use the {{ }} syntax.

[tool.pyqwe]
talk = "*shell:echo {{MESSAGE}}"

Now running the pyqwe command:

pyqwe talk

Will print the value of the MESSAGE environment variable.

⚠️ Note: The environment variables must be set before running the command.

pyqwe will not look for the .env file by default. To enable this, install the pyqwe-extra-dotenv package.

pip install pyqwe-extra-dotenv

or

pip install pyqwe[dotenv]

To stop the behavior of looking for the .env when using pyqwe, uninstall the pyqwe-extra-dotenv package.

pip uninstall pyqwe-extra-dotenv

Other commands

pyqwe -h or --help will display all the commands set in the pyproject.toml file.

pyqwe __version__ will display the version of pyqwe.

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

pyqwe-1.2.0.tar.gz (5.9 kB view hashes)

Uploaded Source

Built Distribution

pyqwe-1.2.0-py3-none-any.whl (6.1 kB view hashes)

Uploaded Python 3

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