🚀 Socket Launch Week 🚀 Day 1: Introducing .NET Support in Socket.Learn More
Socket
Sign inDemoInstall
Socket

sqlark

Package Overview
Dependencies
Maintainers
1
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

sqlark

A lightweight Non-ORM with a builder pattern for querying a postgres database

1.0.0
PyPI
Maintainers
1

Query Builder

A lightweight wrapper around psycopg2 for creating queries using a builder pattern.

Example Query:

Getting Started

Installation

Using pip

pip install git+https://github.com/MeadowlarkEngineering/query-builder.git#egg=query-builder

Using poetry

poetry add git+https://github.com/MeadowlarkEngineering/query-builder.git

Usage

Select

Select everything from a table.

from query_builder import PostgresConfig, Select
config = PostgresConfig(dbname="blog", user="postgres-username", password="postgres-password)
Select("comments").execute(config)
> [{'id': 1, 'text': "A comment"}]

Add joins, multiple where clauses, offsets, and limits.

s = Select(table_name="posts").\
    join(left_table="posts", right_table="authors", left_col="author_id", right_col="id").\
    where(table="authors", column="id", operator="=", value=1).\
    where_and(table="authors", column="created_at", operator=">", value="2024-01-01").\
    where_and(table="authors", column="created_at", operator=">", value="2024-01-01").\
    limit(10).\
    offset(5).\
    order_by("created_at", table="posts")
result = s.execute(config)

Insert data

i = Insert(table_name="posts").values([{"author_id": 1, "body": "this is a post"}]).on_conflict('id', 'update')
result = i.execute(config)

Development

pip3 install --upgrade pip poetry
poetry self add "poetry-dynamic-versioning[plugin]"
poetry install

Unit Testing

Start a postgres database. The tests don't modify the database, but do require an active psycopg2 connection.

docker run -d -e POSTGRES_PASSWORD=postgres -p 5432:5432 postgres

Run the unit tests

poetry run pytest

You may need to set PGUSER, PGDATABASE, and PGPASSWORD environment variables to establish the connection

Copyright 2024 - Meadowlark Engineering

FAQs

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts