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.:

At least uv is needed. Install e.g.: via pipx:

apt-get install pipx
pipx install uv

Clone the project and just start the CLI help commands. A virtual environment will be created/updated automatically.

~$ git clone https://github.com/jedie/dev-shell.git
~$ cd dev-shell
~/dev-shell$ devshell.py --help
~/dev-shell$ devshell.py test

The output looks like:

dev-shell commands
──────────────────
coverage        install             publish    test    version
fix_code_style  list_venv_packages  pyupgrade  update

Uncategorized Commands
──────────────────────
alias  help  history  macro  quit  set  shortcuts

compatibility

dev-shell version OS Python version
>=v0.10.0 Linux + MacOS + Windows 3.14, 3.13, 3.12
>=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:

History

  • v0.10.2
    • 2026-02-19 - apply manageprojects updates
    • 2026-02-19 - Bugfix colorful helpers if a Path instance should be printed.
  • v0.10.1
    • 2026-02-10 - Bugfix text color styles
  • v0.10.0
    • 2026-02-10 - Cleanup
    • 2026-02-09 - Update project
  • v0.9.1
    • 2025-03-11 - Fix usage as package in external projects
Expand older history entries ...
  • v0.9.0
    • 2025-03-11 - fix publish
    • 2025-03-11 - Replace poetry with uv
  • v0.8.0
    • 2024-04-09 - Bump version to v0.8.0
    • 2024-04-09 - Remove "gnureadline" as dependency and update boot script
    • 2024-04-09 - Remove "gnureadline" as dependency
    • 2023-07-09 - Update requirements
  • v0.7.0
    • 2023-04-25 - Bugfix RedirectStdOutErr
    • 2023-04-25 - Update test matrix
    • 2023-04-25 - Update requirements
    • 2022-09-19 - skip linting (we use darker)
    • 2022-09-19 - CI: cache packages
  • v0.6.1
    • 2022-09-02 - Update README.md
    • 2022-09-02 - v0.6.1 - update tests adn README
    • 2022-09-02 - remove "pytest-flake8" and "pytest-isort"
    • 2022-09-02 - update requirements
    • 2022-09-02 - Call "poetry update" with "-v"
    • 2022-09-02 - skip Poetry v1.2.0
    • 2022-09-02 - Set default timeout to 5Min.
  • v0.6.0
    • 2022-07-19 - updates
    • 2022-07-19 - dd "pyupgrade" as shell command
    • 2022-07-19 - Update README.md
    • 2022-07-19 - Update requirements
  • v0.5.0
    • 2022-05-29 - update flake8 config
    • 2022-05-29 - simplify isort config
    • 2022-05-29 - fix isort checks
    • 2022-05-29 - v0.5.0.rc1
    • 2022-05-29 - update tox settings
    • 2022-05-29 - line_length = 100
    • 2022-05-29 - call github tests via tox
    • 2022-05-29 - Add "tox" and "poetry" commands
    • 2022-05-29 - Test also with Python 3.10
    • 2022-05-29 - Update requirements
  • v0.4.0
    • 2022-02-28 - Release v0.4.0
    • 2022-02-28 - Update requirements
  • v0.3.0
    • 2022-01-30 - Remove "flynt" form linting/fix code style
  • v0.2.4
    • 2022-01-22 - Switch to darker and use pytest-darker
    • 2022-01-22 - update requirements
  • v0.2.3
    • 2021-11-15 - Fix #29 - Flynt args can be change via CommandSet
    • 2021-11-15 - update requirements
    • 2021-11-15 - Update test.yml
  • v0.2.2
    • 2021-04-12 - include source "bootstrap" file
  • v0.2.1
    • 2021-04-12 - Handle if "poetry-publish" is not installed
  • v0.2.0
    • 2021-04-11 - Fix flake8 call: Remove arguments and add .flake8 config file
    • 2021-04-11 - Update dependencies + add "update" command
    • 2021-04-11 - Release 0.2.0rc1
    • 2021-04-11 - Fix #24 test under windows
    • 2021-04-10 - The DocTest will not work on Windows. Replace it with a normal test ;)
    • 2021-04-10 - Bugfix error on Windows: File "C:\Users\sysop\PycharmProjects\dev-shell\dev_shell\utils\subprocess_utils.py", line 125, in prepare_popenargs command = shutil.which(command_path, path=bin_path) File "C:\Users\sysop\AppData\Local\Programs\Python\Python39\lib\shutil.py", line 1441, in which if any(cmd.lower().endswith(ext.lower()) for ext in pathext): File "C:\Users\sysop\AppData\Local\Programs\Python\Python39\lib\shutil.py", line 1441, in if any(cmd.lower().endswith(ext.lower()) for ext in pathext): AttributeError: 'WindowsPath' object has no attribute 'lower' EXCEPTION of type 'AttributeError' occurred with message: ''WindowsPath' object has no attribute 'lower''
    • 2021-04-10 - Replace "SubprocessMock" with a simple function
    • 2021-04-10 - Bugfix calls outside the project directory...
    • 2021-04-10 - Do linting via tests
    • 2021-04-10 - Update also "setuptools", too.
    • 2021-04-05 - fix tests
    • 2021-04-05 - code style
    • 2021-04-05 - recognize "--update" and "--help" calls better
    • 2021-04-05 - remove "max-parallel"
    • 2021-03-26 - Rename: "dev-shell.py => devshell.py" and add tests for it
    • 2021-03-26 - Auto update .venv if poetry.lock changed
    • 2021-03-22 - Update README.md
    • 2021-03-22 - Remove "path" argument from flynt and autopep8
  • v0.1.0
    • 2021-03-22 - release v0.1.0
    • 2021-03-22 - Better "run as CLI" implementation
    • 2021-03-22 - Update README.md
    • 2021-03-19 - Bugfix handle of sys.exit() and return code (Imporant for CI usage)
    • 2021-03-22 - Update test.yml
    • 2021-03-20 - +!.github
    • 2021-03-20 - Update dev-shell.py
    • 2021-03-20 - add gitignore
    • 2021-03-19 - Bugfix subprocess call: Don't feed shutil.which() with Path() instance
  • v0.0.2
    • 2021-03-19 - refactor colorful
  • v0.0.1
    • 2021-03-19 - activate codecov.io
    • 2021-03-19 - Run linters on github actions
    • 2021-03-19 - Bugfix linting
    • 2021-03-19 - bump to version v0.0.1
    • 2021-03-19 - refactor and add linting and "fix_code_style" commands
    • 2021-03-19 - fix code style
    • 2021-03-19 - subprocess utils: Search for command in PATH
    • 2021-03-19 - update requirements
    • 2021-03-19 - Create a generic CmdAppBaseTestCase
    • 2021-03-19 - code cleanup
    • 2021-03-19 - Update README.md
    • 2021-03-19 - Bugfix Python 3.7 subprocess calls with Path() instances
    • 2021-03-19 - Bugfixes for windows
    • 2021-03-19 - Test on macos, too - TODO: Add windows support
    • 2021-03-19 - Update README
    • 2021-03-18 - add readme
    • 2021-03-18 - bugfix github action
    • 2021-03-18 - Activate github actions
    • 2021-03-18 - make it alive
    • 2021-03-18 - init
    • 2021-03-18 - Initial commit

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.10.2.tar.gz (102.1 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.10.2-py3-none-any.whl (31.4 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: dev_shell-0.10.2.tar.gz
  • Upload date:
  • Size: 102.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.2

File hashes

Hashes for dev_shell-0.10.2.tar.gz
Algorithm Hash digest
SHA256 2603cdf718cfbfae457048c1cd4a797e4f21ad795e6d461568660736361ca0fc
MD5 a4551f45158232b9e74067fb953b8d9b
BLAKE2b-256 591823c4df82623c43822f07e28096a79c13bad1af0180a9918825302a196be0

See more details on using hashes here.

File details

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

File metadata

  • Download URL: dev_shell-0.10.2-py3-none-any.whl
  • Upload date:
  • Size: 31.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.2

File hashes

Hashes for dev_shell-0.10.2-py3-none-any.whl
Algorithm Hash digest
SHA256 5cee109c7f93a4e20120bd05362a3e6c0ad1ad75d60549727d683471b64bb8b4
MD5 d0b4d34b5c9a808565f89503dd575293
BLAKE2b-256 3ec6bc40e3ae075920b1c1c8867d4aa4c89430b0db7edbe7ce7aaf648d1507de

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