ae-shell 0.3.9__tar.gz → 0.3.12__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.
@@ -1,4 +1,4 @@
1
- <!-- THIS FILE IS EXCLUSIVELY MAINTAINED by the project aedev.project_tpls v0.3.68 -->
1
+ <!-- THIS FILE IS EXCLUSIVELY MAINTAINED by the project aedev.project_tpls v0.3.72 -->
2
2
  ### GNU GENERAL PUBLIC LICENSE
3
3
 
4
4
  Version 3, 29 June 2007
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: ae_shell
3
- Version: 0.3.9
3
+ Version: 0.3.12
4
4
  Summary: ae namespace module portion shell: shell execution and environment helpers
5
5
  Home-page: https://gitlab.com/ae-group/ae_shell
6
6
  Author: AndiEcker
@@ -19,15 +19,17 @@ Classifier: Programming Language :: Python :: 3
19
19
  Classifier: Programming Language :: Python :: 3.12
20
20
  Classifier: Topic :: Software Development :: Libraries :: Python Modules
21
21
  Classifier: Typing :: Typed
22
- Requires-Python: >=3.9
22
+ Requires-Python: >=3.12
23
23
  Description-Content-Type: text/markdown
24
24
  License-File: LICENSE.md
25
+ Requires-Dist: ae_base
26
+ Requires-Dist: ae_core
27
+ Requires-Dist: ae_console
25
28
  Provides-Extra: dev
26
29
  Requires-Dist: aedev_project_tpls; extra == "dev"
27
30
  Requires-Dist: ae_ae; extra == "dev"
28
31
  Requires-Dist: anybadge; extra == "dev"
29
32
  Requires-Dist: coverage-badge; extra == "dev"
30
- Requires-Dist: aedev_project_manager; extra == "dev"
31
33
  Requires-Dist: flake8; extra == "dev"
32
34
  Requires-Dist: mypy; extra == "dev"
33
35
  Requires-Dist: pylint; extra == "dev"
@@ -40,7 +42,6 @@ Provides-Extra: docs
40
42
  Provides-Extra: tests
41
43
  Requires-Dist: anybadge; extra == "tests"
42
44
  Requires-Dist: coverage-badge; extra == "tests"
43
- Requires-Dist: aedev_project_manager; extra == "tests"
44
45
  Requires-Dist: flake8; extra == "tests"
45
46
  Requires-Dist: mypy; extra == "tests"
46
47
  Requires-Dist: pylint; extra == "tests"
@@ -60,18 +61,19 @@ Dynamic: license
60
61
  Dynamic: license-file
61
62
  Dynamic: project-url
62
63
  Dynamic: provides-extra
64
+ Dynamic: requires-dist
63
65
  Dynamic: requires-python
64
66
  Dynamic: summary
65
67
 
66
68
  <!-- THIS FILE IS EXCLUSIVELY MAINTAINED by the project ae.ae v0.3.101 -->
67
69
  <!-- THIS FILE IS EXCLUSIVELY MAINTAINED by the project aedev.namespace_root_tpls v0.3.22 -->
68
- # shell 0.3.9
70
+ # shell 0.3.12
69
71
 
70
72
  [![GitLab develop](https://img.shields.io/gitlab/pipeline/ae-group/ae_shell/develop?logo=python)](
71
73
  https://gitlab.com/ae-group/ae_shell)
72
74
  [![LatestPyPIrelease](
73
- https://img.shields.io/gitlab/pipeline/ae-group/ae_shell/release0.3.9?logo=python)](
74
- https://gitlab.com/ae-group/ae_shell/-/tree/release0.3.9)
75
+ https://img.shields.io/gitlab/pipeline/ae-group/ae_shell/release0.3.12?logo=python)](
76
+ https://gitlab.com/ae-group/ae_shell/-/tree/release0.3.12)
75
77
  [![PyPIVersions](https://img.shields.io/pypi/v/ae_shell)](
76
78
  https://pypi.org/project/ae-shell/#history)
77
79
 
@@ -1,12 +1,12 @@
1
1
  <!-- THIS FILE IS EXCLUSIVELY MAINTAINED by the project ae.ae v0.3.101 -->
2
2
  <!-- THIS FILE IS EXCLUSIVELY MAINTAINED by the project aedev.namespace_root_tpls v0.3.22 -->
3
- # shell 0.3.9
3
+ # shell 0.3.12
4
4
 
5
5
  [![GitLab develop](https://img.shields.io/gitlab/pipeline/ae-group/ae_shell/develop?logo=python)](
6
6
  https://gitlab.com/ae-group/ae_shell)
7
7
  [![LatestPyPIrelease](
8
- https://img.shields.io/gitlab/pipeline/ae-group/ae_shell/release0.3.9?logo=python)](
9
- https://gitlab.com/ae-group/ae_shell/-/tree/release0.3.9)
8
+ https://img.shields.io/gitlab/pipeline/ae-group/ae_shell/release0.3.12?logo=python)](
9
+ https://gitlab.com/ae-group/ae_shell/-/tree/release0.3.12)
10
10
  [![PyPIVersions](https://img.shields.io/pypi/v/ae_shell)](
11
11
  https://pypi.org/project/ae-shell/#history)
12
12
 
@@ -31,7 +31,7 @@ from ae.core import main_app_instance, AppBase
31
31
  from ae.console import MAIN_SECTION_NAME, ConsoleApp # type: ignore
32
32
 
33
33
 
34
- __version__ = '0.3.9'
34
+ __version__ = '0.3.12'
35
35
 
36
36
 
37
37
  STDERR_BEG_MARKER = "vvv STDERR vvv" #: :paramref:`ae.shell.sh_exec.lines_output` begin stderr lines
@@ -123,27 +123,28 @@ def mask_token(text: list[str]) -> list[str]: ...
123
123
 
124
124
 
125
125
  def mask_token(text: Union[str, list[str]]) -> Union[str, list[str]]:
126
- """ hide most parts of any GitHub/GitHub tokens found in the specified text/-lines.
126
+ """ hide most parts of any Codeberg/GitHub/GitHub URL tokens found in the specified text/-lines.
127
127
 
128
- :param text: text block, specified either as str object or as a list of str objects (lines),
129
- to detect tokens within, to hide/mask the most part of them.
130
- :return: text block with without the complete tokens.
128
+ :param text: text, specified either as str object or as a list of str objects (lines),
129
+ each str/line get searched for URL tokens, to hide/mask the most part of them.
130
+ :return: text with masked URL tokens (only leaving the first/last 3 token characters unmasked).
131
131
 
132
- .. note:: see also :func:`ae.base.mask_url` to hide passwords and tokens in URLs.
132
+ .. note:: see also :func:`ae.base.mask_url` of a more generic way to hide passwords and tokens in URLs.
133
133
  """
134
134
  if is_str_arg := isinstance(text, str):
135
135
  lines = [text]
136
136
  else:
137
137
  lines = list(text) # copy to not change text list content
138
138
 
139
- for tok_beg, tok_end in (('glpat-', '@gitlab.com'), ('ghp_', '@github.com')):
139
+ url_beg = 'https://' # PDV_REPO_HOST_PROTOCOL
140
+ url_beg_len = len(url_beg)
141
+ for tok_beg, tok_end in ((':', '@codeberg.org'), ('glpat-', '@gitlab.com'), ('ghp_', '@github.com')):
140
142
  for idx, line in enumerate(lines):
141
- while tok_beg in line: # hide the GitLab/GitHub private token, e.g. from git-push-urls with authentication
142
- start = line.index(tok_beg)
143
- end = line.find(tok_end, start)
144
- if end == -1:
145
- break
146
- line = line[:start + 3] + "***-masked-token-***" + line[end - 3:]
143
+ beg = -1
144
+ while ((beg := line.find(url_beg, beg + 1)) != -1 and
145
+ (beg := line.find(tok_beg, beg + url_beg_len)) != -1 and
146
+ (end := line.find(tok_end, beg)) != -1):
147
+ line = line[:beg + 3] + "***-masked-token-***" + line[end - 3:]
147
148
  lines[idx] = line
148
149
 
149
150
  return lines[0] if is_str_arg else lines
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: ae_shell
3
- Version: 0.3.9
3
+ Version: 0.3.12
4
4
  Summary: ae namespace module portion shell: shell execution and environment helpers
5
5
  Home-page: https://gitlab.com/ae-group/ae_shell
6
6
  Author: AndiEcker
@@ -19,15 +19,17 @@ Classifier: Programming Language :: Python :: 3
19
19
  Classifier: Programming Language :: Python :: 3.12
20
20
  Classifier: Topic :: Software Development :: Libraries :: Python Modules
21
21
  Classifier: Typing :: Typed
22
- Requires-Python: >=3.9
22
+ Requires-Python: >=3.12
23
23
  Description-Content-Type: text/markdown
24
24
  License-File: LICENSE.md
25
+ Requires-Dist: ae_base
26
+ Requires-Dist: ae_core
27
+ Requires-Dist: ae_console
25
28
  Provides-Extra: dev
26
29
  Requires-Dist: aedev_project_tpls; extra == "dev"
27
30
  Requires-Dist: ae_ae; extra == "dev"
28
31
  Requires-Dist: anybadge; extra == "dev"
29
32
  Requires-Dist: coverage-badge; extra == "dev"
30
- Requires-Dist: aedev_project_manager; extra == "dev"
31
33
  Requires-Dist: flake8; extra == "dev"
32
34
  Requires-Dist: mypy; extra == "dev"
33
35
  Requires-Dist: pylint; extra == "dev"
@@ -40,7 +42,6 @@ Provides-Extra: docs
40
42
  Provides-Extra: tests
41
43
  Requires-Dist: anybadge; extra == "tests"
42
44
  Requires-Dist: coverage-badge; extra == "tests"
43
- Requires-Dist: aedev_project_manager; extra == "tests"
44
45
  Requires-Dist: flake8; extra == "tests"
45
46
  Requires-Dist: mypy; extra == "tests"
46
47
  Requires-Dist: pylint; extra == "tests"
@@ -60,18 +61,19 @@ Dynamic: license
60
61
  Dynamic: license-file
61
62
  Dynamic: project-url
62
63
  Dynamic: provides-extra
64
+ Dynamic: requires-dist
63
65
  Dynamic: requires-python
64
66
  Dynamic: summary
65
67
 
66
68
  <!-- THIS FILE IS EXCLUSIVELY MAINTAINED by the project ae.ae v0.3.101 -->
67
69
  <!-- THIS FILE IS EXCLUSIVELY MAINTAINED by the project aedev.namespace_root_tpls v0.3.22 -->
68
- # shell 0.3.9
70
+ # shell 0.3.12
69
71
 
70
72
  [![GitLab develop](https://img.shields.io/gitlab/pipeline/ae-group/ae_shell/develop?logo=python)](
71
73
  https://gitlab.com/ae-group/ae_shell)
72
74
  [![LatestPyPIrelease](
73
- https://img.shields.io/gitlab/pipeline/ae-group/ae_shell/release0.3.9?logo=python)](
74
- https://gitlab.com/ae-group/ae_shell/-/tree/release0.3.9)
75
+ https://img.shields.io/gitlab/pipeline/ae-group/ae_shell/release0.3.12?logo=python)](
76
+ https://gitlab.com/ae-group/ae_shell/-/tree/release0.3.12)
75
77
  [![PyPIVersions](https://img.shields.io/pypi/v/ae_shell)](
76
78
  https://pypi.org/project/ae-shell/#history)
77
79
 
@@ -1,10 +1,12 @@
1
+ ae_base
2
+ ae_core
3
+ ae_console
1
4
 
2
5
  [dev]
3
6
  aedev_project_tpls
4
7
  ae_ae
5
8
  anybadge
6
9
  coverage-badge
7
- aedev_project_manager
8
10
  flake8
9
11
  mypy
10
12
  pylint
@@ -19,7 +21,6 @@ types-setuptools
19
21
  [tests]
20
22
  anybadge
21
23
  coverage-badge
22
- aedev_project_manager
23
24
  flake8
24
25
  mypy
25
26
  pylint
@@ -1,4 +1,4 @@
1
- # THIS FILE IS EXCLUSIVELY MAINTAINED by the project aedev.project_tpls v0.3.68
1
+ # THIS FILE IS EXCLUSIVELY MAINTAINED by the project aedev.project_tpls v0.3.72
2
2
  [build-system]
3
3
  requires = ["setuptools>=42", "wheel"]
4
4
  build-backend = "setuptools.build_meta"
@@ -0,0 +1,90 @@
1
+ # THIS FILE IS EXCLUSIVELY MAINTAINED by the project aedev.project_tpls v0.3.72
2
+ """ setup of ae namespace module portion shell: shell execution and environment helpers. """
3
+ import sys
4
+ # noinspection PyUnresolvedReferences
5
+ import pathlib
6
+ # noinspection PyUnresolvedReferences
7
+ import setuptools
8
+
9
+
10
+ print("SetUp " + __name__ + ": " + sys.executable + str(sys.argv) + f" {sys.path=}")
11
+
12
+ setup_kwargs = {
13
+ 'author': 'AndiEcker',
14
+ 'author_email': 'aecker2@gmail.com',
15
+ 'classifiers': [
16
+ 'Development Status :: 3 - Alpha',
17
+ 'Natural Language :: English',
18
+ 'Operating System :: OS Independent',
19
+ 'Programming Language :: Python',
20
+ 'Programming Language :: Python :: 3',
21
+ 'Programming Language :: Python :: 3.12',
22
+ 'Topic :: Software Development :: Libraries :: Python Modules',
23
+ 'Typing :: Typed',
24
+ ],
25
+ 'description': 'ae namespace module portion shell: shell execution and environment helpers',
26
+ 'extras_require': {
27
+ 'dev': [
28
+ 'aedev_project_tpls',
29
+ 'ae_ae',
30
+ 'anybadge',
31
+ 'coverage-badge',
32
+ 'flake8',
33
+ 'mypy',
34
+ 'pylint',
35
+ 'pytest',
36
+ 'pytest-cov',
37
+ 'pytest-django',
38
+ 'typing',
39
+ 'types-setuptools',
40
+ ],
41
+ 'docs': [],
42
+ 'tests': [
43
+ 'anybadge',
44
+ 'coverage-badge',
45
+ 'flake8',
46
+ 'mypy',
47
+ 'pylint',
48
+ 'pytest',
49
+ 'pytest-cov',
50
+ 'pytest-django',
51
+ 'typing',
52
+ 'types-setuptools',
53
+ ],
54
+ },
55
+ 'install_requires': [
56
+ 'ae_base',
57
+ 'ae_core',
58
+ 'ae_console',
59
+ ],
60
+ 'keywords': [
61
+ 'configuration',
62
+ 'development',
63
+ 'environment',
64
+ 'productivity',
65
+ ],
66
+ 'license': 'GPL-3.0-or-later',
67
+ 'long_description': (pathlib.Path(__file__).parent / 'README.md').read_text(encoding='utf-8'),
68
+ 'long_description_content_type': 'text/markdown',
69
+ 'name': 'ae_shell',
70
+ 'package_data': {
71
+ '': [],
72
+ },
73
+ 'packages': [
74
+ 'ae',
75
+ ],
76
+ 'project_urls': {
77
+ 'Bug Tracker': 'https://gitlab.com/ae-group/ae_shell/-/issues',
78
+ 'Documentation': 'https://ae.readthedocs.io/en/latest/_autosummary/ae.shell.html',
79
+ 'Repository': 'https://gitlab.com/ae-group/ae_shell',
80
+ 'Source': 'https://ae.readthedocs.io/en/latest/_modules/ae/shell.html',
81
+ },
82
+ 'python_requires': '>=3.12',
83
+ 'url': 'https://gitlab.com/ae-group/ae_shell',
84
+ 'version': '0.3.12',
85
+ 'zip_safe': True,
86
+ }
87
+
88
+ if __name__ == "__main__":
89
+ setuptools.setup(**setup_kwargs)
90
+ pass
@@ -210,19 +210,33 @@ class TestHelpers:
210
210
  assert os.environ == os_env
211
211
 
212
212
  def test_mask_token(self):
213
+ url_prefix_str = "https://" # PDV_REPO_HOST_PROTOCOL
214
+
215
+ token = "codeberg token does not have a prefix and only contains hex-digits followed by @ and codeberg.org"
216
+ text = f"a text block containing a codeberg URL with a token: {url_prefix_str}UsaNäm:{token}@codeberg.org"
217
+
218
+ assert token not in mask_token(text)
219
+ assert token not in mask_token([text])[0]
220
+ assert mask_token(text).count('codeberg.org') == 1
221
+ assert mask_token(text).count(':') == 3
222
+
213
223
  token = "glpat-gitlab token format ending at the @/ampersand directly followed by the gitlab.com domain"
214
- text = "a text block containing a gitlab URL with a token: https://UsaNäm:" + token + "@gitlab.com"
224
+ text = "a text block containing a gitlab URL with a glpat-token: https://UsaNäm:" + token + "@gitlab.com"
215
225
 
216
226
  assert token not in mask_token(text)
217
227
  assert token not in mask_token([text])[0]
228
+ assert mask_token(text).count('gitlab.com') == 1
229
+ assert mask_token(text).count('glpat-') == 1
218
230
 
219
231
  token = "ghp_-github token format ending at the @/ampersand directly followed by the github.com domain"
220
- text = "a text block containing a github URL with a token: https://YouSaNem:" + token + "@github.com"
232
+ text = "a text block containing a github URL with a ghp_-token: https://YouSaNem:" + token + "@github.com"
221
233
 
222
234
  assert token not in mask_token(text)
223
235
  assert token not in mask_token([text])[0]
236
+ assert mask_token(text).count('github.com') == 1
237
+ assert mask_token(text).count('ghp_') == 1
224
238
 
225
- text = "skip masking of text blocks with a start token like ghp_ or glpat- but missing end token"
239
+ text = "NO masking if @codeberg.org/@github.com/@gitlab.com domains before token start str ':', ghp_ or glpat-:"
226
240
 
227
241
  assert mask_token(text) == text # neither throws str.index()-ValueError nor stuck in endless-loop
228
242
 
ae_shell-0.3.9/setup.py DELETED
@@ -1,117 +0,0 @@
1
- # THIS FILE IS EXCLUSIVELY MAINTAINED by the project aedev.project_tpls v0.3.68
2
- """ setup of ae namespace module portion shell: shell execution and environment helpers. """
3
- # noinspection PyUnresolvedReferences
4
- import sys
5
- print(f"SetUp {__name__=} {sys.executable=} {sys.argv=} {sys.path=}")
6
-
7
- # noinspection PyUnresolvedReferences
8
- import setuptools
9
-
10
- setup_kwargs = {
11
- 'author': 'AndiEcker',
12
- 'author_email': 'aecker2@gmail.com',
13
- 'classifiers': [ 'Development Status :: 3 - Alpha', 'Natural Language :: English', 'Operating System :: OS Independent',
14
- 'Programming Language :: Python', 'Programming Language :: Python :: 3',
15
- 'Programming Language :: Python :: 3.12', 'Topic :: Software Development :: Libraries :: Python Modules',
16
- 'Typing :: Typed'],
17
- 'description': 'ae namespace module portion shell: shell execution and environment helpers',
18
- 'extras_require': { 'dev': [ 'aedev_project_tpls', 'ae_ae', 'anybadge', 'coverage-badge', 'aedev_project_manager', 'flake8',
19
- 'mypy', 'pylint', 'pytest', 'pytest-cov', 'pytest-django', 'typing', 'types-setuptools'],
20
- 'docs': [],
21
- 'tests': [ 'anybadge', 'coverage-badge', 'aedev_project_manager', 'flake8', 'mypy', 'pylint', 'pytest',
22
- 'pytest-cov', 'pytest-django', 'typing', 'types-setuptools']},
23
- 'install_requires': [],
24
- 'keywords': ['configuration', 'development', 'environment', 'productivity'],
25
- 'license': 'GPL-3.0-or-later',
26
- 'long_description': ('<!-- THIS FILE IS EXCLUSIVELY MAINTAINED by the project ae.ae v0.3.101 -->\n'
27
- '<!-- THIS FILE IS EXCLUSIVELY MAINTAINED by the project aedev.namespace_root_tpls v0.3.22 -->\n'
28
- '# shell 0.3.9\n'
29
- '\n'
30
- '[![GitLab develop](https://img.shields.io/gitlab/pipeline/ae-group/ae_shell/develop?logo=python)](\n'
31
- ' https://gitlab.com/ae-group/ae_shell)\n'
32
- '[![LatestPyPIrelease](\n'
33
- ' https://img.shields.io/gitlab/pipeline/ae-group/ae_shell/release0.3.9?logo=python)](\n'
34
- ' https://gitlab.com/ae-group/ae_shell/-/tree/release0.3.9)\n'
35
- '[![PyPIVersions](https://img.shields.io/pypi/v/ae_shell)](\n'
36
- ' https://pypi.org/project/ae-shell/#history)\n'
37
- '\n'
38
- '>ae namespace module portion shell: shell execution and environment helpers.\n'
39
- '\n'
40
- '[![Coverage](https://ae-group.gitlab.io/ae_shell/coverage.svg)](\n'
41
- ' https://ae-group.gitlab.io/ae_shell/coverage/index.html)\n'
42
- '[![MyPyPrecision](https://ae-group.gitlab.io/ae_shell/mypy.svg)](\n'
43
- ' https://ae-group.gitlab.io/ae_shell/lineprecision.txt)\n'
44
- '[![PyLintScore](https://ae-group.gitlab.io/ae_shell/pylint.svg)](\n'
45
- ' https://ae-group.gitlab.io/ae_shell/pylint.log)\n'
46
- '\n'
47
- '[![PyPIImplementation](https://img.shields.io/pypi/implementation/ae_shell)](\n'
48
- ' https://gitlab.com/ae-group/ae_shell/)\n'
49
- '[![PyPIPyVersions](https://img.shields.io/pypi/pyversions/ae_shell)](\n'
50
- ' https://gitlab.com/ae-group/ae_shell/)\n'
51
- '[![PyPIWheel](https://img.shields.io/pypi/wheel/ae_shell)](\n'
52
- ' https://gitlab.com/ae-group/ae_shell/)\n'
53
- '[![PyPIFormat](https://img.shields.io/pypi/format/ae_shell)](\n'
54
- ' https://pypi.org/project/ae-shell/)\n'
55
- '[![PyPILicense](https://img.shields.io/pypi/l/ae_shell)](\n'
56
- ' https://gitlab.com/ae-group/ae_shell/-/blob/develop/LICENSE.md)\n'
57
- '[![PyPIStatus](https://img.shields.io/pypi/status/ae_shell)](\n'
58
- ' https://libraries.io/pypi/ae-shell)\n'
59
- '[![PyPIDownloads](https://img.shields.io/pypi/dm/ae_shell)](\n'
60
- ' https://pypi.org/project/ae-shell/#files)\n'
61
- '\n'
62
- '\n'
63
- '## installation\n'
64
- '\n'
65
- '\n'
66
- 'execute the following command to install the\n'
67
- 'ae.shell module\n'
68
- 'in the currently active virtual environment:\n'
69
- ' \n'
70
- '```shell script\n'
71
- 'pip install ae-shell\n'
72
- '```\n'
73
- '\n'
74
- 'if you want to contribute to this portion then first fork\n'
75
- '[the ae_shell repository at GitLab](\n'
76
- 'https://gitlab.com/ae-group/ae_shell "ae.shell code repository").\n'
77
- 'after that pull it to your machine and finally execute the\n'
78
- 'following command in the root folder of this repository\n'
79
- '(ae_shell):\n'
80
- '\n'
81
- '```shell script\n'
82
- 'pip install -e .[dev]\n'
83
- '```\n'
84
- '\n'
85
- 'the last command will install this module portion, along with the tools you need\n'
86
- 'to develop and run tests or to extend the portion documentation. to contribute only to the unit tests or to the\n'
87
- 'documentation of this portion, replace the setup extras key `dev` in the above command with `tests` or `docs`\n'
88
- 'respectively.\n'
89
- '\n'
90
- 'more detailed explanations on how to contribute to this project\n'
91
- '[are available here](\n'
92
- 'https://gitlab.com/ae-group/ae_shell/-/blob/develop/CONTRIBUTING.rst)\n'
93
- '\n'
94
- '\n'
95
- '## namespace portion documentation\n'
96
- '\n'
97
- 'information on the features and usage of this portion are available at\n'
98
- '[ReadTheDocs](\n'
99
- 'https://ae.readthedocs.io/en/latest/_autosummary/ae.shell.html\n'
100
- '"ae_shell documentation").\n'),
101
- 'long_description_content_type': 'text/markdown',
102
- 'name': 'ae_shell',
103
- 'package_data': {'': []},
104
- 'packages': ['ae'],
105
- 'project_urls': { 'Bug Tracker': 'https://gitlab.com/ae-group/ae_shell/-/issues',
106
- 'Documentation': 'https://ae.readthedocs.io/en/latest/_autosummary/ae.shell.html',
107
- 'Repository': 'https://gitlab.com/ae-group/ae_shell',
108
- 'Source': 'https://ae.readthedocs.io/en/latest/_modules/ae/shell.html'},
109
- 'python_requires': '>=3.9',
110
- 'url': 'https://gitlab.com/ae-group/ae_shell',
111
- 'version': '0.3.9',
112
- 'zip_safe': True,
113
- }
114
-
115
- if __name__ == "__main__":
116
- setuptools.setup(**setup_kwargs)
117
- pass
File without changes