pycsamt.seg.base
Base classes for SEG-EDI objects and components.
This module provides a small reusable base class that standardizes:
string representation, pretty printing of key/value lines in the
SEG-EDI style, and simple (de)serialization helpers.
Subclasses only need to:
- set _section (e.g., "HEAD", "INFO", …)
- define typed attributes (via __annotations__ or dataclass)
- optionally override validate or value formatting if needed.
Classes
-
class pycsamt.seg.base.Base(*args, verbose=0, logger=None, **kwargs)[source]
Bases: object
- Parameters:
verbose (int)
-
INDENT: int = 2
-
PER_LINE: int = 6
-
FLOAT_FMT: str = '{: .6E}'
-
class pycsamt.seg.base.BaseMixin(*args, verbose=0, logger=None, **kwargs)[source]
Bases: Base
- Parameters:
verbose (int)
-
class pycsamt.seg.base.SEGBase(*args, verbose=0, logger=None, **kwargs)[source]
Bases: Base
- Parameters:
verbose (int)
-
class pycsamt.seg.base.EDIComponentBase(*args, verbose=0, logger=None, **kwargs)[source]
Bases: Base
- Parameters:
verbose (int)
-
to_dict(*, exclude_none=True)[source]
- Parameters:
exclude_none (bool)
- Return type:
dict[str, Any]
-
classmethod from_dict(data)[source]
- Parameters:
data (Mapping[str, Any])
- Return type:
EDIComponentBase
-
to_lines(*, only=None, indent=None)[source]
- Parameters:
-
- Return type:
list[str]
-
to_text()[source]
- Return type:
str
-
update(**kw)[source]
- Parameters:
kw (Any)
- Return type:
EDIComponentBase
-
clone(**ov)[source]
- Parameters:
ov (Any)
- Return type:
EDIComponentBase
-
validate()[source]
- Return type:
None
-
class pycsamt.seg.base.EdiFileBase(*, path=None, strict_validate=True)[source]
Bases: EDIComponentBase, ABC
- Parameters:
path (Path | None)
strict_validate (bool)
-
path: Path | None = None
-
strict_validate: bool = True
-
block_size: int = 6
-
number_fmt: str = ' 15.6e'
-
sections: dict[str, EDIComponentBase] = {}
-
classmethod from_file(file, **kw)[source]
- Parameters:
-
- Return type:
EdiFileBase
-
write_file(file=None, *, overwrite=True)[source]
- Parameters:
-
- Return type:
Path
-
abstractmethod read()[source]
- Return type:
EdiFileBase
-
abstractmethod compose()[source]
- Return type:
str | list[str]
-
add_section(name, s)[source]
- Parameters:
-
- Return type:
None
-
get_section(name)[source]
- Parameters:
name (str)
- Return type:
EDIComponentBase | None
-
remove_section(name)[source]
- Parameters:
name (str)
- Return type:
None
-
iter_sections()[source]
- Return type:
Iterable[tuple[str, EDIComponentBase]]
-
property dataid: str | None[source]
-
property lat: float | None[source]
-
property lon: float | None[source]
-
property elev: float | None[source]
-
static normalize_section_title(title)[source]
- Parameters:
title (str)
- Return type:
str
- Parameters:
title (str)
- Return type:
str
-
static format_section_head(head)[source]
- Parameters:
head (str)
- Return type:
str
-
format_kv(key, value, *, quote=False, width=None)[source]
- Parameters:
-
- Return type:
str
-
format_data_block(title, data, *, per_line=None, header_comment=True, count_comment=True)[source]
- Parameters:
-
- Return type:
list[str]
-
static ensure_descending_frequency(freq)[source]
- Parameters:
freq (Iterable[float])
- Return type:
tuple[list[float], list[int] | None]
-
to_dict()[source]
- Return type:
dict[str, Any]
-
classmethod from_dict(data)[source]
- Parameters:
data (Mapping[str, Any])
- Return type:
EdiFileBase
-
summary()[source]
- Return type:
str
-
compose_to_string()[source]
- Return type:
str