fullscript.spellbook 2.1__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (29) hide show
  1. fullscript_spellbook-2.1/LICENSE +21 -0
  2. fullscript_spellbook-2.1/MANIFEST.in +1 -0
  3. fullscript_spellbook-2.1/PKG-INFO +208 -0
  4. fullscript_spellbook-2.1/README.md +88 -0
  5. fullscript_spellbook-2.1/fullscript.spellbook.egg-info/PKG-INFO +208 -0
  6. fullscript_spellbook-2.1/fullscript.spellbook.egg-info/SOURCES.txt +27 -0
  7. fullscript_spellbook-2.1/fullscript.spellbook.egg-info/dependency_links.txt +1 -0
  8. fullscript_spellbook-2.1/fullscript.spellbook.egg-info/requires.txt +111 -0
  9. fullscript_spellbook-2.1/fullscript.spellbook.egg-info/top_level.txt +1 -0
  10. fullscript_spellbook-2.1/pyproject.toml +141 -0
  11. fullscript_spellbook-2.1/setup.cfg +4 -0
  12. fullscript_spellbook-2.1/spellbook/__init__.py +0 -0
  13. fullscript_spellbook-2.1/spellbook/db_magic.py +266 -0
  14. fullscript_spellbook-2.1/spellbook/drive_magic.py +266 -0
  15. fullscript_spellbook-2.1/spellbook/sheet_magic.py +181 -0
  16. fullscript_spellbook-2.1/spellbook/stats_magic.py +211 -0
  17. fullscript_spellbook-2.1/spellbook/utils.py +93 -0
  18. fullscript_spellbook-2.1/spellbook/wizards/wizard1.txt +11 -0
  19. fullscript_spellbook-2.1/spellbook/wizards/wizard10.txt +18 -0
  20. fullscript_spellbook-2.1/spellbook/wizards/wizard11.txt +14 -0
  21. fullscript_spellbook-2.1/spellbook/wizards/wizard12.txt +13 -0
  22. fullscript_spellbook-2.1/spellbook/wizards/wizard2.txt +2 -0
  23. fullscript_spellbook-2.1/spellbook/wizards/wizard3.txt +2 -0
  24. fullscript_spellbook-2.1/spellbook/wizards/wizard4.txt +7 -0
  25. fullscript_spellbook-2.1/spellbook/wizards/wizard5.txt +4 -0
  26. fullscript_spellbook-2.1/spellbook/wizards/wizard6.txt +3 -0
  27. fullscript_spellbook-2.1/spellbook/wizards/wizard7.txt +4 -0
  28. fullscript_spellbook-2.1/spellbook/wizards/wizard8.txt +22 -0
  29. fullscript_spellbook-2.1/spellbook/wizards/wizard9.txt +24 -0
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2024 Fullscript
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -0,0 +1 @@
1
+ include wizards/*.txt
@@ -0,0 +1,208 @@
1
+ Metadata-Version: 2.2
2
+ Name: fullscript.spellbook
3
+ Version: 2.1
4
+ Summary: A simple package to make your life easier.
5
+ Author: Gui Chagas, David King, Meinhard Mare, Karsten Melchers
6
+ Author-email: Thomas Edwards <thomas.edwards@fullscript.com>
7
+ License: MIT
8
+ Project-URL: homepage, https://git.fullscript.io/data/spellbook
9
+ Requires-Python: <3.12,>=3.10
10
+ Description-Content-Type: text/markdown
11
+ License-File: LICENSE
12
+ Requires-Dist: appnope==0.1.4
13
+ Requires-Dist: asn1crypto==1.5.1
14
+ Requires-Dist: asttokens==2.4.1
15
+ Requires-Dist: snowflake-sqlalchemy==1.7.0
16
+ Requires-Dist: certifi==2024.8.30
17
+ Requires-Dist: cffi==1.17.1
18
+ Requires-Dist: charset-normalizer==3.4.0
19
+ Requires-Dist: cloudpickle==2.2.1
20
+ Requires-Dist: comm==0.2.2
21
+ Requires-Dist: cryptography==43.0.3
22
+ Requires-Dist: debugpy==1.8.8
23
+ Requires-Dist: decorator==5.1.1
24
+ Requires-Dist: executing==2.1.0
25
+ Requires-Dist: filelock==3.16.1
26
+ Requires-Dist: idna==3.10
27
+ Requires-Dist: ipykernel==6.29.5
28
+ Requires-Dist: ipython==8.29.0
29
+ Requires-Dist: jedi==0.19.2
30
+ Requires-Dist: jupyter_client==8.6.3
31
+ Requires-Dist: jupyter_core==5.7.2
32
+ Requires-Dist: matplotlib-inline==0.1.7
33
+ Requires-Dist: nest-asyncio==1.6.0
34
+ Requires-Dist: numpy==2.1.3
35
+ Requires-Dist: packaging==24.2
36
+ Requires-Dist: pandas==2.2.3
37
+ Requires-Dist: parso==0.8.4
38
+ Requires-Dist: pexpect==4.9.0
39
+ Requires-Dist: platformdirs==4.3.6
40
+ Requires-Dist: prompt_toolkit==3.0.48
41
+ Requires-Dist: protobuf==5.28.3
42
+ Requires-Dist: psutil==6.1.0
43
+ Requires-Dist: ptyprocess==0.7.0
44
+ Requires-Dist: pure_eval==0.2.3
45
+ Requires-Dist: pyarrow==18.0.0
46
+ Requires-Dist: pycparser==2.22
47
+ Requires-Dist: Pygments==2.18.0
48
+ Requires-Dist: PyJWT==2.9.0
49
+ Requires-Dist: pyOpenSSL==24.2.1
50
+ Requires-Dist: python-dateutil==2.9.0.post0
51
+ Requires-Dist: pytz==2024.2
52
+ Requires-Dist: PyYAML==6.0.2
53
+ Requires-Dist: pyzmq==26.2.0
54
+ Requires-Dist: requests==2.32.3
55
+ Requires-Dist: six==1.16.0
56
+ Requires-Dist: snowflake-connector-python==3.12.3
57
+ Requires-Dist: snowflake-snowpark-python==1.25.0
58
+ Requires-Dist: sortedcontainers==2.4.0
59
+ Requires-Dist: SQLAlchemy==2.0.36
60
+ Requires-Dist: stack-data==0.6.3
61
+ Requires-Dist: tomlkit==0.13.2
62
+ Requires-Dist: tornado==6.4.1
63
+ Requires-Dist: traitlets==5.14.3
64
+ Requires-Dist: typing_extensions==4.12.2
65
+ Requires-Dist: tzdata==2024.2
66
+ Requires-Dist: tzlocal==5.2
67
+ Requires-Dist: urllib3==2.2.3
68
+ Requires-Dist: wcwidth==0.2.13
69
+ Provides-Extra: drivemagic
70
+ Requires-Dist: cachetools==5.5.0; extra == "drivemagic"
71
+ Requires-Dist: google-api-core==2.23.0; extra == "drivemagic"
72
+ Requires-Dist: google-api-python-client==2.153.0; extra == "drivemagic"
73
+ Requires-Dist: google-auth==2.36.0; extra == "drivemagic"
74
+ Requires-Dist: google-auth-httplib2==0.2.0; extra == "drivemagic"
75
+ Requires-Dist: google-auth-oauthlib==1.2.1; extra == "drivemagic"
76
+ Requires-Dist: googleapis-common-protos==1.66.0; extra == "drivemagic"
77
+ Requires-Dist: httplib2==0.22.0; extra == "drivemagic"
78
+ Requires-Dist: oauthlib==3.2.2; extra == "drivemagic"
79
+ Requires-Dist: proto-plus==1.25.0; extra == "drivemagic"
80
+ Requires-Dist: pyasn1==0.6.1; extra == "drivemagic"
81
+ Requires-Dist: pyasn1_modules==0.4.1; extra == "drivemagic"
82
+ Requires-Dist: pyparsing==3.2.0; extra == "drivemagic"
83
+ Requires-Dist: requests-oauthlib==2.0.0; extra == "drivemagic"
84
+ Requires-Dist: rsa==4.9; extra == "drivemagic"
85
+ Requires-Dist: uritemplate==4.1.1; extra == "drivemagic"
86
+ Provides-Extra: sheetmagic
87
+ Requires-Dist: cachetools==5.5.0; extra == "sheetmagic"
88
+ Requires-Dist: google-api-core==2.23.0; extra == "sheetmagic"
89
+ Requires-Dist: google-api-python-client==2.153.0; extra == "sheetmagic"
90
+ Requires-Dist: google-auth==2.36.0; extra == "sheetmagic"
91
+ Requires-Dist: google-auth-httplib2==0.2.0; extra == "sheetmagic"
92
+ Requires-Dist: google-auth-oauthlib==1.2.1; extra == "sheetmagic"
93
+ Requires-Dist: googleapis-common-protos==1.66.0; extra == "sheetmagic"
94
+ Requires-Dist: httplib2==0.22.0; extra == "sheetmagic"
95
+ Requires-Dist: oauthlib==3.2.2; extra == "sheetmagic"
96
+ Requires-Dist: pyasn1==0.6.1; extra == "sheetmagic"
97
+ Requires-Dist: pyasn1_modules==0.4.1; extra == "sheetmagic"
98
+ Requires-Dist: Pygments==2.18.0; extra == "sheetmagic"
99
+ Requires-Dist: pygsheets==2.0.6; extra == "sheetmagic"
100
+ Requires-Dist: pyparsing==3.2.0; extra == "sheetmagic"
101
+ Requires-Dist: requests-oauthlib==2.0.0; extra == "sheetmagic"
102
+ Requires-Dist: rsa==4.9; extra == "sheetmagic"
103
+ Requires-Dist: uritemplate==4.1.1; extra == "sheetmagic"
104
+ Provides-Extra: statsmagic
105
+ Requires-Dist: contourpy==1.3.1; extra == "statsmagic"
106
+ Requires-Dist: cycler==0.12.1; extra == "statsmagic"
107
+ Requires-Dist: fonttools==4.55.0; extra == "statsmagic"
108
+ Requires-Dist: kiwisolver==1.4.7; extra == "statsmagic"
109
+ Requires-Dist: matplotlib==3.9.2; extra == "statsmagic"
110
+ Requires-Dist: patsy==1.0.1; extra == "statsmagic"
111
+ Requires-Dist: pillow==11.0.0; extra == "statsmagic"
112
+ Requires-Dist: pyparsing==3.2.0; extra == "statsmagic"
113
+ Requires-Dist: python-dateutil==2.9.0.post0; extra == "statsmagic"
114
+ Requires-Dist: pytz==2024.2; extra == "statsmagic"
115
+ Requires-Dist: scikit-posthocs==0.10.0; extra == "statsmagic"
116
+ Requires-Dist: scipy==1.14.1; extra == "statsmagic"
117
+ Requires-Dist: seaborn==0.13.2; extra == "statsmagic"
118
+ Requires-Dist: six==1.16.0; extra == "statsmagic"
119
+ Requires-Dist: statsmodels==0.14.4; extra == "statsmagic"
120
+
121
+ # Spellbook
122
+
123
+ Helping data scientists and engineers save time by making it simple to connect to databases, work with spreadsheets,
124
+ manage files, and run analyses. With Spellbook, they can focus on finding insights and solving problems instead of
125
+ dealing with complicated tools.
126
+
127
+ With Spellbook, you can:
128
+ * Seamlessly connect to Snowflake and MySQL databases, for secure querying and effortless data retrieval.
129
+ * Work with Google Sheets, making it easy to read, write, and update spreadsheets.
130
+ * Manage Google Drive, creating folders and saving files with ease.
131
+ * Perform statistical analyses, helping you run A/B tests and extract actionable insights.
132
+
133
+ Spellbook is built to simplify your workflows and supercharge your data exploration, so you can focus on turning insights into action!
134
+
135
+ ## Table of Contents
136
+
137
+ - [Features](#features)
138
+ - [Installation](#installation)
139
+ - [Configuration](#configuration)
140
+ - [Contributing](#contributing)
141
+ - [License](#license)
142
+
143
+ ## Features
144
+
145
+ - Effortless Database Connections and query execution
146
+ - Read/ Write to Google worksheets
147
+ - Manage Google Drive
148
+ - Perform statistical analyses
149
+
150
+ For feature methods and examples, please refer to the [Wiki Page](https://git.fullscript.io/data/spellbook/-/wikis/home).
151
+
152
+
153
+ ## Installation
154
+
155
+ Spellbook requires Python 3.11 or higher. Use the following steps to install:
156
+ > Note: At the time relase, Snowpark does not support versions of Python higher than 3.11
157
+
158
+ 1. Pip install:
159
+
160
+ ```bash
161
+ pip install git+https://git.fullscript.io/data/spellbook.git
162
+ ```
163
+
164
+ ## Configuration
165
+ Effortlessly and securely manage your connections and configurations! Simply add database types and connection
166
+ credentials to your [spellbook_config.yaml](spellbook_config.yaml) file, or include your Google service account details for seamless access to
167
+ Google services. For added security, Spellbook supports storing credentials in environment variables
168
+ or in a configuration file that references those variables, keeping your sensitive information safe and sound.
169
+
170
+ You must have a `spellbook_config.yaml` file in your root directory or in your project directory.
171
+ An example of the `spellbook_config.yaml` file is shown below:
172
+
173
+ ```yaml
174
+ databases:
175
+ # Snowflake Database Connection
176
+ - name: alias_of_your_connection
177
+ type: snowflake
178
+ account: your_account
179
+ user: snowflake_user_name # Optional for private key auth
180
+ password: snowflake_password # Optional, used if private key is not present
181
+ private_key: snowflake_pk # Base64-encoded private key
182
+ private_key_passphrase: snowflake_pk_phrase # Optional
183
+ role: snowflake_role
184
+ warehouse: snowflake_warehouse
185
+ database: snowflake_database
186
+ schema: snowflake_schema
187
+
188
+ google_accounts:
189
+ # Google Sheets Service Account 1
190
+ - name: google_sheets_service_account_1
191
+ service_account: "your_base64_encoded_service_account_credentials_here" # Add your Base64-encoded service account JSON here
192
+ ```
193
+
194
+ ## Contributing
195
+
196
+ We welcome contributions! Please follow these steps:
197
+
198
+ 1. Fork this repository.
199
+ 2. Create a new branch: `git checkout -b feature-name`.
200
+ 3. Commit your changes: `git commit -m 'Add some feature'`.
201
+ 4. Push to the branch: `git push origin feature-name`.
202
+ 5. Open a pull request.
203
+
204
+ ## License
205
+
206
+ Spellbook is licensed under the MIT License. See the [LICENSE](LICENSE) file for more details.
207
+
208
+ ---
@@ -0,0 +1,88 @@
1
+ # Spellbook
2
+
3
+ Helping data scientists and engineers save time by making it simple to connect to databases, work with spreadsheets,
4
+ manage files, and run analyses. With Spellbook, they can focus on finding insights and solving problems instead of
5
+ dealing with complicated tools.
6
+
7
+ With Spellbook, you can:
8
+ * Seamlessly connect to Snowflake and MySQL databases, for secure querying and effortless data retrieval.
9
+ * Work with Google Sheets, making it easy to read, write, and update spreadsheets.
10
+ * Manage Google Drive, creating folders and saving files with ease.
11
+ * Perform statistical analyses, helping you run A/B tests and extract actionable insights.
12
+
13
+ Spellbook is built to simplify your workflows and supercharge your data exploration, so you can focus on turning insights into action!
14
+
15
+ ## Table of Contents
16
+
17
+ - [Features](#features)
18
+ - [Installation](#installation)
19
+ - [Configuration](#configuration)
20
+ - [Contributing](#contributing)
21
+ - [License](#license)
22
+
23
+ ## Features
24
+
25
+ - Effortless Database Connections and query execution
26
+ - Read/ Write to Google worksheets
27
+ - Manage Google Drive
28
+ - Perform statistical analyses
29
+
30
+ For feature methods and examples, please refer to the [Wiki Page](https://git.fullscript.io/data/spellbook/-/wikis/home).
31
+
32
+
33
+ ## Installation
34
+
35
+ Spellbook requires Python 3.11 or higher. Use the following steps to install:
36
+ > Note: At the time relase, Snowpark does not support versions of Python higher than 3.11
37
+
38
+ 1. Pip install:
39
+
40
+ ```bash
41
+ pip install git+https://git.fullscript.io/data/spellbook.git
42
+ ```
43
+
44
+ ## Configuration
45
+ Effortlessly and securely manage your connections and configurations! Simply add database types and connection
46
+ credentials to your [spellbook_config.yaml](spellbook_config.yaml) file, or include your Google service account details for seamless access to
47
+ Google services. For added security, Spellbook supports storing credentials in environment variables
48
+ or in a configuration file that references those variables, keeping your sensitive information safe and sound.
49
+
50
+ You must have a `spellbook_config.yaml` file in your root directory or in your project directory.
51
+ An example of the `spellbook_config.yaml` file is shown below:
52
+
53
+ ```yaml
54
+ databases:
55
+ # Snowflake Database Connection
56
+ - name: alias_of_your_connection
57
+ type: snowflake
58
+ account: your_account
59
+ user: snowflake_user_name # Optional for private key auth
60
+ password: snowflake_password # Optional, used if private key is not present
61
+ private_key: snowflake_pk # Base64-encoded private key
62
+ private_key_passphrase: snowflake_pk_phrase # Optional
63
+ role: snowflake_role
64
+ warehouse: snowflake_warehouse
65
+ database: snowflake_database
66
+ schema: snowflake_schema
67
+
68
+ google_accounts:
69
+ # Google Sheets Service Account 1
70
+ - name: google_sheets_service_account_1
71
+ service_account: "your_base64_encoded_service_account_credentials_here" # Add your Base64-encoded service account JSON here
72
+ ```
73
+
74
+ ## Contributing
75
+
76
+ We welcome contributions! Please follow these steps:
77
+
78
+ 1. Fork this repository.
79
+ 2. Create a new branch: `git checkout -b feature-name`.
80
+ 3. Commit your changes: `git commit -m 'Add some feature'`.
81
+ 4. Push to the branch: `git push origin feature-name`.
82
+ 5. Open a pull request.
83
+
84
+ ## License
85
+
86
+ Spellbook is licensed under the MIT License. See the [LICENSE](LICENSE) file for more details.
87
+
88
+ ---
@@ -0,0 +1,208 @@
1
+ Metadata-Version: 2.2
2
+ Name: fullscript.spellbook
3
+ Version: 2.1
4
+ Summary: A simple package to make your life easier.
5
+ Author: Gui Chagas, David King, Meinhard Mare, Karsten Melchers
6
+ Author-email: Thomas Edwards <thomas.edwards@fullscript.com>
7
+ License: MIT
8
+ Project-URL: homepage, https://git.fullscript.io/data/spellbook
9
+ Requires-Python: <3.12,>=3.10
10
+ Description-Content-Type: text/markdown
11
+ License-File: LICENSE
12
+ Requires-Dist: appnope==0.1.4
13
+ Requires-Dist: asn1crypto==1.5.1
14
+ Requires-Dist: asttokens==2.4.1
15
+ Requires-Dist: snowflake-sqlalchemy==1.7.0
16
+ Requires-Dist: certifi==2024.8.30
17
+ Requires-Dist: cffi==1.17.1
18
+ Requires-Dist: charset-normalizer==3.4.0
19
+ Requires-Dist: cloudpickle==2.2.1
20
+ Requires-Dist: comm==0.2.2
21
+ Requires-Dist: cryptography==43.0.3
22
+ Requires-Dist: debugpy==1.8.8
23
+ Requires-Dist: decorator==5.1.1
24
+ Requires-Dist: executing==2.1.0
25
+ Requires-Dist: filelock==3.16.1
26
+ Requires-Dist: idna==3.10
27
+ Requires-Dist: ipykernel==6.29.5
28
+ Requires-Dist: ipython==8.29.0
29
+ Requires-Dist: jedi==0.19.2
30
+ Requires-Dist: jupyter_client==8.6.3
31
+ Requires-Dist: jupyter_core==5.7.2
32
+ Requires-Dist: matplotlib-inline==0.1.7
33
+ Requires-Dist: nest-asyncio==1.6.0
34
+ Requires-Dist: numpy==2.1.3
35
+ Requires-Dist: packaging==24.2
36
+ Requires-Dist: pandas==2.2.3
37
+ Requires-Dist: parso==0.8.4
38
+ Requires-Dist: pexpect==4.9.0
39
+ Requires-Dist: platformdirs==4.3.6
40
+ Requires-Dist: prompt_toolkit==3.0.48
41
+ Requires-Dist: protobuf==5.28.3
42
+ Requires-Dist: psutil==6.1.0
43
+ Requires-Dist: ptyprocess==0.7.0
44
+ Requires-Dist: pure_eval==0.2.3
45
+ Requires-Dist: pyarrow==18.0.0
46
+ Requires-Dist: pycparser==2.22
47
+ Requires-Dist: Pygments==2.18.0
48
+ Requires-Dist: PyJWT==2.9.0
49
+ Requires-Dist: pyOpenSSL==24.2.1
50
+ Requires-Dist: python-dateutil==2.9.0.post0
51
+ Requires-Dist: pytz==2024.2
52
+ Requires-Dist: PyYAML==6.0.2
53
+ Requires-Dist: pyzmq==26.2.0
54
+ Requires-Dist: requests==2.32.3
55
+ Requires-Dist: six==1.16.0
56
+ Requires-Dist: snowflake-connector-python==3.12.3
57
+ Requires-Dist: snowflake-snowpark-python==1.25.0
58
+ Requires-Dist: sortedcontainers==2.4.0
59
+ Requires-Dist: SQLAlchemy==2.0.36
60
+ Requires-Dist: stack-data==0.6.3
61
+ Requires-Dist: tomlkit==0.13.2
62
+ Requires-Dist: tornado==6.4.1
63
+ Requires-Dist: traitlets==5.14.3
64
+ Requires-Dist: typing_extensions==4.12.2
65
+ Requires-Dist: tzdata==2024.2
66
+ Requires-Dist: tzlocal==5.2
67
+ Requires-Dist: urllib3==2.2.3
68
+ Requires-Dist: wcwidth==0.2.13
69
+ Provides-Extra: drivemagic
70
+ Requires-Dist: cachetools==5.5.0; extra == "drivemagic"
71
+ Requires-Dist: google-api-core==2.23.0; extra == "drivemagic"
72
+ Requires-Dist: google-api-python-client==2.153.0; extra == "drivemagic"
73
+ Requires-Dist: google-auth==2.36.0; extra == "drivemagic"
74
+ Requires-Dist: google-auth-httplib2==0.2.0; extra == "drivemagic"
75
+ Requires-Dist: google-auth-oauthlib==1.2.1; extra == "drivemagic"
76
+ Requires-Dist: googleapis-common-protos==1.66.0; extra == "drivemagic"
77
+ Requires-Dist: httplib2==0.22.0; extra == "drivemagic"
78
+ Requires-Dist: oauthlib==3.2.2; extra == "drivemagic"
79
+ Requires-Dist: proto-plus==1.25.0; extra == "drivemagic"
80
+ Requires-Dist: pyasn1==0.6.1; extra == "drivemagic"
81
+ Requires-Dist: pyasn1_modules==0.4.1; extra == "drivemagic"
82
+ Requires-Dist: pyparsing==3.2.0; extra == "drivemagic"
83
+ Requires-Dist: requests-oauthlib==2.0.0; extra == "drivemagic"
84
+ Requires-Dist: rsa==4.9; extra == "drivemagic"
85
+ Requires-Dist: uritemplate==4.1.1; extra == "drivemagic"
86
+ Provides-Extra: sheetmagic
87
+ Requires-Dist: cachetools==5.5.0; extra == "sheetmagic"
88
+ Requires-Dist: google-api-core==2.23.0; extra == "sheetmagic"
89
+ Requires-Dist: google-api-python-client==2.153.0; extra == "sheetmagic"
90
+ Requires-Dist: google-auth==2.36.0; extra == "sheetmagic"
91
+ Requires-Dist: google-auth-httplib2==0.2.0; extra == "sheetmagic"
92
+ Requires-Dist: google-auth-oauthlib==1.2.1; extra == "sheetmagic"
93
+ Requires-Dist: googleapis-common-protos==1.66.0; extra == "sheetmagic"
94
+ Requires-Dist: httplib2==0.22.0; extra == "sheetmagic"
95
+ Requires-Dist: oauthlib==3.2.2; extra == "sheetmagic"
96
+ Requires-Dist: pyasn1==0.6.1; extra == "sheetmagic"
97
+ Requires-Dist: pyasn1_modules==0.4.1; extra == "sheetmagic"
98
+ Requires-Dist: Pygments==2.18.0; extra == "sheetmagic"
99
+ Requires-Dist: pygsheets==2.0.6; extra == "sheetmagic"
100
+ Requires-Dist: pyparsing==3.2.0; extra == "sheetmagic"
101
+ Requires-Dist: requests-oauthlib==2.0.0; extra == "sheetmagic"
102
+ Requires-Dist: rsa==4.9; extra == "sheetmagic"
103
+ Requires-Dist: uritemplate==4.1.1; extra == "sheetmagic"
104
+ Provides-Extra: statsmagic
105
+ Requires-Dist: contourpy==1.3.1; extra == "statsmagic"
106
+ Requires-Dist: cycler==0.12.1; extra == "statsmagic"
107
+ Requires-Dist: fonttools==4.55.0; extra == "statsmagic"
108
+ Requires-Dist: kiwisolver==1.4.7; extra == "statsmagic"
109
+ Requires-Dist: matplotlib==3.9.2; extra == "statsmagic"
110
+ Requires-Dist: patsy==1.0.1; extra == "statsmagic"
111
+ Requires-Dist: pillow==11.0.0; extra == "statsmagic"
112
+ Requires-Dist: pyparsing==3.2.0; extra == "statsmagic"
113
+ Requires-Dist: python-dateutil==2.9.0.post0; extra == "statsmagic"
114
+ Requires-Dist: pytz==2024.2; extra == "statsmagic"
115
+ Requires-Dist: scikit-posthocs==0.10.0; extra == "statsmagic"
116
+ Requires-Dist: scipy==1.14.1; extra == "statsmagic"
117
+ Requires-Dist: seaborn==0.13.2; extra == "statsmagic"
118
+ Requires-Dist: six==1.16.0; extra == "statsmagic"
119
+ Requires-Dist: statsmodels==0.14.4; extra == "statsmagic"
120
+
121
+ # Spellbook
122
+
123
+ Helping data scientists and engineers save time by making it simple to connect to databases, work with spreadsheets,
124
+ manage files, and run analyses. With Spellbook, they can focus on finding insights and solving problems instead of
125
+ dealing with complicated tools.
126
+
127
+ With Spellbook, you can:
128
+ * Seamlessly connect to Snowflake and MySQL databases, for secure querying and effortless data retrieval.
129
+ * Work with Google Sheets, making it easy to read, write, and update spreadsheets.
130
+ * Manage Google Drive, creating folders and saving files with ease.
131
+ * Perform statistical analyses, helping you run A/B tests and extract actionable insights.
132
+
133
+ Spellbook is built to simplify your workflows and supercharge your data exploration, so you can focus on turning insights into action!
134
+
135
+ ## Table of Contents
136
+
137
+ - [Features](#features)
138
+ - [Installation](#installation)
139
+ - [Configuration](#configuration)
140
+ - [Contributing](#contributing)
141
+ - [License](#license)
142
+
143
+ ## Features
144
+
145
+ - Effortless Database Connections and query execution
146
+ - Read/ Write to Google worksheets
147
+ - Manage Google Drive
148
+ - Perform statistical analyses
149
+
150
+ For feature methods and examples, please refer to the [Wiki Page](https://git.fullscript.io/data/spellbook/-/wikis/home).
151
+
152
+
153
+ ## Installation
154
+
155
+ Spellbook requires Python 3.11 or higher. Use the following steps to install:
156
+ > Note: At the time relase, Snowpark does not support versions of Python higher than 3.11
157
+
158
+ 1. Pip install:
159
+
160
+ ```bash
161
+ pip install git+https://git.fullscript.io/data/spellbook.git
162
+ ```
163
+
164
+ ## Configuration
165
+ Effortlessly and securely manage your connections and configurations! Simply add database types and connection
166
+ credentials to your [spellbook_config.yaml](spellbook_config.yaml) file, or include your Google service account details for seamless access to
167
+ Google services. For added security, Spellbook supports storing credentials in environment variables
168
+ or in a configuration file that references those variables, keeping your sensitive information safe and sound.
169
+
170
+ You must have a `spellbook_config.yaml` file in your root directory or in your project directory.
171
+ An example of the `spellbook_config.yaml` file is shown below:
172
+
173
+ ```yaml
174
+ databases:
175
+ # Snowflake Database Connection
176
+ - name: alias_of_your_connection
177
+ type: snowflake
178
+ account: your_account
179
+ user: snowflake_user_name # Optional for private key auth
180
+ password: snowflake_password # Optional, used if private key is not present
181
+ private_key: snowflake_pk # Base64-encoded private key
182
+ private_key_passphrase: snowflake_pk_phrase # Optional
183
+ role: snowflake_role
184
+ warehouse: snowflake_warehouse
185
+ database: snowflake_database
186
+ schema: snowflake_schema
187
+
188
+ google_accounts:
189
+ # Google Sheets Service Account 1
190
+ - name: google_sheets_service_account_1
191
+ service_account: "your_base64_encoded_service_account_credentials_here" # Add your Base64-encoded service account JSON here
192
+ ```
193
+
194
+ ## Contributing
195
+
196
+ We welcome contributions! Please follow these steps:
197
+
198
+ 1. Fork this repository.
199
+ 2. Create a new branch: `git checkout -b feature-name`.
200
+ 3. Commit your changes: `git commit -m 'Add some feature'`.
201
+ 4. Push to the branch: `git push origin feature-name`.
202
+ 5. Open a pull request.
203
+
204
+ ## License
205
+
206
+ Spellbook is licensed under the MIT License. See the [LICENSE](LICENSE) file for more details.
207
+
208
+ ---
@@ -0,0 +1,27 @@
1
+ LICENSE
2
+ MANIFEST.in
3
+ README.md
4
+ pyproject.toml
5
+ fullscript.spellbook.egg-info/PKG-INFO
6
+ fullscript.spellbook.egg-info/SOURCES.txt
7
+ fullscript.spellbook.egg-info/dependency_links.txt
8
+ fullscript.spellbook.egg-info/requires.txt
9
+ fullscript.spellbook.egg-info/top_level.txt
10
+ spellbook/__init__.py
11
+ spellbook/db_magic.py
12
+ spellbook/drive_magic.py
13
+ spellbook/sheet_magic.py
14
+ spellbook/stats_magic.py
15
+ spellbook/utils.py
16
+ spellbook/wizards/wizard1.txt
17
+ spellbook/wizards/wizard10.txt
18
+ spellbook/wizards/wizard11.txt
19
+ spellbook/wizards/wizard12.txt
20
+ spellbook/wizards/wizard2.txt
21
+ spellbook/wizards/wizard3.txt
22
+ spellbook/wizards/wizard4.txt
23
+ spellbook/wizards/wizard5.txt
24
+ spellbook/wizards/wizard6.txt
25
+ spellbook/wizards/wizard7.txt
26
+ spellbook/wizards/wizard8.txt
27
+ spellbook/wizards/wizard9.txt
@@ -0,0 +1,111 @@
1
+ appnope==0.1.4
2
+ asn1crypto==1.5.1
3
+ asttokens==2.4.1
4
+ snowflake-sqlalchemy==1.7.0
5
+ certifi==2024.8.30
6
+ cffi==1.17.1
7
+ charset-normalizer==3.4.0
8
+ cloudpickle==2.2.1
9
+ comm==0.2.2
10
+ cryptography==43.0.3
11
+ debugpy==1.8.8
12
+ decorator==5.1.1
13
+ executing==2.1.0
14
+ filelock==3.16.1
15
+ idna==3.10
16
+ ipykernel==6.29.5
17
+ ipython==8.29.0
18
+ jedi==0.19.2
19
+ jupyter_client==8.6.3
20
+ jupyter_core==5.7.2
21
+ matplotlib-inline==0.1.7
22
+ nest-asyncio==1.6.0
23
+ numpy==2.1.3
24
+ packaging==24.2
25
+ pandas==2.2.3
26
+ parso==0.8.4
27
+ pexpect==4.9.0
28
+ platformdirs==4.3.6
29
+ prompt_toolkit==3.0.48
30
+ protobuf==5.28.3
31
+ psutil==6.1.0
32
+ ptyprocess==0.7.0
33
+ pure_eval==0.2.3
34
+ pyarrow==18.0.0
35
+ pycparser==2.22
36
+ Pygments==2.18.0
37
+ PyJWT==2.9.0
38
+ pyOpenSSL==24.2.1
39
+ python-dateutil==2.9.0.post0
40
+ pytz==2024.2
41
+ PyYAML==6.0.2
42
+ pyzmq==26.2.0
43
+ requests==2.32.3
44
+ six==1.16.0
45
+ snowflake-connector-python==3.12.3
46
+ snowflake-snowpark-python==1.25.0
47
+ sortedcontainers==2.4.0
48
+ SQLAlchemy==2.0.36
49
+ stack-data==0.6.3
50
+ tomlkit==0.13.2
51
+ tornado==6.4.1
52
+ traitlets==5.14.3
53
+ typing_extensions==4.12.2
54
+ tzdata==2024.2
55
+ tzlocal==5.2
56
+ urllib3==2.2.3
57
+ wcwidth==0.2.13
58
+
59
+ [drivemagic]
60
+ cachetools==5.5.0
61
+ google-api-core==2.23.0
62
+ google-api-python-client==2.153.0
63
+ google-auth==2.36.0
64
+ google-auth-httplib2==0.2.0
65
+ google-auth-oauthlib==1.2.1
66
+ googleapis-common-protos==1.66.0
67
+ httplib2==0.22.0
68
+ oauthlib==3.2.2
69
+ proto-plus==1.25.0
70
+ pyasn1==0.6.1
71
+ pyasn1_modules==0.4.1
72
+ pyparsing==3.2.0
73
+ requests-oauthlib==2.0.0
74
+ rsa==4.9
75
+ uritemplate==4.1.1
76
+
77
+ [sheetmagic]
78
+ cachetools==5.5.0
79
+ google-api-core==2.23.0
80
+ google-api-python-client==2.153.0
81
+ google-auth==2.36.0
82
+ google-auth-httplib2==0.2.0
83
+ google-auth-oauthlib==1.2.1
84
+ googleapis-common-protos==1.66.0
85
+ httplib2==0.22.0
86
+ oauthlib==3.2.2
87
+ pyasn1==0.6.1
88
+ pyasn1_modules==0.4.1
89
+ Pygments==2.18.0
90
+ pygsheets==2.0.6
91
+ pyparsing==3.2.0
92
+ requests-oauthlib==2.0.0
93
+ rsa==4.9
94
+ uritemplate==4.1.1
95
+
96
+ [statsmagic]
97
+ contourpy==1.3.1
98
+ cycler==0.12.1
99
+ fonttools==4.55.0
100
+ kiwisolver==1.4.7
101
+ matplotlib==3.9.2
102
+ patsy==1.0.1
103
+ pillow==11.0.0
104
+ pyparsing==3.2.0
105
+ python-dateutil==2.9.0.post0
106
+ pytz==2024.2
107
+ scikit-posthocs==0.10.0
108
+ scipy==1.14.1
109
+ seaborn==0.13.2
110
+ six==1.16.0
111
+ statsmodels==0.14.4