cgse-common 2025.0.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.
Files changed (36) hide show
  1. cgse_common-2025.0.5/.gitignore +39 -0
  2. cgse_common-2025.0.5/PKG-INFO +62 -0
  3. cgse_common-2025.0.5/README.md +39 -0
  4. cgse_common-2025.0.5/pyproject.toml +81 -0
  5. cgse_common-2025.0.5/src/egse/bits.py +543 -0
  6. cgse_common-2025.0.5/src/egse/calibration.py +250 -0
  7. cgse_common-2025.0.5/src/egse/command.py +680 -0
  8. cgse_common-2025.0.5/src/egse/config.py +415 -0
  9. cgse_common-2025.0.5/src/egse/control.py +348 -0
  10. cgse_common-2025.0.5/src/egse/decorators.py +419 -0
  11. cgse_common-2025.0.5/src/egse/device.py +271 -0
  12. cgse_common-2025.0.5/src/egse/env.py +802 -0
  13. cgse_common-2025.0.5/src/egse/exceptions.py +88 -0
  14. cgse_common-2025.0.5/src/egse/hk.py +792 -0
  15. cgse_common-2025.0.5/src/egse/metrics.py +106 -0
  16. cgse_common-2025.0.5/src/egse/mixin.py +464 -0
  17. cgse_common-2025.0.5/src/egse/monitoring.py +96 -0
  18. cgse_common-2025.0.5/src/egse/observer.py +41 -0
  19. cgse_common-2025.0.5/src/egse/obsid.py +161 -0
  20. cgse_common-2025.0.5/src/egse/persistence.py +58 -0
  21. cgse_common-2025.0.5/src/egse/plugin.py +97 -0
  22. cgse_common-2025.0.5/src/egse/process.py +460 -0
  23. cgse_common-2025.0.5/src/egse/protocol.py +607 -0
  24. cgse_common-2025.0.5/src/egse/proxy.py +522 -0
  25. cgse_common-2025.0.5/src/egse/reload.py +122 -0
  26. cgse_common-2025.0.5/src/egse/resource.py +438 -0
  27. cgse_common-2025.0.5/src/egse/response.py +102 -0
  28. cgse_common-2025.0.5/src/egse/services.py +215 -0
  29. cgse_common-2025.0.5/src/egse/services.yaml +51 -0
  30. cgse_common-2025.0.5/src/egse/settings.py +434 -0
  31. cgse_common-2025.0.5/src/egse/settings.yaml +7 -0
  32. cgse_common-2025.0.5/src/egse/setup.py +1230 -0
  33. cgse_common-2025.0.5/src/egse/state.py +173 -0
  34. cgse_common-2025.0.5/src/egse/system.py +1524 -0
  35. cgse_common-2025.0.5/src/egse/version.py +180 -0
  36. cgse_common-2025.0.5/src/egse/zmq_ser.py +69 -0
@@ -0,0 +1,39 @@
1
+ # Python versions and environment
2
+
3
+ __pycache__
4
+ .python-version
5
+ .envrc
6
+
7
+ # Build systems
8
+
9
+ build
10
+ dist
11
+ **/*.egg-info
12
+
13
+ # Apple specific
14
+
15
+ .DS_Store
16
+
17
+ # Unit testing
18
+
19
+ .pytest_cache
20
+ .coverage
21
+ htmlcov
22
+
23
+ # Virtual environments
24
+
25
+ .env
26
+ .venv
27
+ venv
28
+
29
+ # PyCharm IDE
30
+
31
+ .idea
32
+
33
+ # MKDOCS documentation site
34
+
35
+ /site
36
+
37
+ # Packaging
38
+
39
+ uv.lock
@@ -0,0 +1,62 @@
1
+ Metadata-Version: 2.4
2
+ Name: cgse-common
3
+ Version: 2025.0.5
4
+ Summary: Software framework to support hardware testing
5
+ Author: IVS KU Leuven
6
+ Maintainer-email: Rik Huygen <rik.huygen@kuleuven.be>, Sara Regibo <sara.regibo@kuleuven.be>
7
+ License-Expression: MIT
8
+ Keywords: CGSE,Common-EGSE,hardware testing,software framework
9
+ Requires-Python: >=3.9
10
+ Requires-Dist: click>=8.1.8
11
+ Requires-Dist: deepdiff>=8.1.1
12
+ Requires-Dist: distro>=1.9.0
13
+ Requires-Dist: gitpython>=3.1.44
14
+ Requires-Dist: numpy==1.22.4
15
+ Requires-Dist: pandas>=1.5.1
16
+ Requires-Dist: pip>=24.3.1
17
+ Requires-Dist: prometheus-client>=0.21.1
18
+ Requires-Dist: psutil>=6.1.1
19
+ Requires-Dist: pyyaml>=6.0.2
20
+ Requires-Dist: pyzmq==23.2.1
21
+ Requires-Dist: rich>=13.9.4
22
+ Description-Content-Type: text/markdown
23
+
24
+
25
+ ![PyPI - Version](https://img.shields.io/pypi/v/cgse-common)
26
+ ![Supported OS](https://img.shields.io/badge/Supported%20OS-Linux%20%7C%20macOS-blue)
27
+ ![Python Version from PEP 621 TOML](https://img.shields.io/python/required-version-toml?tomlFilePath=https%3A%2F%2Fraw.githubusercontent.com%2FIvS-KULeuven%2Fcgse%2Frefs%2Fheads%2Fmain%2Fpyproject.toml)
28
+ ![PyPI - Wheel](https://img.shields.io/pypi/wheel/cgse-common)
29
+
30
+ # Generic Functionality used in the Common-EGSE
31
+
32
+ This package 'cgse-common' contains functionality that is used by all `cgse` sub-packages, but it is designed to be a stand-alone generic package that can be used also in any other project.
33
+
34
+
35
+ ## Installation
36
+
37
+ Install the package using pip:
38
+
39
+ $ pip install cgse-common
40
+
41
+
42
+ ## Usage
43
+
44
+ All functionality resides in the package `egse`. As an example, if you need a standard way to format your timestamp, use the `format_datetime()` function from `egse.system`:
45
+
46
+ >>> from egse.system import format_datetime
47
+ >>> print(format_datetime())
48
+ 2023-10-10T08:41:51.937+0000
49
+
50
+
51
+ ## Included Functionality
52
+
53
+ A non-comprehensive list of available functionality:
54
+
55
+ ### Functionality of General Use
56
+
57
+ * **egse.bits**: contains a number of convenience functions to work with bits, bytes and integers
58
+ * **egse.decorators**: a collection of useful decorator functions
59
+ * **egse.reload**: a slightly better approach to reloading modules and function than the standard importlib.reload() function.
60
+ * **egse.resource**: provides convenience functions to use resources in your code without the need to specify an absolute path
61
+ * **egse.system**: defines convenience functions that provide information on system specific functionality like, file system interactions, timing, operating system interactions, etc.
62
+ * **egse.version**: functionality to retrieve the package version information
@@ -0,0 +1,39 @@
1
+
2
+ ![PyPI - Version](https://img.shields.io/pypi/v/cgse-common)
3
+ ![Supported OS](https://img.shields.io/badge/Supported%20OS-Linux%20%7C%20macOS-blue)
4
+ ![Python Version from PEP 621 TOML](https://img.shields.io/python/required-version-toml?tomlFilePath=https%3A%2F%2Fraw.githubusercontent.com%2FIvS-KULeuven%2Fcgse%2Frefs%2Fheads%2Fmain%2Fpyproject.toml)
5
+ ![PyPI - Wheel](https://img.shields.io/pypi/wheel/cgse-common)
6
+
7
+ # Generic Functionality used in the Common-EGSE
8
+
9
+ This package 'cgse-common' contains functionality that is used by all `cgse` sub-packages, but it is designed to be a stand-alone generic package that can be used also in any other project.
10
+
11
+
12
+ ## Installation
13
+
14
+ Install the package using pip:
15
+
16
+ $ pip install cgse-common
17
+
18
+
19
+ ## Usage
20
+
21
+ All functionality resides in the package `egse`. As an example, if you need a standard way to format your timestamp, use the `format_datetime()` function from `egse.system`:
22
+
23
+ >>> from egse.system import format_datetime
24
+ >>> print(format_datetime())
25
+ 2023-10-10T08:41:51.937+0000
26
+
27
+
28
+ ## Included Functionality
29
+
30
+ A non-comprehensive list of available functionality:
31
+
32
+ ### Functionality of General Use
33
+
34
+ * **egse.bits**: contains a number of convenience functions to work with bits, bytes and integers
35
+ * **egse.decorators**: a collection of useful decorator functions
36
+ * **egse.reload**: a slightly better approach to reloading modules and function than the standard importlib.reload() function.
37
+ * **egse.resource**: provides convenience functions to use resources in your code without the need to specify an absolute path
38
+ * **egse.system**: defines convenience functions that provide information on system specific functionality like, file system interactions, timing, operating system interactions, etc.
39
+ * **egse.version**: functionality to retrieve the package version information
@@ -0,0 +1,81 @@
1
+ [project]
2
+ name = "cgse-common"
3
+ version = "2025.0.5"
4
+ description = "Software framework to support hardware testing"
5
+ authors = [
6
+ {name = "IVS KU Leuven"}
7
+ ]
8
+ maintainers = [
9
+ {name = "Rik Huygen", email = "rik.huygen@kuleuven.be"},
10
+ {name = "Sara Regibo", email = "sara.regibo@kuleuven.be"}
11
+ ]
12
+ readme = {"file" = "README.md", "content-type" = "text/markdown"}
13
+ requires-python = ">=3.9"
14
+ license = "MIT"
15
+ keywords = [
16
+ "CGSE",
17
+ "Common-EGSE",
18
+ "hardware testing",
19
+ "software framework"
20
+ ]
21
+ dependencies = [
22
+ "click>=8.1.8",
23
+ "deepdiff>=8.1.1",
24
+ "distro>=1.9.0",
25
+ "gitpython>=3.1.44",
26
+ "numpy==1.22.4",
27
+ "pandas>=1.5.1",
28
+ "pip>=24.3.1", # only used in setup
29
+ "prometheus-client>=0.21.1",
30
+ "psutil>=6.1.1",
31
+ "pyyaml>=6.0.2",
32
+ "pyzmq == 23.2.1",
33
+ "rich>=13.9.4",
34
+ ]
35
+
36
+ [project.entry-points."cgse.version"]
37
+ cgse-common = 'egse'
38
+
39
+ [tool.pytest.ini_options]
40
+ pythonpath = "src"
41
+ testpaths = ["tests"]
42
+ addopts = "-ra --cov --cov-report html"
43
+ filterwarnings = [
44
+ "ignore::DeprecationWarning"
45
+ ]
46
+
47
+ [tool.coverage.run]
48
+ omit = [
49
+ "tests/*",
50
+ "conftest.py",
51
+ ]
52
+
53
+ [tool.hatch.build.targets.sdist]
54
+ exclude = [
55
+ "/tests",
56
+ "/pytest.ini",
57
+ "/.gitignore",
58
+ "/*poetry*",
59
+ "/*setuptools*",
60
+ ]
61
+
62
+ [tool.hatch.build.targets.wheel]
63
+ packages = ["src/egse"]
64
+
65
+ [tool.ruff]
66
+ line-length = 120
67
+
68
+ [tool.ruff.lint]
69
+ extend-select = ["E", "W"]
70
+
71
+ [build-system]
72
+ requires = ["hatchling"]
73
+ build-backend = "hatchling.build"
74
+
75
+ [dependency-groups]
76
+ dev = [
77
+ "pytest>=8.3.4",
78
+ "pytest-cov>=6.0.0",
79
+ "pytest-mock>=3.14.0",
80
+ "ruff>=0.9.0",
81
+ ]