vanda-api 1.0.2__tar.gz → 1.0.3__tar.gz
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.
- {vanda_api-1.0.2 → vanda_api-1.0.3}/PKG-INFO +1 -83
- {vanda_api-1.0.2 → vanda_api-1.0.3}/README.md +0 -82
- {vanda_api-1.0.2 → vanda_api-1.0.3}/pyproject.toml +1 -1
- {vanda_api-1.0.2 → vanda_api-1.0.3}/src/vanda/__init__.py +1 -1
- {vanda_api-1.0.2 → vanda_api-1.0.3}/.gitignore +0 -0
- {vanda_api-1.0.2 → vanda_api-1.0.3}/CHANGELOG.md +0 -0
- {vanda_api-1.0.2 → vanda_api-1.0.3}/LICENSE +0 -0
- {vanda_api-1.0.2 → vanda_api-1.0.3}/src/vanda/_base/__init__.py +0 -0
- {vanda_api-1.0.2 → vanda_api-1.0.3}/src/vanda/_base/async_base_client.py +0 -0
- {vanda_api-1.0.2 → vanda_api-1.0.3}/src/vanda/_base/base_client.py +0 -0
- {vanda_api-1.0.2 → vanda_api-1.0.3}/src/vanda/async_auth.py +0 -0
- {vanda_api-1.0.2 → vanda_api-1.0.3}/src/vanda/async_client.py +0 -0
- {vanda_api-1.0.2 → vanda_api-1.0.3}/src/vanda/auth.py +0 -0
- {vanda_api-1.0.2 → vanda_api-1.0.3}/src/vanda/client.py +0 -0
- {vanda_api-1.0.2 → vanda_api-1.0.3}/src/vanda/errors.py +0 -0
- {vanda_api-1.0.2 → vanda_api-1.0.3}/src/vanda/models.py +0 -0
- {vanda_api-1.0.2 → vanda_api-1.0.3}/src/vanda/retry.py +0 -0
- {vanda_api-1.0.2 → vanda_api-1.0.3}/src/vanda/services/__init__.py +0 -0
- {vanda_api-1.0.2 → vanda_api-1.0.3}/src/vanda/services/aggregates.py +0 -0
- {vanda_api-1.0.2 → vanda_api-1.0.3}/src/vanda/services/async_aggregates.py +0 -0
- {vanda_api-1.0.2 → vanda_api-1.0.3}/src/vanda/services/async_series.py +0 -0
- {vanda_api-1.0.2 → vanda_api-1.0.3}/src/vanda/services/series.py +0 -0
- {vanda_api-1.0.2 → vanda_api-1.0.3}/src/vanda/utils/__init__.py +0 -0
- {vanda_api-1.0.2 → vanda_api-1.0.3}/src/vanda/utils/dates.py +0 -0
- {vanda_api-1.0.2 → vanda_api-1.0.3}/src/vanda/utils/deprecation.py +0 -0
- {vanda_api-1.0.2 → vanda_api-1.0.3}/src/vanda/utils/io.py +0 -0
- {vanda_api-1.0.2 → vanda_api-1.0.3}/src/vanda/utils/normalize.py +0 -0
- {vanda_api-1.0.2 → vanda_api-1.0.3}/tests/__init__.py +0 -0
- {vanda_api-1.0.2 → vanda_api-1.0.3}/tests/test_aggregates_client.py +0 -0
- {vanda_api-1.0.2 → vanda_api-1.0.3}/tests/test_async_aggregates_client.py +0 -0
- {vanda_api-1.0.2 → vanda_api-1.0.3}/tests/test_async_series_client.py +0 -0
- {vanda_api-1.0.2 → vanda_api-1.0.3}/tests/test_auth.py +0 -0
- {vanda_api-1.0.2 → vanda_api-1.0.3}/tests/test_dates.py +0 -0
- {vanda_api-1.0.2 → vanda_api-1.0.3}/tests/test_normalize.py +0 -0
- {vanda_api-1.0.2 → vanda_api-1.0.3}/tests/test_retry.py +0 -0
- {vanda_api-1.0.2 → vanda_api-1.0.3}/tests/test_series_client.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.5
|
|
2
2
|
Name: vanda-api
|
|
3
|
-
Version: 1.0.
|
|
3
|
+
Version: 1.0.3
|
|
4
4
|
Summary: Official Python SDK for Vanda Analytics Data API
|
|
5
5
|
Project-URL: Homepage, https://gitlab.com/yourusername/vanda-api
|
|
6
6
|
Project-URL: Documentation, https://gitlab.com/yourusername/vanda-api#readme
|
|
@@ -288,88 +288,6 @@ client = VandaClient(email="your_email@example.com", password="your_password")
|
|
|
288
288
|
- `get_timeseries()` - Get timeseries for multiple aggregate id's
|
|
289
289
|
- `get_constituents()` - Get constituents using Vanda identifier
|
|
290
290
|
|
|
291
|
-
### Positioning Data
|
|
292
|
-
|
|
293
|
-
Accessed via `client.positioning`.
|
|
294
|
-
|
|
295
|
-
- `get_timeseries()` - Get positioning timeseries for one or more series
|
|
296
|
-
- `get_latest()` - Get the latest reading per series, with its crowding signal
|
|
297
|
-
- `export_timeseries()` - Export positioning timeseries to file
|
|
298
|
-
- `list_catalog()` - Search the catalog and filter by dimension
|
|
299
|
-
|
|
300
|
-
```python
|
|
301
|
-
from vanda import VandaClient
|
|
302
|
-
|
|
303
|
-
with VandaClient(token="YOUR_TOKEN_HERE") as client:
|
|
304
|
-
catalog = client.positioning.list_catalog(sector="Energy", records_per_page=5)
|
|
305
|
-
series_label = catalog["data"][0]["identity"]["series_label"]
|
|
306
|
-
|
|
307
|
-
data = client.positioning.get_timeseries(
|
|
308
|
-
series_ids=series_label,
|
|
309
|
-
start_date="2025-01-01",
|
|
310
|
-
end_date="2025-12-31",
|
|
311
|
-
)
|
|
312
|
-
print(data["count"], data["pagination"])
|
|
313
|
-
```
|
|
314
|
-
|
|
315
|
-
Responses keep their envelope: alongside `data` you get `count`, `metric`,
|
|
316
|
-
`revision`, `series_ids`, `version` and `pagination`. Use `pagination` to page -
|
|
317
|
-
`records_per_page` defaults to 2000 and is capped by your access tier.
|
|
318
|
-
|
|
319
|
-
Unlike aggregates, positioning does not accept `normalisation` /
|
|
320
|
-
`normalisation_period`; its values are already z-scores. `transformation` and
|
|
321
|
-
`window` must be passed together.
|
|
322
|
-
|
|
323
|
-
### Flow Data
|
|
324
|
-
|
|
325
|
-
Accessed via `client.flow`.
|
|
326
|
-
|
|
327
|
-
- `get_timeseries()` - Get flow timeseries for one or more series
|
|
328
|
-
- `get_latest()` - Get the latest observation per series
|
|
329
|
-
- `export_timeseries()` - Export flow timeseries to file
|
|
330
|
-
- `list_catalog()` - Search the catalog and filter by dimension
|
|
331
|
-
|
|
332
|
-
```python
|
|
333
|
-
from vanda import VandaClient
|
|
334
|
-
|
|
335
|
-
with VandaClient(token="YOUR_TOKEN_HERE") as client:
|
|
336
|
-
catalog = client.flow.list_catalog(metric="net", records_per_page=5)
|
|
337
|
-
|
|
338
|
-
# Catalog entries are keyed by series_label. Read `series` for anything
|
|
339
|
-
# per-series, and address series by `slug` - `series_id` changes when the
|
|
340
|
-
# pipeline reloads.
|
|
341
|
-
slug = catalog["data"][0]["series"][0]["slug"]
|
|
342
|
-
|
|
343
|
-
data = client.flow.get_timeseries(
|
|
344
|
-
series_ids=slug,
|
|
345
|
-
metrics=["net", "buy"],
|
|
346
|
-
start_date="2026-01-01",
|
|
347
|
-
end_date="2026-08-03",
|
|
348
|
-
)
|
|
349
|
-
print(data["metrics"], data["unresolved"], data["pagination"])
|
|
350
|
-
```
|
|
351
|
-
|
|
352
|
-
`series_ids`, `metrics` and `frequency` accept either a comma-separated string
|
|
353
|
-
or a sequence. Identifiers that matched nothing are reported in `unresolved`
|
|
354
|
-
rather than failing the request, so check it before treating a short result as
|
|
355
|
-
complete.
|
|
356
|
-
|
|
357
|
-
Unlike positioning, flow accepts `normalisation` / `normalisation_period` - each
|
|
358
|
-
must be passed with its partner, as must `transformation` / `window`. A
|
|
359
|
-
transformation has to resolve to exactly one series.
|
|
360
|
-
|
|
361
|
-
For both services, if the transformation service is unavailable the
|
|
362
|
-
untransformed rows are returned with `transformation.status` set to `"Failure"`
|
|
363
|
-
rather than raising:
|
|
364
|
-
|
|
365
|
-
```python
|
|
366
|
-
data = client.flow.get_timeseries(
|
|
367
|
-
series_ids=slug, transformation="moving_avg", window="20"
|
|
368
|
-
)
|
|
369
|
-
if data["transformation"]["status"] == "Failure":
|
|
370
|
-
print("untransformed:", data["transformation"]["detail"])
|
|
371
|
-
```
|
|
372
|
-
|
|
373
291
|
## Examples
|
|
374
292
|
|
|
375
293
|
See `examples/` directory for complete usage examples.
|
|
@@ -250,88 +250,6 @@ client = VandaClient(email="your_email@example.com", password="your_password")
|
|
|
250
250
|
- `get_timeseries()` - Get timeseries for multiple aggregate id's
|
|
251
251
|
- `get_constituents()` - Get constituents using Vanda identifier
|
|
252
252
|
|
|
253
|
-
### Positioning Data
|
|
254
|
-
|
|
255
|
-
Accessed via `client.positioning`.
|
|
256
|
-
|
|
257
|
-
- `get_timeseries()` - Get positioning timeseries for one or more series
|
|
258
|
-
- `get_latest()` - Get the latest reading per series, with its crowding signal
|
|
259
|
-
- `export_timeseries()` - Export positioning timeseries to file
|
|
260
|
-
- `list_catalog()` - Search the catalog and filter by dimension
|
|
261
|
-
|
|
262
|
-
```python
|
|
263
|
-
from vanda import VandaClient
|
|
264
|
-
|
|
265
|
-
with VandaClient(token="YOUR_TOKEN_HERE") as client:
|
|
266
|
-
catalog = client.positioning.list_catalog(sector="Energy", records_per_page=5)
|
|
267
|
-
series_label = catalog["data"][0]["identity"]["series_label"]
|
|
268
|
-
|
|
269
|
-
data = client.positioning.get_timeseries(
|
|
270
|
-
series_ids=series_label,
|
|
271
|
-
start_date="2025-01-01",
|
|
272
|
-
end_date="2025-12-31",
|
|
273
|
-
)
|
|
274
|
-
print(data["count"], data["pagination"])
|
|
275
|
-
```
|
|
276
|
-
|
|
277
|
-
Responses keep their envelope: alongside `data` you get `count`, `metric`,
|
|
278
|
-
`revision`, `series_ids`, `version` and `pagination`. Use `pagination` to page -
|
|
279
|
-
`records_per_page` defaults to 2000 and is capped by your access tier.
|
|
280
|
-
|
|
281
|
-
Unlike aggregates, positioning does not accept `normalisation` /
|
|
282
|
-
`normalisation_period`; its values are already z-scores. `transformation` and
|
|
283
|
-
`window` must be passed together.
|
|
284
|
-
|
|
285
|
-
### Flow Data
|
|
286
|
-
|
|
287
|
-
Accessed via `client.flow`.
|
|
288
|
-
|
|
289
|
-
- `get_timeseries()` - Get flow timeseries for one or more series
|
|
290
|
-
- `get_latest()` - Get the latest observation per series
|
|
291
|
-
- `export_timeseries()` - Export flow timeseries to file
|
|
292
|
-
- `list_catalog()` - Search the catalog and filter by dimension
|
|
293
|
-
|
|
294
|
-
```python
|
|
295
|
-
from vanda import VandaClient
|
|
296
|
-
|
|
297
|
-
with VandaClient(token="YOUR_TOKEN_HERE") as client:
|
|
298
|
-
catalog = client.flow.list_catalog(metric="net", records_per_page=5)
|
|
299
|
-
|
|
300
|
-
# Catalog entries are keyed by series_label. Read `series` for anything
|
|
301
|
-
# per-series, and address series by `slug` - `series_id` changes when the
|
|
302
|
-
# pipeline reloads.
|
|
303
|
-
slug = catalog["data"][0]["series"][0]["slug"]
|
|
304
|
-
|
|
305
|
-
data = client.flow.get_timeseries(
|
|
306
|
-
series_ids=slug,
|
|
307
|
-
metrics=["net", "buy"],
|
|
308
|
-
start_date="2026-01-01",
|
|
309
|
-
end_date="2026-08-03",
|
|
310
|
-
)
|
|
311
|
-
print(data["metrics"], data["unresolved"], data["pagination"])
|
|
312
|
-
```
|
|
313
|
-
|
|
314
|
-
`series_ids`, `metrics` and `frequency` accept either a comma-separated string
|
|
315
|
-
or a sequence. Identifiers that matched nothing are reported in `unresolved`
|
|
316
|
-
rather than failing the request, so check it before treating a short result as
|
|
317
|
-
complete.
|
|
318
|
-
|
|
319
|
-
Unlike positioning, flow accepts `normalisation` / `normalisation_period` - each
|
|
320
|
-
must be passed with its partner, as must `transformation` / `window`. A
|
|
321
|
-
transformation has to resolve to exactly one series.
|
|
322
|
-
|
|
323
|
-
For both services, if the transformation service is unavailable the
|
|
324
|
-
untransformed rows are returned with `transformation.status` set to `"Failure"`
|
|
325
|
-
rather than raising:
|
|
326
|
-
|
|
327
|
-
```python
|
|
328
|
-
data = client.flow.get_timeseries(
|
|
329
|
-
series_ids=slug, transformation="moving_avg", window="20"
|
|
330
|
-
)
|
|
331
|
-
if data["transformation"]["status"] == "Failure":
|
|
332
|
-
print("untransformed:", data["transformation"]["detail"])
|
|
333
|
-
```
|
|
334
|
-
|
|
335
253
|
## Examples
|
|
336
254
|
|
|
337
255
|
See `examples/` directory for complete usage examples.
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|