Skip to content

Commit ce17e54

Browse files
Make _parse_size robust to already parsed values (#142)
* Make _parse_size robust to already parsed values (needed for unpickling a folium Map) * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * Add safety & tests --------- Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
1 parent de98b15 commit ce17e54

2 files changed

Lines changed: 10 additions & 0 deletions

File tree

branca/utilities.py

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -414,6 +414,13 @@ def _parse_size(value):
414414
raise ValueError(
415415
f"Cannot parse {value!r}, it should be a number followed by a unit.",
416416
)
417+
elif (
418+
isinstance(value, tuple)
419+
and isinstance(value[0], (int, float))
420+
and isinstance(value[1], str)
421+
):
422+
# value had been already parsed
423+
return (float(value[0]), value[1])
417424
else:
418425
raise TypeError(
419426
f"Cannot parse {value!r}, it should be a number or a string containing a number and a unit.",

tests/test_utilities.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -116,6 +116,8 @@ def test_color_avoid_unexpected_error():
116116
("100% ", (100.0, "%")),
117117
("3 vw", (3.0, "vw")),
118118
("3.14 rem", (3.14, "rem")),
119+
((1, "px"), (1.0, "px")),
120+
((80.0, "%"), (80.0, "%")),
119121
],
120122
)
121123
def test_parse_size(value, result):
@@ -128,6 +130,7 @@ def test_parse_size(value, result):
128130
"what?",
129131
"1.21 jigawatts",
130132
ut._parse_size,
133+
(1.21, 4.9),
131134
],
132135
)
133136
def test_parse_size_exceptions(value):

0 commit comments

Comments
 (0)