snowflake-cli 3.2.2__py3-none-any.whl → 3.4.1__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/_app/__main__.py +2 -2
- snowflake/cli/_app/cli_app.py +224 -192
- snowflake/cli/_app/commands_registration/commands_registration_with_callbacks.py +1 -27
- snowflake/cli/_app/constants.py +4 -0
- snowflake/cli/_app/snow_connector.py +12 -0
- snowflake/cli/_app/telemetry.py +10 -3
- snowflake/cli/_plugins/connection/util.py +12 -19
- snowflake/cli/_plugins/cortex/commands.py +2 -4
- snowflake/cli/_plugins/git/manager.py +1 -1
- snowflake/cli/_plugins/helpers/commands.py +207 -1
- snowflake/cli/_plugins/nativeapp/artifacts.py +16 -628
- snowflake/cli/_plugins/nativeapp/bundle_context.py +1 -1
- snowflake/cli/_plugins/nativeapp/codegen/artifact_processor.py +1 -1
- snowflake/cli/_plugins/nativeapp/codegen/compiler.py +42 -20
- snowflake/cli/_plugins/nativeapp/codegen/setup/native_app_setup_processor.py +9 -2
- snowflake/cli/_plugins/nativeapp/codegen/snowpark/python_processor.py +6 -3
- snowflake/cli/_plugins/nativeapp/codegen/templates/templates_processor.py +44 -34
- snowflake/cli/_plugins/nativeapp/commands.py +113 -21
- snowflake/cli/_plugins/nativeapp/constants.py +5 -0
- snowflake/cli/_plugins/nativeapp/entities/application.py +226 -296
- snowflake/cli/_plugins/nativeapp/entities/application_package.py +911 -141
- snowflake/cli/_plugins/nativeapp/entities/application_package_child_interface.py +43 -0
- snowflake/cli/_plugins/nativeapp/feature_flags.py +5 -1
- snowflake/cli/_plugins/nativeapp/release_channel/__init__.py +13 -0
- snowflake/cli/_plugins/nativeapp/release_channel/commands.py +246 -0
- snowflake/cli/_plugins/nativeapp/release_directive/__init__.py +13 -0
- snowflake/cli/_plugins/nativeapp/release_directive/commands.py +243 -0
- snowflake/cli/_plugins/nativeapp/same_account_install_method.py +9 -17
- snowflake/cli/_plugins/nativeapp/sf_facade_exceptions.py +80 -0
- snowflake/cli/_plugins/nativeapp/sf_sql_facade.py +1184 -80
- snowflake/cli/_plugins/nativeapp/utils.py +11 -0
- snowflake/cli/_plugins/nativeapp/v2_conversions/compat.py +7 -3
- snowflake/cli/_plugins/nativeapp/version/commands.py +32 -5
- snowflake/cli/_plugins/notebook/commands.py +55 -2
- snowflake/cli/_plugins/notebook/exceptions.py +1 -1
- snowflake/cli/_plugins/notebook/manager.py +7 -5
- snowflake/cli/_plugins/notebook/notebook_entity.py +120 -0
- snowflake/cli/_plugins/notebook/notebook_entity_model.py +42 -0
- snowflake/cli/_plugins/notebook/notebook_project_paths.py +15 -0
- snowflake/cli/_plugins/notebook/types.py +3 -0
- snowflake/cli/_plugins/snowpark/commands.py +48 -30
- snowflake/cli/_plugins/snowpark/common.py +47 -2
- snowflake/cli/_plugins/snowpark/snowpark_entity.py +247 -4
- snowflake/cli/_plugins/snowpark/snowpark_entity_model.py +18 -30
- snowflake/cli/_plugins/snowpark/snowpark_project_paths.py +156 -23
- snowflake/cli/_plugins/snowpark/zipper.py +33 -1
- snowflake/cli/_plugins/spcs/common.py +129 -0
- snowflake/cli/_plugins/spcs/services/commands.py +131 -14
- snowflake/cli/_plugins/spcs/services/manager.py +169 -1
- snowflake/cli/_plugins/stage/commands.py +2 -1
- snowflake/cli/_plugins/stage/diff.py +60 -39
- snowflake/cli/_plugins/stage/manager.py +34 -13
- snowflake/cli/_plugins/stage/utils.py +1 -1
- snowflake/cli/_plugins/streamlit/commands.py +10 -1
- snowflake/cli/_plugins/streamlit/manager.py +70 -22
- snowflake/cli/_plugins/streamlit/streamlit_entity.py +131 -1
- snowflake/cli/_plugins/streamlit/streamlit_entity_model.py +14 -24
- snowflake/cli/_plugins/streamlit/streamlit_project_paths.py +30 -0
- snowflake/cli/_plugins/workspace/commands.py +6 -5
- snowflake/cli/_plugins/workspace/manager.py +9 -5
- snowflake/cli/api/artifacts/__init__.py +13 -0
- snowflake/cli/api/artifacts/bundle_map.py +500 -0
- snowflake/cli/api/artifacts/common.py +78 -0
- snowflake/cli/api/artifacts/utils.py +82 -0
- snowflake/cli/api/cli_global_context.py +36 -2
- snowflake/cli/api/commands/flags.py +10 -4
- snowflake/cli/api/commands/utils.py +28 -2
- snowflake/cli/api/config.py +6 -2
- snowflake/cli/api/connections.py +12 -1
- snowflake/cli/api/constants.py +10 -1
- snowflake/cli/api/entities/common.py +81 -14
- snowflake/cli/api/entities/resolver.py +160 -0
- snowflake/cli/api/entities/utils.py +65 -23
- snowflake/cli/api/errno.py +63 -3
- snowflake/cli/api/feature_flags.py +19 -4
- snowflake/cli/api/metrics.py +21 -27
- snowflake/cli/api/project/definition_conversion.py +4 -4
- snowflake/cli/api/project/project_paths.py +28 -0
- snowflake/cli/api/project/schemas/entities/common.py +130 -1
- snowflake/cli/api/project/schemas/entities/entities.py +4 -0
- snowflake/cli/api/project/schemas/project_definition.py +54 -6
- snowflake/cli/api/project/schemas/updatable_model.py +2 -2
- snowflake/cli/api/project/schemas/v1/native_app/native_app.py +5 -7
- snowflake/cli/api/project/schemas/v1/streamlit/streamlit.py +1 -1
- snowflake/cli/api/project/util.py +45 -0
- snowflake/cli/api/secure_path.py +6 -0
- snowflake/cli/api/sql_execution.py +5 -1
- snowflake/cli/api/stage_path.py +7 -2
- snowflake/cli/api/utils/graph.py +3 -0
- snowflake/cli/api/utils/path_utils.py +24 -0
- {snowflake_cli-3.2.2.dist-info → snowflake_cli-3.4.1.dist-info}/METADATA +14 -15
- {snowflake_cli-3.2.2.dist-info → snowflake_cli-3.4.1.dist-info}/RECORD +96 -82
- {snowflake_cli-3.2.2.dist-info → snowflake_cli-3.4.1.dist-info}/WHEEL +1 -1
- snowflake/cli/api/project/schemas/v1/native_app/path_mapping.py +0 -65
- {snowflake_cli-3.2.2.dist-info → snowflake_cli-3.4.1.dist-info}/entry_points.txt +0 -0
- {snowflake_cli-3.2.2.dist-info → snowflake_cli-3.4.1.dist-info}/licenses/LICENSE +0 -0
|
@@ -11,12 +11,83 @@
|
|
|
11
11
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
12
12
|
# See the License for the specific language governing permissions and
|
|
13
13
|
# limitations under the License.
|
|
14
|
+
from __future__ import annotations
|
|
15
|
+
|
|
14
16
|
from typing import NoReturn
|
|
15
17
|
|
|
16
18
|
from click import ClickException
|
|
17
19
|
from snowflake.cli._plugins.nativeapp.sf_facade_constants import UseObjectType
|
|
20
|
+
from snowflake.cli.api.errno import (
|
|
21
|
+
APPLICATION_FILE_NOT_FOUND_ON_STAGE,
|
|
22
|
+
APPLICATION_INSTANCE_EMPTY_SETUP_SCRIPT,
|
|
23
|
+
APPLICATION_INSTANCE_FAILED_TO_RUN_SETUP_SCRIPT,
|
|
24
|
+
APPLICATION_INSTANCE_NO_ACTIVE_WAREHOUSE_FOR_CREATE_OR_UPGRADE,
|
|
25
|
+
APPLICATION_NO_LONGER_AVAILABLE,
|
|
26
|
+
APPLICATION_PACKAGE_CANNOT_SET_EXTERNAL_DISTRIBUTION_WITH_SPCS,
|
|
27
|
+
APPLICATION_PACKAGE_MANIFEST_CONTAINER_IMAGE_URL_BAD_VALUE,
|
|
28
|
+
APPLICATION_PACKAGE_MANIFEST_SPECIFIED_FILE_NOT_FOUND,
|
|
29
|
+
APPLICATION_PACKAGE_PATCH_DOES_NOT_EXIST,
|
|
30
|
+
CANNOT_GRANT_NON_MANIFEST_PRIVILEGE,
|
|
31
|
+
CANNOT_GRANT_OBJECT_NOT_IN_APP_PACKAGE,
|
|
32
|
+
CANNOT_GRANT_RESTRICTED_PRIVILEGE_TO_APP_PACKAGE_SHARE,
|
|
33
|
+
CANNOT_UPGRADE_FROM_LOOSE_FILES_TO_VERSION,
|
|
34
|
+
CANNOT_UPGRADE_FROM_VERSION_TO_LOOSE_FILES,
|
|
35
|
+
NATIVE_APPLICATION_MANIFEST_GENERIC_JSON_ERROR,
|
|
36
|
+
NATIVE_APPLICATION_MANIFEST_INVALID_SYNTAX,
|
|
37
|
+
NATIVE_APPLICATION_MANIFEST_UNEXPECTED_VALUE_FOR_PROPERTY,
|
|
38
|
+
NATIVE_APPLICATION_MANIFEST_UNRECOGNIZED_FIELD,
|
|
39
|
+
NO_REFERENCE_SET_FOR_DEFINITION,
|
|
40
|
+
NO_VERSIONS_AVAILABLE_FOR_ACCOUNT,
|
|
41
|
+
NOT_SUPPORTED_ON_DEV_MODE_APPLICATIONS,
|
|
42
|
+
ONLY_SUPPORTED_ON_DEV_MODE_APPLICATIONS,
|
|
43
|
+
ROLE_NOT_ASSIGNED,
|
|
44
|
+
SNOWSERVICES_IMAGE_MANIFEST_NOT_FOUND,
|
|
45
|
+
SNOWSERVICES_IMAGE_REPOSITORY_FAILS_TO_RETRIEVE_IMAGE_HASH_NEW,
|
|
46
|
+
SNOWSERVICES_IMAGE_REPOSITORY_IMAGE_IMPORT_TO_NATIVE_APP_FAIL,
|
|
47
|
+
VIEW_EXPANSION_FAILED,
|
|
48
|
+
)
|
|
18
49
|
from snowflake.connector import DatabaseError, Error, ProgrammingError
|
|
19
50
|
|
|
51
|
+
# Reasons why an `alter application ... upgrade` might fail
|
|
52
|
+
UPGRADE_RESTRICTION_CODES = {
|
|
53
|
+
CANNOT_UPGRADE_FROM_LOOSE_FILES_TO_VERSION,
|
|
54
|
+
CANNOT_UPGRADE_FROM_VERSION_TO_LOOSE_FILES,
|
|
55
|
+
ONLY_SUPPORTED_ON_DEV_MODE_APPLICATIONS,
|
|
56
|
+
NOT_SUPPORTED_ON_DEV_MODE_APPLICATIONS,
|
|
57
|
+
APPLICATION_NO_LONGER_AVAILABLE,
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
CREATE_OR_UPGRADE_APPLICATION_EXPECTED_USER_ERROR_CODES = {
|
|
61
|
+
APPLICATION_INSTANCE_FAILED_TO_RUN_SETUP_SCRIPT,
|
|
62
|
+
NATIVE_APPLICATION_MANIFEST_GENERIC_JSON_ERROR,
|
|
63
|
+
APPLICATION_INSTANCE_NO_ACTIVE_WAREHOUSE_FOR_CREATE_OR_UPGRADE,
|
|
64
|
+
# when setup script/manifest/readme isn't on the stage
|
|
65
|
+
APPLICATION_FILE_NOT_FOUND_ON_STAGE,
|
|
66
|
+
NATIVE_APPLICATION_MANIFEST_UNRECOGNIZED_FIELD,
|
|
67
|
+
SNOWSERVICES_IMAGE_MANIFEST_NOT_FOUND,
|
|
68
|
+
# user tried to clone tables and it failed
|
|
69
|
+
VIEW_EXPANSION_FAILED,
|
|
70
|
+
# user tried to do something with a role that wasn't assigned to them
|
|
71
|
+
ROLE_NOT_ASSIGNED,
|
|
72
|
+
APPLICATION_PACKAGE_MANIFEST_SPECIFIED_FILE_NOT_FOUND,
|
|
73
|
+
SNOWSERVICES_IMAGE_REPOSITORY_IMAGE_IMPORT_TO_NATIVE_APP_FAIL,
|
|
74
|
+
APPLICATION_PACKAGE_PATCH_DOES_NOT_EXIST,
|
|
75
|
+
APPLICATION_PACKAGE_MANIFEST_CONTAINER_IMAGE_URL_BAD_VALUE,
|
|
76
|
+
SNOWSERVICES_IMAGE_REPOSITORY_FAILS_TO_RETRIEVE_IMAGE_HASH_NEW,
|
|
77
|
+
NATIVE_APPLICATION_MANIFEST_UNEXPECTED_VALUE_FOR_PROPERTY,
|
|
78
|
+
CANNOT_GRANT_NON_MANIFEST_PRIVILEGE,
|
|
79
|
+
NO_REFERENCE_SET_FOR_DEFINITION,
|
|
80
|
+
NATIVE_APPLICATION_MANIFEST_INVALID_SYNTAX,
|
|
81
|
+
CANNOT_GRANT_OBJECT_NOT_IN_APP_PACKAGE,
|
|
82
|
+
APPLICATION_PACKAGE_MANIFEST_SPECIFIED_FILE_NOT_FOUND,
|
|
83
|
+
# user tried installing from release directive and there are none available
|
|
84
|
+
NO_VERSIONS_AVAILABLE_FOR_ACCOUNT,
|
|
85
|
+
APPLICATION_PACKAGE_MANIFEST_CONTAINER_IMAGE_URL_BAD_VALUE,
|
|
86
|
+
APPLICATION_INSTANCE_EMPTY_SETUP_SCRIPT,
|
|
87
|
+
APPLICATION_PACKAGE_CANNOT_SET_EXTERNAL_DISTRIBUTION_WITH_SPCS,
|
|
88
|
+
CANNOT_GRANT_RESTRICTED_PRIVILEGE_TO_APP_PACKAGE_SHARE,
|
|
89
|
+
}
|
|
90
|
+
|
|
20
91
|
|
|
21
92
|
def handle_unclassified_error(err: Error | Exception, context: str) -> NoReturn:
|
|
22
93
|
"""
|
|
@@ -115,3 +186,12 @@ class InsufficientPrivilegesError(ClickException):
|
|
|
115
186
|
if role:
|
|
116
187
|
message += f" using role: {role}"
|
|
117
188
|
super().__init__(message)
|
|
189
|
+
|
|
190
|
+
|
|
191
|
+
class UpgradeApplicationRestrictionError(UserInputError):
|
|
192
|
+
"""
|
|
193
|
+
Raised when an alter application ... upgrade fails due to user error.
|
|
194
|
+
Must be caught and handled by the caller of an upgrade_application
|
|
195
|
+
"""
|
|
196
|
+
|
|
197
|
+
pass
|