Skip to content

Commit 708ef9a

Browse files
author
wpbonelli
committed
remove token hooks from transformer
1 parent faf27ea commit 708ef9a

File tree

3 files changed

+11
-30
lines changed

3 files changed

+11
-30
lines changed

flopy4/mf6/codec/reader/grammar/typed.lark

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -10,14 +10,14 @@ layered: "layered"i
1010
netcdf: "netcdf"i
1111
readarray: control [data]
1212
control: constant | internal | external
13-
constant: "constant"i _number
13+
constant: "constant"i double
1414
internal: "internal"i [factor] [iprn]
1515
external: "open/close"i filename [factor] [binary] [iprn]
16-
factor: "factor"i _number
17-
iprn: "iprn"i _integer
16+
factor: "factor"i double
17+
iprn: "iprn"i integer
1818
binary: "(binary)"i
1919
filename: ESCAPED_STRING | _word
20-
data: _number+
20+
data: double+
2121

2222
_word: /[a-zA-Z0-9._'~,-\\(\\)]+/
2323
_number: SIGNED_NUMBER | NUMBER

flopy4/mf6/codec/reader/transformer.py

Lines changed: 1 addition & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -129,7 +129,7 @@ def binary(self, items: list[Any]) -> dict[str, bool]:
129129
return {"binary": True}
130130

131131
def filename(self, items: list[Any]) -> Path:
132-
return Path(items[0])
132+
return Path(items[0].strip("\"'"))
133133

134134
def string(self, items: list[Any]) -> str:
135135
return items[0].strip("\"'")
@@ -146,25 +146,6 @@ def data(self, items: list[Any]) -> np.ndarray:
146146
def netcdf(self, items: list[Any]) -> dict[str, bool]:
147147
return {"netcdf": True}
148148

149-
def NUMBER(self, token: Token) -> int | float:
150-
return float(token)
151-
152-
def SIGNED_NUMBER(self, token: Token) -> int | float:
153-
return self.NUMBER(token)
154-
155-
def INT(self, token: Token) -> int:
156-
return int(token)
157-
158-
def SIGNED_INT(self, token: Token) -> int:
159-
return int(token)
160-
161-
def ESCAPED_STRING(self, token: Token) -> str:
162-
# Remove quotes from escaped string
163-
value = str(token)
164-
if value.startswith('"') and value.endswith('"'):
165-
return value[1:-1]
166-
return value
167-
168149
@staticmethod
169150
def try_create_dataarray(array_info: dict) -> dict:
170151
control = array_info["control"]

test/test_parse_array.py renamed to test/test_parser.py

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,7 @@ def test_parse_external_array_with_quotation_marks():
7272

7373
def test_transform_internal_array():
7474
parser = make_typed_parser("start: array")
75-
transformer = TypedTransformer()
75+
transformer = TypedTransformer(visit_tokens=False)
7676
result = transformer.transform(
7777
parser.parse("""
7878
INTERNAL FACTOR 1.5 IPRN 3
@@ -90,19 +90,19 @@ def test_transform_internal_array():
9090

9191
def test_transform_constant_array():
9292
parser = make_typed_parser("start: array")
93-
transformer = TypedTransformer()
93+
transformer = TypedTransformer(visit_tokens=False)
9494
result = transformer.transform(
9595
parser.parse("""
9696
CONSTANT 42.5
9797
""")
9898
)
9999
assert result["control"]["type"] == "constant"
100-
assert result["data"] == 42.5
100+
assert np.array_equal(result["data"], np.array(42.5))
101101

102102

103103
def test_transform_external_array():
104104
parser = make_typed_parser("start: array")
105-
transformer = TypedTransformer()
105+
transformer = TypedTransformer(visit_tokens=False)
106106
result = transformer.transform(
107107
parser.parse("""
108108
OPEN/CLOSE "data/heads.dat" FACTOR 1.0 (BINARY)
@@ -114,7 +114,7 @@ def test_transform_external_array():
114114

115115
def test_transform_layered_array():
116116
parser = make_typed_parser("start: array")
117-
transformer = TypedTransformer()
117+
transformer = TypedTransformer(visit_tokens=False)
118118
result = transformer.transform(
119119
parser.parse("""
120120
LAYERED
@@ -192,7 +192,7 @@ def y(self, items: list[Any]) -> tuple[str, dict]:
192192
def z(self, items: list[Any]) -> tuple[str, dict]:
193193
return "z", TypedTransformer.try_create_dataarray(items[0])
194194

195-
transformer = BlockTransformer()
195+
transformer = BlockTransformer(visit_tokens=False)
196196
result = transformer.transform(
197197
parser.parse("""
198198
BEGIN OPTIONS

0 commit comments

Comments
 (0)