Client library for Signal Fabric
Project description
Signal Fabric Client
Official Python client library for Signal Fabric - a lightweight handler-based framework for generating market signals on demand.
Installation
pip install signal-fabric-client
Quick Start
from signal_fabric import GrpcClient, SignalOutcome
import json
with GrpcClient(host='localhost', port=9090,
ca_cert_path='../../certs/client/test.pem') as client:
outcome : SignalOutcome = client.process_signal(
target='spot:BTC/USDT',
signal_name='binance_rsi',
signal_op='compute_rsi',
handler_request={
"period": 14,
"timeframe": "1h"
}
)
# Check for errors first
if outcome.errors:
print('We got errors:')
for err_id, err_message in outcome.errors.items():
print(f" - {err_id}: {err_message}")
print(f"\nResult: {outcome.result}")
print(f"Computation: {outcome.computation}")
else:
# No errors, parse the result
raw_result = outcome.result
if not raw_result:
print("Error: Empty result received")
else:
try:
resultObj = json.loads(raw_result)
print(f"""market: {resultObj['market']}
symbol: {resultObj['symbol']}
latest_rsi: {resultObj['latest_rsi']}
regime: {resultObj['regime']}
computed_at: {outcome.computed_at}
""")
except json.JSONDecodeError as e:
print(f"Error parsing result as JSON: {e}")
print(f"Raw result: {raw_result}")
API Reference
GrpcClient
Constructor
GrpcClient(host: str = 'localhost', port: int = 50051, timeout: int = 30, ca_cert_path: str = None)
Parameters:
host(str): Server hostname or IP address (default: 'localhost')port(int): Server port number (default: 50051)timeout(int): Request timeout in seconds (default: 30)ca_cert_path(str): Path to CA certificate for server verification (PEM format)
Methods
connect()
Establish connection to the server.
disconnect()
Close the connection to the server.
is_connected() -> bool
Check if client is currently connected.
process_signal(target, signal_name, signal_op, handler_request=None) -> SignalOutcome
Process a signal request.
Parameters:
target(str): Target for signal computation (e.g., 'BTC', 'ETH', 'AAPL')signal_name(str): Signal handler name or profile namesignal_op(str): Operation to perform (e.g., 'analyze', 'greet')handler_request(dict, optional): Request parameters as dictionary
Returns: SignalOutcome object
SignalOutcome
Result object containing the signal computation outcome.
Attributes
result(str): Signal result valuecomputation(str): Description of computation performedcomputed_at(float): Unix timestamp when computederrors(Dict[str, str]): Error codes and messages (or empty)details(Dict[str, str]): Additional computation details (or empty)
Methods
has_errors() -> bool
Returns True if the outcome contains errors.
is_detailed() -> bool
Returns True if the outcome has errors or additional details.
Requirements
- Python 3.8+
- grpcio >= 1.76.0
- protobuf >= 4.0.0
Server Setup
This client requires a running Signal Fabric server. To set up the server:
-
Clone the Signal Fabric repository:
git clone https://github.com/phasequant/signal-fabric.git cd signal-fabric
-
Install dependencies:
pip install -r requirements.txt
-
Start the server:
python src/server/main.py --config config.yaml
Version
Current version: 0.1.15
License
See LICENSE file for details.
Links
Support
For questions, issues, or contributions, please visit the GitHub repository.
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 signal_fabric_client-0.1.15.tar.gz.
File metadata
- Download URL: signal_fabric_client-0.1.15.tar.gz
- Upload date:
- Size: 11.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.1
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f3dfc4414b8ffcd5a762bc1d822019c87804c57de712dd2d39cef7e4e2d2ffdd
|
|
| MD5 |
841ea3f528292e042ec411c000958cd9
|
|
| BLAKE2b-256 |
76ec02a0342b7411cb2ae1a110bbafc0965c2397d1e71e02fecad9886beba731
|
File details
Details for the file signal_fabric_client-0.1.15-py3-none-any.whl.
File metadata
- Download URL: signal_fabric_client-0.1.15-py3-none-any.whl
- Upload date:
- Size: 11.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.1
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0a4bbcc2f460c6356bdc717458c481391b7b198ccc72463d345912dc6270e89b
|
|
| MD5 |
e1350845b53fce20e25994131a26b0de
|
|
| BLAKE2b-256 |
79d606487b0535631362d343403a65f3da0b0643edef71595c2b2b261be1af20
|