Skip to main content

Type Hint SQL Query Builder for Python.

Project description

Type Safed SQL Query Builder for Python

test pypi package

⚠️⚠️⚠️ 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


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)

Uploaded Source

Built Distribution

tipsql-0.0.14-py3-none-any.whl (1.9 kB view details)

Uploaded Python 3

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

Hashes for tipsql-0.0.14.tar.gz
Algorithm Hash digest
SHA256 13d38c1fe51f029f0a1d5f1d936c2274385b551e9784b882d92137b1abeb3697
MD5 c08ea84041fe8cbd2ced6fd9176677eb
BLAKE2b-256 8cece08a3973b52c16c6aff5b5734656dcdaf124537e6e580489ff386512d505

See more details on using hashes here.

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

Hashes for tipsql-0.0.14-py3-none-any.whl
Algorithm Hash digest
SHA256 595df285eb9abea18b1515087f02f3dde1a852f7a8fc2dba0325379a37fb0858
MD5 4734c4aa4f5606dd61c2a5f91ee9b0a9
BLAKE2b-256 3ca56d13f86c42a0ab5bd4b142b397854f24c089b5646379ea440c8cdb22f3de

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