feat: adds magnitude enabled parsing option
This commit is contained in:
parent
2581e722e6
commit
f0e2fa3da9
@ -11,7 +11,8 @@ _logger = logging.getLogger(__name__)
|
|||||||
FILENAME_REGEX = r"(?P<timestamp>\d{8}-\d{6})-(?P<filename_slug>.*)\.realdata\.fast_filter\.bayesrun\.csv"
|
FILENAME_REGEX = r"(?P<timestamp>\d{8}-\d{6})-(?P<filename_slug>.*)\.realdata\.fast_filter\.bayesrun\.csv"
|
||||||
|
|
||||||
MODEL_REGEXES = [
|
MODEL_REGEXES = [
|
||||||
r"geom_(?P<xmin>-?\d+)_(?P<xmax>-?\d+)_(?P<ymin>-?\d+)_(?P<ymax>-?\d+)_(?P<zmin>-?\d+)_(?P<zmax>-?\d+)-orientation_(?P<orientation>free|fixedxy|fixedz)-dipole_count_(?P<avg_filled>\d+)_(?P<field_name>\w*)"
|
r"geom_(?P<xmin>-?\d+)_(?P<xmax>-?\d+)_(?P<ymin>-?\d+)_(?P<ymax>-?\d+)_(?P<zmin>-?\d+)_(?P<zmax>-?\d+)-orientation_(?P<orientation>free|fixedxy|fixedz)-dipole_count_(?P<avg_filled>\d+)_(?P<field_name>\w*)",
|
||||||
|
r"geom_(?P<xmin>-?\d+)_(?P<xmax>-?\d+)_(?P<ymin>-?\d+)_(?P<ymax>-?\d+)_(?P<zmin>-?\d+)_(?P<zmax>-?\d+)-magnitude_(?P<log_magnitude>\d*\.?\d+)-orientation_(?P<orientation>free|fixedxy|fixedz)-dipole_count_(?P<avg_filled>\d+)_(?P<field_name>\w*)",
|
||||||
]
|
]
|
||||||
|
|
||||||
FILE_SLUG_REGEXES = [
|
FILE_SLUG_REGEXES = [
|
||||||
@ -27,7 +28,6 @@ class BayesrunOutputFilename:
|
|||||||
path: pathlib.Path
|
path: pathlib.Path
|
||||||
|
|
||||||
|
|
||||||
@dataclasses.dataclass
|
|
||||||
class BayesrunColumnParsed:
|
class BayesrunColumnParsed:
|
||||||
"""
|
"""
|
||||||
class for parsing a bayesrun while pulling certain special fields out
|
class for parsing a bayesrun while pulling certain special fields out
|
||||||
@ -38,10 +38,21 @@ class BayesrunColumnParsed:
|
|||||||
self.model_field_dict = {
|
self.model_field_dict = {
|
||||||
k: v for k, v in groupdict.items() if k != "field_name"
|
k: v for k, v in groupdict.items() if k != "field_name"
|
||||||
}
|
}
|
||||||
|
self._groupdict_str = repr(groupdict)
|
||||||
|
|
||||||
def __str__(self):
|
def __str__(self):
|
||||||
return f"BayesrunColumnParsed[{self.column_field}: {self.model_field_dict}]"
|
return f"BayesrunColumnParsed[{self.column_field}: {self.model_field_dict}]"
|
||||||
|
|
||||||
|
def __repr__(self):
|
||||||
|
return f"BayesrunColumnParsed({self._groupdict_str})"
|
||||||
|
|
||||||
|
def __eq__(self, other):
|
||||||
|
if isinstance(other, BayesrunColumnParsed):
|
||||||
|
return (self.column_field == other.column_field) and (
|
||||||
|
self.model_field_dict == other.model_field_dict
|
||||||
|
)
|
||||||
|
return NotImplemented
|
||||||
|
|
||||||
|
|
||||||
@dataclasses.dataclass
|
@dataclasses.dataclass
|
||||||
class BayesrunModelResult:
|
class BayesrunModelResult:
|
||||||
|
@ -7,6 +7,7 @@ def test_parse_groupdict():
|
|||||||
)
|
)
|
||||||
|
|
||||||
parsed = deepdog.results._parse_bayesrun_column(example_column_name)
|
parsed = deepdog.results._parse_bayesrun_column(example_column_name)
|
||||||
|
assert parsed is not None
|
||||||
expected = deepdog.results.BayesrunColumnParsed(
|
expected = deepdog.results.BayesrunColumnParsed(
|
||||||
{
|
{
|
||||||
"xmin": "-20",
|
"xmin": "-20",
|
||||||
@ -23,6 +24,30 @@ def test_parse_groupdict():
|
|||||||
assert parsed == expected
|
assert parsed == expected
|
||||||
|
|
||||||
|
|
||||||
|
def test_parse_groupdict_with_magnitude():
|
||||||
|
example_column_name = (
|
||||||
|
"geom_-20_20_-10_10_0_5-magnitude_3.5-orientation_free-dipole_count_100_success"
|
||||||
|
)
|
||||||
|
|
||||||
|
parsed = deepdog.results._parse_bayesrun_column(example_column_name)
|
||||||
|
assert parsed is not None
|
||||||
|
expected = deepdog.results.BayesrunColumnParsed(
|
||||||
|
{
|
||||||
|
"xmin": "-20",
|
||||||
|
"xmax": "20",
|
||||||
|
"ymin": "-10",
|
||||||
|
"ymax": "10",
|
||||||
|
"zmin": "0",
|
||||||
|
"zmax": "5",
|
||||||
|
"orientation": "free",
|
||||||
|
"avg_filled": "100",
|
||||||
|
"log_magnitude": "3.5",
|
||||||
|
"field_name": "success",
|
||||||
|
}
|
||||||
|
)
|
||||||
|
assert parsed == expected
|
||||||
|
|
||||||
|
|
||||||
# def test_parse_no_match_column_name():
|
# def test_parse_no_match_column_name():
|
||||||
# parsed = deepdog.results.parse_bayesrun_column("There's nothing here")
|
# parsed = deepdog.results.parse_bayesrun_column("There's nothing here")
|
||||||
# assert parsed is None
|
# assert parsed is None
|
||||||
|
Loading…
x
Reference in New Issue
Block a user