Skip to main content

A simple package that allows for the direct use of data stored and managed on a cloud storage service

Project description

daman

description

daman aims at providing a relatively simple solution to the challenge of sharing data between various multiple individuals/machines in the context of a python-development workflow. This solution relies on cloud storage and allows to control the amount of local disc space used for data management.

setup & configure

Install

This package is available through pip and can directly be installed as follows by running pip install daman.

cloud provider

AWS: S3 Bucket

Should your AWS account not yet configured on your current machine, retrieve the following information:

  • access_key_id
  • secret_access_key
using dm_aws

you can then simply running the following command:

dm_aws --access_key_id <access_key_id> --secret_access_key <secret_access_key>
manually

Alternatively you can create a file at ~/.aws/credentials and type in the following :

[default]
aws_access_key_id = <access_key_id>
aws_secret_access_key = <secret_access_key>

configure daman

To finalise the setup phase, it is required to run to provide the following information:

  • storage_name: Name of the bucket to be used
  • service: Type of cloud storage used (Currently only aws is available).
  • local_dir [Optional]: local directory to store data in. default is ~/.daman/data/
  • allocated_space [Optional]: Disc space to allocate to local directory. By default no limit is set.
dm_configure --storage_name <storage_name>
--service <service>

how to

upload

Currently it is only possible to push python object to daman data manager.

python: push

dm.push(
    obj,
    key=key,
    meta=None,
    local=True,
    force=False,
    persist=False)
Input
  • obj: object - Any pickle serialisable object.
  • key: str - name under which to store the object. will be used to retrieve the object.
  • meta [OPTIONAL]: object - Any pickle serialisable meta information to store with the object.
  • local [OPTIONAL]: bool - If set to True also adds the uploaded data to your local registery.
  • force [OPTIONAL]: bool - If key is already in use, force must be set to True in order to force the overwriting of the already stored object.
  • persist [OPTIONAL]: bool - If set to True ensures the file will not be deleted unless manually requested.
Output - None

download

python: pull

obj, meta = dm.push(
    key=key,
    force=False,
    persist=False)
Input
  • key: str - key under which the data is stored.
  • force [OPTIONAL]: bool - when set to True downloads the dataset from cloud service ignoring local version.
  • persist [OPTIONAL]: bool - If set to True ensures the file will not be deleted unless manually requested.
  • memory_only [OPTIONAL]: bool - is set to True only loads the data into memory and does not keep a local version unless already available.
Output
  • obj: object stored object.
  • meta: object store meta data.

terminal: dm_pull

dm_pull --help

usage: dm_pull [-h] --key {} [--force] [--persist]

Sets up daman package.

optional arguments:
  -h, --help  show this help message and exit
  --key {}    key of the file to delete
  --force     When provided forces the download even when the file is already
              available.
  --persist   When provided ensures that the downloaded file is always kept on
              disc on manually deleted.

delete

python: delete

obj, meta = dm.delete(
    key=key,
    local=True,
    remote=False)
Input
  • key: str - key under which the data to delete is stored.
  • local [OPTIONAL]: bool - if set to True will delete local file.
  • remote [OPTIONAL]: bool - if set to True will delete remote version of the requested key.
Output - None

terminal: dm_delete

dm_delete --help

Sets up daman package.
optional arguments:
  -h, --help  show this help message and exit
  --key {}    key of the file to delete
  --remote    When provided, deletes the requested file on the cloud service
              as well.

usage: dm_delete [-h] --key {} [--remote]

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

daman-0.2.0.tar.gz (11.2 kB view details)

Uploaded Source

Built Distribution

daman-0.2.0-py3-none-any.whl (14.4 kB view details)

Uploaded Python 3

File details

Details for the file daman-0.2.0.tar.gz.

File metadata

  • Download URL: daman-0.2.0.tar.gz
  • Upload date:
  • Size: 11.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/3.7.3 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.59.0 CPython/3.7.6

File hashes

Hashes for daman-0.2.0.tar.gz
Algorithm Hash digest
SHA256 88e535779f67cee70f17694de81da54637a4246841b24c205182fc0e24c15427
MD5 7976d166b8b19dc144ad7b8dd6041bb9
BLAKE2b-256 807f7e87655bd40c83c381f8035e84fec3316562e47ca8a5166a9a28697377d9

See more details on using hashes here.

File details

Details for the file daman-0.2.0-py3-none-any.whl.

File metadata

  • Download URL: daman-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 14.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/3.7.3 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.59.0 CPython/3.7.6

File hashes

Hashes for daman-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 9622b35ba31ee7c0393f0e75cca12ab66db1dc7b041be68e8d29c2fbb6b864c6
MD5 ada87a5a9adce41a7e3b97f5a105287a
BLAKE2b-256 455179526c95dff56ff77419e766240723ca8ab06c2db27e95183ba80f9f6f46

See more details on using hashes here.

Supported by

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