[CLIENT-4836] Add support for string operations and expressions#1072
Draft
juliannguyen4 wants to merge 163 commits into
Draft
[CLIENT-4836] Add support for string operations and expressions#1072juliannguyen4 wants to merge 163 commits into
juliannguyen4 wants to merge 163 commits into
Conversation
Codecov Report❌ Patch coverage is Additional details and impacted files@@ Coverage Diff @@
## dev #1072 +/- ##
==========================================
+ Coverage 84.46% 84.53% +0.07%
==========================================
Files 99 102 +3
Lines 14090 14875 +785
==========================================
+ Hits 11901 12575 +674
- Misses 2189 2300 +111 ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
…a base64 encoded string
… creating it for each method
…-ops-and-expressions
…urs. Just copy type alias TypeCTX to string_operations.py so we don't need to have a import only for type hints
…Google-style doc example
…s duplicate object description warnings
…e thing for the other classes.
…reasing numeric order) instead of the default alphabetical order
…ate the constructor's docstring
…ror suggests it needs to be
…o define set of _AS_STRING_OP* codes separate from the C client's AS_STRING_OP* codes. The _AS_STRING* codes need to be unique from the other op codes exposed via aerospike_helpers. Then use X macro to expose string op codes from aerospike module
…e type stubs don't show any constants with value 127, so I believe _AS_EXP_CODE_CALL is safe to expose for aerospike_helpers.expressions to use
… the server now has the correct 8.1.3 version.
…-ops-and-expressions
…) and append() only when strings are passed as arguments in favor of the string ops version.
…arguments. There are test cases for passing bytes to these functions, but it's not documented in the API docs. Replace all uses of the original prepend and append operations with the string ops versions to stop deprecation warnings from failing the tests.
…precated ; currently only a deprecation warning is printed at runtime.
… the list / map ops that take in a policy.
… its constructor.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
TODO
Python docstrings in VS code are not formatted. So the placeholders still show up in type hinting. This problem may also exist with extended metrics / NodeStats in aerospike_helpers.There's no well known solution for this.Ops dictionaries now have extra variables we don't want (found via GDB). Need to omit those...only way is to filter outlocals()using dictionary comprehension, but this is O(n) time.Expressions need to state return value type since they are strongly typedIgnoring since it makes the return description too long IMOCross reference for expressions to corresponding operations doesn't show up in IDE type hintsCross reference generated at runtimeDocs
https://aerospike-python-client--1072.org.readthedocs.build/en/1072/aerospike_helpers.operations.html#module-aerospike_helpers.operations.string_operations
https://aerospike-python-client--1072.org.readthedocs.build/en/1072/aerospike_helpers.expressions.html#module-aerospike_helpers.expressions.string