py-pilecore 0.2.0__py3-none-any.whl → 0.2.2__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.

Potentially problematic release.


This version of py-pilecore might be problematic. Click here for more details.

@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: py-pilecore
3
- Version: 0.2.0
3
+ Version: 0.2.2
4
4
  Summary: Public python SDK for the CEMS PileCore web-API.
5
5
  License: MIT License
6
6
 
@@ -33,7 +33,7 @@ Requires-Dist: pygef <1,>0.8
33
33
  Requires-Dist: numpy <2,>1
34
34
  Requires-Dist: pandas <3,>2
35
35
  Requires-Dist: cems-nuclei[client] <1,>0.3
36
- Requires-Dist: matplotlib <4,>3
36
+ Requires-Dist: matplotlib <4,>=3.8
37
37
  Requires-Dist: tqdm[notebook] <5,>4
38
38
  Requires-Dist: natsort <9,>8
39
39
  Provides-Extra: docs
@@ -69,6 +69,7 @@ Public python SDK for the CEMS PileCore web-API
69
69
  [![Checked with mypy](https://www.mypy-lang.org/static/mypy_badge.svg)](http://mypy-lang.org/)
70
70
  [![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black)
71
71
  [![Imports: isort](https://img.shields.io/badge/%20imports-isort-%231674b1?style=flat&labelColor=ef8336)](https://pycqa.github.io/isort/)
72
+ [![Coverage Status](https://coveralls.io/repos/github/cemsbv/py-pilecore/badge.svg)](https://coveralls.io/github/cemsbv/py-pilecore)
72
73
 
73
74
 
74
75
  This repository is created by [CEMS BV](https://cemsbv.nl/) and is a public python wrapper around the CEMS [PileCore web-API](https://nuclei.cemsbv.io/#/pilecore/api).
@@ -96,7 +97,7 @@ Go to `personal-access-tokens` and create a new user token.
96
97
 
97
98
  ## Environment
98
99
 
99
- We recommend developing in Python3.9 with a clean virtual environment (using `virtualenv` or `conda`), installing the requirements from the requirements.txt file:
100
+ We recommend developing in Python3.10 with a clean virtual environment (using `virtualenv` or `conda`), installing the requirements from the requirements.txt file:
100
101
 
101
102
  Example using `virtualenv` and `pip` to install the dependencies in a new environment .env on Linux:
102
103
 
@@ -148,7 +149,7 @@ coverage run -m pytest
148
149
 
149
150
  ## Requirements
150
151
 
151
- Requirements are autogenerated by the `pip-compile` command with python 3.9
152
+ Requirements are autogenerated by the `pip-compile` command with python 3.10
152
153
 
153
154
  Install pip-tools with:
154
155
 
@@ -1,23 +1,23 @@
1
1
  pypilecore/__init__.py,sha256=T2Uuao6fboVhrzKI_Sa7jXbcNAUl_PKk9BFdsozOG98,78
2
- pypilecore/_version.py,sha256=Sq1TwzS11voDnsLKeD0g5MLvt8OhQZLjzMiOXn0lYSQ,175
2
+ pypilecore/_version.py,sha256=9aXcu_uSTZO0zKxzM74tTRCZnhqQ6xOalmpQoMa0ves,175
3
3
  pypilecore/api.py,sha256=EWJZuQn6ptJN4i-_GgVVoIF-3XI-lIfk0dJXsMXuFYQ,5109
4
4
  pypilecore/exceptions.py,sha256=-MZOfsxyHLCI0k1-wZFfVsMxc1lya5buuhLks5rxlCo,89
5
5
  pypilecore/plot_utils.py,sha256=rK5_067-4-x7LzZgt_t6ahcGrZInxNrqHqsy0RzCnq8,954
6
6
  pypilecore/utils.py,sha256=ib9LgJBIgWukL7zd_Zk1LP27UTMIZTRJ4RBB6ubn97o,1186
7
- pypilecore/input/__init__.py,sha256=os86dERd440xXlWDI1B_WXG8VnhStcodXMiJRePUHno,516
8
- pypilecore/input/grouper_properties.py,sha256=m95tJkJWHk9-quYbHimax7UrPtIkm99BR9DxQ0SvcS8,10872
9
- pypilecore/input/multi_cpt.py,sha256=0gBhSACNAOFjCoM6GAEBeoQszan5lGDS35cBQMarJCI,18589
7
+ pypilecore/input/__init__.py,sha256=tlmThdPtO8e6L6pqxuRQ7EOHRxYwuIcaNNGlZyAnzig,606
8
+ pypilecore/input/grouper_properties.py,sha256=Dw17aQUyEflPOz3QEOZLx_3A4L0ctmaMtKJgBMWY14Q,10881
9
+ pypilecore/input/multi_cpt.py,sha256=ODrFHakObVBF0nx3-YaY7ZeQwM1wcydvJBjQxjyH7No,19036
10
10
  pypilecore/input/pile_properties.py,sha256=mK8_VRy-tHZCKFHcv8ftMlCEs8KEsZpG9eGLq13hYPA,8400
11
11
  pypilecore/input/soil_properties.py,sha256=ydYW9p3SWurOR-SndocPoyCCb6yWIN9aRjf5ZdpXU0c,6927
12
- pypilecore/results/__init__.py,sha256=4dhcm34Ui55jyn9QhA-R0KZWuFQpbrfWkHx184g-MUE,317
13
- pypilecore/results/grouper_result.py,sha256=qWaUh28QfWy9wG47mckfvB0MXxIW6fu3UJRz6i1qW4k,18881
12
+ pypilecore/results/__init__.py,sha256=ggTI2QzILhX_oNx1YMOih6IVCkBFg8I5-Jyn9Sw3_h0,389
13
+ pypilecore/results/grouper_result.py,sha256=C_6zOeuxhhemzssvQZ-JO3ZNzR0A9BTPduzYVUqkYY8,19596
14
14
  pypilecore/results/load_settlement.py,sha256=EbfTrSvH_g96KE-x8ZjmO8D0mt5KFaQ_-AR8u4blLsU,9752
15
- pypilecore/results/multi_cpt_results.py,sha256=1SlPQYIv7KFpKloZn9Q1cPUMnXbK7dVpkGlPm_WxHkQ,22390
15
+ pypilecore/results/multi_cpt_results.py,sha256=vZLy7CRUHnShVzuiixfzGWZEdxeMMLWv57Xm_x8rDu4,22466
16
16
  pypilecore/results/pile_properties.py,sha256=z1R5UNoYjBem2rS8LMJ_ye2J5ejDoSilU5fCjUrNdUg,28592
17
17
  pypilecore/results/single_cpt_results.py,sha256=-fmlgBPyCSyID7d-u-pPUdu5PLExtyKQc2kXQFNhQvs,17564
18
18
  pypilecore/results/soil_properties.py,sha256=oZYTKSXP5UgxY2vwX-bu_X447KLptuYPpsgFi_E00IQ,20704
19
- py_pilecore-0.2.0.dist-info/LICENSE,sha256=3OCAZXffN0Bettjeya8uF_ZYegyvvCfH1WUt6CrHb_0,1061
20
- py_pilecore-0.2.0.dist-info/METADATA,sha256=CTyXpsGhjw42a9REa0aHw6euEocsQ04_fEgkjQxxB24,5637
21
- py_pilecore-0.2.0.dist-info/WHEEL,sha256=Xo9-1PvkuimrydujYJAjF7pCkriuXBpUPEjma1nZyJ0,92
22
- py_pilecore-0.2.0.dist-info/top_level.txt,sha256=7BKIWZuSkbQtJ0ho5P1JvcaEbHzqADCcBuOduZmIaiI,11
23
- py_pilecore-0.2.0.dist-info/RECORD,,
19
+ py_pilecore-0.2.2.dist-info/LICENSE,sha256=3OCAZXffN0Bettjeya8uF_ZYegyvvCfH1WUt6CrHb_0,1061
20
+ py_pilecore-0.2.2.dist-info/METADATA,sha256=24wOC2CAWO8KCvh3krv4zYWQBy7uVcjRf_6CX49NtBA,5775
21
+ py_pilecore-0.2.2.dist-info/WHEEL,sha256=Xo9-1PvkuimrydujYJAjF7pCkriuXBpUPEjma1nZyJ0,92
22
+ py_pilecore-0.2.2.dist-info/top_level.txt,sha256=7BKIWZuSkbQtJ0ho5P1JvcaEbHzqADCcBuOduZmIaiI,11
23
+ py_pilecore-0.2.2.dist-info/RECORD,,
pypilecore/_version.py CHANGED
@@ -4,4 +4,4 @@ try:
4
4
  __version__ = version("py-pilecore")
5
5
  # during CI
6
6
  except PackageNotFoundError:
7
- __version__ = "0.2.0"
7
+ __version__ = "0.2.2"
@@ -1,7 +1,13 @@
1
- from .grouper_properties import create_grouper_payload, create_grouper_report_payload
2
- from .multi_cpt import create_multi_cpt_payload, create_multi_cpt_report_payload
3
- from .pile_properties import create_pile_properties_payload
4
- from .soil_properties import create_soil_properties_payload
1
+ from pypilecore.input.grouper_properties import (
2
+ create_grouper_payload,
3
+ create_grouper_report_payload,
4
+ )
5
+ from pypilecore.input.multi_cpt import (
6
+ create_multi_cpt_payload,
7
+ create_multi_cpt_report_payload,
8
+ )
9
+ from pypilecore.input.pile_properties import create_pile_properties_payload
10
+ from pypilecore.input.soil_properties import create_soil_properties_payload
5
11
 
6
12
  __all__ = [
7
13
  "create_pile_properties_payload",
@@ -7,7 +7,7 @@ from typing import Any, Dict, List, Literal
7
7
  import numpy as np
8
8
  from shapely.geometry import Polygon, mapping
9
9
 
10
- from ..results import SingleCPTBearingResults
10
+ from pypilecore.results import SingleCPTBearingResults
11
11
 
12
12
  _dft_optimize_result_by = [
13
13
  "minimum_pile_level",
@@ -6,8 +6,8 @@ from typing import Dict, List, Literal, Mapping, Sequence, Tuple
6
6
 
7
7
  from pygef.cpt import CPTData
8
8
 
9
- from .pile_properties import create_pile_properties_payload
10
- from .soil_properties import create_soil_properties_payload
9
+ from pypilecore.input.pile_properties import create_pile_properties_payload
10
+ from pypilecore.input.soil_properties import create_soil_properties_payload
11
11
 
12
12
 
13
13
  def create_multi_cpt_payload(
@@ -28,7 +28,7 @@ def create_multi_cpt_payload(
28
28
  fixed_positive_friction_range_nap: Tuple[float, str | float] | None = None,
29
29
  negative_shaft_friction: float | None = None,
30
30
  apply_qc3_reduction: bool | None = None,
31
- relative_pile_load: float = 0.7,
31
+ relative_pile_load: float | None = 0.7,
32
32
  pile_load_sls: float | None = None,
33
33
  soil_load_sls: float = 0.0,
34
34
  pile_head_level_nap: float | Literal["surface"] = "surface",
@@ -280,6 +280,16 @@ def create_multi_cpt_payload(
280
280
  - if `pile_shape`=="rect" & `width_base_large` is None
281
281
  - if `pile_shape` not in ["rect", "round"]
282
282
  """
283
+ # Input validation
284
+ if excavation_depth_nap is not None and excavation_param_t is None:
285
+ raise ValueError(
286
+ "`excavation_param_t` cannot be None when `excavation_depth_nap` is not None."
287
+ )
288
+ if relative_pile_load is None and pile_load_sls is None:
289
+ raise ValueError(
290
+ "Need at least a value for one of: [`relative_pile_load`, `pile_load_sls`]"
291
+ )
292
+
283
293
  soil_properties_list, results_kwargs = create_soil_properties_payload(
284
294
  cptdata_objects=cptdata_objects,
285
295
  classify_tables=classify_tables,
@@ -1,7 +1,7 @@
1
- from .grouper_result import GrouperResults
2
- from .multi_cpt_results import MultiCPTBearingResults
3
- from .single_cpt_results import SingleCPTBearingResults
4
- from .soil_properties import SoilProperties
1
+ from pypilecore.results.grouper_result import GrouperResults
2
+ from pypilecore.results.multi_cpt_results import MultiCPTBearingResults
3
+ from pypilecore.results.single_cpt_results import SingleCPTBearingResults
4
+ from pypilecore.results.soil_properties import SoilProperties
5
5
 
6
6
  __all__ = [
7
7
  "MultiCPTBearingResults",
@@ -527,6 +527,15 @@ class GrouperResults:
527
527
  Plot contains the:
528
528
 
529
529
  - cpts within a subgroup
530
+ - green:
531
+ Subgroups is spatially coherent, which means there are no other CPTs in between the members
532
+ of the subgroup and follows the NEN9997-1 3.2.3 centre to centre validation
533
+ - orange:
534
+ Subgroups is spatially coherent, which means there are no other CPTs in between the members
535
+ of the subgroup and does not follow the NEN9997-1 3.2.3 centre to centre validation
536
+ - red:
537
+ Subgroups is not spatially coherent, which means there are other CPTs in between the
538
+ members of the subgroup and does not follow the NEN9997-1 3.2.3 centre to centre validation
530
539
  - valid depth of the subgroup
531
540
 
532
541
  Parameters
@@ -8,10 +8,13 @@ import numpy as np
8
8
  import pandas as pd
9
9
  from matplotlib.axes import Axes
10
10
 
11
- from ..exceptions import UserError
12
- from .load_settlement import get_load_settlement_plot
13
- from .pile_properties import PileProperties, create_pile_properties_from_api_response
14
- from .single_cpt_results import SingleCPTBearingResults
11
+ from pypilecore.exceptions import UserError
12
+ from pypilecore.results.load_settlement import get_load_settlement_plot
13
+ from pypilecore.results.pile_properties import (
14
+ PileProperties,
15
+ create_pile_properties_from_api_response,
16
+ )
17
+ from pypilecore.results.single_cpt_results import SingleCPTBearingResults
15
18
 
16
19
  Number = Union[float, int]
17
20