py dtn7
1.0.0
DTN7 RESTおよびDTN7-RSのWebSocket API用のPythonラッパーライブラリ。ライブラリには、完全な仕様に準拠したBundleタイプ(ただし、フラグメントとCRCのサポートなし)が含まれています。これにより、完全なバンドル作成と(de-)シリアル化が可能になります。
bundle.py 、 dtn_rest_client.py 、 utils.pyモジュール/ファイルはマイクロパイソン互換です。しかし、これには少し手動ライブラリ管理が必要です。以下のMicropythonインストールガイドを参照してください。
プロジェクトでpy-dtn7を使用するには、pypiから詩でインストールするだけです。
$ poetry install --no-dev py_dtn7これは非常に進行中の作業であり、はるかに完全ではありません。バンドルの実装は非常に初歩的であり、プライマリとペイロード以外のブロックをサポートしていません。
APIドキュメントを生成するには、 pdocを使用します。
$ pdoc ./py_dtn7 --output-directory ./docs...またはpy-dtn7.readthedocs.orgをチェックしてください
>>> from py_dtn7 import DTNRESTClient
>>> client = DTNRESTClient( host = " http://localhost " , port = 3000 )
>>> d.peers
{'box1': {'eid': [1, '//box1/'], 'addr': {'Ip': '10.0.0.42'}, 'con_type': 'Dynamic', 'period': None, 'cla_list': [['MtcpConvergenceLayer', 16162]], 'services': {}, 'last_contact': 1653316457}}
>>> d.info
{'incoming': 0, 'dups': 0, 'outgoing': 0, 'delivered': 3, 'broken': 0}既知のピアにバンドルを送信する場合、ピアネームとエンドポイントを単純に提供できます。そうしないと、完全なURIを使用できます。
>>> d.send( payload = { " body " : " This will be transferred as json " }, peer_name = " box1 " , endpoint = " info " )
<Response [200]>
>>> r = d.send( payload = " Is there anybody out there? " , destination = " dtn://greatunkown/incoming " )
>>> r.content.decode( " utf-8 " )
'Sent payload with 27 bytes'拡張する:
ダミーライブラリ__future__.py 、 abc.py 、 typing.py 、micropython-cborライブラリ(具体的にはcbor.pyモジュール/ファイル)およびurequestsとdatetimeが必要です。
$ mpremote mip install urequests
$ mpremote mip install datetime