Changing to JSON:API format!
Added
- `fields` folder containing all fields used internally.
- `views` folder containing all models for communicating with the API.
- `jsonrpc` folder containing all network functionality for the `ClarifyClient`.
- `pyclarify.query.filter.DataFilter` for filtering on DataFrames.
- `pyclarify.client.Client.data_frame()` for selecting DataFrames.
Changed
- `pyclarify.client.ClarifyClient` renamed to `pyclarify.client.Client`
- Moved `ResourceQuery` and `DataQuery` models to `pyclarify.query.query`.
- Moved `Comparison` and `Operators` to `pyclarify.fields.query`.
- Moved `DataFrame` and all sub methods to `pyclarify.views.dataframe`.
- `merge`, `to_pandas` and `from_pandas` methods are now class methods on the `pyclarify.views.DataFrame` class.
python
from pyclarify import DataFrame
series = {"signal_1" : [1, 2]}
times = ["2021-11-01T21:50:06Z", "2021-11-02T21:50:06Z"]
df = DataFrame(series=series, times=times)
panda_df = df.to_pandas()
new_df = DataFrame.from_pandas(panda_df)
merged = DataFrame.merge([df, new_df])
- `pyclarify.client.Client.select_items()` now responds with `JSON:API` format, and does not retrieve data frames.
python
client.select_items(
filter = query.Filter(fields={"name": query.NotEqual(value="Air Temperature")}),
skip = 0,
limit = 10,
sort = ["-id", "name"],
total=True
)
- `pyclarify.client.Client.select_signals()` replaced `pyclarify.client.ClarifyClient.select_signals_filter()`.
- `pyclarify.client.Client.select_signals()` now responds with `JSON:API` format.
python
client.select_signals(
filter = Filter(fields={"name": filter.NotEqual(value="Air Temperature")}),
limit = 10,
skip = 0,
sort = ["-id"],
total= True,
include = ["item"]
)
- `GetToken` method renamed to `Authenticator`.
- `pyclarify.jsonrpc.pagination.ItemIterator` renamed to `SelectIterator` and now paginates `select_signals`, `select_items` and `data_frame` methods.
- Fix bug where timestamps was not timezone aware.
- Fix bug where pagination was not applied correctly.
Removed
- `pyclarify.client.APIClient`
- `pyclarify.client.Client.get_token()`
- `pyclarify.client.Client.select_items_metadata()`
- `pyclarify.client.Client.select_items_data()`
- `pyclarify.client.Client.select_signals_filter()`