Changelog#
v1.9.0 (2024-06-18)#
Feature#
chore: Bump deps, might consider >= in the future (
9e4a5b8)
v1.8.3 (2024-06-10)#
Fix#
v1.8.2 (2024-06-10)#
Fix#
v1.8.1 (2023-11-10)#
Fix#
Documentation#
v1.8.0 (2023-10-10)#
Feature#
v1.7.1 (2023-09-22)#
Fix#
Documentation#
Update CHANGELOG.md (
7ef0876)
v1.7.0 (2023-09-05)#
Feature#
Changes#
The entirety of how subgrounds coordinates the production, transformation, and pagination of requests has been completely reworked from the ground up.
Instead of a recursive call stack, transformation and pagination is lazily computed.
Then, a client (implementing
SubgroundsBase), drives the actual processing of requests/responses until completion.
Subgrounds models the sans-io approach to handling requests
This means subgrounds is untangled from actually making IO
This has enabled custom clients, allowing anyone to customize subgrounds interface.
Various rewrites, reworks, and improvements to documentation.
v1.6.1 (2023-08-01)#
Fix#
Documentation#
Update README links (
f271706)
v1.6.0 (2023-05-25)#
Feature#
Documentation#
v1.5.2 (2023-05-17)#
Fix#
Nested orderBy working with DSL (
7e320e8)
v1.5.1 (2023-05-15)#
Fix#
Documentation#
v1.5.0 (2023-04-25)#
Feature#
Fix#
v1.4.0 (2023-04-13)#
Feature#
subgrounds.contrib.dashandsubgrounds.contrib.plotly(f1d79e8)
Fix#
Documentation#
v1.3.0 (2023-04-07)#
Feature#
Add specific error models (
6218076)
v1.2.0 (2023-04-02)#
Feature#
Documentation#
Fix changelog formatting (
7f8a630)
v1.1.2 (2023-03-15)#
Fix#
Documentation#
v1.1.1 (2023-03-03)#
Fix#
Bump version (
40004c0)
v1.1.0 (2023-03-03)#
Feature#
Export more symbols to
subgrounds(3c59fe9)
Documentation#
v1.0.3 (2022-08-08)#
Fix#
Issue causing null object in
SyntheticFields
v1.0.2 (2022-10-30)#
Fix#
Update
SchemaMetatoPydanticmodel for extra validation
v1.0.1 (2022-08-08)#
Fix#
Schema cache directory path
wherefilter getting dropped during pagination
v1.0.0 (2022-07-25)#
Description#
This release overhauls how pagination is performed in Subgrounds.
BREAKING CHANGES#
The
auto_paginateargument of toplevel querying functions has been replaced by thepagination_strategyargument (setting the latter toNonedisables pagination).
Feature#
Subgrounds users can now define and use their own pagination strategy (see Custom pagination strategy for more details).
Users select the pagination strategies to use when calling toplevel querying functions:
df = sg.query_df(field_paths, pagination_strategy=MyPaginationStrategy)
Subgrounds provides two pagination strategies out of the box:
LegacyStrategy(the strategy used prior to this update)ShallowStrategy, which is much faster thanLegacyStrategyin some cases, but does not support pagination on nested fields (see Available pagination strategies for more details).
Fix#
Fix bug that would cause a crash when calling one of the toplevel querying functions with only one
FieldPathobject (e.g.:sg.query_df(pairs.id)).
v0.2.0 (2023-06-23)#
Feature#
Iterative versions of toplevel querying functions to allow developers to process queried data page by page when automatic pagination returns more than one page
query_df->query_df_iterquery->query_iterquery_json->query_json_iterexecute->execute_iter
Add option to set subgraph schema cache directory in
load_subgraphandload_api.Defaults to
./schemas/
Add useful
SyntheticFieldhelperdatetime_of_timestampSubgroundsclass can now be imported from toplevel module:from subgrounds import SubgroundsAdd
SyntheticField.datetime_of_timestamphelper function to easily create aSyntheticFieldthat converts a Unix timestamp into a human readable datetime stringAdd
SyntheticField.maphelper function to easily create a "map"SyntheticFieldfrom a dictionary
Fix#
Fix bug that caused some queries to fail with automatic pagination enabled
Chore#
Migrate package manager from
pipenvtopoetryMigrate docs from plain
sphinxtomudkipMade
dashan optional extra dependency.To use Subgrounds
dashandplotlywrappers, runpip install subgrounds[dash]
v0.1.1 (2022-04-29)#
Fix#
Scalar lists were not handled properly
v0.1.0 (2022-04-27)#
Feature#
Partial fieldpaths
Querying partial fieldpaths will automatically select all non-list fields of the fieldpath leaf.
For example, using the Ribbon V2 subgraph, the following Subgrounds query:
sg.query_df([ ribbon.Query.vaults ])
will result in the following query being made to the subgraph:
query { vaults { id name symbol underlyingAsset underlyingName underlyingSymbol underlyingDecimals totalPremiumEarned totalNominalVolume totalNotionalVolume numDepositors totalBalance cap round performanceFeeCollected managementFeeCollected totalFeeCollected } }
Code completion
When using Subgrounds in Jupyter notebooks and a subgraph has been loaded in a previous cell, fieldpaths will now autocomplete.
v0.0.9 (2023-03-29)#
Feature#
Subgrounds.load_apiAllows you to safely query non-subgraph GrahpQL APIs with Subgrounds!
New boolean flag argument,
auto_paginate, inSubgrounds.query,Subgrounds.query_jsonandSubgrounds.query_dfSelectively disable automatic pagination
Documentation#
Refactor, cleanup and add tons of docstrings