feat: add set_evaluation_context method to OpenFeatureClient#565
feat: add set_evaluation_context method to OpenFeatureClient#565vikasrao23 wants to merge 2 commits intoopen-feature:mainfrom
Conversation
Implements client-level evaluation context setter as requested in open-feature#500. The OpenFeatureClient class now provides a set_evaluation_context() method that allows users to set a client-wide evaluation context. This context is properly merged during flag evaluation with the following precedence (lowest to highest): 1. API-level context (global) 2. Transaction context 3. Client context (set via this new method) 4. Invocation context (per-evaluation) Changes: - Added set_evaluation_context(context) method to OpenFeatureClient class - Added comprehensive tests verifying: * The setter correctly updates the client context * Client context is properly merged during flag evaluation * Context precedence is maintained Closes open-feature#500 Signed-off-by: vikasrao23 <vikasrao23@users.noreply.github.com>
Summary of ChangesHello @vikasrao23, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed! This pull request enhances the Highlights
Changelog
Activity
Using Gemini Code AssistThe full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips. Invoking Gemini You can request assistance from Gemini at any point by creating a comment using either
Customization To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a Limitations & Feedback Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here. You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension. Footnotes
|
There was a problem hiding this comment.
Code Review
This pull request introduces a set_evaluation_context method to the OpenFeatureClient, allowing for dynamic updates to the client-level evaluation context. This new functionality is well-documented and thoroughly tested with three new comprehensive test cases, including verification of context merging precedence during flag evaluation. The changes align with the OpenFeature specification for context merging.
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com> Signed-off-by: Vikas Rao <100244218+vikasrao23@users.noreply.github.com>
Summary
Fixes #500
Implements a setter method for client-level evaluation context, allowing users to set a client-wide evaluation context that is properly merged during flag evaluation.
Changes
set_evaluation_context(context)method toOpenFeatureClientclasstest_client_set_evaluation_context- Verifies the setter works correctlytest_client_set_evaluation_context_updates_existing- Verifies updating an existing contexttest_client_set_evaluation_context_is_merged_during_evaluation- Verifies proper context merging during flag evaluationHow it works
The client-level context is merged during flag evaluation with the following precedence (lowest to highest):
api.set_evaluation_context())api.set_transaction_context())client.set_evaluation_context()This matches the behavior described in the OpenFeature spec.
Example Usage
Testing
All existing tests pass, and new tests verify:
Signed-off-by: vikasrao23 vikasrao23@users.noreply.github.com