def test_get_empty_result(base): c = Castra(path=base, template=A) c.extend(A) df = c[100:200] assert (df.columns == A.columns).all()
def test_pickle_Castra(): path = tempfile.mkdtemp(prefix='castra-') c = Castra(path=path, template=A) c.extend(A) c.extend(B) dumped = pickle.dumps(c) undumped = pickle.loads(dumped) tm.assert_frame_equal(pd.concat([A, B]), undumped[:])
def test_reload(): path = tempfile.mkdtemp(prefix='castra-') try: c = Castra(template=A, path=path) c.extend(A) d = Castra(path=path) assert c.columns == d.columns assert (c.partitions == d.partitions).all() assert c.minimum == d.minimum finally: shutil.rmtree(path)
def test_Castra(): c = Castra(template=A) c.extend(A) c.extend(B) assert c.columns == ['x', 'y'] tm.assert_frame_equal(c[0:100], pd.concat([A, B])) tm.assert_frame_equal(c[:5], A) tm.assert_frame_equal(c[5:], B) tm.assert_frame_equal(c[2:5], A[1:]) tm.assert_frame_equal(c[2:15], pd.concat([A[1:], B[:1]]))
def test_readonly(): path = tempfile.mkdtemp(prefix='castra-') try: c = Castra(path=path, template=A) c.extend(A) d = Castra(path=path, readonly=True) with pytest.raises(IOError): d.extend(B) with pytest.raises(IOError): d.extend_sequence([B]) with pytest.raises(IOError): d.flush() with pytest.raises(IOError): d.drop() with pytest.raises(IOError): d.save_partitions() with pytest.raises(IOError): d.flush_meta() assert c.columns == d.columns assert (c.partitions == d.partitions).all() assert c.minimum == d.minimum finally: shutil.rmtree(path)
def floats_to_castra(input_dir, output_fname, progress=False, **kwargs): """Convert MITgcm float data to pands hdf format. Paramters --------- input_dir : path Where to find the MITgcm output data output_fname : path Filename of the hdf data store kwargs : Extra keyword arguments to pass to floater.input_formats.MITgcmFloatData """ import pandas as pd from castra import Castra output_fname = _maybe_add_suffix(output_fname, '.castra') mfd = input.MITgcmFloatData(input_dir, **kwargs) c = None for block in mfd.generator(progress=progress, return_full_block=True): df = pd.DataFrame.from_records(block) if not c: c = Castra(output_fname, template=df) c.extend(df)
def test_get_slice(base): c = Castra(path=base, template=A) c.extend(A) tm.assert_frame_equal(c[:], c[:, :]) tm.assert_frame_equal(c[:, 1:], c[:][['y']])