Client for the XPipe API
Project description
xpipe_client
Python client for the XPipe API
Installation
python3 -m pip install xpipe_client
Usage
from xpipe_client import Client
# By default, Client() will read the API key from xpipe_auth on the local filesystem
# and talk to the XPipe API on localhost. To connect to a remote instance with an API
# key, use Client(token="foo", base_url = "http://servername:21723")
client = Client()
# connection_query accepts glob-based filters on the category, connection name, and connection type
all_connections = client.connection_query()
# Each connection includes uuid, category, connection, and type information
first_connection_uuid = all_connections[0]["uuid"]
# Before any shell commands can be run, a shell session must be started on a connection
client.shell_start(first_connection_uuid)
# Prints {'exitCode': 0, 'stdout': 'hello world', 'stderr': ''}
print(client.shell_exec(first_connection_uuid, "echo hello world"))
# Clean up after ourselves
client.shell_stop(first_connection_uuid)
There's also an async version of the client that can be accessed as AsyncClient:
import asyncio
from xpipe_client import AsyncClient
async def main():
# By default, AsyncClient() will read the API key from xpipe_auth on the local filesystem
# and talk to the XPipe API on localhost. To connect to a remote instance with an API
# key, use Client(token="foo", base_url = "http://servername:21723")
client = AsyncClient()
# connection_query accepts glob-based filters on the category, connection name, and connection type
all_connections = await client.connection_query()
# Each connection includes uuid, category, connection, and type information
first_connection_uuid = all_connections[0]["uuid"]
# Before any shell commands can be run, a shell session must be started on a connection
await client.shell_start(first_connection_uuid)
# Prints {'exitCode': 0, 'stdout': 'hello world', 'stderr': ''}
print(await client.shell_exec(first_connection_uuid, "echo hello world"))
# Clean up after ourselves
await client.shell_stop(first_connection_uuid)
if __name__ == "__main__":
asyncio.run(main())
Tests
To run the test suite, you'll need to define the XPIPE_APIKEY env var. This will allow the two "log in with the ApiKey rather than Local method" tests to work. Here's the recommended method for running the tests with poetry:
cd /path/to/python_xpipe_client
poetry install
XPIPE_APIKEY=<api_key> poetry run pytest
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file xpipe_client-0.1.26.tar.gz.
File metadata
- Download URL: xpipe_client-0.1.26.tar.gz
- Upload date:
- Size: 5.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.8.3 CPython/3.12.0 Windows/10
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b45cf3ef082bac2b880e1002c3f37a5cc0bd31973e9eb015339de4f5329e9a46
|
|
| MD5 |
4e97bd924c1eda024ec8092290afaf14
|
|
| BLAKE2b-256 |
7baeef42045e9b5e46957e01c960007657bd76e826b72165dcd7dcf8e764c113
|
File details
Details for the file xpipe_client-0.1.26-py3-none-any.whl.
File metadata
- Download URL: xpipe_client-0.1.26-py3-none-any.whl
- Upload date:
- Size: 6.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.8.3 CPython/3.12.0 Windows/10
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e3cfe7511c1268254fb1fd1ac39ece8916715af662439dbc5dd9f2be75dcaefc
|
|
| MD5 |
5ed28b6e091d0e133f35f258bac8bff6
|
|
| BLAKE2b-256 |
9aff9df2c67f84b0fba703c29c49777a73ebb25e8e728a2468423c5a5f880bb3
|