threedi-modelchecker 2.18.19.dev0__tar.gz → 2.18.19.dev1__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. {threedi_modelchecker-2.18.19.dev0 → threedi_modelchecker-2.18.19.dev1}/CHANGES.rst +1 -0
  2. {threedi_modelchecker-2.18.19.dev0/threedi_modelchecker.egg-info → threedi_modelchecker-2.18.19.dev1}/PKG-INFO +1 -1
  3. {threedi_modelchecker-2.18.19.dev0 → threedi_modelchecker-2.18.19.dev1}/threedi_modelchecker/__init__.py +1 -1
  4. {threedi_modelchecker-2.18.19.dev0 → threedi_modelchecker-2.18.19.dev1}/threedi_modelchecker/checks/cross_section_definitions.py +6 -1
  5. {threedi_modelchecker-2.18.19.dev0 → threedi_modelchecker-2.18.19.dev1}/threedi_modelchecker/checks/other.py +7 -0
  6. {threedi_modelchecker-2.18.19.dev0 → threedi_modelchecker-2.18.19.dev1}/threedi_modelchecker/tests/test_checks_cross_section_definitions.py +5 -0
  7. {threedi_modelchecker-2.18.19.dev0 → threedi_modelchecker-2.18.19.dev1/threedi_modelchecker.egg-info}/PKG-INFO +1 -1
  8. {threedi_modelchecker-2.18.19.dev0 → threedi_modelchecker-2.18.19.dev1}/LICENSE +0 -0
  9. {threedi_modelchecker-2.18.19.dev0 → threedi_modelchecker-2.18.19.dev1}/MANIFEST.in +0 -0
  10. {threedi_modelchecker-2.18.19.dev0 → threedi_modelchecker-2.18.19.dev1}/README.rst +0 -0
  11. {threedi_modelchecker-2.18.19.dev0 → threedi_modelchecker-2.18.19.dev1}/pyproject.toml +0 -0
  12. {threedi_modelchecker-2.18.19.dev0 → threedi_modelchecker-2.18.19.dev1}/setup.cfg +0 -0
  13. {threedi_modelchecker-2.18.19.dev0 → threedi_modelchecker-2.18.19.dev1}/threedi_modelchecker/checks/__init__.py +0 -0
  14. {threedi_modelchecker-2.18.19.dev0 → threedi_modelchecker-2.18.19.dev1}/threedi_modelchecker/checks/base.py +0 -0
  15. {threedi_modelchecker-2.18.19.dev0 → threedi_modelchecker-2.18.19.dev1}/threedi_modelchecker/checks/factories.py +0 -0
  16. {threedi_modelchecker-2.18.19.dev0 → threedi_modelchecker-2.18.19.dev1}/threedi_modelchecker/checks/location.py +0 -0
  17. {threedi_modelchecker-2.18.19.dev0 → threedi_modelchecker-2.18.19.dev1}/threedi_modelchecker/checks/raster.py +0 -0
  18. {threedi_modelchecker-2.18.19.dev0 → threedi_modelchecker-2.18.19.dev1}/threedi_modelchecker/checks/timeseries.py +0 -0
  19. {threedi_modelchecker-2.18.19.dev0 → threedi_modelchecker-2.18.19.dev1}/threedi_modelchecker/config.py +0 -0
  20. {threedi_modelchecker-2.18.19.dev0 → threedi_modelchecker-2.18.19.dev1}/threedi_modelchecker/exporters.py +0 -0
  21. {threedi_modelchecker-2.18.19.dev0 → threedi_modelchecker-2.18.19.dev1}/threedi_modelchecker/interfaces/__init__.py +0 -0
  22. {threedi_modelchecker-2.18.19.dev0 → threedi_modelchecker-2.18.19.dev1}/threedi_modelchecker/interfaces/raster_interface.py +0 -0
  23. {threedi_modelchecker-2.18.19.dev0 → threedi_modelchecker-2.18.19.dev1}/threedi_modelchecker/interfaces/raster_interface_gdal.py +0 -0
  24. {threedi_modelchecker-2.18.19.dev0 → threedi_modelchecker-2.18.19.dev1}/threedi_modelchecker/interfaces/raster_interface_rasterio.py +0 -0
  25. {threedi_modelchecker-2.18.19.dev0 → threedi_modelchecker-2.18.19.dev1}/threedi_modelchecker/model_checks.py +0 -0
  26. {threedi_modelchecker-2.18.19.dev0 → threedi_modelchecker-2.18.19.dev1}/threedi_modelchecker/scripts.py +0 -0
  27. {threedi_modelchecker-2.18.19.dev0 → threedi_modelchecker-2.18.19.dev1}/threedi_modelchecker/tests/__init__.py +0 -0
  28. {threedi_modelchecker-2.18.19.dev0 → threedi_modelchecker-2.18.19.dev1}/threedi_modelchecker/tests/conftest.py +0 -0
  29. {threedi_modelchecker-2.18.19.dev0 → threedi_modelchecker-2.18.19.dev1}/threedi_modelchecker/tests/data/__init__.py +0 -0
  30. {threedi_modelchecker-2.18.19.dev0 → threedi_modelchecker-2.18.19.dev1}/threedi_modelchecker/tests/data/empty.gpkg +0 -0
  31. {threedi_modelchecker-2.18.19.dev0 → threedi_modelchecker-2.18.19.dev1}/threedi_modelchecker/tests/data/empty.sqlite +0 -0
  32. {threedi_modelchecker-2.18.19.dev0 → threedi_modelchecker-2.18.19.dev1}/threedi_modelchecker/tests/factories.py +0 -0
  33. {threedi_modelchecker-2.18.19.dev0 → threedi_modelchecker-2.18.19.dev1}/threedi_modelchecker/tests/test_checks_base.py +0 -0
  34. {threedi_modelchecker-2.18.19.dev0 → threedi_modelchecker-2.18.19.dev1}/threedi_modelchecker/tests/test_checks_factories.py +0 -0
  35. {threedi_modelchecker-2.18.19.dev0 → threedi_modelchecker-2.18.19.dev1}/threedi_modelchecker/tests/test_checks_location.py +0 -0
  36. {threedi_modelchecker-2.18.19.dev0 → threedi_modelchecker-2.18.19.dev1}/threedi_modelchecker/tests/test_checks_other.py +0 -0
  37. {threedi_modelchecker-2.18.19.dev0 → threedi_modelchecker-2.18.19.dev1}/threedi_modelchecker/tests/test_checks_raster.py +0 -0
  38. {threedi_modelchecker-2.18.19.dev0 → threedi_modelchecker-2.18.19.dev1}/threedi_modelchecker/tests/test_checks_timeseries.py +0 -0
  39. {threedi_modelchecker-2.18.19.dev0 → threedi_modelchecker-2.18.19.dev1}/threedi_modelchecker/tests/test_error_messages.py +0 -0
  40. {threedi_modelchecker-2.18.19.dev0 → threedi_modelchecker-2.18.19.dev1}/threedi_modelchecker/tests/test_exporters.py +0 -0
  41. {threedi_modelchecker-2.18.19.dev0 → threedi_modelchecker-2.18.19.dev1}/threedi_modelchecker/tests/test_model_checks.py +0 -0
  42. {threedi_modelchecker-2.18.19.dev0 → threedi_modelchecker-2.18.19.dev1}/threedi_modelchecker.egg-info/SOURCES.txt +0 -0
  43. {threedi_modelchecker-2.18.19.dev0 → threedi_modelchecker-2.18.19.dev1}/threedi_modelchecker.egg-info/dependency_links.txt +0 -0
  44. {threedi_modelchecker-2.18.19.dev0 → threedi_modelchecker-2.18.19.dev1}/threedi_modelchecker.egg-info/entry_points.txt +0 -0
  45. {threedi_modelchecker-2.18.19.dev0 → threedi_modelchecker-2.18.19.dev1}/threedi_modelchecker.egg-info/requires.txt +0 -0
  46. {threedi_modelchecker-2.18.19.dev0 → threedi_modelchecker-2.18.19.dev1}/threedi_modelchecker.egg-info/top_level.txt +0 -0
@@ -9,6 +9,7 @@ Changelog of threedi-modelchecker
9
9
  - Add check (E1028 and E1209) for matching time units for boundary conditions (nens/rana#3619)
10
10
  - Add check (W0220) that warns when the sum of the weights in MeasureMap for a single control are not 1+/-0.01 (nens/rana#3597)
11
11
  - Add check (W0058) that warns when a closed culvert or pipe is embedded (nens/threedi-modelchecker#408)
12
+ - Fix bugs that could cause checks W0053, I0057, W0058 and W0098 to crash (nens/rana#3933)-
12
13
 
13
14
 
14
15
  2.18.18 (2026-04-10)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: threedi-modelchecker
3
- Version: 2.18.19.dev0
3
+ Version: 2.18.19.dev1
4
4
  Summary: Checks validity of a 3Di schematisation
5
5
  Author-email: Nelen & Schuurmans <info@nelen-schuurmans.nl>
6
6
  License: MIT
@@ -1,5 +1,5 @@
1
1
  from .model_checks import * # NOQA
2
2
 
3
3
  # fmt: off
4
- __version__ = '2.18.19.dev0'
4
+ __version__ = '2.18.19.dev1'
5
5
  # fmt: on
@@ -309,7 +309,10 @@ class CrossSectionYZIncreasingWidthIfOpenCheck(CrossSectionBaseCheck):
309
309
 
310
310
 
311
311
  def get_widths_heights_for_tabulated_record(record):
312
- if not record.cross_section_shape.is_tabulated:
312
+ if (
313
+ record.cross_section_shape is None
314
+ or not record.cross_section_shape.is_tabulated
315
+ ):
313
316
  raise ValueError(
314
317
  "get_widths_heighs_for_tabulated_record cannot handle tabulated shaptes"
315
318
  )
@@ -331,6 +334,8 @@ def get_widths_heights_for_tabulated_record(record):
331
334
 
332
335
 
333
336
  def cross_section_configuration_for_record(record):
337
+ if record.cross_section_shape is None:
338
+ return None, None, None
334
339
  if record.cross_section_shape.is_tabulated:
335
340
  # Handle empty cross section table by returning all None to prevent issues in parsing
336
341
  # Note that CrossSectionNullCheck already checks for this
@@ -468,6 +468,13 @@ class OpenChannelsWithNestedNewton(BaseCheck):
468
468
  invalids.append(record)
469
469
  return invalids
470
470
 
471
+ def to_check(self, session: Session):
472
+ return (
473
+ super()
474
+ .to_check(session)
475
+ .where(self.table.c.cross_section_shape.isnot(None))
476
+ )
477
+
471
478
  def description(self) -> str:
472
479
  return (
473
480
  f"{self.column_name} has a closed cross section definition while "
@@ -642,6 +642,11 @@ def test_cross_section_configuration_not_tabulated_raise():
642
642
  {"cross_section_table": ""},
643
643
  (None, None, None),
644
644
  ),
645
+ (
646
+ None,
647
+ {},
648
+ (None, None, None),
649
+ ),
645
650
  ],
646
651
  )
647
652
  def test_cross_section_configuration_for_record(session, shape, kwargs, expected):
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: threedi-modelchecker
3
- Version: 2.18.19.dev0
3
+ Version: 2.18.19.dev1
4
4
  Summary: Checks validity of a 3Di schematisation
5
5
  Author-email: Nelen & Schuurmans <info@nelen-schuurmans.nl>
6
6
  License: MIT