This commit is contained in:
Christian Mantha
2026-03-02 19:10:52 -05:00
commit 2ca0b9ef7c
28907 changed files with 5233713 additions and 0 deletions

View File

@@ -0,0 +1,44 @@
from typing import Iterator, Optional
from databricks.sdk.service import sharing
from databricks.sdk.service.sharing import ShareInfo
class SharesExt(sharing.SharesAPI):
def list(self, *, max_results: Optional[int] = None, page_token: Optional[str] = None) -> Iterator[ShareInfo]:
"""Gets an array of data object shares from the metastore. The caller must be a metastore admin or the
owner of the share. There is no guarantee of a specific ordering of the elements in the array.
:param max_results: int (optional)
Maximum number of shares to return. - when set to 0, the page length is set to a server configured
value (recommended); - when set to a value greater than 0, the page length is the minimum of this
value and a server configured value; - when set to a value less than 0, an invalid parameter error
is returned; - If not set, all valid shares are returned (not recommended). - Note: The number of
returned shares might be less than the specified max_results size, even zero. The only definitive
indication that no further shares can be fetched is when the next_page_token is unset from the
response.
:param page_token: str (optional)
Opaque pagination token to go to next page based on previous query.
:returns: Iterator over :class:`ShareInfo`
"""
query = {}
if max_results is not None:
query["max_results"] = max_results
if page_token is not None:
query["page_token"] = page_token
headers = {
"Accept": "application/json",
}
if "max_results" not in query:
query["max_results"] = 0
while True:
json = self._api.do("GET", "/api/2.1/unity-catalog/shares", query=query, headers=headers)
if "shares" in json:
for v in json["shares"]:
yield ShareInfo.from_dict(v)
if "next_page_token" not in json or not json["next_page_token"]:
return
query["page_token"] = json["next_page_token"]