Skip to main content

Developer shell for easy startup...

Project description

A "dev-shell" for Python projects ;)

Note: The continuation of this project is uncertain!

tests codecov dev_shell @ PyPi Python Versions License GPL-3.0-or-later

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 test

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  test  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 uv.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.9.1 - 2025-03-11
    • Fix usage as package in external projects
  • 0.9.0 - 2025-03-11
    • Replace poetry with uv
  • 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
  • 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
  • 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 if ensurepip 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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

dev_shell-0.9.1.tar.gz (84.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

dev_shell-0.9.1-py3-none-any.whl (32.3 kB view details)

Uploaded Python 3

File details

Details for the file dev_shell-0.9.1.tar.gz.

File metadata

  • Download URL: dev_shell-0.9.1.tar.gz
  • Upload date:
  • Size: 84.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.3

File hashes

Hashes for dev_shell-0.9.1.tar.gz
Algorithm Hash digest
SHA256 6d5b68024c13019f303f58f21efbd42a2c6ef955a74901b9c6214c39fe79f13a
MD5 33e1276e5c477ea301e536d14be0a83e
BLAKE2b-256 718076ae7a001e006308cf94f651c21261c694de21d2351f9c57685869eec9d8

See more details on using hashes here.

File details

Details for the file dev_shell-0.9.1-py3-none-any.whl.

File metadata

  • Download URL: dev_shell-0.9.1-py3-none-any.whl
  • Upload date:
  • Size: 32.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.3

File hashes

Hashes for dev_shell-0.9.1-py3-none-any.whl
Algorithm Hash digest
SHA256 276ed8b91d5dc5ecdc9bff7f9d6f3b84b6475c39368a23837b3d4519cf34d2a0
MD5 faf5f777a09e64f37a2362c25175041a
BLAKE2b-256 5b21ca10818e3d33ffbd6a90e0e93ec4e14c982a777977098b411bfaa81e882c

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page