-
Notifications
You must be signed in to change notification settings - Fork 175
Open
Description
Description
When calling w.functions.get on a qualified unity catalog functions path, the function returns an error
Reproduction
w.functions.get(<QUALIFIED_UC_FUNCTION_PATH>)
Expected behavior
return FunctionInfo for given function
Is it a regression?
Only try one version, the latest version
Debug Logs
The SDK logs helpful debugging information when debug logging is enabled. Set the log level to debug by adding logging.basicConfig(level=logging.DEBUG) to your program, and include the logs here.
Other Information
- OS: [e.g. macOS]
- Version: [e.g. 0.1.0]
Additional context
Returned error
AttributeError Traceback (most recent call last)
File <command-6655420862760072>, line 1
----> 1 w.functions.get(name="catalog_westeurope_dpn01_ds_sbx_temp.db_temp_chatcdp.seg_usecase_1_q1")
File /databricks/python/lib/python3.10/site-packages/databricks/sdk/service/catalog.py:2909, in FunctionsAPI.get(self, name, **kwargs)
2906 request = GetFunctionRequest(name=name)
2908 json = self._api.do('GET', f'/api/2.1/unity-catalog/functions/{request.name}')
-> 2909 return FunctionInfo.from_dict(json)
File /databricks/python/lib/python3.10/site-packages/databricks/sdk/service/catalog.py:898, in FunctionInfo.from_dict(cls, d)
886 @classmethod
887 def from_dict(cls, d: Dict[str, any]) -> 'FunctionInfo':
888 return cls(catalog_name=d.get('catalog_name', None),
889 comment=d.get('comment', None),
890 created_at=d.get('created_at', None),
891 created_by=d.get('created_by', None),
892 data_type=_enum(d, 'data_type', ColumnTypeName),
893 external_language=d.get('external_language', None),
894 external_name=d.get('external_name', None),
895 full_data_type=d.get('full_data_type', None),
896 full_name=d.get('full_name', None),
897 function_id=d.get('function_id', None),
--> 898 input_params=_repeated(d, 'input_params', FunctionParameterInfo),
899 is_deterministic=d.get('is_deterministic', None),
900 is_null_call=d.get('is_null_call', None),
901 metastore_id=d.get('metastore_id', None),
902 name=d.get('name', None),
903 owner=d.get('owner', None),
904 parameter_style=_enum(d, 'parameter_style', FunctionInfoParameterStyle),
905 properties=d.get('properties', None),
906 return_params=_repeated(d, 'return_params', FunctionParameterInfo),
907 routine_body=_enum(d, 'routine_body', FunctionInfoRoutineBody),
908 routine_definition=d.get('routine_definition', None),
909 routine_dependencies=_repeated(d, 'routine_dependencies', Dependency),
910 schema_name=d.get('schema_name', None),
911 security_type=_enum(d, 'security_type', FunctionInfoSecurityType),
912 specific_name=d.get('specific_name', None),
913 sql_data_access=_enum(d, 'sql_data_access', FunctionInfoSqlDataAccess),
914 sql_path=d.get('sql_path', None),
915 updated_at=d.get('updated_at', None),
916 updated_by=d.get('updated_by', None))
File /databricks/python/lib/python3.10/site-packages/databricks/sdk/service/_internal.py:15, in _repeated(d, field, cls)
13 return None
14 from_dict = getattr(cls, 'from_dict')
---> 15 return [from_dict(v) for v in d[field]]
File /databricks/python/lib/python3.10/site-packages/databricks/sdk/service/_internal.py:15, in <listcomp>(.0)
13 return None
14 from_dict = getattr(cls, 'from_dict')
---> 15 return [from_dict(v) for v in d[field]]
File /databricks/python/lib/python3.10/site-packages/databricks/sdk/service/catalog.py:982, in FunctionParameterInfo.from_dict(cls, d)
980 @classmethod
981 def from_dict(cls, d: Dict[str, any]) -> 'FunctionParameterInfo':
--> 982 return cls(comment=d.get('comment', None),
983 name=d.get('name', None),
984 parameter_default=d.get('parameter_default', None),
985 parameter_mode=_enum(d, 'parameter_mode', FunctionParameterMode),
986 parameter_type=_enum(d, 'parameter_type', FunctionParameterType),
987 position=d.get('position', None),
988 type_interval_type=d.get('type_interval_type', None),
989 type_json=d.get('type_json', None),
990 type_name=_enum(d, 'type_name', ColumnTypeName),
991 type_precision=d.get('type_precision', None),
992 type_scale=d.get('type_scale', None),
993 type_text=d.get('type_text', None))
AttributeError: 'str' object has no attribute 'get'
Metadata
Metadata
Assignees
Labels
No labels