Skip to content

Commit b20c6f1

Browse files
committed
feat: initial version of client-config-builder
1 parent 2274633 commit b20c6f1

7 files changed

Lines changed: 40 additions & 30 deletions

File tree

packages/polywrap-client-config-builder/poetry.lock

Lines changed: 7 additions & 7 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

packages/polywrap-client-config-builder/polywrap_client_config_builder/client_config_builder.py

Lines changed: 15 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -3,26 +3,25 @@
33
from typing import Any, Dict, List, Optional, cast
44

55
from polywrap_core import (
6+
ClientConfig,
67
Env,
78
Uri,
89
UriPackage,
9-
UriWrapper,
1010
UriPackageOrWrapper,
11-
Wrapper,
12-
WrapPackage,
1311
UriResolver,
14-
ClientConfig
12+
UriWrapper,
13+
WrapPackage,
14+
Wrapper,
1515
)
16-
1716
from polywrap_uri_resolvers import (
17+
ExtendableUriResolver,
18+
InMemoryWrapperCache,
19+
PackageToWrapperResolver,
1820
RecursiveResolver,
1921
RequestSynchronizerResolver,
20-
WrapperCacheResolver,
21-
PackageToWrapperResolver,
2222
StaticResolver,
23-
ExtendableUriResolver,
24-
InMemoryWrapperCache,
2523
UriResolverAggregator,
24+
WrapperCacheResolver,
2625
)
2726

2827
from .types import BuilderConfig, BuildOptions
@@ -31,9 +30,11 @@
3130
class ClientConfigBuilder:
3231
"""Defines a simple builder for building a ClientConfig object.
3332
34-
The ClientConfigBuilder is used to create a ClientConfig object, which is used to configure
35-
the Polywrap Client and its sub-components. ClientConfigBuilder provides a simple interface
36-
for setting the redirects, wrappers, packages, and other configuration options for the Polywrap Client.
33+
The ClientConfigBuilder is used to create a ClientConfig object,\
34+
which is used to configure the Polywrap Client and its sub-components.\
35+
ClientConfigBuilder provides a simple interface for setting\
36+
the redirects, wrappers, packages, and other configuration options\
37+
for the Polywrap Client.
3738
"""
3839

3940
def __init__(self):
@@ -134,7 +135,7 @@ def add_interface_implementations(
134135
return self
135136

136137
def add_wrapper(self, uri: Uri, wrapper: Wrapper[UriPackageOrWrapper]):
137-
"""Add a wrapper by its URI to the builder's config"""
138+
"""Add a wrapper by its URI to the builder's config."""
138139
self.config.wrappers[uri] = wrapper
139140
return self
140141

@@ -150,7 +151,7 @@ def remove_wrapper(self, uri: Uri):
150151
return self
151152

152153
def remove_wrappers(self, uris: List[Uri]):
153-
"""Remove a list of wrappers by its URIs"""
154+
"""Remove a list of wrappers by its URIs."""
154155
for uri in uris:
155156
self.remove_wrapper(uri)
156157
return self

packages/polywrap-client-config-builder/polywrap_client_config_builder/types/__init__.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,3 @@
1+
"""This package contains types related to client config builder."""
2+
from .build_options import *
13
from .builder_config import *
2-
from .build_options import *

packages/polywrap-client-config-builder/polywrap_client_config_builder/types/build_options.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
1+
"""This module contains the BuildOptions class."""
12
from dataclasses import dataclass
23
from typing import Optional
34

45
from polywrap_core import UriResolver
5-
66
from polywrap_uri_resolvers import WrapperCache
77

88

packages/polywrap-client-config-builder/polywrap_client_config_builder/types/builder_config.py

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,8 @@
1+
"""This module contains the BuilderConfig class."""
12
from dataclasses import dataclass
23
from typing import Any, Dict, List
34

4-
from polywrap_core import (
5-
Uri,
6-
UriPackageOrWrapper,
7-
UriResolver,
8-
WrapPackage,
9-
Wrapper
10-
)
5+
from polywrap_core import Uri, UriPackageOrWrapper, UriResolver, WrapPackage, Wrapper
116

127

138
@dataclass(slots=True, kw_only=True)

packages/polywrap-client-config-builder/pyproject.toml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,7 @@ testpaths = [
4444
[tool.pylint]
4545
disable = [
4646
"too-many-return-statements",
47+
"too-many-public-methods",
4748
]
4849
ignore = [
4950
"tests/"
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
from polywrap_core import Uri
2+
from polywrap_client_config_builder import ClientConfigBuilder
3+
4+
5+
def test_sanity():
6+
config = (
7+
ClientConfigBuilder()
8+
.add_env(Uri.from_str("ens/hello.eth"), {"hello": "world"})
9+
.build()
10+
)
11+
12+
assert config.envs[Uri.from_str("ens/hello.eth")]["hello"] == "world"

0 commit comments

Comments
 (0)