pysonrpc 1.0.7

Creator: railscoder56

Last updated:

Add to Cart

Description:

pysonrpc 1.0.7

What's pysonrpc
JSON RPC python client module with a CLI and method auto detection.
For JSON RPC server with a schema, an url canbe specified so that the schema is read, detecting the list of methods
supported.
Attributes are dynamically created to allow methods to be called as attributes, including namespaces.
Examples with kodi json rpc client:
CLI
# List all methods available, autodetected from the server url (for kodi, this is not a complete list)
pysonrpc -r http://127.0.0.1:8080/jsonrpc -a list

# List all methods available, autodetected from a server rpc method
pysonrpc -r http://127.0.0.1:8080/jsonrpc -am "JSONRPC.Introspect" list -s -f VideoLibrary.

# List all methods available, autodetected from a schema json file
pysonrpc -r http://127.0.0.1:8080/jsonrpc -f schema.json list

# List methods filtered with VideoLibrary
pysonrpc -r http://127.0.0.1:8080/jsonrpc -am "JSONRPC.Introspect" list -s -f VideoLibrary

# Get favaourites list
pysonrpc -r http://127.0.0.1:8080/jsonrpc -a run -m Favourites.GetFavourites

# Get information on movie 1419
pysonrpc -r http://127.0.0.1:8080/jsonrpc -a run -m VideoLibrary.GetMovieDetails -p '{"movieid": 1419}'

Help
usage: pysonrpc [-h] [--version] --url URL [--user USER] [--password PASSWORD] [--debug] [--method-discover] [--method-discover-path METHOD_DISCOVER_PATH]
[--method-file METHOD_FILE]
{list,run} ...

RPC client

positional arguments:
{list,run} commands
list List available methods
run Execute a method

options:
-h, --help show this help message and exit
--version, -v Display version
--url URL, -r URL Host url, e.g 'http://192.168.0.1:8080'
--user USER, -u USER username if using basic authentication
--password PASSWORD, -p PASSWORD
Password if using basic authentication
--debug, -d Enable debug logging
--method-discover, -a
Auto discover rpc methods at the specified endpoint url
--method-discover-path METHOD_DISCOVER_PATH
Specifies a path after the specified endpoint url to query for methods auto discovery
--method-file METHOD_FILE, -f METHOD_FILE
Discover methods from given json file

Python module
from pysonrpc import JsonRpcEndpoint

cli = JsonRpcEndpoint("http://127.0.0.1:8080/jsonrpc", user="user", password="pwd", schema_method="JSONRPC.Introspect")

#Running a method from name
result=cli.run_method("Favourites.GetFavourites")
result=cli.run_method("VideoLibrary.GetMovieDetails", movieid=1419)

#Running a method from attribute
result=cli.Favourites.GetFavourites()
result=cli.VideoLibrary.GetMovieDetails(movieid=1419)

Development
Using pixi
# Install dependencies and pycliarr
pixi build

# Run the binary
pixi run pycliarr

# Or start a term
pixi shell

# Run tests
pixi run tests

#generate doc
pixi run doc

Run tests
pixi run tox

If mypy fails due to missing import stubs:
.tox/checkers/bin/mypy --install-types

Release
To push to main and increment the current version:
pixi run release

To push to main and specify the new version current version:
pixi run release 1.2.3

Note: A workflow is validating, building, releasing and publishing push requests and tagged commits
TODO:

better way for parameters ? (add a list arg for a method only)

License

For personal and professional use. You cannot resell or redistribute these repositories in their original state.

Customer Reviews

There are no reviews.