jupytergis-core 0.4.5__py3-none-any.whl → 0.5.0__py3-none-any.whl

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 (115) hide show
  1. jupytergis_core/_version.py +1 -1
  2. jupytergis_core/jgis_ydoc.py +13 -1
  3. jupytergis_core/schema/__init__.py +24 -0
  4. jupytergis_core/schema/interfaces/__init__.py +3 -0
  5. jupytergis_core/schema/interfaces/export/__init__.py +3 -0
  6. jupytergis_core/schema/interfaces/export/exportGeojson.py +18 -0
  7. jupytergis_core/schema/interfaces/export/exportGeotiff.py +28 -0
  8. jupytergis_core/schema/interfaces/geojson.py +502 -0
  9. jupytergis_core/schema/interfaces/geojsonsource.py +20 -0
  10. jupytergis_core/schema/interfaces/processing/__init__.py +3 -0
  11. jupytergis_core/schema/interfaces/processing/buffer.py +23 -0
  12. jupytergis_core/schema/interfaces/processing/dissolve.py +24 -0
  13. jupytergis_core/schema/interfaces/project/__init__.py +3 -0
  14. jupytergis_core/schema/interfaces/project/jgis.py +136 -0
  15. jupytergis_core/schema/interfaces/project/layers/__init__.py +3 -0
  16. jupytergis_core/schema/interfaces/project/layers/heatmapLayer.py +30 -0
  17. jupytergis_core/schema/interfaces/project/layers/hillshadeLayer.py +19 -0
  18. jupytergis_core/schema/interfaces/project/layers/imageLayer.py +19 -0
  19. jupytergis_core/schema/interfaces/project/layers/rasterlayer.py +19 -0
  20. jupytergis_core/schema/interfaces/project/layers/vectorTileLayer.py +30 -0
  21. jupytergis_core/schema/interfaces/project/layers/vectorlayer.py +64 -0
  22. jupytergis_core/schema/interfaces/project/layers/webGlLayer.py +57 -0
  23. jupytergis_core/schema/interfaces/project/sources/__init__.py +3 -0
  24. jupytergis_core/schema/interfaces/project/sources/geoTiffSource.py +27 -0
  25. jupytergis_core/schema/interfaces/project/sources/imageSource.py +29 -0
  26. jupytergis_core/schema/interfaces/project/sources/rasterDemSource.py +23 -0
  27. jupytergis_core/schema/interfaces/project/sources/rastersource.py +36 -0
  28. jupytergis_core/schema/interfaces/project/sources/shapefileSource.py +31 -0
  29. jupytergis_core/schema/interfaces/project/sources/vectortilesource.py +27 -0
  30. jupytergis_core/schema/interfaces/project/sources/videoSource.py +30 -0
  31. {jupytergis_core-0.4.5.data → jupytergis_core-0.5.0.data}/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/package.json +7 -5
  32. jupytergis_core-0.5.0.data/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/schemas/@jupytergis/jupytergis-core/jupytergis-settings.json +13 -0
  33. jupytergis_core-0.5.0.data/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/schemas/@jupytergis/jupytergis-core/package.json.orig +123 -0
  34. jupytergis_core-0.5.0.data/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/377.2ba30d7a93a2a2819b1b.js +1 -0
  35. jupytergis_core-0.4.5.data/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/729.6eae404678a803e58788.js → jupytergis_core-0.5.0.data/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/729.2540a8113c71e8eb28ef.js +2 -2
  36. jupytergis_core-0.5.0.data/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/893.0bf9ee057c7e4666c364.js +1 -0
  37. jupytergis_core-0.5.0.data/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/991.13deb14ad0c10be40859.js +1 -0
  38. jupytergis_core-0.5.0.data/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/remoteEntry.6e9db18c72727800e9ea.js +1 -0
  39. {jupytergis_core-0.4.5.data → jupytergis_core-0.5.0.data}/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/third-party-licenses.json +4 -4
  40. {jupytergis_core-0.4.5.dist-info → jupytergis_core-0.5.0.dist-info}/METADATA +1 -1
  41. jupytergis_core-0.5.0.dist-info/RECORD +112 -0
  42. jupytergis_core-0.4.5.data/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/31.ab2fa4c30bddf5b8e6b6.js +0 -1
  43. jupytergis_core-0.4.5.data/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/656.c0f842aa97967d6d91f2.js +0 -1
  44. jupytergis_core-0.4.5.data/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/991.443bcba88f6a112c4b9e.js +0 -1
  45. jupytergis_core-0.4.5.data/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/remoteEntry.2155bee6ff3895543404.js +0 -1
  46. jupytergis_core-0.4.5.dist-info/RECORD +0 -82
  47. {jupytergis_core-0.4.5.data → jupytergis_core-0.5.0.data}/data/etc/jupyter/jupyter_server_config.d/jupytergis_core.json +0 -0
  48. {jupytergis_core-0.4.5.data → jupytergis_core-0.5.0.data}/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/026680ab0cd1523edc87.png +0 -0
  49. {jupytergis_core-0.4.5.data → jupytergis_core-0.5.0.data}/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/02ff7d503bbd90b21fc4.png +0 -0
  50. {jupytergis_core-0.4.5.data → jupytergis_core-0.5.0.data}/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/062a9554f6b4caac9713.png +0 -0
  51. {jupytergis_core-0.4.5.data → jupytergis_core-0.5.0.data}/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/064f37cecb8130ad66e8.png +0 -0
  52. {jupytergis_core-0.4.5.data → jupytergis_core-0.5.0.data}/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/08da2741746ddab81d04.png +0 -0
  53. {jupytergis_core-0.4.5.data → jupytergis_core-0.5.0.data}/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/0c6a0352b82839119f95.png +0 -0
  54. {jupytergis_core-0.4.5.data → jupytergis_core-0.5.0.data}/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/13c485bb93f5567f02fd.png +0 -0
  55. {jupytergis_core-0.4.5.data → jupytergis_core-0.5.0.data}/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/1474207a6b3ca1001e78.png +0 -0
  56. {jupytergis_core-0.4.5.data → jupytergis_core-0.5.0.data}/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/14b98240613d5256c621.png +0 -0
  57. {jupytergis_core-0.4.5.data → jupytergis_core-0.5.0.data}/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/154.0d16fbe1d1182d138b2c.js +0 -0
  58. {jupytergis_core-0.4.5.data → jupytergis_core-0.5.0.data}/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/1b97ea0f2b3af717cffa.png +0 -0
  59. {jupytergis_core-0.4.5.data → jupytergis_core-0.5.0.data}/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/1d440270da19a2f22fee.png +0 -0
  60. {jupytergis_core-0.4.5.data → jupytergis_core-0.5.0.data}/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/1ed164e010f3c0306d15.png +0 -0
  61. {jupytergis_core-0.4.5.data → jupytergis_core-0.5.0.data}/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/2218dfba22fc2b08e948.png +0 -0
  62. {jupytergis_core-0.4.5.data → jupytergis_core-0.5.0.data}/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/234.2f0fc49f516ad354aa18.js +0 -0
  63. {jupytergis_core-0.4.5.data → jupytergis_core-0.5.0.data}/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/27.aea9e291ba3dd16790fb.js +0 -0
  64. {jupytergis_core-0.4.5.data → jupytergis_core-0.5.0.data}/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/27.aea9e291ba3dd16790fb.js.LICENSE.txt +0 -0
  65. {jupytergis_core-0.4.5.data → jupytergis_core-0.5.0.data}/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/2ab791b60c4058e664f8.png +0 -0
  66. {jupytergis_core-0.4.5.data → jupytergis_core-0.5.0.data}/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/2b24b6a745c11511f055.png +0 -0
  67. {jupytergis_core-0.4.5.data → jupytergis_core-0.5.0.data}/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/2d676bc0a01c2cd2fccb.png +0 -0
  68. {jupytergis_core-0.4.5.data → jupytergis_core-0.5.0.data}/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/2f02309ea499725612ea.png +0 -0
  69. {jupytergis_core-0.4.5.data → jupytergis_core-0.5.0.data}/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/32c7a73662cceb5bb1d7.png +0 -0
  70. {jupytergis_core-0.4.5.data → jupytergis_core-0.5.0.data}/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/350eec4ce9ae4bc10bca.wasm +0 -0
  71. {jupytergis_core-0.4.5.data → jupytergis_core-0.5.0.data}/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/363ca7c5f78deb6fd033.png +0 -0
  72. {jupytergis_core-0.4.5.data → jupytergis_core-0.5.0.data}/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/376.58a6410b7089dea5b0d5.js +0 -0
  73. {jupytergis_core-0.4.5.data → jupytergis_core-0.5.0.data}/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/3ae0bf244442de7efc35.png +0 -0
  74. {jupytergis_core-0.4.5.data → jupytergis_core-0.5.0.data}/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/3d48be10ffea86eb15de.png +0 -0
  75. {jupytergis_core-0.4.5.data → jupytergis_core-0.5.0.data}/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/407.da5d00862f4879fe3c9c.js +0 -0
  76. {jupytergis_core-0.4.5.data → jupytergis_core-0.5.0.data}/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/415edc3fa381260cf31e.png +0 -0
  77. {jupytergis_core-0.4.5.data → jupytergis_core-0.5.0.data}/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/42cbddf5e883673bc4e2.png +0 -0
  78. {jupytergis_core-0.4.5.data → jupytergis_core-0.5.0.data}/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/432.df2bee6966bdd5a48317.js +0 -0
  79. {jupytergis_core-0.4.5.data → jupytergis_core-0.5.0.data}/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/472.b2ea9ebc35d5ad4e1fcc.js +0 -0
  80. {jupytergis_core-0.4.5.data → jupytergis_core-0.5.0.data}/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/527ef171d5df15dc7da5.png +0 -0
  81. {jupytergis_core-0.4.5.data → jupytergis_core-0.5.0.data}/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/542.477a73b8682de0e8d45e.js +0 -0
  82. {jupytergis_core-0.4.5.data → jupytergis_core-0.5.0.data}/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/552.3f267df0d8b2c9ef2c40.js +0 -0
  83. {jupytergis_core-0.4.5.data → jupytergis_core-0.5.0.data}/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/555.be80e60305924af2e139.js +0 -0
  84. {jupytergis_core-0.4.5.data → jupytergis_core-0.5.0.data}/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/5bb02252f243f8c7494f.png +0 -0
  85. {jupytergis_core-0.4.5.data → jupytergis_core-0.5.0.data}/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/5d181edc3c046e1454a1.png +0 -0
  86. {jupytergis_core-0.4.5.data → jupytergis_core-0.5.0.data}/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/5f32ad48aefe00e51312.png +0 -0
  87. {jupytergis_core-0.4.5.data → jupytergis_core-0.5.0.data}/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/618.86523276f857e0a3362e.js +0 -0
  88. {jupytergis_core-0.4.5.data → jupytergis_core-0.5.0.data}/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/6e4f6b4d0dfca3bd4450.png +0 -0
  89. {jupytergis_core-0.4.5.data → jupytergis_core-0.5.0.data}/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/71d436fb44627b6bfbd7.png +0 -0
  90. /jupytergis_core-0.4.5.data/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/729.6eae404678a803e58788.js.LICENSE.txt → /jupytergis_core-0.5.0.data/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/729.2540a8113c71e8eb28ef.js.LICENSE.txt +0 -0
  91. {jupytergis_core-0.4.5.data → jupytergis_core-0.5.0.data}/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/7b225dc2d37cd3582156.png +0 -0
  92. {jupytergis_core-0.4.5.data → jupytergis_core-0.5.0.data}/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/803.8b9c4e2f8bed9130b6d0.js +0 -0
  93. {jupytergis_core-0.4.5.data → jupytergis_core-0.5.0.data}/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/803.8b9c4e2f8bed9130b6d0.js.LICENSE.txt +0 -0
  94. {jupytergis_core-0.4.5.data → jupytergis_core-0.5.0.data}/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/843ab141e62516b9df5c.png +0 -0
  95. {jupytergis_core-0.4.5.data → jupytergis_core-0.5.0.data}/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/8814e17f6b110e8f3e42.png +0 -0
  96. {jupytergis_core-0.4.5.data → jupytergis_core-0.5.0.data}/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/88b2ae0d29edb684eae5.png +0 -0
  97. {jupytergis_core-0.4.5.data → jupytergis_core-0.5.0.data}/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/971a42d174dd17b9451a.png +0 -0
  98. {jupytergis_core-0.4.5.data → jupytergis_core-0.5.0.data}/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/a3c609f5bff95a7a53be.png +0 -0
  99. {jupytergis_core-0.4.5.data → jupytergis_core-0.5.0.data}/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/a86d626c9ed2e222d190.png +0 -0
  100. {jupytergis_core-0.4.5.data → jupytergis_core-0.5.0.data}/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/a9e286b0c0264a9fc737.png +0 -0
  101. {jupytergis_core-0.4.5.data → jupytergis_core-0.5.0.data}/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/ab309078b494f850430a.png +0 -0
  102. {jupytergis_core-0.4.5.data → jupytergis_core-0.5.0.data}/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/b15e3989b7b90b5a8d9d.png +0 -0
  103. {jupytergis_core-0.4.5.data → jupytergis_core-0.5.0.data}/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/b36717fbb06f21d53b01.png +0 -0
  104. {jupytergis_core-0.4.5.data → jupytergis_core-0.5.0.data}/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/ba4b6e82fe5a816c40a5.png +0 -0
  105. {jupytergis_core-0.4.5.data → jupytergis_core-0.5.0.data}/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/bb2b310570da7a3587e9.png +0 -0
  106. {jupytergis_core-0.4.5.data → jupytergis_core-0.5.0.data}/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/be92bcf7bb99753b4b3d.png +0 -0
  107. {jupytergis_core-0.4.5.data → jupytergis_core-0.5.0.data}/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/c2ffa011d7f52a0ddf45.png +0 -0
  108. {jupytergis_core-0.4.5.data → jupytergis_core-0.5.0.data}/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/d83457b1b925c1718f6d.png +0 -0
  109. {jupytergis_core-0.4.5.data → jupytergis_core-0.5.0.data}/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/e473e1e9f20af114bbb4.data +0 -0
  110. {jupytergis_core-0.4.5.data → jupytergis_core-0.5.0.data}/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/f2617180c6907263a7ff.png +0 -0
  111. {jupytergis_core-0.4.5.data → jupytergis_core-0.5.0.data}/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/fe99a6dbf5a71d308989.png +0 -0
  112. {jupytergis_core-0.4.5.data → jupytergis_core-0.5.0.data}/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/style.js +0 -0
  113. {jupytergis_core-0.4.5.dist-info → jupytergis_core-0.5.0.dist-info}/WHEEL +0 -0
  114. {jupytergis_core-0.4.5.dist-info → jupytergis_core-0.5.0.dist-info}/entry_points.txt +0 -0
  115. {jupytergis_core-0.4.5.dist-info → jupytergis_core-0.5.0.dist-info}/licenses/LICENSE +0 -0
@@ -1,4 +1,4 @@
1
1
  # This file is auto-generated by Hatchling. As such, do not:
2
2
  # - modify
3
3
  # - track in version control e.g. be sure to add to .gitignore
4
- __version__ = VERSION = '0.4.5'
4
+ __version__ = VERSION = '0.5.0'
@@ -1,9 +1,11 @@
1
1
  import json
2
2
  from typing import Any, Callable
3
3
  from functools import partial
4
+ from packaging.version import Version
4
5
 
5
6
  from pycrdt import Array, Map
6
7
  from jupyter_ydoc.ybasedoc import YBaseDoc
8
+ from .schema import SCHEMA_VERSION
7
9
 
8
10
 
9
11
  class YJGIS(YBaseDoc):
@@ -16,7 +18,7 @@ class YJGIS(YBaseDoc):
16
18
  self._ydoc["metadata"] = self._ymetadata = Map()
17
19
 
18
20
  def version(self) -> str:
19
- return "0.1.0"
21
+ return SCHEMA_VERSION
20
22
 
21
23
  def get(self) -> str:
22
24
  """
@@ -31,6 +33,7 @@ class YJGIS(YBaseDoc):
31
33
  layers_tree = self._ylayerTree.to_py()
32
34
  return json.dumps(
33
35
  dict(
36
+ schemaVersion=SCHEMA_VERSION,
34
37
  layers=layers,
35
38
  sources=sources,
36
39
  options=options,
@@ -49,6 +52,15 @@ class YJGIS(YBaseDoc):
49
52
  """
50
53
  valueDict = json.loads(value)
51
54
 
55
+ # Assuming file version 0.5.0 if the version is not specified
56
+ file_version = (
57
+ Version(valueDict["schemaVersion"])
58
+ if "schemaVersion" in valueDict
59
+ else Version("0.5.0")
60
+ )
61
+ if file_version > Version(SCHEMA_VERSION):
62
+ raise ValueError(f"Cannot load file version {file_version}")
63
+
52
64
  with self._ydoc.transaction():
53
65
  self._ylayers.clear()
54
66
  self._ylayers.update(valueDict.get("layers", {}))
@@ -0,0 +1,24 @@
1
+ from .interfaces.project.jgis import * # noqa
2
+
3
+ from .interfaces.project.layers.rasterlayer import IRasterLayer # noqa
4
+ from .interfaces.project.layers.vectorlayer import IVectorLayer # noqa
5
+ from .interfaces.project.layers.vectorTileLayer import IVectorTileLayer # noqa
6
+ from .interfaces.project.layers.hillshadeLayer import IHillshadeLayer # noqa
7
+ from .interfaces.project.layers.imageLayer import IImageLayer # noqa
8
+ from .interfaces.project.layers.webGlLayer import IWebGlLayer # noqa
9
+ from .interfaces.project.layers.heatmapLayer import IHeatmapLayer # noqa
10
+
11
+ from .interfaces.project.sources.vectortilesource import IVectorTileSource # noqa
12
+ from .interfaces.project.sources.rastersource import IRasterSource # noqa
13
+ from .interfaces.geojsonsource import IGeoJSONSource # noqa
14
+ from .interfaces.project.sources.videoSource import IVideoSource # noqa
15
+ from .interfaces.project.sources.imageSource import IImageSource # noqa
16
+ from .interfaces.project.sources.geoTiffSource import IGeoTiffSource # noqa
17
+ from .interfaces.project.sources.rasterDemSource import IRasterDemSource # noqa
18
+
19
+ from .interfaces.processing.buffer import IBuffer # noqa
20
+
21
+ from .interfaces.export.exportGeojson import IExportGeoJSON # noqa
22
+ from .interfaces.export.exportGeotiff import IExportGeoTIFF # noqa
23
+
24
+ SCHEMA_VERSION = IJGISContent.model_fields["schemaVersion"].default # noqa
@@ -0,0 +1,3 @@
1
+ # generated by datamodel-codegen:
2
+ # filename: schema
3
+ # timestamp: 2025-05-08T01:23:34+00:00
@@ -0,0 +1,3 @@
1
+ # generated by datamodel-codegen:
2
+ # filename: schema
3
+ # timestamp: 2025-05-08T01:23:34+00:00
@@ -0,0 +1,18 @@
1
+ # generated by datamodel-codegen:
2
+ # filename: export/exportGeojson.json
3
+ # timestamp: 2025-05-08T01:23:34+00:00
4
+
5
+ from __future__ import annotations
6
+
7
+ from pydantic import BaseModel, ConfigDict, Field
8
+
9
+
10
+ class IExportGeoJSON(BaseModel):
11
+ model_config = ConfigDict(
12
+ extra='forbid',
13
+ )
14
+ exportFileName: str = Field(
15
+ ...,
16
+ description='The name of the exported GeoJSON file.',
17
+ title='GeoJSON File Name',
18
+ )
@@ -0,0 +1,28 @@
1
+ # generated by datamodel-codegen:
2
+ # filename: export/exportGeotiff.json
3
+ # timestamp: 2025-05-08T01:23:34+00:00
4
+
5
+ from __future__ import annotations
6
+
7
+ from pydantic import BaseModel, ConfigDict, Field, confloat
8
+
9
+
10
+ class IExportGeoTIFF(BaseModel):
11
+ model_config = ConfigDict(
12
+ extra='forbid',
13
+ )
14
+ exportFileName: str = Field(
15
+ ...,
16
+ description='The name of the exported GeoTIFF file.',
17
+ title='GeoTiFF File Name',
18
+ )
19
+ resolutionX: confloat(ge=1.0, le=10000.0) = Field(
20
+ ...,
21
+ description='The width resolution for the raster export.',
22
+ title='Resolution (Width)',
23
+ )
24
+ resolutionY: confloat(ge=1.0, le=10000.0) = Field(
25
+ ...,
26
+ description='The height resolution for the raster export.',
27
+ title='Resolution (Height)',
28
+ )
@@ -0,0 +1,502 @@
1
+ # generated by datamodel-codegen:
2
+ # filename: geojson.json
3
+ # timestamp: 2025-05-08T01:23:34+00:00
4
+
5
+ from __future__ import annotations
6
+
7
+ from enum import Enum
8
+ from typing import Any, Dict, List, Optional, Union
9
+
10
+ from pydantic import BaseModel, Field, RootModel
11
+
12
+
13
+ class Type(Enum):
14
+ Point = 'Point'
15
+
16
+
17
+ class GeoJSON1(BaseModel):
18
+ type: Type
19
+ coordinates: List[float] = Field(..., min_length=2)
20
+ bbox: Optional[List[float]] = Field(None, min_length=4)
21
+
22
+
23
+ class Type1(Enum):
24
+ LineString = 'LineString'
25
+
26
+
27
+ class Coordinate(RootModel[List[float]]):
28
+ root: List[float]
29
+
30
+
31
+ class GeoJSON2(BaseModel):
32
+ type: Type1
33
+ coordinates: List[Coordinate] = Field(..., min_length=2)
34
+ bbox: Optional[List[float]] = Field(None, min_length=4)
35
+
36
+
37
+ class Type2(Enum):
38
+ Polygon = 'Polygon'
39
+
40
+
41
+ class GeoJSON3(BaseModel):
42
+ type: Type2
43
+ coordinates: List[List[Coordinate]]
44
+ bbox: Optional[List[float]] = Field(None, min_length=4)
45
+
46
+
47
+ class Type3(Enum):
48
+ MultiPoint = 'MultiPoint'
49
+
50
+
51
+ class GeoJSON4(BaseModel):
52
+ type: Type3
53
+ coordinates: List[List[float]]
54
+ bbox: Optional[List[float]] = Field(None, min_length=4)
55
+
56
+
57
+ class Type4(Enum):
58
+ MultiLineString = 'MultiLineString'
59
+
60
+
61
+ class GeoJSON5(BaseModel):
62
+ type: Type4
63
+ coordinates: List[List[Coordinate]]
64
+ bbox: Optional[List[float]] = Field(None, min_length=4)
65
+
66
+
67
+ class Type5(Enum):
68
+ MultiPolygon = 'MultiPolygon'
69
+
70
+
71
+ class GeoJSON6(BaseModel):
72
+ type: Type5
73
+ coordinates: List[List[List[Coordinate]]]
74
+ bbox: Optional[List[float]] = Field(None, min_length=4)
75
+
76
+
77
+ class Type6(Enum):
78
+ GeometryCollection = 'GeometryCollection'
79
+
80
+
81
+ class Type7(Enum):
82
+ Point = 'Point'
83
+
84
+
85
+ class Geometries(BaseModel):
86
+ type: Type7
87
+ coordinates: List[float] = Field(..., min_length=2)
88
+ bbox: Optional[List[float]] = Field(None, min_length=4)
89
+
90
+
91
+ class Type8(Enum):
92
+ LineString = 'LineString'
93
+
94
+
95
+ class Geometries1(BaseModel):
96
+ type: Type8
97
+ coordinates: List[Coordinate] = Field(..., min_length=2)
98
+ bbox: Optional[List[float]] = Field(None, min_length=4)
99
+
100
+
101
+ class Type9(Enum):
102
+ Polygon = 'Polygon'
103
+
104
+
105
+ class Geometries2(BaseModel):
106
+ type: Type9
107
+ coordinates: List[List[Coordinate]]
108
+ bbox: Optional[List[float]] = Field(None, min_length=4)
109
+
110
+
111
+ class Type10(Enum):
112
+ MultiPoint = 'MultiPoint'
113
+
114
+
115
+ class Geometries3(BaseModel):
116
+ type: Type10
117
+ coordinates: List[List[float]]
118
+ bbox: Optional[List[float]] = Field(None, min_length=4)
119
+
120
+
121
+ class Type11(Enum):
122
+ MultiLineString = 'MultiLineString'
123
+
124
+
125
+ class Geometries4(BaseModel):
126
+ type: Type11
127
+ coordinates: List[List[Coordinate]]
128
+ bbox: Optional[List[float]] = Field(None, min_length=4)
129
+
130
+
131
+ class Type12(Enum):
132
+ MultiPolygon = 'MultiPolygon'
133
+
134
+
135
+ class Geometries5(BaseModel):
136
+ type: Type12
137
+ coordinates: List[List[List[Coordinate]]]
138
+ bbox: Optional[List[float]] = Field(None, min_length=4)
139
+
140
+
141
+ class GeoJSON7(BaseModel):
142
+ type: Type6
143
+ geometries: List[
144
+ Union[
145
+ Geometries, Geometries1, Geometries2, Geometries3, Geometries4, Geometries5
146
+ ]
147
+ ]
148
+ bbox: Optional[List[float]] = Field(None, min_length=4)
149
+
150
+
151
+ class Type13(Enum):
152
+ Feature = 'Feature'
153
+
154
+
155
+ class Type14(Enum):
156
+ Point = 'Point'
157
+
158
+
159
+ class Geometry(BaseModel):
160
+ type: Type14
161
+ coordinates: List[float] = Field(..., min_length=2)
162
+ bbox: Optional[List[float]] = Field(None, min_length=4)
163
+
164
+
165
+ class Type15(Enum):
166
+ LineString = 'LineString'
167
+
168
+
169
+ class Geometry1(BaseModel):
170
+ type: Type15
171
+ coordinates: List[Coordinate] = Field(..., min_length=2)
172
+ bbox: Optional[List[float]] = Field(None, min_length=4)
173
+
174
+
175
+ class Type16(Enum):
176
+ Polygon = 'Polygon'
177
+
178
+
179
+ class Geometry2(BaseModel):
180
+ type: Type16
181
+ coordinates: List[List[Coordinate]]
182
+ bbox: Optional[List[float]] = Field(None, min_length=4)
183
+
184
+
185
+ class Type17(Enum):
186
+ MultiPoint = 'MultiPoint'
187
+
188
+
189
+ class Geometry3(BaseModel):
190
+ type: Type17
191
+ coordinates: List[List[float]]
192
+ bbox: Optional[List[float]] = Field(None, min_length=4)
193
+
194
+
195
+ class Type18(Enum):
196
+ MultiLineString = 'MultiLineString'
197
+
198
+
199
+ class Geometry4(BaseModel):
200
+ type: Type18
201
+ coordinates: List[List[Coordinate]]
202
+ bbox: Optional[List[float]] = Field(None, min_length=4)
203
+
204
+
205
+ class Type19(Enum):
206
+ MultiPolygon = 'MultiPolygon'
207
+
208
+
209
+ class Geometry5(BaseModel):
210
+ type: Type19
211
+ coordinates: List[List[List[Coordinate]]]
212
+ bbox: Optional[List[float]] = Field(None, min_length=4)
213
+
214
+
215
+ class Type20(Enum):
216
+ GeometryCollection = 'GeometryCollection'
217
+
218
+
219
+ class Type21(Enum):
220
+ Point = 'Point'
221
+
222
+
223
+ class Geometries6(BaseModel):
224
+ type: Type21
225
+ coordinates: List[float] = Field(..., min_length=2)
226
+ bbox: Optional[List[float]] = Field(None, min_length=4)
227
+
228
+
229
+ class Type22(Enum):
230
+ LineString = 'LineString'
231
+
232
+
233
+ class Geometries7(BaseModel):
234
+ type: Type22
235
+ coordinates: List[Coordinate] = Field(..., min_length=2)
236
+ bbox: Optional[List[float]] = Field(None, min_length=4)
237
+
238
+
239
+ class Type23(Enum):
240
+ Polygon = 'Polygon'
241
+
242
+
243
+ class Geometries8(BaseModel):
244
+ type: Type23
245
+ coordinates: List[List[Coordinate]]
246
+ bbox: Optional[List[float]] = Field(None, min_length=4)
247
+
248
+
249
+ class Type24(Enum):
250
+ MultiPoint = 'MultiPoint'
251
+
252
+
253
+ class Geometries9(BaseModel):
254
+ type: Type24
255
+ coordinates: List[List[float]]
256
+ bbox: Optional[List[float]] = Field(None, min_length=4)
257
+
258
+
259
+ class Type25(Enum):
260
+ MultiLineString = 'MultiLineString'
261
+
262
+
263
+ class Geometries10(BaseModel):
264
+ type: Type25
265
+ coordinates: List[List[Coordinate]]
266
+ bbox: Optional[List[float]] = Field(None, min_length=4)
267
+
268
+
269
+ class Type26(Enum):
270
+ MultiPolygon = 'MultiPolygon'
271
+
272
+
273
+ class Geometries11(BaseModel):
274
+ type: Type26
275
+ coordinates: List[List[List[Coordinate]]]
276
+ bbox: Optional[List[float]] = Field(None, min_length=4)
277
+
278
+
279
+ class Geometry6(BaseModel):
280
+ type: Type20
281
+ geometries: List[
282
+ Union[
283
+ Geometries6,
284
+ Geometries7,
285
+ Geometries8,
286
+ Geometries9,
287
+ Geometries10,
288
+ Geometries11,
289
+ ]
290
+ ]
291
+ bbox: Optional[List[float]] = Field(None, min_length=4)
292
+
293
+
294
+ class GeoJSON8(BaseModel):
295
+ type: Type13
296
+ id: Optional[Union[float, str]] = None
297
+ properties: Optional[Dict[str, Any]] = None
298
+ geometry: Optional[
299
+ Union[
300
+ Geometry, Geometry1, Geometry2, Geometry3, Geometry4, Geometry5, Geometry6
301
+ ]
302
+ ] = None
303
+ bbox: Optional[List[float]] = Field(None, min_length=4)
304
+
305
+
306
+ class Type27(Enum):
307
+ FeatureCollection = 'FeatureCollection'
308
+
309
+
310
+ class Type28(Enum):
311
+ Feature = 'Feature'
312
+
313
+
314
+ class Type29(Enum):
315
+ Point = 'Point'
316
+
317
+
318
+ class Geometry7(BaseModel):
319
+ type: Type29
320
+ coordinates: List[float] = Field(..., min_length=2)
321
+ bbox: Optional[List[float]] = Field(None, min_length=4)
322
+
323
+
324
+ class Type30(Enum):
325
+ LineString = 'LineString'
326
+
327
+
328
+ class Geometry8(BaseModel):
329
+ type: Type30
330
+ coordinates: List[Coordinate] = Field(..., min_length=2)
331
+ bbox: Optional[List[float]] = Field(None, min_length=4)
332
+
333
+
334
+ class Type31(Enum):
335
+ Polygon = 'Polygon'
336
+
337
+
338
+ class Geometry9(BaseModel):
339
+ type: Type31
340
+ coordinates: List[List[Coordinate]]
341
+ bbox: Optional[List[float]] = Field(None, min_length=4)
342
+
343
+
344
+ class Type32(Enum):
345
+ MultiPoint = 'MultiPoint'
346
+
347
+
348
+ class Geometry10(BaseModel):
349
+ type: Type32
350
+ coordinates: List[List[float]]
351
+ bbox: Optional[List[float]] = Field(None, min_length=4)
352
+
353
+
354
+ class Type33(Enum):
355
+ MultiLineString = 'MultiLineString'
356
+
357
+
358
+ class Geometry11(BaseModel):
359
+ type: Type33
360
+ coordinates: List[List[Coordinate]]
361
+ bbox: Optional[List[float]] = Field(None, min_length=4)
362
+
363
+
364
+ class Type34(Enum):
365
+ MultiPolygon = 'MultiPolygon'
366
+
367
+
368
+ class Geometry12(BaseModel):
369
+ type: Type34
370
+ coordinates: List[List[List[Coordinate]]]
371
+ bbox: Optional[List[float]] = Field(None, min_length=4)
372
+
373
+
374
+ class Type35(Enum):
375
+ GeometryCollection = 'GeometryCollection'
376
+
377
+
378
+ class Type36(Enum):
379
+ Point = 'Point'
380
+
381
+
382
+ class Geometries12(BaseModel):
383
+ type: Type36
384
+ coordinates: List[float] = Field(..., min_length=2)
385
+ bbox: Optional[List[float]] = Field(None, min_length=4)
386
+
387
+
388
+ class Type37(Enum):
389
+ LineString = 'LineString'
390
+
391
+
392
+ class Geometries13(BaseModel):
393
+ type: Type37
394
+ coordinates: List[Coordinate] = Field(..., min_length=2)
395
+ bbox: Optional[List[float]] = Field(None, min_length=4)
396
+
397
+
398
+ class Type38(Enum):
399
+ Polygon = 'Polygon'
400
+
401
+
402
+ class Geometries14(BaseModel):
403
+ type: Type38
404
+ coordinates: List[List[Coordinate]]
405
+ bbox: Optional[List[float]] = Field(None, min_length=4)
406
+
407
+
408
+ class Type39(Enum):
409
+ MultiPoint = 'MultiPoint'
410
+
411
+
412
+ class Geometries15(BaseModel):
413
+ type: Type39
414
+ coordinates: List[List[float]]
415
+ bbox: Optional[List[float]] = Field(None, min_length=4)
416
+
417
+
418
+ class Type40(Enum):
419
+ MultiLineString = 'MultiLineString'
420
+
421
+
422
+ class Geometries16(BaseModel):
423
+ type: Type40
424
+ coordinates: List[List[Coordinate]]
425
+ bbox: Optional[List[float]] = Field(None, min_length=4)
426
+
427
+
428
+ class Type41(Enum):
429
+ MultiPolygon = 'MultiPolygon'
430
+
431
+
432
+ class Geometries17(BaseModel):
433
+ type: Type41
434
+ coordinates: List[List[List[Coordinate]]]
435
+ bbox: Optional[List[float]] = Field(None, min_length=4)
436
+
437
+
438
+ class Geometry13(BaseModel):
439
+ type: Type35
440
+ geometries: List[
441
+ Union[
442
+ Geometries12,
443
+ Geometries13,
444
+ Geometries14,
445
+ Geometries15,
446
+ Geometries16,
447
+ Geometries17,
448
+ ]
449
+ ]
450
+ bbox: Optional[List[float]] = Field(None, min_length=4)
451
+
452
+
453
+ class Feature(BaseModel):
454
+ type: Type28
455
+ id: Optional[Union[float, str]] = None
456
+ properties: Optional[Dict[str, Any]] = None
457
+ geometry: Optional[
458
+ Union[
459
+ Geometry7,
460
+ Geometry8,
461
+ Geometry9,
462
+ Geometry10,
463
+ Geometry11,
464
+ Geometry12,
465
+ Geometry13,
466
+ ]
467
+ ] = None
468
+ bbox: Optional[List[float]] = Field(None, min_length=4)
469
+
470
+
471
+ class GeoJSON9(BaseModel):
472
+ type: Type27
473
+ features: List[Feature]
474
+ bbox: Optional[List[float]] = Field(None, min_length=4)
475
+
476
+
477
+ class GeoJSON(
478
+ RootModel[
479
+ Union[
480
+ GeoJSON1,
481
+ GeoJSON2,
482
+ GeoJSON3,
483
+ GeoJSON4,
484
+ GeoJSON5,
485
+ GeoJSON6,
486
+ GeoJSON7,
487
+ GeoJSON8,
488
+ GeoJSON9,
489
+ ]
490
+ ]
491
+ ):
492
+ root: Union[
493
+ GeoJSON1,
494
+ GeoJSON2,
495
+ GeoJSON3,
496
+ GeoJSON4,
497
+ GeoJSON5,
498
+ GeoJSON6,
499
+ GeoJSON7,
500
+ GeoJSON8,
501
+ GeoJSON9,
502
+ ] = Field(..., title='GeoJSON')
@@ -0,0 +1,20 @@
1
+ # generated by datamodel-codegen:
2
+ # filename: geojsonsource.json
3
+ # timestamp: 2025-05-08T01:23:34+00:00
4
+
5
+ from __future__ import annotations
6
+
7
+ from typing import Optional
8
+
9
+ from pydantic import BaseModel, ConfigDict, Field
10
+
11
+ from . import geojson
12
+
13
+
14
+ class IGeoJSONSource(BaseModel):
15
+ model_config = ConfigDict(
16
+ extra='forbid',
17
+ )
18
+ path: Optional[str] = Field(None, description='The local path to a GeoJSON file')
19
+ data: Optional[geojson.GeoJSON] = Field(None, description='The GeoJSON data')
20
+ valid: Optional[bool] = Field(None, description='Whether the data are valid or not')
@@ -0,0 +1,3 @@
1
+ # generated by datamodel-codegen:
2
+ # filename: schema
3
+ # timestamp: 2025-05-08T01:23:34+00:00
@@ -0,0 +1,23 @@
1
+ # generated by datamodel-codegen:
2
+ # filename: processing/buffer.json
3
+ # timestamp: 2025-05-08T01:23:34+00:00
4
+
5
+ from __future__ import annotations
6
+
7
+ from typing import Optional
8
+
9
+ from pydantic import BaseModel, ConfigDict, Field
10
+
11
+
12
+ class IBuffer(BaseModel):
13
+ model_config = ConfigDict(
14
+ extra='forbid',
15
+ )
16
+ inputLayer: str = Field(..., description='The input layer for buffering.')
17
+ bufferDistance: float = Field(
18
+ ...,
19
+ description='The distance used for buffering the geometry (in projection units).',
20
+ )
21
+ embedOutputLayer: Optional[bool] = Field(
22
+ True, title='Embed output buffered layer in file'
23
+ )
@@ -0,0 +1,24 @@
1
+ # generated by datamodel-codegen:
2
+ # filename: processing/dissolve.json
3
+ # timestamp: 2025-05-08T01:23:34+00:00
4
+
5
+ from __future__ import annotations
6
+
7
+ from typing import Optional
8
+
9
+ from pydantic import BaseModel, ConfigDict, Field
10
+
11
+
12
+ class IDissolve(BaseModel):
13
+ model_config = ConfigDict(
14
+ extra='forbid',
15
+ )
16
+ inputLayer: str = Field(
17
+ ..., description='The input layer for the dissolve operation.'
18
+ )
19
+ dissolveField: str = Field(
20
+ ..., description='The field based on which geometries will be dissolved.'
21
+ )
22
+ embedOutputLayer: Optional[bool] = Field(
23
+ True, title='Embed output dissolved layer in file'
24
+ )
@@ -0,0 +1,3 @@
1
+ # generated by datamodel-codegen:
2
+ # filename: schema
3
+ # timestamp: 2025-05-08T01:23:34+00:00