plexus-python-common 1.0.73__tar.gz → 1.0.74__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 (91) hide show
  1. {plexus_python_common-1.0.73 → plexus_python_common-1.0.74}/PKG-INFO +1 -1
  2. {plexus_python_common-1.0.73 → plexus_python_common-1.0.74}/src/plexus/common/utils/tagutils.py +18 -1
  3. {plexus_python_common-1.0.73 → plexus_python_common-1.0.74}/src/plexus_python_common.egg-info/PKG-INFO +1 -1
  4. {plexus_python_common-1.0.73 → plexus_python_common-1.0.74}/test/plexus_tests/common/utils/tagutils_test.py +3 -1
  5. {plexus_python_common-1.0.73 → plexus_python_common-1.0.74}/.editorconfig +0 -0
  6. {plexus_python_common-1.0.73 → plexus_python_common-1.0.74}/.github/workflows/pr.yml +0 -0
  7. {plexus_python_common-1.0.73 → plexus_python_common-1.0.74}/.github/workflows/push.yml +0 -0
  8. {plexus_python_common-1.0.73 → plexus_python_common-1.0.74}/.gitignore +0 -0
  9. {plexus_python_common-1.0.73 → plexus_python_common-1.0.74}/MANIFEST.in +0 -0
  10. {plexus_python_common-1.0.73 → plexus_python_common-1.0.74}/README.md +0 -0
  11. {plexus_python_common-1.0.73 → plexus_python_common-1.0.74}/VERSION +0 -0
  12. {plexus_python_common-1.0.73 → plexus_python_common-1.0.74}/pyproject.toml +0 -0
  13. {plexus_python_common-1.0.73 → plexus_python_common-1.0.74}/resources/unittest/jsonutils/dummy.0.jsonl +0 -0
  14. {plexus_python_common-1.0.73 → plexus_python_common-1.0.74}/resources/unittest/jsonutils/dummy.1.jsonl +0 -0
  15. {plexus_python_common-1.0.73 → plexus_python_common-1.0.74}/resources/unittest/jsonutils/dummy.2.jsonl +0 -0
  16. {plexus_python_common-1.0.73 → plexus_python_common-1.0.74}/resources/unittest/pathutils/0-dummy +0 -0
  17. {plexus_python_common-1.0.73 → plexus_python_common-1.0.74}/resources/unittest/pathutils/1-dummy +0 -0
  18. {plexus_python_common-1.0.73 → plexus_python_common-1.0.74}/resources/unittest/pathutils/2-dummy +0 -0
  19. {plexus_python_common-1.0.73 → plexus_python_common-1.0.74}/resources/unittest/pathutils/dummy.0.0.jsonl +0 -0
  20. {plexus_python_common-1.0.73 → plexus_python_common-1.0.74}/resources/unittest/pathutils/dummy.0.0.vol-0.jsonl +0 -0
  21. {plexus_python_common-1.0.73 → plexus_python_common-1.0.74}/resources/unittest/pathutils/dummy.0.jsonl +0 -0
  22. {plexus_python_common-1.0.73 → plexus_python_common-1.0.74}/resources/unittest/pathutils/dummy.1.1.jsonl +0 -0
  23. {plexus_python_common-1.0.73 → plexus_python_common-1.0.74}/resources/unittest/pathutils/dummy.1.1.vol-1.jsonl +0 -0
  24. {plexus_python_common-1.0.73 → plexus_python_common-1.0.74}/resources/unittest/pathutils/dummy.1.jsonl +0 -0
  25. {plexus_python_common-1.0.73 → plexus_python_common-1.0.74}/resources/unittest/pathutils/dummy.2.2.jsonl +0 -0
  26. {plexus_python_common-1.0.73 → plexus_python_common-1.0.74}/resources/unittest/pathutils/dummy.2.2.vol-2.jsonl +0 -0
  27. {plexus_python_common-1.0.73 → plexus_python_common-1.0.74}/resources/unittest/pathutils/dummy.2.jsonl +0 -0
  28. {plexus_python_common-1.0.73 → plexus_python_common-1.0.74}/resources/unittest/pathutils/dummy.csv.part0 +0 -0
  29. {plexus_python_common-1.0.73 → plexus_python_common-1.0.74}/resources/unittest/pathutils/dummy.csv.part1 +0 -0
  30. {plexus_python_common-1.0.73 → plexus_python_common-1.0.74}/resources/unittest/pathutils/dummy.csv.part2 +0 -0
  31. {plexus_python_common-1.0.73 → plexus_python_common-1.0.74}/resources/unittest/pathutils/dummy.txt +0 -0
  32. {plexus_python_common-1.0.73 → plexus_python_common-1.0.74}/resources/unittest/s3utils/dir.baz/file.bar.baz +0 -0
  33. {plexus_python_common-1.0.73 → plexus_python_common-1.0.74}/resources/unittest/s3utils/dir.baz/file.foo.bar +0 -0
  34. {plexus_python_common-1.0.73 → plexus_python_common-1.0.74}/resources/unittest/s3utils/dir.baz/file.foo.baz +0 -0
  35. {plexus_python_common-1.0.73 → plexus_python_common-1.0.74}/resources/unittest/s3utils/dir.foo/dir.foo.bar/dir.foo.bar.baz/file.foo.bar.baz +0 -0
  36. {plexus_python_common-1.0.73 → plexus_python_common-1.0.74}/resources/unittest/s3utils/dir.foo/dir.foo.bar/file.bar.baz +0 -0
  37. {plexus_python_common-1.0.73 → plexus_python_common-1.0.74}/resources/unittest/s3utils/dir.foo/dir.foo.bar/file.foo.bar +0 -0
  38. {plexus_python_common-1.0.73 → plexus_python_common-1.0.74}/resources/unittest/s3utils/dir.foo/dir.foo.bar/file.foo.baz +0 -0
  39. {plexus_python_common-1.0.73 → plexus_python_common-1.0.74}/resources/unittest/s3utils/dir.foo/file.bar +0 -0
  40. {plexus_python_common-1.0.73 → plexus_python_common-1.0.74}/resources/unittest/s3utils/dir.foo/file.baz +0 -0
  41. {plexus_python_common-1.0.73 → plexus_python_common-1.0.74}/resources/unittest/s3utils/dir.foo/file.foo +0 -0
  42. {plexus_python_common-1.0.73 → plexus_python_common-1.0.74}/resources/unittest/s3utils_archive/archive.compressed.zip +0 -0
  43. {plexus_python_common-1.0.73 → plexus_python_common-1.0.74}/resources/unittest/s3utils_archive/archive.uncompressed.zip +0 -0
  44. {plexus_python_common-1.0.73 → plexus_python_common-1.0.74}/setup.cfg +0 -0
  45. {plexus_python_common-1.0.73 → plexus_python_common-1.0.74}/setup.py +0 -0
  46. {plexus_python_common-1.0.73 → plexus_python_common-1.0.74}/src/plexus/common/__init__.py +0 -0
  47. {plexus_python_common-1.0.73 → plexus_python_common-1.0.74}/src/plexus/common/carto/OSMFile.py +0 -0
  48. {plexus_python_common-1.0.73 → plexus_python_common-1.0.74}/src/plexus/common/carto/OSMNode.py +0 -0
  49. {plexus_python_common-1.0.73 → plexus_python_common-1.0.74}/src/plexus/common/carto/OSMTags.py +0 -0
  50. {plexus_python_common-1.0.73 → plexus_python_common-1.0.74}/src/plexus/common/carto/OSMWay.py +0 -0
  51. {plexus_python_common-1.0.73 → plexus_python_common-1.0.74}/src/plexus/common/carto/__init__.py +0 -0
  52. {plexus_python_common-1.0.73 → plexus_python_common-1.0.74}/src/plexus/common/resources/__init__.py +0 -0
  53. {plexus_python_common-1.0.73 → plexus_python_common-1.0.74}/src/plexus/common/resources/tags/__init__.py +0 -0
  54. {plexus_python_common-1.0.73 → plexus_python_common-1.0.74}/src/plexus/common/resources/tags/unittest-1.0.0.tagset.yaml +0 -0
  55. {plexus_python_common-1.0.73 → plexus_python_common-1.0.74}/src/plexus/common/resources/tags/universal-1.0.0.tagset.yaml +0 -0
  56. {plexus_python_common-1.0.73 → plexus_python_common-1.0.74}/src/plexus/common/utils/__init__.py +0 -0
  57. {plexus_python_common-1.0.73 → plexus_python_common-1.0.74}/src/plexus/common/utils/apiutils.py +0 -0
  58. {plexus_python_common-1.0.73 → plexus_python_common-1.0.74}/src/plexus/common/utils/bagutils.py +0 -0
  59. {plexus_python_common-1.0.73 → plexus_python_common-1.0.74}/src/plexus/common/utils/config.py +0 -0
  60. {plexus_python_common-1.0.73 → plexus_python_common-1.0.74}/src/plexus/common/utils/datautils.py +0 -0
  61. {plexus_python_common-1.0.73 → plexus_python_common-1.0.74}/src/plexus/common/utils/dockerutils.py +0 -0
  62. {plexus_python_common-1.0.73 → plexus_python_common-1.0.74}/src/plexus/common/utils/gisutils.py +0 -0
  63. {plexus_python_common-1.0.73 → plexus_python_common-1.0.74}/src/plexus/common/utils/jsonutils.py +0 -0
  64. {plexus_python_common-1.0.73 → plexus_python_common-1.0.74}/src/plexus/common/utils/ormutils.py +0 -0
  65. {plexus_python_common-1.0.73 → plexus_python_common-1.0.74}/src/plexus/common/utils/pathutils.py +0 -0
  66. {plexus_python_common-1.0.73 → plexus_python_common-1.0.74}/src/plexus/common/utils/s3utils.py +0 -0
  67. {plexus_python_common-1.0.73 → plexus_python_common-1.0.74}/src/plexus/common/utils/sqlutils.py +0 -0
  68. {plexus_python_common-1.0.73 → plexus_python_common-1.0.74}/src/plexus/common/utils/strutils.py +0 -0
  69. {plexus_python_common-1.0.73 → plexus_python_common-1.0.74}/src/plexus/common/utils/testutils.py +0 -0
  70. {plexus_python_common-1.0.73 → plexus_python_common-1.0.74}/src/plexus_python_common.egg-info/SOURCES.txt +0 -0
  71. {plexus_python_common-1.0.73 → plexus_python_common-1.0.74}/src/plexus_python_common.egg-info/dependency_links.txt +0 -0
  72. {plexus_python_common-1.0.73 → plexus_python_common-1.0.74}/src/plexus_python_common.egg-info/not-zip-safe +0 -0
  73. {plexus_python_common-1.0.73 → plexus_python_common-1.0.74}/src/plexus_python_common.egg-info/requires.txt +0 -0
  74. {plexus_python_common-1.0.73 → plexus_python_common-1.0.74}/src/plexus_python_common.egg-info/top_level.txt +0 -0
  75. {plexus_python_common-1.0.73 → plexus_python_common-1.0.74}/test/plexus_tests/__init__.py +0 -0
  76. {plexus_python_common-1.0.73 → plexus_python_common-1.0.74}/test/plexus_tests/common/__init__.py +0 -0
  77. {plexus_python_common-1.0.73 → plexus_python_common-1.0.74}/test/plexus_tests/common/carto/__init__.py +0 -0
  78. {plexus_python_common-1.0.73 → plexus_python_common-1.0.74}/test/plexus_tests/common/carto/osm_file_test.py +0 -0
  79. {plexus_python_common-1.0.73 → plexus_python_common-1.0.74}/test/plexus_tests/common/carto/osm_tags_test.py +0 -0
  80. {plexus_python_common-1.0.73 → plexus_python_common-1.0.74}/test/plexus_tests/common/utils/__init__.py +0 -0
  81. {plexus_python_common-1.0.73 → plexus_python_common-1.0.74}/test/plexus_tests/common/utils/bagutils_test.py +0 -0
  82. {plexus_python_common-1.0.73 → plexus_python_common-1.0.74}/test/plexus_tests/common/utils/datautils_test.py +0 -0
  83. {plexus_python_common-1.0.73 → plexus_python_common-1.0.74}/test/plexus_tests/common/utils/dockerutils_test.py +0 -0
  84. {plexus_python_common-1.0.73 → plexus_python_common-1.0.74}/test/plexus_tests/common/utils/gisutils_test.py +0 -0
  85. {plexus_python_common-1.0.73 → plexus_python_common-1.0.74}/test/plexus_tests/common/utils/jsonutils_test.py +0 -0
  86. {plexus_python_common-1.0.73 → plexus_python_common-1.0.74}/test/plexus_tests/common/utils/ormutils_test.py +0 -0
  87. {plexus_python_common-1.0.73 → plexus_python_common-1.0.74}/test/plexus_tests/common/utils/pathutils_test.py +0 -0
  88. {plexus_python_common-1.0.73 → plexus_python_common-1.0.74}/test/plexus_tests/common/utils/s3utils_test.py +0 -0
  89. {plexus_python_common-1.0.73 → plexus_python_common-1.0.74}/test/plexus_tests/common/utils/strutils_test.py +0 -0
  90. {plexus_python_common-1.0.73 → plexus_python_common-1.0.74}/test/plexus_tests/common/utils/testutils_test.py +0 -0
  91. {plexus_python_common-1.0.73 → plexus_python_common-1.0.74}/test/testenv.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: plexus-python-common
3
- Version: 1.0.73
3
+ Version: 1.0.74
4
4
  Classifier: Programming Language :: Python :: 3
5
5
  Classifier: Programming Language :: Python :: 3.12
6
6
  Classifier: Programming Language :: Python :: 3.13
@@ -38,6 +38,8 @@ from plexus.common.utils.ormutils import clone_sequence_model_instance, make_bas
38
38
  from plexus.common.utils.sqlutils import escape_sql_like
39
39
 
40
40
  __all__ = [
41
+ "versioned_identifier",
42
+ "split_versioned_identifier",
41
43
  "RichDesc",
42
44
  "Tag",
43
45
  "BoundTag",
@@ -60,6 +62,21 @@ __all__ = [
60
62
  ]
61
63
 
62
64
 
65
+ def versioned_identifier(identifier: str | None, version: str | None) -> str | None:
66
+ if identifier is None or version is None:
67
+ return identifier
68
+ return f"{identifier}@{version}"
69
+
70
+
71
+ def split_versioned_identifier(s: str | None) -> tuple[str | None, str | None]:
72
+ if s is None:
73
+ return None, None
74
+ if "@" not in s:
75
+ return s, None
76
+ identifier, version = s.rsplit("@", 1)
77
+ return identifier, version
78
+
79
+
63
80
  @dataclasses.dataclass(frozen=True, eq=True, order=True)
64
81
  class RichDesc(object):
65
82
  type: str
@@ -331,7 +348,7 @@ def predefined_tagsets() -> dict[str, Tagset]:
331
348
  else:
332
349
  latest_targets[tagset.namespace] = (version, tagset)
333
350
 
334
- tagsets[f"{tagset.namespace}:{tagset.version}"] = tagset
351
+ tagsets[versioned_identifier(tagset.namespace, tagset.version)] = tagset
335
352
 
336
353
  for _, tagset in latest_targets.values():
337
354
  tagsets[tagset.namespace] = tagset
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: plexus-python-common
3
- Version: 1.0.73
3
+ Version: 1.0.74
4
4
  Classifier: Programming Language :: Python :: 3
5
5
  Classifier: Programming Language :: Python :: 3.12
6
6
  Classifier: Programming Language :: Python :: 3.13
@@ -13,6 +13,7 @@ from plexus.common.utils.tagutils import MutableTagset, Tag, TagCache, Tagset
13
13
  from plexus.common.utils.tagutils import populate_clip_ranges
14
14
  from plexus.common.utils.tagutils import predefined_tagsets, render_tagset_markdown_readme
15
15
  from plexus.common.utils.tagutils import tag_cache_file_path
16
+ from plexus.common.utils.tagutils import versioned_identifier
16
17
 
17
18
 
18
19
  @ddt.ddt
@@ -46,7 +47,8 @@ class TagUtilsTest(unittest.TestCase):
46
47
 
47
48
  print(markdown)
48
49
 
49
- self.assertEqual(predefined_tagsets().get("unittest"), predefined_tagsets().get("unittest:1.0.0"))
50
+ self.assertEqual(predefined_tagsets().get("unittest"),
51
+ predefined_tagsets().get(versioned_identifier("unittest", "1.0.0")))
50
52
 
51
53
  data_tag_validate = [
52
54
  ("level_1_tag", {"dummy_property": "dummy_value"}, True,),