slmp-connect-python 0.1.15__tar.gz → 0.1.16__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 (33) hide show
  1. {slmp_connect_python-0.1.15/slmp_connect_python.egg-info → slmp_connect_python-0.1.16}/PKG-INFO +6 -7
  2. {slmp_connect_python-0.1.15 → slmp_connect_python-0.1.16}/README.md +5 -6
  3. {slmp_connect_python-0.1.15 → slmp_connect_python-0.1.16}/pyproject.toml +4 -1
  4. {slmp_connect_python-0.1.15 → slmp_connect_python-0.1.16}/slmp/__init__.py +11 -1
  5. slmp_connect_python-0.1.16/slmp/_operations.py +1134 -0
  6. {slmp_connect_python-0.1.15 → slmp_connect_python-0.1.16}/slmp/async_client.py +252 -531
  7. {slmp_connect_python-0.1.15 → slmp_connect_python-0.1.16}/slmp/cli.py +91 -40
  8. {slmp_connect_python-0.1.15 → slmp_connect_python-0.1.16}/slmp/client.py +238 -714
  9. {slmp_connect_python-0.1.15 → slmp_connect_python-0.1.16}/slmp/core.py +55 -7
  10. slmp_connect_python-0.1.16/slmp/error_codes.py +2093 -0
  11. {slmp_connect_python-0.1.15 → slmp_connect_python-0.1.16}/slmp/errors.py +17 -0
  12. {slmp_connect_python-0.1.15 → slmp_connect_python-0.1.16}/slmp/utils.py +127 -148
  13. {slmp_connect_python-0.1.15 → slmp_connect_python-0.1.16/slmp_connect_python.egg-info}/PKG-INFO +6 -7
  14. {slmp_connect_python-0.1.15 → slmp_connect_python-0.1.16}/slmp_connect_python.egg-info/SOURCES.txt +4 -0
  15. {slmp_connect_python-0.1.15 → slmp_connect_python-0.1.16}/tests/test_async_client.py +24 -0
  16. slmp_connect_python-0.1.16/tests/test_error_codes.py +71 -0
  17. {slmp_connect_python-0.1.15 → slmp_connect_python-0.1.16}/tests/test_slmp.py +107 -60
  18. slmp_connect_python-0.1.16/tests/test_sync_async_parity.py +482 -0
  19. {slmp_connect_python-0.1.15 → slmp_connect_python-0.1.16}/LICENSE +0 -0
  20. {slmp_connect_python-0.1.15 → slmp_connect_python-0.1.16}/setup.cfg +0 -0
  21. {slmp_connect_python-0.1.15 → slmp_connect_python-0.1.16}/slmp/constants.py +0 -0
  22. {slmp_connect_python-0.1.15 → slmp_connect_python-0.1.16}/slmp/device_ranges.py +0 -0
  23. {slmp_connect_python-0.1.15 → slmp_connect_python-0.1.16}/slmp/py.typed +0 -0
  24. {slmp_connect_python-0.1.15 → slmp_connect_python-0.1.16}/slmp_connect_python.egg-info/dependency_links.txt +0 -0
  25. {slmp_connect_python-0.1.15 → slmp_connect_python-0.1.16}/slmp_connect_python.egg-info/entry_points.txt +0 -0
  26. {slmp_connect_python-0.1.15 → slmp_connect_python-0.1.16}/slmp_connect_python.egg-info/requires.txt +0 -0
  27. {slmp_connect_python-0.1.15 → slmp_connect_python-0.1.16}/slmp_connect_python.egg-info/top_level.txt +0 -0
  28. {slmp_connect_python-0.1.15 → slmp_connect_python-0.1.16}/tests/test_bugs_and_edges.py +0 -0
  29. {slmp_connect_python-0.1.15 → slmp_connect_python-0.1.16}/tests/test_cpu_operation_state.py +0 -0
  30. {slmp_connect_python-0.1.15 → slmp_connect_python-0.1.16}/tests/test_device_ranges.py +0 -0
  31. {slmp_connect_python-0.1.15 → slmp_connect_python-0.1.16}/tests/test_device_vectors.py +0 -0
  32. {slmp_connect_python-0.1.15 → slmp_connect_python-0.1.16}/tests/test_shared_spec.py +0 -0
  33. {slmp_connect_python-0.1.15 → slmp_connect_python-0.1.16}/tests/test_utils.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: slmp-connect-python
3
- Version: 0.1.15
3
+ Version: 0.1.16
4
4
  Summary: SLMP Connect Python: client library for Mitsubishi SLMP binary communication
5
5
  Author: fa-yoshinobu
6
6
  License-Expression: MIT
@@ -43,8 +43,7 @@ Dynamic: license-file
43
43
 
44
44
  ![Illustration](https://raw.githubusercontent.com/fa-yoshinobu/plc-comm-slmp-python/main/docsrc/assets/melsec.png)
45
45
 
46
- [![Automated Release](https://github.com/fa-yoshinobu/plc-comm-slmp-python/actions/workflows/automated-release.yml/badge.svg)](https://github.com/fa-yoshinobu/plc-comm-slmp-python/actions/workflows/automated-release.yml)
47
- [![Release](https://github.com/fa-yoshinobu/plc-comm-slmp-python/actions/workflows/release.yml/badge.svg)](https://github.com/fa-yoshinobu/plc-comm-slmp-python/actions/workflows/release.yml)
46
+ [![Release](https://img.shields.io/github/v/release/fa-yoshinobu/plc-comm-slmp-python?label=release)](https://github.com/fa-yoshinobu/plc-comm-slmp-python/releases/latest)
48
47
 
49
48
  [![Python](https://img.shields.io/badge/Python-3776AB?logo=python&logoColor=white)](https://www.python.org/)
50
49
  [![MkDocs](https://img.shields.io/badge/MkDocs-526CFE?logo=materialformkdocs&logoColor=white)](https://www.mkdocs.org/)
@@ -121,8 +120,8 @@ For normal application code:
121
120
  | `iq-f` | `3e` | `ql` | octal | `iq-f` | live-validated |
122
121
  | `iq-r` | `4e` | `iqr` | hexadecimal | `iq-r` | live-validated |
123
122
  | `iq-l` | `4e` | `iqr` | hexadecimal | `iq-l` | live-validated on `L16HCPU` |
124
- | `mx-f` | `4e` | `iqr` | hexadecimal | `mx-f` | provisional; review in `TODO.md` |
125
- | `mx-r` | `4e` | `iqr` | hexadecimal | `mx-r` | provisional; review in `TODO.md` |
123
+ | `mx-f` | `4e` | `iqr` | hexadecimal | `mx-f` | fixed family mapping |
124
+ | `mx-r` | `4e` | `iqr` | hexadecimal | `mx-r` | fixed family mapping |
126
125
  | `qcpu` | `3e` | `ql` | hexadecimal | `qcpu` | retained path |
127
126
  | `lcpu` | `3e` | `ql` | hexadecimal | `lcpu` | retained path |
128
127
  | `qnu` | `3e` | `ql` | hexadecimal | `qnu` | retained path |
@@ -137,8 +136,8 @@ High-level accepted `plc_family` values:
137
136
  | `iq-f` | FX5 / iQ-F | `X` / `Y` use manual octal text |
138
137
  | `iq-r` | iQ-R | `X` / `Y` use hexadecimal text |
139
138
  | `iq-l` | iQ-L | independent iQ-L range rules; live-validated on `L16HCPU` |
140
- | `mx-f` | MX-F | pending live validation |
141
- | `mx-r` | MX-R | pending live validation |
139
+ | `mx-f` | MX-F | fixed high-level family mapping |
140
+ | `mx-r` | MX-R | fixed high-level family mapping |
142
141
  | `qcpu` | QCPU | `3e/ql` fixed profile |
143
142
  | `lcpu` | LCPU | `3e/ql` fixed profile |
144
143
  | `qnu` | QnU | `3e/ql` fixed profile |
@@ -9,8 +9,7 @@
9
9
 
10
10
  ![Illustration](https://raw.githubusercontent.com/fa-yoshinobu/plc-comm-slmp-python/main/docsrc/assets/melsec.png)
11
11
 
12
- [![Automated Release](https://github.com/fa-yoshinobu/plc-comm-slmp-python/actions/workflows/automated-release.yml/badge.svg)](https://github.com/fa-yoshinobu/plc-comm-slmp-python/actions/workflows/automated-release.yml)
13
- [![Release](https://github.com/fa-yoshinobu/plc-comm-slmp-python/actions/workflows/release.yml/badge.svg)](https://github.com/fa-yoshinobu/plc-comm-slmp-python/actions/workflows/release.yml)
12
+ [![Release](https://img.shields.io/github/v/release/fa-yoshinobu/plc-comm-slmp-python?label=release)](https://github.com/fa-yoshinobu/plc-comm-slmp-python/releases/latest)
14
13
 
15
14
  [![Python](https://img.shields.io/badge/Python-3776AB?logo=python&logoColor=white)](https://www.python.org/)
16
15
  [![MkDocs](https://img.shields.io/badge/MkDocs-526CFE?logo=materialformkdocs&logoColor=white)](https://www.mkdocs.org/)
@@ -87,8 +86,8 @@ For normal application code:
87
86
  | `iq-f` | `3e` | `ql` | octal | `iq-f` | live-validated |
88
87
  | `iq-r` | `4e` | `iqr` | hexadecimal | `iq-r` | live-validated |
89
88
  | `iq-l` | `4e` | `iqr` | hexadecimal | `iq-l` | live-validated on `L16HCPU` |
90
- | `mx-f` | `4e` | `iqr` | hexadecimal | `mx-f` | provisional; review in `TODO.md` |
91
- | `mx-r` | `4e` | `iqr` | hexadecimal | `mx-r` | provisional; review in `TODO.md` |
89
+ | `mx-f` | `4e` | `iqr` | hexadecimal | `mx-f` | fixed family mapping |
90
+ | `mx-r` | `4e` | `iqr` | hexadecimal | `mx-r` | fixed family mapping |
92
91
  | `qcpu` | `3e` | `ql` | hexadecimal | `qcpu` | retained path |
93
92
  | `lcpu` | `3e` | `ql` | hexadecimal | `lcpu` | retained path |
94
93
  | `qnu` | `3e` | `ql` | hexadecimal | `qnu` | retained path |
@@ -103,8 +102,8 @@ High-level accepted `plc_family` values:
103
102
  | `iq-f` | FX5 / iQ-F | `X` / `Y` use manual octal text |
104
103
  | `iq-r` | iQ-R | `X` / `Y` use hexadecimal text |
105
104
  | `iq-l` | iQ-L | independent iQ-L range rules; live-validated on `L16HCPU` |
106
- | `mx-f` | MX-F | pending live validation |
107
- | `mx-r` | MX-R | pending live validation |
105
+ | `mx-f` | MX-F | fixed high-level family mapping |
106
+ | `mx-r` | MX-R | fixed high-level family mapping |
108
107
  | `qcpu` | QCPU | `3e/ql` fixed profile |
109
108
  | `lcpu` | LCPU | `3e/ql` fixed profile |
110
109
  | `qnu` | QnU | `3e/ql` fixed profile |
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "slmp-connect-python"
7
- version = "0.1.15"
7
+ version = "0.1.16"
8
8
  description = "SLMP Connect Python: client library for Mitsubishi SLMP binary communication"
9
9
  readme = "README.md"
10
10
  requires-python = ">=3.10"
@@ -81,6 +81,9 @@ target-version = "py310"
81
81
  [tool.ruff.lint]
82
82
  select = ["E", "F", "I", "B", "UP"]
83
83
 
84
+ [tool.ruff.lint.per-file-ignores]
85
+ "slmp/error_codes.py" = ["E501"]
86
+
84
87
  [tool.ruff.lint.isort]
85
88
  known-first-party = ["slmp"]
86
89
 
@@ -10,7 +10,7 @@ The primary user-facing entry points are:
10
10
  - ``poll``
11
11
  """
12
12
 
13
- __version__ = "0.1.14"
13
+ __version__ = "0.1.16"
14
14
 
15
15
  from .async_client import AsyncSlmpClient
16
16
  from .client import SlmpClient
@@ -51,6 +51,12 @@ from .device_ranges import (
51
51
  read_device_range_catalog_for_family,
52
52
  read_device_range_catalog_for_family_sync,
53
53
  )
54
+ from .error_codes import (
55
+ SlmpEndCodeLanguage,
56
+ get_end_code_message,
57
+ get_end_code_name,
58
+ is_remote_password_end_code,
59
+ )
54
60
  from .errors import (
55
61
  SlmpBoundaryBehaviorWarning,
56
62
  SlmpError,
@@ -127,6 +133,7 @@ __all__ = [
127
133
  "PLCSeries",
128
134
  "QueuedAsyncSlmpClient",
129
135
  "SlmpConnectionOptions",
136
+ "SlmpEndCodeLanguage",
130
137
  "SlmpAddress",
131
138
  "RandomReadResult",
132
139
  "SlmpClient",
@@ -140,6 +147,9 @@ __all__ = [
140
147
  "TypeNameInfo",
141
148
  "decode_cpu_operation_state",
142
149
  "format_address",
150
+ "get_end_code_message",
151
+ "get_end_code_name",
152
+ "is_remote_password_end_code",
143
153
  "SlmpDeviceRangeCatalog",
144
154
  "SlmpDeviceRangeCategory",
145
155
  "SlmpDeviceRangeEntry",