예제 #1
0
def test_artifact_extension(tmp_path: Path) -> None:
    a0 = Artifact(tmp_path / 'a0')
    a0.b = [b'hello']
    a0.c__bin = data_file(tmp_path / 'c0.bin')
    a0.d = {'e': [[0.0, 1.0]], 'f.bin': data_file(tmp_path / 'f0.bin')}

    a1 = Artifact(tmp_path / 'a1')
    a1.b = [b'good', b'bye']
    a1.c__bin = data_file(tmp_path / 'c1.bin')
    a1.d = {'e': np.empty((0, 2)), 'f.bin': data_file(tmp_path / 'f1.bin')}

    a2 = Artifact(tmp_path / 'a2')
    a2.extend('subartifact', a0)
    a2.extend('subartifact', a1)

    assert_artifact_equals(
        a2, {
            'subartifact': {
                'b': [b'hello', b'good', b'bye'],
                'c.bin':
                data_file_concat(tmp_path / 'c2.bin',
                                 [tmp_path / 'c0.bin', tmp_path / 'c1.bin']),
                'd': {
                    'e': [[0.0, 1.0]],
                    'f.bin':
                    data_file_concat(
                        tmp_path / 'f2.bin',
                        [tmp_path / 'f0.bin', tmp_path / 'f1.bin'])
                }
            }
        })
예제 #2
0
def test_opaque_file_deletion(tmp_path: Path) -> None:
    a = Artifact(tmp_path / 'a')
    a.b__bin = data_file(tmp_path / 'b.bin')
    a.c__bin = data_file(tmp_path / 'c.bin')
    a.d = [7, 8]
    a.e = {'blue': b'jeans'}
    a.f__bin = data_file(tmp_path / 'data.bin')
    del a.b__bin
    del a['c.bin']
    assert_artifact_equals(a, {
        'd': [7, 8],
        'e': {
            'blue': b'jeans'
        },
        'f.bin': tmp_path / 'data.bin'
    })