Skip to main content

Fugle Realtime API 1.0 client library for Python

Project description

Fugle MarketData

Fugle MarketData API client library for Python

Installation

$ pip install fugle-marketdata

Importing

from fugle_marketdata import WebSocketClient, RestClient

Usage

The library is an isomorphic Python client that supports REST API and WebSocket.

REST API

client = RestClient(api_key = 'YOUR_API_KEY')
stock = client.stock  # Stock REST API client
print(stock.intraday.quote(symbol="2330"))

WebSocket API

from fugle_marketdata import WebSocketClient, RestClient


def handle_message(message):
    print(f'message: {message}')


def handle_connect():
    print('connected')


def handle_disconnect(code, message):
    print(f'disconnect: {code}, {message}')


def handle_error(error):
    print(f'error: {error}')


def main():
    client = WebSocketClient(api_key='YOUR_API_KEY')
    stock = client.stock
    stock.on("connect", handle_connect)
    stock.on("message", handle_message)
    stock.on("disconnect", handle_disconnect)
    stock.on("error", handle_error)
    stock.connect()
    stock.subscribe({
        "channel": 'trades',
        "symbol": '2330'
    })


if __name__ == "__main__":
    main()

Error Handling

The library provides a custom FugleAPIError exception for API-related errors, which includes detailed debugging information.

Catching API Errors

from fugle_marketdata import RestClient, FugleAPIError

client = RestClient(api_key='YOUR_API_KEY')

try:
    data = client.stock.intraday.quote(symbol="2330")
except FugleAPIError as e:
    # Access error details for debugging
    print(f"Error: {e.message}")
    print(f"URL: {e.url}")
    print(f"Status Code: {e.status_code}")
    print(f"Request Params: {e.params}")
    print(f"Response: {e.response_text}")

Error Attributes

The FugleAPIError exception provides the following attributes:

  • message: Error description
  • url: The API endpoint that was called
  • status_code: HTTP status code (if available)
  • params: Request parameters that were sent
  • response_text: Raw response text from the API (truncated to 200 chars)

Common Error Scenarios

HTTP Errors (4xx, 5xx):

try:
    data = client.stock.intraday.quote(symbol="INVALID_SYMBOL")
except FugleAPIError as e:
    if e.status_code == 404:
        print("Symbol not found")
    elif e.status_code >= 500:
        print("Server error, please try again later")

Network Errors:

try:
    data = client.stock.intraday.quote(symbol="2330")
except FugleAPIError as e:
    if e.status_code is None:
        print("Network error occurred")

License

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

fugle_marketdata-2.5.0rc3.tar.gz (10.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

fugle_marketdata-2.5.0rc3-py3-none-any.whl (16.6 kB view details)

Uploaded Python 3

File details

Details for the file fugle_marketdata-2.5.0rc3.tar.gz.

File metadata

  • Download URL: fugle_marketdata-2.5.0rc3.tar.gz
  • Upload date:
  • Size: 10.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.8.2 CPython/3.14.6 Linux/6.17.0-1020-azure

File hashes

Hashes for fugle_marketdata-2.5.0rc3.tar.gz
Algorithm Hash digest
SHA256 f05ae7d15713f3ff4c09f4e852d0692ba6f256abd95b89561c37a79e329f8f17
MD5 1f135ecbf37b01acfdbf53d425d655eb
BLAKE2b-256 69e696a204cc702006902ba5d3b816ce2483ced26418b03905603d5b9480162f

See more details on using hashes here.

File details

Details for the file fugle_marketdata-2.5.0rc3-py3-none-any.whl.

File metadata

  • Download URL: fugle_marketdata-2.5.0rc3-py3-none-any.whl
  • Upload date:
  • Size: 16.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.8.2 CPython/3.14.6 Linux/6.17.0-1020-azure

File hashes

Hashes for fugle_marketdata-2.5.0rc3-py3-none-any.whl
Algorithm Hash digest
SHA256 6c750afa2213935b71acaaff19ad4fb94a4521cbd4ad424dbad52a3c5fc06740
MD5 b3a48b1fdae1c8445c32a63b0d2ea7b8
BLAKE2b-256 bb66eed60d583d0b29bc5933e9304ee6c812a647cc5ceecc856c8b8a18333048

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page