Skip to main content

Provides:

  • db(sql, *values).row/rows/affected

  • id = db_insert(table_name, _return='id', name=value,..)

  • affected = db_update(table_name, where=dict(name=value, item_in=tuple_of_values), name=value,..)

  • result = db_transaction(code)

  • raise db_rollback

  • db("""ALTER TYPE "my_type" ADD VALUE 'my_value'""", autocommit=True) # Avoid "cannot run inside a transaction block".

  • db('SELECT * FROM "table" WHERE "name" LIKE %s', escape_like(fragment))

  • connection pool blocks only for the first connection - for quick deploy

  • auto reconnect and retry

  • optional log of each query

Usage:

sudo apt-get install --yes gcc libevent-dev libpq-dev python-dev
sudo pip install pg4geks

from pg4geks import db, db_config, db_insert, db_update, db_transaction
db_config(name='test', user='user', password='password')
# Defaults: host='127.0.0.1', port=5432, pool_size=10, patch_psycopg2_with_gevent=True, log=None

row = db('SELECT "column" FROM "table" WHERE "id" = %s', id).row
assert row is None or row.column == row['column']

return db('SELECT * FROM "table" WHERE "related_id" IN %s AND "parent_id" = %s', tuple(related_ids), parent_id).rows
# Please note that "tuple()" should be used with "IN %s", to keep "list []" for PostgreSQL Array operations.
# http://pythonhosted.org/psycopg2/usage.html#adaptation-of-python-values-to-sql-types

return [
    processed(row)
    for row in db('SELECT * FROM "table" LIMIT 10')
]  # Please note that no ").rows" is required for iteration.

try:
    def code():
        db('INSERT INTO "table1" ("quantity") VALUES (%s)', -100)
        db('INSERT INTO "table2" ("quantity") VALUES (%s)', +1/0)

        if error:
            raise db_rollback

        return result
    result = db_transaction(code)

except db_rollback:
    pass  # Or not.

id = db_insert('table',
    related_id=related_id,
    parent_id=parent_id,
    _return='id',
)

assert db_update('table',
    related_id=None,
    where=dict(id=id),  # Or: id=tuple(ids_to_update)
) == 1

# See tests for more usage examples.

Release files for pg4geks 0.2.3

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for pg4geks 0.2.3
File Size Uploaded
pg4geks-0.2.3.tar.gz 5.3 kB Details

Release files / pg4geks-0.2.3.tar.gz

Download URL pg4geks-0.2.3.tar.gz
Size 5.3 kB
Tags Source
SHA-256 checksum
How to use checksums
2a01e47aa43f528d2edae6e2e11a2db2ce7d89604d8adb66a22787674e2961cc
BLAKE2b-256 checksum
How to use checksums
2ea35cb43d79eeeb0714c7692cb1ca54fa21a60a8e69b2176641d476720e1e64
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Release history Release notifications | RSS feed

This release

0.2.3 This release

1 release file

0.2.2

1 release file

0.2.1

1 release file

0.2.0

1 release file

0.1.1

1 release file

0.1.0

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page