Skip to content

PyGlove v0.4.3

Compare
Choose a tag to compare
@daiyip daiyip released this 13 Sep 23:14
· 60 commits to main since this release

This release contains major updates on pg.symbolic and pg.typing.

Enhancements

  • pg.symbolic

    • (Major)pg.to_json/pg.from_json: supported serialization of Python types, annotations, functions/methods and opaque objects (6529a3c, 7777e8f, 4911073)
    • (Major) Added pg.Inferential for symbolic value inference (5ef667c).
    • (Major) Added symbolic reference pg.Ref, which allows referencing symbolic values in a symbolic tree (b28dc68).
    • pg.Functor: supported functor creation through subclasssing (4950819).
    • pg.Symbolic.rebind: supported notify_parents flag (cd0029c).
    • pg.symbolic.Origin: added root property and history method (2686b29).
    • pg.Symbolic.sym_*: have consistent value for default (90afe73).
  • pg.typing

    • (Major) pg.typing.ValueSpec can be used as a drop-in replacement for standard Python annotations. E.g. pg.typing.List[int] (ddbade7, c2eca16, 79ec73).
    • (Major) pg.Schema, pg.typing.Field and pg.typing.KeySpec and pg.typing.ValueSpec are now serializable (7777e8f).
    • Added pg.typing.Annotated, pg.typing.Sequence and pg.typing.Optional (ddbade7).
    • Added pg.typing.ValueSpec.transform for transforming the user input values during apply (a83c2ee, 0a9b034).
    • Added pg.typing.callable_eq for comparing two callable objects (7777e8f).
    • Added implicit conversion from int to float (caa3c93)
  • pg.object_utils

    • pg.format: supported include_keys argument (6703406).
    • pg.object_utils.thread_local_value_scope: fixed an unexpected behavior when all items in the stack are poped up (a560ff7).
    • Added pg.catch_errors context manager (a438fc0).

Bug Fixes

  • pg.symbolic

    • pg.Object.from_json: propagate allow_partial flag to child. (1cc5aab)
  • pg.typing

    • pg.typing.ForwardRef: fixed issue during deep copying (ddbade7).
  • pg.ext.early_stopping

    • Fix an issue in state recovery for pg.early_stopping.StepWise (808ca8e).

Deprecated/Renamed APIs

  • pg.symbolic

    • Renamed pg.Object.schema to pg.Object.__schema__, pg.Object.type_name to pg.Object.__type_name__, pg.Object.serialization_key to pg.JSONConvertible.__serialization_key__ (bdffd58)
    • Renamed pg.Functor.signature to pg.Functor.__signature__.
    • Removed pg.ContextualValue, pg.symbolic.GetAttributeContext, pg.Symbolic.sym_contextual_getattr/hasattr (5ef667c).
  • pg.typing

    • Merged pg.typing.get_first_applicable_converter into pg.typing.get_converter (dd1c253).