Skip to content

Commit 6cfcb90

Browse files
committed
get_client_async => get_async_client and typing for couritines
Signed-off-by: leohoare <[email protected]>
1 parent e124794 commit 6cfcb90

File tree

7 files changed

+41
-33
lines changed

7 files changed

+41
-33
lines changed

openfeature/api.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ def get_client(
3939
return OpenFeatureClient(domain=domain, version=version)
4040

4141

42-
def get_client_async(
42+
def get_async_client(
4343
domain: typing.Optional[str] = None, version: typing.Optional[str] = None
4444
) -> AsyncOpenFeatureClient:
4545
return AsyncOpenFeatureClient(domain=domain, version=version)

openfeature/client.py

Lines changed: 14 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -473,7 +473,7 @@ async def get_boolean_value(
473473
default_value: bool,
474474
evaluation_context: typing.Optional[EvaluationContext] = None,
475475
flag_evaluation_options: typing.Optional[FlagEvaluationOptions] = None,
476-
) -> bool:
476+
) -> typing.Coroutine[typing.Any, typing.Any, bool]:
477477
details = await self.get_boolean_details(
478478
flag_key,
479479
default_value,
@@ -488,7 +488,7 @@ async def get_boolean_details(
488488
default_value: bool,
489489
evaluation_context: typing.Optional[EvaluationContext] = None,
490490
flag_evaluation_options: typing.Optional[FlagEvaluationOptions] = None,
491-
) -> FlagEvaluationDetails[bool]:
491+
) -> typing.Coroutine[typing.Any, typing.Any, FlagEvaluationDetails[bool]]:
492492
return await self.evaluate_flag_details(
493493
FlagType.BOOLEAN,
494494
flag_key,
@@ -503,7 +503,7 @@ async def get_string_value(
503503
default_value: str,
504504
evaluation_context: typing.Optional[EvaluationContext] = None,
505505
flag_evaluation_options: typing.Optional[FlagEvaluationOptions] = None,
506-
) -> str:
506+
) -> typing.Coroutine[typing.Any, typing.Any, str]:
507507
details = await self.get_string_details(
508508
flag_key,
509509
default_value,
@@ -518,7 +518,7 @@ async def get_string_details(
518518
default_value: str,
519519
evaluation_context: typing.Optional[EvaluationContext] = None,
520520
flag_evaluation_options: typing.Optional[FlagEvaluationOptions] = None,
521-
) -> FlagEvaluationDetails[str]:
521+
) -> typing.Coroutine[typing.Any, typing.Any, FlagEvaluationDetails[str]]:
522522
return await self.evaluate_flag_details(
523523
FlagType.STRING,
524524
flag_key,
@@ -533,7 +533,7 @@ async def get_integer_value(
533533
default_value: int,
534534
evaluation_context: typing.Optional[EvaluationContext] = None,
535535
flag_evaluation_options: typing.Optional[FlagEvaluationOptions] = None,
536-
) -> int:
536+
) -> typing.Coroutine[typing.Any, typing.Any, int]:
537537
details = await self.get_integer_details(
538538
flag_key,
539539
default_value,
@@ -548,7 +548,7 @@ async def get_integer_details(
548548
default_value: int,
549549
evaluation_context: typing.Optional[EvaluationContext] = None,
550550
flag_evaluation_options: typing.Optional[FlagEvaluationOptions] = None,
551-
) -> FlagEvaluationDetails[int]:
551+
) -> typing.Coroutine[typing.Any, typing.Any, FlagEvaluationDetails[int]]:
552552
return await self.evaluate_flag_details(
553553
FlagType.INTEGER,
554554
flag_key,
@@ -563,7 +563,7 @@ async def get_float_value(
563563
default_value: float,
564564
evaluation_context: typing.Optional[EvaluationContext] = None,
565565
flag_evaluation_options: typing.Optional[FlagEvaluationOptions] = None,
566-
) -> float:
566+
) -> typing.Coroutine[typing.Any, typing.Any, float]:
567567
details = await self.get_float_details(
568568
flag_key,
569569
default_value,
@@ -578,7 +578,7 @@ async def get_float_details(
578578
default_value: float,
579579
evaluation_context: typing.Optional[EvaluationContext] = None,
580580
flag_evaluation_options: typing.Optional[FlagEvaluationOptions] = None,
581-
) -> FlagEvaluationDetails[float]:
581+
) -> typing.Coroutine[typing.Any, typing.Any, FlagEvaluationDetails[float]]:
582582
return await self.evaluate_flag_details(
583583
FlagType.FLOAT,
584584
flag_key,
@@ -593,7 +593,7 @@ async def get_object_value(
593593
default_value: typing.Union[dict, list],
594594
evaluation_context: typing.Optional[EvaluationContext] = None,
595595
flag_evaluation_options: typing.Optional[FlagEvaluationOptions] = None,
596-
) -> typing.Union[dict, list]:
596+
) -> typing.Coroutine[typing.Any, typing.Any, typing.Union[dict, list]]:
597597
details = await self.get_object_details(
598598
flag_key,
599599
default_value,
@@ -608,7 +608,9 @@ async def get_object_details(
608608
default_value: typing.Union[dict, list],
609609
evaluation_context: typing.Optional[EvaluationContext] = None,
610610
flag_evaluation_options: typing.Optional[FlagEvaluationOptions] = None,
611-
) -> FlagEvaluationDetails[typing.Union[dict, list]]:
611+
) -> typing.Coroutine[
612+
typing.Any, typing.Any, FlagEvaluationDetails[typing.Union[dict, list]]
613+
]:
612614
return await self.evaluate_flag_details(
613615
FlagType.OBJECT,
614616
flag_key,
@@ -624,7 +626,7 @@ async def evaluate_flag_details( # noqa: PLR0915
624626
default_value: typing.Any,
625627
evaluation_context: typing.Optional[EvaluationContext] = None,
626628
flag_evaluation_options: typing.Optional[FlagEvaluationOptions] = None,
627-
) -> FlagEvaluationDetails[typing.Any]:
629+
) -> typing.Coroutine[typing.Any, typing.Any, FlagEvaluationDetails[typing.Any]]:
628630
"""
629631
Evaluate the flag requested by the user from the clients provider.
630632
@@ -770,7 +772,7 @@ async def _create_provider_evaluation(
770772
flag_key: str,
771773
default_value: typing.Any,
772774
evaluation_context: typing.Optional[EvaluationContext] = None,
773-
) -> FlagEvaluationDetails[typing.Any]:
775+
) -> typing.Coroutine[typing.Any, typing.Any, FlagEvaluationDetails[typing.Any]]:
774776
"""
775777
Asynchronous encapsulated method to create a FlagEvaluationDetail from a specific provider.
776778

openfeature/provider/__init__.py

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -173,7 +173,7 @@ async def resolve_boolean_details(
173173
flag_key: str,
174174
default_value: bool,
175175
evaluation_context: typing.Optional[EvaluationContext] = None,
176-
) -> FlagResolutionDetails[bool]:
176+
) -> typing.Coroutine[typing.Any, typing.Any, FlagResolutionDetails[bool]]:
177177
raise NotImplementedError("Method not implemented")
178178

179179
@abstractmethod
@@ -182,7 +182,7 @@ async def resolve_string_details(
182182
flag_key: str,
183183
default_value: str,
184184
evaluation_context: typing.Optional[EvaluationContext] = None,
185-
) -> FlagResolutionDetails[str]:
185+
) -> typing.Coroutine[typing.Any, typing.Any, FlagResolutionDetails[str]]:
186186
raise NotImplementedError("Method not implemented")
187187

188188
@abstractmethod
@@ -191,7 +191,7 @@ async def resolve_integer_details(
191191
flag_key: str,
192192
default_value: int,
193193
evaluation_context: typing.Optional[EvaluationContext] = None,
194-
) -> FlagResolutionDetails[int]:
194+
) -> typing.Coroutine[typing.Any, typing.Any, FlagResolutionDetails[int]]:
195195
raise NotImplementedError("Method not implemented")
196196

197197
@abstractmethod
@@ -200,7 +200,7 @@ async def resolve_float_details(
200200
flag_key: str,
201201
default_value: float,
202202
evaluation_context: typing.Optional[EvaluationContext] = None,
203-
) -> FlagResolutionDetails[float]:
203+
) -> typing.Coroutine[typing.Any, typing.Any, FlagResolutionDetails[float]]:
204204
raise NotImplementedError("Method not implemented")
205205

206206
@abstractmethod
@@ -209,5 +209,7 @@ async def resolve_object_details(
209209
flag_key: str,
210210
default_value: typing.Union[dict, list],
211211
evaluation_context: typing.Optional[EvaluationContext] = None,
212-
) -> FlagResolutionDetails[typing.Union[dict, list]]:
212+
) -> typing.Coroutine[
213+
typing.Any, typing.Any, FlagResolutionDetails[typing.Union[dict, list]]
214+
]:
213215
raise NotImplementedError("Method not implemented")

openfeature/provider/in_memory_provider.py

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -136,37 +136,39 @@ async def resolve_boolean_details(
136136
flag_key: str,
137137
default_value: bool,
138138
evaluation_context: typing.Optional[EvaluationContext] = None,
139-
) -> FlagResolutionDetails[bool]:
139+
) -> typing.Coroutine[typing.Any, typing.Any, FlagResolutionDetails[bool]]:
140140
return self._resolve(flag_key, evaluation_context)
141141

142142
async def resolve_string_details(
143143
self,
144144
flag_key: str,
145145
default_value: str,
146146
evaluation_context: typing.Optional[EvaluationContext] = None,
147-
) -> FlagResolutionDetails[str]:
147+
) -> typing.Coroutine[typing.Any, typing.Any, FlagResolutionDetails[str]]:
148148
return self._resolve(flag_key, evaluation_context)
149149

150150
async def resolve_integer_details(
151151
self,
152152
flag_key: str,
153153
default_value: int,
154154
evaluation_context: typing.Optional[EvaluationContext] = None,
155-
) -> FlagResolutionDetails[int]:
155+
) -> typing.Coroutine[typing.Any, typing.Any, FlagResolutionDetails[int]]:
156156
return self._resolve(flag_key, evaluation_context)
157157

158158
async def resolve_float_details(
159159
self,
160160
flag_key: str,
161161
default_value: float,
162162
evaluation_context: typing.Optional[EvaluationContext] = None,
163-
) -> FlagResolutionDetails[float]:
163+
) -> typing.Coroutine[typing.Any, typing.Any, FlagResolutionDetails[float]]:
164164
return self._resolve(flag_key, evaluation_context)
165165

166166
async def resolve_object_details(
167167
self,
168168
flag_key: str,
169169
default_value: typing.Union[dict, list],
170170
evaluation_context: typing.Optional[EvaluationContext] = None,
171-
) -> FlagResolutionDetails[typing.Union[dict, list]]:
172-
return self._resolve(flag_key, evaluation_context)
171+
) -> typing.Coroutine[
172+
typing.Any, typing.Any, FlagResolutionDetails[typing.Union[dict, list]]
173+
]:
174+
return self._resolve(flag_key, evaluation_context)

openfeature/provider/no_op_provider.py

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,7 @@ async def resolve_boolean_details(
8686
flag_key: str,
8787
default_value: bool,
8888
evaluation_context: typing.Optional[EvaluationContext] = None,
89-
) -> FlagResolutionDetails[bool]:
89+
) -> typing.Coroutine[typing.Any, typing.Any, FlagResolutionDetails[bool]]:
9090
return FlagResolutionDetails(
9191
value=default_value,
9292
reason=Reason.DEFAULT,
@@ -98,7 +98,7 @@ async def resolve_string_details(
9898
flag_key: str,
9999
default_value: str,
100100
evaluation_context: typing.Optional[EvaluationContext] = None,
101-
) -> FlagResolutionDetails[str]:
101+
) -> typing.Coroutine[typing.Any, typing.Any, FlagResolutionDetails[str]]:
102102
return FlagResolutionDetails(
103103
value=default_value,
104104
reason=Reason.DEFAULT,
@@ -110,7 +110,7 @@ async def resolve_integer_details(
110110
flag_key: str,
111111
default_value: int,
112112
evaluation_context: typing.Optional[EvaluationContext] = None,
113-
) -> FlagResolutionDetails[int]:
113+
) -> typing.Coroutine[typing.Any, typing.Any, FlagResolutionDetails[int]]:
114114
return FlagResolutionDetails(
115115
value=default_value,
116116
reason=Reason.DEFAULT,
@@ -122,7 +122,7 @@ async def resolve_float_details(
122122
flag_key: str,
123123
default_value: float,
124124
evaluation_context: typing.Optional[EvaluationContext] = None,
125-
) -> FlagResolutionDetails[float]:
125+
) -> typing.Coroutine[typing.Any, typing.Any, FlagResolutionDetails[float]]:
126126
return FlagResolutionDetails(
127127
value=default_value,
128128
reason=Reason.DEFAULT,
@@ -134,7 +134,9 @@ async def resolve_object_details(
134134
flag_key: str,
135135
default_value: typing.Union[dict, list],
136136
evaluation_context: typing.Optional[EvaluationContext] = None,
137-
) -> FlagResolutionDetails[typing.Union[dict, list]]:
137+
) -> typing.Coroutine[
138+
typing.Any, typing.Any, FlagResolutionDetails[typing.Union[dict, list]]
139+
]:
138140
return FlagResolutionDetails(
139141
value=default_value,
140142
reason=Reason.DEFAULT,

tests/conftest.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,4 +31,4 @@ def no_op_provider_client():
3131
@pytest.fixture()
3232
def no_op_provider_client_async():
3333
api.set_provider(AsyncNoOpProvider())
34-
return api.get_client_async("my-async-client")
34+
return api.get_async_client("my-async-client")

tests/test_async_client.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55

66
import pytest
77

8-
from openfeature.api import add_hooks, get_client_async, set_provider
8+
from openfeature.api import add_hooks, get_async_client, set_provider
99
from openfeature.client import AsyncOpenFeatureClient
1010
from openfeature.event import ProviderEvent, ProviderEventDetails
1111
from openfeature.exception import ErrorCode, OpenFeatureError
@@ -82,7 +82,7 @@ def test_add_remove_event_handler_async():
8282
set_provider(provider)
8383
spy = MagicMock()
8484

85-
client = get_client_async()
85+
client = get_async_client()
8686
client.add_handler(
8787
ProviderEvent.PROVIDER_CONFIGURATION_CHANGED, spy.provider_configuration_changed
8888
)
@@ -109,7 +109,7 @@ def handler(*args, **kwargs):
109109

110110
for _ in range(10):
111111
time.sleep(0.01)
112-
client = get_client_async(str(uuid.uuid4()))
112+
client = get_async_client(str(uuid.uuid4()))
113113
client.add_handler(ProviderEvent.PROVIDER_CONFIGURATION_CHANGED, handler)
114114

115115
def emit_events_task():

0 commit comments

Comments
 (0)