Polywrap Client Config Builder
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)
Metadata
Release files for polywrap-client-config-builder 0.1.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| polywrap_client_config_builder-0.1.2.tar.gz | 7.7 kB | Without provenance | Details for polywrap_client_config_builder-0.1.2.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| polywrap_client_config_builder-0.1.2-py3-none-any.whl | Python 3 | none | any | Details for polywrap_client_config_builder-0.1.2-py3-none-any.whl |
Total release size: 21.5 kB
Release files / polywrap_client_config_builder-0.1.2.tar.gz
| Download URL | polywrap_client_config_builder-0.1.2.tar.gz |
|---|---|
| Size | 7.7 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
2107dd073a66d6fee2747deafe25e416679036cbc904def9be4b6aa03c1c9561
|
|
BLAKE2b-256 checksum How to use checksums |
98a733c1320ae54720aaada71d34a0ca197ce0347645dee08bfca01481e52188
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
poetry/1.6.1 CPython/3.10.13 Darwin/22.6.0
|
Release files / polywrap_client_config_builder-0.1.2-py3-none-any.whl
| Download URL | polywrap_client_config_builder-0.1.2-py3-none-any.whl |
|---|---|
| Size | 13.8 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
4ca359a7f5ff39e7daba54cfd948df0797e04942ebaf76a5074c5bddde73d458
|
|
BLAKE2b-256 checksum How to use checksums |
fb512c05869ac606da98b002fe48e6064029fa190ac3c718ae30dc902e8ad2ec
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
poetry/1.6.1 CPython/3.10.13 Darwin/22.6.0
|
Security for polywrap-client-config-builder 0.1.2
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.