Boot.py is an small set of tools to build simple scripts. Python3 only, and really small: 2Kb!
Project description
Install and Use
Install with pip.
pip install boot.py
Create a file and import boot. For example this will install a virtual environment, install requirements, and create some files.
#!/usr/bin/env python3
import os
import venv
from boot import step, run
from pathlib import Path
root_path = Path(__file__).parent.resolve()
venv_dir = root_path / '.venv'
with step(f'Creating virtualenv in {venv_dir.name}'):
if not venv_dir.exists():
venv.create(venv_dir, with_pip=True)
with step('Installing requirements'):
run(f'{venv_dir / "bin/pip"} install -r requirements.txt')
with step('Creating directories'):
run(f'mkdir -p public/media')
run(f'mkdir -p public/static')
with step('Environment file'):
envfile = root_path / '.env'
if not envfile.exists():
with open(envfile, 'w') as handle:
os.chmod(envfile, 0o600)
handle.write('')
This will output.
$ ./script.py
Creating virtualenv in .venv ... [Ok]
Installing requirements ... [Ok]
Installing project ... [Ok]
Creating directories ... [Ok]
Environment file ... [Ok]
Simple!
You can also compose tasks to decide what to execute and what order.
#!/usr/bin/env python3
import os
import venv
from boot import step, run, task
from pathlib import Path
root_path = Path(__file__).parent.resolve()
venv_dir = root_path / '.venv'
@task
def build(this)
with step(f'Creating virtualenv in {venv_dir.name}'):
if not venv_dir.exists():
venv.create(venv_dir, with_pip=True)
with step('Creating directories'):
run(f'mkdir -p public/media')
run(f'mkdir -p public/static')
with step('Environment file'):
envfile = root_path / '.env'
if not envfile.exists():
with open(envfile, 'w') as handle:
os.chmod(envfile, 0o600)
handle.write('')
@task
def requirements(this)
with step('Installing requirements'):
run(f'{venv_dir / "bin/pip"} install -r requirements.txt')
@task
def backup(this)
with step(f'Backup db'):
run('pg_dump -d database -f output.sql')
if __name__ == '__main__':
tasks = {
'default': build >> requirements,
'build': build,
'requirements': requirements,
}
if len(sys.argv) == 1:
if sys.argv[0] in tasks:
tasks[sys.argv[0]]()
else:
print(f'Unknown task: {sys.argv[0]}')
print(f'Available tasks are: {tasks.keys()}')
else:
default()
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
boot.py-0.9.tar.gz
(4.8 kB
view details)
Built Distribution
File details
Details for the file boot.py-0.9.tar.gz
.
File metadata
- Download URL: boot.py-0.9.tar.gz
- Upload date:
- Size: 4.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | c8382c25f994aa61f332e83a3018f9e330342fd7cb53ac3d5bb6a1a8d6cda75b |
|
MD5 | cd857818d71602447b8313a01e0f69d2 |
|
BLAKE2b-256 | 81ec835ee3357da548150fd0812d55c392d2ca23c6775c1a5268495672038705 |
File details
Details for the file boot.py-0.9-py2.py3-none-any.whl
.
File metadata
- Download URL: boot.py-0.9-py2.py3-none-any.whl
- Upload date:
- Size: 7.4 kB
- Tags: Python 2, Python 3
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8a1d3b5acb7d430e6e60c596cf5ed248d87e56bd7a8e3ba9e7ff7aa3fba7f311 |
|
MD5 | c5006fe8d6a64879ac868ec83cef8029 |
|
BLAKE2b-256 | 94b62f6e47f932f9388a8c544008e5d27d45ab05cc14c0dc8342efa8f626d86d |