Skip to main content

QUERY FACTORY

This tool should help organizing SQL queries into python projects.

USAGE

You should seperate query template in a yaml file as in the following example:

# template.yaml
description: |
  This is a simple query for demonstration purpose.

variables:
  start_date:
    description: UTC datetime string to gather data from (inclusive)
    required: true
  end_date:
    description: UTC datetime string to gather data to (exclusive)
    required: true
  category_id:
    description: Category id to filter on. If null, filter won't apply.
    required: false
    default: null
  market:
    description: Market scope (either 'pro' or 'part').
    required: false
    default: part

query_template: |
  SELECT *
  FROM db.table
  WHERE event_date >= {{ start_date }}
  AND event_date < {{ end_date }}
  AND market = {{ market }}
  {% if category_id %}
  AND category_id = {{ category_id }}
  {% endif %}
  LIMIT = 100;

Then get your factory up and run some queries:

from query_factory import SQLQueryFactory

# factory setup.
factory = SQLQueryFactory("/path/to/template.yaml")

Factory carries some information about template as:

>>> set(factory.required_variables)
{'end_date', 'start_date'}

>>> set(factory.optional_variables)
{'category_id'}

>>> factory.describe("start_date")
'UTC datetime string to gather data from (inclusive)'

Here is how you can variabilize your queries using a factory as define above:

import pandas as pd

connection = connect_to_sql_query_engine()

data_2020_02_01 = pd.read_sql(
    factory(
        start_date="2020-02-01",
        end_date="2020-02-02"
    ),
    con=connection
)
data_2020_02_02_filtered_on_categ1 = pd.read_sql(
    factory(
        start_date="2020-02-02", 
        end_date="2020-02-03", 
        category_id="categ_1"
    ),
    con=connection
)

Download files

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

Source Distribution

query_factory-0.1.0.tar.gz (4.5 kB view details)

Uploaded Source

File details

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

File metadata

  • Download URL: query_factory-0.1.0.tar.gz
  • Upload date:
  • Size: 4.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.3.0 pkginfo/1.7.0 requests/2.25.1 setuptools/53.0.0 requests-toolbelt/0.9.1 tqdm/4.56.0 CPython/3.7.9

File hashes

Hashes for query_factory-0.1.0.tar.gz
Algorithm Hash digest
SHA256 8e5a944540db53e9a56f834a3f7343dce0e115cdd9dd475c03bd89c663adbd76
MD5 d15d9704ceee4167f7907c7a62241035
BLAKE2b-256 af6e891d9908eccbe3a5eb31fcf63ca6fe648a01212406f920e144a97e3a33c9

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

0.1.0 This release

1 file

0.0.9

1 file

0.0.7

1 file

0.0.6

1 file

0.0.5

1 file

0.0.4

1 file

0.0.1

1 file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page