OpenGeodeWeb-Back 1.2.2__tar.gz → 1.3.0rc2__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 (16) hide show
  1. {OpenGeodeWeb-Back-1.2.2/src/OpenGeodeWeb_Back.egg-info → OpenGeodeWeb-Back-1.3.0rc2}/PKG-INFO +3 -3
  2. {OpenGeodeWeb-Back-1.2.2 → OpenGeodeWeb-Back-1.3.0rc2}/pyproject.toml +1 -1
  3. {OpenGeodeWeb-Back-1.2.2 → OpenGeodeWeb-Back-1.3.0rc2}/requirements.txt +4 -3
  4. {OpenGeodeWeb-Back-1.2.2 → OpenGeodeWeb-Back-1.3.0rc2/src/OpenGeodeWeb_Back.egg-info}/PKG-INFO +3 -3
  5. {OpenGeodeWeb-Back-1.2.2 → OpenGeodeWeb-Back-1.3.0rc2}/src/OpenGeodeWeb_Back.egg-info/requires.txt +2 -2
  6. {OpenGeodeWeb-Back-1.2.2 → OpenGeodeWeb-Back-1.3.0rc2}/src/opengeodeweb_back/geode_functions.py +35 -37
  7. {OpenGeodeWeb-Back-1.2.2 → OpenGeodeWeb-Back-1.3.0rc2}/src/opengeodeweb_back/geode_objects.py +21 -0
  8. {OpenGeodeWeb-Back-1.2.2 → OpenGeodeWeb-Back-1.3.0rc2}/tests/test_functions.py +60 -11
  9. {OpenGeodeWeb-Back-1.2.2 → OpenGeodeWeb-Back-1.3.0rc2}/LICENSE +0 -0
  10. {OpenGeodeWeb-Back-1.2.2 → OpenGeodeWeb-Back-1.3.0rc2}/README.md +0 -0
  11. {OpenGeodeWeb-Back-1.2.2 → OpenGeodeWeb-Back-1.3.0rc2}/setup.cfg +0 -0
  12. {OpenGeodeWeb-Back-1.2.2 → OpenGeodeWeb-Back-1.3.0rc2}/src/OpenGeodeWeb_Back.egg-info/SOURCES.txt +0 -0
  13. {OpenGeodeWeb-Back-1.2.2 → OpenGeodeWeb-Back-1.3.0rc2}/src/OpenGeodeWeb_Back.egg-info/dependency_links.txt +0 -0
  14. {OpenGeodeWeb-Back-1.2.2 → OpenGeodeWeb-Back-1.3.0rc2}/src/OpenGeodeWeb_Back.egg-info/top_level.txt +0 -0
  15. {OpenGeodeWeb-Back-1.2.2 → OpenGeodeWeb-Back-1.3.0rc2}/src/opengeodeweb_back/__init__.py +0 -0
  16. {OpenGeodeWeb-Back-1.2.2 → OpenGeodeWeb-Back-1.3.0rc2}/src/opengeodeweb_back/inspector_functions.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: OpenGeodeWeb-Back
3
- Version: 1.2.2
3
+ Version: 1.3.0rc2
4
4
  Summary: OpenGeodeWeb-Back is an open source framework that proposes handy python functions and wrappers for the OpenGeode ecosystem
5
5
  Author-email: Geode-solutions <team-web@geode-solutions.com>
6
6
  Project-URL: Homepage, https://github.com/Geode-solutions/OpenGeodeWeb-Back
@@ -13,10 +13,10 @@ Description-Content-Type: text/markdown
13
13
  License-File: LICENSE
14
14
  Requires-Dist: geode-common==26.3.0
15
15
  Requires-Dist: geode-viewables==2.1.0
16
- Requires-Dist: opengeode-core==14.8.0
16
+ Requires-Dist: opengeode-core==14.9.0
17
17
  Requires-Dist: opengeode-geosciences==7.2.0
18
18
  Requires-Dist: opengeode-geosciencesio==4.5.0
19
- Requires-Dist: opengeode-inspector==3.1.0
19
+ Requires-Dist: opengeode-inspector==4.0.0
20
20
  Requires-Dist: opengeode-io==6.2.0
21
21
 
22
22
 
@@ -5,7 +5,7 @@ build-backend = "setuptools.build_meta"
5
5
 
6
6
  [project]
7
7
  name = "OpenGeodeWeb-Back"
8
- version = "1.2.2"
8
+ version = "1.3.0-rc.2"
9
9
  dynamic = ["dependencies"]
10
10
  authors = [
11
11
  { name="Geode-solutions", email="team-web@geode-solutions.com" },
@@ -2,15 +2,16 @@
2
2
  # This file is autogenerated by pip-compile with Python 3.9
3
3
  # by the following command:
4
4
  #
5
- # pip-compile requirements.in
5
+ # pip-compile --resolver=backtracking requirements.in
6
6
  #
7
7
  geode-common==26.3.0
8
8
  # via geode-viewables
9
9
  geode-viewables==2.1.0
10
10
  # via -r requirements.in
11
- opengeode-core==14.8.0
11
+ opengeode-core==14.9.0
12
12
  # via
13
13
  # -r requirements.in
14
+ # geode-common
14
15
  # geode-viewables
15
16
  # opengeode-geosciences
16
17
  # opengeode-geosciencesio
@@ -26,7 +27,7 @@ opengeode-geosciencesio==4.5.0
26
27
  # via
27
28
  # -r requirements.in
28
29
  # opengeode-inspector
29
- opengeode-inspector==3.1.0
30
+ opengeode-inspector==4.0.0
30
31
  # via -r requirements.in
31
32
  opengeode-io==6.2.0
32
33
  # via
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: OpenGeodeWeb-Back
3
- Version: 1.2.2
3
+ Version: 1.3.0rc2
4
4
  Summary: OpenGeodeWeb-Back is an open source framework that proposes handy python functions and wrappers for the OpenGeode ecosystem
5
5
  Author-email: Geode-solutions <team-web@geode-solutions.com>
6
6
  Project-URL: Homepage, https://github.com/Geode-solutions/OpenGeodeWeb-Back
@@ -13,10 +13,10 @@ Description-Content-Type: text/markdown
13
13
  License-File: LICENSE
14
14
  Requires-Dist: geode-common==26.3.0
15
15
  Requires-Dist: geode-viewables==2.1.0
16
- Requires-Dist: opengeode-core==14.8.0
16
+ Requires-Dist: opengeode-core==14.9.0
17
17
  Requires-Dist: opengeode-geosciences==7.2.0
18
18
  Requires-Dist: opengeode-geosciencesio==4.5.0
19
- Requires-Dist: opengeode-inspector==3.1.0
19
+ Requires-Dist: opengeode-inspector==4.0.0
20
20
  Requires-Dist: opengeode-io==6.2.0
21
21
 
22
22
 
@@ -1,7 +1,7 @@
1
1
  geode-common==26.3.0
2
2
  geode-viewables==2.1.0
3
- opengeode-core==14.8.0
3
+ opengeode-core==14.9.0
4
4
  opengeode-geosciences==7.2.0
5
5
  opengeode-geosciencesio==4.5.0
6
- opengeode-inspector==3.1.0
6
+ opengeode-inspector==4.0.0
7
7
  opengeode-io==6.2.0
@@ -24,6 +24,10 @@ def get_output_factory(geode_object: str):
24
24
  return objects_list()[geode_object]["output_factory"]
25
25
 
26
26
 
27
+ def missing_files(geode_object: str, file_absolute_path: str):
28
+ return objects_list()[geode_object]["missing_files"](file_absolute_path)
29
+
30
+
27
31
  def load(geode_object: str, file_absolute_path: str):
28
32
  return objects_list()[geode_object]["load"](file_absolute_path)
29
33
 
@@ -106,55 +110,49 @@ def get_geode_object_output_extensions(geode_object: str):
106
110
  return output_list
107
111
 
108
112
 
109
- def list_input_extensions(
110
- keys: list = [],
111
- ):
112
- """
113
- Purpose:
114
- Function that returns a list of all input extensions
115
- Args:
116
- keys -- Tells the function if we want the geode_objects that have a crs
117
- Returns:
118
- An ordered list of input file extensions
119
- """
113
+ def list_input_extensions(key: str = None):
120
114
  extensions_list = []
121
-
122
115
  for geode_object, value in objects_list().items():
123
- if keys:
124
- for key in keys:
125
- if key in value:
126
- if type(value[key]) == bool and value[key] == True:
127
- pass
128
- else:
129
- continue
116
+ if key != None:
117
+ if key in value:
118
+ if type(value[key]) == bool:
119
+ if value[key] == True:
120
+ extensions_list += get_geode_object_input_extensions(
121
+ geode_object
122
+ )
130
123
  else:
131
- continue
132
-
133
- geode_object_input_extensions = get_geode_object_input_extensions(geode_object)
134
- extensions_list = extensions_list + geode_object_input_extensions
124
+ extensions_list += get_geode_object_input_extensions(geode_object)
125
+ else:
126
+ extensions_list += get_geode_object_input_extensions(geode_object)
135
127
 
136
128
  extensions_list = list(set(extensions_list))
137
129
  extensions_list.sort()
138
130
  return extensions_list
139
131
 
140
132
 
141
- def list_geode_objects(extension: str, keys: list = []):
142
- """
143
- Purpose:
144
- Function that returns a list of objects that can handle a file, given his extension
145
- Args:
146
- extension -- The extension of the file
147
- Returns:
148
- An ordered list of object's names
149
- """
150
- geode_objects_list = []
133
+ def has_creator(geode_object: str, extension: str):
134
+ geode_object_input_factory = get_input_factory(geode_object)
135
+ for input in geode_object_input_factory:
136
+ if input.has_creator(extension):
137
+ return True
138
+ return False
139
+
151
140
 
141
+ def list_geode_objects(extension: str, key: str = None):
142
+ geode_objects_list = []
152
143
  for geode_object, value in objects_list().items():
153
- input_factory = get_input_factory(geode_object)
154
- for input in input_factory:
155
- if input.has_creator(extension):
156
- if geode_object not in geode_objects_list:
144
+ if key != None:
145
+ if key in value:
146
+ if type(value[key]) == bool:
147
+ if value[key] == True:
148
+ if has_creator(geode_object, extension):
149
+ geode_objects_list.append(geode_object)
150
+ elif has_creator(geode_object, extension):
157
151
  geode_objects_list.append(geode_object)
152
+ else:
153
+ if has_creator(geode_object, extension):
154
+ geode_objects_list.append(geode_object)
155
+
158
156
  geode_objects_list.sort()
159
157
  return geode_objects_list
160
158
 
@@ -11,6 +11,7 @@ def objects_list():
11
11
  "BRep": {
12
12
  "input_factory": [og.BRepInputFactory],
13
13
  "output_factory": [og.BRepOutputFactory],
14
+ "missing_files": og.check_brep_missing_files,
14
15
  "load": og.load_brep,
15
16
  "save": og.save_brep,
16
17
  "builder": og.BRepBuilder,
@@ -31,6 +32,7 @@ def objects_list():
31
32
  og.SectionOutputFactory,
32
33
  og_gs.CrossSectionOutputFactory,
33
34
  ],
35
+ "missing_files": og_gs.check_cross_section_missing_files,
34
36
  "load": og_gs.load_cross_section,
35
37
  "save": og_gs.save_cross_section,
36
38
  "builder": og_gs.CrossSectionBuilder,
@@ -48,6 +50,7 @@ def objects_list():
48
50
  "EdgedCurve2D": {
49
51
  "input_factory": [og.EdgedCurveInputFactory2D],
50
52
  "output_factory": [og.EdgedCurveOutputFactory2D],
53
+ "missing_files": og.check_edged_curve_missing_files2D,
51
54
  "load": og.load_edged_curve2D,
52
55
  "save": og.save_edged_curve2D,
53
56
  "builder": og.EdgedCurveBuilder2D.create,
@@ -65,6 +68,7 @@ def objects_list():
65
68
  "EdgedCurve3D": {
66
69
  "input_factory": [og.EdgedCurveInputFactory3D],
67
70
  "output_factory": [og.EdgedCurveOutputFactory3D],
71
+ "missing_files": og.check_edged_curve_missing_files3D,
68
72
  "load": og.load_edged_curve3D,
69
73
  "save": og.save_edged_curve3D,
70
74
  "builder": og.EdgedCurveBuilder3D.create,
@@ -82,6 +86,7 @@ def objects_list():
82
86
  "Graph": {
83
87
  "input_factory": [og.GraphInputFactory],
84
88
  "output_factory": [og.GraphOutputFactory],
89
+ "missing_files": og.check_graph_missing_files,
85
90
  "load": og.load_graph,
86
91
  "save": og.save_graph,
87
92
  "builder": og.GraphBuilder.create,
@@ -92,6 +97,7 @@ def objects_list():
92
97
  "HybridSolid3D": {
93
98
  "input_factory": [og.HybridSolidInputFactory3D],
94
99
  "output_factory": [og.HybridSolidOutputFactory3D],
100
+ "missing_files": og.check_hybrid_solid_missing_files3D,
95
101
  "load": og.load_hybrid_solid3D,
96
102
  "save": og.save_hybrid_solid3D,
97
103
  "builder": og.HybridSolidBuilder3D.create,
@@ -109,6 +115,7 @@ def objects_list():
109
115
  "PointSet2D": {
110
116
  "input_factory": [og.PointSetInputFactory2D],
111
117
  "output_factory": [og.PointSetOutputFactory2D],
118
+ "missing_files": og.check_point_set_missing_files2D,
112
119
  "load": og.load_point_set2D,
113
120
  "save": og.save_point_set2D,
114
121
  "builder": og.PointSetBuilder2D.create,
@@ -126,6 +133,7 @@ def objects_list():
126
133
  "PointSet3D": {
127
134
  "input_factory": [og.PointSetInputFactory3D],
128
135
  "output_factory": [og.PointSetOutputFactory3D],
136
+ "missing_files": og.check_point_set_missing_files3D,
129
137
  "load": og.load_point_set3D,
130
138
  "save": og.save_point_set3D,
131
139
  "builder": og.PointSetBuilder3D.create,
@@ -143,6 +151,7 @@ def objects_list():
143
151
  "PolygonalSurface2D": {
144
152
  "input_factory": [og.PolygonalSurfaceInputFactory2D],
145
153
  "output_factory": [og.PolygonalSurfaceOutputFactory2D],
154
+ "missing_files": og.check_polygonal_surface_missing_files2D,
146
155
  "load": og.load_polygonal_surface2D,
147
156
  "save": og.save_polygonal_surface2D,
148
157
  "builder": og.PolygonalSurfaceBuilder2D.create,
@@ -160,6 +169,7 @@ def objects_list():
160
169
  "PolygonalSurface3D": {
161
170
  "input_factory": [og.PolygonalSurfaceInputFactory3D],
162
171
  "output_factory": [og.PolygonalSurfaceOutputFactory3D],
172
+ "missing_files": og.check_polygonal_surface_missing_files3D,
163
173
  "load": og.load_polygonal_surface3D,
164
174
  "save": og.save_polygonal_surface3D,
165
175
  "builder": og.PolygonalSurfaceBuilder3D.create,
@@ -177,6 +187,7 @@ def objects_list():
177
187
  "PolyhedralSolid3D": {
178
188
  "input_factory": [og.PolyhedralSolidInputFactory3D],
179
189
  "output_factory": [og.PolyhedralSolidOutputFactory3D],
190
+ "missing_files": og.check_polyhedral_solid_missing_files3D,
180
191
  "load": og.load_polyhedral_solid3D,
181
192
  "save": og.save_polyhedral_solid3D,
182
193
  "builder": og.PolyhedralSolidBuilder3D.create,
@@ -194,6 +205,7 @@ def objects_list():
194
205
  "RasterImage2D": {
195
206
  "input_factory": [og.RasterImageInputFactory2D],
196
207
  "output_factory": [og.RasterImageOutputFactory2D],
208
+ "missing_files": og.check_raster_image_missing_files2D,
197
209
  "load": og.load_raster_image2D,
198
210
  "save": og.save_raster_image2D,
199
211
  "is_model": False,
@@ -204,6 +216,7 @@ def objects_list():
204
216
  "RasterImage3D": {
205
217
  "input_factory": [og.RasterImageInputFactory3D],
206
218
  "output_factory": [og.RasterImageOutputFactory3D],
219
+ "missing_files": og.check_raster_image_missing_files3D,
207
220
  "load": og.load_raster_image3D,
208
221
  "save": og.save_raster_image3D,
209
222
  "is_model": False,
@@ -214,6 +227,7 @@ def objects_list():
214
227
  "RegularGrid2D": {
215
228
  "input_factory": [og.RegularGridInputFactory2D],
216
229
  "output_factory": [og.RegularGridOutputFactory2D],
230
+ "missing_files": og.check_regular_grid_missing_files2D,
217
231
  "load": og.load_regular_grid2D,
218
232
  "save": og.save_regular_grid2D,
219
233
  "builder": og.RegularGridBuilder2D.create,
@@ -230,6 +244,7 @@ def objects_list():
230
244
  "RegularGrid3D": {
231
245
  "input_factory": [og.RegularGridInputFactory3D],
232
246
  "output_factory": [og.RegularGridOutputFactory3D],
247
+ "missing_files": og.check_regular_grid_missing_files3D,
233
248
  "load": og.load_regular_grid3D,
234
249
  "save": og.save_regular_grid3D,
235
250
  "builder": og.RegularGridBuilder3D.create,
@@ -246,6 +261,7 @@ def objects_list():
246
261
  "Section": {
247
262
  "input_factory": [og.SectionInputFactory],
248
263
  "output_factory": [og.SectionOutputFactory],
264
+ "missing_files": og.check_section_missing_files,
249
265
  "load": og.load_section,
250
266
  "save": og.save_section,
251
267
  "builder": og.SectionBuilder,
@@ -266,6 +282,7 @@ def objects_list():
266
282
  og.BRepOutputFactory,
267
283
  og_gs.StructuralModelOutputFactory,
268
284
  ],
285
+ "missing_files": og_gs.check_structural_model_missing_files,
269
286
  "load": og_gs.load_structural_model,
270
287
  "save": og_gs.save_structural_model,
271
288
  "builder": og_gs.StructuralModelBuilder,
@@ -284,6 +301,7 @@ def objects_list():
284
301
  "input_factory": [og.TetrahedralSolidInputFactory3D],
285
302
  "output_factory": [og.TetrahedralSolidOutputFactory3D],
286
303
  "load": og.load_tetrahedral_solid3D,
304
+ "missing_files": og.check_tetrahedral_solid_missing_files3D,
287
305
  "save": og.save_tetrahedral_solid3D,
288
306
  "builder": og.TetrahedralSolidBuilder3D.create,
289
307
  "crs": {
@@ -300,6 +318,7 @@ def objects_list():
300
318
  "TriangulatedSurface2D": {
301
319
  "input_factory": [og.TriangulatedSurfaceInputFactory2D],
302
320
  "output_factory": [og.TriangulatedSurfaceOutputFactory2D],
321
+ "missing_files": og.check_triangulated_surface_missing_files2D,
303
322
  "load": og.load_triangulated_surface2D,
304
323
  "save": og.save_triangulated_surface2D,
305
324
  "builder": og.TriangulatedSurfaceBuilder2D.create,
@@ -317,6 +336,7 @@ def objects_list():
317
336
  "TriangulatedSurface3D": {
318
337
  "input_factory": [og.TriangulatedSurfaceInputFactory3D],
319
338
  "output_factory": [og.TriangulatedSurfaceOutputFactory3D],
339
+ "missing_files": og.check_triangulated_surface_missing_files3D,
320
340
  "load": og.load_triangulated_surface3D,
321
341
  "save": og.save_triangulated_surface3D,
322
342
  "builder": og.TriangulatedSurfaceBuilder3D.create,
@@ -334,6 +354,7 @@ def objects_list():
334
354
  "VertexSet": {
335
355
  "input_factory": [og.VertexSetInputFactory],
336
356
  "output_factory": [og.VertexSetOutputFactory],
357
+ "missing_files": og.check_vertex_set_missing_files,
337
358
  "load": og.load_vertex_set,
338
359
  "save": og.save_vertex_set,
339
360
  "builder": og.VertexSetBuilder.create,
@@ -14,6 +14,24 @@ def test_get_output_factory():
14
14
  assert type(geode_object_input) is list
15
15
 
16
16
 
17
+ def test_missing_files():
18
+ for geode_object, value in geode_objects.objects_list().items():
19
+ input_extensions = geode_functions.get_geode_object_input_extensions(
20
+ geode_object
21
+ )
22
+ for input_extension in input_extensions:
23
+ file_absolute_path = os.path.abspath(f"tests/data/test.{input_extension}")
24
+ missing_files = geode_functions.missing_files(
25
+ geode_object, file_absolute_path
26
+ )
27
+ has_missing_files = missing_files.has_missing_files()
28
+ assert type(has_missing_files) is bool
29
+ mandatory_files = missing_files.mandatory_files
30
+ assert type(mandatory_files) is list
31
+ additional_files = missing_files.additional_files
32
+ assert type(additional_files) is list
33
+
34
+
17
35
  def test_is_model():
18
36
  for geode_object, value in geode_objects.objects_list().items():
19
37
  is_model = geode_functions.is_model(geode_object)
@@ -53,7 +71,7 @@ def test_get_geode_object_output_extensions():
53
71
 
54
72
 
55
73
  def test_list_input_extensions():
56
- keys_array = [["crs"], ["inspector"]]
74
+ keys_array = ["crs", "inspector", None]
57
75
  for geode_object, value in geode_objects.objects_list().items():
58
76
  for keys in keys_array:
59
77
  input_extensions = geode_functions.list_input_extensions(keys)
@@ -61,18 +79,51 @@ def test_list_input_extensions():
61
79
 
62
80
 
63
81
  def test_list_geode_objects():
64
- keys_array = [["crs"], ["inspector"]]
65
- input_extensions = geode_functions.list_input_extensions()
66
- for geode_object, value in geode_objects.objects_list().items():
67
- for input_extension in input_extensions:
68
- for keys in keys_array:
69
- print(f"{input_extension=}")
70
- print(f"{keys=}")
82
+ test_list = [
83
+ {
84
+ "key": "crs",
85
+ "invalid_geode_objects": [
86
+ "Graph",
87
+ "RasterImage2D",
88
+ "RasterImage3D",
89
+ "VertexSet",
90
+ ],
91
+ },
92
+ {
93
+ "key": "inspector",
94
+ "invalid_geode_objects": [
95
+ "Graph",
96
+ "RasterImage2D",
97
+ "RasterImage3D",
98
+ "RasterImage2D",
99
+ "RasterImage3D",
100
+ "VertexSet",
101
+ ],
102
+ },
103
+ {
104
+ "key": None,
105
+ "invalid_geode_objects": [],
106
+ },
107
+ ]
108
+ for test in test_list:
109
+ key = test["key"]
110
+ invalid_geode_objects = test["invalid_geode_objects"]
111
+
112
+ input_extensions = geode_functions.list_input_extensions(key)
113
+ for geode_object, value in geode_objects.objects_list().items():
114
+ for input_extension in input_extensions:
71
115
  geode_objects_list = geode_functions.list_geode_objects(
72
- input_extension, keys
116
+ input_extension, key
73
117
  )
74
118
  assert type(geode_objects_list) is list
75
119
 
120
+ if key != None:
121
+ assert len(geode_objects_list) > 0
122
+ for invalid_geode_object in invalid_geode_objects:
123
+ assert invalid_geode_object not in geode_objects_list
124
+ else:
125
+ assert len(geode_objects_list) >= 1
126
+
76
127
 
77
128
  def test_get_versions():
78
129
  list_packages = [
@@ -89,7 +140,5 @@ def test_get_versions():
89
140
 
90
141
  def test_get_extension_from_filename():
91
142
  extension = geode_functions.get_extension_from_filename("test.toto")
92
- print(extension)
93
143
  assert type(extension) is str
94
- print()
95
144
  assert extension.count(".") == 0