snowflake-cli 3.14.0__py3-none-any.whl → 3.15.0__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 (30) hide show
  1. snowflake/cli/__about__.py +1 -1
  2. snowflake/cli/_app/dev/docs/project_definition_generate_json_schema.py +2 -2
  3. snowflake/cli/_app/printing.py +14 -12
  4. snowflake/cli/_app/snow_connector.py +59 -9
  5. snowflake/cli/_plugins/dbt/commands.py +37 -7
  6. snowflake/cli/_plugins/dbt/manager.py +81 -53
  7. snowflake/cli/_plugins/dcm/commands.py +38 -0
  8. snowflake/cli/_plugins/dcm/manager.py +8 -0
  9. snowflake/cli/_plugins/dcm/reporters.py +462 -0
  10. snowflake/cli/_plugins/dcm/styles.py +26 -0
  11. snowflake/cli/_plugins/dcm/utils.py +88 -0
  12. snowflake/cli/_plugins/git/manager.py +24 -22
  13. snowflake/cli/_plugins/object/command_aliases.py +7 -1
  14. snowflake/cli/_plugins/object/commands.py +12 -2
  15. snowflake/cli/_plugins/object/manager.py +7 -2
  16. snowflake/cli/_plugins/snowpark/commands.py +8 -1
  17. snowflake/cli/_plugins/streamlit/streamlit_entity.py +8 -1
  18. snowflake/cli/api/commands/decorators.py +1 -1
  19. snowflake/cli/api/commands/flags.py +30 -5
  20. snowflake/cli/api/console/abc.py +7 -3
  21. snowflake/cli/api/console/console.py +10 -3
  22. snowflake/cli/api/exceptions.py +1 -1
  23. snowflake/cli/api/feature_flags.py +1 -0
  24. snowflake/cli/api/output/types.py +6 -0
  25. snowflake/cli/api/utils/types.py +20 -1
  26. {snowflake_cli-3.14.0.dist-info → snowflake_cli-3.15.0.dist-info}/METADATA +9 -4
  27. {snowflake_cli-3.14.0.dist-info → snowflake_cli-3.15.0.dist-info}/RECORD +30 -27
  28. {snowflake_cli-3.14.0.dist-info → snowflake_cli-3.15.0.dist-info}/WHEEL +0 -0
  29. {snowflake_cli-3.14.0.dist-info → snowflake_cli-3.15.0.dist-info}/entry_points.txt +0 -0
  30. {snowflake_cli-3.14.0.dist-info → snowflake_cli-3.15.0.dist-info}/licenses/LICENSE +0 -0
@@ -65,9 +65,14 @@ class ObjectManager(SqlExecutionMixin):
65
65
  query += f" limit {limit}"
66
66
  return self.execute_query(query, **kwargs)
67
67
 
68
- def drop(self, *, object_type: str, fqn: FQN) -> SnowflakeCursor:
68
+ def drop(
69
+ self, *, object_type: str, fqn: FQN, if_exists: bool = False
70
+ ) -> SnowflakeCursor:
69
71
  object_name = _get_object_names(object_type).sf_name
70
- return self.execute_query(f"drop {object_name} {fqn.sql_identifier}")
72
+ if_exists_clause = " if exists" if if_exists else ""
73
+ return self.execute_query(
74
+ f"drop {object_name}{if_exists_clause} {fqn.sql_identifier}"
75
+ )
71
76
 
72
77
  def describe(self, *, object_type: str, fqn: FQN, **kwargs):
73
78
  # Image repository is the only supported object that does not have a DESCRIBE command.
@@ -71,6 +71,7 @@ from snowflake.cli.api.commands.decorators import (
71
71
  )
72
72
  from snowflake.cli.api.commands.flags import (
73
73
  ForceReplaceOption,
74
+ IfExistsOption,
74
75
  PruneOption,
75
76
  ReplaceOption,
76
77
  execution_identifier_argument,
@@ -462,10 +463,16 @@ def list_(
462
463
  def drop(
463
464
  object_type: SnowparkObject = ObjectTypeArgument,
464
465
  identifier: FQN = IdentifierArgument,
466
+ if_exists: bool = IfExistsOption(),
465
467
  **options,
466
468
  ):
467
469
  """Drop procedure or function."""
468
- return object_drop(object_type=object_type.value, object_name=identifier, **options)
470
+ return object_drop(
471
+ object_type=object_type.value,
472
+ object_name=identifier,
473
+ if_exists=if_exists,
474
+ **options,
475
+ )
469
476
 
470
477
 
471
478
  @app.command("describe", requires_connection=True)
@@ -73,6 +73,13 @@ class StreamlitEntity(EntityBase[StreamlitEntityModel]):
73
73
  )
74
74
 
75
75
  def bundle(self, output_dir: Optional[Path] = None) -> BundleMap:
76
+ artifacts = list(self._entity_model.artifacts or [])
77
+
78
+ # Ensure main_file is included in artifacts
79
+ main_file = self._entity_model.main_file
80
+ if main_file and not any(artifact.src == main_file for artifact in artifacts):
81
+ artifacts.insert(0, PathMapping(src=main_file))
82
+
76
83
  return build_bundle(
77
84
  self.root,
78
85
  output_dir or bundle_root(self.root, "streamlit") / self.entity_id,
@@ -80,7 +87,7 @@ class StreamlitEntity(EntityBase[StreamlitEntityModel]):
80
87
  PathMapping(
81
88
  src=artifact.src, dest=artifact.dest, processors=artifact.processors
82
89
  )
83
- for artifact in self._entity_model.artifacts
90
+ for artifact in artifacts
84
91
  ],
85
92
  )
86
93
 
@@ -163,7 +163,7 @@ def _options_decorator_factory(
163
163
  ):
164
164
  """
165
165
  execute_before_command_using_new_options executes before command telemetry has been emitted,
166
- but after command line options have been populated.
166
+ but after command-line options have been populated.
167
167
  """
168
168
 
169
169
  @wraps(func)
@@ -28,13 +28,18 @@ from snowflake.cli.api.cli_global_context import (
28
28
  from snowflake.cli.api.commands.common import OnErrorType
29
29
  from snowflake.cli.api.commands.overrideable_parameter import OverrideableOption
30
30
  from snowflake.cli.api.commands.utils import parse_key_value_variables
31
- from snowflake.cli.api.config import get_all_connections, get_config_value
31
+ from snowflake.cli.api.config import (
32
+ get_all_connections,
33
+ get_config_value,
34
+ get_env_value,
35
+ )
32
36
  from snowflake.cli.api.connections import ConnectionContext
33
37
  from snowflake.cli.api.console import cli_console
34
38
  from snowflake.cli.api.identifiers import FQN
35
39
  from snowflake.cli.api.output.formats import OutputFormat
36
40
  from snowflake.cli.api.secret import SecretType
37
41
  from snowflake.cli.api.stage_path import StagePath
42
+ from snowflake.cli.api.utils.types import try_cast_to_int
38
43
  from snowflake.connector.auth.workload_identity import ApiFederatedAuthenticationType
39
44
 
40
45
  DEFAULT_CONTEXT_SETTINGS = {"help_option_names": ["--help", "-h"]}
@@ -97,7 +102,7 @@ TemporaryConnectionOption = typer.Option(
97
102
  False,
98
103
  "--temporary-connection",
99
104
  "-x",
100
- help="Uses a connection defined with command line parameters, instead of one defined in config",
105
+ help="Uses a connection defined with command-line parameters, instead of one defined in config",
101
106
  callback=_connection_callback("temporary_connection"),
102
107
  is_flag=True,
103
108
  rich_help_panel=_CONNECTION_SECTION,
@@ -515,16 +520,36 @@ EnhancedExitCodesOption = typer.Option(
515
520
  )
516
521
 
517
522
 
518
- def _decimal_precision_callback(value: int | None):
523
+ def _decimal_precision_callback(value: int | str | None):
519
524
  """Callback to set decimal precision globally when provided."""
520
525
  if value is None:
521
526
  try:
522
- value = get_config_value(key="decimal_precision", default=None)
527
+ value = get_config_value("cli", key="decimal_precision", default=None)
523
528
  except Exception:
524
529
  pass
525
530
 
531
+ # env variable name and it's expected location within config file got inconsistent, so we
532
+ # need to handle this extra pattern
533
+ env_variable = get_env_value(key="decimal_precision")
534
+ if env_variable:
535
+ value = env_variable
536
+
526
537
  if value is not None:
527
- getcontext().prec = value
538
+ try:
539
+ int_value = try_cast_to_int(value)
540
+ except ValueError:
541
+ raise ClickException(
542
+ f"Invalid value for decimal_precision: '{value}'. Must be a positive integer."
543
+ )
544
+
545
+ if int_value <= 0:
546
+ raise ClickException(
547
+ f"Invalid value for decimal_precision: '{value}'. Must be a positive integer."
548
+ )
549
+
550
+ getcontext().prec = int_value
551
+ return int_value
552
+
528
553
  return value
529
554
 
530
555
 
@@ -16,7 +16,7 @@ from __future__ import annotations
16
16
 
17
17
  from abc import ABC, abstractmethod
18
18
  from contextlib import contextmanager
19
- from typing import Callable, Iterator, Optional
19
+ from typing import Any, Callable, Iterator, Optional
20
20
 
21
21
  from rich import print as rich_print
22
22
  from rich.jupyter import JupyterMixin
@@ -61,10 +61,10 @@ class AbstractConsole(ABC):
61
61
  """Indicated whether output should be grouped."""
62
62
  return self._in_phase
63
63
 
64
- def _print(self, text: JupyterMixin):
64
+ def _print(self, text: JupyterMixin, end: str = "\n"):
65
65
  if self.is_silent:
66
66
  return
67
- rich_print(text)
67
+ rich_print(text, end=end)
68
68
 
69
69
  @contextmanager
70
70
  @abstractmethod
@@ -109,3 +109,7 @@ class AbstractConsole(ABC):
109
109
  """
110
110
  A context manager for indicating a long-running operation.
111
111
  """
112
+
113
+ @abstractmethod
114
+ def styled_message(self, message: str, style: Any):
115
+ """Displays a message with provided style."""
@@ -24,6 +24,7 @@ from rich.style import Style
24
24
  from rich.text import Text
25
25
  from snowflake.cli.api.console.abc import AbstractConsole
26
26
  from snowflake.cli.api.console.enum import Output
27
+ from snowflake.cli.api.sanitizers import sanitize_for_terminal
27
28
 
28
29
  # ensure we do not break URLs that wrap lines
29
30
  get_console().soft_wrap = True
@@ -41,7 +42,7 @@ INDENTATION_LEVEL: int = 2
41
42
 
42
43
 
43
44
  class CliConsole(AbstractConsole):
44
- """An utility for displaying intermediate output.
45
+ """A utility for displaying intermediate output.
45
46
 
46
47
  Provides following methods for handling displaying messages:
47
48
  - `step` - for more detailed information on steps
@@ -112,9 +113,9 @@ class CliConsole(AbstractConsole):
112
113
  result = some_operation()
113
114
  """
114
115
  with Progress(
115
- SpinnerColumn(finished_text="✓"),
116
+ SpinnerColumn(),
116
117
  TextColumn("[progress.description]{task.description}", style=SPINNER_STYLE),
117
- transient=False,
118
+ transient=True,
118
119
  ) as progress:
119
120
  try:
120
121
  yield progress
@@ -151,6 +152,12 @@ class CliConsole(AbstractConsole):
151
152
  panel = Panel(message, style=style)
152
153
  self._print(panel)
153
154
 
155
+ def styled_message(self, message: str, style: Style | str = ""):
156
+ """Displays a message with provided style.
157
+
158
+ Message gets sanitized before displaying."""
159
+ self._print(Text(sanitize_for_terminal(message), style=style), end="")
160
+
154
161
 
155
162
  def get_cli_console() -> AbstractConsole:
156
163
  console = CliConsole()
@@ -27,7 +27,7 @@ class BaseCliError(ClickException):
27
27
 
28
28
  0 Everything ran smoothly.
29
29
  1 Something went wrong with the client.
30
- 2 Something went wrong with command line arguments.
30
+ 2 Something went wrong with command-line arguments.
31
31
  3 Cli could not connect to server.
32
32
  4 Cli could not communicate properly with server.
33
33
  5 The enhanced_exit_codes parameter was set and Cli exited because of error.
@@ -71,3 +71,4 @@ class FeatureFlag(FeatureFlagMixin):
71
71
  ENABLE_STREAMLIT_SPCS_RUNTIME_V2 = BooleanFlag(
72
72
  "ENABLE_STREAMLIT_SPCS_RUNTIME_V2", False
73
73
  )
74
+ ENABLE_DBT_VERSION = BooleanFlag("ENABLE_DBT_VERSION", False)
@@ -162,3 +162,9 @@ class MessageResult(CommandResult):
162
162
  @property
163
163
  def result(self):
164
164
  return {"message": self._message}
165
+
166
+
167
+ class EmptyResult(CommandResult):
168
+ @property
169
+ def result(self):
170
+ return None
@@ -31,5 +31,24 @@ def try_cast_to_bool(value: Any) -> bool:
31
31
  know_booleans_mapping = {"true": True, "false": False, "1": True, "0": False}
32
32
 
33
33
  if value.lower() not in know_booleans_mapping:
34
- raise ValueError(f"Could not case {value} to bool value")
34
+ raise ValueError(f"Could not cast {value} to bool value")
35
35
  return know_booleans_mapping[value.lower()]
36
+
37
+
38
+ def try_cast_to_int(value: Any) -> int:
39
+ if isinstance(value, int) and not isinstance(value, bool):
40
+ return value
41
+
42
+ if isinstance(value, str):
43
+ stripped = value.strip()
44
+ if not stripped:
45
+ raise ValueError(f"Could not cast empty string to int value")
46
+ try:
47
+ return int(stripped)
48
+ except ValueError:
49
+ raise ValueError(f"Could not cast '{value}' to int value")
50
+
51
+ try:
52
+ return int(value)
53
+ except (ValueError, TypeError):
54
+ raise ValueError(f"Could not cast '{value}' to int value")
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: snowflake-cli
3
- Version: 3.14.0
3
+ Version: 3.15.0
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
@@ -213,7 +213,12 @@ Classifier: Intended Audience :: Developers
213
213
  Classifier: Intended Audience :: Information Technology
214
214
  Classifier: Intended Audience :: System Administrators
215
215
  Classifier: License :: OSI Approved :: Apache Software License
216
+ Classifier: Programming Language :: Python :: 3
216
217
  Classifier: Programming Language :: Python :: 3 :: Only
218
+ Classifier: Programming Language :: Python :: 3.10
219
+ Classifier: Programming Language :: Python :: 3.11
220
+ Classifier: Programming Language :: Python :: 3.12
221
+ Classifier: Programming Language :: Python :: 3.13
217
222
  Classifier: Programming Language :: SQL
218
223
  Classifier: Topic :: Database
219
224
  Requires-Python: >=3.10
@@ -222,17 +227,17 @@ Requires-Dist: gitpython==3.1.44
222
227
  Requires-Dist: id==1.5.0
223
228
  Requires-Dist: jinja2==3.1.6
224
229
  Requires-Dist: packaging==25.0
225
- Requires-Dist: pip==25.2
230
+ Requires-Dist: pip==25.3
226
231
  Requires-Dist: pluggy==1.6.0
227
232
  Requires-Dist: prompt-toolkit==3.0.51
228
- Requires-Dist: pydantic==2.11.7
233
+ Requires-Dist: pydantic==2.12.5
229
234
  Requires-Dist: pyyaml==6.0.2
230
235
  Requires-Dist: requests==2.32.4
231
236
  Requires-Dist: requirements-parser==0.13.0
232
237
  Requires-Dist: rich==14.0.0
233
238
  Requires-Dist: setuptools==80.8.0
234
239
  Requires-Dist: snowflake-connector-python[secure-local-storage]==3.18.0
235
- Requires-Dist: snowflake-core==1.7.0
240
+ Requires-Dist: snowflake-core==1.10.0
236
241
  Requires-Dist: snowflake-snowpark-python==1.41.0
237
242
  Requires-Dist: tomlkit==0.13.3
238
243
  Requires-Dist: typer==0.17.3
@@ -1,4 +1,4 @@
1
- snowflake/cli/__about__.py,sha256=uE3v7EaCH1sCTTR9PLMUay6EVS1C0kQBKSvYzReSzlQ,853
1
+ snowflake/cli/__about__.py,sha256=kM5kjxKB91Xxxdsftk9WEnN5Um0zkLxeeqFNChFTHsQ,853
2
2
  snowflake/cli/__init__.py,sha256=uGA_QRGW3iGwaegpFsLgOhup0zBliBSXh9ou8J439uU,578
3
3
  snowflake/cli/_app/__init__.py,sha256=CR_uTgoqHnU1XdyRhm5iQsS86yWXGVx5Ht7aGSDNFmc,765
4
4
  snowflake/cli/_app/__main__.py,sha256=ZmcFdFqAtk2mFMz-cqCFdGd0iYzc7UsLH1oT1U40S0k,858
@@ -6,8 +6,8 @@ snowflake/cli/_app/cli_app.py,sha256=M-VUPk72U9Fo8KISse6RYql_qKPspgHVmYoG-EvSZQ4
6
6
  snowflake/cli/_app/constants.py,sha256=jsdljrWgkN7djzYLA4U5YIP-bQI7dxiJ01sVgjjpVMk,1293
7
7
  snowflake/cli/_app/loggers.py,sha256=etu9xvhNRQwAn5L1r-x5uaCZ_TSL7Y3RMRjLQxx9nyY,6648
8
8
  snowflake/cli/_app/main_typer.py,sha256=v2n7moen3CkP-SfsGrTh-MzFgqG6Ak8bJa8E2dGKzFw,2111
9
- snowflake/cli/_app/printing.py,sha256=hMtq81huaX44y2H9hgCoDzIbW10RnpJYtT4nf2ZCrj4,11851
10
- snowflake/cli/_app/snow_connector.py,sha256=UEXWCWSyKgUx1WGy6r0QS6gB1WaKUklie3bl06qHECw,13447
9
+ snowflake/cli/_app/printing.py,sha256=UGsTYfTtYIbwmKLdKMbAZbMuKC6NQvdsRLCPCLQZZWc,11905
10
+ snowflake/cli/_app/snow_connector.py,sha256=ZxZ4Q6XcRmd2kIiGkhvJF7jj4lVtz-l5lXqnpZLHiuo,15172
11
11
  snowflake/cli/_app/telemetry.py,sha256=2SHBtQxCu-q1UsfZPv9XxLqK_c-VTRYfr8heZddaOQU,10426
12
12
  snowflake/cli/_app/version_check.py,sha256=tM3j8FmqcONz3nfiv9WZIU01wy4ZWbKgiWH_8GYzCfM,5585
13
13
  snowflake/cli/_app/auth/__init__.py,sha256=uGA_QRGW3iGwaegpFsLgOhup0zBliBSXh9ou8J439uU,578
@@ -27,7 +27,7 @@ snowflake/cli/_app/dev/docs/__init__.py,sha256=uGA_QRGW3iGwaegpFsLgOhup0zBliBSXh
27
27
  snowflake/cli/_app/dev/docs/commands_docs_generator.py,sha256=z2vVInlmCehbMzRbPFvWnB-VLVsyJ5XJ2OeXLTtmhn0,3864
28
28
  snowflake/cli/_app/dev/docs/generator.py,sha256=kIkcEZP0y7Or4xQUgdIMjd_ViX5VV_5QClOYJ0YcRE4,1260
29
29
  snowflake/cli/_app/dev/docs/project_definition_docs_generator.py,sha256=xuDWigK1plXyMBW-EPN3-sLQjB7PVXIfbKj0Q9wL3x4,2232
30
- snowflake/cli/_app/dev/docs/project_definition_generate_json_schema.py,sha256=nKPLBzcOZvSiTmQPkrxJQ6wpclELMenZvjjdM7ZOsfQ,8456
30
+ snowflake/cli/_app/dev/docs/project_definition_generate_json_schema.py,sha256=WyxBeWqfmckFw5PTmkEIrQwbTPyHpbbsRrE0TxGfTJs,8476
31
31
  snowflake/cli/_app/dev/docs/template_utils.py,sha256=pisHTJRRzt1HxpUfIY3ysAN7EdXCXzS6GhZo5bzwcy0,821
32
32
  snowflake/cli/_app/dev/docs/templates/definition_description.rst.jinja2,sha256=h-SBNi8bc3uh7VQEdrDDzOJckT5DBLrZddrrNRWFXl0,1068
33
33
  snowflake/cli/_app/dev/docs/templates/overview.rst.jinja2,sha256=qsv0ZphFs9ZbDQhGGBlTc_D2jHhf84mBsxoev54KCuU,430
@@ -50,17 +50,20 @@ snowflake/cli/_plugins/cortex/manager.py,sha256=6ZppMLGxh3u8NZMpAoHpnwus47lcUEzu
50
50
  snowflake/cli/_plugins/cortex/plugin_spec.py,sha256=wbOkXoUTVdXCj8m_-bJRi7IiKxS03q0XEgxrT7aB3yU,995
51
51
  snowflake/cli/_plugins/cortex/types.py,sha256=9KQPlQRkoR67ty8VoqsifJfaoeLJPXZzCJ6dehYWYLE,827
52
52
  snowflake/cli/_plugins/dbt/__init__.py,sha256=JhO1yb1LCYqYx-Ya-MlhubtiqD82CuvWF09dDMafxRM,578
53
- snowflake/cli/_plugins/dbt/commands.py,sha256=0CsTMMBz9cA5E9lz1CO-Vvl27liS1S7rMSGEWvZXxZc,7892
53
+ snowflake/cli/_plugins/dbt/commands.py,sha256=WuzPS2Zg-0sM2qWbM8p127lrpXTRM1vr3-nuJrQA_Lg,8963
54
54
  snowflake/cli/_plugins/dbt/constants.py,sha256=KKyi4Zwe3iuygiHVq3bNk1VYqavE9UVQdRQgrGb5R2U,962
55
- snowflake/cli/_plugins/dbt/manager.py,sha256=i4T3yxyaaNZoyvmgJ-0EGgtUk6b8F1jvOJb1tOrLFio,15974
55
+ snowflake/cli/_plugins/dbt/manager.py,sha256=b_rQ8xD7J3lIAZUbgZnmZYyCosOOnfc0zaQ_E18AdOc,16866
56
56
  snowflake/cli/_plugins/dbt/plugin_spec.py,sha256=7yEc3tLgvw3iUhALpmaVpS-iePdSMjFdFSZVybf5KTc,992
57
57
  snowflake/cli/_plugins/dcm/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
58
- snowflake/cli/_plugins/dcm/commands.py,sha256=r57BSxgrwrAUJS8aw9ckvN3XlOLDY83VzRLJUYPBuN8,9391
59
- snowflake/cli/_plugins/dcm/manager.py,sha256=G2Y3ylRNuEMCpdL7yajT1cwkjgSjPXf13jVAx7IYc0Y,9048
58
+ snowflake/cli/_plugins/dcm/commands.py,sha256=zQF8YZpqevyZ1F5HOHHgY37O_5PZUdDoEdN93SqqPD4,10519
59
+ snowflake/cli/_plugins/dcm/manager.py,sha256=AXJd1Wz_JdQEPfZRUtvqlgNyXLVYpd1BuO2o90U_zCM,9408
60
60
  snowflake/cli/_plugins/dcm/plugin_spec.py,sha256=U-p1UrjS2QTkk6j5-XfMsehc6gzcFHXVDjI4qnm5aPs,992
61
+ snowflake/cli/_plugins/dcm/reporters.py,sha256=HakppKeLkTncsPj6mTFEb-tCW-xHvQdyhYlVc-IlfqM,15473
62
+ snowflake/cli/_plugins/dcm/styles.py,sha256=pe5ubh4GxtYk7qScmtoo-2uHnTFQhjIRZSFjnIGx02U,892
63
+ snowflake/cli/_plugins/dcm/utils.py,sha256=JufPODePWwjFwqxGJk2LPjFJ_vOKAHV_uymhn-_M0dk,2661
61
64
  snowflake/cli/_plugins/git/__init__.py,sha256=uGA_QRGW3iGwaegpFsLgOhup0zBliBSXh9ou8J439uU,578
62
65
  snowflake/cli/_plugins/git/commands.py,sha256=87R8Fs_f6BUdfLv85QGlfTTH6K-Y_oDlqJyZ3jUpBVg,11320
63
- snowflake/cli/_plugins/git/manager.py,sha256=QSW6ydw4Invl3cWKx8rM_NtzA1cXaiUR0QMCqki76bc,5237
66
+ snowflake/cli/_plugins/git/manager.py,sha256=NdCXKyr5YH-iDdK4TjTo95LMfa8inFRn1gzuHlOMQhI,5330
64
67
  snowflake/cli/_plugins/git/plugin_spec.py,sha256=aadJK8d9Aanwpmktd_eRYwf8OJvN-V8iCHIpjL7AM44,992
65
68
  snowflake/cli/_plugins/helpers/__init__.py,sha256=uGA_QRGW3iGwaegpFsLgOhup0zBliBSXh9ou8J439uU,578
66
69
  snowflake/cli/_plugins/helpers/commands.py,sha256=x0thMZ7NnhZScgIQeYSLEJfL842tJdsqkKNwRqoIJN8,11861
@@ -122,17 +125,17 @@ snowflake/cli/_plugins/notebook/notebook_project_paths.py,sha256=bAZjqjuN4wWhHu0
122
125
  snowflake/cli/_plugins/notebook/plugin_spec.py,sha256=RZEJMGIYpNXRBeSnJxQ8p1hNRPsjYw6EUk1eRwkAnnU,997
123
126
  snowflake/cli/_plugins/notebook/types.py,sha256=BaW2rHQ_kIEG5lilltUBGq1g8a68_nFbh1oYdINT3fE,654
124
127
  snowflake/cli/_plugins/object/__init__.py,sha256=uGA_QRGW3iGwaegpFsLgOhup0zBliBSXh9ou8J439uU,578
125
- snowflake/cli/_plugins/object/command_aliases.py,sha256=14Lalakh85VRgLOvOtp0S6zYhWsSeqtakLyDBEDA_3o,3954
126
- snowflake/cli/_plugins/object/commands.py,sha256=miQPZR04uKAF7GEqzaq5z4YzsjGrFLW62DFG9hg5Hpo,6702
128
+ snowflake/cli/_plugins/object/command_aliases.py,sha256=Acj2OLPK8kH09AwQxWVkKZM-V_a7Z5ghxaT01mVMfWY,4134
129
+ snowflake/cli/_plugins/object/commands.py,sha256=3OfuvrsdGekslwVo-YOdDBvJYKi6-LTuXhHtFhp0Z4Y,6834
127
130
  snowflake/cli/_plugins/object/common.py,sha256=x1V8fiVnh7ohHHq0_NaGFtUvTz0soVRSGm-oCIuhJHs,2608
128
- snowflake/cli/_plugins/object/manager.py,sha256=5Kaw2pe1yFp5U-PB-UI2BaGBTQsXGHmWB3lExkx9VMA,5367
131
+ snowflake/cli/_plugins/object/manager.py,sha256=8_V7XZ1elLmWuaHVpDxFPLaaX5Jarx1MmdaO59_g0kk,5507
129
132
  snowflake/cli/_plugins/object/plugin_spec.py,sha256=O8k6hSD48w4Uhkho0KpcTDkZ2iNjiU5jCPvEVitDzeo,995
130
133
  snowflake/cli/_plugins/plugin/__init__.py,sha256=uGA_QRGW3iGwaegpFsLgOhup0zBliBSXh9ou8J439uU,578
131
134
  snowflake/cli/_plugins/plugin/commands.py,sha256=JoDeE-ggxYE6FKulNGJQrfl7nao7lg8FCsEw2s-WdF8,2433
132
135
  snowflake/cli/_plugins/plugin/manager.py,sha256=eeW5b0zAvvsZREgIVH7afAQbKHI2YqqdIjqo0hqFfHs,2641
133
136
  snowflake/cli/_plugins/plugin/plugin_spec.py,sha256=5XZJPT42ZIEARYvthic3jLEB4CvDUdMeWTM6YfDkD9k,995
134
137
  snowflake/cli/_plugins/snowpark/__init__.py,sha256=uGA_QRGW3iGwaegpFsLgOhup0zBliBSXh9ou8J439uU,578
135
- snowflake/cli/_plugins/snowpark/commands.py,sha256=rzuebpbPRxZcQ8iRgeA8xvYGj_s3nUggivfp2ZL1V5g,17823
138
+ snowflake/cli/_plugins/snowpark/commands.py,sha256=ASFLu3ugVdTke2gaerfH0ZbDtzK1UjuswqXSKjBGk_I,17943
136
139
  snowflake/cli/_plugins/snowpark/common.py,sha256=738xxAAVtEP6BRLESjsdtrFhKHmT4KxhKQ1UvOL9B9M,13761
137
140
  snowflake/cli/_plugins/snowpark/models.py,sha256=Bd69O3krCS5HvQdHhjQsbhFi0wtYOD_Y9sj6lBMR7KU,4766
138
141
  snowflake/cli/_plugins/snowpark/package_utils.py,sha256=L8382l5IS-JdhdKH1O2FoYDJvhwCtACgZ32KmH9HMjs,13386
@@ -194,7 +197,7 @@ snowflake/cli/_plugins/streamlit/__init__.py,sha256=uGA_QRGW3iGwaegpFsLgOhup0zBl
194
197
  snowflake/cli/_plugins/streamlit/commands.py,sha256=iWW6-8EcPTR-bH7ii9HQpr-v2Kuf7P1WtVzWwPuDsE0,7173
195
198
  snowflake/cli/_plugins/streamlit/manager.py,sha256=6Vz9WCW33_Mb8GgLGtQzgBbnLRMvllySG-3HBRIf6io,2110
196
199
  snowflake/cli/_plugins/streamlit/plugin_spec.py,sha256=swcszE2JoJWs-DzgN02CxK3myIYexsnWijkFYyYf7Ws,998
197
- snowflake/cli/_plugins/streamlit/streamlit_entity.py,sha256=guHwN8Htj2ykkruZIGIQxn7A0SanOw8PWTwNzLBPMiU,12179
200
+ snowflake/cli/_plugins/streamlit/streamlit_entity.py,sha256=KIzNXJlYEUDgInz4SxI5dVz47T_5ZpEr3uL4TZBiQhU,12471
198
201
  snowflake/cli/_plugins/streamlit/streamlit_entity_model.py,sha256=_PnladsEJRjICjyXZxw6HR4iC_Jl0kNym63_dQkJyS0,3049
199
202
  snowflake/cli/_plugins/streamlit/streamlit_project_paths.py,sha256=-q7EobPKqDmXk5x_gMvHsCaPT_l41vrJoxIHaGDHui4,1007
200
203
  snowflake/cli/_plugins/workspace/__init__.py,sha256=uGA_QRGW3iGwaegpFsLgOhup0zBliBSXh9ou8J439uU,578
@@ -207,8 +210,8 @@ snowflake/cli/api/config.py,sha256=CTYbJN7Yb1NvqDB07eFtfoxABAQb0k0N5nG7DYOGpMI,1
207
210
  snowflake/cli/api/connections.py,sha256=zItH6oAuLD6H2GL0I2AyGlFZkMKPmqe9RPyhlHOxOVQ,9470
208
211
  snowflake/cli/api/constants.py,sha256=v42SRgCIpYjxm5SiEwoQefOqBVMOhw1_9f8UHrJ-v9A,4032
209
212
  snowflake/cli/api/errno.py,sha256=nVQ2kO9nPaA1uGB4yZiKTwtE2LiQmINHTutziA37c6s,3871
210
- snowflake/cli/api/exceptions.py,sha256=3Esa8gL0D_dsbpjWpBFWt1fQW8u4BgU59kx1B5Vgw9A,9228
211
- snowflake/cli/api/feature_flags.py,sha256=OaSGFQzidBsvbNYdTulalN6Yd8s4za6LJkT4s7_UYQQ,2425
213
+ snowflake/cli/api/exceptions.py,sha256=Rd39tBhpe82vKwGBfxAEchVS_ptG1T6lvviwToAbmlw,9228
214
+ snowflake/cli/api/feature_flags.py,sha256=YTrO46GbSC-jEDq0H1Q0KE2mPEaFCJxAJPzFIhQR-oE,2491
212
215
  snowflake/cli/api/identifiers.py,sha256=5h7_lTYJQvQy4_QnyPigduJyHye2_9U-1echPIgTmhk,7445
213
216
  snowflake/cli/api/metrics.py,sha256=l-khpKWvRF8OB86OhJ2H61jrcTdMDGZe_QM1_-yqWT8,10694
214
217
  snowflake/cli/api/rest_api.py,sha256=RUo4prPAGmi2iQt1o96co3pWfo2t5PLCVBB2m1jlrNA,7404
@@ -227,23 +230,23 @@ snowflake/cli/api/artifacts/utils.py,sha256=nHQ22Qj4l23-CPiv5Wv-mbXQKM3E5FMZT74X
227
230
  snowflake/cli/api/commands/__init__.py,sha256=uGA_QRGW3iGwaegpFsLgOhup0zBliBSXh9ou8J439uU,578
228
231
  snowflake/cli/api/commands/alias.py,sha256=TF6QgkorFTn9UV5F3tvxIJZ56iK1vIjqZFMxVtrTIzk,795
229
232
  snowflake/cli/api/commands/common.py,sha256=6CrJqhQl-Mu0jwFmWyNKvvB7jFQ1EJdnKFW9BNHVask,462
230
- snowflake/cli/api/commands/decorators.py,sha256=Nm1CJx8bui7EE1JQZl1LzvDT0ZrLtF0XmN-cibGjBb4,13549
233
+ snowflake/cli/api/commands/decorators.py,sha256=nrxmqfGwyzmioa41jz9BL2kXfuy8d8c-G5SOfzl8Nr8,13549
231
234
  snowflake/cli/api/commands/execution_metadata.py,sha256=9tz1dbzdVRLFprGi_y8TeTfv36VewFeGdhQX6NfwAXM,1231
232
235
  snowflake/cli/api/commands/experimental_behaviour.py,sha256=HFTw0d46B1QJpiCy0MeeJhWXrPF_bnmgUGaEWkWXw98,733
233
- snowflake/cli/api/commands/flags.py,sha256=gNYv8QI-PrfR9t-9rNFZo9ss7QhhZU7vSDZbzrs85Xs,23732
236
+ snowflake/cli/api/commands/flags.py,sha256=6Uk9WknLi6Hp4bZrGkyfcQU1cWosaH41JXRk8Jfmbfc,24530
234
237
  snowflake/cli/api/commands/overrideable_parameter.py,sha256=LDiRQudkTeoWu5y_qTCVmtseEvO6U9LuSiuLZt5oFq8,6353
235
238
  snowflake/cli/api/commands/snow_typer.py,sha256=Mgz6QbinT53vYoTO6_1LtpLY-MhnYoY5m8pjBaucPZo,10775
236
239
  snowflake/cli/api/commands/utils.py,sha256=vZcVtPZsuH312FPf9yw-JooNWE7Tli-zVWh4u-gQk7c,1605
237
240
  snowflake/cli/api/console/__init__.py,sha256=jKSsXJDqyQZwJ--5eRzUqb2nNvq-lo_NC1pbqK5xROI,665
238
- snowflake/cli/api/console/abc.py,sha256=GzoaGSfVT-Usws06DznwQJLMSidUMePgVEmAY6Izv6Y,3583
239
- snowflake/cli/api/console/console.py,sha256=RwEDrZ0vOigZldtju-wSJYxW2IOWhXnMnr57wROaPRE,5448
241
+ snowflake/cli/api/console/abc.py,sha256=E5WZ_8y1mea-MBAd0BVjeDWWER2biTyDuDTa9QpKxDM,3745
242
+ snowflake/cli/api/console/console.py,sha256=6eexgs7S25BkB-k7yYgzhvUuEEJvYBMr6SAGzzaWpMM,5744
240
243
  snowflake/cli/api/console/enum.py,sha256=0dhepH8DEmxLjij9XxFX3kEZ_WE267zsffzecEwA2fU,675
241
244
  snowflake/cli/api/entities/common.py,sha256=_IaDpqneQdE6MRZ6B7-dLXP2XiFBvoaNjjki59GP-_c,6071
242
245
  snowflake/cli/api/entities/resolver.py,sha256=yD1m71X7-JPQ6dy5mKyzVR_9d3Eji4z-nRfKd_lqXFo,5922
243
246
  snowflake/cli/api/entities/utils.py,sha256=F_GFI1vLnAk66W3ho28vNhHi-U4HamqMAiMWpF37q4I,15068
244
247
  snowflake/cli/api/output/__init__.py,sha256=uGA_QRGW3iGwaegpFsLgOhup0zBliBSXh9ou8J439uU,578
245
248
  snowflake/cli/api/output/formats.py,sha256=WndZsPPCcWFY76L7L1ovBrXi_gk6ubcu5vpVMamrfes,821
246
- snowflake/cli/api/output/types.py,sha256=et9AmDwU98x_w0fy-84p2BsOU4N_cFWhbjyWQDHncZg,5225
249
+ snowflake/cli/api/output/types.py,sha256=qq1PARWoDWnEGNkrLgKG_3z9ksvEFy4gBt0aPK5aJHk,5317
247
250
  snowflake/cli/api/plugins/__init__.py,sha256=uGA_QRGW3iGwaegpFsLgOhup0zBliBSXh9ou8J439uU,578
248
251
  snowflake/cli/api/plugins/plugin_config.py,sha256=e7wlf2K_6CwYIjX4fbJNGNpIpnGll5XyVN50EiTnuHE,2484
249
252
  snowflake/cli/api/plugins/command/__init__.py,sha256=qCzBzpq8__2OUN0PcruIKgQXI2V9rzk4UIGVLFv7yk4,2134
@@ -292,9 +295,9 @@ snowflake/cli/api/utils/naming_utils.py,sha256=uGA_QRGW3iGwaegpFsLgOhup0zBliBSXh
292
295
  snowflake/cli/api/utils/path_utils.py,sha256=OgR7cwbHXqP875RgPJGrAvDC1RRTU-2-YssO6EP7x58,2309
293
296
  snowflake/cli/api/utils/python_api_utils.py,sha256=wTNxXrma78wPvBz-Jo-ixNtP8ZjDCDh4TvciEnhYIAM,300
294
297
  snowflake/cli/api/utils/templating_functions.py,sha256=zu2oK1BEC9yyWtDx17Hr-VAYHvCtagaOdxIrm70JQys,4955
295
- snowflake/cli/api/utils/types.py,sha256=fVKuls8axKSsBzPqWwrkwkwoXXmedqxNJKqfXrrGyBM,1190
296
- snowflake_cli-3.14.0.dist-info/METADATA,sha256=_MqI77CTPtDBrt8VHfoNfQB8SgPY1__k1J8CPjR6lq0,18476
297
- snowflake_cli-3.14.0.dist-info/WHEEL,sha256=WLgqFyCfm_KASv4WHyYy0P3pM_m7J5L9k2skdKLirC8,87
298
- snowflake_cli-3.14.0.dist-info/entry_points.txt,sha256=6QmSI0wUX6p7f-dGvrPdswlQyVAVGi1AtOUbE8X6bho,58
299
- snowflake_cli-3.14.0.dist-info/licenses/LICENSE,sha256=mJMA3Uz2AbjU_kVggo1CAx01XhBsI7BSi2H7ggUg_-c,11344
300
- snowflake_cli-3.14.0.dist-info/RECORD,,
298
+ snowflake/cli/api/utils/types.py,sha256=IZ0MxHiOOfw0qoO8ckEhi0_1FWLS3ibhnPF1rhkyMJY,1763
299
+ snowflake_cli-3.15.0.dist-info/METADATA,sha256=3kAHCh8L-sXLeB9PPsnVygzTJAoZsdRKpsWsUlNaCq4,18729
300
+ snowflake_cli-3.15.0.dist-info/WHEEL,sha256=WLgqFyCfm_KASv4WHyYy0P3pM_m7J5L9k2skdKLirC8,87
301
+ snowflake_cli-3.15.0.dist-info/entry_points.txt,sha256=6QmSI0wUX6p7f-dGvrPdswlQyVAVGi1AtOUbE8X6bho,58
302
+ snowflake_cli-3.15.0.dist-info/licenses/LICENSE,sha256=mJMA3Uz2AbjU_kVggo1CAx01XhBsI7BSi2H7ggUg_-c,11344
303
+ snowflake_cli-3.15.0.dist-info/RECORD,,