PolywrapClientConfigBuilder - A utility class for building the PolywrapClient config.
Project description
This package contains modules related to ClientConfigBuilder - A utility class for building the PolywrapClient config.
PolywrapClientConfigBuilder Supports building configs using method chaining or imperatively.
Quickstart
Import
Import necessary modules
>>> from typing import cast >>> from polywrap_client_config_builder import ( ... PolywrapClientConfigBuilder, ... BuilderConfig, ... BuildOptions, ... ) >>> from polywrap_core import WrapPackage, Uri, ClientConfig >>> from polywrap_uri_resolvers import ( ... RedirectResolver, ... InMemoryResolutionResultCache, ... RecursiveResolver, ... ) >>> from polywrap_sys_config_bundle import sys_bundle >>> from polywrap_web3_config_bundle import web3_bundle
Initialize
Initialize a PolywrapClientConfigBuilder using the constructor
>>> # start with a blank slate (typical usage) >>> builder = PolywrapClientConfigBuilder()
Configure
Add client configuration with add, or flexibly mix and match builder configuration methods to add and remove configuration items.
Add multiple items to the configuration using the catch-all add method
>>> builder = builder.add( ... BuilderConfig( ... envs={}, ... interfaces={}, ... redirects={}, ... wrappers={}, ... packages={}, ... resolvers=[] ... ) ... )
Add or remove items by chaining method calls
>>> builder = ( ... builder ... .set_package(Uri.from_str("wrap://plugin/package"), cast(WrapPackage, NotImplemented)) ... .remove_package(Uri.from_str("wrap://plugin/package")) ... .set_packages( ... { ... Uri.from_str("wrap://plugin/http"): cast(WrapPackage, NotImplemented), ... Uri.from_str("wrap://plugin/filesystem"): cast(WrapPackage, NotImplemented), ... } ... ) ... ) >>> Uri.from_str("wrap://plugin/http") in builder.config.packages True >>> Uri.from_str("wrap://plugin/filesystem") in builder.config.packages True >>> Uri.from_str("wrap://plugin/package") in builder.config.packages False
Configure using sys config bundle to fetch wraps from file-system, ipfs, wrapscan, or http server
>>> from polywrap_sys_config_bundle import sys_bundle >>> builder = builder.add_bundle(sys_bundle)
Configure using web3 config bundle to fetch wraps from ens and any system URI
>>> from polywrap_web3_config_bundle import web3_bundle >>> builder = builder.add_bundle(web3_bundle)
Build
Finally, build a ClientConfig to pass to the PolywrapClient constructor.
Accepted by the PolywrapClient
>>> config = builder.build() >>> assert isinstance(config, ClientConfig) >>> assert isinstance(config.resolver, RecursiveResolver)
Build with a custom cache
>>> config = builder.build( ... BuildOptions( ... resolution_result_cache=InMemoryResolutionResultCache() ... ) ... ) >>> assert isinstance(config, ClientConfig) >>> assert isinstance(config.resolver, RecursiveResolver)
Or build with a custom resolver
>>> config = builder.build( ... BuildOptions( ... resolver=RedirectResolver( ... from_uri=Uri.from_str("wrap://test/from"), ... to_uri=Uri.from_str("wrap://test/to") ... ) ... ) ... ) >>> assert isinstance(config, ClientConfig) >>> assert isinstance(config.resolver, RedirectResolver)
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for polywrap_client_config_builder-0.1.0b8.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | f0add015c0a2588294d8b2118acb4b3f05506d2fc0cc11ab19eb10fe11aa5382 |
|
MD5 | 14b110e77585244455f86bd67c5c1776 |
|
BLAKE2b-256 | f71cda2ed93215bce4795d85dddbb77b0866d1e918a62c41cd1c5c6e4cc1d156 |
Hashes for polywrap_client_config_builder-0.1.0b8-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3bddff1b09f36c338960ed81bc3a12c6137f70a630192dd6e508f938b0f8fe2a |
|
MD5 | 00257060f4bb2618ca40dbbaec20880e |
|
BLAKE2b-256 | e5f4fe9e773139b15e9c24606cc5293e4f394166956064170a2b972659b9b8c2 |