Skip to main content

Tool to organize query through factories.

Project description

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
)

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_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.

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