pg.typing.Functor

Accessible via pg.typing.Functor.

class Functor(args=None, kw=None, returns=None, default=MISSING_VALUE, transform=None, is_noneable=False, frozen=False)[source]

Bases: pg.typing.Callable

Value spec for Functor.

Examples:

# A required PyGlove functor with any args.
pg.typing.Functor()

# An optional functor with the first argument as int, and the second
# argument as float. The field has None as its default value.
pg.typing.Functor([pg.typing.Int(), pg.typing.Float()]).noneable()

# A functor that has its first argument as int, and has keyword
# arguments 'x' (any type), 'y' (a str) and return value as int.
pg.typing.Functor(
    [pg.typing.Int()],
    kw=[
        ('x', pg.typing.Any()),
        ('y', pg.typing.Str())
    ],
    returns=pg.typing.Int())

See also: pg.typing.Callable.

Methods:

to_json(**kwargs)

Returns a plain Python value as a representation for this object.

to_json(**kwargs)[source]

Returns a plain Python value as a representation for this object.

A plain Python value are basic python types that can be serialized into JSON, e.g: bool, int, float, str, dict (with string keys), list, tuple where the container types should have plain Python values as their values.

Return type:

Dict[str, Any]

Parameters:

**kwargs – Keyword arguments as flags to control JSON conversion.

Returns:

A plain Python value.