polywrap_client_config_builder.polywrap_client_config_builder module

This module provides a simple builder for building a ClientConfig object.

class polywrap_client_config_builder.polywrap_client_config_builder.PolywrapClientConfigBuilder[source]

Bases: BaseConfigure, EnvConfigure, InterfaceConfigure, PackageConfigure, RedirectConfigure, ResolverConfigure, WrapperConfigure, ClientConfigBuilder

Defines the default polywrap client config builder for building a ClientConfig object for the Polywrap Client.

The PolywrapClientConfigBuilder is used to create a ClientConfig object, which is used to configure the Polywrap Client and its sub-components. PolywrapClientConfigBuilder provides a simple interface for setting the redirects, wrappers, packages, and other configuration options for the Polywrap Client.

Examples

>>> from polywrap_client_config_builder import PolywrapClientConfigBuilder
>>> from polywrap_uri_resolvers import RecursiveResolver
>>> from polywrap_core import Uri
>>> config = (
...     PolywrapClientConfigBuilder()
...         .set_env(Uri.from_str("test/uri"), {"hello": "world"})
...         .add_interface_implementations(
...             Uri.from_str("test/interface"),
...             [Uri.from_str("test/impl1"), Uri.from_str("test/impl2")],
...         )
...         .set_redirect(Uri("test", "from"), Uri("test", "to"))
...         .set_env(Uri("test", "to"), {"foo": "bar"})
...         .build()
... )
>>> config.envs
{Uri("test", "uri"): {'hello': 'world'}, Uri("test", "to"): {'foo': 'bar'}}
>>> config.interfaces
{Uri("test", "interface"): [Uri("test", "impl1"), Uri("test", "impl2")]}
>>> isinstance(config.resolver, RecursiveResolver)
True
add_bundle(bundles: Dict[str, BundlePackage]) ClientConfigBuilder[source]

Add the bundle to the builder’s config.

build(options: BuildOptions | None = None) ClientConfig[source]

Build the ClientConfig object from the builder’s config.