Skip to main content

Convenient Wrapper around AioSQL and a Database Connection

Project description

AnoDB

Convenient Wrapper around aiosql and a Database Connection.

Description

This class creates a persistent database connection and imports SQL queries from a file.

If the connection is broken, a new connection is attempted.

Compared do aiosql, the point is not to need to pass a connection as an argument on each call: The DB class embeds both connection and query methods.

Example

Install the module with pip install anodb or whatever method you like. Once available, you can use it:

import anodb
db = anodb.DB('sqlite3', 'test.db', 'test.sql')

db.do_some_insert(key=1, val='hello')
db.do_some_update(key=1, val='world')
print("data", db.do_some_select(key=1))
db.commit()

db.close()

With file test.sql containing something like:

-- name: do_some_select
SELECT * FROM Stuff WHERE key = :key;

-- name: do_some_insert!
INSERT INTO Stuff(key, val) VALUES (:key, :val);

-- name: do_some_update!
UPDATE Stuff SET val = :val WHERE key = :key;

Versions

Sources are available on GitHub.

5.0 on 2022-07-10

Improve Makefile. Get aiosql version. Simplify code. Sync driver support with aiosql 4.0. Require 100% coverage.

4.2.1 on 2022-01-16

Just fix doc date.

4.2.0 on 2022-01-16

Put back __version__ automatic extraction from package. Add __version__ attribute to DB class. Refactor tests.

4.1.0 on 2021-12-12

Add untested support for MySQL through aiosql_mysql. Temporary work around an issue between pkg_resources, typing_extensions and aiosql.

4.0.2 on 2021-12-12

Add type hint for mypy.

4.0.1 on 2021-12-11

Add package __version__. Minor update for pytest_postgresql 4.0.0.

4.0 on 2021-10-14

Add psycopg 3 support, and make it the default for Postgres.

3.0 on 2021-04-20

Package as a simple module. Use simpler setup.cfg packaging. Include tests in package. Add coverage test and make test coverage reach 100%.

2.2 on 2021-02-20

Setup explicit logger instead of relying on default.

2.1 on 2021-02-14

Make cursor() reconnect if needed.

Add automatic reconnection tests.

2.0 on 2021-02-13

Swith from AnoSQL to AioSQL.

1.3 on 2020-08-02

Make options accept different types.

Make queries optional, and allow to load from files or strings.

1.2 on 2020-07-31

Add options string parameter to constructor.

1.1 on 2020-07-28

Add **conn_options parameter to constructor.

Add cursor() method.

1.0 on 2020-07-27

Initial release.

TODO

  • add support for other drivers? eg. pg8000, pygresql, py-postgresql
  • add support for psycopg3 connection pool? is it usefull?
  • add something about caching?

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

anodb-5.0.tar.gz (7.6 kB view details)

Uploaded Source

Built Distribution

anodb-5.0-py3-none-any.whl (5.3 kB view details)

Uploaded Python 3

File details

Details for the file anodb-5.0.tar.gz.

File metadata

  • Download URL: anodb-5.0.tar.gz
  • Upload date:
  • Size: 7.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.4.2 requests/2.22.0 setuptools/45.2.0 requests-toolbelt/0.9.1 tqdm/4.30.0 CPython/3.8.10

File hashes

Hashes for anodb-5.0.tar.gz
Algorithm Hash digest
SHA256 859ec611debf54e996f7e748877d5556afe0b1d5d1ad6ba71c671b9be280c921
MD5 2139fd9fc37e01998c3be90803e44e5e
BLAKE2b-256 69934a5fcc731a4cb1c1f518da727bbba2c9c1535c0864c53fe750ccd788c99e

See more details on using hashes here.

Provenance

File details

Details for the file anodb-5.0-py3-none-any.whl.

File metadata

  • Download URL: anodb-5.0-py3-none-any.whl
  • Upload date:
  • Size: 5.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.4.2 requests/2.22.0 setuptools/45.2.0 requests-toolbelt/0.9.1 tqdm/4.30.0 CPython/3.8.10

File hashes

Hashes for anodb-5.0-py3-none-any.whl
Algorithm Hash digest
SHA256 47cfac5fb13b2c3a380beb83ba6f9f1988980650dd3068f517b58854f2ff246d
MD5 e3145a0d0571454b48be94ee84f97821
BLAKE2b-256 f4e3a098dc061d925f9315326a164c12aeae1382151b1e496a476512e33ce04c

See more details on using hashes here.

Provenance

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