Skip to main content
Join the official 2019 Python Developers SurveyStart the survey!

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.

Files for supersql, version 2019.0.4
Filename, size File type Python version Upload date Hashes
Filename, size supersql-2019.0.4-py3-none-any.whl (4.7 kB) File type Wheel Python version py3 Upload date Hashes View hashes
Filename, size supersql-2019.0.4.tar.gz (3.1 kB) File type Source Python version None Upload date Hashes View hashes

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN SignalFx SignalFx Supporter DigiCert DigiCert EV certificate StatusPage StatusPage Status page