Changelog#

v1.7.1 (2023-09-22)#

Fix#

Documentation#

v1.7.0 (2023-09-05)#

Feature#

  • Async support for subgrounds (+ more) (#36) (929a882)

  • Ability to create custom clients via SubgroundsBase

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#

v1.6.0 (2023-05-25)#

Feature#

  • Add helpers for accessing the playgrounds gateway (#21) (e44aee6)

Documentation#

  • Add open in colab button (02ff722)

  • Add gateway notebook as another example (98eab32)

  • Adjust example notebook for colab (6210556)

  • Adjust wording in example notebook (357c6d8)

  • Add example notebook + swap binder for colab (06cc728)

  • Add CI status badge to README.md (4c6dca9)

  • Broken link in README (#19) (211f965)

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#

  • Add all as an extra install (f1adacf)

  • subgrounds[pyodide] patching for requests (7293262)

  • Add plotly as an extra (058e28d)

Fix#

v1.4.0 (2023-04-13)#

Feature#

  • subgrounds.contrib.dash and subgrounds.contrib.plotly (f1d79e8)

Fix#

  • Headers bugs w/ non-subgraph apis (7749f8f)

  • Update examples to user modern subgrounds (6e14b89)

Documentation#

  • Adjust wording (501b480)

  • Add extra details about contrib and deprecation (6a7bbec)

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#

  • Query.map had no default value for priority (#12) (82a5f29)

Documentation#

  • Update README.md (dcea873)

  • Update design goals to features (6abecc6)

v1.1.1 (2023-03-03)#

Fix#

v1.1.0 (2023-03-03)#

Feature#

  • Export more symbols to subgrounds (3c59fe9)

Documentation#

  • Add description about testing (f2231c2)

  • Migrated docs/ and clean up (9deca3b)

  • Add CONTRIBUTING.md + README.md edits (2218d47)

  • Trigger docs flow (removed some files) (1ee17e5)

  • Simplify contributing cmds (#3) (0b4f3a2)

v1.0.3 (2022-08-08)#

Fix#

  • Issue causing null object in SyntheticFields

v1.0.2 (2022-10-30)#

Fix#

  • Update SchemaMeta to Pydantic model for extra validation

v1.0.1 (2022-08-08)#

Fix#

  • Schema cache directory path

  • where filter getting dropped during pagination

v1.0.0 (2022-07-25)#

Description#

This release overhauls how pagination is performed in Subgrounds.

BREAKING CHANGES#

  • The auto_paginate argument of toplevel querying functions has been replaced by the pagination_strategy argument (setting the latter to None disables 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 than LegacyStrategy in 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 FieldPath object (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_iter

    • query -> query_iter

    • query_json -> query_json_iter

    • execute -> execute_iter

  • Add option to set subgraph schema cache directory in load_subgraph and load_api.

    • Defaults to ./schemas/

  • Add useful SyntheticField helper datetime_of_timestamp

  • Subgrounds class can now be imported from toplevel module: from subgrounds import Subgrounds

  • Add SyntheticField.datetime_of_timestamp helper function to easily create a SyntheticField that converts a Unix timestamp into a human readable datetime string

  • Add SyntheticField.map helper function to easily create a "map" SyntheticField from a dictionary

Fix#

  • Fix bug that caused some queries to fail with automatic pagination enabled

Chore#

  • Migrate package manager from pipenv to poetry

  • Migrate docs from plain sphinx to mudkip

  • Made dash an optional extra dependency.

    • To use Subgrounds dash and plotly wrappers, run pip 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_api

    • Allows you to safely query non-subgraph GrahpQL APIs with Subgrounds!

  • New boolean flag argument, auto_paginate, in Subgrounds.query, Subgrounds.query_json and Subgrounds.query_df

    • Selectively disable automatic pagination

Documentation#

  • Refactor, cleanup and add tons of docstrings