Commit Graph

260 Commits

Author SHA1 Message Date
renovate[bot] 44f12239ff
chore(deps): update pre-commit hook astral-sh/ruff-pre-commit to v0.4.1 (#321)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-04-19 21:27:05 +02:00
renovate[bot] abb14f5ed9
chore(deps): update pre-commit hook astral-sh/ruff-pre-commit to v0.4.0 (#320)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-04-19 00:15:20 +00:00
renovate[bot] 563662054c
chore(deps): update pre-commit hook astral-sh/ruff-pre-commit to v0.3.7 (#318)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-04-12 15:42:09 +10:00
Federico Bond 96ba7938de
refactor!: move AbstractProvider to openfeature.provider (#314)
Signed-off-by: Federico Bond <federicobond@gmail.com>
2024-04-12 11:19:21 +10:00
Federico Bond cd605c4f5d
chore: update codecov/codecov-action action to v4 (#317)
Signed-off-by: Federico Bond <federicobond@gmail.com>
2024-04-12 09:53:57 +09:00
renovate[bot] 49f0948e51
chore(deps): update pre-commit hook astral-sh/ruff-pre-commit to v0.3.6 (#316)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-04-11 21:45:00 +00:00
Federico Bond 34ac91c707
fix!: restrict exported names with __all__ (#306)
* fix!: restrict exported names with __all__

Signed-off-by: Federico Bond <federicobond@gmail.com>

* restrict codecov upload to Python 3.11

Signed-off-by: gruebel <anton.gruebel@gmail.com>

* disable codecov ci fail on error

Signed-off-by: Michael Beemer <beeme1mr@users.noreply.github.com>

---------

Signed-off-by: Federico Bond <federicobond@gmail.com>
Signed-off-by: gruebel <anton.gruebel@gmail.com>
Signed-off-by: Michael Beemer <beeme1mr@users.noreply.github.com>
Co-authored-by: gruebel <anton.gruebel@gmail.com>
Co-authored-by: Michael Beemer <beeme1mr@users.noreply.github.com>
2024-04-09 11:15:30 +09:00
Federico Bond 9966c14e16
feat: update provider status when provider emits events (#309)
* refactor: move registry singleton to the registry module

Signed-off-by: Federico Bond <federicobond@gmail.com>

* refactor: make openfeature.provider.registry a private module

Signed-off-by: Federico Bond <federicobond@gmail.com>

* feat: update provider status when provider emits events

Signed-off-by: Federico Bond <federicobond@gmail.com>

* refactor: avoid duplicate code

Signed-off-by: Federico Bond <federicobond@gmail.com>

* fix: fix provider event dispatch on initialize/shutdown

Signed-off-by: Federico Bond <federicobond@gmail.com>

* refactor: rename default_registry to provider_registry

Signed-off-by: Federico Bond <federicobond@gmail.com>

---------

Signed-off-by: Federico Bond <federicobond@gmail.com>
2024-04-07 22:59:02 +10:00
renovate[bot] faf02a9888
chore(deps): update pre-commit hook pre-commit/pre-commit-hooks to v4.6.0 (#312)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-04-06 21:34:15 +00:00
Anton Grübel 9ba82e3b63
ci: switch to hatch (#297)
switch to hatch

Signed-off-by: gruebel <anton.gruebel@gmail.com>
2024-04-05 18:08:16 +11:00
renovate[bot] 47ae16c167
chore(deps): update pre-commit hook astral-sh/ruff-pre-commit to v0.3.5 (#311)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-04-05 12:48:51 +11:00
Federico Bond ff626374ae
chore: update renovate config (#310)
Signed-off-by: Federico Bond <federicobond@gmail.com>
2024-04-05 12:46:02 +11:00
Federico Bond de36b214dc
fix: remove ProviderEvent.PROVIDER_FATAL (#307)
Signed-off-by: Federico Bond <federicobond@gmail.com>
2024-03-28 16:54:00 +11:00
github-actions[bot] f00bc89caa
chore(main): release 0.6.1 (#304) 2024-03-28 00:10:46 +11:00
Federico Bond 05d0da2e3d
chore: add keywords to pyproject.toml (#305)
Signed-off-by: Federico Bond <federicobond@gmail.com>
2024-03-26 07:31:57 +01:00
Federico Bond 78ea3b9914
feat: populate provider and client metadata in HookContext (#302)
* feat: populate provider and client metadata in HookContext

Signed-off-by: Federico Bond <federicobond@gmail.com>

* fix: ensure provider consistency during flag evaluation

Signed-off-by: Federico Bond <federicobond@gmail.com>

---------

Signed-off-by: Federico Bond <federicobond@gmail.com>
2024-03-25 18:15:26 +11:00
Federico Bond 4a323b0f96
refactor: mark hook_support module as private/internal (#303)
Signed-off-by: Federico Bond <federicobond@gmail.com>
2024-03-25 18:02:36 +11:00
github-actions[bot] 2c23c9e971
chore(main): release 0.6.0 (#283)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2024-03-22 15:30:50 +01:00
Federico Bond 58d27c4011
docs: update spec version to 0.8.0 (#299)
Release-As: 0.6.0

Signed-off-by: Federico Bond <federicobond@gmail.com>
2024-03-22 08:06:08 +01:00
renovate[bot] a70ae0cb2e
chore(deps): update dependency pytest-mock to v3.14.0 (#300)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-03-22 13:25:00 +11:00
Federico Bond 679409fad2
feat: implement provider events (#278)
* feat: implement provider events

Signed-off-by: Federico Bond <federicobond@gmail.com>

* feat: add error_code field to EventDetails and ProviderEventDetails

Signed-off-by: Federico Bond <federicobond@gmail.com>

* fix: replace strings with postponed evaluation of annotations

Signed-off-by: Federico Bond <federicobond@gmail.com>

* feat: run handlers immediately if provider already in associated state

Signed-off-by: Federico Bond <federicobond@gmail.com>

* feat: remove unused _provider from openfeature.api

Signed-off-by: Federico Bond <federicobond@gmail.com>

* test: add some comments to test cases

Signed-off-by: Federico Bond <federicobond@gmail.com>

* test: add provider event late binding test cases

Signed-off-by: Federico Bond <federicobond@gmail.com>

* fix: fix status handlers running immediately if provider already in associated state

Signed-off-by: Federico Bond <federicobond@gmail.com>

* refactor: reuse provider property in OpenFeatureClient

Signed-off-by: Federico Bond <federicobond@gmail.com>

* refactor: move _provider_status_to_event to ProviderEvent.from_provider_status

Signed-off-by: Federico Bond <federicobond@gmail.com>

* refactor: move EventSupport class to an internal module

Signed-off-by: Federico Bond <federicobond@gmail.com>

* refactor: replace EventSupport class with module-level functions

Signed-off-by: Federico Bond <federicobond@gmail.com>

* style: fix code style

---------

Signed-off-by: Federico Bond <federicobond@gmail.com>
2024-03-22 07:45:00 +11:00
renovate[bot] 04b4009dbf
chore(deps): update dependency pytest-mock to v3.13.0 (#298)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-03-22 07:22:24 +11:00
Anton Grübel 6e4eebce20
chore: update mypy and ruff (#296)
update mypy and ruff

Signed-off-by: gruebel <anton.gruebel@gmail.com>
2024-03-19 06:16:16 +11:00
renovate[bot] f5987ef8f4
chore(deps): update dependency coverage to v7.4.4 (#293)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-03-15 07:41:41 +11:00
Federico Bond e7475441bd
fix: run error hooks if provider returns FlagResolutionDetails with non-empty error_code (#291)
* fix: run error hooks if provider returns FlagResolutionDetails with non-empty error_code

Signed-off-by: Federico Bond <federicobond@gmail.com>

* refactor: extract error code to exception mapping to class variable

Signed-off-by: Federico Bond <federicobond@gmail.com>

---------

Signed-off-by: Federico Bond <federicobond@gmail.com>
2024-03-14 08:31:46 +11:00
renovate[bot] 3f336b3a24
chore(deps): update dependency pytest to v8.1.1 (#289)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-03-09 16:47:21 +01:00
Federico Bond 789e6e0f5f
feat: implement provider status (#288)
* feat: implement provider status

Signed-off-by: Federico Bond <federicobond@gmail.com>

* feat: set provider status to fatal if initialize raises PROVIDER_FATAL error

Signed-off-by: Federico Bond <federicobond@gmail.com>

* feat: add a provider status accessor to clients

Signed-off-by: Federico Bond <federicobond@gmail.com>

* feat: short circuit flag resolution when provider is not ready

Signed-off-by: Federico Bond <federicobond@gmail.com>

---------

Signed-off-by: Federico Bond <federicobond@gmail.com>
2024-03-08 09:00:32 +11:00
renovate[bot] 7ba7d6146f
chore(deps): update dependency pytest to v8.1.0 (#287)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-03-03 23:06:47 +01:00
Zhiwei ae26217328
docs: add Missing Imports in Provider Dev Example in README (#286)
docs: add missing imports in provider dev example in README

Signed-off-by: Zhiwei <zhi.wei.liang@outlook.com>
2024-03-03 12:04:45 -03:00
Anton Grübel 5acd6a6598
refactor: improve Hook Hints typing (#285)
* improve Hook Hints typing

Signed-off-by: gruebel <anton.gruebel@gmail.com>

* ignore lint issue for this line

Signed-off-by: gruebel <anton.gruebel@gmail.com>

* exclude TYPE_CHECKING from coverage report

Signed-off-by: gruebel <anton.gruebel@gmail.com>

---------

Signed-off-by: gruebel <anton.gruebel@gmail.com>
2024-03-03 00:38:14 -03:00
Todd Baert 141858d235
chore: add changelog sections (#282)
Signed-off-by: Todd Baert <todd.baert@dynatrace.com>
2024-02-26 20:56:00 -03:00
renovate[bot] b2594a567c
chore(deps): update dependency pytest to v8.0.2 (#281)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-02-25 00:45:32 -03:00
renovate[bot] bafa427a0d
chore(deps): update dependency coverage to v7.4.3 (#280)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-02-24 00:25:56 +01:00
github-actions[bot] 035d0ad679
chore: release 0.5.0 (#277)
chore(main): release 0.5.0

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2024-02-21 16:23:33 -05:00
Federico Bond ed6a42f264
feat!: add support for domains (#271)
* feat: add support for domains

Signed-off-by: Federico Bond <federicobond@gmail.com>

* docs: update README.md

Signed-off-by: Federico Bond <federicobond@gmail.com>

* feat: add clear_providers function to api

Signed-off-by: Federico Bond <federicobond@gmail.com>

* feat: make _get_provider function private

Signed-off-by: Federico Bond <federicobond@gmail.com>

* fix: shutdown all providers on api.shutdown

Signed-off-by: Federico Bond <federicobond@gmail.com>

* refactor: move provider dict to a ProviderRegistry class

Signed-off-by: Federico Bond <federicobond@gmail.com>

* feat: reset default provider on clear_providers and add tests

Signed-off-by: Federico Bond <federicobond@gmail.com>

* docs: update README.md

Signed-off-by: Federico Bond <federicobond@gmail.com>

---------

Signed-off-by: Federico Bond <federicobond@gmail.com>
2024-02-20 19:31:22 -03:00
renovate[bot] 0ec2b69d1e
chore(deps): update dependency coverage to v7.4.2 (#276)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-02-20 21:48:09 +00:00
renovate[bot] 2b177e6ab5
chore(deps): update dependency pytest to v8.0.1 (#275)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-02-17 04:24:21 +00:00
Federico Bond 77fbae7b1e
refactor: remove abstractmethod decorator from get_provider_hooks (#274)
Signed-off-by: Federico Bond <federicobond@gmail.com>
2024-02-09 18:50:28 -03:00
Federico Bond f9833ba753
chore: update ruff version to 0.2.1 and remove preview flag (#272)
Signed-off-by: Federico Bond <federicobond@gmail.com>
2024-02-07 20:08:59 -03:00
renovate[bot] 915cabe5b1
chore(deps): update pre-commit/action action to v3.0.1 (#273)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-02-07 19:52:15 +00:00
github-actions[bot] 522d425a06
chore(main): release 0.4.2 (#238)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2024-02-06 07:37:38 -08:00
Federico Bond cb1677b0a8
feat: make return value not optional in provider API functions (#270)
Signed-off-by: Federico Bond <federicobond@gmail.com>
2024-02-06 11:15:49 -03:00
Federico Bond 1282bab31e
docs: update supported spec version (#269)
Signed-off-by: Federico Bond <federicobond@gmail.com>
2024-02-05 20:49:20 -08:00
Federico Bond caa7f36c30
feat: add FeatureProvider protocol (#268)
Signed-off-by: Federico Bond <federicobond@gmail.com>
2024-02-03 11:26:18 -03:00
Anton Grübel 3b89760d41
feat: make specific fields in HookContext immutable (#266)
make specific fields in HookContext immutable

Signed-off-by: gruebel <anton.gruebel@gmail.com>
2024-01-29 13:16:10 -03:00
Matthew M. Keeler 5ef6ca1263
fix: Allow string values for `FlagEvaluationDetails.reason` and `FlagResolutionDetails.reason` (#264)
* fix: Allow string values for `FlagEvaluationDetails.reason` and ``FlagResolutionDetails.reason`

Signed-off-by: Matthew Keeler <mkeeler@launchdarkly.com>

* Remove useless test

Signed-off-by: Matthew Keeler <mkeeler@launchdarkly.com>

---------

Signed-off-by: Matthew Keeler <mkeeler@launchdarkly.com>
2024-01-29 12:42:37 -03:00
renovate[bot] f1b0839d16
chore(deps): update dependency pytest to v8 (#265)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-01-29 10:37:07 -03:00
Federico Bond ccbff2c5e4
feat: improve logging setup (#261)
Signed-off-by: Federico Bond <federicobond@gmail.com>
2024-01-26 23:52:33 -03:00
renovate[bot] 15ce8f9b56
chore(deps): update dependency coverage to v7.4.1 (#263)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-01-26 22:44:44 +00:00
renovate[bot] d1f27e3278
chore(deps): update actions/cache action to v4 (#260)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-01-17 18:26:28 -03:00