py是构建简单脚本的一组小工具。只有蟒蛇3条,而且非常小:2kb!
boot.p的Python项目详细描述
安装并使用
用PIP安装。
pip install boot.py
创建一个文件并导入boot。例如,这将安装一个 环境,安装需求,并创建一些文件。
#!/usr/bin/env python3importosimportvenvfrombootimportstep,runfrompathlibimportPathroot_path=Path(__file__).parent.resolve()venv_dir=root_path/'.venv'withstep(f'Creating virtualenv in {venv_dir.name}'):ifnotvenv_dir.exists():venv.create(venv_dir,with_pip=True)withstep('Installing requirements'):run(f'{venv_dir / "bin/pip"} install -r requirements.txt')withstep('Creating directories'):run(f'mkdir -p public/media')run(f'mkdir -p public/static')withstep('Environment file'):envfile=root_path/'.env'ifnotenvfile.exists():withopen(envfile,'w')ashandle:os.chmod(envfile,0o600)handle.write('')
这将输出。
$ ./script.py Creating virtualenv in .venv ... [Ok] Installing requirements ... [Ok] Installing project ... [Ok] Creating directories ... [Ok] Environment file ... [Ok]
很简单!
您还可以编写任务来决定执行什么和执行什么顺序。
#!/usr/bin/env python3importosimportvenvfrombootimportstep,run,taskfrompathlibimportPathroot_path=Path(__file__).parent.resolve()venv_dir=root_path/'.venv'@taskdefbuild(this)withstep(f'Creating virtualenv in {venv_dir.name}'):ifnotvenv_dir.exists():venv.create(venv_dir,with_pip=True)withstep('Creating directories'):run(f'mkdir -p public/media')run(f'mkdir -p public/static')withstep('Environment file'):envfile=root_path/'.env'ifnotenvfile.exists():withopen(envfile,'w')ashandle:os.chmod(envfile,0o600)handle.write('')@taskdefrequirements(this)withstep('Installing requirements'):run(f'{venv_dir / "bin/pip"} install -r requirements.txt')@taskdefbackup(this)withstep(f'Backup db'):run('pg_dump -d database -f output.sql')if__name__=='__main__':tasks={'default':build>>requirements,'build':build,'requirements':requirements,}iflen(sys.argv)==1:ifsys.argv[0]intasks:tasks[sys.argv[0]]()else:print(f'Unknown task: {sys.argv[0]}')print(f'Available tasks are: {tasks.keys()}')else:default()
例如,有一些帮助程序可以用较少的代码构建脚本 我们可以用 一个简单的任务参数分析器:
fromboot.cliimportActionsCommandif__name__=='__main__':ActionsCommand.main(default=build>>requirements,build=build,requirements=requirements,}
此解析–帮助