plc-comm-slmp 2.0.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.
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 fa-yoshinobu
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -0,0 +1,2 @@
1
+ prune tests
2
+ prune internal_docs
@@ -0,0 +1,102 @@
1
+ Metadata-Version: 2.4
2
+ Name: plc-comm-slmp
3
+ Version: 2.0.0
4
+ Summary: SLMP Connect Python: client library for MELSEC SLMP binary communication
5
+ Author: fa-yoshinobu
6
+ License-Expression: MIT
7
+ Project-URL: Homepage, https://github.com/fa-yoshinobu/plc-comm-slmp-python
8
+ Project-URL: Repository, https://github.com/fa-yoshinobu/plc-comm-slmp-python
9
+ Project-URL: Issues, https://github.com/fa-yoshinobu/plc-comm-slmp-python/issues
10
+ Keywords: plc-comm,slmp,melsec,mitsubishi,plc,3e,4e,binary
11
+ Classifier: Development Status :: 5 - Production/Stable
12
+ Classifier: Intended Audience :: Developers
13
+ Classifier: Programming Language :: Python :: 3
14
+ Classifier: Programming Language :: Python :: 3.10
15
+ Classifier: Programming Language :: Python :: 3.11
16
+ Classifier: Programming Language :: Python :: 3.12
17
+ Classifier: Programming Language :: Python :: 3.13
18
+ Classifier: Programming Language :: Python :: 3.14
19
+ Classifier: Topic :: Software Development :: Libraries :: Python Modules
20
+ Classifier: Topic :: System :: Networking
21
+ Requires-Python: >=3.10
22
+ Description-Content-Type: text/markdown
23
+ License-File: LICENSE
24
+ Provides-Extra: dev
25
+ Requires-Dist: build>=1.2; extra == "dev"
26
+ Requires-Dist: mypy>=1.10; extra == "dev"
27
+ Requires-Dist: pre-commit>=3.7; extra == "dev"
28
+ Requires-Dist: pytest>=8.0; extra == "dev"
29
+ Requires-Dist: pytest-asyncio>=0.23; extra == "dev"
30
+ Requires-Dist: pytest-cov>=5.0; extra == "dev"
31
+ Requires-Dist: ruff>=0.6; extra == "dev"
32
+ Requires-Dist: twine>=5.1; extra == "dev"
33
+ Dynamic: license-file
34
+
35
+ [![CI](https://github.com/fa-yoshinobu/plc-comm-slmp-python/actions/workflows/ci.yml/badge.svg)](https://github.com/fa-yoshinobu/plc-comm-slmp-python/actions/workflows/ci.yml)
36
+ [![PyPI](https://img.shields.io/pypi/v/plc-comm-slmp.svg)](https://pypi.org/project/plc-comm-slmp/)
37
+ [![Python 3.10+](https://img.shields.io/badge/python-3.10+-blue.svg)](https://www.python.org/downloads/)
38
+ [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](LICENSE)
39
+
40
+ # MELSEC SLMP for Python
41
+
42
+ Python library for MELSEC SLMP (Binary 3E/4E) PLC communication.
43
+
44
+ ## PLC Comm Family
45
+
46
+ This library is part of the plc-comm family. See the [package matrix](https://fa-yoshinobu.github.io/plc-comm-docs-site/package-matrix/) for protocol, language, registry, and install-command mapping.
47
+
48
+ ## Supported PLC profiles
49
+
50
+ The maintained profile table is in [PLC profiles](docsrc/user/PROFILES.md). Choose one exact canonical PLC profile from that table.
51
+
52
+ Sync and async clients use `strict_profile=True` by default. With a selected profile, operations known to be unavailable for that PLC are rejected before sending. Set `strict_profile=False` only for deliberate verification where you want the PLC to answer directly. Point limits and read-only write policies are always enforced.
53
+
54
+ ## Supported device types
55
+
56
+ The maintained device and range tables are in the [SLMP Profile Reference](https://fa-yoshinobu.github.io/plc-comm-docs-site/slmp/profile-reference/). Use that page for supported device families, address syntax, and profile-specific notes.
57
+
58
+ ## Installation
59
+
60
+ ```bash
61
+ pip install plc-comm-slmp
62
+ ```
63
+
64
+ ## Quick example
65
+
66
+ ```python
67
+ import asyncio
68
+ from slmp import SlmpConnectionOptions, open_and_connect, read_typed
69
+
70
+ async def main() -> None:
71
+ options = SlmpConnectionOptions(host="192.168.250.100", port=1025, plc_profile="melsec:iq-r")
72
+ async with await open_and_connect(options) as client:
73
+ value = await read_typed(client, "D100", "U")
74
+ print(f"D100={value}")
75
+
76
+ asyncio.run(main())
77
+ ```
78
+
79
+ ## Documentation
80
+
81
+ | Page | Use it for |
82
+ | --- | --- |
83
+ | [Full documentation site](https://fa-yoshinobu.github.io/plc-comm-docs-site/) | Unified docs for all PLC communication libraries. |
84
+ | [Getting started](docsrc/user/GETTING_STARTED.md) | Install the package, connect to your PLC, and run your first SLMP read/write. |
85
+ | [Usage guide](docsrc/user/USAGE_GUIDE.md) | Use the high-level API and common SLMP workflows. |
86
+ | [SLMP profile reference](https://fa-yoshinobu.github.io/plc-comm-docs-site/slmp/profile-reference/) | Check profile parameters, device families, address syntax, and numbering rules. |
87
+ | [PLC profiles](docsrc/user/PROFILES.md) | Choose the canonical MELSEC profile and frame behavior. |
88
+ | [Examples](samples/README.md) | Run maintained Python samples. |
89
+
90
+ ## License and registry
91
+
92
+ | Item | Value |
93
+ | --- | --- |
94
+ | License | [MIT](LICENSE) |
95
+ | Registry | [PyPI](https://pypi.org/project/plc-comm-slmp/) |
96
+ | Package | `plc-comm-slmp` |
97
+
98
+ ## Commercial support
99
+
100
+ If you plan to embed this library in a paid or commercial product, please consider a separate support agreement or supporting the project as a sponsor.
101
+
102
+ Contact: <https://fa-labo.com/contact.html>
@@ -0,0 +1,68 @@
1
+ [![CI](https://github.com/fa-yoshinobu/plc-comm-slmp-python/actions/workflows/ci.yml/badge.svg)](https://github.com/fa-yoshinobu/plc-comm-slmp-python/actions/workflows/ci.yml)
2
+ [![PyPI](https://img.shields.io/pypi/v/plc-comm-slmp.svg)](https://pypi.org/project/plc-comm-slmp/)
3
+ [![Python 3.10+](https://img.shields.io/badge/python-3.10+-blue.svg)](https://www.python.org/downloads/)
4
+ [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](LICENSE)
5
+
6
+ # MELSEC SLMP for Python
7
+
8
+ Python library for MELSEC SLMP (Binary 3E/4E) PLC communication.
9
+
10
+ ## PLC Comm Family
11
+
12
+ This library is part of the plc-comm family. See the [package matrix](https://fa-yoshinobu.github.io/plc-comm-docs-site/package-matrix/) for protocol, language, registry, and install-command mapping.
13
+
14
+ ## Supported PLC profiles
15
+
16
+ The maintained profile table is in [PLC profiles](docsrc/user/PROFILES.md). Choose one exact canonical PLC profile from that table.
17
+
18
+ Sync and async clients use `strict_profile=True` by default. With a selected profile, operations known to be unavailable for that PLC are rejected before sending. Set `strict_profile=False` only for deliberate verification where you want the PLC to answer directly. Point limits and read-only write policies are always enforced.
19
+
20
+ ## Supported device types
21
+
22
+ The maintained device and range tables are in the [SLMP Profile Reference](https://fa-yoshinobu.github.io/plc-comm-docs-site/slmp/profile-reference/). Use that page for supported device families, address syntax, and profile-specific notes.
23
+
24
+ ## Installation
25
+
26
+ ```bash
27
+ pip install plc-comm-slmp
28
+ ```
29
+
30
+ ## Quick example
31
+
32
+ ```python
33
+ import asyncio
34
+ from slmp import SlmpConnectionOptions, open_and_connect, read_typed
35
+
36
+ async def main() -> None:
37
+ options = SlmpConnectionOptions(host="192.168.250.100", port=1025, plc_profile="melsec:iq-r")
38
+ async with await open_and_connect(options) as client:
39
+ value = await read_typed(client, "D100", "U")
40
+ print(f"D100={value}")
41
+
42
+ asyncio.run(main())
43
+ ```
44
+
45
+ ## Documentation
46
+
47
+ | Page | Use it for |
48
+ | --- | --- |
49
+ | [Full documentation site](https://fa-yoshinobu.github.io/plc-comm-docs-site/) | Unified docs for all PLC communication libraries. |
50
+ | [Getting started](docsrc/user/GETTING_STARTED.md) | Install the package, connect to your PLC, and run your first SLMP read/write. |
51
+ | [Usage guide](docsrc/user/USAGE_GUIDE.md) | Use the high-level API and common SLMP workflows. |
52
+ | [SLMP profile reference](https://fa-yoshinobu.github.io/plc-comm-docs-site/slmp/profile-reference/) | Check profile parameters, device families, address syntax, and numbering rules. |
53
+ | [PLC profiles](docsrc/user/PROFILES.md) | Choose the canonical MELSEC profile and frame behavior. |
54
+ | [Examples](samples/README.md) | Run maintained Python samples. |
55
+
56
+ ## License and registry
57
+
58
+ | Item | Value |
59
+ | --- | --- |
60
+ | License | [MIT](LICENSE) |
61
+ | Registry | [PyPI](https://pypi.org/project/plc-comm-slmp/) |
62
+ | Package | `plc-comm-slmp` |
63
+
64
+ ## Commercial support
65
+
66
+ If you plan to embed this library in a paid or commercial product, please consider a separate support agreement or supporting the project as a sponsor.
67
+
68
+ Contact: <https://fa-labo.com/contact.html>
@@ -0,0 +1,102 @@
1
+ Metadata-Version: 2.4
2
+ Name: plc-comm-slmp
3
+ Version: 2.0.0
4
+ Summary: SLMP Connect Python: client library for MELSEC SLMP binary communication
5
+ Author: fa-yoshinobu
6
+ License-Expression: MIT
7
+ Project-URL: Homepage, https://github.com/fa-yoshinobu/plc-comm-slmp-python
8
+ Project-URL: Repository, https://github.com/fa-yoshinobu/plc-comm-slmp-python
9
+ Project-URL: Issues, https://github.com/fa-yoshinobu/plc-comm-slmp-python/issues
10
+ Keywords: plc-comm,slmp,melsec,mitsubishi,plc,3e,4e,binary
11
+ Classifier: Development Status :: 5 - Production/Stable
12
+ Classifier: Intended Audience :: Developers
13
+ Classifier: Programming Language :: Python :: 3
14
+ Classifier: Programming Language :: Python :: 3.10
15
+ Classifier: Programming Language :: Python :: 3.11
16
+ Classifier: Programming Language :: Python :: 3.12
17
+ Classifier: Programming Language :: Python :: 3.13
18
+ Classifier: Programming Language :: Python :: 3.14
19
+ Classifier: Topic :: Software Development :: Libraries :: Python Modules
20
+ Classifier: Topic :: System :: Networking
21
+ Requires-Python: >=3.10
22
+ Description-Content-Type: text/markdown
23
+ License-File: LICENSE
24
+ Provides-Extra: dev
25
+ Requires-Dist: build>=1.2; extra == "dev"
26
+ Requires-Dist: mypy>=1.10; extra == "dev"
27
+ Requires-Dist: pre-commit>=3.7; extra == "dev"
28
+ Requires-Dist: pytest>=8.0; extra == "dev"
29
+ Requires-Dist: pytest-asyncio>=0.23; extra == "dev"
30
+ Requires-Dist: pytest-cov>=5.0; extra == "dev"
31
+ Requires-Dist: ruff>=0.6; extra == "dev"
32
+ Requires-Dist: twine>=5.1; extra == "dev"
33
+ Dynamic: license-file
34
+
35
+ [![CI](https://github.com/fa-yoshinobu/plc-comm-slmp-python/actions/workflows/ci.yml/badge.svg)](https://github.com/fa-yoshinobu/plc-comm-slmp-python/actions/workflows/ci.yml)
36
+ [![PyPI](https://img.shields.io/pypi/v/plc-comm-slmp.svg)](https://pypi.org/project/plc-comm-slmp/)
37
+ [![Python 3.10+](https://img.shields.io/badge/python-3.10+-blue.svg)](https://www.python.org/downloads/)
38
+ [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](LICENSE)
39
+
40
+ # MELSEC SLMP for Python
41
+
42
+ Python library for MELSEC SLMP (Binary 3E/4E) PLC communication.
43
+
44
+ ## PLC Comm Family
45
+
46
+ This library is part of the plc-comm family. See the [package matrix](https://fa-yoshinobu.github.io/plc-comm-docs-site/package-matrix/) for protocol, language, registry, and install-command mapping.
47
+
48
+ ## Supported PLC profiles
49
+
50
+ The maintained profile table is in [PLC profiles](docsrc/user/PROFILES.md). Choose one exact canonical PLC profile from that table.
51
+
52
+ Sync and async clients use `strict_profile=True` by default. With a selected profile, operations known to be unavailable for that PLC are rejected before sending. Set `strict_profile=False` only for deliberate verification where you want the PLC to answer directly. Point limits and read-only write policies are always enforced.
53
+
54
+ ## Supported device types
55
+
56
+ The maintained device and range tables are in the [SLMP Profile Reference](https://fa-yoshinobu.github.io/plc-comm-docs-site/slmp/profile-reference/). Use that page for supported device families, address syntax, and profile-specific notes.
57
+
58
+ ## Installation
59
+
60
+ ```bash
61
+ pip install plc-comm-slmp
62
+ ```
63
+
64
+ ## Quick example
65
+
66
+ ```python
67
+ import asyncio
68
+ from slmp import SlmpConnectionOptions, open_and_connect, read_typed
69
+
70
+ async def main() -> None:
71
+ options = SlmpConnectionOptions(host="192.168.250.100", port=1025, plc_profile="melsec:iq-r")
72
+ async with await open_and_connect(options) as client:
73
+ value = await read_typed(client, "D100", "U")
74
+ print(f"D100={value}")
75
+
76
+ asyncio.run(main())
77
+ ```
78
+
79
+ ## Documentation
80
+
81
+ | Page | Use it for |
82
+ | --- | --- |
83
+ | [Full documentation site](https://fa-yoshinobu.github.io/plc-comm-docs-site/) | Unified docs for all PLC communication libraries. |
84
+ | [Getting started](docsrc/user/GETTING_STARTED.md) | Install the package, connect to your PLC, and run your first SLMP read/write. |
85
+ | [Usage guide](docsrc/user/USAGE_GUIDE.md) | Use the high-level API and common SLMP workflows. |
86
+ | [SLMP profile reference](https://fa-yoshinobu.github.io/plc-comm-docs-site/slmp/profile-reference/) | Check profile parameters, device families, address syntax, and numbering rules. |
87
+ | [PLC profiles](docsrc/user/PROFILES.md) | Choose the canonical MELSEC profile and frame behavior. |
88
+ | [Examples](samples/README.md) | Run maintained Python samples. |
89
+
90
+ ## License and registry
91
+
92
+ | Item | Value |
93
+ | --- | --- |
94
+ | License | [MIT](LICENSE) |
95
+ | Registry | [PyPI](https://pypi.org/project/plc-comm-slmp/) |
96
+ | Package | `plc-comm-slmp` |
97
+
98
+ ## Commercial support
99
+
100
+ If you plan to embed this library in a paid or commercial product, please consider a separate support agreement or supporting the project as a sponsor.
101
+
102
+ Contact: <https://fa-labo.com/contact.html>
@@ -0,0 +1,23 @@
1
+ LICENSE
2
+ MANIFEST.in
3
+ README.md
4
+ pyproject.toml
5
+ plc_comm_slmp.egg-info/PKG-INFO
6
+ plc_comm_slmp.egg-info/SOURCES.txt
7
+ plc_comm_slmp.egg-info/dependency_links.txt
8
+ plc_comm_slmp.egg-info/entry_points.txt
9
+ plc_comm_slmp.egg-info/requires.txt
10
+ plc_comm_slmp.egg-info/top_level.txt
11
+ slmp/__init__.py
12
+ slmp/_operations.py
13
+ slmp/async_client.py
14
+ slmp/capability_profiles.py
15
+ slmp/cli.py
16
+ slmp/client.py
17
+ slmp/constants.py
18
+ slmp/core.py
19
+ slmp/device_ranges.py
20
+ slmp/error_codes.py
21
+ slmp/errors.py
22
+ slmp/py.typed
23
+ slmp/utils.py
@@ -0,0 +1,16 @@
1
+ [console_scripts]
2
+ slmp-connection-check = slmp.cli:connection_check_main
3
+ slmp-device-range-probe = slmp.cli:device_range_probe_main
4
+ slmp-extended-device-recheck = slmp.cli:extended_device_recheck_main
5
+ slmp-g-hg-extended-device-coverage = slmp.cli:g_hg_extended_device_coverage_main
6
+ slmp-g-hg-extended-device-recheck = slmp.cli:g_hg_extended_device_recheck_main
7
+ slmp-init-model-docs = slmp.cli:init_model_docs_main
8
+ slmp-manual-label-verification = slmp.cli:manual_label_verification_main
9
+ slmp-mixed-read-load = slmp.cli:mixed_read_load_main
10
+ slmp-open-items-recheck = slmp.cli:open_items_recheck_main
11
+ slmp-other-station-check = slmp.cli:other_station_check_main
12
+ slmp-pending-live-verification = slmp.cli:pending_live_verification_main
13
+ slmp-read-soak = slmp.cli:read_soak_main
14
+ slmp-register-boundary-probe = slmp.cli:register_boundary_probe_main
15
+ slmp-regression-suite = slmp.cli:regression_suite_main
16
+ slmp-tcp-concurrency = slmp.cli:tcp_concurrency_main
@@ -0,0 +1,10 @@
1
+
2
+ [dev]
3
+ build>=1.2
4
+ mypy>=1.10
5
+ pre-commit>=3.7
6
+ pytest>=8.0
7
+ pytest-asyncio>=0.23
8
+ pytest-cov>=5.0
9
+ ruff>=0.6
10
+ twine>=5.1
@@ -0,0 +1,111 @@
1
+ [build-system]
2
+ requires = ["setuptools>=69", "wheel"]
3
+ build-backend = "setuptools.build_meta"
4
+
5
+ [project]
6
+ name = "plc-comm-slmp"
7
+ version = "2.0.0"
8
+ description = "SLMP Connect Python: client library for MELSEC SLMP binary communication"
9
+ readme = "README.md"
10
+ requires-python = ">=3.10"
11
+ dependencies = []
12
+ authors = [{ name = "fa-yoshinobu" }]
13
+ license = "MIT"
14
+
15
+ license-files = ["LICENSE"]
16
+ keywords = ["plc-comm", "slmp", "melsec", "mitsubishi", "plc", "3e", "4e", "binary"]
17
+ classifiers = [
18
+ "Development Status :: 5 - Production/Stable",
19
+ "Intended Audience :: Developers",
20
+ "Programming Language :: Python :: 3",
21
+ "Programming Language :: Python :: 3.10",
22
+ "Programming Language :: Python :: 3.11",
23
+ "Programming Language :: Python :: 3.12",
24
+ "Programming Language :: Python :: 3.13",
25
+ "Programming Language :: Python :: 3.14",
26
+ "Topic :: Software Development :: Libraries :: Python Modules",
27
+ "Topic :: System :: Networking",
28
+ ]
29
+
30
+ [project.urls]
31
+ Homepage = "https://github.com/fa-yoshinobu/plc-comm-slmp-python"
32
+ Repository = "https://github.com/fa-yoshinobu/plc-comm-slmp-python"
33
+ Issues = "https://github.com/fa-yoshinobu/plc-comm-slmp-python/issues"
34
+
35
+ [project.optional-dependencies]
36
+ dev = [
37
+ "build>=1.2",
38
+ "mypy>=1.10",
39
+ "pre-commit>=3.7",
40
+ "pytest>=8.0",
41
+ "pytest-asyncio>=0.23",
42
+ "pytest-cov>=5.0",
43
+ "ruff>=0.6",
44
+ "twine>=5.1",
45
+ ]
46
+
47
+ [project.scripts]
48
+ slmp-connection-check = "slmp.cli:connection_check_main"
49
+ slmp-device-range-probe = "slmp.cli:device_range_probe_main"
50
+ slmp-register-boundary-probe = "slmp.cli:register_boundary_probe_main"
51
+ slmp-other-station-check = "slmp.cli:other_station_check_main"
52
+ slmp-open-items-recheck = "slmp.cli:open_items_recheck_main"
53
+ slmp-g-hg-extended-device-recheck = "slmp.cli:g_hg_extended_device_recheck_main"
54
+ slmp-g-hg-extended-device-coverage = "slmp.cli:g_hg_extended_device_coverage_main"
55
+ slmp-extended-device-recheck = "slmp.cli:extended_device_recheck_main"
56
+ slmp-pending-live-verification = "slmp.cli:pending_live_verification_main"
57
+ slmp-init-model-docs = "slmp.cli:init_model_docs_main"
58
+ slmp-manual-label-verification = "slmp.cli:manual_label_verification_main"
59
+ slmp-read-soak = "slmp.cli:read_soak_main"
60
+ slmp-mixed-read-load = "slmp.cli:mixed_read_load_main"
61
+ slmp-tcp-concurrency = "slmp.cli:tcp_concurrency_main"
62
+ slmp-regression-suite = "slmp.cli:regression_suite_main"
63
+
64
+ [tool.setuptools.packages.find]
65
+ include = ["slmp*"]
66
+ exclude = ["tests*", "scripts*", "internal_docs*"]
67
+
68
+ [tool.setuptools]
69
+ include-package-data = true
70
+ exclude-package-data = { "*" = ["TODO.md", ".pre-commit-config.yaml"] }
71
+
72
+ [tool.setuptools.package-data]
73
+ slmp = ["py.typed"]
74
+
75
+ [tool.ruff]
76
+ line-length = 120
77
+ target-version = "py310"
78
+
79
+ [tool.ruff.lint]
80
+ select = ["E", "F", "I", "B", "UP"]
81
+
82
+ [tool.ruff.lint.per-file-ignores]
83
+ "slmp/error_codes.py" = ["E501"]
84
+
85
+ [tool.ruff.lint.isort]
86
+ known-first-party = ["slmp"]
87
+
88
+ [tool.mypy]
89
+ files = ["slmp"]
90
+ warn_unused_configs = true
91
+ disallow_untyped_defs = true
92
+ check_untyped_defs = true
93
+ disallow_incomplete_defs = true
94
+ no_implicit_optional = true
95
+ warn_redundant_casts = true
96
+ warn_unused_ignores = true
97
+ warn_return_any = true
98
+ strict_equality = true
99
+
100
+ [tool.coverage.run]
101
+ source = ["slmp"]
102
+ branch = true
103
+
104
+ [tool.pytest.ini_options]
105
+ testpaths = ["tests"]
106
+ asyncio_mode = "auto"
107
+
108
+ [tool.coverage.report]
109
+ show_missing = true
110
+
111
+
@@ -0,0 +1,4 @@
1
+ [egg_info]
2
+ tag_build =
3
+ tag_date = 0
4
+