periplus-python-sdk 0.12.1__py3-none-any.whl → 0.13.0__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.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: periplus-python-sdk
3
- Version: 0.12.1
3
+ Version: 0.13.0
4
4
  Summary: Typed Periplus platform client with SQL and notebook integration
5
5
  License-Expression: AGPL-3.0-only
6
6
  Project-URL: Repository, https://github.com/elei-io/periplus
@@ -109,7 +109,7 @@ A Developer key selects your organization and uses your live membership access.
109
109
  | `captures`, `crawls` | `create`, `get`, `list`, `iter`, `pages`, `cancel` |
110
110
  | `pins` | `create`, `get`, `list`, `iter`, `captures`, `update`, `delete` |
111
111
  | `schedules` | `create`, `get`, `list`, `iter`, `pages`, `captures`, `update`, `pause`, `resume`, `delete` |
112
- | `saved_queries` | `create`, `get`, `list`, `iter`, `rename`, `delete` |
112
+ | `saved_queries` | `create`, `get`, `list`, `iter`, `update`, `rename`, `delete` |
113
113
  | `members` | `list`, `update_role`, `remove` |
114
114
  | `invitations` | `list`, `create`, `cancel` |
115
115
  | `api_keys` | `create`, `list`, `iter`, `revoke` |
@@ -1,22 +1,22 @@
1
- periplus_python_sdk-0.12.1.dist-info/licenses/licensing/LICENSE,sha256=DZak_2itbUtvHzD3E7GNUYSRK6jdOJ-GqncQ2weavLA,34523
2
- periplus_python_sdk-0.12.1.dist-info/licenses/licensing/NOTICE,sha256=W4W3pzZe-a0ebw4MxgWVmFGj7NSGL1qj8hFx4YG9iF0,105
3
- periplus_python_sdk-0.12.1.dist-info/licenses/licensing/README.md,sha256=NABTC2wm2Y9iRNMnlMeyVMA2dsAw7XRmCrsV1B2TQdk,1996
4
- periplus_python_sdk-0.12.1.dist-info/licenses/licensing/THIRD_PARTY_NOTICES.md,sha256=-egdv-dVsKhyRE2pPaHZgg4XYdpQfpH0VwM-sHYjUTg,9643
1
+ periplus_python_sdk-0.13.0.dist-info/licenses/licensing/LICENSE,sha256=DZak_2itbUtvHzD3E7GNUYSRK6jdOJ-GqncQ2weavLA,34523
2
+ periplus_python_sdk-0.13.0.dist-info/licenses/licensing/NOTICE,sha256=W4W3pzZe-a0ebw4MxgWVmFGj7NSGL1qj8hFx4YG9iF0,105
3
+ periplus_python_sdk-0.13.0.dist-info/licenses/licensing/README.md,sha256=NABTC2wm2Y9iRNMnlMeyVMA2dsAw7XRmCrsV1B2TQdk,1996
4
+ periplus_python_sdk-0.13.0.dist-info/licenses/licensing/THIRD_PARTY_NOTICES.md,sha256=-egdv-dVsKhyRE2pPaHZgg4XYdpQfpH0VwM-sHYjUTg,9643
5
5
  periplus_sdk/__init__.py,sha256=QzgQOvgN2YBTr6Vf65uCwKzAPjjnxsq4kdXy2XWxRAs,1020
6
- periplus_sdk/async_resources.py,sha256=iSs3w-T6iCbQroWHU4aplKqVlnB7MCUlEf_na0FPym8,20073
6
+ periplus_sdk/async_resources.py,sha256=APJ2S-5OsjLwkOzdl3N76yZXtCq8F49EiNlW4kZrRaw,20583
7
7
  periplus_sdk/async_stream.py,sha256=O5hO_w_-ooQuDV1fOZRX4Qei1-w7Wri8eIlsn3yCpGQ,4592
8
8
  periplus_sdk/client.py,sha256=zVt1uso8LXQuwjVjOz3Nm9PH8bCAv1ZwLbuAvSj5BAI,15592
9
9
  periplus_sdk/dbapi.py,sha256=dkJA-DkrMtcgMGjLQ5Vv8-pb6riRrAaG4Yqrn22uRZY,12064
10
10
  periplus_sdk/errors.py,sha256=nnbmRzEu1GEFGeKNsLqEo6pHCFu0oFy__5t-yBLO2hw,965
11
11
  periplus_sdk/py.typed,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
12
- periplus_sdk/resources.py,sha256=JX7UEs4aHx_n2yErFdnDqaRHrsJtFSrWfSw1EaFm0vA,19680
12
+ periplus_sdk/resources.py,sha256=Ui08saEs6cUgDttGU7R_VBLDQmFUmk5xJ07uNS3Db2E,20178
13
13
  periplus_sdk/resources_types.py,sha256=_UBaTWaut8xq9jDcrJKZdswTDFjSi179P7V6LFjOhQU,8949
14
14
  periplus_sdk/sql_api.py,sha256=uUWdwMRSZFMNXXy3-yLozcuT6WluvT6BTjYDB0lNrAU,1917
15
15
  periplus_sdk/sqlalchemy.py,sha256=XE_OzdDh9OZ8goWWRoKlBzp7Q0FM-eS9-hjH7Ofzy-E,6292
16
16
  periplus_sdk/stream.py,sha256=6Ytb6FkP3Y5C4sDA_SDdU0MJHBQdgHde1lNM6YxHdIQ,5560
17
17
  periplus_sdk/types.py,sha256=TSaQRjN5vng_yV4hjZV03s5sU_RHL874qJe40-Hb1KQ,3644
18
- periplus_python_sdk-0.12.1.dist-info/METADATA,sha256=IbyLcCvef30Umg7LyHPed2lyKRzBPGKsnDTdiKLIN_U,9198
19
- periplus_python_sdk-0.12.1.dist-info/WHEEL,sha256=YVMoNqKzERt-wjUZwJ33xBGAwnFl-4cqbYkTtWa4itE,91
20
- periplus_python_sdk-0.12.1.dist-info/entry_points.txt,sha256=Pr14L_7AhLinq-4qDxB4awFVubrvR1BEfkaFVRpdCbU,73
21
- periplus_python_sdk-0.12.1.dist-info/top_level.txt,sha256=o41t5TzwgoxzSmbKoP6olWW1FyEAGWVYTjeoKadBK40,13
22
- periplus_python_sdk-0.12.1.dist-info/RECORD,,
18
+ periplus_python_sdk-0.13.0.dist-info/METADATA,sha256=j0tHG6yuYZ5l-Wnn1ZZIzH3x7CMFT7r4Lb40pB4EQgs,9208
19
+ periplus_python_sdk-0.13.0.dist-info/WHEEL,sha256=YVMoNqKzERt-wjUZwJ33xBGAwnFl-4cqbYkTtWa4itE,91
20
+ periplus_python_sdk-0.13.0.dist-info/entry_points.txt,sha256=Pr14L_7AhLinq-4qDxB4awFVubrvR1BEfkaFVRpdCbU,73
21
+ periplus_python_sdk-0.13.0.dist-info/top_level.txt,sha256=o41t5TzwgoxzSmbKoP6olWW1FyEAGWVYTjeoKadBK40,13
22
+ periplus_python_sdk-0.13.0.dist-info/RECORD,,
@@ -291,6 +291,13 @@ class SavedQueriesResource(PagedResource[SavedQuery]):
291
291
  return await self._client._resource_request("POST", "saved-queries", SavedQuery,
292
292
  json={"id": str(id or uuid4()), "name": name, "sql": sql})
293
293
 
294
+ async def update(self, id: str | UUID, *, name: str | None = None, sql: str | None = None) -> SavedQuery:
295
+ """Revise the shared definition without executing SQL or changing pinned results."""
296
+ payload = {key: value for key, value in {"name": name, "sql": sql}.items() if value is not None}
297
+ if not payload:
298
+ raise ValueError("Supply name, sql, or both")
299
+ return await self._client._resource_request("PATCH", f"saved-queries/{path_id(id)}", SavedQuery, json=payload)
300
+
294
301
  async def rename(self, id: str | UUID, *, name: str) -> SavedQuery:
295
302
  return await self._client._resource_request("PATCH", f"saved-queries/{path_id(id)}", SavedQuery, json={"name": name})
296
303
 
periplus_sdk/resources.py CHANGED
@@ -292,6 +292,13 @@ class SavedQueriesResource(PagedResource[SavedQuery]):
292
292
  return self._client._resource_request("POST", "saved-queries", SavedQuery,
293
293
  json={"id": str(id or uuid4()), "name": name, "sql": sql})
294
294
 
295
+ def update(self, id: str | UUID, *, name: str | None = None, sql: str | None = None) -> SavedQuery:
296
+ """Revise the shared definition without executing SQL or changing pinned results."""
297
+ payload = {key: value for key, value in {"name": name, "sql": sql}.items() if value is not None}
298
+ if not payload:
299
+ raise ValueError("Supply name, sql, or both")
300
+ return self._client._resource_request("PATCH", f"saved-queries/{path_id(id)}", SavedQuery, json=payload)
301
+
295
302
  def rename(self, id: str | UUID, *, name: str) -> SavedQuery:
296
303
  return self._client._resource_request("PATCH", f"saved-queries/{path_id(id)}", SavedQuery, json={"name": name})
297
304