Python model and query builder for Snowflake.
Project description
Snowman
Python model and query builder for Snowflake.
Install
pip install snowman-py
CLI Tool
Initialize Snowman Configuration
snowman init
Generate Python Model From Snowflake Information Schemas
snowman model generate
Check Differences Between Python Model and Snowflake Information Schemas
snowman model diff --check
Query Builder
Insert Query
import textwrap
from snowman.query import insert
from your.database.schema import User
query, params = (
insert.into(
User,
).values(
{
"id": 1,
"name": "John Doe",
}
)
).build()
expected = textwrap.dedent(
"""
INSERT INTO
database.schema.users
(
id,
name
)
VALUES (
%s,
%s
)
"""
).strip()
assert query == expected
assert params == (1, "John Doe")
Update Query
import textwrap
from snowman.query import update
from your.database.schema import User
query, params = (
update(
User,
)
.set(
{"name": "Jane Doe"},
)
.where("id = %s", [1])
).build()
expected = textwrap.dedent(
"""
UPDATE
database.schema.users
SET
name = %s
WHERE
id = %s
"""
).strip()
assert query == expected
assert params == ("Jane Doe", 1)
Delete Query
import textwrap
from snowman.query import delete
from your.database.schema import User
query, params = (
delete.from_(
User,
).where(
"id = %s",
[1],
)
).build()
expected = textwrap.dedent(
"""
DELETE FROM
database.schema.users
WHERE
id = %s
"""
).strip()
assert query == expected
assert params == (1,)
Truncate Query
from snowman.query import truncate
from your.database.schema import User
query, params = truncate.table(User).build()
expected = "TRUNCATE TABLE database.schema.users"
assert query == expected
assert params == ()
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
snowman_py-0.0.15.tar.gz
(36.2 kB
view hashes)
Built Distributions
Close
Hashes for snowman_py-0.0.15-py3-none-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | fe0b6265bb8a37a001bb170f9c5fbcb9c5b0eb826e82dc104a55419e857f5090 |
|
MD5 | d62c670b05adf3a6b6dfa8b8b936320a |
|
BLAKE2b-256 | 864ee502fb115711df10f316166d1d60b4bbeab0269b7074958134e004c7b30f |
Close
Hashes for snowman_py-0.0.15-py3-none-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 95d30a077bd9f87524f41e417d0b22585f1a778cf796a95728e9542ee3aaeb0e |
|
MD5 | 3b083ad19c5c6a7a2d088a01dd1c5339 |
|
BLAKE2b-256 | b029407a75d8356aa3065d350c028087a4f746d2e34d3ee14e4df72cd4bb87ec |
Close
Hashes for snowman_py-0.0.15-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 278c0cb047bf2045df7236667c614a5e89a51e4807ea7f43eab19fd5e9632bdc |
|
MD5 | 6120c34b14403c202d846beffa56fbfe |
|
BLAKE2b-256 | 2776aa2972624e2c261ee04535d2b0f35ec70a26cde20be2b11135f7b5e378a6 |
Close
Hashes for snowman_py-0.0.15-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d926db5eb5e38c97d051ada727552a25f487ea2e9e59324315177dc8bba6e4b1 |
|
MD5 | 1dce70994ee60aa67ff1f28ff9e0b801 |
|
BLAKE2b-256 | 003182bcb8e687310904b26ae186fdc62d6503d8b78b1cb2cac8e3b80353110a |
Close
Hashes for snowman_py-0.0.15-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 28e37581db1f679b6c38553d0962586579effb751e9d65f0258941f84a30c4f2 |
|
MD5 | e1efdc30b2eff199629eea217bcfa3d4 |
|
BLAKE2b-256 | 061aebb99decca45483b1a470d86f082e6d174c2c0aafe9ad25a1e7ea54bbc57 |
Close
Hashes for snowman_py-0.0.15-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f4733a44365ab2dc02a33bb97b4d696d890678765063c59a4595270029a09e47 |
|
MD5 | f9a86d1141d13c2174ffae596fe32a6c |
|
BLAKE2b-256 | 5c289cf671e34d9e99f253e5b578555c2a65bcc8fec4875522e643a334095a24 |
Close
Hashes for snowman_py-0.0.15-py3-none-macosx_11_0_arm64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0a7eb4b98eca91dde6606184d2943a44d3f5614a14f0d6656f81ce45b69c4a81 |
|
MD5 | b775f3c5cbbd08871e7df2458dd11ca3 |
|
BLAKE2b-256 | 7aeeb20f518fa7719aa09f8bf03fb31e29ed7e48c53392b52d1e951d9d33b100 |
Close
Hashes for snowman_py-0.0.15-py3-none-macosx_10_12_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8b5fd0d12be509cc08a6b45a51f76807ee5ac4d4778b21cce15b7bdd7f4a1598 |
|
MD5 | 7cf5b35eb880ad094ba7460588192388 |
|
BLAKE2b-256 | b2349ba1e16759fac2adbaed965d7f2a6553815adb3df7f42ef86eac80c64122 |