Skip to content

Run commands quickly from the pyproject.toml file.

License

Notifications You must be signed in to change notification settings

CheeseCake87/pyqwe

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

58 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🏎️💨 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.

About

Run commands quickly from the pyproject.toml file.

Resources

License

Stars

Watchers

Forks

Languages