PyChOpMarg 3.1.1__tar.gz → 3.2.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.
Files changed (46) hide show
  1. {pychopmarg-3.1.1 → pychopmarg-3.2.0}/PKG-INFO +4 -1
  2. {pychopmarg-3.1.1 → pychopmarg-3.2.0}/pyproject.toml +28 -4
  3. {pychopmarg-3.1.1 → pychopmarg-3.2.0}/src/PyChOpMarg.egg-info/PKG-INFO +4 -1
  4. {pychopmarg-3.1.1 → pychopmarg-3.2.0}/src/PyChOpMarg.egg-info/SOURCES.txt +13 -1
  5. {pychopmarg-3.1.1 → pychopmarg-3.2.0}/src/PyChOpMarg.egg-info/requires.txt +3 -0
  6. {pychopmarg-3.1.1 → pychopmarg-3.2.0}/src/pychopmarg/cli.py +7 -4
  7. {pychopmarg-3.1.1 → pychopmarg-3.2.0}/src/pychopmarg/com.py +293 -202
  8. {pychopmarg-3.1.1 → pychopmarg-3.2.0}/src/pychopmarg/common.py +3 -2
  9. pychopmarg-3.2.0/src/pychopmarg/config/ieee_8023dj_d3p3.py +178 -0
  10. {pychopmarg-3.1.1 → pychopmarg-3.2.0}/src/pychopmarg/config/template.py +28 -15
  11. pychopmarg-3.2.0/src/pychopmarg/devmodel.py +168 -0
  12. {pychopmarg-3.1.1 → pychopmarg-3.2.0}/src/pychopmarg/excel.py +49 -33
  13. pychopmarg-3.2.0/src/pychopmarg/matlab.py +131 -0
  14. pychopmarg-3.2.0/src/pychopmarg/mfiles/pychopmarg_com.m +93 -0
  15. {pychopmarg-3.1.1 → pychopmarg-3.2.0}/src/pychopmarg/noise.py +42 -27
  16. {pychopmarg-3.1.1 → pychopmarg-3.2.0}/src/pychopmarg/optimize.py +48 -21
  17. {pychopmarg-3.1.1 → pychopmarg-3.2.0}/src/pychopmarg/plot.py +8 -11
  18. pychopmarg-3.2.0/src/pychopmarg/utility/__init__.py +6 -0
  19. {pychopmarg-3.1.1 → pychopmarg-3.2.0}/src/pychopmarg/utility/filter.py +5 -4
  20. {pychopmarg-3.1.1 → pychopmarg-3.2.0}/src/pychopmarg/utility/general.py +59 -9
  21. {pychopmarg-3.1.1 → pychopmarg-3.2.0}/src/pychopmarg/utility/jupyter.py +3 -4
  22. {pychopmarg-3.1.1 → pychopmarg-3.2.0}/src/pychopmarg/utility/probability.py +33 -8
  23. {pychopmarg-3.1.1 → pychopmarg-3.2.0}/src/pychopmarg/utility/sparams.py +8 -11
  24. pychopmarg-3.2.0/tests/test_cli.py +24 -0
  25. pychopmarg-3.2.0/tests/test_com.py +187 -0
  26. pychopmarg-3.2.0/tests/test_devmodel.py +199 -0
  27. pychopmarg-3.2.0/tests/test_excel.py +78 -0
  28. pychopmarg-3.2.0/tests/test_general.py +51 -0
  29. pychopmarg-3.2.0/tests/test_imports.py +23 -0
  30. pychopmarg-3.2.0/tests/test_matlab.py +114 -0
  31. pychopmarg-3.2.0/tests/test_probability.py +72 -0
  32. pychopmarg-3.2.0/tests/test_template.py +39 -0
  33. pychopmarg-3.1.1/src/pychopmarg/matlab.py +0 -55
  34. pychopmarg-3.1.1/src/pychopmarg/utility/__init__.py +0 -6
  35. {pychopmarg-3.1.1 → pychopmarg-3.2.0}/LICENSE +0 -0
  36. {pychopmarg-3.1.1 → pychopmarg-3.2.0}/README.md +0 -0
  37. {pychopmarg-3.1.1 → pychopmarg-3.2.0}/setup.cfg +0 -0
  38. {pychopmarg-3.1.1 → pychopmarg-3.2.0}/src/PyChOpMarg.egg-info/dependency_links.txt +0 -0
  39. {pychopmarg-3.1.1 → pychopmarg-3.2.0}/src/PyChOpMarg.egg-info/entry_points.txt +0 -0
  40. {pychopmarg-3.1.1 → pychopmarg-3.2.0}/src/PyChOpMarg.egg-info/top_level.txt +0 -0
  41. {pychopmarg-3.1.1 → pychopmarg-3.2.0}/src/pychopmarg/__init__.py +0 -0
  42. {pychopmarg-3.1.1 → pychopmarg-3.2.0}/src/pychopmarg/__main__.py +0 -0
  43. {pychopmarg-3.1.1 → pychopmarg-3.2.0}/src/pychopmarg/config/__init__.py +0 -0
  44. {pychopmarg-3.1.1 → pychopmarg-3.2.0}/src/pychopmarg/config/ieee_8023by.py +0 -0
  45. {pychopmarg-3.1.1 → pychopmarg-3.2.0}/src/pychopmarg/config/ieee_8023dj.py +0 -0
  46. {pychopmarg-3.1.1 → pychopmarg-3.2.0}/src/pychopmarg/py.typed +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: PyChOpMarg
3
- Version: 3.1.1
3
+ Version: 3.2.0
4
4
  Summary: Python implementation of COM, as per IEEE 802.3-22 Annex 93A/178A.
5
5
  Author-email: David Banas <capn.freako@gmail.com>
6
6
  License: BSD3
@@ -32,7 +32,10 @@ Description-Content-Type: text/markdown
32
32
  License-File: LICENSE
33
33
  Requires-Dist: click
34
34
  Requires-Dist: numpy
35
+ Requires-Dist: openpyxl
36
+ Requires-Dist: pandas
35
37
  Requires-Dist: scikit-rf>=0.29
38
+ Requires-Dist: xlrd
36
39
  Requires-Dist: typing_extensions
37
40
  Dynamic: license-file
38
41
 
@@ -9,7 +9,7 @@ build-backend = "setuptools.build_meta"
9
9
  [project]
10
10
  name = "PyChOpMarg"
11
11
  description = "Python implementation of COM, as per IEEE 802.3-22 Annex 93A/178A."
12
- version = "3.1.1"
12
+ version = "3.2.0"
13
13
  authors = [{name = "David Banas", email = "capn.freako@gmail.com"}]
14
14
  urls = { documentation = "https://pychopmarg.readthedocs.io/en/latest/"}
15
15
  readme = "README.md"
@@ -18,7 +18,10 @@ license = {text = "BSD3"}
18
18
  dependencies = [
19
19
  "click",
20
20
  "numpy",
21
+ "openpyxl", # COM configuration spreadsheets: *.xlsx
22
+ "pandas",
21
23
  "scikit-rf>=0.29",
24
+ "xlrd", # COM configuration spreadsheets: *.xls
22
25
  "typing_extensions", # SciKit-RF requires this, but doesn't include it itself.
23
26
  ]
24
27
  keywords=["com", "channel", "margin"]
@@ -52,6 +55,9 @@ pychopmarg = "pychopmarg.cli:cli"
52
55
  [tool.setuptools.packages.find]
53
56
  where = ["src"]
54
57
 
58
+ [tool.setuptools.package-data]
59
+ pychopmarg = ["mfiles/*.m"] # MATLAB code run via the MATLAB Engine API (see `pychopmarg.matlab`).
60
+
55
61
  [tool.black]
56
62
  line-length = 119
57
63
 
@@ -86,9 +92,6 @@ ignore = [
86
92
  "D107", # Missing docstring in __init__
87
93
  ]
88
94
 
89
- [tool.mypy]
90
- plugins = "numpy.typing.mypy_plugin"
91
-
92
95
  [[tool.mypy.overrides]]
93
96
  module = [
94
97
  "scipy.*",
@@ -100,3 +103,24 @@ module = [
100
103
  "traitsui.*"
101
104
  ]
102
105
  ignore_missing_imports = true
106
+
107
+ [dependency-groups]
108
+ dev = [
109
+ "jupyter>=1.1.1",
110
+ "jupyterlab-execute-time>=3.3.0",
111
+ "m2r2>=0.3.4",
112
+ "matlabengine>=25,<26",
113
+ "matplotlib>=3.10.9",
114
+ "mcp>=2.0.0",
115
+ "mypy>=1.19.1",
116
+ "pandas-stubs>=2.3.3.260113",
117
+ "pip>=25.3",
118
+ "pytest>=9.0.2",
119
+ "pytest-cov>=7.0.0",
120
+ "pytest-xdist>=3.8.0",
121
+ "scipy-stubs>=1.15.3.0",
122
+ "sphinx>=8.1.3",
123
+ "sphinx-rtd-theme>=3.1.0",
124
+ "types-pyyaml>=6.0.12.20250915",
125
+ "typing-extensions>=4.15.0",
126
+ ]
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: PyChOpMarg
3
- Version: 3.1.1
3
+ Version: 3.2.0
4
4
  Summary: Python implementation of COM, as per IEEE 802.3-22 Annex 93A/178A.
5
5
  Author-email: David Banas <capn.freako@gmail.com>
6
6
  License: BSD3
@@ -32,7 +32,10 @@ Description-Content-Type: text/markdown
32
32
  License-File: LICENSE
33
33
  Requires-Dist: click
34
34
  Requires-Dist: numpy
35
+ Requires-Dist: openpyxl
36
+ Requires-Dist: pandas
35
37
  Requires-Dist: scikit-rf>=0.29
38
+ Requires-Dist: xlrd
36
39
  Requires-Dist: typing_extensions
37
40
  Dynamic: license-file
38
41
 
@@ -12,6 +12,7 @@ src/pychopmarg/__main__.py
12
12
  src/pychopmarg/cli.py
13
13
  src/pychopmarg/com.py
14
14
  src/pychopmarg/common.py
15
+ src/pychopmarg/devmodel.py
15
16
  src/pychopmarg/excel.py
16
17
  src/pychopmarg/matlab.py
17
18
  src/pychopmarg/noise.py
@@ -21,10 +22,21 @@ src/pychopmarg/py.typed
21
22
  src/pychopmarg/config/__init__.py
22
23
  src/pychopmarg/config/ieee_8023by.py
23
24
  src/pychopmarg/config/ieee_8023dj.py
25
+ src/pychopmarg/config/ieee_8023dj_d3p3.py
24
26
  src/pychopmarg/config/template.py
27
+ src/pychopmarg/mfiles/pychopmarg_com.m
25
28
  src/pychopmarg/utility/__init__.py
26
29
  src/pychopmarg/utility/filter.py
27
30
  src/pychopmarg/utility/general.py
28
31
  src/pychopmarg/utility/jupyter.py
29
32
  src/pychopmarg/utility/probability.py
30
- src/pychopmarg/utility/sparams.py
33
+ src/pychopmarg/utility/sparams.py
34
+ tests/test_cli.py
35
+ tests/test_com.py
36
+ tests/test_devmodel.py
37
+ tests/test_excel.py
38
+ tests/test_general.py
39
+ tests/test_imports.py
40
+ tests/test_matlab.py
41
+ tests/test_probability.py
42
+ tests/test_template.py
@@ -1,4 +1,7 @@
1
1
  click
2
2
  numpy
3
+ openpyxl
4
+ pandas
3
5
  scikit-rf>=0.29
6
+ xlrd
4
7
  typing_extensions
@@ -20,7 +20,8 @@ from pychopmarg.utility.jupyter import execute_notebook, convert_notebook_to_htm
20
20
 
21
21
  # ToDo: Activate when new `PyChOpMargUI` package is ready.
22
22
  # @click.group(invoke_without_command=True, context_settings=dict(help_option_names=["-h", "--help"]))
23
- @click.group(invoke_without_command=False, context_settings=dict(help_option_names=["-h", "--help"]))
23
+ # @click.group(invoke_without_command=False, context_settings=dict(help_option_names=["-h", "--help"]))
24
+ @click.group(invoke_without_command=False, context_settings={"help_option_names": ["-h", "--help"]})
24
25
  @click.pass_context
25
26
  @click.version_option(version=__version__)
26
27
  def cli(ctx):
@@ -55,7 +56,8 @@ def cli(ctx):
55
56
  # theCOM.save_results(results)
56
57
 
57
58
 
58
- @cli.command(context_settings=dict(help_option_names=["-h", "--help"]))
59
+ # @cli.command(context_settings=dict(help_option_names=["-h", "--help"]))
60
+ @cli.command(context_settings={"help_option_names": ["-h", "--help"]})
59
61
  @click.argument("notebook-file", type=click.Path(exists=True))
60
62
  def run_notebook(notebook_file: Path):
61
63
  """
@@ -63,7 +65,9 @@ def run_notebook(notebook_file: Path):
63
65
  """
64
66
  execute_notebook(notebook_file)
65
67
 
66
- @cli.command(context_settings=dict(help_option_names=["-h", "--help"]))
68
+
69
+ # @cli.command(context_settings=dict(help_option_names=["-h", "--help"]))
70
+ @cli.command(context_settings={"help_option_names": ["-h", "--help"]})
67
71
  @click.argument("notebook-file", type=click.Path(exists=True))
68
72
  @click.option("--out-file", "-o", type=click.Path(), help="Override the output filename.")
69
73
  def convert_notebook(notebook_file: Path, out_file: Optional[Path] = None):
@@ -71,4 +75,3 @@ def convert_notebook(notebook_file: Path, out_file: Optional[Path] = None):
71
75
  Convert a Jupyter notebook to an HTML report, omitting all code.
72
76
  """
73
77
  convert_notebook_to_html(Path(notebook_file), results_path=out_file)
74
-