.. pybotters documentation master file, created by sphinx-quickstart on Thu Aug 5 19:33:41 2021. You can adapt this file completely to your liking, but it should at least contain the root `toctree` directive. pybotters ========= .. toctree:: :maxdepth: 2 :hidden: user-guide advanced exchanges examples reference contributing **pybotters** は仮想通貨取引所向けの **非同期 HTTP / WebSocket API クライアント** です。 様々な取引所の Private API 認証に対応しており、素早くトレード bot を構築することができます。 また **WebSocket** と **DataStore** の機能を使うことで、リアルタイムデータを簡単に利用できます。 Installation ------------ pybotters は PyPI または GitHub からインストールできます。 From `PyPI `_ (リリースバージョン): .. code-block:: console $ pip install pybotters From `GitHub `_ (開発バージョン): .. code-block:: console $ pip install git+https://github.com/pybotters/pybotters.git ⚠️ Compatibility warning ------------------------ pybotters は現在次期バージョン (**v2**) を計画しています。 v2 ではコードベースのゼロから作り直され、全く新しい仕様に変更される予定です。 そのため、v1 で作成されたプログラムは v2 に対応していません。 ``requirements.txt`` や ``pyproject.toml`` などで pybotters を依存関係として指定している場合、 **バージョン指定** を行うことをお勧めします。 例えば、 ``pybotters<2.0`` と指定することで、v2 がリリースされても自動的にアップデートされないようにすることができます。 プロジェクト管理ツール (Poetry, PDM, Rye, UV など) を使っている場合は例として以下のようにバージョン指定をします: .. code-block:: console $ poetry|pdm|rye|uv add 'pybotters<2.0' .. important:: pybotters v2 のロードマップはこちらにあります! `pybotters/pybotters#248 `_ Quickstart ---------- `bitFlyer `_ の Private HTTP API と WebSocket API を利用する例です。 * HTTP API (Get Balance): .. code-block:: python import asyncio import pybotters async def main(): apis = {"bitflyer": ["BITFLYER_API_KEY", "BITFLYER_API_SECRET"]} async with pybotters.Client( apis=apis, base_url="https://api.bitflyer.com" ) as client: r = await client.fetch("GET", "/v1/me/getbalance") print(r.data) if __name__ == "__main__": asyncio.run(main()) .. note:: :class:`pybotters.Client` に API 認証情報 ``apis`` を入力することで、HTTP リクエストの **自動認証機能** が有効になります。 * WebSocket API (Ticker channel): .. code-block:: python import asyncio import pybotters async def main(): async with pybotters.Client() as client: wsqueue = pybotters.WebSocketQueue() await client.ws_connect( "wss://ws.lightstream.bitflyer.com/json-rpc", send_json={ "method": "subscribe", "params": {"channel": "lightning_ticker_BTC_JPY"}, "id": 1, }, hdlr_json=wsqueue.onmessage, ) async for msg in wsqueue: # Ctrl+C to break print(msg) if __name__ == "__main__": try: asyncio.run(main()) except KeyboardInterrupt: pass .. note:: :meth:`pybotters.Client.ws_connect` により、自動再接続機構を備えた WebSocket コネクションが作成されます。 .. warning:: WebSocket メッセージの受信は永続的に実行されます。 プログラムを終了するには ``Ctrl+C`` を入力します。 What's next ----------- まずは :doc:`user-guide` ページで pybotters の利用方法を学習しましょう。 または AI でこのドキュメントを活用したい場合は `llms.txt `_ または `llms-full.txt `_ をご利用ください。 これらのファイルは AI が処理しやすい形式でドキュメント内容を提供しています。 💖 Sponsor ----------- Please sponsor me! このプロジェクトはオープンソースで運営されています。 pybotters のソフトウェアとコミュニティの継続していく為に、是非 GitHub スポンサーによるサポートをお願いします 🙏 GitHub スポンサーになっていただくと、開発者がより多くの時間とリソースをプロジェクトに費やすことができ、新しい機能の開発やバグの修正、コミュニティのサポートなど、より良いプロダクトを提供できるようになります。 GitHub Sponsors: .. image:: https://github.githubassets.com/images/modules/profile/achievements/public-sponsor-default.png :target: https://github.com/sponsors/MtkN1 :height: 150px Indices and tables ------------------ * :ref:`genindex` * :ref:`modindex` * :ref:`search`