f602eee7cca17d0a589aa2dd8d216ec7ea9f86db
Add 5 new SiloClient methods for .kc file server integration:
- get_metadata(pn): GET /items/{pn}/metadata
- update_metadata(pn, fields): PUT /items/{pn}/metadata
- patch_lifecycle(pn, state): PATCH /items/{pn}/metadata/lifecycle
- patch_tags(pn, tags): PATCH /items/{pn}/metadata/tags
- resolve_dependencies(pn): GET /items/{pn}/dependencies/resolve
These endpoints are already implemented server-side and needed by the
Create module's silo viewer widgets for live data sync.
Refs: kindred/silo-mod#43
silo-client
Shared Python HTTP client for the Silo REST API.
Usage
Consumers subclass SiloSettings to bridge the client to their configuration storage, then instantiate SiloClient:
from silo_client import SiloClient, SiloSettings
class MySettings(SiloSettings):
def get_api_url(self):
return "http://localhost:8080/api"
def get_api_token(self):
return os.environ.get("SILO_API_TOKEN", "")
def get_ssl_verify(self):
return True
def get_ssl_cert_path(self):
return ""
def save_auth(self, username, role="", source="", token=""):
... # persist credentials
def clear_auth(self):
... # remove credentials
client = SiloClient(MySettings())
items = client.list_items(search="M3 screw")
Dependencies
None beyond the Python standard library (urllib, ssl, json).
License
MIT
Languages
Python
100%