Skip to main content

Thin wrapper on top of SQL that enables you write SQL code in python easily

Project description

Supersql Library

Supersql is a very thin wrapper on top of SQL that enables you write SQL code in python easily.

 

Why?

Let's be honest, writing sql templates using string formatting is really painful. SQLAlchemy is great, but sometimes an ORM is not what you need, and whilst the new f strings in python solve a lot of problems, complex SQL templating is not of them.

Supersql makes it super simple to connect to and start querying a database in python.

Let the code do the explanation:

from supersql import Connection, Query


connection = Connection('postgres:localhost:5432', user='postgres', password='postgres')

query = Query()


results = query.SELECT(
        'first_name', 'last_name', 'email'
    ).FROM(
        'employees'
    ).WHERE('email', equals='someone@example.com').run()


for result in results:
    print(result)

 

Too many magic literals? I agree. Let's try that again with a Schema

# Schemas help you remove all those magic literals e.g. 'email' string typed twice
# from your code
from supersql import Schema, String, Date, Integer

class Employee(Schema):
    __pk__ = ('email', 'identifier')

    identifier = UUID(pg='uuid_version1', mysql=None)  # mysql included for examples sake
    email = String(required=True, unique=None, length=25)
    age = Integer()
    first_name = String(required=True)
    last_name = String(25)
    created_on = Date()


# Now lets try again
emp = Employee()
results = query.SELECT(
    emp.first_name, emp.last_name, emp.email
).FROM(
    emp
).WHERE(
    emp.email, equals='someone@example.com'
).run()

 

NOTE: Still Very Much In Development -- Expected Launch Date (November 11 2019)

Supersql is not installable until launch

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

supersql-2019.0.3.tar.gz (2.6 kB view details)

Uploaded Source

Built Distribution

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

supersql-2019.0.3-py3-none-any.whl (3.4 kB view details)

Uploaded Python 3

File details

Details for the file supersql-2019.0.3.tar.gz.

File metadata

  • Download URL: supersql-2019.0.3.tar.gz
  • Upload date:
  • Size: 2.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/0.12.17 CPython/3.7.4 Darwin/18.7.0

File hashes

Hashes for supersql-2019.0.3.tar.gz
Algorithm Hash digest
SHA256 1e7bfc01c03370467efe83748c0c48a70aea926a49ce7df13f3021aab3e2493d
MD5 8b872219c25926673510da4c23f58da9
BLAKE2b-256 aa5922c071e67aea4356f1111a061ff55dd66842a4ee7b2fa5f7a2dfae7ad588

See more details on using hashes here.

File details

Details for the file supersql-2019.0.3-py3-none-any.whl.

File metadata

  • Download URL: supersql-2019.0.3-py3-none-any.whl
  • Upload date:
  • Size: 3.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/0.12.17 CPython/3.7.4 Darwin/18.7.0

File hashes

Hashes for supersql-2019.0.3-py3-none-any.whl
Algorithm Hash digest
SHA256 792f1538d7a2da898ff67f8feb8154871cc36c0f591926012faf02d9fe782769
MD5 09bd712f6d09c46f526439219ab355fa
BLAKE2b-256 cd70b8f820ed11b158fc99384a8df877ceaa6df1f551eccd913c05b816159e98

See more details on using hashes here.

Supported by

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