Skip to main content

sqlalchemy_window

A SQLAlchemy plugin to add support for PostgreSQL WINDOW clause.

NOTE: only supports SQLAlchemy 2.0 and higher.

Example

import sqlalchemy as sa
from sqlalchemy_window import over_window, select, window

metadata = sa.MetaData()
table = sa.Table(
  "prices",
  metadata,
  sa.Column("asset", sa.String(16), primary_key=True),
  sa.Column("ts", sa.DateTime(timezone=True), primary_key=True),
  sa.Column("price", sa.Numeric, nullable=False),
)

w = window("w", partition_by=table.c["asset"], order_by=table.c["ts"], range_=(None, None))

query = select(
  over_window(sa.func.first_value(table.c["price"]), w).label("open"),
  over_window(sa.func.max(table.c["price"]), w).label("high"),
  over_window(sa.func.min(table.c["price"]), w).label("low"),
  over_window(sa.func.last_value(table.c["price"]), w).label("close"),
).where(sa.func.cast(table.c["ts"], sa.Date) == '2023-01-01').window(w)

Development

To setup a development environment run:

python3 -m venv venv
source ./venv/bin/activate
pip install --upgrade pip
pip install -r dev-requirements.txt -e .
pre-commit install

Running tests:

make test
make coverage

A waterfountain1996 project.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

sqlalchemy_window-0.1.2.tar.gz (8.2 kB view details)

Uploaded Source

Built Distribution

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

sqlalchemy_window-0.1.2-py3-none-any.whl (8.4 kB view details)

Uploaded Python 3

File details

Details for the file sqlalchemy_window-0.1.2.tar.gz.

File metadata

  • Download URL: sqlalchemy_window-0.1.2.tar.gz
  • Upload date:
  • Size: 8.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.7.16

File hashes

Hashes for sqlalchemy_window-0.1.2.tar.gz
Algorithm Hash digest
SHA256 497267f1cad6f36cc6f89b9ac9552dd6a5436ad7ec7d703f459da9d3f3b14bb0
MD5 15dd98def0568695f8ccfba360431e2c
BLAKE2b-256 d4fc479a476bab81dd78a57d02df68b85825b3677259209e885640f7da66f309

See more details on using hashes here.

File details

Details for the file sqlalchemy_window-0.1.2-py3-none-any.whl.

File metadata

File hashes

Hashes for sqlalchemy_window-0.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 a2c5b188a09dee54cada2a17171fd08e186756fc7ecc8741fce0a67709d9684f
MD5 886d6f3d1413b79310bd52fb7f9d1cf2
BLAKE2b-256 e2ec940cf4bb26d989f3cea89803d9c36bf96fda36580d5599a149b6b834711d

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 Sentry Error logging StatusPage Status page