Skip to main content

Centralize database access

Project description

Schemapy allows you to generate objects for centralized database access. You define the schema for your API, the code that needs to be executed, then the validation part is dealt with for you. Everything is then encapsulated in a single object.

Schemapy relies on PyDAL for schema definition but is not tied to it.

See documentation for more informations.

License Development Status Latest release Supported Python versions Supported Python implementations Download format Build status Code test coverage Code Health

Installation

pip install schemapy

Usage

Using PyDAL:

from schemapy import API, DAL, Field
from datetime import datetime, timedelta

db = DAL('sqlite:memory')
db.define_table(
    'users',
    Field('name', type='string', required=True),
    Field('created_on', type='date')
)

db.define_table(
    'posts',
    Field('subject', type='string', required=True),
    Field('author', type='reference users', required=True),
    Field('created_on', type='date'),
    Field('content', type='text', required=True)
)

api = API(db)

@api.as_action(
    type='read',
    request=[
        Field('begin', type='date', required=True),
        Field('end', type='date', required=True)
    ],
    response=db.posts
)
def select_posts_by_date(db, req, action):
    query = (db.posts.created_on >= req.begin) | (db.posts.created_on <= req.end)
    return db(query).select()

now = datetime.now()
result = api.select_posts_by_date(
    begin=now - timedelta(days=1),
    end=now
)
print(list(result))

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

schemapy-0.2.2.tar.gz (6.5 kB view details)

Uploaded Source

Built Distribution

schemapy-0.2.2-py2.py3-none-any.whl (10.5 kB view details)

Uploaded Python 2 Python 3

File details

Details for the file schemapy-0.2.2.tar.gz.

File metadata

  • Download URL: schemapy-0.2.2.tar.gz
  • Upload date:
  • Size: 6.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for schemapy-0.2.2.tar.gz
Algorithm Hash digest
SHA256 405fd075de1aef1d5bca7c88a1071f9c346a930ac6cf872a55c3ff5fb88a1d5c
MD5 df70d7e1df29f8aa284e3bb712c515db
BLAKE2b-256 2644208963b3760d41984ed293c1e10f035362fc322d7d2210d4cf9359d1655f

See more details on using hashes here.

File details

Details for the file schemapy-0.2.2-py2.py3-none-any.whl.

File metadata

File hashes

Hashes for schemapy-0.2.2-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 2560846a044a23778e0d2b3e46b1f699d4dfa76600075f3c9cafd5ca2047eef6
MD5 65db755f1132b9758260e60274a09ab5
BLAKE2b-256 43b31935ee6a20b372b73554246acbcfe9ec4c5e979ef46875d1c3dcbf87cad1

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