Skip to content

Commit

Permalink
renaming modules and minor comments change
Browse files Browse the repository at this point in the history
  • Loading branch information
rizac committed Dec 4, 2024
1 parent 309f993 commit 26ca064
Show file tree
Hide file tree
Showing 14 changed files with 36 additions and 36 deletions.
2 changes: 1 addition & 1 deletion egsim/api/forms/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@
from egsim.smtk import (validate_inputs, harmonize_input_gsims,
harmonize_input_imts, gsim)
from egsim.smtk.registry import gsim_info
from egsim.smtk.validators import IncompatibleModelImtError, ImtError, ModelError
from egsim.smtk.validation import IncompatibleModelImtError, ImtError, ModelError

_base_singleton_renderer = BaseRenderer() # singleton no-op renderer, see below

Expand Down
4 changes: 2 additions & 2 deletions egsim/api/views.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,11 +14,11 @@
from django.http.response import HttpResponse
from django.views.generic.base import View

from ..smtk.converters import dataframe2dict
from egsim.smtk.converters import dataframe2dict
from egsim.smtk.validation import ModelError
from .forms import APIForm, EgsimBaseForm, GsimInfoForm
from .forms.scenarios import PredictionsForm
from .forms.residuals import ResidualsForm
from ..smtk.validators import ModelError


class MimeType: # noqa
Expand Down
3 changes: 1 addition & 2 deletions egsim/app/forms.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,8 +12,7 @@
from django.forms.fields import ChoiceField, CharField

from egsim.smtk.flatfile import ColumnType
from egsim.smtk.registry import Clabel
from egsim.smtk.validators import sa_period
from egsim.smtk.registry import Clabel, sa_period
from .plotly import (colors_cycle, axis_type, axis_range, scatter_trace,
bar_trace, line_trace, histogram_trace, AxisType)
from ..smtk.converters import datetime2float
Expand Down
2 changes: 1 addition & 1 deletion egsim/smtk/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,6 @@
from .registry import (registered_gsims, registered_imts, gsim, imt,
intensity_measures_defined_for, get_ground_motion_values,
get_sa_limits, gsim_name, ground_motion_properties_required_by)
from .validators import (InputError, harmonize_input_gsims,
from .validation import (InputError, harmonize_input_gsims,
harmonize_input_imts, validate_inputs)

2 changes: 1 addition & 1 deletion egsim/smtk/converters.py
Original file line number Diff line number Diff line change
Expand Up @@ -114,7 +114,7 @@ def dataframe2dict(
assert orient in ('list', 'dict'), 'orient should be either "list" ot "dict"'
if not as_json and not drop_empty_levels:
# use pandas default method:
return dframe.to_dict(orient=orient)
return dframe.to_dict(orient=orient) # noqa
# customized output:
output = {}
df_na = None
Expand Down
3 changes: 2 additions & 1 deletion egsim/smtk/flatfile.py
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,8 @@
except ImportError:
from yaml import SafeLoader # same as using yaml.safe_load

from .validators import sa_period, InputError, ConflictError
from egsim.smtk.registry import sa_period
from egsim.smtk.validation import InputError, ConflictError

_csv_default_args = (
('na_values', ("", "null", "NULL", "None",
Expand Down
20 changes: 20 additions & 0 deletions egsim/smtk/registry.py
Original file line number Diff line number Diff line change
Expand Up @@ -98,6 +98,26 @@ def imt_name(imtx: Union[Callable, IMT]) -> str:
return imtx.__name__


def sa_period(obj: Union[float, str, IMT]) -> Union[float, None]:
"""Return the period (float) from the given `obj` argument, or None if `obj`
does not indicate a Spectral Acceleration object/string with a finite period
(e.g. "SA(NaN)", "SA(inf)", "SA" return None).
:arg: str or `IMT` instance, such as "SA(1.0)" or `imt.SA(1.0)`
"""
try:
imt_inst = imt(obj)
if not imt_name(imt_inst).startswith('SA('):
return None
except (TypeError, KeyError, ValueError):
return None

period = imt_inst.period
# check also that the period is finite (SA('inf') and SA('nan') are possible:
# this function is intended to return a "workable" period):
return float(period) if np.isfinite(period) else None


def get_sa_limits(
model: Union[str, GMPE]
) -> Union[tuple[float, float], None]:
Expand Down
4 changes: 2 additions & 2 deletions egsim/smtk/residuals.py
Original file line number Diff line number Diff line change
Expand Up @@ -21,9 +21,9 @@

from .flatfile import (FlatfileError, MissingColumnError, FlatfileMetadata,
ColumnDataError, IncompatibleColumnError, EVENT_ID_COLUMN_NAME)
from .validators import (validate_inputs, harmonize_input_gsims, sa_period,
from .validation import (validate_inputs, harmonize_input_gsims,
harmonize_input_imts, validate_imt_sa_limits, ModelError)
from .registry import (get_ground_motion_values, Clabel,
from .registry import (get_ground_motion_values, Clabel, sa_period,
ground_motion_properties_required_by)
from .converters import vs30_to_z1pt0_cy14, vs30_to_z2pt5_cb14

Expand Down
2 changes: 1 addition & 1 deletion egsim/smtk/scenarios.py
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@
from .registry import get_ground_motion_values, Clabel
from .flatfile import FlatfileMetadata
from .converters import vs30_to_z1pt0_cy14, vs30_to_z2pt5_cb14
from .validators import (validate_inputs, harmonize_input_gsims,
from .validation import (validate_inputs, harmonize_input_gsims,
harmonize_input_imts, validate_imt_sa_limits, ModelError)


Expand Down
22 changes: 1 addition & 21 deletions egsim/smtk/validators.py → egsim/smtk/validation.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
from openquake.hazardlib.gsim.base import GMPE

from .registry import (gsim_name, intensity_measures_defined_for, gsim, imt,
get_sa_limits, imt_name)
get_sa_limits, imt_name, sa_period)


def harmonize_input_gsims(gsims: Iterable[Union[str, GMPE]]) -> dict[str, GMPE]:
Expand Down Expand Up @@ -70,26 +70,6 @@ def _imtkey(imt_inst) -> tuple[str, float]:
return imt_name(imt_inst), -np.inf


def sa_period(obj: Union[float, str, IMT]) -> Union[float, None]:
"""Return the period (float) from the given `obj` argument, or None if `obj`
does not indicate a Spectral Acceleration object/string with a finite period
(e.g. "SA(NaN)", "SA(inf)", "SA" return None).
:arg: str or `IMT` instance, such as "SA(1.0)" or `imt.SA(1.0)`
"""
try:
imt_inst = imt(obj)
if not imt_name(imt_inst).startswith('SA('):
return None
except (TypeError, KeyError, ValueError):
return None

period = imt_inst.period
# check also that the period is finite (SA('inf') and SA('nan') are possible:
# this function is intended to return a "workable" period):
return float(period) if np.isfinite(period) else None


def validate_inputs(gsims: dict[str, GMPE], imts: dict[str, IMT]):
"""Validate the input ground motion models (`gsims`)
and intensity measures types (`imts`), raising `IncompatibleInput` in case
Expand Down
2 changes: 1 addition & 1 deletion tests/smtk/flatfile/test_flatfile_io.py
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@
get_dtype_of, optimize_flatfile_dataframe, ColumnDtype,
FlatfileQueryError)
from egsim.smtk.flatfile import FlatfileMetadata, _load_flatfile_metadata
from egsim.smtk.validators import ConflictError
from egsim.smtk.validation import ConflictError


def test_read_flatifle_yaml():
Expand Down
2 changes: 1 addition & 1 deletion tests/smtk/residuals/test_residuals.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@
from egsim.smtk.flatfile import read_flatfile, ColumnType
from scipy.constants import g
from egsim.smtk.registry import Clabel
from egsim.smtk.validators import ModelError
from egsim.smtk.validation import ModelError

# load flatfile once:
BASE_DATA_PATH = os.path.join(os.path.dirname(__file__), "data")
Expand Down
2 changes: 1 addition & 1 deletion tests/smtk/scenarios/test_scenarios_predictions.py
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@
from egsim.smtk.registry import Clabel
from egsim.smtk.flatfile import ColumnType, FlatfileMetadata
from egsim.smtk import scenarios
from egsim.smtk.validators import ModelError
from egsim.smtk.validation import ModelError

BASE_DATA_PATH = os.path.join(os.path.dirname(__file__), "data")

Expand Down
2 changes: 1 addition & 1 deletion tests/smtk/test_validators.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
from openquake.hazardlib import imt

from egsim.smtk import validate_inputs, harmonize_input_gsims, harmonize_input_imts, gsim
from egsim.smtk.validators import IncompatibleModelImtError, validate_imt_sa_limits
from egsim.smtk.validation import IncompatibleModelImtError, validate_imt_sa_limits


def test_invalid_imts(capsys):
Expand Down

0 comments on commit 26ca064

Please sign in to comment.