snowflake-cli-labs 2.8.0rc1__py3-none-any.whl → 2.8.2__py3-none-any.whl

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 (242) hide show
  1. README.md +21 -0
  2. {snowflake_cli_labs-2.8.0rc1.dist-info → snowflake_cli_labs-2.8.2.dist-info}/METADATA +7 -95
  3. snowflake_cli_labs-2.8.2.dist-info/RECORD +5 -0
  4. snowflake/cli/__about__.py +0 -17
  5. snowflake/cli/__init__.py +0 -13
  6. snowflake/cli/api/__init__.py +0 -48
  7. snowflake/cli/api/cli_global_context.py +0 -390
  8. snowflake/cli/api/commands/__init__.py +0 -13
  9. snowflake/cli/api/commands/alias.py +0 -23
  10. snowflake/cli/api/commands/decorators.py +0 -354
  11. snowflake/cli/api/commands/execution_metadata.py +0 -40
  12. snowflake/cli/api/commands/experimental_behaviour.py +0 -19
  13. snowflake/cli/api/commands/flags.py +0 -640
  14. snowflake/cli/api/commands/project_initialisation.py +0 -65
  15. snowflake/cli/api/commands/snow_typer.py +0 -237
  16. snowflake/cli/api/commands/typer_pre_execute.py +0 -26
  17. snowflake/cli/api/config.py +0 -348
  18. snowflake/cli/api/console/__init__.py +0 -17
  19. snowflake/cli/api/console/abc.py +0 -89
  20. snowflake/cli/api/console/console.py +0 -134
  21. snowflake/cli/api/console/enum.py +0 -17
  22. snowflake/cli/api/constants.py +0 -79
  23. snowflake/cli/api/errno.py +0 -27
  24. snowflake/cli/api/exceptions.py +0 -164
  25. snowflake/cli/api/feature_flags.py +0 -55
  26. snowflake/cli/api/identifiers.py +0 -154
  27. snowflake/cli/api/output/__init__.py +0 -13
  28. snowflake/cli/api/output/formats.py +0 -20
  29. snowflake/cli/api/output/types.py +0 -118
  30. snowflake/cli/api/plugins/__init__.py +0 -13
  31. snowflake/cli/api/plugins/command/__init__.py +0 -72
  32. snowflake/cli/api/plugins/command/plugin_hook_specs.py +0 -21
  33. snowflake/cli/api/plugins/plugin_config.py +0 -32
  34. snowflake/cli/api/project/__init__.py +0 -13
  35. snowflake/cli/api/project/definition.py +0 -84
  36. snowflake/cli/api/project/definition_manager.py +0 -134
  37. snowflake/cli/api/project/errors.py +0 -56
  38. snowflake/cli/api/project/project_verification.py +0 -23
  39. snowflake/cli/api/project/schemas/__init__.py +0 -13
  40. snowflake/cli/api/project/schemas/entities/application_entity.py +0 -44
  41. snowflake/cli/api/project/schemas/entities/application_package_entity.py +0 -66
  42. snowflake/cli/api/project/schemas/entities/common.py +0 -78
  43. snowflake/cli/api/project/schemas/entities/entities.py +0 -30
  44. snowflake/cli/api/project/schemas/identifier_model.py +0 -49
  45. snowflake/cli/api/project/schemas/native_app/__init__.py +0 -13
  46. snowflake/cli/api/project/schemas/native_app/application.py +0 -62
  47. snowflake/cli/api/project/schemas/native_app/native_app.py +0 -93
  48. snowflake/cli/api/project/schemas/native_app/package.py +0 -78
  49. snowflake/cli/api/project/schemas/native_app/path_mapping.py +0 -65
  50. snowflake/cli/api/project/schemas/project_definition.py +0 -199
  51. snowflake/cli/api/project/schemas/snowpark/__init__.py +0 -13
  52. snowflake/cli/api/project/schemas/snowpark/argument.py +0 -28
  53. snowflake/cli/api/project/schemas/snowpark/callable.py +0 -69
  54. snowflake/cli/api/project/schemas/snowpark/snowpark.py +0 -36
  55. snowflake/cli/api/project/schemas/streamlit/__init__.py +0 -13
  56. snowflake/cli/api/project/schemas/streamlit/streamlit.py +0 -46
  57. snowflake/cli/api/project/schemas/template.py +0 -77
  58. snowflake/cli/api/project/schemas/updatable_model.py +0 -194
  59. snowflake/cli/api/project/util.py +0 -261
  60. snowflake/cli/api/rendering/__init__.py +0 -13
  61. snowflake/cli/api/rendering/jinja.py +0 -112
  62. snowflake/cli/api/rendering/project_definition_templates.py +0 -39
  63. snowflake/cli/api/rendering/project_templates.py +0 -98
  64. snowflake/cli/api/rendering/sql_templates.py +0 -60
  65. snowflake/cli/api/rest_api.py +0 -172
  66. snowflake/cli/api/sanitizers.py +0 -43
  67. snowflake/cli/api/secure_path.py +0 -362
  68. snowflake/cli/api/secure_utils.py +0 -29
  69. snowflake/cli/api/sql_execution.py +0 -260
  70. snowflake/cli/api/utils/__init__.py +0 -13
  71. snowflake/cli/api/utils/cursor.py +0 -34
  72. snowflake/cli/api/utils/definition_rendering.py +0 -383
  73. snowflake/cli/api/utils/dict_utils.py +0 -73
  74. snowflake/cli/api/utils/error_handling.py +0 -23
  75. snowflake/cli/api/utils/graph.py +0 -97
  76. snowflake/cli/api/utils/models.py +0 -63
  77. snowflake/cli/api/utils/naming_utils.py +0 -13
  78. snowflake/cli/api/utils/path_utils.py +0 -36
  79. snowflake/cli/api/utils/templating_functions.py +0 -144
  80. snowflake/cli/api/utils/types.py +0 -35
  81. snowflake/cli/app/__init__.py +0 -22
  82. snowflake/cli/app/__main__.py +0 -31
  83. snowflake/cli/app/api_impl/__init__.py +0 -13
  84. snowflake/cli/app/api_impl/plugin/__init__.py +0 -13
  85. snowflake/cli/app/api_impl/plugin/plugin_config_provider_impl.py +0 -66
  86. snowflake/cli/app/build_and_push.sh +0 -8
  87. snowflake/cli/app/cli_app.py +0 -243
  88. snowflake/cli/app/commands_registration/__init__.py +0 -33
  89. snowflake/cli/app/commands_registration/builtin_plugins.py +0 -54
  90. snowflake/cli/app/commands_registration/command_plugins_loader.py +0 -169
  91. snowflake/cli/app/commands_registration/commands_registration_with_callbacks.py +0 -105
  92. snowflake/cli/app/commands_registration/exception_logging.py +0 -26
  93. snowflake/cli/app/commands_registration/threadsafe.py +0 -48
  94. snowflake/cli/app/commands_registration/typer_registration.py +0 -153
  95. snowflake/cli/app/constants.py +0 -19
  96. snowflake/cli/app/dev/__init__.py +0 -13
  97. snowflake/cli/app/dev/commands_structure.py +0 -48
  98. snowflake/cli/app/dev/docs/__init__.py +0 -13
  99. snowflake/cli/app/dev/docs/commands_docs_generator.py +0 -100
  100. snowflake/cli/app/dev/docs/generator.py +0 -35
  101. snowflake/cli/app/dev/docs/project_definition_docs_generator.py +0 -58
  102. snowflake/cli/app/dev/docs/project_definition_generate_json_schema.py +0 -227
  103. snowflake/cli/app/dev/docs/template_utils.py +0 -23
  104. snowflake/cli/app/dev/docs/templates/definition_description.rst.jinja2 +0 -38
  105. snowflake/cli/app/dev/docs/templates/overview.rst.jinja2 +0 -9
  106. snowflake/cli/app/dev/docs/templates/usage.rst.jinja2 +0 -57
  107. snowflake/cli/app/dev/pycharm_remote_debug.py +0 -46
  108. snowflake/cli/app/loggers.py +0 -199
  109. snowflake/cli/app/main_typer.py +0 -62
  110. snowflake/cli/app/printing.py +0 -181
  111. snowflake/cli/app/snow_connector.py +0 -243
  112. snowflake/cli/app/telemetry.py +0 -189
  113. snowflake/cli/plugins/__init__.py +0 -13
  114. snowflake/cli/plugins/connection/__init__.py +0 -13
  115. snowflake/cli/plugins/connection/commands.py +0 -330
  116. snowflake/cli/plugins/connection/plugin_spec.py +0 -30
  117. snowflake/cli/plugins/connection/util.py +0 -179
  118. snowflake/cli/plugins/cortex/__init__.py +0 -13
  119. snowflake/cli/plugins/cortex/commands.py +0 -327
  120. snowflake/cli/plugins/cortex/constants.py +0 -17
  121. snowflake/cli/plugins/cortex/manager.py +0 -189
  122. snowflake/cli/plugins/cortex/plugin_spec.py +0 -30
  123. snowflake/cli/plugins/cortex/types.py +0 -22
  124. snowflake/cli/plugins/git/__init__.py +0 -13
  125. snowflake/cli/plugins/git/commands.py +0 -305
  126. snowflake/cli/plugins/git/manager.py +0 -96
  127. snowflake/cli/plugins/git/plugin_spec.py +0 -30
  128. snowflake/cli/plugins/init/__init__.py +0 -13
  129. snowflake/cli/plugins/init/commands.py +0 -244
  130. snowflake/cli/plugins/init/plugin_spec.py +0 -30
  131. snowflake/cli/plugins/nativeapp/__init__.py +0 -13
  132. snowflake/cli/plugins/nativeapp/artifacts.py +0 -742
  133. snowflake/cli/plugins/nativeapp/codegen/__init__.py +0 -13
  134. snowflake/cli/plugins/nativeapp/codegen/artifact_processor.py +0 -91
  135. snowflake/cli/plugins/nativeapp/codegen/compiler.py +0 -130
  136. snowflake/cli/plugins/nativeapp/codegen/sandbox.py +0 -306
  137. snowflake/cli/plugins/nativeapp/codegen/setup/native_app_setup_processor.py +0 -172
  138. snowflake/cli/plugins/nativeapp/codegen/setup/setup_driver.py.source +0 -56
  139. snowflake/cli/plugins/nativeapp/codegen/snowpark/callback_source.py.jinja +0 -181
  140. snowflake/cli/plugins/nativeapp/codegen/snowpark/extension_function_utils.py +0 -217
  141. snowflake/cli/plugins/nativeapp/codegen/snowpark/models.py +0 -61
  142. snowflake/cli/plugins/nativeapp/codegen/snowpark/python_processor.py +0 -528
  143. snowflake/cli/plugins/nativeapp/commands.py +0 -439
  144. snowflake/cli/plugins/nativeapp/common_flags.py +0 -44
  145. snowflake/cli/plugins/nativeapp/constants.py +0 -27
  146. snowflake/cli/plugins/nativeapp/exceptions.py +0 -122
  147. snowflake/cli/plugins/nativeapp/feature_flags.py +0 -24
  148. snowflake/cli/plugins/nativeapp/init.py +0 -345
  149. snowflake/cli/plugins/nativeapp/manager.py +0 -823
  150. snowflake/cli/plugins/nativeapp/plugin_spec.py +0 -30
  151. snowflake/cli/plugins/nativeapp/policy.py +0 -50
  152. snowflake/cli/plugins/nativeapp/project_model.py +0 -195
  153. snowflake/cli/plugins/nativeapp/run_processor.py +0 -389
  154. snowflake/cli/plugins/nativeapp/teardown_processor.py +0 -301
  155. snowflake/cli/plugins/nativeapp/utils.py +0 -98
  156. snowflake/cli/plugins/nativeapp/v2_conversions/v2_to_v1_decorator.py +0 -135
  157. snowflake/cli/plugins/nativeapp/version/__init__.py +0 -13
  158. snowflake/cli/plugins/nativeapp/version/commands.py +0 -170
  159. snowflake/cli/plugins/nativeapp/version/version_processor.py +0 -362
  160. snowflake/cli/plugins/notebook/__init__.py +0 -13
  161. snowflake/cli/plugins/notebook/commands.py +0 -84
  162. snowflake/cli/plugins/notebook/exceptions.py +0 -20
  163. snowflake/cli/plugins/notebook/manager.py +0 -71
  164. snowflake/cli/plugins/notebook/plugin_spec.py +0 -30
  165. snowflake/cli/plugins/notebook/types.py +0 -16
  166. snowflake/cli/plugins/object/__init__.py +0 -13
  167. snowflake/cli/plugins/object/command_aliases.py +0 -94
  168. snowflake/cli/plugins/object/commands.py +0 -174
  169. snowflake/cli/plugins/object/common.py +0 -85
  170. snowflake/cli/plugins/object/manager.py +0 -96
  171. snowflake/cli/plugins/object/plugin_spec.py +0 -30
  172. snowflake/cli/plugins/object_stage_deprecated/__init__.py +0 -15
  173. snowflake/cli/plugins/object_stage_deprecated/commands.py +0 -122
  174. snowflake/cli/plugins/object_stage_deprecated/plugin_spec.py +0 -32
  175. snowflake/cli/plugins/snowpark/__init__.py +0 -13
  176. snowflake/cli/plugins/snowpark/commands.py +0 -548
  177. snowflake/cli/plugins/snowpark/common.py +0 -307
  178. snowflake/cli/plugins/snowpark/manager.py +0 -109
  179. snowflake/cli/plugins/snowpark/models.py +0 -156
  180. snowflake/cli/plugins/snowpark/package/__init__.py +0 -13
  181. snowflake/cli/plugins/snowpark/package/anaconda_packages.py +0 -233
  182. snowflake/cli/plugins/snowpark/package/commands.py +0 -256
  183. snowflake/cli/plugins/snowpark/package/manager.py +0 -43
  184. snowflake/cli/plugins/snowpark/package/utils.py +0 -26
  185. snowflake/cli/plugins/snowpark/package_utils.py +0 -354
  186. snowflake/cli/plugins/snowpark/plugin_spec.py +0 -30
  187. snowflake/cli/plugins/snowpark/snowpark_package_paths.py +0 -65
  188. snowflake/cli/plugins/snowpark/snowpark_shared.py +0 -95
  189. snowflake/cli/plugins/snowpark/zipper.py +0 -81
  190. snowflake/cli/plugins/spcs/__init__.py +0 -35
  191. snowflake/cli/plugins/spcs/common.py +0 -99
  192. snowflake/cli/plugins/spcs/compute_pool/__init__.py +0 -13
  193. snowflake/cli/plugins/spcs/compute_pool/commands.py +0 -240
  194. snowflake/cli/plugins/spcs/compute_pool/manager.py +0 -121
  195. snowflake/cli/plugins/spcs/image_registry/__init__.py +0 -13
  196. snowflake/cli/plugins/spcs/image_registry/commands.py +0 -65
  197. snowflake/cli/plugins/spcs/image_registry/manager.py +0 -105
  198. snowflake/cli/plugins/spcs/image_repository/__init__.py +0 -13
  199. snowflake/cli/plugins/spcs/image_repository/commands.py +0 -196
  200. snowflake/cli/plugins/spcs/image_repository/manager.py +0 -84
  201. snowflake/cli/plugins/spcs/jobs/__init__.py +0 -13
  202. snowflake/cli/plugins/spcs/jobs/commands.py +0 -78
  203. snowflake/cli/plugins/spcs/jobs/manager.py +0 -53
  204. snowflake/cli/plugins/spcs/plugin_spec.py +0 -30
  205. snowflake/cli/plugins/spcs/services/__init__.py +0 -13
  206. snowflake/cli/plugins/spcs/services/commands.py +0 -311
  207. snowflake/cli/plugins/spcs/services/manager.py +0 -170
  208. snowflake/cli/plugins/sql/__init__.py +0 -13
  209. snowflake/cli/plugins/sql/commands.py +0 -83
  210. snowflake/cli/plugins/sql/manager.py +0 -92
  211. snowflake/cli/plugins/sql/plugin_spec.py +0 -30
  212. snowflake/cli/plugins/sql/snowsql_templating.py +0 -28
  213. snowflake/cli/plugins/stage/__init__.py +0 -13
  214. snowflake/cli/plugins/stage/commands.py +0 -261
  215. snowflake/cli/plugins/stage/diff.py +0 -326
  216. snowflake/cli/plugins/stage/manager.py +0 -544
  217. snowflake/cli/plugins/stage/md5.py +0 -160
  218. snowflake/cli/plugins/stage/plugin_spec.py +0 -30
  219. snowflake/cli/plugins/streamlit/__init__.py +0 -13
  220. snowflake/cli/plugins/streamlit/commands.py +0 -186
  221. snowflake/cli/plugins/streamlit/manager.py +0 -222
  222. snowflake/cli/plugins/streamlit/plugin_spec.py +0 -30
  223. snowflake/cli/plugins/workspace/__init__.py +0 -13
  224. snowflake/cli/plugins/workspace/commands.py +0 -35
  225. snowflake/cli/plugins/workspace/plugin_spec.py +0 -30
  226. snowflake/cli/templates/default_snowpark/.gitignore +0 -4
  227. snowflake/cli/templates/default_snowpark/app/__init__.py +0 -0
  228. snowflake/cli/templates/default_snowpark/app/common.py +0 -2
  229. snowflake/cli/templates/default_snowpark/app/functions.py +0 -15
  230. snowflake/cli/templates/default_snowpark/app/procedures.py +0 -22
  231. snowflake/cli/templates/default_snowpark/requirements.txt +0 -1
  232. snowflake/cli/templates/default_snowpark/snowflake.yml +0 -23
  233. snowflake/cli/templates/default_streamlit/.gitignore +0 -4
  234. snowflake/cli/templates/default_streamlit/common/hello.py +0 -2
  235. snowflake/cli/templates/default_streamlit/environment.yml +0 -6
  236. snowflake/cli/templates/default_streamlit/pages/my_page.py +0 -3
  237. snowflake/cli/templates/default_streamlit/snowflake.yml +0 -10
  238. snowflake/cli/templates/default_streamlit/streamlit_app.py +0 -4
  239. snowflake_cli_labs-2.8.0rc1.dist-info/RECORD +0 -240
  240. snowflake_cli_labs-2.8.0rc1.dist-info/entry_points.txt +0 -2
  241. {snowflake_cli_labs-2.8.0rc1.dist-info → snowflake_cli_labs-2.8.2.dist-info}/WHEEL +0 -0
  242. {snowflake_cli_labs-2.8.0rc1.dist-info → snowflake_cli_labs-2.8.2.dist-info}/licenses/LICENSE +0 -0
README.md ADDED
@@ -0,0 +1,21 @@
1
+ <!--
2
+ Copyright (c) 2024 Snowflake Inc.
3
+
4
+ Licensed under the Apache License, Version 2.0 (the "License");
5
+ you may not use this file except in compliance with the License.
6
+ You may obtain a copy of the License at
7
+
8
+ http://www.apache.org/licenses/LICENSE-2.0
9
+
10
+ Unless required by applicable law or agreed to in writing, software
11
+ distributed under the License is distributed on an "AS IS" BASIS,
12
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ See the License for the specific language governing permissions and
14
+ limitations under the License.
15
+ -->
16
+
17
+ # Snowflake Developer CLI
18
+
19
+ This package has been renamed. Use `pip install snowflake-cli` instead.
20
+
21
+ New package: https://pypi.org/project/snowflake-cli/
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: snowflake-cli-labs
3
- Version: 2.8.0rc1
3
+ Version: 2.8.2
4
4
  Summary: Snowflake CLI
5
5
  Project-URL: Source code, https://github.com/snowflakedb/snowflake-cli
6
6
  Project-URL: Bug Tracker, https://github.com/snowflakedb/snowflake-cli/issues
@@ -207,39 +207,9 @@ License: Apache License
207
207
  See the License for the specific language governing permissions and
208
208
  limitations under the License.
209
209
  License-File: LICENSE
210
- Classifier: Development Status :: 5 - Production/Stable
211
- Classifier: Environment :: Console
212
- Classifier: Intended Audience :: Developers
213
- Classifier: Intended Audience :: Information Technology
214
- Classifier: Intended Audience :: System Administrators
215
- Classifier: License :: OSI Approved :: Apache Software License
216
- Classifier: Programming Language :: Python :: 3 :: Only
217
- Classifier: Programming Language :: SQL
218
- Classifier: Topic :: Database
219
- Requires-Python: >=3.8
220
- Requires-Dist: gitpython==3.1.43
221
- Requires-Dist: jinja2==3.1.4
222
- Requires-Dist: packaging
223
- Requires-Dist: pip
224
- Requires-Dist: pluggy==1.5.0
225
- Requires-Dist: pydantic==2.8.2
226
- Requires-Dist: pyyaml==6.0.1
227
- Requires-Dist: requests==2.32.3
228
- Requires-Dist: requirements-parser==0.9.0
229
- Requires-Dist: rich==13.7.1
230
- Requires-Dist: setuptools==70.3.0
231
- Requires-Dist: snowflake-connector-python[secure-local-storage]==3.11.0
232
- Requires-Dist: snowflake-core==0.8.0; python_version < '3.12'
233
- Requires-Dist: snowflake-snowpark-python>=1.15.0; python_version < '3.12'
234
- Requires-Dist: tomlkit==0.13.0
235
- Requires-Dist: typer==0.12.3
236
- Requires-Dist: urllib3<2.3,>=1.24.3
237
- Provides-Extra: development
238
- Requires-Dist: coverage==7.6.0; extra == 'development'
239
- Requires-Dist: pre-commit>=3.5.0; extra == 'development'
240
- Requires-Dist: pytest-randomly==3.15.0; extra == 'development'
241
- Requires-Dist: pytest==8.3.1; extra == 'development'
242
- Requires-Dist: syrupy==4.6.1; extra == 'development'
210
+ Classifier: Development Status :: 7 - Inactive
211
+ Requires-Python: >=3.10
212
+ Requires-Dist: snowflake-cli==2.8.2
243
213
  Description-Content-Type: text/markdown
244
214
 
245
215
  <!--
@@ -258,66 +228,8 @@ Description-Content-Type: text/markdown
258
228
  limitations under the License.
259
229
  -->
260
230
 
261
- [![Code quality checks](https://github.com/snowflakedb/snowflake-cli/actions/workflows/lint.yaml/badge.svg)](https://github.com/snowflakedb/snowflake-cli/actions/workflows/lint.yaml)
262
- [![Integration testing](https://github.com/snowflakedb/snowflake-cli/actions/workflows/integration_test.yaml/badge.svg)](https://github.com/snowflakedb/snowflake-cli/actions/workflows/integration_test.yaml)
263
- [![CLI Action testing](https://github.com/snowflakedb/snowflake-cli/actions/workflows/test_cli_action.yaml/badge.svg?branch=main)](https://github.com/snowflakedb/snowflake-cli/actions/workflows/test_cli_action.yaml)
231
+ # Snowflake Developer CLI
264
232
 
265
- [//]: # ([![Python 3.11]&#40;https://img.shields.io/badge/python-3.11-blue.svg&#41;]&#40;https://www.python.org/downloads/release/python-311/&#41;)
233
+ This package has been renamed. Use `pip install snowflake-cli` instead.
266
234
 
267
- # Snowflake CLI
268
-
269
- Snowflake CLI is an open-source command-line tool explicitly designed for developer-centric workloads in addition to SQL operations. It is a flexible and extensible tool that can accommodate modern development practices and technologies.
270
-
271
- With Snowflake CLI, developers can create, manage, update, and view apps running on Snowflake across workloads such as Streamlit in Snowflake, the Snowflake Native App Framework, Snowpark Container Services, and Snowpark. It supports a range of Snowflake features, including user-defined functions, stored procedures, Streamlit in Snowflake, and SQL execution.
272
-
273
-
274
- **Note**: Snowflake CLI is in Public Preview (PuPr).
275
-
276
- Docs: https://docs.snowflake.com/en/developer-guide/snowflake-cli-v2/index.
277
-
278
- Quick start: https://quickstarts.snowflake.com/guide/getting-started-with-snowflake-cli
279
-
280
- Cheatsheet: https://github.com/Snowflake-Labs/sf-cheatsheets/blob/main/snowflake-cli.md
281
-
282
-
283
- ## Install Snowflake CLI
284
-
285
- ### Install with pip (PyPi)
286
-
287
- Requires Python >= 3.8
288
-
289
- ```bash
290
- pip install snowflake-cli-labs
291
- snow --help
292
- ```
293
-
294
- ### Install with Homebrew (Mac only)
295
-
296
- Requires [Homebrew](https://brew.sh/).
297
-
298
- ```bash
299
- brew tap snowflakedb/snowflake-cli
300
- brew install snowflake-cli
301
- snow --help
302
- ```
303
-
304
- ### Install from source
305
-
306
- Requires Python >= 3.8 and git
307
-
308
- ```bash
309
- git clone https://github.com/snowflakedb/snowflake-cli
310
- cd snowflake-cli
311
- # you can also do the below in an active virtual environment:
312
- # python -m venv .venv
313
- # source .venv/bin/activate
314
- hatch build && pip install .
315
- snow --version
316
- ```
317
-
318
- You should now be able to run `snow` and get the CLI message.
319
-
320
- ## Get involved
321
-
322
- Have a feature idea? Running into a bug? Want to contribute? We'd love to hear from you!
323
- Please open or review issues, open pull requests, or reach out to us on developers@snowflake.com
235
+ New package: https://pypi.org/project/snowflake-cli/
@@ -0,0 +1,5 @@
1
+ README.md,sha256=A_KrrRF2DbYSf8rBfTbKNnk3ICcl5P2H_60qQzEkq2E,729
2
+ snowflake_cli_labs-2.8.2.dist-info/METADATA,sha256=KbJlWDKwgaX6qhYUwAQ5dpgeurOEg1fWe6t5tlC31kg,14109
3
+ snowflake_cli_labs-2.8.2.dist-info/WHEEL,sha256=1yFddiXMmvYK7QYTqtRNtX66WJ0Mz8PYEiEUoOUUxRY,87
4
+ snowflake_cli_labs-2.8.2.dist-info/licenses/LICENSE,sha256=mJMA3Uz2AbjU_kVggo1CAx01XhBsI7BSi2H7ggUg_-c,11344
5
+ snowflake_cli_labs-2.8.2.dist-info/RECORD,,
@@ -1,17 +0,0 @@
1
- # Copyright (c) 2024 Snowflake Inc.
2
- #
3
- # Licensed under the Apache License, Version 2.0 (the "License");
4
- # you may not use this file except in compliance with the License.
5
- # You may obtain a copy of the License at
6
- #
7
- # http://www.apache.org/licenses/LICENSE-2.0
8
- #
9
- # Unless required by applicable law or agreed to in writing, software
10
- # distributed under the License is distributed on an "AS IS" BASIS,
11
- # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
- # See the License for the specific language governing permissions and
13
- # limitations under the License.
14
-
15
- from __future__ import annotations
16
-
17
- VERSION = "2.8.0rc1"
snowflake/cli/__init__.py DELETED
@@ -1,13 +0,0 @@
1
- # Copyright (c) 2024 Snowflake Inc.
2
- #
3
- # Licensed under the Apache License, Version 2.0 (the "License");
4
- # you may not use this file except in compliance with the License.
5
- # You may obtain a copy of the License at
6
- #
7
- # http://www.apache.org/licenses/LICENSE-2.0
8
- #
9
- # Unless required by applicable law or agreed to in writing, software
10
- # distributed under the License is distributed on an "AS IS" BASIS,
11
- # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
- # See the License for the specific language governing permissions and
13
- # limitations under the License.
@@ -1,48 +0,0 @@
1
- # Copyright (c) 2024 Snowflake Inc.
2
- #
3
- # Licensed under the Apache License, Version 2.0 (the "License");
4
- # you may not use this file except in compliance with the License.
5
- # You may obtain a copy of the License at
6
- #
7
- # http://www.apache.org/licenses/LICENSE-2.0
8
- #
9
- # Unless required by applicable law or agreed to in writing, software
10
- # distributed under the License is distributed on an "AS IS" BASIS,
11
- # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
- # See the License for the specific language governing permissions and
13
- # limitations under the License.
14
-
15
- from __future__ import annotations
16
-
17
- from typing import Optional
18
-
19
- from snowflake.cli.api.plugins.plugin_config import PluginConfigProvider
20
-
21
-
22
- class Api:
23
- def __init__(
24
- self,
25
- plugin_config_provider: PluginConfigProvider,
26
- ):
27
- self.plugin_config_provider = plugin_config_provider
28
-
29
-
30
- class ApiNotInitializedError(RuntimeError):
31
- """There was a try to use CLI's API while it is still not initialized."""
32
-
33
-
34
- class ApiProvider:
35
- def __init__(self):
36
- self._api: Optional[Api] = None
37
-
38
- def register_api(self, api: Api) -> None:
39
- self._api = api
40
-
41
- def api(self) -> Api:
42
- if self._api:
43
- return self._api
44
- else:
45
- raise ApiNotInitializedError()
46
-
47
-
48
- api_provider = ApiProvider()
@@ -1,390 +0,0 @@
1
- # Copyright (c) 2024 Snowflake Inc.
2
- #
3
- # Licensed under the Apache License, Version 2.0 (the "License");
4
- # you may not use this file except in compliance with the License.
5
- # You may obtain a copy of the License at
6
- #
7
- # http://www.apache.org/licenses/LICENSE-2.0
8
- #
9
- # Unless required by applicable law or agreed to in writing, software
10
- # distributed under the License is distributed on an "AS IS" BASIS,
11
- # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
- # See the License for the specific language governing permissions and
13
- # limitations under the License.
14
-
15
- from __future__ import annotations
16
-
17
- import re
18
- from pathlib import Path
19
- from typing import Callable, Optional
20
-
21
- from snowflake.cli.api.exceptions import InvalidSchemaError
22
- from snowflake.cli.api.output.formats import OutputFormat
23
- from snowflake.cli.api.project.schemas.project_definition import ProjectDefinition
24
- from snowflake.connector import SnowflakeConnection
25
-
26
- schema_pattern = re.compile(r".+\..+")
27
-
28
-
29
- class _ConnectionContext:
30
- def __init__(self):
31
- self._cached_connection: Optional[SnowflakeConnection] = None
32
-
33
- self._connection_name: Optional[str] = None
34
- self._account: Optional[str] = None
35
- self._database: Optional[str] = None
36
- self._role: Optional[str] = None
37
- self._schema: Optional[str] = None
38
- self._user: Optional[str] = None
39
- self._password: Optional[str] = None
40
- self._authenticator: Optional[str] = None
41
- self._private_key_path: Optional[str] = None
42
- self._warehouse: Optional[str] = None
43
- self._mfa_passcode: Optional[str] = None
44
- self._enable_diag: Optional[bool] = False
45
- self._diag_log_path: Optional[Path] = None
46
- self._diag_allowlist_path: Optional[Path] = None
47
- self._temporary_connection: bool = False
48
- self._session_token: Optional[str] = None
49
- self._master_token: Optional[str] = None
50
- self._token_file_path: Optional[Path] = None
51
-
52
- def __setattr__(self, key, value):
53
- """
54
- We invalidate connection cache every time connection attributes change.
55
- """
56
- super().__setattr__(key, value)
57
- if key != "_cached_connection":
58
- self._cached_connection = None
59
-
60
- @property
61
- def connection_name(self) -> Optional[str]:
62
- return self._connection_name
63
-
64
- def set_connection_name(self, value: Optional[str]):
65
- self._connection_name = value
66
-
67
- @property
68
- def account(self) -> Optional[str]:
69
- return self._account
70
-
71
- def set_account(self, value: Optional[str]):
72
- self._account = value
73
-
74
- @property
75
- def database(self) -> Optional[str]:
76
- return self._database
77
-
78
- def set_database(self, value: Optional[str]):
79
- self._database = value
80
-
81
- @property
82
- def role(self) -> Optional[str]:
83
- return self._role
84
-
85
- def set_role(self, value: Optional[str]):
86
- self._role = value
87
-
88
- @property
89
- def schema(self) -> Optional[str]:
90
- return self._schema
91
-
92
- def set_schema(self, value: Optional[str]):
93
- if (
94
- value
95
- and not (value.startswith('"') and value.endswith('"'))
96
- # if schema is fully qualified name (db.schema)
97
- and schema_pattern.match(value)
98
- ):
99
- raise InvalidSchemaError(value)
100
- self._schema = value
101
-
102
- @property
103
- def user(self) -> Optional[str]:
104
- return self._user
105
-
106
- def set_user(self, value: Optional[str]):
107
- self._user = value
108
-
109
- @property
110
- def password(self) -> Optional[str]:
111
- return self._password
112
-
113
- def set_password(self, value: Optional[str]):
114
- self._password = value
115
-
116
- @property
117
- def authenticator(self) -> Optional[str]:
118
- return self._authenticator
119
-
120
- def set_authenticator(self, value: Optional[str]):
121
- self._authenticator = value
122
-
123
- @property
124
- def private_key_path(self) -> Optional[str]:
125
- return self._private_key_path
126
-
127
- def set_private_key_path(self, value: Optional[str]):
128
- self._private_key_path = value
129
-
130
- @property
131
- def warehouse(self) -> Optional[str]:
132
- return self._warehouse
133
-
134
- def set_warehouse(self, value: Optional[str]):
135
- self._warehouse = value
136
-
137
- @property
138
- def mfa_passcode(self) -> Optional[str]:
139
- return self._mfa_passcode
140
-
141
- def set_mfa_passcode(self, value: Optional[str]):
142
- self._mfa_passcode = value
143
-
144
- @property
145
- def enable_diag(self) -> Optional[bool]:
146
- return self._enable_diag
147
-
148
- def set_enable_diag(self, value: Optional[bool]):
149
- self._enable_diag = value
150
-
151
- @property
152
- def diag_log_path(self) -> Optional[Path]:
153
- return self._diag_log_path
154
-
155
- def set_diag_log_path(self, value: Optional[Path]):
156
- self._diag_log_path = value
157
-
158
- @property
159
- def diag_allowlist_path(self) -> Optional[Path]:
160
- return self._diag_allowlist_path
161
-
162
- def set_diag_allowlist_path(self, value: Optional[Path]):
163
- self._diag_allowlist_path = value
164
-
165
- @property
166
- def temporary_connection(self) -> bool:
167
- return self._temporary_connection
168
-
169
- def set_temporary_connection(self, value: bool):
170
- self._temporary_connection = value
171
-
172
- @property
173
- def session_token(self) -> Optional[str]:
174
- return self._session_token
175
-
176
- def set_session_token(self, value: Optional[str]):
177
- self._session_token = value
178
-
179
- @property
180
- def master_token(self) -> Optional[str]:
181
- return self._master_token
182
-
183
- def set_master_token(self, value: Optional[str]):
184
- self._master_token = value
185
-
186
- @property
187
- def token_file_path(self) -> Optional[Path]:
188
- return self._token_file_path
189
-
190
- def set_token_file_path(self, value: Optional[Path]):
191
- self._token_file_path = value
192
-
193
- @property
194
- def connection(self) -> SnowflakeConnection:
195
- if not self._cached_connection:
196
- self._cached_connection = self._build_connection()
197
- return self._cached_connection
198
-
199
- def _collect_not_empty_connection_attributes(self):
200
- return {
201
- "account": self.account,
202
- "user": self.user,
203
- "password": self.password,
204
- "authenticator": self.authenticator,
205
- "private_key_path": self.private_key_path,
206
- "database": self.database,
207
- "schema": self.schema,
208
- "role": self.role,
209
- "warehouse": self.warehouse,
210
- "session_token": self.session_token,
211
- "master_token": self.master_token,
212
- "token_file_path": self.token_file_path,
213
- }
214
-
215
- def _build_connection(self):
216
- from snowflake.cli.app.snow_connector import connect_to_snowflake
217
-
218
- return connect_to_snowflake(
219
- temporary_connection=self.temporary_connection,
220
- mfa_passcode=self._mfa_passcode,
221
- enable_diag=self._enable_diag,
222
- diag_log_path=self._diag_log_path,
223
- diag_allowlist_path=self._diag_allowlist_path,
224
- connection_name=self.connection_name,
225
- **self._collect_not_empty_connection_attributes(),
226
- )
227
-
228
-
229
- class _CliGlobalContextManager:
230
- def __init__(self):
231
- self._connection_context = _ConnectionContext()
232
- self._enable_tracebacks = True
233
- self._output_format = OutputFormat.TABLE
234
- self._verbose = False
235
- self._experimental = False
236
- self._project_definition = None
237
- self._project_root = None
238
- self._project_path_arg = None
239
- self._project_env_overrides_args = {}
240
- self._typer_pre_execute_commands = []
241
- self._template_context = None
242
- self._silent: bool = False
243
-
244
- def reset(self):
245
- self.__init__()
246
-
247
- @property
248
- def enable_tracebacks(self) -> bool:
249
- return self._enable_tracebacks
250
-
251
- def set_enable_tracebacks(self, value: bool):
252
- self._enable_tracebacks = value
253
-
254
- @property
255
- def output_format(self) -> OutputFormat:
256
- return self._output_format
257
-
258
- def set_output_format(self, value: OutputFormat):
259
- self._output_format = value
260
-
261
- @property
262
- def verbose(self) -> bool:
263
- return self._verbose
264
-
265
- def set_verbose(self, value: bool):
266
- self._verbose = value
267
-
268
- @property
269
- def experimental(self) -> bool:
270
- return self._experimental
271
-
272
- def set_experimental(self, value: bool):
273
- self._experimental = value
274
-
275
- @property
276
- def project_definition(self) -> Optional[ProjectDefinition]:
277
- return self._project_definition
278
-
279
- def set_project_definition(self, value: ProjectDefinition):
280
- self._project_definition = value
281
-
282
- @property
283
- def project_root(self):
284
- return self._project_root
285
-
286
- def set_project_root(self, project_root: Path):
287
- self._project_root = project_root
288
-
289
- @property
290
- def project_path_arg(self) -> Optional[str]:
291
- return self._project_path_arg
292
-
293
- def set_project_path_arg(self, project_path_arg: str):
294
- self._project_path_arg = project_path_arg
295
-
296
- @property
297
- def project_env_overrides_args(self) -> dict[str, str]:
298
- return self._project_env_overrides_args
299
-
300
- def set_project_env_overrides_args(
301
- self, project_env_overrides_args: dict[str, str]
302
- ):
303
- self._project_env_overrides_args = project_env_overrides_args
304
-
305
- @property
306
- def template_context(self) -> dict:
307
- return self._template_context
308
-
309
- def set_template_context(self, template_context: dict):
310
- self._template_context = template_context
311
-
312
- @property
313
- def typer_pre_execute_commands(self) -> list[Callable[[], None]]:
314
- return self._typer_pre_execute_commands
315
-
316
- def add_typer_pre_execute_commands(
317
- self, typer_pre_execute_command: Callable[[], None]
318
- ):
319
- self._typer_pre_execute_commands.append(typer_pre_execute_command)
320
-
321
- @property
322
- def connection_context(self) -> _ConnectionContext:
323
- return self._connection_context
324
-
325
- @property
326
- def connection(self) -> SnowflakeConnection:
327
- return self.connection_context.connection
328
-
329
- @property
330
- def silent(self) -> bool:
331
- return self._silent
332
-
333
- def set_silent(self, value: bool):
334
- self._silent = value
335
-
336
-
337
- class _CliGlobalContextAccess:
338
- def __init__(self, manager: _CliGlobalContextManager):
339
- self._manager = manager
340
-
341
- @property
342
- def connection(self) -> SnowflakeConnection:
343
- return self._manager.connection
344
-
345
- @property
346
- def connection_context(self) -> _ConnectionContext:
347
- return self._manager.connection_context
348
-
349
- @property
350
- def enable_tracebacks(self) -> bool:
351
- return self._manager.enable_tracebacks
352
-
353
- @property
354
- def output_format(self) -> OutputFormat:
355
- return self._manager.output_format
356
-
357
- @property
358
- def verbose(self) -> bool:
359
- return self._manager.verbose
360
-
361
- @property
362
- def experimental(self) -> bool:
363
- return self._manager.experimental
364
-
365
- @property
366
- def project_definition(self) -> ProjectDefinition | None:
367
- return self._manager.project_definition
368
-
369
- @property
370
- def project_root(self):
371
- return self._manager.project_root
372
-
373
- @property
374
- def template_context(self) -> dict:
375
- return self._manager.template_context
376
-
377
- @property
378
- def silent(self) -> bool:
379
- if self._should_force_mute_intermediate_output:
380
- return True
381
- return self._manager.silent
382
-
383
- @property
384
- def _should_force_mute_intermediate_output(self) -> bool:
385
- """Computes whether cli_console output should be muted."""
386
- return self._manager.output_format == OutputFormat.JSON
387
-
388
-
389
- cli_context_manager: _CliGlobalContextManager = _CliGlobalContextManager()
390
- cli_context: _CliGlobalContextAccess = _CliGlobalContextAccess(cli_context_manager)
@@ -1,13 +0,0 @@
1
- # Copyright (c) 2024 Snowflake Inc.
2
- #
3
- # Licensed under the Apache License, Version 2.0 (the "License");
4
- # you may not use this file except in compliance with the License.
5
- # You may obtain a copy of the License at
6
- #
7
- # http://www.apache.org/licenses/LICENSE-2.0
8
- #
9
- # Unless required by applicable law or agreed to in writing, software
10
- # distributed under the License is distributed on an "AS IS" BASIS,
11
- # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
- # See the License for the specific language governing permissions and
13
- # limitations under the License.
@@ -1,23 +0,0 @@
1
- # Copyright (c) 2024 Snowflake Inc.
2
- #
3
- # Licensed under the Apache License, Version 2.0 (the "License");
4
- # you may not use this file except in compliance with the License.
5
- # You may obtain a copy of the License at
6
- #
7
- # http://www.apache.org/licenses/LICENSE-2.0
8
- #
9
- # Unless required by applicable law or agreed to in writing, software
10
- # distributed under the License is distributed on an "AS IS" BASIS,
11
- # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
- # See the License for the specific language governing permissions and
13
- # limitations under the License.
14
-
15
- from copy import deepcopy
16
-
17
-
18
- def build_alias(main_app, name: str, help_str: str):
19
- alias = deepcopy(main_app)
20
- alias.info.name = name
21
- alias.info.help = help_str
22
- alias.info.hidden = True
23
- return alias