Helping data scientists and engineers save time by making it simple to connect to databases, work with spreadsheets, manage files, and run analyses. With Spellbook, they can focus on finding insights and solving problems instead of dealing with complicated tools.
With Spellbook, you can:
- Seamlessly connect to Snowflake and MySQL databases, for secure querying and effortless data retrieval.
- Work with Google Sheets, making it easy to read, write, and update spreadsheets.
- Manage Google Drive, creating folders and saving files with ease.
- Perform statistical analyses, helping you run A/B tests and extract actionable insights.
Spellbook is built to simplify your workflows and supercharge your data exploration, so you can focus on turning insights into action!
- Effortless Database Connections and query execution
- Read/ Write to Google worksheets
- Manage Google Drive
- Perform statistical analyses
For feature methods and examples, please refer to the Wiki Page.
Spellbook requires Python 3.11 or higher. Use the following steps to install:
Note: At the time relase, Snowpark does not support versions of Python higher than 3.11
- Pip install:
pip install fullscript.spellbookEffortlessly and securely manage your connections and configurations! Simply add database types and connection credentials to your spellbook_config.yaml file, or include your Google service account details for seamless access to Google services. For added security, Spellbook supports storing credentials in environment variables or in a configuration file that references those variables, keeping your sensitive information safe and sound.
You must have a spellbook_config.yaml file in your root directory or in your project directory.
An example of the spellbook_config.yaml file is shown below:
databases:
# Snowflake Database Connection
- name: snowflake_example
type: snowflake
account: ${SNOWFLAKE_ACCOUNT}
user: ${SNOWFLAKE_USER}
password: ${SNOWFLAKE_PASSWORD} # Optional when a private key is given
private_key: ${SNOW_PK} # Base64-encoded; used in preference to the password
private_key_passphrase: ${SNOW_PK_PASSPHRASE} # Optional
role: snowflake_role
warehouse: snowflake_warehouse
database: snowflake_database
schema: snowflake_schema # Optional, defaults to 'public'
# MySQL Database Connection using a stored password
- name: mysql_example
type: mysql
host: your_host
port: 3306
user: mysql_user_name
password: ${MYSQL_PASSWORD}
database: mysql_database
# MySQL Database Connection using AWS RDS IAM authentication (no stored password).
# Fullscript internal only: requires the `rx` CLI. See documentation/db_magic.md.
# No `user` is needed - the IAM token names the user it was issued for.
- name: mysql_iam_example
type: mysql
host: your_host.rds.amazonaws.com
port: 3306
iam_auth: true
database: ${MYSQL_DATABASE}
google_accounts:
# Google Sheets Service Account 1
- name: google_sheets_service_account_1
service_account: "your_base64_encoded_service_account_credentials_here" # Add your Base64-encoded service account JSON hereFor detailed documentation on how to use Spellbook, please refer to the Documentation folder in the repository.
Functionality:
We welcome contributions! Please follow these steps:
- Fork this repository.
- Create a new branch:
git checkout -b feature-name. - Commit your changes:
git commit -m 'Add some feature'. - Push to the branch:
git push origin feature-name. - Open a pull request.
Spellbook is licensed under the MIT License. See the LICENSE file for more details.