-
Notifications
You must be signed in to change notification settings - Fork 218
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
feat: add initial commit for Python evaluation client using Rust core #2358
Conversation
Uffizzi Ephemeral Environment Deploying☁️ https://app.uffizzi.com/github.com/flipt-io/flipt/pull/2358 ⚙️ Updating now by workflow run 6828004387. What is Uffizzi? Learn more! |
Codecov Report
@@ Coverage Diff @@
## client-eval #2358 +/- ##
==============================================
Coverage ? 70.79%
==============================================
Files ? 78
Lines ? 7462
Branches ? 0
==============================================
Hits ? 5283
Misses ? 1878
Partials ? 301 📣 Codecov offers a browser extension for seamless coverage viewing on GitHub. Try it in Chrome or Firefox today! |
b478491
to
4e27700
Compare
0a3157a
to
42cef4d
Compare
sdk/client/python/README.md
Outdated
cargo build | ||
``` | ||
|
||
This should generate a `target/` directory in the root of this repository, which contains the dynamic linking library built for your platform. This dynamic library will contain the functinonality necessary for the Python client to make FFI calls. Depending on what your platform is you can set the `ENGINE_LIB_PATH` to: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This should generate a `target/` directory in the root of this repository, which contains the dynamic linking library built for your platform. This dynamic library will contain the functinonality necessary for the Python client to make FFI calls. Depending on what your platform is you can set the `ENGINE_LIB_PATH` to: | |
This should generate a `target/` directory in the root of this repository, which contains the dynamic linking library built for your platform. This dynamic library will contain the functionality necessary for the Python client to make FFI calls. You'll need to set the `ENGINE_LIB_PATH` environment variable depending on your platform: |
return boolean_evaluation_response | ||
|
||
|
||
def seriliaze_evaluation_request( |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
def seriliaze_evaluation_request( | |
def serialize_evaluation_request( |
name = "flipt-client-python" | ||
version = "0.1.0" | ||
description = "" | ||
authors = ["Yoofi Quansah <[email protected]>"] |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
authors = ["Yoofi Quansah <[email protected]>"] | |
authors = ["Flipt Devs <[email protected]>"] |
@@ -0,0 +1,18 @@ | |||
[tool.poetry] | |||
name = "flipt-client-python" | |||
version = "0.1.0" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
version = "0.1.0" | |
version = "0.0.1" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
👍🏻 nice
* feat: Evaluation snapshot service (#2330) * chore(wip): gah * feat(wip): snapshot api * feat: finish proto server * chore: fix linter errors * chore: move * chore: fix build * chore: add ability to skip generating sdks * chore: dont generate interface method * chore: fix build * fix: mount api * chore: add namespace key to resp * chore: detect boolean flag types * chore: create own types for evaluation service * chore: rm spaces * chore: rename cmp type fields --------- Co-authored-by: Yoofi Quansah <[email protected]> * feat: initial commit for rust evaluator client side (#2322) * feat: initial commit for rust evaluator client side * chore: rename of entire directory tree * chore: write tests for all the matches constraints types * chore: redo gitignore * chore: format rust code * chore: use generic instead of parameter impl * chore: remove println! statement * feat: support variant attachment as String type Rust * feat: new engine logic * chore: fix unwrap by using match instead * chore: add boolean method to engine and format code * feat: add request logic for getting document text from configurable upstream Flipt instance * chore: apply cargo clippy updates * feat: add three basic functions for allocating engine and retrieving it * chore: remove TODO * feat: modify code to adapt to endpoint * chore: use environment variables to get update interval * chore: remove unnecessary clone * chore: add rust workspace * chore: update enums * chore: impl default for responses * chore: make constants * feat: Add changes for FFI boundaries and example code --------- Co-authored-by: Mark Phelps <[email protected]> * chore: engine model refactor (#2356) * chore: refactor model layout; fix duration bug * chore: rename get_duration to get_duration_millis * feat: add boolean exported unsafe FFI function and couple other fixes (#2357) Co-authored-by: Mark Phelps <[email protected]> * chore: restructure client eval (#2362) * feat: add initial commit for Python evaluation client using Rust core (#2358) * feat: add initial commit for Python evaluation client using Rust core * chore: fix README linting issue * feat: move python source code and project under sdk * chore: clean up Python client README.md and change ENGINE_LIB_PATH meaning * chore: fix suggestions on PR * feat: achieve unit test parity with Golang evaluator on Rust core (#2392) * feat: add integration style tests for evaluation * feat: add evaluatortest parity with Golang evaluator on Rust core engine * chore: use mockall as dev dependency and attribute TestParser as only being used during tests * feat: add initial commit for flipt-client-go evaluation client (#2390) * feat: add initial commit for flipt-client-go evaluation client * chore: fix README.md * chore: README updates based on suggestions * chore: only support one namespace for Golang client * chore: add to go.work * chore: mod tidy * feat: incorporate error handling from Rust core over FFI to clients (#2400) * chore: Rm clients in monorepo (#2407) * chore: rm clients as they are moving to seperate repo * chore: rm go client sdk * chore: remove unused bits from .gitignore around Rust and Python and change go.work version back to 1.21 * chore: mod tidy --------- Co-authored-by: Yoofi Quansah <[email protected]>
This PR adds a Python evaluation client which will use a dynamic linking library compiled from the Rust engine for flag evaluations.
Completes FLI-669