cmem-cmemc 24.1.3rc1__tar.gz → 24.1.5__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.
- {cmem_cmemc-24.1.3rc1 → cmem_cmemc-24.1.5}/LICENSE +1 -1
- cmem_cmemc-24.1.5/PKG-INFO +85 -0
- cmem_cmemc-24.1.5/README-public.md +36 -0
- {cmem_cmemc-24.1.3rc1 → cmem_cmemc-24.1.5}/cmem_cmemc/__init__.py +3 -9
- {cmem_cmemc-24.1.3rc1 → cmem_cmemc-24.1.5}/cmem_cmemc/utils.py +40 -18
- {cmem_cmemc-24.1.3rc1 → cmem_cmemc-24.1.5}/pyproject.toml +22 -4
- cmem_cmemc-24.1.3rc1/PKG-INFO +0 -68
- cmem_cmemc-24.1.3rc1/README-public.md +0 -23
- {cmem_cmemc-24.1.3rc1 → cmem_cmemc-24.1.5}/cmem_cmemc/_cmemc.zsh +0 -0
- {cmem_cmemc-24.1.3rc1 → cmem_cmemc-24.1.5}/cmem_cmemc/commands/__init__.py +0 -0
- {cmem_cmemc-24.1.3rc1 → cmem_cmemc-24.1.5}/cmem_cmemc/commands/acl.py +0 -0
- {cmem_cmemc-24.1.3rc1 → cmem_cmemc-24.1.5}/cmem_cmemc/commands/admin.py +0 -0
- {cmem_cmemc-24.1.3rc1 → cmem_cmemc-24.1.5}/cmem_cmemc/commands/client.py +0 -0
- {cmem_cmemc-24.1.3rc1 → cmem_cmemc-24.1.5}/cmem_cmemc/commands/config.py +0 -0
- {cmem_cmemc-24.1.3rc1 → cmem_cmemc-24.1.5}/cmem_cmemc/commands/dataset.py +0 -0
- {cmem_cmemc-24.1.3rc1 → cmem_cmemc-24.1.5}/cmem_cmemc/commands/graph.py +0 -0
- {cmem_cmemc-24.1.3rc1 → cmem_cmemc-24.1.5}/cmem_cmemc/commands/metrics.py +0 -0
- {cmem_cmemc-24.1.3rc1 → cmem_cmemc-24.1.5}/cmem_cmemc/commands/project.py +0 -0
- {cmem_cmemc-24.1.3rc1 → cmem_cmemc-24.1.5}/cmem_cmemc/commands/python.py +0 -0
- {cmem_cmemc-24.1.3rc1 → cmem_cmemc-24.1.5}/cmem_cmemc/commands/query.py +0 -0
- {cmem_cmemc-24.1.3rc1 → cmem_cmemc-24.1.5}/cmem_cmemc/commands/resource.py +0 -0
- {cmem_cmemc-24.1.3rc1 → cmem_cmemc-24.1.5}/cmem_cmemc/commands/scheduler.py +0 -0
- {cmem_cmemc-24.1.3rc1 → cmem_cmemc-24.1.5}/cmem_cmemc/commands/store.py +0 -0
- {cmem_cmemc-24.1.3rc1 → cmem_cmemc-24.1.5}/cmem_cmemc/commands/user.py +0 -0
- {cmem_cmemc-24.1.3rc1 → cmem_cmemc-24.1.5}/cmem_cmemc/commands/validation.py +0 -0
- {cmem_cmemc-24.1.3rc1 → cmem_cmemc-24.1.5}/cmem_cmemc/commands/variable.py +0 -0
- {cmem_cmemc-24.1.3rc1 → cmem_cmemc-24.1.5}/cmem_cmemc/commands/vocabulary.py +0 -0
- {cmem_cmemc-24.1.3rc1 → cmem_cmemc-24.1.5}/cmem_cmemc/commands/workflow.py +0 -0
- {cmem_cmemc-24.1.3rc1 → cmem_cmemc-24.1.5}/cmem_cmemc/commands/workspace.py +0 -0
- {cmem_cmemc-24.1.3rc1 → cmem_cmemc-24.1.5}/cmem_cmemc/completion.py +0 -0
- {cmem_cmemc-24.1.3rc1 → cmem_cmemc-24.1.5}/cmem_cmemc/constants.py +0 -0
- {cmem_cmemc-24.1.3rc1 → cmem_cmemc-24.1.5}/cmem_cmemc/context.py +0 -0
- {cmem_cmemc-24.1.3rc1 → cmem_cmemc-24.1.5}/cmem_cmemc/exceptions.py +0 -0
- {cmem_cmemc-24.1.3rc1 → cmem_cmemc-24.1.5}/cmem_cmemc/manual_helper/__init__.py +0 -0
- {cmem_cmemc-24.1.3rc1 → cmem_cmemc-24.1.5}/cmem_cmemc/manual_helper/graph.py +0 -0
- {cmem_cmemc-24.1.3rc1 → cmem_cmemc-24.1.5}/cmem_cmemc/manual_helper/multi_page.py +0 -0
- {cmem_cmemc-24.1.3rc1 → cmem_cmemc-24.1.5}/cmem_cmemc/manual_helper/single_page.py +0 -0
- {cmem_cmemc-24.1.3rc1 → cmem_cmemc-24.1.5}/cmem_cmemc/object_list.py +0 -0
|
@@ -199,4 +199,4 @@
|
|
|
199
199
|
distributed under the License is distributed on an "AS IS" BASIS,
|
|
200
200
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
201
201
|
See the License for the specific language governing permissions and
|
|
202
|
-
limitations under the License.
|
|
202
|
+
limitations under the License.
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
Metadata-Version: 2.1
|
|
2
|
+
Name: cmem-cmemc
|
|
3
|
+
Version: 24.1.5
|
|
4
|
+
Summary: Command line client for eccenca Corporate Memory
|
|
5
|
+
Home-page: https://eccenca.com/go/cmemc
|
|
6
|
+
License: Apache-2.0
|
|
7
|
+
Author: eccenca
|
|
8
|
+
Author-email: cmempy-developer@eccenca.com
|
|
9
|
+
Requires-Python: >=3.10,<4.0
|
|
10
|
+
Classifier: Development Status :: 5 - Production/Stable
|
|
11
|
+
Classifier: Environment :: Console
|
|
12
|
+
Classifier: Intended Audience :: Customer Service
|
|
13
|
+
Classifier: Intended Audience :: Developers
|
|
14
|
+
Classifier: Intended Audience :: Information Technology
|
|
15
|
+
Classifier: Intended Audience :: Science/Research
|
|
16
|
+
Classifier: Intended Audience :: System Administrators
|
|
17
|
+
Classifier: License :: OSI Approved :: Apache Software License
|
|
18
|
+
Classifier: Natural Language :: English
|
|
19
|
+
Classifier: Operating System :: OS Independent
|
|
20
|
+
Classifier: Programming Language :: Python :: 3
|
|
21
|
+
Classifier: Programming Language :: Python :: 3.10
|
|
22
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
23
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
24
|
+
Classifier: Programming Language :: Python :: 3 :: Only
|
|
25
|
+
Classifier: Topic :: Database
|
|
26
|
+
Classifier: Topic :: Software Development :: Testing
|
|
27
|
+
Classifier: Topic :: Utilities
|
|
28
|
+
Requires-Dist: beautifulsoup4 (>=4.12.2,<5.0.0)
|
|
29
|
+
Requires-Dist: certifi (>=2023.5.7)
|
|
30
|
+
Requires-Dist: click (>=8.1.7,<9.0.0)
|
|
31
|
+
Requires-Dist: click-didyoumean (>=0.3.0,<0.4.0)
|
|
32
|
+
Requires-Dist: click-help-colors (>=0.9.1,<0.10.0)
|
|
33
|
+
Requires-Dist: cmem-cmempy (==24.1.1)
|
|
34
|
+
Requires-Dist: configparser (>=5.3.0,<6.0.0)
|
|
35
|
+
Requires-Dist: jinja2 (>=3.1.2,<4.0.0)
|
|
36
|
+
Requires-Dist: natsort (>=8.3.1,<9.0.0)
|
|
37
|
+
Requires-Dist: prometheus-client (>=0.16.0,<0.17.0)
|
|
38
|
+
Requires-Dist: pygments (>=2.15.1,<3.0.0)
|
|
39
|
+
Requires-Dist: pyjwt (>=2.7.0,<3.0.0)
|
|
40
|
+
Requires-Dist: python-dateutil (>=2.8.2,<3.0.0)
|
|
41
|
+
Requires-Dist: requests (>=2.31.0,<3.0.0)
|
|
42
|
+
Requires-Dist: rich (>=13.7.0,<14.0.0)
|
|
43
|
+
Requires-Dist: six (>=1.16.0,<2.0.0)
|
|
44
|
+
Requires-Dist: timeago (>=1.0.16,<2.0.0)
|
|
45
|
+
Requires-Dist: treelib (>=1.6.4,<2.0.0)
|
|
46
|
+
Requires-Dist: urllib3 (>=2,<3)
|
|
47
|
+
Description-Content-Type: text/markdown
|
|
48
|
+
|
|
49
|
+
# cmemc
|
|
50
|
+
|
|
51
|
+
cmemc is the official command line client for [eccenca Corporate Memory](https://documentation.eccenca.com/).
|
|
52
|
+
|
|
53
|
+
[![version][version-shield]][changelog] [![Python Versions][python-shield]][pypi] [![eccenca Corporate Memory][cmem-shield]][cmem]
|
|
54
|
+
|
|
55
|
+
[![teaser][teaser-image]][cmemc-docu]
|
|
56
|
+
|
|
57
|
+
## Installation
|
|
58
|
+
|
|
59
|
+
In order to install the cmemc, run:
|
|
60
|
+
|
|
61
|
+
pipx install cmem-cmemc
|
|
62
|
+
|
|
63
|
+
Of course you can install cmemc also with pip, but we recommend [pipx](https://pypa.github.io/pipx/) for normal desktop usage.
|
|
64
|
+
|
|
65
|
+
## Configuration and Usage
|
|
66
|
+
|
|
67
|
+
cmemc is intended for System Administrators and Linked Data Expert, who wants to automate and remote control activities on eccenca Corporate Memory.
|
|
68
|
+
|
|
69
|
+
The cmemc manual including basic usage pattern, configuration as well as a command reference is available at:
|
|
70
|
+
|
|
71
|
+
[https://eccenca.com/go/cmemc](https://eccenca.com/go/cmemc)
|
|
72
|
+
|
|
73
|
+
cmemc only works with Python 3 and refuses to work with Python 2.x.
|
|
74
|
+
In addition to that, cmemc will warn you in case an untested Python environment is used.
|
|
75
|
+
|
|
76
|
+
|
|
77
|
+
[version-shield]: https://badge.fury.io/py/cmem-cmemc.svg
|
|
78
|
+
[changelog]: https://pypi.org/project/cmem-cmemc/#history
|
|
79
|
+
[python-shield]: https://img.shields.io/pypi/pyversions/cmem-cmemc.svg
|
|
80
|
+
[pypi]: https://pypi.org/project/cmem-cmemc/
|
|
81
|
+
[cmem]: https://documentation.eccenca.com
|
|
82
|
+
[cmem-shield]: https://img.shields.io/badge/made%20for-eccenca%20Corporate%20Memory-blue?logo=data:image/svg%2bxml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjxzdmcKICAgaWQ9IkxheWVyXzEiCiAgIGRhdGEtbmFtZT0iTGF5ZXIgMSIKICAgdmlld0JveD0iMCAwIDgxLjI5MDAwMSA4Mi4yODk4NiIKICAgdmVyc2lvbj0iMS4xIgogICB3aWR0aD0iODEuMjkwMDAxIgogICBoZWlnaHQ9IjgyLjI4OTg2NCIKICAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogICB4bWxuczpzdmc9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICA8ZGVmcwogICAgIGlkPSJkZWZzODI2Ij4KICAgIDxzdHlsZQogICAgICAgaWQ9InN0eWxlODI0Ij4KICAgICAgLmNscy0xIHsKICAgICAgICBmaWxsOiAjZjM5MjAwOwogICAgICB9CgogICAgICAuY2xzLTIgewogICAgICAgIGZpbGw6IG5vbmU7CiAgICAgICAgc3Ryb2tlOiAjZjM5MjAwOwogICAgICAgIHN0cm9rZS13aWR0aDogMS41cHg7CiAgICAgIH0KICAgIDwvc3R5bGU+CiAgPC9kZWZzPgogIDxnCiAgICAgaWQ9Imc4NDAiCiAgICAgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTMwLjc2LC0zMS4xNDAxMzkpIj4KICAgIDxwYXRoCiAgICAgICBjbGFzcz0iY2xzLTEiCiAgICAgICBkPSJNIDU1LjksODUuMTkgQSAyMC4xNCwyMC4xNCAwIDEgMCAzNS43Niw2NS4wNSAyMC4xNCwyMC4xNCAwIDAgMCA1NS45LDg1LjE5IFoiCiAgICAgICBpZD0icGF0aDgyOCIgLz4KICAgIDxwYXRoCiAgICAgICBjbGFzcz0iY2xzLTEiCiAgICAgICBkPSJtIDk4LDU0LjE0IGEgOSw5IDAgMSAwIC04Ljk1LC05IDguOTUsOC45NSAwIDAgMCA4Ljk1LDkgeiIKICAgICAgIGlkPSJwYXRoODMwIiAvPgogICAgPHBhdGgKICAgICAgIGNsYXNzPSJjbHMtMSIKICAgICAgIGQ9Ik0gODguMzUsMTA4LjQzIEEgMTIuMzEsMTIuMzEgMCAxIDAgNzYsOTYuMTIgMTIuMzEsMTIuMzEgMCAwIDAgODguMzEsMTA4LjQzIFoiCiAgICAgICBpZD0icGF0aDgzMiIgLz4KICAgIDxsaW5lCiAgICAgICBjbGFzcz0iY2xzLTIiCiAgICAgICB4MT0iODYuOTcwMDAxIgogICAgICAgeTE9IjkyLjA1OTk5OCIKICAgICAgIHgyPSI1OC43Nzk5OTkiCiAgICAgICB5Mj0iNjcuMzYwMDAxIgogICAgICAgaWQ9ImxpbmU4MzQiIC8+CiAgICA8bGluZQogICAgICAgY2xhc3M9ImNscy0yIgogICAgICAgeDE9Ijk5LjE4IgogICAgICAgeTE9IjQ1Ljg0IgogICAgICAgeDI9IjU1LjQ4IgogICAgICAgeTI9IjY2LjEyMDAwMyIKICAgICAgIGlkPSJsaW5lODM2IiAvPgogICAgPGxpbmUKICAgICAgIGNsYXNzPSJjbHMtMiIKICAgICAgIHgxPSI5Ny45ODk5OTgiCiAgICAgICB5MT0iNDQuNjUwMDAyIgogICAgICAgeDI9Ijg4LjM0OTk5OCIKICAgICAgIHkyPSI5Mi44Mzk5OTYiCiAgICAgICBpZD0ibGluZTgzOCIgLz4KICA8L2c+Cjwvc3ZnPgo=
|
|
83
|
+
[teaser-image]: https://documentation.eccenca.com/24.1/automate/cmemc-command-line-interface/configuration/completion-setup/22.1-cmemc-create-dataset.gif
|
|
84
|
+
[cmemc-docu]: https://eccenca.com/go/cmemc
|
|
85
|
+
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
# cmemc
|
|
2
|
+
|
|
3
|
+
cmemc is the official command line client for [eccenca Corporate Memory](https://documentation.eccenca.com/).
|
|
4
|
+
|
|
5
|
+
[![version][version-shield]][changelog] [![Python Versions][python-shield]][pypi] [![eccenca Corporate Memory][cmem-shield]][cmem]
|
|
6
|
+
|
|
7
|
+
[![teaser][teaser-image]][cmemc-docu]
|
|
8
|
+
|
|
9
|
+
## Installation
|
|
10
|
+
|
|
11
|
+
In order to install the cmemc, run:
|
|
12
|
+
|
|
13
|
+
pipx install cmem-cmemc
|
|
14
|
+
|
|
15
|
+
Of course you can install cmemc also with pip, but we recommend [pipx](https://pypa.github.io/pipx/) for normal desktop usage.
|
|
16
|
+
|
|
17
|
+
## Configuration and Usage
|
|
18
|
+
|
|
19
|
+
cmemc is intended for System Administrators and Linked Data Expert, who wants to automate and remote control activities on eccenca Corporate Memory.
|
|
20
|
+
|
|
21
|
+
The cmemc manual including basic usage pattern, configuration as well as a command reference is available at:
|
|
22
|
+
|
|
23
|
+
[https://eccenca.com/go/cmemc](https://eccenca.com/go/cmemc)
|
|
24
|
+
|
|
25
|
+
cmemc only works with Python 3 and refuses to work with Python 2.x.
|
|
26
|
+
In addition to that, cmemc will warn you in case an untested Python environment is used.
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
[version-shield]: https://badge.fury.io/py/cmem-cmemc.svg
|
|
30
|
+
[changelog]: https://pypi.org/project/cmem-cmemc/#history
|
|
31
|
+
[python-shield]: https://img.shields.io/pypi/pyversions/cmem-cmemc.svg
|
|
32
|
+
[pypi]: https://pypi.org/project/cmem-cmemc/
|
|
33
|
+
[cmem]: https://documentation.eccenca.com
|
|
34
|
+
[cmem-shield]: https://img.shields.io/badge/made%20for-eccenca%20Corporate%20Memory-blue?logo=data:image/svg%2bxml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjxzdmcKICAgaWQ9IkxheWVyXzEiCiAgIGRhdGEtbmFtZT0iTGF5ZXIgMSIKICAgdmlld0JveD0iMCAwIDgxLjI5MDAwMSA4Mi4yODk4NiIKICAgdmVyc2lvbj0iMS4xIgogICB3aWR0aD0iODEuMjkwMDAxIgogICBoZWlnaHQ9IjgyLjI4OTg2NCIKICAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogICB4bWxuczpzdmc9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICA8ZGVmcwogICAgIGlkPSJkZWZzODI2Ij4KICAgIDxzdHlsZQogICAgICAgaWQ9InN0eWxlODI0Ij4KICAgICAgLmNscy0xIHsKICAgICAgICBmaWxsOiAjZjM5MjAwOwogICAgICB9CgogICAgICAuY2xzLTIgewogICAgICAgIGZpbGw6IG5vbmU7CiAgICAgICAgc3Ryb2tlOiAjZjM5MjAwOwogICAgICAgIHN0cm9rZS13aWR0aDogMS41cHg7CiAgICAgIH0KICAgIDwvc3R5bGU+CiAgPC9kZWZzPgogIDxnCiAgICAgaWQ9Imc4NDAiCiAgICAgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTMwLjc2LC0zMS4xNDAxMzkpIj4KICAgIDxwYXRoCiAgICAgICBjbGFzcz0iY2xzLTEiCiAgICAgICBkPSJNIDU1LjksODUuMTkgQSAyMC4xNCwyMC4xNCAwIDEgMCAzNS43Niw2NS4wNSAyMC4xNCwyMC4xNCAwIDAgMCA1NS45LDg1LjE5IFoiCiAgICAgICBpZD0icGF0aDgyOCIgLz4KICAgIDxwYXRoCiAgICAgICBjbGFzcz0iY2xzLTEiCiAgICAgICBkPSJtIDk4LDU0LjE0IGEgOSw5IDAgMSAwIC04Ljk1LC05IDguOTUsOC45NSAwIDAgMCA4Ljk1LDkgeiIKICAgICAgIGlkPSJwYXRoODMwIiAvPgogICAgPHBhdGgKICAgICAgIGNsYXNzPSJjbHMtMSIKICAgICAgIGQ9Ik0gODguMzUsMTA4LjQzIEEgMTIuMzEsMTIuMzEgMCAxIDAgNzYsOTYuMTIgMTIuMzEsMTIuMzEgMCAwIDAgODguMzEsMTA4LjQzIFoiCiAgICAgICBpZD0icGF0aDgzMiIgLz4KICAgIDxsaW5lCiAgICAgICBjbGFzcz0iY2xzLTIiCiAgICAgICB4MT0iODYuOTcwMDAxIgogICAgICAgeTE9IjkyLjA1OTk5OCIKICAgICAgIHgyPSI1OC43Nzk5OTkiCiAgICAgICB5Mj0iNjcuMzYwMDAxIgogICAgICAgaWQ9ImxpbmU4MzQiIC8+CiAgICA8bGluZQogICAgICAgY2xhc3M9ImNscy0yIgogICAgICAgeDE9Ijk5LjE4IgogICAgICAgeTE9IjQ1Ljg0IgogICAgICAgeDI9IjU1LjQ4IgogICAgICAgeTI9IjY2LjEyMDAwMyIKICAgICAgIGlkPSJsaW5lODM2IiAvPgogICAgPGxpbmUKICAgICAgIGNsYXNzPSJjbHMtMiIKICAgICAgIHgxPSI5Ny45ODk5OTgiCiAgICAgICB5MT0iNDQuNjUwMDAyIgogICAgICAgeDI9Ijg4LjM0OTk5OCIKICAgICAgIHkyPSI5Mi44Mzk5OTYiCiAgICAgICBpZD0ibGluZTgzOCIgLz4KICA8L2c+Cjwvc3ZnPgo=
|
|
35
|
+
[teaser-image]: https://documentation.eccenca.com/24.1/automate/cmemc-command-line-interface/configuration/completion-setup/22.1-cmemc-create-dataset.gif
|
|
36
|
+
[cmemc-docu]: https://eccenca.com/go/cmemc
|
|
@@ -27,7 +27,7 @@ from cmem_cmemc.exceptions import InvalidConfigurationError
|
|
|
27
27
|
from cmem_cmemc.manual_helper.graph import print_manual_graph
|
|
28
28
|
from cmem_cmemc.manual_helper.multi_page import create_multi_page_documentation
|
|
29
29
|
from cmem_cmemc.manual_helper.single_page import print_manual
|
|
30
|
-
from cmem_cmemc.utils import extract_error_message, get_version
|
|
30
|
+
from cmem_cmemc.utils import check_python_version, extract_error_message, get_version
|
|
31
31
|
|
|
32
32
|
CMEMC_VERSION = get_version()
|
|
33
33
|
|
|
@@ -39,16 +39,10 @@ if os.environ.get("_CMEMC_COMPLETE", "") == "zsh_source":
|
|
|
39
39
|
|
|
40
40
|
version = sys.version_info
|
|
41
41
|
PYTHON_VERSION = f"{version.major}.{version.minor}.{version.micro}"
|
|
42
|
-
|
|
43
|
-
PYTHON_GOT = f"{version.major}.{version.minor}"
|
|
44
|
-
if PYTHON_EXPECTED != PYTHON_GOT and not CONTEXT.is_completing():
|
|
45
|
-
CONTEXT.echo_warning(
|
|
46
|
-
"Warning: You are running cmemc under a non-tested python "
|
|
47
|
-
f"environment (expected {PYTHON_EXPECTED}, got {PYTHON_GOT})"
|
|
48
|
-
)
|
|
42
|
+
check_python_version(ctx=CONTEXT)
|
|
49
43
|
|
|
50
44
|
# set the user-agent environment for the http request headers
|
|
51
|
-
os.environ["CMEM_USER_AGENT"] = f"cmemc/{CMEMC_VERSION}
|
|
45
|
+
os.environ["CMEM_USER_AGENT"] = f"cmemc/{CMEMC_VERSION} (Python {PYTHON_VERSION})"
|
|
52
46
|
|
|
53
47
|
# https://github.com/pallets/click/blob/master/examples/complex/complex/cli.py
|
|
54
48
|
CONTEXT_SETTINGS = {"auto_envvar_prefix": "CMEMC", "help_option_names": ["-h", "--help"]}
|
|
@@ -3,9 +3,10 @@
|
|
|
3
3
|
import json
|
|
4
4
|
import os
|
|
5
5
|
import re
|
|
6
|
+
import sys
|
|
6
7
|
import unicodedata
|
|
7
8
|
from dataclasses import dataclass
|
|
8
|
-
from importlib.metadata import version
|
|
9
|
+
from importlib.metadata import version as cmemc_version
|
|
9
10
|
from pathlib import Path
|
|
10
11
|
|
|
11
12
|
import requests
|
|
@@ -22,7 +23,22 @@ from cmem_cmemc.context import ApplicationContext
|
|
|
22
23
|
|
|
23
24
|
def get_version() -> str:
|
|
24
25
|
"""Get the current version or SNAPSHOT."""
|
|
25
|
-
return
|
|
26
|
+
return cmemc_version("cmem-cmemc")
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
def check_python_version(ctx: ApplicationContext) -> None:
|
|
30
|
+
"""Check the runtime python version and warn or error."""
|
|
31
|
+
version = sys.version_info
|
|
32
|
+
major_expected = [3]
|
|
33
|
+
minor_expected = [10, 11, 12]
|
|
34
|
+
if version.major not in major_expected:
|
|
35
|
+
ctx.echo_error(f"Error: cmemc can not be executed with Python {version.major}.")
|
|
36
|
+
sys.exit(1)
|
|
37
|
+
if version.minor not in minor_expected and not ctx.is_completing():
|
|
38
|
+
ctx.echo_warning(
|
|
39
|
+
"Warning: You are running cmemc under a non-tested python "
|
|
40
|
+
f"environment ({version.major}.{version.minor})."
|
|
41
|
+
)
|
|
26
42
|
|
|
27
43
|
|
|
28
44
|
def extract_error_message(error: Exception) -> str:
|
|
@@ -288,24 +304,30 @@ class PublishedPackage:
|
|
|
288
304
|
|
|
289
305
|
def get_published_packages() -> list[PublishedPackage]:
|
|
290
306
|
"""Get a scraped list of plugin packages scraped from pypi.org."""
|
|
291
|
-
|
|
292
|
-
soup = BeautifulSoup(requests.get(url, timeout=5).content, "html.parser")
|
|
307
|
+
url_pattern = "https://pypi.org/search/?q=%22cmem-plugin-%22&page={}"
|
|
293
308
|
packages = []
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
309
|
+
page = 0
|
|
310
|
+
while True:
|
|
311
|
+
page += 1
|
|
312
|
+
url = url_pattern.format(page)
|
|
313
|
+
soup = BeautifulSoup(requests.get(url, timeout=5).content, "html.parser")
|
|
314
|
+
snippets = soup.find_all("a", class_="package-snippet")
|
|
315
|
+
if len(snippets) == 0:
|
|
316
|
+
break
|
|
317
|
+
for _ in snippets:
|
|
318
|
+
name = _.findChildren(class_="package-snippet__name")[0].getText()
|
|
319
|
+
if name == "cmem-plugin-base":
|
|
320
|
+
continue
|
|
321
|
+
if not name.startswith("cmem-plugin-"):
|
|
322
|
+
continue
|
|
323
|
+
description = _.findChildren(class_="package-snippet__description")[0].getText()
|
|
324
|
+
package_version = _.findChildren(class_="package-snippet__version")[0].getText()
|
|
325
|
+
published = _.findChildren(name="time")[0].attrs["datetime"]
|
|
326
|
+
packages.append(
|
|
327
|
+
PublishedPackage(
|
|
328
|
+
name=name, description=description, version=package_version, published=published
|
|
329
|
+
)
|
|
307
330
|
)
|
|
308
|
-
)
|
|
309
331
|
return packages
|
|
310
332
|
|
|
311
333
|
|
|
@@ -1,15 +1,33 @@
|
|
|
1
1
|
[tool.poetry]
|
|
2
2
|
name = "cmem-cmemc"
|
|
3
|
-
version = "24.1.
|
|
3
|
+
version = "24.1.5"
|
|
4
4
|
description = "Command line client for eccenca Corporate Memory"
|
|
5
|
-
license = "Apache
|
|
6
|
-
classifiers = [
|
|
5
|
+
license = "Apache-2.0"
|
|
6
|
+
classifiers = [
|
|
7
|
+
"Development Status :: 5 - Production/Stable",
|
|
8
|
+
"Environment :: Console",
|
|
9
|
+
"Intended Audience :: Customer Service",
|
|
10
|
+
"Intended Audience :: Developers",
|
|
11
|
+
"Intended Audience :: Information Technology",
|
|
12
|
+
"Intended Audience :: Science/Research",
|
|
13
|
+
"Intended Audience :: System Administrators",
|
|
14
|
+
"License :: OSI Approved :: Apache Software License",
|
|
15
|
+
"Natural Language :: English",
|
|
16
|
+
"Operating System :: OS Independent",
|
|
17
|
+
"Programming Language :: Python :: 3 :: Only",
|
|
18
|
+
"Programming Language :: Python :: 3.10",
|
|
19
|
+
"Programming Language :: Python :: 3.11",
|
|
20
|
+
"Programming Language :: Python :: 3.12",
|
|
21
|
+
"Topic :: Software Development :: Testing",
|
|
22
|
+
"Topic :: Database", "Topic :: Utilities",
|
|
23
|
+
"Topic :: Utilities"
|
|
24
|
+
]
|
|
7
25
|
homepage = "https://eccenca.com/go/cmemc"
|
|
8
26
|
authors = ["eccenca <cmempy-developer@eccenca.com>", "Sebastian Tramp <sebastian.tramp@eccenca.com>"]
|
|
9
27
|
readme = "README-public.md"
|
|
10
28
|
|
|
11
29
|
[tool.poetry.dependencies]
|
|
12
|
-
python = "^3.
|
|
30
|
+
python = "^3.10"
|
|
13
31
|
beautifulsoup4 = "^4.12.2"
|
|
14
32
|
certifi = ">=2023.5.7"
|
|
15
33
|
click = "^8.1.7"
|
cmem_cmemc-24.1.3rc1/PKG-INFO
DELETED
|
@@ -1,68 +0,0 @@
|
|
|
1
|
-
Metadata-Version: 2.1
|
|
2
|
-
Name: cmem-cmemc
|
|
3
|
-
Version: 24.1.3rc1
|
|
4
|
-
Summary: Command line client for eccenca Corporate Memory
|
|
5
|
-
Home-page: https://eccenca.com/go/cmemc
|
|
6
|
-
License: Apache 2.0
|
|
7
|
-
Author: eccenca
|
|
8
|
-
Author-email: cmempy-developer@eccenca.com
|
|
9
|
-
Requires-Python: >=3.9,<4.0
|
|
10
|
-
Classifier: Development Status :: 5 - Production/Stable
|
|
11
|
-
Classifier: Intended Audience :: Developers
|
|
12
|
-
Classifier: Intended Audience :: Science/Research
|
|
13
|
-
Classifier: Intended Audience :: System Administrators
|
|
14
|
-
Classifier: License :: OSI Approved :: Apache Software License
|
|
15
|
-
Classifier: License :: Other/Proprietary License
|
|
16
|
-
Classifier: Programming Language :: Python :: 3
|
|
17
|
-
Classifier: Programming Language :: Python :: 3.9
|
|
18
|
-
Classifier: Programming Language :: Python :: 3.10
|
|
19
|
-
Classifier: Programming Language :: Python :: 3.11
|
|
20
|
-
Classifier: Programming Language :: Python :: 3.12
|
|
21
|
-
Classifier: Topic :: Database
|
|
22
|
-
Classifier: Topic :: Software Development :: Testing
|
|
23
|
-
Classifier: Topic :: Utilities
|
|
24
|
-
Requires-Dist: beautifulsoup4 (>=4.12.2,<5.0.0)
|
|
25
|
-
Requires-Dist: certifi (>=2023.5.7)
|
|
26
|
-
Requires-Dist: click (>=8.1.7,<9.0.0)
|
|
27
|
-
Requires-Dist: click-didyoumean (>=0.3.0,<0.4.0)
|
|
28
|
-
Requires-Dist: click-help-colors (>=0.9.1,<0.10.0)
|
|
29
|
-
Requires-Dist: cmem-cmempy (==24.1.1)
|
|
30
|
-
Requires-Dist: configparser (>=5.3.0,<6.0.0)
|
|
31
|
-
Requires-Dist: jinja2 (>=3.1.2,<4.0.0)
|
|
32
|
-
Requires-Dist: natsort (>=8.3.1,<9.0.0)
|
|
33
|
-
Requires-Dist: prometheus-client (>=0.16.0,<0.17.0)
|
|
34
|
-
Requires-Dist: pygments (>=2.15.1,<3.0.0)
|
|
35
|
-
Requires-Dist: pyjwt (>=2.7.0,<3.0.0)
|
|
36
|
-
Requires-Dist: python-dateutil (>=2.8.2,<3.0.0)
|
|
37
|
-
Requires-Dist: requests (>=2.31.0,<3.0.0)
|
|
38
|
-
Requires-Dist: rich (>=13.7.0,<14.0.0)
|
|
39
|
-
Requires-Dist: six (>=1.16.0,<2.0.0)
|
|
40
|
-
Requires-Dist: timeago (>=1.0.16,<2.0.0)
|
|
41
|
-
Requires-Dist: treelib (>=1.6.4,<2.0.0)
|
|
42
|
-
Requires-Dist: urllib3 (>=2,<3)
|
|
43
|
-
Description-Content-Type: text/markdown
|
|
44
|
-
|
|
45
|
-
# cmemc
|
|
46
|
-
|
|
47
|
-
cmemc is the official command line client for [eccenca Corporate Memory](https://documentation.eccenca.com/).
|
|
48
|
-
|
|
49
|
-
## Installation
|
|
50
|
-
|
|
51
|
-
In order to install the cmemc, run:
|
|
52
|
-
|
|
53
|
-
pipx install cmem-cmemc
|
|
54
|
-
|
|
55
|
-
Of course you can install cmemc also with pip, but we recommend [pipx](https://pypa.github.io/pipx/) for normal desktop usage.
|
|
56
|
-
|
|
57
|
-
## Configuration and Usage
|
|
58
|
-
|
|
59
|
-
cmemc is intended for System Administrators and Linked Data Expert, who wants to automate and remote control activities on eccenca Corporate Memory.
|
|
60
|
-
|
|
61
|
-
The cmemc manual including basic usage pattern, configuration as well as a command reference is available at:
|
|
62
|
-
|
|
63
|
-
[https://eccenca.com/go/cmemc](https://eccenca.com/go/cmemc)
|
|
64
|
-
|
|
65
|
-
cmemc only works with Python 3 and refuses to work with Python 2.x.
|
|
66
|
-
In addition to that, cmemc will warn you in case an untested Python environment is used.
|
|
67
|
-
|
|
68
|
-
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
# cmemc
|
|
2
|
-
|
|
3
|
-
cmemc is the official command line client for [eccenca Corporate Memory](https://documentation.eccenca.com/).
|
|
4
|
-
|
|
5
|
-
## Installation
|
|
6
|
-
|
|
7
|
-
In order to install the cmemc, run:
|
|
8
|
-
|
|
9
|
-
pipx install cmem-cmemc
|
|
10
|
-
|
|
11
|
-
Of course you can install cmemc also with pip, but we recommend [pipx](https://pypa.github.io/pipx/) for normal desktop usage.
|
|
12
|
-
|
|
13
|
-
## Configuration and Usage
|
|
14
|
-
|
|
15
|
-
cmemc is intended for System Administrators and Linked Data Expert, who wants to automate and remote control activities on eccenca Corporate Memory.
|
|
16
|
-
|
|
17
|
-
The cmemc manual including basic usage pattern, configuration as well as a command reference is available at:
|
|
18
|
-
|
|
19
|
-
[https://eccenca.com/go/cmemc](https://eccenca.com/go/cmemc)
|
|
20
|
-
|
|
21
|
-
cmemc only works with Python 3 and refuses to work with Python 2.x.
|
|
22
|
-
In addition to that, cmemc will warn you in case an untested Python environment is used.
|
|
23
|
-
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|