Skip to main content

A simple package that allows creating a pickles dataset and fast random access

Project description

RA Pickles

A simple package to create and access datasets based on python objects using pickles. A dataset will be represented by a directory. And the files in the directory contain the data. As file identifiers are randomly generated, files from two dataset folders can be added to each other create a larger dataset.

Example

First import all the packages

from ra_pickles import RandomAccessPicklesReader, RandomAccessPicklesWriter
import shutil
import os
import numpy as np

So to create a dataset in test_folder, use the following code. 100 here specifies number of dataset samples in each file. If there are more than 100 files, multiple files will be created.

fold = 'test_folder'
writer = RandomAccessPicklesWriter(100, fold)

Now entries to the dataset can be added as follows:

for i in range(30):
    d = np.ones(4) * i
    writer.add(d)
writer.close()

Here, 30 numpy arrays have been added.

To access contents in the dataset, use the following code:

reader = RandomAccessPicklesReader(fold)
print("Total", reader.get_total())

print("Trying to retreive")
for i in range(30):
    print("Retrieving",i)
    a = reader.get_element(i)
    print(i, a[0])

Multiple elements can also be retrieved in parallel. To do so, first retrieval threads must be started (and closed at the end):

reader.start_parallel_retrieval_threads(n_theads=5)
data = reader.get_multi_in_parallel([1,2,3])
reader.close_parallel_retrieval_threads()
reader.close()

Good luck!

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

ra_pickles-0.8.4.tar.gz (4.5 kB view details)

Uploaded Source

File details

Details for the file ra_pickles-0.8.4.tar.gz.

File metadata

  • Download URL: ra_pickles-0.8.4.tar.gz
  • Upload date:
  • Size: 4.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.9.7

File hashes

Hashes for ra_pickles-0.8.4.tar.gz
Algorithm Hash digest
SHA256 a3cc8a21d8dcae503ca1ecb9f8318a2a8bb6c245cd4b353d5898acac260a3d55
MD5 45eaeb4b3993545c2261771d25d97f99
BLAKE2b-256 22d4df02bbeef2b16e49ba186077e6492e5454bbcda1132c1eb1fdba9e52369d

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page