snowflake-cli-labs 2.6.1__py3-none-any.whl → 2.7.0rc1__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.
- snowflake/cli/__about__.py +1 -1
- snowflake/cli/api/cli_global_context.py +9 -0
- snowflake/cli/api/commands/decorators.py +9 -4
- snowflake/cli/api/commands/execution_metadata.py +40 -0
- snowflake/cli/api/commands/flags.py +45 -36
- snowflake/cli/api/commands/project_initialisation.py +5 -2
- snowflake/cli/api/commands/snow_typer.py +20 -9
- snowflake/cli/api/errno.py +27 -0
- snowflake/cli/api/feature_flags.py +1 -0
- snowflake/cli/api/identifiers.py +20 -3
- snowflake/cli/api/output/types.py +9 -0
- snowflake/cli/api/project/definition_manager.py +2 -2
- snowflake/cli/api/project/project_verification.py +23 -0
- snowflake/cli/api/project/schemas/entities/application_entity.py +50 -0
- snowflake/cli/api/project/schemas/entities/application_package_entity.py +63 -0
- snowflake/cli/api/project/schemas/entities/common.py +85 -0
- snowflake/cli/api/project/schemas/entities/entities.py +30 -0
- snowflake/cli/api/project/schemas/project_definition.py +114 -22
- snowflake/cli/api/project/schemas/streamlit/streamlit.py +5 -4
- snowflake/cli/api/project/schemas/template.py +77 -0
- snowflake/cli/{plugins/nativeapp/errno.py → api/rendering/__init__.py} +0 -2
- snowflake/cli/api/{utils/rendering.py → rendering/jinja.py} +3 -48
- snowflake/cli/api/rendering/project_definition_templates.py +39 -0
- snowflake/cli/api/rendering/project_templates.py +97 -0
- snowflake/cli/api/rendering/sql_templates.py +56 -0
- snowflake/cli/api/sql_execution.py +40 -1
- snowflake/cli/api/utils/definition_rendering.py +8 -5
- snowflake/cli/app/commands_registration/builtin_plugins.py +4 -0
- snowflake/cli/app/dev/docs/project_definition_docs_generator.py +2 -2
- snowflake/cli/app/loggers.py +3 -1
- snowflake/cli/app/printing.py +17 -7
- snowflake/cli/app/snow_connector.py +9 -1
- snowflake/cli/app/telemetry.py +41 -2
- snowflake/cli/plugins/connection/commands.py +4 -3
- snowflake/cli/plugins/connection/util.py +73 -18
- snowflake/cli/plugins/cortex/commands.py +2 -1
- snowflake/cli/plugins/git/commands.py +20 -4
- snowflake/cli/plugins/git/manager.py +44 -20
- snowflake/cli/plugins/init/__init__.py +13 -0
- snowflake/cli/plugins/init/commands.py +242 -0
- snowflake/cli/plugins/init/plugin_spec.py +30 -0
- snowflake/cli/plugins/nativeapp/codegen/artifact_processor.py +40 -0
- snowflake/cli/plugins/nativeapp/codegen/compiler.py +57 -27
- snowflake/cli/plugins/nativeapp/codegen/sandbox.py +99 -10
- snowflake/cli/plugins/nativeapp/codegen/setup/native_app_setup_processor.py +172 -0
- snowflake/cli/plugins/nativeapp/codegen/setup/setup_driver.py.source +56 -0
- snowflake/cli/plugins/nativeapp/codegen/snowpark/python_processor.py +21 -21
- snowflake/cli/plugins/nativeapp/commands.py +69 -6
- snowflake/cli/plugins/nativeapp/constants.py +0 -6
- snowflake/cli/plugins/nativeapp/exceptions.py +37 -12
- snowflake/cli/plugins/nativeapp/init.py +1 -1
- snowflake/cli/plugins/nativeapp/manager.py +114 -39
- snowflake/cli/plugins/nativeapp/project_model.py +8 -4
- snowflake/cli/plugins/nativeapp/run_processor.py +117 -102
- snowflake/cli/plugins/nativeapp/teardown_processor.py +7 -2
- snowflake/cli/plugins/nativeapp/v2_conversions/v2_to_v1_decorator.py +146 -0
- snowflake/cli/plugins/nativeapp/version/commands.py +19 -3
- snowflake/cli/plugins/nativeapp/version/version_processor.py +11 -3
- snowflake/cli/plugins/snowpark/commands.py +34 -26
- snowflake/cli/plugins/snowpark/common.py +88 -27
- snowflake/cli/plugins/snowpark/manager.py +16 -5
- snowflake/cli/plugins/snowpark/models.py +6 -0
- snowflake/cli/plugins/sql/commands.py +3 -5
- snowflake/cli/plugins/sql/manager.py +1 -1
- snowflake/cli/plugins/stage/commands.py +2 -2
- snowflake/cli/plugins/stage/diff.py +4 -2
- snowflake/cli/plugins/stage/manager.py +290 -86
- snowflake/cli/plugins/streamlit/commands.py +20 -6
- snowflake/cli/plugins/streamlit/manager.py +29 -27
- snowflake/cli/plugins/workspace/__init__.py +13 -0
- snowflake/cli/plugins/workspace/commands.py +35 -0
- snowflake/cli/plugins/workspace/plugin_spec.py +30 -0
- snowflake/cli/templates/default_snowpark/app/__init__.py +0 -13
- snowflake/cli/templates/default_snowpark/app/common.py +0 -15
- snowflake/cli/templates/default_snowpark/app/functions.py +0 -14
- snowflake/cli/templates/default_snowpark/app/procedures.py +0 -14
- snowflake/cli/templates/default_streamlit/common/hello.py +0 -15
- snowflake/cli/templates/default_streamlit/pages/my_page.py +0 -14
- snowflake/cli/templates/default_streamlit/streamlit_app.py +0 -14
- {snowflake_cli_labs-2.6.1.dist-info → snowflake_cli_labs-2.7.0rc1.dist-info}/METADATA +7 -6
- {snowflake_cli_labs-2.6.1.dist-info → snowflake_cli_labs-2.7.0rc1.dist-info}/RECORD +84 -64
- {snowflake_cli_labs-2.6.1.dist-info → snowflake_cli_labs-2.7.0rc1.dist-info}/WHEEL +0 -0
- {snowflake_cli_labs-2.6.1.dist-info → snowflake_cli_labs-2.7.0rc1.dist-info}/entry_points.txt +0 -0
- {snowflake_cli_labs-2.6.1.dist-info → snowflake_cli_labs-2.7.0rc1.dist-info}/licenses/LICENSE +0 -0
|
@@ -15,6 +15,7 @@
|
|
|
15
15
|
from __future__ import annotations
|
|
16
16
|
|
|
17
17
|
import logging
|
|
18
|
+
import os
|
|
18
19
|
from pathlib import Path
|
|
19
20
|
from typing import List, Optional
|
|
20
21
|
|
|
@@ -25,7 +26,8 @@ from snowflake.cli.api.feature_flags import FeatureFlag
|
|
|
25
26
|
from snowflake.cli.api.identifiers import FQN
|
|
26
27
|
from snowflake.cli.api.sql_execution import SqlExecutionMixin
|
|
27
28
|
from snowflake.cli.plugins.connection.util import (
|
|
28
|
-
|
|
29
|
+
MissingConnectionAccountError,
|
|
30
|
+
MissingConnectionRegionError,
|
|
29
31
|
make_snowsight_url,
|
|
30
32
|
)
|
|
31
33
|
from snowflake.cli.plugins.stage.manager import StageManager
|
|
@@ -36,9 +38,9 @@ log = logging.getLogger(__name__)
|
|
|
36
38
|
|
|
37
39
|
|
|
38
40
|
class StreamlitManager(SqlExecutionMixin):
|
|
39
|
-
def share(self, streamlit_name:
|
|
41
|
+
def share(self, streamlit_name: FQN, to_role: str) -> SnowflakeCursor:
|
|
40
42
|
return self._execute_query(
|
|
41
|
-
f"grant usage on streamlit {streamlit_name} to role {to_role}"
|
|
43
|
+
f"grant usage on streamlit {streamlit_name.sql_identifier} to role {to_role}"
|
|
42
44
|
)
|
|
43
45
|
|
|
44
46
|
def _put_streamlit_files(
|
|
@@ -47,7 +49,7 @@ class StreamlitManager(SqlExecutionMixin):
|
|
|
47
49
|
main_file: Path,
|
|
48
50
|
environment_file: Optional[Path],
|
|
49
51
|
pages_dir: Optional[Path],
|
|
50
|
-
additional_source_files: Optional[List[
|
|
52
|
+
additional_source_files: Optional[List[Path]],
|
|
51
53
|
):
|
|
52
54
|
stage_manager = StageManager()
|
|
53
55
|
|
|
@@ -61,18 +63,15 @@ class StreamlitManager(SqlExecutionMixin):
|
|
|
61
63
|
|
|
62
64
|
if additional_source_files:
|
|
63
65
|
for file in additional_source_files:
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
if "/" in file
|
|
69
|
-
else root_location
|
|
70
|
-
)
|
|
66
|
+
if os.sep in str(file):
|
|
67
|
+
destination = f"{root_location}/{str(file.parent)}"
|
|
68
|
+
else:
|
|
69
|
+
destination = root_location
|
|
71
70
|
stage_manager.put(file, destination, 4, True)
|
|
72
71
|
|
|
73
72
|
def _create_streamlit(
|
|
74
73
|
self,
|
|
75
|
-
|
|
74
|
+
streamlit_id: FQN,
|
|
76
75
|
main_file: Path,
|
|
77
76
|
replace: Optional[bool] = None,
|
|
78
77
|
experimental: Optional[bool] = None,
|
|
@@ -82,15 +81,17 @@ class StreamlitManager(SqlExecutionMixin):
|
|
|
82
81
|
):
|
|
83
82
|
query = []
|
|
84
83
|
if replace:
|
|
85
|
-
query.append(f"CREATE OR REPLACE STREAMLIT {
|
|
84
|
+
query.append(f"CREATE OR REPLACE STREAMLIT {streamlit_id.sql_identifier}")
|
|
86
85
|
elif experimental:
|
|
87
86
|
# For experimental behaviour, we need to use CREATE STREAMLIT IF NOT EXISTS
|
|
88
87
|
# for a streamlit app with an embedded stage
|
|
89
88
|
# because this is analogous to the behavior for non-experimental
|
|
90
89
|
# deploy which does CREATE STAGE IF NOT EXISTS
|
|
91
|
-
query.append(
|
|
90
|
+
query.append(
|
|
91
|
+
f"CREATE STREAMLIT IF NOT EXISTS {streamlit_id.sql_identifier}"
|
|
92
|
+
)
|
|
92
93
|
else:
|
|
93
|
-
query.append(f"CREATE STREAMLIT {
|
|
94
|
+
query.append(f"CREATE STREAMLIT {streamlit_id.sql_identifier}")
|
|
94
95
|
|
|
95
96
|
if from_stage_name:
|
|
96
97
|
query.append(f"ROOT_LOCATION = '{from_stage_name}'")
|
|
@@ -106,21 +107,20 @@ class StreamlitManager(SqlExecutionMixin):
|
|
|
106
107
|
|
|
107
108
|
def deploy(
|
|
108
109
|
self,
|
|
109
|
-
|
|
110
|
+
streamlit_id: FQN,
|
|
110
111
|
main_file: Path,
|
|
111
112
|
environment_file: Optional[Path] = None,
|
|
112
113
|
pages_dir: Optional[Path] = None,
|
|
113
114
|
stage_name: Optional[str] = None,
|
|
114
115
|
query_warehouse: Optional[str] = None,
|
|
115
116
|
replace: Optional[bool] = False,
|
|
116
|
-
additional_source_files: Optional[List[
|
|
117
|
+
additional_source_files: Optional[List[Path]] = None,
|
|
117
118
|
title: Optional[str] = None,
|
|
118
119
|
**options,
|
|
119
120
|
):
|
|
120
121
|
# for backwards compatibility - quoted stage path might be case-sensitive
|
|
121
122
|
# https://docs.snowflake.com/en/sql-reference/identifiers-syntax#double-quoted-identifiers
|
|
122
|
-
streamlit_name_for_root_location =
|
|
123
|
-
fully_qualified_name = streamlit.identifier
|
|
123
|
+
streamlit_name_for_root_location = streamlit_id.name
|
|
124
124
|
|
|
125
125
|
if (
|
|
126
126
|
experimental_behaviour_enabled()
|
|
@@ -133,7 +133,7 @@ class StreamlitManager(SqlExecutionMixin):
|
|
|
133
133
|
# TODO: Support from_stage
|
|
134
134
|
# from_stage_stmt = f"FROM_STAGE = '{stage_name}'" if stage_name else ""
|
|
135
135
|
self._create_streamlit(
|
|
136
|
-
|
|
136
|
+
streamlit_id,
|
|
137
137
|
main_file,
|
|
138
138
|
replace=replace,
|
|
139
139
|
query_warehouse=query_warehouse,
|
|
@@ -141,7 +141,9 @@ class StreamlitManager(SqlExecutionMixin):
|
|
|
141
141
|
title=title,
|
|
142
142
|
)
|
|
143
143
|
try:
|
|
144
|
-
self._execute_query(
|
|
144
|
+
self._execute_query(
|
|
145
|
+
f"ALTER streamlit {streamlit_id.identifier} CHECKOUT"
|
|
146
|
+
)
|
|
145
147
|
except ProgrammingError as e:
|
|
146
148
|
# If an error is raised because a CHECKOUT has already occurred,
|
|
147
149
|
# simply skip it and continue
|
|
@@ -149,7 +151,7 @@ class StreamlitManager(SqlExecutionMixin):
|
|
|
149
151
|
log.info("Checkout already exists, continuing")
|
|
150
152
|
else:
|
|
151
153
|
raise
|
|
152
|
-
stage_path =
|
|
154
|
+
stage_path = streamlit_id.identifier
|
|
153
155
|
embedded_stage_name = f"snow://streamlit/{stage_path}"
|
|
154
156
|
root_location = f"{embedded_stage_name}/default_checkout"
|
|
155
157
|
|
|
@@ -186,7 +188,7 @@ class StreamlitManager(SqlExecutionMixin):
|
|
|
186
188
|
)
|
|
187
189
|
|
|
188
190
|
self._create_streamlit(
|
|
189
|
-
|
|
191
|
+
streamlit_id,
|
|
190
192
|
main_file,
|
|
191
193
|
replace=replace,
|
|
192
194
|
query_warehouse=query_warehouse,
|
|
@@ -195,14 +197,14 @@ class StreamlitManager(SqlExecutionMixin):
|
|
|
195
197
|
title=title,
|
|
196
198
|
)
|
|
197
199
|
|
|
198
|
-
return self.get_url(
|
|
200
|
+
return self.get_url(streamlit_name=streamlit_id)
|
|
199
201
|
|
|
200
|
-
def get_url(self, streamlit_name:
|
|
202
|
+
def get_url(self, streamlit_name: FQN) -> str:
|
|
201
203
|
try:
|
|
202
|
-
fqn =
|
|
204
|
+
fqn = streamlit_name.using_connection(self._conn)
|
|
203
205
|
return make_snowsight_url(
|
|
204
206
|
self._conn,
|
|
205
207
|
f"/#/streamlit-apps/{fqn.url_identifier}",
|
|
206
208
|
)
|
|
207
|
-
except
|
|
209
|
+
except (MissingConnectionRegionError, MissingConnectionAccountError) as e:
|
|
208
210
|
return "https://app.snowflake.com"
|
|
@@ -0,0 +1,13 @@
|
|
|
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.
|
|
@@ -0,0 +1,35 @@
|
|
|
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 snowflake.cli.api.commands.decorators import with_project_definition
|
|
18
|
+
from snowflake.cli.api.commands.snow_typer import SnowTyper
|
|
19
|
+
from snowflake.cli.api.output.types import MessageResult
|
|
20
|
+
|
|
21
|
+
ws = SnowTyper(
|
|
22
|
+
name="ws",
|
|
23
|
+
hidden=True,
|
|
24
|
+
help="Deploy and interact with snowflake.yml-based entities.",
|
|
25
|
+
)
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
@ws.command(requires_connection=True)
|
|
29
|
+
@with_project_definition()
|
|
30
|
+
def validate(
|
|
31
|
+
**options,
|
|
32
|
+
):
|
|
33
|
+
"""Validates the project definition file."""
|
|
34
|
+
# If we get to this point, @with_project_definition() has already validated the PDF schema
|
|
35
|
+
return MessageResult("Project definition is valid.")
|
|
@@ -0,0 +1,30 @@
|
|
|
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 snowflake.cli.api.plugins.command import (
|
|
16
|
+
SNOWCLI_ROOT_COMMAND_PATH,
|
|
17
|
+
CommandSpec,
|
|
18
|
+
CommandType,
|
|
19
|
+
plugin_hook_impl,
|
|
20
|
+
)
|
|
21
|
+
from snowflake.cli.plugins.workspace import commands
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
@plugin_hook_impl
|
|
25
|
+
def command_spec():
|
|
26
|
+
return CommandSpec(
|
|
27
|
+
parent_command_path=SNOWCLI_ROOT_COMMAND_PATH,
|
|
28
|
+
command_type=CommandType.COMMAND_GROUP,
|
|
29
|
+
typer_instance=commands.ws,
|
|
30
|
+
)
|
|
@@ -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,17 +1,2 @@
|
|
|
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
|
-
|
|
16
1
|
def print_hello(name: str):
|
|
17
2
|
return f"Hello {name}!"
|
|
@@ -1,17 +1,3 @@
|
|
|
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
1
|
from __future__ import annotations
|
|
16
2
|
|
|
17
3
|
import sys
|
|
@@ -1,17 +1,3 @@
|
|
|
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
1
|
from __future__ import annotations
|
|
16
2
|
|
|
17
3
|
import sys
|
|
@@ -1,17 +1,2 @@
|
|
|
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
|
-
|
|
16
1
|
def say_hello():
|
|
17
2
|
return "Hello!"
|
|
@@ -1,17 +1,3 @@
|
|
|
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
1
|
import streamlit as st
|
|
16
2
|
|
|
17
3
|
st.title("Example page")
|
|
@@ -1,17 +1,3 @@
|
|
|
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
1
|
import streamlit as st
|
|
16
2
|
from common.hello import say_hello
|
|
17
3
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.3
|
|
2
2
|
Name: snowflake-cli-labs
|
|
3
|
-
Version: 2.
|
|
3
|
+
Version: 2.7.0rc1
|
|
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
|
|
@@ -222,22 +222,23 @@ Requires-Dist: jinja2==3.1.4
|
|
|
222
222
|
Requires-Dist: packaging
|
|
223
223
|
Requires-Dist: pip
|
|
224
224
|
Requires-Dist: pluggy==1.5.0
|
|
225
|
-
Requires-Dist: pydantic==2.8.
|
|
225
|
+
Requires-Dist: pydantic==2.8.2
|
|
226
226
|
Requires-Dist: pyyaml==6.0.1
|
|
227
227
|
Requires-Dist: requests==2.32.3
|
|
228
228
|
Requires-Dist: requirements-parser==0.9.0
|
|
229
229
|
Requires-Dist: rich==13.7.1
|
|
230
|
-
Requires-Dist: setuptools==70.
|
|
230
|
+
Requires-Dist: setuptools==70.3.0
|
|
231
231
|
Requires-Dist: snowflake-connector-python[secure-local-storage]==3.11.0
|
|
232
232
|
Requires-Dist: snowflake-core==0.8.0; python_version < '3.12'
|
|
233
|
-
Requires-Dist:
|
|
233
|
+
Requires-Dist: snowflake-snowpark-python>=1.15.0; python_version < '3.12'
|
|
234
|
+
Requires-Dist: tomlkit==0.13.0
|
|
234
235
|
Requires-Dist: typer==0.12.3
|
|
235
236
|
Requires-Dist: urllib3<2.3,>=1.24.3
|
|
236
237
|
Provides-Extra: development
|
|
237
|
-
Requires-Dist: coverage==7.
|
|
238
|
+
Requires-Dist: coverage==7.6.0; extra == 'development'
|
|
238
239
|
Requires-Dist: pre-commit>=3.5.0; extra == 'development'
|
|
239
240
|
Requires-Dist: pytest-randomly==3.15.0; extra == 'development'
|
|
240
|
-
Requires-Dist: pytest==8.
|
|
241
|
+
Requires-Dist: pytest==8.3.1; extra == 'development'
|
|
241
242
|
Requires-Dist: syrupy==4.6.1; extra == 'development'
|
|
242
243
|
Description-Content-Type: text/markdown
|
|
243
244
|
|