feat: Add "list_resources" function to the wmill sdk

This commit is contained in:
Roderik-WU
2025-11-01 10:16:59 +01:00
committed by GitHub
parent 8e9ddb7b84
commit 8d5328ac53
+59
View File
@@ -534,6 +534,35 @@ class Windmill:
json={"value": value},
)
def list_resources(
self,
resource_type: str = None,
page: int = None,
per_page: int = None,
) -> list[dict]:
"""List resources from Windmill workspace.
Args:
resource_type: Optional resource type to filter by (e.g., "postgresql", "mysql", "s3")
page: Optional page number for pagination
per_page: Optional number of results per page
Returns:
List of resource dictionaries
"""
params = {}
if resource_type is not None:
params["resource_type"] = resource_type
if page is not None:
params["page"] = page
if per_page is not None:
params["per_page"] = per_page
return self.get(
f"/w/{self.workspace}/resources/list",
params=params if params else None,
).json()
def set_state(self, value: Any):
self.set_resource(value, path=self.state_path, resource_type="state")
@@ -1263,6 +1292,36 @@ def set_resource(path: str, value: Any, resource_type: str = "any") -> None:
return _client.set_resource(value=value, path=path, resource_type=resource_type)
@init_global_client
def list_resources(
resource_type: str = None,
page: int = None,
per_page: int = None,
) -> list[dict]:
"""List resources from Windmill workspace.
Args:
resource_type: Optional resource type to filter by (e.g., "postgresql", "mysql", "s3")
page: Optional page number for pagination
per_page: Optional number of results per page
Returns:
List of resource dictionaries
Example:
>>> # Get all resources
>>> all_resources = wmill.list_resources()
>>> # Get only PostgreSQL resources
>>> pg_resources = wmill.list_resources(resource_type="postgresql")
"""
return _client.list_resources(
resource_type=resource_type,
page=page,
per_page=per_page,
)
@init_global_client
def set_state(value: Any) -> None:
"""