Skip to main content

Byrne

A intelligent DynamoDB frontend for Python3

Basic Usage

Importing the package

    import boto3  # require to build a client
    import byrne

Creating a client

    session = boto3.Session()
    base_client = session.client("dynamodb")
    client = byrne.DynamoDB(base_client)
    client.list_tables()  # ["table", "names"]

Creating a Table

    table_def = byrne.datastructures.TableDefinition(
        "TableName",
        {
            "id": "S"
        },
        byrne.datastructures.KeyDefinition("id")
    )

    client.create_table(table_def)

FAQ

  1. How do I install byrne?

    • Simply run pip3 install byrne - the PyPI package is automatically kept up to date with this repository.
  2. Why does this require Python 3.7?

    • We use dataclasses heavily to model table metadata and to simplify query expressions.
  3. Why is this better than using the default client in boto3?

    • Support for asyncronous result pagination.
    • Allows for integrated object mapping.
    • Configurable value marshalling and unmarshalling.
    • A more Pythonic interface.
    • Builtin support for working with DAX.
  4. How is the package tested?

    • The testing regimen is automated through tox.
    • Tests are run against a DynamoDB Local instance for all supported Python versions.
    • The tests are run against the live DynamoDB service in AWS us-east-1 for the latest Python version.
    • Code coverage is tracked through Coveralls.
  5. Why is the DAX code path untested?

    • We are working on creating a testing strategy for DAX workflows.
    • DAX is expensive, we can't justify having a dedicated cluster running only for testing.
  6. I can't run the test cases on my local machine! Help!

    • There are 5 test environments defined in tox.ini:
      1. test: Runs test suite against "real" DynamoDB.
      2. test_local: Runs test suite against DynamoDB Local.
      3. test_coverage: Same as test, with coverage reporting.
      4. test_coverage_local: Same as test_local, with coverage reporting.
      5. flake8: Runs PEP8 conformance testing.
    • The live test cases require AWS credentials on your machine.
    • These credentials need access rights to assume a role used for testing.
    • Access to this role is only granted to trusted contributors.
    • You should be able to run the local environments after executing the run_dynamodb_local.sh script.
    • flake8 should run without any fuss.

Download files

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

Source Distribution

byrne-1.0.0.tar.gz (14.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

byrne-1.0.0-py3-none-any.whl (17.5 kB view details)

Uploaded Python 3

File details

Details for the file byrne-1.0.0.tar.gz.

File metadata

  • Download URL: byrne-1.0.0.tar.gz
  • Upload date:
  • Size: 14.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.7.1 CPython/3.12.1 Darwin/23.2.0

File hashes

Hashes for byrne-1.0.0.tar.gz
Algorithm Hash digest
SHA256 244d78f6c71285a8b16c7a605c614f8928691b2ca976e108f6c0bd5bb4d381fa
MD5 02f784bd0f90b7ed236008ce6d466fda
BLAKE2b-256 d141fd9b5300ed996aae97d0f352eeae80819a35351a926a74fc90cafab615c7

See more details on using hashes here.

File details

Details for the file byrne-1.0.0-py3-none-any.whl.

File metadata

  • Download URL: byrne-1.0.0-py3-none-any.whl
  • Upload date:
  • Size: 17.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.7.1 CPython/3.12.1 Darwin/23.2.0

File hashes

Hashes for byrne-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 52e5bfd56310032e698c9b0d2c0fc8d7a7f524414a67537e67da7e3cbc91e114
MD5 dfcdd3633499ffa4fe78a3b6f3fa2b3b
BLAKE2b-256 065c3369755367352e2c359bced1c8849594d9ac035bbdac6d6209bc5738e344

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

1.0.0 This release

2 files

0.5.0

2 files

0.4.0

2 files

0.3.0

2 files

0.2.0

2 files

0.1.0

2 files

Supported by

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