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.3.tar.gz (6.6 kB view details)

Uploaded Source

Built Distribution

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

Uploaded Python 2 Python 3

File details

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

File metadata

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

File hashes

Hashes for schemapy-0.2.3.tar.gz
Algorithm Hash digest
SHA256 5eface27e50892617a0f63e7e38bea72a1aa45843a07a171d97f85f167912a20
MD5 c5d5efc744cbb20ce93e64c46038f97d
BLAKE2b-256 1e9e5aa2e841789daa3720d834d62598d51580453c4d445ff93ab2f7d73c5a2c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for schemapy-0.2.3-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 68f94c09c364fbd13d2062e0e86bc1dd3fcc1dd82315a63ad8c3005c7a418a9a
MD5 c069b6de35e8720fa306150e563a276c
BLAKE2b-256 8618f7b15d35ad45d2407ba0896fbd0680eeb39f3e6810933af09ffa8a3dc532

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