conda environment name
📦 Project dependencies
snowflake-core base
Snowflake Python Core API
snowflake-snowpark-python base
Snowpark Python (DataFrames, UDFs, sprocs)
snowflake-telemetry-python base
Tracing & telemetry events
🪝 Pre-commit hooks
Generated commands
Full script
Step by step
1. Create env
2. Project dependencies
3. pre-commit + hook libs
4. Activate hooks
Packages summary
🗺️ Emoji ↔ Type mapping
Each emoji belongs to exactly one type. The hook validates the combination.
Click an emoji to add/remove. A greyed emoji is already used by another type.
TypeAllowed emojis
👁️ Mapping preview
The hook validates: the emoji must match the declared type exactly.
📊 Coverage
📂 Scopes
🎫 Ticket prefixes
💾 Special case "save"
💾 save: <desc> [skip ci]
Always included — WIP commit without triggering CI
Expected format
<emoji> <type>(<scope>): <description>
scope and ticket are optional · emoji determines the allowed type
Generated hook
Installation
💡 Two installation methods
A) git config core.hooksPath scripts/hooks
B) pre-commit install --hook-type commit-msg
🔍 All gitmojis
EmojiUsageAssigned type
✅ Emojis used in mapping
🐍 Python modules to document
Doc generated locally from installed source — browsable offline.
🔧 Documentation tool
🌐 External APIs
Specs in docs/api/ alongside the code that uses them (Swagger, WSDL, XSD).
Generated commands
Generate Python offline docs
💡 Convention
📁 docs/api/snowflake-core/ → Python offline doc
📁 docs/api/snowpark/ → Snowpark offline doc
📁 docs/api/<service>/ → swagger / wsdl / xsd
🌐 Serve locally
python -m http.server 8080 --directory docs/api/
📁 Project structure
Switch between profiles above to see the matching layout.
🔗 Path ↔ purpose
📋 pyproject.toml
📋 .gitignore
💡 docs/api/ — two conventions
Ignore generated HTML (lighter repo) · or version it for offline-first teams (e.g. snowflake-kit).