Skip to main content

Python implementation of MimicDB

Project description

PyPI Build Status Coverage Status

Python Implementation of MimicDB

Python works with the Boto library.

Installation

By default, MimicDB requires Redis (although other backends can be used instead).

$ pip install redis
$ pip install mimicdb

Quickstart

If you’re using Boto already, replace boto imports with mimicdb imports.

Change:

from boto.s3.connection import S3Connection
from boto.s3.key import Key

To:

from mimicdb.s3.connection import S3Connection
from mimicdb.s3.key import Key

Additionally, import the MimicDB object itself, and initiate the backend:

from mimicdb import MimicDB
MimicDB()

After establishing a connection for the first time, sync the connection to save the metadata locally:

conn = S3Connection(KEY, SECRET)
conn.sync()

Or sync only a couple buckets from the connection:

conn.sync('bucket1', 'bucket2')

After that, upload, download and list as you usually would. API calls that can be responded to locally will return instantly without hitting S3 servers. API calls that are made to S3 using MimicDB will be mimicked locally to ensure consistency with the remote servers.

Pass force=True to most functions to force a call to the S3 API. This also updates the local database.

Alternate Backends

Besides the default Redis backend, MimicDB has SQLite and in-memory backends available.

from mimicdb.backends.sqlite import SQLite
MimicDB(SQLite())
from mimicdb.backends.memory import Memory
MimicDB(Memory())

Documentation

mimicdb.readthedocs.org

Contributing

  1. Fork the repo.

  2. Run tests to ensure a clean, working slate.

  3. Improve/fix the code.

  4. Add test cases if new functionality introduced or bug fixed (100% test coverage).

  5. Ensure tests pass.

  6. Push to your fork and submit a pull request to the develop branch.

Tests

Run tests after installing nose and coverage.

$ nosetests --with-coverage --cover-package=mimicdb

Integration testing is provided by Travis-CI at travis-ci.org/nathancahill/mimicdb

Test coverage reporting is provided by Coveralls at coveralls.io/r/nathancahill/mimicdb

Benchmarks

Run benchmarks.py in the root of the repo:

$ python benchmarks.py
Boto Time: 0.338411092758
MimicDB Time: 0.00015789039612
Factor: 2143x faster

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

MimicDB-1.0.tar.gz (8.0 kB view details)

Uploaded Source

File details

Details for the file MimicDB-1.0.tar.gz.

File metadata

  • Download URL: MimicDB-1.0.tar.gz
  • Upload date:
  • Size: 8.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for MimicDB-1.0.tar.gz
Algorithm Hash digest
SHA256 04ed6883f310c68370a9057f09770db7e0879fbfa6bf498cbbe4fa9063f27323
MD5 952634e6a4b9f2912b32ebd0454c7550
BLAKE2b-256 751a109dde88d14a08ebac3bb0cbd3265b514112f51627feadd234f0bfc0cc1d

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