Type Hint SQL Query Builder for Python.
Project description
Type Safed SQL Query Builder for Python
⚠️⚠️⚠️ This library is currently under consideration and is not ready for use in actual products. ⚠️⚠️⚠️
Development Notes
DDL
There are no plans for support.
DDL is often used infrequently as its syntax varies from database to database. It is recommended that it be managed by a separate migration tool.
For Table Relation
If a PrimaryKey or a join key is included as a constraint, it can be expressed as a NewType to match the condition.
Examples
from textwrap import dedent
from tipsql.core.query.builder import QueryBuilder
from your_project.database.public import User, Address
builder = (
query.chain()
.from_(
lambda c: c(User)
.left_outer_join(
Address,
)
.on(
lambda c: c(User.id == Address.user_id)
.and_(Address.city == "Tokyo")
)
)
.select(
User.id,
User.name,
)
)
assert (
builder.build()
== dedent(
"""
SELECT
users.id,
users.name
FROM
users
LEFT OUTER JOIN
addresses
ON
users.id = addresses.user_id
AND addresses.city = 'Tokyo';
"""
).strip()
)
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
tipsql-0.0.14.tar.gz
(2.1 kB
view details)
Built Distribution
File details
Details for the file tipsql-0.0.14.tar.gz
.
File metadata
- Download URL: tipsql-0.0.14.tar.gz
- Upload date:
- Size: 2.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.7.1 CPython/3.12.0 Linux/6.2.0-1016-azure
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 13d38c1fe51f029f0a1d5f1d936c2274385b551e9784b882d92137b1abeb3697 |
|
MD5 | c08ea84041fe8cbd2ced6fd9176677eb |
|
BLAKE2b-256 | 8cece08a3973b52c16c6aff5b5734656dcdaf124537e6e580489ff386512d505 |
File details
Details for the file tipsql-0.0.14-py3-none-any.whl
.
File metadata
- Download URL: tipsql-0.0.14-py3-none-any.whl
- Upload date:
- Size: 1.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.7.1 CPython/3.12.0 Linux/6.2.0-1016-azure
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 595df285eb9abea18b1515087f02f3dde1a852f7a8fc2dba0325379a37fb0858 |
|
MD5 | 4734c4aa4f5606dd61c2a5f91ee9b0a9 |
|
BLAKE2b-256 | 3ca56d13f86c42a0ab5bd4b142b397854f24c089b5646379ea440c8cdb22f3de |