Developer shell for easy startup...
Project description
A "dev-shell" for Python projects ;)
This small project is intended to improve the start-up for collaborators.
The idea is to make the project setup as simple as possible. Just clone the sources and start a script and you're done ;)
Why in hell not just a Makefile
? Because it doesn't out-of-the-box under Windows and MacOS, the dev-shell does ;)
Run Tests? Just start the script and call the "run test command".
The "dev-shell" is the base to create a CLI and a shell. It also shows how to make a project bootstrap as simply as possible, e.g.:
~$ git clone https://github.com/jedie/dev-shell.git
~$ cd dev-shell
~/dev-shell$ ./devshell.py pytest
How it works
First start of the Python script ./devshell.py will bootstrap:
- Generate a Python virtual environment (in short:
venv
) - Install poetry
- Install project dependencies and the project himself
The output on first bootstrap start looks like:
~/dev-shell$ ./devshell.py
Create venv here: ~/dev-shell/.venv
Collecting pip
...
Successfully installed pip-21.0.1
Collecting poetry
...
Installing dependencies from lock file
Package operations: 31 installs, 1 update, 0 removals
...
Installing the current project: dev-shell (0.0.1alpha0)
+ .venv/bin/python .venv/bin/devshell
Developer shell - dev_shell - v0.2.0
Documented commands (use 'help -v' for verbose/'help <topic>' for details):
dev-shell commands
==================
fix_code_style linting list_venv_packages publish pytest update
...
(dev_shell) quit
~/dev-shell$
The first bootstrap start takes a few seconds. Each later startup detects the existing virtualenv and is very fast:
~/dev-shell$ ./devshell.py
Developer shell - dev_shell - v0.2.0
(dev_shell) help
Info: The .venv
will be automatically updated via poetry install
call if the poetry.lock
file has been changed.
A call with --update
will force to call some create/update steps, e.g.:
~/dev-shell$ ./devshell.py --update
You can also just delete /.venv/
and start devshell.py
again ;)
(Using --update
is not to be confused with the call of "update" command.)
compatibility
dev-shell version | OS | Python version |
---|---|---|
>=v0.7.0 | Linux + MacOS + Windows | 3.11, 3.10, 3.9 |
>=v0.5.0 | Linux + MacOS + Windows | 3.10, 3.9, 3.8, 3.7 |
>=v0.0.1 | Linux + MacOS + Windows | 3.9, 3.8, 3.7 |
See also github test configuration: .github/workflows/test.yml
History
- dev
- TBC
- 0.8.0 - 2024-04-09
- Remove "gnureadline" as dependency
- update boot script
- update requirements
- 0.7.0 - 2023-04-25
- Update test matrix
- update requirements
- 0.6.1 - 2022-09-02
- Set default subprocess timeout to 5 Min.
- Skip buggy Poetry v1.2.0
- Update requirements
- 0.6.0 - 2022-07-19
- Add "pyupgrade" as shell command
- 0.5.0 - 2022-05-29
- Add "tox" and "poetry" commands to call them installed in created
.venv
- Update requirements
- Add "tox" and "poetry" commands to call them installed in created
- v0.4.0 - 2022-02-28
- Update to new cmd2, colorama and pytest versions
- v0.3.0 - 2022-01-30
- Remove "flynt" form linting/fix code style
- v0.2.4 - 2022-01-30
- Update requirements
- Use darker as code formatter and pytest-darker for linting
- v0.2.3 - 2021-11-15
- Update requirements
- Flynt arguments can be changes via CommandSet
- v0.2.2 - 2021-04-13
- Include bootstrap file, to it's possible to use it in external projects, too.
- v0.2.1 - 2021-04-12
- Handle if "poetry-publish" is not installed, so a project that used "dev-shell" must not install it.
- v0.2.0 - 2021-04-11
- Rename: "dev-shell.py => devshell.py" because of better autocomplete
- Add
DevShellConfig.base_path
and use it in own commands like,pytest
,linting
etc. (So they are usable in external project, too.) - recognize "--update" and "--help" arguments better in
./devshell.py
calls. - Update
setuptools
on.venv
creation, too. - Fix Bugs/tests under Windows
- v0.1.0 - 2021-03-22
- Fix CI usage: Exit with correct return code if tests failed
- Better "run as CLI" implementation via new
run_cmd2_app()
- Bugfix errors that only occur on Windows.
- Simplify
devshell.py
boot script and fix raise error ifensurepip
missing
- v0.0.2 - 2021-03-19
- refactor colorful shortcuts
- display subprocess calls with separated colors
- v0.0.1 - 2021-03-19
- first "useable" version
Project links
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file dev_shell-0.8.0.tar.gz
.
File metadata
- Download URL: dev_shell-0.8.0.tar.gz
- Upload date:
- Size: 29.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.0.0 CPython/3.10.12
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | c15e9ebbef641f0e828c2d32bf3abef816120e6006565d6b4b082276945b85f9 |
|
MD5 | 4b50026fa97218af993d1a52b8a98fb0 |
|
BLAKE2b-256 | 3b96719977eef904a2042fdebf5f80e7a74e06a6f5b0d9f73689129595315501 |
File details
Details for the file dev_shell-0.8.0-py3-none-any.whl
.
File metadata
- Download URL: dev_shell-0.8.0-py3-none-any.whl
- Upload date:
- Size: 33.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.0.0 CPython/3.10.12
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1cd01a88975705b66fb1c12cb940aaad4f0a152b2a7d38ff5775306624e7315d |
|
MD5 | 0eb1c590ccdaa8c4be3bb445cfc5a2fd |
|
BLAKE2b-256 | 669bb6abf5b25c0e4c11e446ce178c56a7ddd14c871af75486a256b88cbe85bf |