예제 #1
0
def test_h5_io_lgroup(tmpdir):
    fpath = os.path.join(str(tmpdir), 'lgroups.h5')
    age.to_hdf(fpath)

    named = age[':5'] >> 'age_05'
    named_axis_not_in_file = lipro['P01,P03,P05'] >> 'P_odd'
    anonymous = age[':5']
    wildcard = age_wildcard[':5'] >> 'age_w_05'
    string_group = Axis(['@!àéè&%µ$~', '/*-+_§()><', 'another label'],
                        'string_axis')[:] >> 'string_group'

    # ---- default behavior ----
    # named group
    named.to_hdf(fpath)
    named2 = read_hdf(fpath, key=named.name)
    assert all(named == named2)
    # anonymous group
    with pytest.raises(
            ValueError,
            match=
            "Argument key must be provided explicitly in case of anonymous group"
    ):
        anonymous.to_hdf(fpath)
    # wildcard group
    wildcard.to_hdf(fpath)
    wildcard2 = read_hdf(fpath, key=wildcard.name)
    assert all(wildcard == wildcard2)
    # associated axis not saved yet
    named_axis_not_in_file.to_hdf(fpath)
    named2 = read_hdf(fpath, key=named_axis_not_in_file.name)
    assert all(named_axis_not_in_file == named2)
    # string group
    string_group.to_hdf(fpath)
    string_group2 = read_hdf(fpath, key=string_group.name)
    assert all(string_group == string_group2)

    # ---- specific hdf group + key ----
    hdf_group = 'my_groups'
    # named group
    key = hdf_group + '/named_group'
    named.to_hdf(fpath, key)
    named2 = read_hdf(fpath, key=key)
    assert all(named == named2)
    # anonymous group
    key = hdf_group + '/anonymous_group'
    anonymous.to_hdf(fpath, key)
    anonymous2 = read_hdf(fpath, key=key)
    assert anonymous2.name is None
    assert all(anonymous == anonymous2)
    # wildcard group
    key = hdf_group + '/wildcard_group'
    wildcard.to_hdf(fpath, key)
    wildcard2 = read_hdf(fpath, key=key)
    assert all(wildcard == wildcard2)
    # associated axis not saved yet
    key = hdf_group + '/named_group_axis_not_in_file'
    named_axis_not_in_file.to_hdf(fpath, key=key)
    named2 = read_hdf(fpath, key=key)
    assert all(named_axis_not_in_file == named2)

    # ---- specific axis_key ----
    axis_key = 'axes/associated_axis_0'
    # named group
    named.to_hdf(fpath, axis_key=axis_key)
    named2 = read_hdf(fpath, key=named.name)
    assert all(named == named2)
    # anonymous group
    key = 'anonymous'
    anonymous.to_hdf(fpath, key=key, axis_key=axis_key)
    anonymous2 = read_hdf(fpath, key=key)
    assert anonymous2.name is None
    assert all(anonymous == anonymous2)
    # wildcard group
    wildcard.to_hdf(fpath, axis_key=axis_key)
    wildcard2 = read_hdf(fpath, key=wildcard.name)
    assert all(wildcard == wildcard2)
    # associated axis not saved yet
    axis_key = 'axes/associated_axis_1'
    named_axis_not_in_file.to_hdf(fpath, axis_key=axis_key)
    named2 = read_hdf(fpath, key=named_axis_not_in_file.name)
    assert all(named_axis_not_in_file == named2)
예제 #2
0
def test_h5_io(tmpdir):
    age = Axis('age=0..10')
    lipro = Axis('lipro=P01..P05')
    anonymous = Axis(range(3))
    wildcard = Axis(3, 'wildcard')
    string_axis = Axis(['@!àéè&%µ$~', '/*-+_§()><', 'another label'],
                       'string_axis')
    fpath = os.path.join(str(tmpdir), 'axes.h5')

    # ---- default behavior ----
    # int axis
    age.to_hdf(fpath)
    age2 = read_hdf(fpath, key=age.name)
    assert age.equals(age2)
    # string axis
    lipro.to_hdf(fpath)
    lipro2 = read_hdf(fpath, key=lipro.name)
    assert lipro.equals(lipro2)
    # anonymous axis
    with pytest.raises(
            ValueError,
            match=
            "Argument key must be provided explicitly in case of anonymous axis"
    ):
        anonymous.to_hdf(fpath)
    # wildcard axis
    wildcard.to_hdf(fpath)
    wildcard2 = read_hdf(fpath, key=wildcard.name)
    assert wildcard2.iswildcard
    assert wildcard.equals(wildcard2)
    # string axis
    string_axis.to_hdf(fpath)
    string_axis2 = read_hdf(fpath, string_axis.name)
    assert string_axis.equals(string_axis2)

    # ---- specific key ----
    # int axis
    key = 'axis_age'
    age.to_hdf(fpath, key)
    age2 = read_hdf(fpath, key=key)
    assert age.equals(age2)
    # string axis
    key = 'axis_lipro'
    lipro.to_hdf(fpath, key)
    lipro2 = read_hdf(fpath, key=key)
    assert lipro.equals(lipro2)
    # anonymous axis
    key = 'axis_anonymous'
    anonymous.to_hdf(fpath, key)
    anonymous2 = read_hdf(fpath, key=key)
    assert anonymous2.name is None
    assert_array_equal(anonymous.labels, anonymous2.labels)
    # wildcard axis
    key = 'axis_wildcard'
    wildcard.to_hdf(fpath, key)
    wildcard2 = read_hdf(fpath, key=key)
    assert wildcard2.iswildcard
    assert wildcard.equals(wildcard2)

    # ---- specific hdf group + key ----
    hdf_group = 'my_axes'
    # int axis
    key = hdf_group + '/axis_age'
    age.to_hdf(fpath, key)
    age2 = read_hdf(fpath, key=key)
    assert age.equals(age2)
    # string axis
    key = hdf_group + '/axis_lipro'
    lipro.to_hdf(fpath, key)
    lipro2 = read_hdf(fpath, key=key)
    assert lipro.equals(lipro2)
    # anonymous axis
    key = hdf_group + '/axis_anonymous'
    anonymous.to_hdf(fpath, key)
    anonymous2 = read_hdf(fpath, key=key)
    assert anonymous2.name is None
    assert_array_equal(anonymous.labels, anonymous2.labels)
    # wildcard axis
    key = hdf_group + '/axis_wildcard'
    wildcard.to_hdf(fpath, key)
    wildcard2 = read_hdf(fpath, key=key)
    assert wildcard2.iswildcard
    assert wildcard.equals(wildcard2)
예제 #3
0
파일: test_axis.py 프로젝트: liam2/larray
def test_h5_io(tmpdir):
    age = Axis('age=0..10')
    lipro = Axis('lipro=P01..P05')
    anonymous = Axis(range(3))
    wildcard = Axis(3, 'wildcard')
    fpath = os.path.join(str(tmpdir), 'axes.h5')

    # ---- default behavior ----
    # int axis
    age.to_hdf(fpath)
    age2 = read_hdf(fpath, key=age.name)
    assert age.equals(age2)
    # string axis
    lipro.to_hdf(fpath)
    lipro2 = read_hdf(fpath, key=lipro.name)
    assert lipro.equals(lipro2)
    # anonymous axis
    with pytest.raises(ValueError, message="Argument key must be provided explicitly in case of anonymous axis"):
        anonymous.to_hdf(fpath)
    # wildcard axis
    wildcard.to_hdf(fpath)
    wildcard2 = read_hdf(fpath, key=wildcard.name)
    assert wildcard2.iswildcard
    assert wildcard.equals(wildcard2)

    # ---- specific key ----
    # int axis
    key = 'axis_age'
    age.to_hdf(fpath, key)
    age2 = read_hdf(fpath, key=key)
    assert age.equals(age2)
    # string axis
    key = 'axis_lipro'
    lipro.to_hdf(fpath, key)
    lipro2 = read_hdf(fpath, key=key)
    assert lipro.equals(lipro2)
    # anonymous axis
    key = 'axis_anonymous'
    anonymous.to_hdf(fpath, key)
    anonymous2 = read_hdf(fpath, key=key)
    assert anonymous2.name is None
    assert_array_equal(anonymous.labels, anonymous2.labels)
    # wildcard axis
    key = 'axis_wildcard'
    wildcard.to_hdf(fpath, key)
    wildcard2 = read_hdf(fpath, key=key)
    assert wildcard2.iswildcard
    assert wildcard.equals(wildcard2)

    # ---- specific hdf group + key ----
    hdf_group = 'my_axes'
    # int axis
    key = hdf_group + '/axis_age'
    age.to_hdf(fpath, key)
    age2 = read_hdf(fpath, key=key)
    assert age.equals(age2)
    # string axis
    key = hdf_group + '/axis_lipro'
    lipro.to_hdf(fpath, key)
    lipro2 = read_hdf(fpath, key=key)
    assert lipro.equals(lipro2)
    # anonymous axis
    key = hdf_group + '/axis_anonymous'
    anonymous.to_hdf(fpath, key)
    anonymous2 = read_hdf(fpath, key=key)
    assert anonymous2.name is None
    assert_array_equal(anonymous.labels, anonymous2.labels)
    # wildcard axis
    key = hdf_group + '/axis_wildcard'
    wildcard.to_hdf(fpath, key)
    wildcard2 = read_hdf(fpath, key=key)
    assert wildcard2.iswildcard
    assert wildcard.equals(wildcard2)