Python library to load DBGZ files
Project description
dbgz
Small utility to read and write data from/to dbgz files
Installation
Install using pip
pip install dbgz
or from source:
pip git+https://github.com/filipinascimento/dbgz.git
Usage
First import dbgz:
import dbgz
Defining a scheme
scheme = [
("anInteger","i"),
("aFloat","f"),
("aString","s"),
("anIntArray","I"),
("aFloatArray","F"),
("anStringArray","S"),
]
Writing some data to a dbgz file
from tqdm.auto import tqdm # Optional, to print progress bar
totalCount = 1000000;
with dbgz.DBGZWriter("test.dbgz",scheme) as fd:
# New entries can be added as:
fd.write(anInteger=1, aString="1")
fd.write(anInteger=2, aString="2", aFloat=5)
fd.write(anInteger=3, aString="3",anIntArray=list(range(10)), aFloatArray=[0.1,0.2,0.3,0.5])
# Here is a loop to write a lot of data:
for index in tqdm(range(totalCount)):
fd.write(
anInteger=index,
aFloat=index*0.01,
anIntArray=list(range(index,index+10)),
aString=str(index),
aFloatArray=[index+0.1,index-0.2,index+0.3,index+0.4],
anStringArray=[str(index),str(index+1),str(index+2),str(index+3)]
)
Loading a dbgz file
with dbgz.DBGZReader("test.dbgz") as fd:
pbar = tqdm(total=fd.entriesCount)
print(fd.scheme)
while True:
entries = fd.read(10)
if(not entries):
break
for entry in entries:
assert entry["anInteger"] == int(entry["aString"])
pbar.update(len(entries))
pbar.refresh()
pbar.close()
Saving dictionary to file and loading it again
with dbgz.DBGZReader("test.dbgz") as fd:
indexDictionary = fd.generateIndex("anInteger",
indicesPath=None,
filterFunction=lambda entry: entry["anInteger"]<10,
useDictionary=True,
showProgressbar = True
)
for key,values in indexDictionary.items():
print(key,values)
for value in values:
assert int(key) == fd.readAt(value)[0]["anInteger"]
Saving dictionary to file and loading it again
with dbgz.DBGZReader("test.dbgz") as fd:
fd.generateIndex("anInteger",
indicesPath="test_byAnInteger.idbgz",
filterFunction=lambda entry: entry["anInteger"]<10,
useDictionary=True,
showProgressbar = True
)
indexDictionary = dbgz.readIndicesDictionary("test_by.idbgz")
for key,values in indexDictionary.items():
print(key,values)
for value in values:
assert int(key) == fd.readAt(value)[0]["anInteger"]
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
dbgz-0.3.2.tar.gz
(16.8 kB
view details)
File details
Details for the file dbgz-0.3.2.tar.gz.
File metadata
- Download URL: dbgz-0.3.2.tar.gz
- Upload date:
- Size: 16.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.4.2 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.22.0 requests-toolbelt/0.9.1 tqdm/4.36.1 CPython/3.7.4
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
dcaed76218429ad02e93eec0ce7f6feb3d3bcf8a5e347dec8f9d9e7aeee62696
|
|
| MD5 |
d416616c22a84d88f678fc425336d9d0
|
|
| BLAKE2b-256 |
26fa596c129d37f85903aea11773c7aebd1e91184b75029b96715e2b243c86ec
|