Fix escaping XPath characters & add set_values_by_xpaths#476
Merged
Conversation
iMicknl
requested changes
May 4, 2026
Contributor
There was a problem hiding this comment.
Pull request overview
This PR improves XPath handling in the async Sagemcom router client by adjusting how XPath strings are encoded (to support attribute selectors containing @ and "), adds a new bulk setter API for setting multiple values in one request, and updates the README to match the project’s declared minimum Python version.
Changes:
- Route
get_value_by_xpaththroughget_values_by_xpathsand expand XPath quoting “safe” characters to include@and". - Add
set_values_by_xpathsto set multiple XPath/value pairs in a single API call (and refactorset_value_by_xpathto use it). - Update README minimum Python version to 3.11+ (aligned with
pyproject.toml).
Reviewed changes
Copilot reviewed 2 out of 2 changed files in this pull request and generated 4 comments.
| File | Description |
|---|---|
| sagemcom_api/client.py | Adjust XPath escaping and add a bulk setter API for multi-action setValue requests. |
| README.md | Update stated minimum Python version to match project metadata. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Contributor
Author
|
I am using the library directly. Thanks for making it! |
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.
This fixes XPath expressions like
get_value_by_xpath("Device/Hosts/Hosts/Host[@uid=\"8258\"]/UserFriendlyName").Also added a method
set_values_by_xpathsto set multiple values in one call, as was available to get multiple values.Updated README.md to reflect actual python version needed according to pyproject.toml.