Skip to content

Commit cfb0461

Browse files
committed
[CLN] Refactor Sections class and imports for clarity
Simplified imports and removed unused `SectionDefinition` class. Adjusted and clarified type annotations while ensuring internal fields are properly excluded from serialization.
1 parent 790924b commit cfb0461

File tree

1 file changed

+22
-23
lines changed

1 file changed

+22
-23
lines changed

gempy/core/data/grid_modules/sections_grid.py

Lines changed: 22 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -4,25 +4,16 @@
44
import dataclasses
55
import numpy as np
66

7-
from gempy.core.data.core_utils import calculate_line_coordinates_2points
8-
from gempy.optional_dependencies import require_pandas
7+
from ..core_utils import calculate_line_coordinates_2points
8+
from ..encoders.converters import short_array_type
9+
from ....optional_dependencies import require_pandas
910

1011
try:
1112
import pandas as pd
1213
except ImportError:
1314
pandas = None
1415

1516

16-
@dataclasses.dataclass
17-
class SectionDefinition:
18-
"""
19-
A single cross‐section’s raw parameters.
20-
"""
21-
start: Tuple[float, float]
22-
stop: Tuple[float, float]
23-
resolution: Tuple[int, int]
24-
25-
2617
@dataclasses.dataclass
2718
class Sections:
2819
"""
@@ -40,18 +31,25 @@ class Sections:
4031

4132
# user‐provided inputs
4233

43-
z_ext: Tuple[float, float]
44-
section_dict: Dict[str, tuple[list[int]]]
34+
z_ext: Tuple[float, float] | short_array_type
35+
section_dict: Dict[
36+
str,
37+
Tuple[
38+
Tuple[float, float], # start
39+
Tuple[float, float], # stop
40+
Tuple[int, int] # resolution
41+
]
42+
]
4543

4644
# computed/internal (will be serialized too unless excluded)
47-
names: List[str] = Field(default_factory=list)
48-
points: List[List[Tuple[float, float]]] = Field(default_factory=list)
49-
resolution: List[Tuple[int, int]] = Field(default_factory=list)
50-
length: np.ndarray = Field(default_factory=lambda: np.array([0]), exclude=False)
51-
dist: np.ndarray = Field(default_factory=lambda: np.array([]), exclude=False)
52-
df: Optional[pd.DataFrame] = Field(default_factory=None, exclude=False)
53-
values: np.ndarray = Field(default_factory=lambda: np.empty((0, 3)), exclude=False)
54-
extent: Optional[np.ndarray] = None
45+
names: List[str] = Field(default_factory=list, exclude=True)
46+
points: List[List[Tuple[float, float]]] = Field(default_factory=list, exclude=True)
47+
resolution: List[Tuple[int, int]] = Field(default_factory=list, exclude=True)
48+
length: np.ndarray = Field(default_factory=lambda: np.array([0]), exclude=True)
49+
dist: np.ndarray = Field(default_factory=lambda: np.array([]), exclude=True)
50+
df: Optional[pd.DataFrame] = Field(default=None, exclude=True)
51+
values: np.ndarray = Field(default_factory=lambda: np.empty((0, 3)), exclude=True)
52+
extent: Optional[np.ndarray] = Field(default=None, exclude=True)
5553

5654
# def __init__(self, regular_grid=None, z_ext=None, section_dict=None):
5755
# pd = require_pandas()
@@ -75,12 +73,13 @@ class Sections:
7573
# self.set_sections(section_dict)
7674
def __post_init__(self):
7775
self.initialize_computations()
76+
pass
7877

7978
# @model_validator(mode="after")
8079
# def init_class(self):
8180
# self.initialize_computations()
8281
# return self
83-
82+
#
8483
def initialize_computations(self):
8584
# copy names
8685
self.names = list(self.section_dict.keys())

0 commit comments

Comments
 (0)