dev-shell 0.6.1__tar.gz → 0.8.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (26) hide show
  1. {dev-shell-0.6.1 → dev_shell-0.8.0}/PKG-INFO +15 -9
  2. {dev-shell-0.6.1 → dev_shell-0.8.0}/README.md +10 -2
  3. dev_shell-0.8.0/dev_shell/__init__.py +1 -0
  4. {dev-shell-0.6.1 → dev_shell-0.8.0}/dev_shell/bootstrap-source.py +21 -13
  5. {dev-shell-0.6.1 → dev_shell-0.8.0}/dev_shell/tests/test_bootstrap.py +10 -6
  6. {dev-shell-0.6.1 → dev_shell-0.8.0}/dev_shell/tests/utils.py +5 -3
  7. {dev-shell-0.6.1 → dev_shell-0.8.0}/pyproject.toml +5 -11
  8. dev-shell-0.6.1/dev_shell/__init__.py +0 -1
  9. dev-shell-0.6.1/setup.py +0 -38
  10. {dev-shell-0.6.1 → dev_shell-0.8.0}/LICENSE +0 -0
  11. {dev-shell-0.6.1 → dev_shell-0.8.0}/dev_shell/base_cmd2_app.py +0 -0
  12. {dev-shell-0.6.1 → dev_shell-0.8.0}/dev_shell/command_sets/__init__.py +0 -0
  13. {dev-shell-0.6.1 → dev_shell-0.8.0}/dev_shell/command_sets/dev_shell_commands.py +0 -0
  14. {dev-shell-0.6.1 → dev_shell-0.8.0}/dev_shell/config.py +0 -0
  15. {dev-shell-0.6.1 → dev_shell-0.8.0}/dev_shell/constants.py +0 -0
  16. {dev-shell-0.6.1 → dev_shell-0.8.0}/dev_shell/dev_shell_app.py +0 -0
  17. {dev-shell-0.6.1 → dev_shell-0.8.0}/dev_shell/tests/__init__.py +0 -0
  18. {dev-shell-0.6.1 → dev_shell-0.8.0}/dev_shell/tests/constants.py +0 -0
  19. {dev-shell-0.6.1 → dev_shell-0.8.0}/dev_shell/tests/fixtures.py +0 -0
  20. {dev-shell-0.6.1 → dev_shell-0.8.0}/dev_shell/tests/test_dev_shell_app.py +0 -0
  21. {dev-shell-0.6.1 → dev_shell-0.8.0}/dev_shell/tests/test_source_file.py +0 -0
  22. {dev-shell-0.6.1 → dev_shell-0.8.0}/dev_shell/tests/test_subprocess_utils.py +0 -0
  23. {dev-shell-0.6.1 → dev_shell-0.8.0}/dev_shell/utils/__init__.py +0 -0
  24. {dev-shell-0.6.1 → dev_shell-0.8.0}/dev_shell/utils/assertion.py +0 -0
  25. {dev-shell-0.6.1 → dev_shell-0.8.0}/dev_shell/utils/colorful.py +0 -0
  26. {dev-shell-0.6.1 → dev_shell-0.8.0}/dev_shell/utils/subprocess_utils.py +0 -0
@@ -1,20 +1,18 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: dev-shell
3
- Version: 0.6.1
4
- Summary: Devloper shell for easy startup...
3
+ Version: 0.8.0
4
+ Summary: Developer shell for easy startup...
5
5
  Home-page: https://github.com/jedie/dev-shell
6
6
  License: GNU General Public License v3.0
7
7
  Author: Jens Diemer
8
8
  Author-email: python@jensdiemer.de
9
- Requires-Python: >=3.7,<4.0.0
9
+ Requires-Python: >=3.9,<4.0
10
10
  Classifier: License :: Other/Proprietary License
11
11
  Classifier: Programming Language :: Python :: 3
12
- Classifier: Programming Language :: Python :: 3.10
13
- Classifier: Programming Language :: Python :: 3.7
14
- Classifier: Programming Language :: Python :: 3.8
15
12
  Classifier: Programming Language :: Python :: 3.9
13
+ Classifier: Programming Language :: Python :: 3.10
14
+ Classifier: Programming Language :: Python :: 3.11
16
15
  Requires-Dist: cmd2
17
- Requires-Dist: gnureadline; sys_platform == "darwin"
18
16
  Description-Content-Type: text/markdown
19
17
 
20
18
  # A "dev-shell" for Python projects ;)
@@ -30,7 +28,7 @@ This small project is intended to improve the start-up for collaborators.
30
28
 
31
29
  The idea is to make the project setup as simple as possible. Just clone the sources and start a script and you're done ;)
32
30
 
33
- Why in hell not just a `Makefile`? Because it doesn't out-of-the-box under Windows and MacOS, the dev-shell does ;)
31
+ Why in hell not just a `Makefile`? Because it doesn't out-of-the-box under Windows and MacOS, the dev-shell does ;)
34
32
 
35
33
  Run Tests? Just start the script and call the "run test command".
36
34
 
@@ -115,6 +113,7 @@ You can also just delete `/.venv/` and start `devshell.py` again ;)
115
113
 
116
114
  | dev-shell version | OS | Python version |
117
115
  |-------------------|-------------------------|---------------------|
116
+ | >=v0.7.0 | Linux + MacOS + Windows | 3.11, 3.10, 3.9 |
118
117
  | >=v0.5.0 | Linux + MacOS + Windows | 3.10, 3.9, 3.8, 3.7 |
119
118
  | >=v0.0.1 | Linux + MacOS + Windows | 3.9, 3.8, 3.7 |
120
119
 
@@ -122,8 +121,15 @@ See also github test configuration: [.github/workflows/test.yml](https://github.
122
121
 
123
122
  ## History
124
123
 
125
- * [*dev*](https://github.com/jedie/dev-shell/compare/v.6.1...main)
124
+ * [*dev*](https://github.com/jedie/dev-shell/compare/v0.8.0...main)
126
125
  * TBC
126
+ * [0.8.0 - 2024-04-09](https://github.com/jedie/dev-shell/compare/v0.7.0...v0.8.0)
127
+ * Remove "gnureadline" as dependency
128
+ * update boot script
129
+ * update requirements
130
+ * [0.7.0 - 2023-04-25](https://github.com/jedie/dev-shell/compare/v0.6.1...v0.7.0)
131
+ * Update test matrix
132
+ * update requirements
127
133
  * [0.6.1 - 2022-09-02](https://github.com/jedie/dev-shell/compare/v0.6.0...v0.6.1)
128
134
  * Set default subprocess timeout to 5 Min.
129
135
  * Skip buggy Poetry v1.2.0
@@ -11,7 +11,7 @@ This small project is intended to improve the start-up for collaborators.
11
11
 
12
12
  The idea is to make the project setup as simple as possible. Just clone the sources and start a script and you're done ;)
13
13
 
14
- Why in hell not just a `Makefile`? Because it doesn't out-of-the-box under Windows and MacOS, the dev-shell does ;)
14
+ Why in hell not just a `Makefile`? Because it doesn't out-of-the-box under Windows and MacOS, the dev-shell does ;)
15
15
 
16
16
  Run Tests? Just start the script and call the "run test command".
17
17
 
@@ -96,6 +96,7 @@ You can also just delete `/.venv/` and start `devshell.py` again ;)
96
96
 
97
97
  | dev-shell version | OS | Python version |
98
98
  |-------------------|-------------------------|---------------------|
99
+ | >=v0.7.0 | Linux + MacOS + Windows | 3.11, 3.10, 3.9 |
99
100
  | >=v0.5.0 | Linux + MacOS + Windows | 3.10, 3.9, 3.8, 3.7 |
100
101
  | >=v0.0.1 | Linux + MacOS + Windows | 3.9, 3.8, 3.7 |
101
102
 
@@ -103,8 +104,15 @@ See also github test configuration: [.github/workflows/test.yml](https://github.
103
104
 
104
105
  ## History
105
106
 
106
- * [*dev*](https://github.com/jedie/dev-shell/compare/v.6.1...main)
107
+ * [*dev*](https://github.com/jedie/dev-shell/compare/v0.8.0...main)
107
108
  * TBC
109
+ * [0.8.0 - 2024-04-09](https://github.com/jedie/dev-shell/compare/v0.7.0...v0.8.0)
110
+ * Remove "gnureadline" as dependency
111
+ * update boot script
112
+ * update requirements
113
+ * [0.7.0 - 2023-04-25](https://github.com/jedie/dev-shell/compare/v0.6.1...v0.7.0)
114
+ * Update test matrix
115
+ * update requirements
108
116
  * [0.6.1 - 2022-09-02](https://github.com/jedie/dev-shell/compare/v0.6.0...v0.6.1)
109
117
  * Set default subprocess timeout to 5 Min.
110
118
  * Skip buggy Poetry v1.2.0
@@ -0,0 +1 @@
1
+ __version__ = '0.8.0'
@@ -9,12 +9,12 @@
9
9
  This file is from: https://pypi.org/project/dev-shell/
10
10
  Source: https://github.com/jedie/dev-shell/blob/main/devshell.py
11
11
 
12
- :copyleft: 2021-2022 by Jens Diemer
12
+ :copyleft: 2021-2024 by Jens Diemer
13
13
  :license: GNU GPL v3 or above
14
14
  """
15
-
16
15
  import argparse
17
16
  import hashlib
17
+ import shlex
18
18
  import signal
19
19
  import subprocess
20
20
  import sys
@@ -22,17 +22,25 @@ import venv
22
22
  from pathlib import Path
23
23
 
24
24
 
25
+ def print_no_pip_error():
26
+ print('Error: Pip not available!')
27
+ print('Hint: "apt-get install python3-venv"\n')
28
+
29
+
25
30
  try:
26
- import ensurepip # noqa
31
+ from ensurepip import version
27
32
  except ModuleNotFoundError as err:
28
33
  print(err)
29
34
  print('-' * 100)
30
- print('Error: Pip not available!')
31
- print('Hint: "apt-get install python3-venv"\n')
35
+ print_no_pip_error()
32
36
  raise
37
+ else:
38
+ if not version():
39
+ print_no_pip_error()
40
+ sys.exit(-1)
33
41
 
34
42
 
35
- assert sys.version_info >= (3, 7), 'Python version is too old!'
43
+ assert sys.version_info >= (3, 9), f'Python version {sys.version_info} is too old!'
36
44
 
37
45
 
38
46
  if sys.platform == 'win32': # wtf
@@ -60,25 +68,24 @@ PROJECT_SHELL_SCRIPT = BIN_PATH / 'devshell'
60
68
 
61
69
 
62
70
  def get_dep_hash():
63
- """ Get SHA512 hash from poetry.lock content. """
71
+ """Get SHA512 hash from lock file content."""
64
72
  return hashlib.sha512(DEP_LOCK_PATH.read_bytes()).hexdigest()
65
73
 
66
74
 
67
75
  def store_dep_hash():
68
- """ Generate /.venv/.dep_hash """
76
+ """Generate .venv/.dep_hash"""
69
77
  DEP_HASH_PATH.write_text(get_dep_hash())
70
78
 
71
79
 
72
80
  def venv_up2date():
73
- """ Is existing .venv is up-to-date? """
81
+ """Is existing .venv is up-to-date?"""
74
82
  if DEP_HASH_PATH.is_file():
75
83
  return DEP_HASH_PATH.read_text() == get_dep_hash()
76
84
  return False
77
85
 
78
86
 
79
87
  def verbose_check_call(*popen_args):
80
- popen_args = [str(arg) for arg in popen_args] # e.g.: Path() -> str for python 3.7
81
- print(f'\n+ {" ".join(popen_args)}\n')
88
+ print(f'\n+ {shlex.join(str(arg) for arg in popen_args)}\n')
82
89
  return subprocess.check_call(popen_args)
83
90
 
84
91
 
@@ -86,7 +93,6 @@ def noop_signal_handler(signal_num, frame):
86
93
  """
87
94
  Signal handler that does nothing: Used to ignore "Ctrl-C" signals
88
95
  """
89
- pass
90
96
 
91
97
 
92
98
  def main(argv):
@@ -119,12 +125,14 @@ def main(argv):
119
125
  print('Create virtual env here:', VENV_PATH.absolute())
120
126
  builder = venv.EnvBuilder(symlinks=True, upgrade=True, with_pip=True)
121
127
  builder.create(env_dir=VENV_PATH)
128
+ # Update pip
129
+ verbose_check_call(PYTHON_PATH, '-m', 'pip', 'install', '-U', 'pip')
122
130
 
123
131
  # install/update "pip" and "poetry":
124
132
  if not POETRY_PATH.is_file() or force_update:
125
133
  # Note: Under Windows pip.exe can't replace this own .exe file, so use the module way:
126
134
  verbose_check_call(PYTHON_PATH, '-m', 'pip', 'install', '-U', 'pip', 'setuptools')
127
- verbose_check_call(PIP_PATH, 'install', 'poetry!=1.2.0')
135
+ verbose_check_call(PIP_PATH, 'install', 'poetry')
128
136
 
129
137
  # install via poetry, if:
130
138
  # 1. .venv not exists
@@ -88,12 +88,16 @@ class BootstrapTestCase(TestCase):
88
88
  assert stderr == ''
89
89
  assert f'{VENV_POETRY} install' in stdout
90
90
  assert f'{DEVSHELL_CALL}\n' in stdout
91
- assert check_calls == [
92
- f'{VENV_PYTHON} -m pip install -U pip setuptools',
93
- f'{VENV_PIP} install poetry!=1.2.0',
94
- f'{VENV_POETRY} install',
95
- DEVSHELL_CALL
96
- ]
91
+ self.assertEqual(
92
+ check_calls,
93
+ [
94
+ f'{VENV_PYTHON} -m pip install -U pip',
95
+ f'{VENV_PYTHON} -m pip install -U pip setuptools',
96
+ f'{VENV_PIP} install poetry',
97
+ f'{VENV_POETRY} install',
98
+ DEVSHELL_CALL,
99
+ ],
100
+ )
97
101
  create_mock.assert_called_once_with(env_dir=VENV_PATH)
98
102
 
99
103
  def test_help(self):
@@ -23,7 +23,7 @@ def call_mocked_subprocess(func_name, func, *args, catch_sys_exit=False, **kwarg
23
23
  if isinstance(popenargs, str):
24
24
  command_str = popenargs
25
25
  else:
26
- command_str = ' '.join(popenargs)
26
+ command_str = ' '.join([str(arg) for arg in popenargs])
27
27
 
28
28
  cwd = kwargs.get('cwd')
29
29
  if cwd:
@@ -44,8 +44,10 @@ class RedirectStdOutErr:
44
44
  self._output = None
45
45
 
46
46
  def __enter__(self):
47
- self._stdout_redirect = redirect_stdout(self._buffer).__enter__()
48
- self._stderr_redirect = redirect_stderr(self._buffer).__enter__()
47
+ self._stdout_redirect = redirect_stdout(self._buffer)
48
+ self._stdout_redirect.__enter__()
49
+ self._stderr_redirect = redirect_stderr(self._buffer)
50
+ self._stderr_redirect.__enter__()
49
51
  return self
50
52
 
51
53
  def __exit__(self, exc_type, exc_val, exc_tb):
@@ -1,7 +1,7 @@
1
1
  [tool.poetry]
2
2
  name = "dev-shell"
3
- version = "0.6.1"
4
- description = "Devloper shell for easy startup..."
3
+ version = "0.8.0"
4
+ description = "Developer shell for easy startup..."
5
5
  readme = "README.md"
6
6
  authors = ["Jens Diemer <python@jensdiemer.de>"]
7
7
  homepage = "https://github.com/jedie/dev-shell"
@@ -14,20 +14,16 @@ packages = [
14
14
  devshell = 'dev_shell.dev_shell_app:devshell_cmdloop'
15
15
 
16
16
  [tool.poetry.dependencies]
17
- python = ">=3.7,<4.0.0"
17
+ python = ">=3.9,<4.0"
18
18
  cmd2 = "*" # https://github.com/python-cmd2/cmd2
19
19
 
20
- # fix completion for Mac OS:
21
- gnureadline = { version = "*", markers = "sys_platform == 'darwin'" }
22
-
23
-
24
20
  [tool.poetry.dev-dependencies]
25
21
  cmd2_ext_test = "*"
26
22
  poetry-publish = "*" # https://github.com/jedie/poetry-publish
27
23
  pytest = "*"
28
24
  pytest-randomly = "*"
29
25
  pytest-cov = "*"
30
- pytest-darker = "*" # https://github.com/akaihola/pytest-darker
26
+ darker = "*" # https://github.com/akaihola/darker
31
27
  # TODO: pytest-mypy = "*"
32
28
  tox = "*"
33
29
  pyupgrade = "*" # https://github.com/asottile/pyupgrade
@@ -42,7 +38,6 @@ build-backend = "poetry.core.masonry.api"
42
38
  src = ['.',]
43
39
  revision = "origin/main..."
44
40
  line_length = 100
45
- verbose = true
46
41
  skip_string_normalization = true
47
42
  diff = false
48
43
  check = false
@@ -86,7 +81,6 @@ addopts = """
86
81
  --cov-report xml
87
82
  --no-cov-on-fail
88
83
  --showlocals
89
- --darker
90
84
  --doctest-modules
91
85
  --failed-first
92
86
  --last-failed-no-failures all
@@ -100,7 +94,7 @@ addopts = """
100
94
  legacy_tox_ini = """
101
95
  [tox]
102
96
  isolated_build = True
103
- envlist = py{37,38,39,310}
97
+ envlist = py{39,310,311}
104
98
  skip_missing_interpreters = True
105
99
 
106
100
  [testenv]
@@ -1 +0,0 @@
1
- __version__ = '0.6.1'
dev-shell-0.6.1/setup.py DELETED
@@ -1,38 +0,0 @@
1
- # -*- coding: utf-8 -*-
2
- from setuptools import setup
3
-
4
- packages = \
5
- ['dev_shell', 'dev_shell.command_sets', 'dev_shell.tests', 'dev_shell.utils']
6
-
7
- package_data = \
8
- {'': ['*']}
9
-
10
- install_requires = \
11
- ['cmd2']
12
-
13
- extras_require = \
14
- {':sys_platform == "darwin"': ['gnureadline']}
15
-
16
- entry_points = \
17
- {'console_scripts': ['devshell = dev_shell.dev_shell_app:devshell_cmdloop']}
18
-
19
- setup_kwargs = {
20
- 'name': 'dev-shell',
21
- 'version': '0.6.1',
22
- 'description': 'Devloper shell for easy startup...',
23
- 'long_description': '# A "dev-shell" for Python projects ;)\n\n[![Test](https://github.com/jedie/dev-shell/actions/workflows/test.yml/badge.svg?branch=bugfix-path)](https://github.com/jedie/dev-shell/actions/workflows/test.yml)\n[![codecov](https://codecov.io/gh/jedie/dev-shell/branch/main/graph/badge.svg)](https://codecov.io/gh/jedie/dev-shell)\n\n[![ddev-shell @ PyPi](https://img.shields.io/pypi/v/dev-shell?label=dev-shell%20%40%20PyPi)\n![Python Versions](https://img.shields.io/pypi/pyversions/dev-shell)\n![License GPL V3+](https://img.shields.io/pypi/l/dev-shell)](https://pypi.org/project/dev-shell/)\n\nThis small project is intended to improve the start-up for collaborators.\n\nThe idea is to make the project setup as simple as possible. Just clone the sources and start a script and you\'re done ;)\n\nWhy in hell not just a `Makefile`? Because it doesn\'t out-of-the-box under Windows and MacOS, the dev-shell does ;) \n\nRun Tests? Just start the script and call the "run test command".\n\nThe "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.:\n\n```bash\n~$ git clone https://github.com/jedie/dev-shell.git\n~$ cd dev-shell\n~/dev-shell$ ./devshell.py pytest\n```\n\n\n## How it works\n\nFirst start of the Python script [./devshell.py](https://github.com/jedie/dev-shell/blob/main/devshell.py) will bootstrap:\n\n* Generate a Python virtual environment (in short: `venv`)\n* Install poetry\n* Install project dependencies and the project himself\n\nThe output on first bootstrap start looks like:\n\n```bash\n~/dev-shell$ ./devshell.py\nCreate venv here: ~/dev-shell/.venv\nCollecting pip\n...\nSuccessfully installed pip-21.0.1\nCollecting poetry\n...\nInstalling dependencies from lock file\n\nPackage operations: 31 installs, 1 update, 0 removals\n\n...\n\nInstalling the current project: dev-shell (0.0.1alpha0)\n\n\n+ .venv/bin/python .venv/bin/devshell\n\n\nDeveloper shell - dev_shell - v0.2.0\n\n\nDocumented commands (use \'help -v\' for verbose/\'help <topic>\' for details):\n\ndev-shell commands\n==================\nfix_code_style linting list_venv_packages publish pytest update\n\n...\n\n(dev_shell) quit\n~/dev-shell$\n```\n\nThe first bootstrap start takes a few seconds. Each later startup detects the existing virtualenv and is very fast:\n\n```bash\n~/dev-shell$ ./devshell.py\n\nDeveloper shell - dev_shell - v0.2.0\n\n(dev_shell) help\n```\n\nInfo: The `.venv` will be automatically updated via `poetry install` call if the `poetry.lock` file has been changed.\n\nA call with `--update` will force to call some create/update steps, e.g.:\n\n```bash\n~/dev-shell$ ./devshell.py --update\n```\n\nYou can also just delete `/.venv/` and start `devshell.py` again ;)\n\n(Using `--update` is not to be confused with the call of "update" command.)\n\n\n## compatibility\n\n| dev-shell version | OS | Python version |\n|-------------------|-------------------------|---------------------|\n| >=v0.5.0 | Linux + MacOS + Windows | 3.10, 3.9, 3.8, 3.7 |\n| >=v0.0.1 | Linux + MacOS + Windows | 3.9, 3.8, 3.7 |\n\nSee also github test configuration: [.github/workflows/test.yml](https://github.com/jedie/dev-shell/blob/main/.github/workflows/test.yml)\n\n## History\n\n* [*dev*](https://github.com/jedie/dev-shell/compare/v.6.1...main)\n * TBC\n* [0.6.1 - 2022-09-02](https://github.com/jedie/dev-shell/compare/v0.6.0...v0.6.1)\n * Set default subprocess timeout to 5 Min.\n * Skip buggy Poetry v1.2.0\n * Update requirements\n* [0.6.0 - 2022-07-19](https://github.com/jedie/dev-shell/compare/v0.5.0...v0.6.0)\n * Add "pyupgrade" as shell command\n* [0.5.0 - 2022-05-29](https://github.com/jedie/dev-shell/compare/v0.4.0...v0.5.0)\n * Add "tox" and "poetry" commands to call them installed in created ```.venv```\n * Update requirements\n* [v0.4.0 - 2022-02-28](https://github.com/jedie/dev-shell/compare/v0.3.0...v0.4.0)\n * Update to new cmd2, colorama and pytest versions\n* [v0.3.0 - 2022-01-30](https://github.com/jedie/dev-shell/compare/v0.2.4...v0.3.0)\n * Remove "flynt" form linting/fix code style\n* [v0.2.4 - 2022-01-30](https://github.com/jedie/dev-shell/compare/v0.2.3...v0.2.4)\n * Update requirements\n * Use darker as code formatter and pytest-darker for linting\n* [v0.2.3 - 2021-11-15](https://github.com/jedie/dev-shell/compare/v0.2.2...v0.2.3)\n * Update requirements\n * [Flynt arguments can be changes via CommandSet](https://github.com/jedie/dev-shell/issues/29)\n* [v0.2.2 - 2021-04-13](https://github.com/jedie/dev-shell/compare/v0.2.1...v0.2.2)\n * Include bootstrap file, to it\'s possible to use it in external projects, too.\n* [v0.2.1 - 2021-04-12](https://github.com/jedie/dev-shell/compare/v0.2.0...v0.2.1)\n * Handle if "poetry-publish" is not installed, so a project that used "dev-shell" must not install it.\n* [v0.2.0 - 2021-04-11](https://github.com/jedie/dev-shell/compare/v0.1.0...v0.2.0)\n * Rename: "dev-shell.py => devshell.py" because of better autocomplete\n * Add `DevShellConfig.base_path` and use it in own commands like, `pytest`, `linting` etc. (So they are usable in external project, too.)\n * recognize "--update" and "--help" arguments better in `./devshell.py` calls.\n * Update `setuptools` on `.venv` creation, too.\n * Fix Bugs/tests under Windows\n* [v0.1.0 - 2021-03-22](https://github.com/jedie/dev-shell/compare/v0.0.2...v0.1.0)\n * Fix CI usage: Exit with correct return code if tests failed\n * Better "run as CLI" implementation via new `run_cmd2_app()`\n * Bugfix errors that only occur on Windows.\n * Simplify `devshell.py` boot script and fix raise error if `ensurepip` missing\n* [v0.0.2 - 2021-03-19](https://github.com/jedie/dev-shell/compare/v0.0.1...v0.0.2)\n * refactor colorful shortcuts\n * display subprocess calls with separated colors\n* [v0.0.1 - 2021-03-19](https://github.com/jedie/dev-shell/compare/ad5dca...v0.0.1)\n * first "useable" version\n\n## Project links\n\n* Github: https://github.com/jedie/dev-shell/\n* PyPi: https://pypi.org/project/dev-shell/\n',
24
- 'author': 'Jens Diemer',
25
- 'author_email': 'python@jensdiemer.de',
26
- 'maintainer': None,
27
- 'maintainer_email': None,
28
- 'url': 'https://github.com/jedie/dev-shell',
29
- 'packages': packages,
30
- 'package_data': package_data,
31
- 'install_requires': install_requires,
32
- 'extras_require': extras_require,
33
- 'entry_points': entry_points,
34
- 'python_requires': '>=3.7,<4.0.0',
35
- }
36
-
37
-
38
- setup(**setup_kwargs)
File without changes
File without changes