py-pilecore 0.2.4__tar.gz → 0.2.5__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.

Potentially problematic release.


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

Files changed (29) hide show
  1. {py-pilecore-0.2.4/src/py_pilecore.egg-info → py-pilecore-0.2.5}/PKG-INFO +2 -2
  2. {py-pilecore-0.2.4 → py-pilecore-0.2.5}/pyproject.toml +2 -2
  3. {py-pilecore-0.2.4 → py-pilecore-0.2.5/src/py_pilecore.egg-info}/PKG-INFO +2 -2
  4. {py-pilecore-0.2.4 → py-pilecore-0.2.5}/src/py_pilecore.egg-info/requires.txt +1 -1
  5. {py-pilecore-0.2.4 → py-pilecore-0.2.5}/src/pypilecore/_version.py +1 -1
  6. {py-pilecore-0.2.4 → py-pilecore-0.2.5}/src/pypilecore/input/grouper_properties.py +5 -5
  7. {py-pilecore-0.2.4 → py-pilecore-0.2.5}/src/pypilecore/input/multi_cpt.py +9 -6
  8. {py-pilecore-0.2.4 → py-pilecore-0.2.5}/src/pypilecore/input/soil_properties.py +4 -2
  9. {py-pilecore-0.2.4 → py-pilecore-0.2.5}/src/pypilecore/results/grouper_result.py +7 -6
  10. {py-pilecore-0.2.4 → py-pilecore-0.2.5}/tests/test_input.py +8 -5
  11. {py-pilecore-0.2.4 → py-pilecore-0.2.5}/LICENSE +0 -0
  12. {py-pilecore-0.2.4 → py-pilecore-0.2.5}/README.md +0 -0
  13. {py-pilecore-0.2.4 → py-pilecore-0.2.5}/setup.cfg +0 -0
  14. {py-pilecore-0.2.4 → py-pilecore-0.2.5}/src/py_pilecore.egg-info/SOURCES.txt +0 -0
  15. {py-pilecore-0.2.4 → py-pilecore-0.2.5}/src/py_pilecore.egg-info/dependency_links.txt +0 -0
  16. {py-pilecore-0.2.4 → py-pilecore-0.2.5}/src/py_pilecore.egg-info/top_level.txt +0 -0
  17. {py-pilecore-0.2.4 → py-pilecore-0.2.5}/src/pypilecore/__init__.py +0 -0
  18. {py-pilecore-0.2.4 → py-pilecore-0.2.5}/src/pypilecore/api.py +0 -0
  19. {py-pilecore-0.2.4 → py-pilecore-0.2.5}/src/pypilecore/exceptions.py +0 -0
  20. {py-pilecore-0.2.4 → py-pilecore-0.2.5}/src/pypilecore/input/__init__.py +0 -0
  21. {py-pilecore-0.2.4 → py-pilecore-0.2.5}/src/pypilecore/input/pile_properties.py +0 -0
  22. {py-pilecore-0.2.4 → py-pilecore-0.2.5}/src/pypilecore/plot_utils.py +0 -0
  23. {py-pilecore-0.2.4 → py-pilecore-0.2.5}/src/pypilecore/results/__init__.py +0 -0
  24. {py-pilecore-0.2.4 → py-pilecore-0.2.5}/src/pypilecore/results/load_settlement.py +0 -0
  25. {py-pilecore-0.2.4 → py-pilecore-0.2.5}/src/pypilecore/results/multi_cpt_results.py +0 -0
  26. {py-pilecore-0.2.4 → py-pilecore-0.2.5}/src/pypilecore/results/pile_properties.py +0 -0
  27. {py-pilecore-0.2.4 → py-pilecore-0.2.5}/src/pypilecore/results/single_cpt_results.py +0 -0
  28. {py-pilecore-0.2.4 → py-pilecore-0.2.5}/src/pypilecore/results/soil_properties.py +0 -0
  29. {py-pilecore-0.2.4 → py-pilecore-0.2.5}/src/pypilecore/utils.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: py-pilecore
3
- Version: 0.2.4
3
+ Version: 0.2.5
4
4
  Summary: Public python SDK for the CEMS PileCore web-API.
5
5
  License: MIT License
6
6
 
@@ -32,7 +32,7 @@ License-File: LICENSE
32
32
  Requires-Dist: pygef<1,>0.8
33
33
  Requires-Dist: numpy<2,>1
34
34
  Requires-Dist: pandas<3,>2
35
- Requires-Dist: cems-nuclei[client]<1,>0.3
35
+ Requires-Dist: cems-nuclei[client]<1,>=0.5
36
36
  Requires-Dist: matplotlib<4,>=3.8
37
37
  Requires-Dist: tqdm[notebook]<5,>4
38
38
  Requires-Dist: natsort<9,>8
@@ -4,14 +4,14 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "py-pilecore"
7
- version = "0.2.4"
7
+ version = "0.2.5"
8
8
  description = "Public python SDK for the CEMS PileCore web-API."
9
9
  requires-python = ">=3.9"
10
10
  dependencies = [
11
11
  'pygef>0.8,<1',
12
12
  'numpy>1,<2',
13
13
  'pandas>2,<3',
14
- 'cems-nuclei[client]>0.3,<1',
14
+ 'cems-nuclei[client]>=0.5,<1',
15
15
  'matplotlib>=3.8,<4',
16
16
  "tqdm[notebook]>4,<5",
17
17
  "natsort>8,<9",
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: py-pilecore
3
- Version: 0.2.4
3
+ Version: 0.2.5
4
4
  Summary: Public python SDK for the CEMS PileCore web-API.
5
5
  License: MIT License
6
6
 
@@ -32,7 +32,7 @@ License-File: LICENSE
32
32
  Requires-Dist: pygef<1,>0.8
33
33
  Requires-Dist: numpy<2,>1
34
34
  Requires-Dist: pandas<3,>2
35
- Requires-Dist: cems-nuclei[client]<1,>0.3
35
+ Requires-Dist: cems-nuclei[client]<1,>=0.5
36
36
  Requires-Dist: matplotlib<4,>=3.8
37
37
  Requires-Dist: tqdm[notebook]<5,>4
38
38
  Requires-Dist: natsort<9,>8
@@ -1,7 +1,7 @@
1
1
  pygef<1,>0.8
2
2
  numpy<2,>1
3
3
  pandas<3,>2
4
- cems-nuclei[client]<1,>0.3
4
+ cems-nuclei[client]<1,>=0.5
5
5
  matplotlib<4,>=3.8
6
6
  tqdm[notebook]<5,>4
7
7
  natsort<9,>8
@@ -4,4 +4,4 @@ try:
4
4
  __version__ = version("py-pilecore")
5
5
  # during CI
6
6
  except PackageNotFoundError:
7
- __version__ = "0.2.4"
7
+ __version__ = "0.2.5"
@@ -121,11 +121,11 @@ def create_grouper_payload(
121
121
  overrule_nan:
122
122
  Default is 0.0
123
123
  The default behavior is to replace NaN with zero, for one of the following
124
- attributes ["R_b_cal", "F_nk_cal", "R_s_cal"].
124
+ attributes ["R_b_cal", "F_nk_d", "R_s_cal"].
125
125
  skip_nan:
126
126
  Default is False
127
127
  If True the CPTs are skipped that have NaN values in one of the following
128
- attributes ["R_b_cal", "F_nk_cal", "R_s_cal"], this means that they are not used in the grouper method.
128
+ attributes ["R_b_cal", "F_nk_d", "R_s_cal"], this means that they are not used in the grouper method.
129
129
 
130
130
  Raises
131
131
  ------
@@ -172,7 +172,7 @@ def create_grouper_payload(
172
172
  f" CPT {name} does not have a x-coordinate or y-coordinate"
173
173
  )
174
174
 
175
- for item in ["R_b_cal", "F_nk_cal", "R_s_cal"]:
175
+ for item in ["R_b_cal", "F_nk_d", "R_s_cal"]:
176
176
  if np.isnan(cpt_result.table.__getattribute__(item)).any():
177
177
  if skip_nan:
178
178
  has_nan = True
@@ -201,7 +201,7 @@ def create_grouper_payload(
201
201
  cpt_result.table.R_b_cal, nan=overrule_nan
202
202
  ).tolist(),
203
203
  "negative_friction": np.nan_to_num(
204
- cpt_result.table.F_nk_cal, nan=overrule_nan
204
+ cpt_result.table.F_nk_d, nan=overrule_nan
205
205
  ).tolist(),
206
206
  "shaft_bearing_capacity": np.nan_to_num(
207
207
  cpt_result.table.R_s_cal, nan=overrule_nan
@@ -227,7 +227,7 @@ def create_grouper_payload(
227
227
  f"upper boundary: {max(pile_tip_level)}, lower boundary: {min(pile_tip_level)}. \n"
228
228
  )
229
229
  raise ValueError(msg)
230
- payload["pile_tip_level"] = list(raw_lengths[0])
230
+ payload["pile_tip_level"] = sorted(list(raw_lengths[0]), reverse=True)
231
231
 
232
232
  return payload
233
233
 
@@ -15,9 +15,9 @@ def create_multi_cpt_payload(
15
15
  cptdata_objects: List[CPTData],
16
16
  classify_tables: Dict[str, dict],
17
17
  groundwater_level_nap: float,
18
- pile_type: Literal["A", "B", "C", "D", "E", "F", "G"],
19
- specification: Literal["concrete", "steel", "micro", "wood"],
20
- installation: Literal["1", "2", "3", "4", "5", "6", "7"],
18
+ pile_type: Literal["concrete", "steel", "micro", "wood"],
19
+ specification: Literal["1", "2", "3", "4", "5", "6", "7"],
20
+ installation: Literal["A", "B", "C", "D", "E", "F", "G"],
21
21
  pile_shape: Literal["round", "rect"],
22
22
  friction_range_strategy: Literal[
23
23
  "manual", "lower_bound", "settlement_driven"
@@ -25,7 +25,8 @@ def create_multi_cpt_payload(
25
25
  stiff_construction: bool = False,
26
26
  cpts_group: List[str] | None = None,
27
27
  fixed_negative_friction_range_nap: Tuple[float, float] | None = None,
28
- fixed_positive_friction_range_nap: Tuple[float, str | float] | None = None,
28
+ fixed_positive_friction_range_nap: Tuple[float, Literal["ptl"] | float]
29
+ | None = None,
29
30
  negative_shaft_friction: float | None = None,
30
31
  apply_qc3_reduction: bool | None = None,
31
32
  relative_pile_load: float | None = 0.7,
@@ -34,9 +35,11 @@ def create_multi_cpt_payload(
34
35
  pile_head_level_nap: float | Literal["surface"] = "surface",
35
36
  excavation_depth_nap: float | None = None,
36
37
  excavation_param_t: float = 1.0,
37
- individual_negative_friction_range_nap: Mapping[str, Tuple[float, str]]
38
+ individual_negative_friction_range_nap: Mapping[str, Tuple[float, float]]
38
39
  | None = None,
39
- individual_positive_friction_range_nap: Mapping[str, Tuple[float, str]]
40
+ individual_positive_friction_range_nap: Mapping[
41
+ str, Tuple[float, Literal["ptl"] | float]
42
+ ]
40
43
  | None = None,
41
44
  diameter_base: float | None = None,
42
45
  diameter_shaft: float | None = None,
@@ -26,9 +26,11 @@ def create_soil_properties_payload(
26
26
  groundwater_level_nap: float,
27
27
  friction_range_strategy: Literal["manual", "lower_bound", "settlement_driven"],
28
28
  excavation_depth_nap: float | None = None,
29
- individual_negative_friction_range_nap: Mapping[Any, Tuple[float, str]]
29
+ individual_negative_friction_range_nap: Mapping[Any, Tuple[float, float]]
30
30
  | None = None,
31
- individual_positive_friction_range_nap: Mapping[Any, Tuple[float, str]]
31
+ individual_positive_friction_range_nap: Mapping[
32
+ Any, Tuple[float, Literal["ptl"] | float]
33
+ ]
32
34
  | None = None,
33
35
  ) -> Tuple[List[dict], Dict[str, dict]]:
34
36
  """
@@ -528,14 +528,15 @@ class GrouperResults:
528
528
 
529
529
  - cpts within a subgroup
530
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
531
+ There are no other CPTs in between the members of the subgroup. The
532
+ group is also compliant with the NEN9997-1 3.2.3 centre to centre
533
+ validation.
533
534
  - 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
535
+ There are no other CPTs in between the members of the subgroup. The
536
+ centre-to-centre check failed and so the group does not follow the
537
+ NEN9997-1 3.2.3 centre to centre validation.
536
538
  - 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
539
+ There are other CPTs in between the members of the subgroup.
539
540
  - valid depth of the subgroup
540
541
 
541
542
  Parameters
@@ -313,10 +313,13 @@ def test_create_grouper_payload(
313
313
  mock_multi_cpt_bearing_response, mock_results_passover
314
314
  )
315
315
 
316
- create_grouper_payload(
316
+ payload = create_grouper_payload(
317
317
  cptgroupresults.cpt_results.cpt_results_dict, pile_load_uls=100
318
318
  )
319
319
 
320
+ # check if pile tip levels are sorted
321
+ assert payload["pile_tip_level"] == [1.0, 0.5, 0.0, -0.5]
322
+
320
323
  # test value error
321
324
  single_cpt_results = cptgroupresults.cpt_results.cpt_results_dict["9"]
322
325
  with pytest.raises(ValueError):
@@ -430,8 +433,8 @@ def test_create_multi_cpt_payload_extended_round_pile(
430
433
  gamma_f_nk=1.2,
431
434
  gamma_r_s=1.5,
432
435
  gamma_r_b=1.4,
433
- individual_negative_friction_range_nap={cpt.alias: [0.0, -5.0]},
434
- individual_positive_friction_range_nap={cpt.alias: [-5.0, "ptl"]},
436
+ individual_negative_friction_range_nap={cpt.alias: (0.0, -5.0)},
437
+ individual_positive_friction_range_nap={cpt.alias: (-5.0, "ptl")},
435
438
  diameter_shaft=0.25,
436
439
  height_base=0.5,
437
440
  settlement_curve=2,
@@ -536,8 +539,8 @@ def test_create_multi_cpt_payload_extended_rect_pile(
536
539
  gamma_f_nk=1.2,
537
540
  gamma_r_s=1.5,
538
541
  gamma_r_b=1.4,
539
- individual_negative_friction_range_nap={cpt.alias: [0.0, -5.0]},
540
- individual_positive_friction_range_nap={cpt.alias: [-5.0, "ptl"]},
542
+ individual_negative_friction_range_nap={cpt.alias: (0.0, -5.0)},
543
+ individual_positive_friction_range_nap={cpt.alias: (-5.0, "ptl")},
541
544
  width_base_small=0.25,
542
545
  width_shaft_large=0.3,
543
546
  width_shaft_small=0.25,
File without changes
File without changes
File without changes