Skip to main content

Lightweight query access-pattern declaration for ORMs

Project description

query-patterns

Declare query access patterns in code and verify matching DB indexes. Supports SQLAlchemy and Django.

What it does

  • Collects all @query_pattern declarations
  • Extracts ORM indexes
    • SQLAlchemy: MetaData
    • Django: Model._meta.indexes
  • Compares (table, columns) and reports [OK] or [MISSING]

Example output

  • [OK] users('email',)
  • [MISSING] orders('user_id',)

Install

pip install query-patterns
pip install "query-patterns[sqlalchemy]"
pip install "query-patterns[django]"

Declare a pattern

from query_patterns import query_pattern

class Repo:
    @query_pattern(table="users", columns=["email"])
    def find(self, email): ...

SQLAlchemy

query-patterns sqlalchemy \
  --module myapp.repo \
  --metadata myapp.metadata.metadata
  
# or auto-discover modules
query-patterns sqlalchemy \
  --metadata myapp.metadata.metadata

Django

query-patterns django \
  --settings config.settings \
  --module myapp.repo
  
# or auto-discover modules 
query-patterns django \
  --settings config.settings

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

query_patterns-0.1.0.tar.gz (8.1 kB view details)

Uploaded Source

Built Distribution

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

query_patterns-0.1.0-py3-none-any.whl (8.5 kB view details)

Uploaded Python 3

File details

Details for the file query_patterns-0.1.0.tar.gz.

File metadata

  • Download URL: query_patterns-0.1.0.tar.gz
  • Upload date:
  • Size: 8.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.14

File hashes

Hashes for query_patterns-0.1.0.tar.gz
Algorithm Hash digest
SHA256 3ab02610f8a81d1ad90e9030d8893e00ab6cff6121fa50685e7ad3c90c2080ae
MD5 3614552a3f9487dbc52d06bbe2923582
BLAKE2b-256 26622607c5b4e553dce670ef911c8122e1c38c533705bd21ca913a11ee37afb4

See more details on using hashes here.

File details

Details for the file query_patterns-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: query_patterns-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 8.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.14

File hashes

Hashes for query_patterns-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 116cfaad3a3c92e98861410c5e905017a1e810f4c3dccbef438e2506846731c3
MD5 b3ef4ff196e2e5ff700c4f3a192f35d1
BLAKE2b-256 6f02bc65cf3b5b8d247d9a2b6deeeacdb91086d438c6fa6c78ebbecd149fc3f1

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