plexus-python-common 1.0.42__tar.gz → 1.0.43__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 (89) hide show
  1. {plexus_python_common-1.0.42 → plexus_python_common-1.0.43}/PKG-INFO +3 -1
  2. {plexus_python_common-1.0.42 → plexus_python_common-1.0.43}/pyproject.toml +4 -0
  3. plexus_python_common-1.0.43/src/plexus/common/resources/tags/__init__.py +35 -0
  4. plexus_python_common-1.0.43/src/plexus/common/resources/tags/universal.tagset.yaml +911 -0
  5. {plexus_python_common-1.0.42 → plexus_python_common-1.0.43}/src/plexus/common/utils/datautils.py +71 -14
  6. {plexus_python_common-1.0.42 → plexus_python_common-1.0.43}/src/plexus_python_common.egg-info/PKG-INFO +3 -1
  7. {plexus_python_common-1.0.42 → plexus_python_common-1.0.43}/src/plexus_python_common.egg-info/requires.txt +2 -0
  8. {plexus_python_common-1.0.42 → plexus_python_common-1.0.43}/test/plexus_tests/common/utils/datautils_test.py +6 -1
  9. plexus_python_common-1.0.42/src/plexus/common/resources/tags/__init__.py +0 -20
  10. plexus_python_common-1.0.42/src/plexus/common/resources/tags/universal.tagset.yaml +0 -176
  11. {plexus_python_common-1.0.42 → plexus_python_common-1.0.43}/.editorconfig +0 -0
  12. {plexus_python_common-1.0.42 → plexus_python_common-1.0.43}/.github/workflows/pr.yml +0 -0
  13. {plexus_python_common-1.0.42 → plexus_python_common-1.0.43}/.github/workflows/push.yml +0 -0
  14. {plexus_python_common-1.0.42 → plexus_python_common-1.0.43}/.gitignore +0 -0
  15. {plexus_python_common-1.0.42 → plexus_python_common-1.0.43}/MANIFEST.in +0 -0
  16. {plexus_python_common-1.0.42 → plexus_python_common-1.0.43}/README.md +0 -0
  17. {plexus_python_common-1.0.42 → plexus_python_common-1.0.43}/VERSION +0 -0
  18. {plexus_python_common-1.0.42 → plexus_python_common-1.0.43}/resources/unittest/jsonutils/dummy.0.jsonl +0 -0
  19. {plexus_python_common-1.0.42 → plexus_python_common-1.0.43}/resources/unittest/jsonutils/dummy.1.jsonl +0 -0
  20. {plexus_python_common-1.0.42 → plexus_python_common-1.0.43}/resources/unittest/jsonutils/dummy.2.jsonl +0 -0
  21. {plexus_python_common-1.0.42 → plexus_python_common-1.0.43}/resources/unittest/s3utils/dir.baz/file.bar.baz +0 -0
  22. {plexus_python_common-1.0.42 → plexus_python_common-1.0.43}/resources/unittest/s3utils/dir.baz/file.foo.bar +0 -0
  23. {plexus_python_common-1.0.42 → plexus_python_common-1.0.43}/resources/unittest/s3utils/dir.baz/file.foo.baz +0 -0
  24. {plexus_python_common-1.0.42 → plexus_python_common-1.0.43}/resources/unittest/s3utils/dir.foo/dir.foo.bar/dir.foo.bar.baz/file.foo.bar.baz +0 -0
  25. {plexus_python_common-1.0.42 → plexus_python_common-1.0.43}/resources/unittest/s3utils/dir.foo/dir.foo.bar/file.bar.baz +0 -0
  26. {plexus_python_common-1.0.42 → plexus_python_common-1.0.43}/resources/unittest/s3utils/dir.foo/dir.foo.bar/file.foo.bar +0 -0
  27. {plexus_python_common-1.0.42 → plexus_python_common-1.0.43}/resources/unittest/s3utils/dir.foo/dir.foo.bar/file.foo.baz +0 -0
  28. {plexus_python_common-1.0.42 → plexus_python_common-1.0.43}/resources/unittest/s3utils/dir.foo/file.bar +0 -0
  29. {plexus_python_common-1.0.42 → plexus_python_common-1.0.43}/resources/unittest/s3utils/dir.foo/file.baz +0 -0
  30. {plexus_python_common-1.0.42 → plexus_python_common-1.0.43}/resources/unittest/s3utils/dir.foo/file.foo +0 -0
  31. {plexus_python_common-1.0.42 → plexus_python_common-1.0.43}/resources/unittest/s3utils_archive/archive.compressed.zip +0 -0
  32. {plexus_python_common-1.0.42 → plexus_python_common-1.0.43}/resources/unittest/s3utils_archive/archive.uncompressed.zip +0 -0
  33. {plexus_python_common-1.0.42 → plexus_python_common-1.0.43}/resources/unittest/shutils/0-dummy +0 -0
  34. {plexus_python_common-1.0.42 → plexus_python_common-1.0.43}/resources/unittest/shutils/1-dummy +0 -0
  35. {plexus_python_common-1.0.42 → plexus_python_common-1.0.43}/resources/unittest/shutils/2-dummy +0 -0
  36. {plexus_python_common-1.0.42 → plexus_python_common-1.0.43}/resources/unittest/shutils/dummy.0.0.jsonl +0 -0
  37. {plexus_python_common-1.0.42 → plexus_python_common-1.0.43}/resources/unittest/shutils/dummy.0.0.vol-0.jsonl +0 -0
  38. {plexus_python_common-1.0.42 → plexus_python_common-1.0.43}/resources/unittest/shutils/dummy.0.jsonl +0 -0
  39. {plexus_python_common-1.0.42 → plexus_python_common-1.0.43}/resources/unittest/shutils/dummy.1.1.jsonl +0 -0
  40. {plexus_python_common-1.0.42 → plexus_python_common-1.0.43}/resources/unittest/shutils/dummy.1.1.vol-1.jsonl +0 -0
  41. {plexus_python_common-1.0.42 → plexus_python_common-1.0.43}/resources/unittest/shutils/dummy.1.jsonl +0 -0
  42. {plexus_python_common-1.0.42 → plexus_python_common-1.0.43}/resources/unittest/shutils/dummy.2.2.jsonl +0 -0
  43. {plexus_python_common-1.0.42 → plexus_python_common-1.0.43}/resources/unittest/shutils/dummy.2.2.vol-2.jsonl +0 -0
  44. {plexus_python_common-1.0.42 → plexus_python_common-1.0.43}/resources/unittest/shutils/dummy.2.jsonl +0 -0
  45. {plexus_python_common-1.0.42 → plexus_python_common-1.0.43}/resources/unittest/shutils/dummy.csv.part0 +0 -0
  46. {plexus_python_common-1.0.42 → plexus_python_common-1.0.43}/resources/unittest/shutils/dummy.csv.part1 +0 -0
  47. {plexus_python_common-1.0.42 → plexus_python_common-1.0.43}/resources/unittest/shutils/dummy.csv.part2 +0 -0
  48. {plexus_python_common-1.0.42 → plexus_python_common-1.0.43}/resources/unittest/shutils/dummy.txt +0 -0
  49. {plexus_python_common-1.0.42 → plexus_python_common-1.0.43}/setup.cfg +0 -0
  50. {plexus_python_common-1.0.42 → plexus_python_common-1.0.43}/setup.py +0 -0
  51. {plexus_python_common-1.0.42 → plexus_python_common-1.0.43}/src/plexus/common/__init__.py +0 -0
  52. {plexus_python_common-1.0.42 → plexus_python_common-1.0.43}/src/plexus/common/carto/OSMFile.py +0 -0
  53. {plexus_python_common-1.0.42 → plexus_python_common-1.0.43}/src/plexus/common/carto/OSMNode.py +0 -0
  54. {plexus_python_common-1.0.42 → plexus_python_common-1.0.43}/src/plexus/common/carto/OSMTags.py +0 -0
  55. {plexus_python_common-1.0.42 → plexus_python_common-1.0.43}/src/plexus/common/carto/OSMWay.py +0 -0
  56. {plexus_python_common-1.0.42 → plexus_python_common-1.0.43}/src/plexus/common/carto/__init__.py +0 -0
  57. {plexus_python_common-1.0.42 → plexus_python_common-1.0.43}/src/plexus/common/pose.py +0 -0
  58. {plexus_python_common-1.0.42 → plexus_python_common-1.0.43}/src/plexus/common/proj.py +0 -0
  59. {plexus_python_common-1.0.42 → plexus_python_common-1.0.43}/src/plexus/common/resources/__init__.py +0 -0
  60. {plexus_python_common-1.0.42 → plexus_python_common-1.0.43}/src/plexus/common/utils/__init__.py +0 -0
  61. {plexus_python_common-1.0.42 → plexus_python_common-1.0.43}/src/plexus/common/utils/apiutils.py +0 -0
  62. {plexus_python_common-1.0.42 → plexus_python_common-1.0.43}/src/plexus/common/utils/bagutils.py +0 -0
  63. {plexus_python_common-1.0.42 → plexus_python_common-1.0.43}/src/plexus/common/utils/config.py +0 -0
  64. {plexus_python_common-1.0.42 → plexus_python_common-1.0.43}/src/plexus/common/utils/dockerutils.py +0 -0
  65. {plexus_python_common-1.0.42 → plexus_python_common-1.0.43}/src/plexus/common/utils/jsonutils.py +0 -0
  66. {plexus_python_common-1.0.42 → plexus_python_common-1.0.43}/src/plexus/common/utils/ormutils.py +0 -0
  67. {plexus_python_common-1.0.42 → plexus_python_common-1.0.43}/src/plexus/common/utils/s3utils.py +0 -0
  68. {plexus_python_common-1.0.42 → plexus_python_common-1.0.43}/src/plexus/common/utils/shutils.py +0 -0
  69. {plexus_python_common-1.0.42 → plexus_python_common-1.0.43}/src/plexus/common/utils/sqlutils.py +0 -0
  70. {plexus_python_common-1.0.42 → plexus_python_common-1.0.43}/src/plexus/common/utils/strutils.py +0 -0
  71. {plexus_python_common-1.0.42 → plexus_python_common-1.0.43}/src/plexus/common/utils/testutils.py +0 -0
  72. {plexus_python_common-1.0.42 → plexus_python_common-1.0.43}/src/plexus_python_common.egg-info/SOURCES.txt +0 -0
  73. {plexus_python_common-1.0.42 → plexus_python_common-1.0.43}/src/plexus_python_common.egg-info/dependency_links.txt +0 -0
  74. {plexus_python_common-1.0.42 → plexus_python_common-1.0.43}/src/plexus_python_common.egg-info/not-zip-safe +0 -0
  75. {plexus_python_common-1.0.42 → plexus_python_common-1.0.43}/src/plexus_python_common.egg-info/top_level.txt +0 -0
  76. {plexus_python_common-1.0.42 → plexus_python_common-1.0.43}/test/plexus_test.py +0 -0
  77. {plexus_python_common-1.0.42 → plexus_python_common-1.0.43}/test/plexus_tests/__init__.py +0 -0
  78. {plexus_python_common-1.0.42 → plexus_python_common-1.0.43}/test/plexus_tests/common/carto/osm_file_test.py +0 -0
  79. {plexus_python_common-1.0.42 → plexus_python_common-1.0.43}/test/plexus_tests/common/carto/osm_tags_test.py +0 -0
  80. {plexus_python_common-1.0.42 → plexus_python_common-1.0.43}/test/plexus_tests/common/pose_test.py +0 -0
  81. {plexus_python_common-1.0.42 → plexus_python_common-1.0.43}/test/plexus_tests/common/proj_test.py +0 -0
  82. {plexus_python_common-1.0.42 → plexus_python_common-1.0.43}/test/plexus_tests/common/utils/bagutils_test.py +0 -0
  83. {plexus_python_common-1.0.42 → plexus_python_common-1.0.43}/test/plexus_tests/common/utils/dockerutils_test.py +0 -0
  84. {plexus_python_common-1.0.42 → plexus_python_common-1.0.43}/test/plexus_tests/common/utils/jsonutils_test.py +0 -0
  85. {plexus_python_common-1.0.42 → plexus_python_common-1.0.43}/test/plexus_tests/common/utils/ormutils_test.py +0 -0
  86. {plexus_python_common-1.0.42 → plexus_python_common-1.0.43}/test/plexus_tests/common/utils/s3utils_test.py +0 -0
  87. {plexus_python_common-1.0.42 → plexus_python_common-1.0.43}/test/plexus_tests/common/utils/shutils_test.py +0 -0
  88. {plexus_python_common-1.0.42 → plexus_python_common-1.0.43}/test/plexus_tests/common/utils/strutils_test.py +0 -0
  89. {plexus_python_common-1.0.42 → plexus_python_common-1.0.43}/test/plexus_tests/common/utils/testutils_test.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: plexus-python-common
3
- Version: 1.0.42
3
+ Version: 1.0.43
4
4
  Classifier: Programming Language :: Python :: 3
5
5
  Classifier: Programming Language :: Python :: 3.12
6
6
  Classifier: Programming Language :: Python :: 3.13
@@ -11,7 +11,9 @@ Requires-Dist: boto3<1.42,>=1.41
11
11
  Requires-Dist: boto3-stubs[s3]<1.42,>=1.41
12
12
  Requires-Dist: docker>=7.1
13
13
  Requires-Dist: fsspec>=2025.10
14
+ Requires-Dist: jinja2>=3.0
14
15
  Requires-Dist: lxml>=6.0
16
+ Requires-Dist: markdown-it-py>=4.0
15
17
  Requires-Dist: numpy>=2.3
16
18
  Requires-Dist: pydantic>=2.8
17
19
  Requires-Dist: pygeodesy>=24.10
@@ -13,7 +13,9 @@ dev = [
13
13
  "boto3-stubs[s3]>=1.41,<1.42",
14
14
  "docker>=7.1",
15
15
  "fsspec>=2025.10",
16
+ "jinja2>=3.0",
16
17
  "lxml>=6.0",
18
+ "markdown-it-py>=4.0",
17
19
  "numpy>=2.3",
18
20
  "pydantic>=2.8",
19
21
  "pygeodesy>=24.10",
@@ -57,7 +59,9 @@ dependencies = [
57
59
  "boto3-stubs[s3]>=1.41,<1.42",
58
60
  "docker>=7.1",
59
61
  "fsspec>=2025.10",
62
+ "jinja2>=3.0",
60
63
  "lxml>=6.0",
64
+ "markdown-it-py>=4.0",
61
65
  "numpy>=2.3",
62
66
  "pydantic>=2.8",
63
67
  "pygeodesy>=24.10",
@@ -0,0 +1,35 @@
1
+ from pathlib import Path
2
+
3
+ import markdown_it as mdit
4
+ import yaml
5
+ from iker.common.utils.funcutils import singleton
6
+ from iker.common.utils.jsonutils import JsonObject
7
+
8
+ __all__ = [
9
+ "predefined_tagset_specs",
10
+ ]
11
+
12
+
13
+ @singleton
14
+ def predefined_tagset_specs() -> list[tuple[Path, JsonObject]]:
15
+ # Register simple constructors for !markdown tags yaml.load can parse them.
16
+ def markdown_constructor(loader: yaml.Loader, node: yaml.ScalarNode | yaml.MappingNode):
17
+ text = loader.construct_scalar(node)
18
+ tokens = mdit.MarkdownIt().parse(text)
19
+ for token in tokens:
20
+ if token.type.startswith("heading"):
21
+ raise ValueError("markdown content in tagset specifications cannot contain headings.")
22
+ return {
23
+ "type": "markdown",
24
+ "text": text,
25
+ }
26
+
27
+ yaml.SafeLoader.add_constructor("!markdown", markdown_constructor)
28
+
29
+ def load():
30
+ root = Path(__file__).parent
31
+ for path in root.glob("**/*.tagset.yaml"):
32
+ text = path.read_text(encoding="utf-8")
33
+ yield path, yaml.load(text, yaml.SafeLoader)
34
+
35
+ return list(load())