Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
28 changes: 28 additions & 0 deletions src/hydrodiy/data/dutils.py
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,34 @@
import c_hydrodiy_data


def get_value_from_kwargs(kw, fullname, shortname=None, default=None):
""" Extract argument from a kwargs dictionnary.

Parameters
----------
kw : dict
Kwargs dictionnary.
fullname : str
Full name of the argument.
shortname : str
Abbreviated name.
default : obj
Default value.

Returns
-------
"""
value = kw.get(fullname, kw.get(shortname, default))

if fullname in kw:
kw.pop(fullname)

if shortname in kw:
kw.pop(shortname)

return value


def sequence_true(values):
""" Identify start and end of consecutive "true" values.
Can be used for gap analysis.
Expand Down
18 changes: 18 additions & 0 deletions src/hydrodiy/data/tests/test_hydata_dutils.py
Original file line number Diff line number Diff line change
Expand Up @@ -51,6 +51,24 @@ def agg_d2m(x, fun="mean"):


# Tests

def test_get_value_from_kwargs(allclose):
kw = dict(firstarg=10, secondarg=100)
v = dutils.get_value_from_kwargs(kw, "firstarg")
assert v == 10
assert kw == dict(secondarg=100)

kw = dict(f=10)
v = dutils.get_value_from_kwargs(kw, "firstarg", "f")
assert v == 10
assert kw == dict()

kw = dict(firstarg=10)
v = dutils.get_value_from_kwargs(kw, "bidule", "b", 100)
assert v == 100
assert kw == dict(firstarg=10)


def test_cast_scalar(allclose):
""" Test scalar casts """
x = 0.6
Expand Down