From 000fd5c390afded66f774deb4d3b3f3bbf9a829d Mon Sep 17 00:00:00 2001 From: maybeast <78227110+maybeast@users.noreply.github.com> Date: Fri, 23 Aug 2024 18:40:24 +0300 Subject: [PATCH] feat(mpay): add pagination to mpay-list (#650) --- tools/plugins/hold/protos/hold_pb2_grpc.py | 2 +- tools/plugins/mpay/data/payments.py | 23 ++- tools/plugins/mpay/protos/mpay.proto | 6 + tools/plugins/mpay/protos/mpay_pb2.py | 42 +++-- tools/plugins/mpay/protos/mpay_pb2.pyi | 14 +- tools/plugins/mpay/protos/mpay_pb2_grpc.py | 2 +- tools/plugins/mpay/rpc/server.py | 9 +- tools/plugins/mpay/rpc/tests/test_server.py | 19 +- tools/poetry.lock | 197 ++++++++++---------- tools/pyproject.toml | 4 +- 10 files changed, 190 insertions(+), 128 deletions(-) diff --git a/tools/plugins/hold/protos/hold_pb2_grpc.py b/tools/plugins/hold/protos/hold_pb2_grpc.py index be70f382..f8ccf2b7 100644 --- a/tools/plugins/hold/protos/hold_pb2_grpc.py +++ b/tools/plugins/hold/protos/hold_pb2_grpc.py @@ -5,7 +5,7 @@ import hold_pb2 as hold__pb2 -GRPC_GENERATED_VERSION = '1.65.4' +GRPC_GENERATED_VERSION = '1.65.5' GRPC_VERSION = grpc.__version__ EXPECTED_ERROR_RELEASE = '1.66.0' SCHEDULED_RELEASE_DATE = 'August 6, 2024' diff --git a/tools/plugins/mpay/data/payments.py b/tools/plugins/mpay/data/payments.py index 8dd297a4..c9295534 100644 --- a/tools/plugins/mpay/data/payments.py +++ b/tools/plugins/mpay/data/payments.py @@ -1,3 +1,5 @@ +from __future__ import annotations + from typing import Iterator from sqlalchemy import select @@ -9,14 +11,23 @@ class Payments: @staticmethod def fetch(s: Session, payment_hash: str) -> Iterator[Payment]: - return Payments._fetch(s, payment_hash) + return Payments._fetch(s, payment_hash, None, None) @staticmethod def fetch_all(s: Session) -> Iterator[Payment]: - return Payments._fetch(s, None) + return Payments._fetch(s, None, None, None) + + @staticmethod + def fetch_paginated(s: Session, start_id: int, offset: int) -> Iterator[Payment]: + return Payments._fetch(s, None, start_id, offset) @staticmethod - def _fetch(s: Session, payment_hash: str | None) -> Iterator[Payment]: + def _fetch( + s: Session, + payment_hash: str | None, + offset: int | None, + limit: int | None, + ) -> Iterator[Payment]: query = ( select(Payment) .order_by(Payment.created_at) @@ -26,5 +37,11 @@ def _fetch(s: Session, payment_hash: str | None) -> Iterator[Payment]: if payment_hash is not None: query = query.where(Payment.payment_hash == payment_hash) + if offset is not None: + query = query.where(Payment.id > offset) + + if limit is not None: + query = query.limit(limit) + for row in s.execute(query).unique(): yield row[0] diff --git a/tools/plugins/mpay/protos/mpay.proto b/tools/plugins/mpay/protos/mpay.proto index 648157e9..650e6f3a 100644 --- a/tools/plugins/mpay/protos/mpay.proto +++ b/tools/plugins/mpay/protos/mpay.proto @@ -42,9 +42,15 @@ message ListPaymentsRequest { oneof identifier { string bolt11 = 1; string payment_hash = 2; + PaginationParams pagination = 3; } } +message PaginationParams { + uint64 offset = 1; + uint32 limit = 2; +} + message ListPaymentsResponse { message Payment { message Attempt { diff --git a/tools/plugins/mpay/protos/mpay_pb2.py b/tools/plugins/mpay/protos/mpay_pb2.py index ef0d2f77..3cec1723 100644 --- a/tools/plugins/mpay/protos/mpay_pb2.py +++ b/tools/plugins/mpay/protos/mpay_pb2.py @@ -14,7 +14,7 @@ -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\nmpay.proto\x12\x04mpay\"\x10\n\x0eGetInfoRequest\"\"\n\x0fGetInfoResponse\x12\x0f\n\x07version\x18\x01 \x01(\t\"\x98\x01\n\x10GetRoutesRequest\x12\x18\n\x0b\x64\x65stination\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x18\n\x0bmin_success\x18\x02 \x01(\x02H\x01\x88\x01\x01\x12\x1c\n\x0fmin_success_ema\x18\x03 \x01(\x02H\x02\x88\x01\x01\x42\x0e\n\x0c_destinationB\x0e\n\x0c_min_successB\x12\n\x10_min_success_ema\"\xa0\x02\n\x11GetRoutesResponse\x12\x33\n\x06routes\x18\x01 \x03(\x0b\x32#.mpay.GetRoutesResponse.RoutesEntry\x1a\x86\x01\n\x06Routes\x12\x34\n\x06routes\x18\x02 \x03(\x0b\x32$.mpay.GetRoutesResponse.Routes.Route\x1a\x46\n\x05Route\x12\r\n\x05route\x18\x01 \x03(\t\x12\x14\n\x0csuccess_rate\x18\x02 \x01(\x01\x12\x18\n\x10success_rate_ema\x18\x03 \x01(\x01\x1aM\n\x0bRoutesEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12-\n\x05value\x18\x02 \x01(\x0b\x32\x1e.mpay.GetRoutesResponse.Routes:\x02\x38\x01\"M\n\x13ListPaymentsRequest\x12\x10\n\x06\x62olt11\x18\x01 \x01(\tH\x00\x12\x16\n\x0cpayment_hash\x18\x02 \x01(\tH\x00\x42\x0c\n\nidentifier\"\xd2\x03\n\x14ListPaymentsResponse\x12\x34\n\x08payments\x18\x01 \x03(\x0b\x32\".mpay.ListPaymentsResponse.Payment\x1a\x83\x03\n\x07Payment\x12\n\n\x02id\x18\x01 \x01(\x04\x12\x13\n\x0b\x64\x65stination\x18\x02 \x01(\t\x12\x14\n\x0cpayment_hash\x18\x03 \x01(\t\x12\x0e\n\x06\x61mount\x18\x04 \x01(\x04\x12\n\n\x02ok\x18\x05 \x01(\x08\x12<\n\x08\x61ttempts\x18\x06 \x03(\x0b\x32*.mpay.ListPaymentsResponse.Payment.Attempt\x12\x12\n\ncreated_at\x18\x07 \x01(\x04\x1a\xd2\x01\n\x07\x41ttempt\x12\n\n\x02id\x18\x01 \x01(\x04\x12\n\n\x02ok\x18\x02 \x01(\x08\x12\x0c\n\x04time\x18\x03 \x01(\x04\x12<\n\x04hops\x18\x04 \x03(\x0b\x32..mpay.ListPaymentsResponse.Payment.Attempt.Hop\x12\x12\n\ncreated_at\x18\x05 \x01(\x04\x1aO\n\x03Hop\x12\n\n\x02id\x18\x01 \x01(\x04\x12\x0c\n\x04node\x18\x02 \x01(\t\x12\x0f\n\x07\x63hannel\x18\x03 \x01(\t\x12\x11\n\tdirection\x18\x04 \x01(\x04\x12\n\n\x02ok\x18\x05 \x01(\x08\"\xc2\x01\n\nPayRequest\x12\x0e\n\x06\x62olt11\x18\x01 \x01(\t\x12\x19\n\x0cmax_fee_msat\x18\x02 \x01(\x04H\x00\x88\x01\x01\x12\x1c\n\x0f\x65xempt_fee_msat\x18\x03 \x01(\x04H\x01\x88\x01\x01\x12\x14\n\x07timeout\x18\x04 \x01(\x04H\x02\x88\x01\x01\x12\x16\n\tmax_delay\x18\x05 \x01(\x04H\x03\x88\x01\x01\x42\x0f\n\r_max_fee_msatB\x12\n\x10_exempt_fee_msatB\n\n\x08_timeoutB\x0c\n\n_max_delay\"\xd4\x01\n\x0bPayResponse\x12\x14\n\x0cpayment_hash\x18\x01 \x01(\t\x12\x18\n\x10payment_preimage\x18\x02 \x01(\t\x12\x10\n\x08\x66\x65\x65_msat\x18\x03 \x01(\x04\x12\x0c\n\x04time\x18\x04 \x01(\x04\x12\x13\n\x0b\x64\x65stination\x18\x05 \x01(\t\x12\x13\n\x0b\x61mount_msat\x18\x06 \x01(\x04\x12\x18\n\x10\x61mount_sent_msat\x18\x07 \x01(\x04\x12\r\n\x05parts\x18\x08 \x01(\r\x12\x0e\n\x06status\x18\t \x01(\t\x12\x12\n\ncreated_at\x18\n \x01(\x04\"\xa0\x01\n\x16ResetPathMemoryRequest\x12%\n\x18\x65xclude_permanent_memory\x18\x01 \x01(\x08H\x00\x88\x01\x01\x12%\n\x18\x65xclude_temporary_memory\x18\x02 \x01(\x08H\x01\x88\x01\x01\x42\x1b\n\x19_exclude_permanent_memoryB\x1b\n\x19_exclude_temporary_memory\"K\n\x17ResetPathMemoryResponse\x12\x10\n\x08payments\x18\x01 \x01(\x04\x12\x10\n\x08\x61ttempts\x18\x02 \x01(\x04\x12\x0c\n\x04hops\x18\x03 \x01(\x04\x32\xc9\x02\n\x04Mpay\x12\x38\n\x07GetInfo\x12\x14.mpay.GetInfoRequest\x1a\x15.mpay.GetInfoResponse\"\x00\x12>\n\tGetRoutes\x12\x16.mpay.GetRoutesRequest\x1a\x17.mpay.GetRoutesResponse\"\x00\x12G\n\x0cListPayments\x12\x19.mpay.ListPaymentsRequest\x1a\x1a.mpay.ListPaymentsResponse\"\x00\x12,\n\x03Pay\x12\x10.mpay.PayRequest\x1a\x11.mpay.PayResponse\"\x00\x12P\n\x0fResetPathMemory\x12\x1c.mpay.ResetPathMemoryRequest\x1a\x1d.mpay.ResetPathMemoryResponse\"\x00\x62\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\nmpay.proto\x12\x04mpay\"\x10\n\x0eGetInfoRequest\"\"\n\x0fGetInfoResponse\x12\x0f\n\x07version\x18\x01 \x01(\t\"\x98\x01\n\x10GetRoutesRequest\x12\x18\n\x0b\x64\x65stination\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x18\n\x0bmin_success\x18\x02 \x01(\x02H\x01\x88\x01\x01\x12\x1c\n\x0fmin_success_ema\x18\x03 \x01(\x02H\x02\x88\x01\x01\x42\x0e\n\x0c_destinationB\x0e\n\x0c_min_successB\x12\n\x10_min_success_ema\"\xa0\x02\n\x11GetRoutesResponse\x12\x33\n\x06routes\x18\x01 \x03(\x0b\x32#.mpay.GetRoutesResponse.RoutesEntry\x1a\x86\x01\n\x06Routes\x12\x34\n\x06routes\x18\x02 \x03(\x0b\x32$.mpay.GetRoutesResponse.Routes.Route\x1a\x46\n\x05Route\x12\r\n\x05route\x18\x01 \x03(\t\x12\x14\n\x0csuccess_rate\x18\x02 \x01(\x01\x12\x18\n\x10success_rate_ema\x18\x03 \x01(\x01\x1aM\n\x0bRoutesEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12-\n\x05value\x18\x02 \x01(\x0b\x32\x1e.mpay.GetRoutesResponse.Routes:\x02\x38\x01\"{\n\x13ListPaymentsRequest\x12\x10\n\x06\x62olt11\x18\x01 \x01(\tH\x00\x12\x16\n\x0cpayment_hash\x18\x02 \x01(\tH\x00\x12,\n\npagination\x18\x03 \x01(\x0b\x32\x16.mpay.PaginationParamsH\x00\x42\x0c\n\nidentifier\"1\n\x10PaginationParams\x12\x0e\n\x06offset\x18\x01 \x01(\x04\x12\r\n\x05limit\x18\x02 \x01(\r\"\xd2\x03\n\x14ListPaymentsResponse\x12\x34\n\x08payments\x18\x01 \x03(\x0b\x32\".mpay.ListPaymentsResponse.Payment\x1a\x83\x03\n\x07Payment\x12\n\n\x02id\x18\x01 \x01(\x04\x12\x13\n\x0b\x64\x65stination\x18\x02 \x01(\t\x12\x14\n\x0cpayment_hash\x18\x03 \x01(\t\x12\x0e\n\x06\x61mount\x18\x04 \x01(\x04\x12\n\n\x02ok\x18\x05 \x01(\x08\x12<\n\x08\x61ttempts\x18\x06 \x03(\x0b\x32*.mpay.ListPaymentsResponse.Payment.Attempt\x12\x12\n\ncreated_at\x18\x07 \x01(\x04\x1a\xd2\x01\n\x07\x41ttempt\x12\n\n\x02id\x18\x01 \x01(\x04\x12\n\n\x02ok\x18\x02 \x01(\x08\x12\x0c\n\x04time\x18\x03 \x01(\x04\x12<\n\x04hops\x18\x04 \x03(\x0b\x32..mpay.ListPaymentsResponse.Payment.Attempt.Hop\x12\x12\n\ncreated_at\x18\x05 \x01(\x04\x1aO\n\x03Hop\x12\n\n\x02id\x18\x01 \x01(\x04\x12\x0c\n\x04node\x18\x02 \x01(\t\x12\x0f\n\x07\x63hannel\x18\x03 \x01(\t\x12\x11\n\tdirection\x18\x04 \x01(\x04\x12\n\n\x02ok\x18\x05 \x01(\x08\"\xc2\x01\n\nPayRequest\x12\x0e\n\x06\x62olt11\x18\x01 \x01(\t\x12\x19\n\x0cmax_fee_msat\x18\x02 \x01(\x04H\x00\x88\x01\x01\x12\x1c\n\x0f\x65xempt_fee_msat\x18\x03 \x01(\x04H\x01\x88\x01\x01\x12\x14\n\x07timeout\x18\x04 \x01(\x04H\x02\x88\x01\x01\x12\x16\n\tmax_delay\x18\x05 \x01(\x04H\x03\x88\x01\x01\x42\x0f\n\r_max_fee_msatB\x12\n\x10_exempt_fee_msatB\n\n\x08_timeoutB\x0c\n\n_max_delay\"\xd4\x01\n\x0bPayResponse\x12\x14\n\x0cpayment_hash\x18\x01 \x01(\t\x12\x18\n\x10payment_preimage\x18\x02 \x01(\t\x12\x10\n\x08\x66\x65\x65_msat\x18\x03 \x01(\x04\x12\x0c\n\x04time\x18\x04 \x01(\x04\x12\x13\n\x0b\x64\x65stination\x18\x05 \x01(\t\x12\x13\n\x0b\x61mount_msat\x18\x06 \x01(\x04\x12\x18\n\x10\x61mount_sent_msat\x18\x07 \x01(\x04\x12\r\n\x05parts\x18\x08 \x01(\r\x12\x0e\n\x06status\x18\t \x01(\t\x12\x12\n\ncreated_at\x18\n \x01(\x04\"\xa0\x01\n\x16ResetPathMemoryRequest\x12%\n\x18\x65xclude_permanent_memory\x18\x01 \x01(\x08H\x00\x88\x01\x01\x12%\n\x18\x65xclude_temporary_memory\x18\x02 \x01(\x08H\x01\x88\x01\x01\x42\x1b\n\x19_exclude_permanent_memoryB\x1b\n\x19_exclude_temporary_memory\"K\n\x17ResetPathMemoryResponse\x12\x10\n\x08payments\x18\x01 \x01(\x04\x12\x10\n\x08\x61ttempts\x18\x02 \x01(\x04\x12\x0c\n\x04hops\x18\x03 \x01(\x04\x32\xc9\x02\n\x04Mpay\x12\x38\n\x07GetInfo\x12\x14.mpay.GetInfoRequest\x1a\x15.mpay.GetInfoResponse\"\x00\x12>\n\tGetRoutes\x12\x16.mpay.GetRoutesRequest\x1a\x17.mpay.GetRoutesResponse\"\x00\x12G\n\x0cListPayments\x12\x19.mpay.ListPaymentsRequest\x1a\x1a.mpay.ListPaymentsResponse\"\x00\x12,\n\x03Pay\x12\x10.mpay.PayRequest\x1a\x11.mpay.PayResponse\"\x00\x12P\n\x0fResetPathMemory\x12\x1c.mpay.ResetPathMemoryRequest\x1a\x1d.mpay.ResetPathMemoryResponse\"\x00\x62\x06proto3') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) @@ -38,23 +38,25 @@ _globals['_GETROUTESRESPONSE_ROUTESENTRY']._serialized_start=441 _globals['_GETROUTESRESPONSE_ROUTESENTRY']._serialized_end=518 _globals['_LISTPAYMENTSREQUEST']._serialized_start=520 - _globals['_LISTPAYMENTSREQUEST']._serialized_end=597 - _globals['_LISTPAYMENTSRESPONSE']._serialized_start=600 - _globals['_LISTPAYMENTSRESPONSE']._serialized_end=1066 - _globals['_LISTPAYMENTSRESPONSE_PAYMENT']._serialized_start=679 - _globals['_LISTPAYMENTSRESPONSE_PAYMENT']._serialized_end=1066 - _globals['_LISTPAYMENTSRESPONSE_PAYMENT_ATTEMPT']._serialized_start=856 - _globals['_LISTPAYMENTSRESPONSE_PAYMENT_ATTEMPT']._serialized_end=1066 - _globals['_LISTPAYMENTSRESPONSE_PAYMENT_ATTEMPT_HOP']._serialized_start=987 - _globals['_LISTPAYMENTSRESPONSE_PAYMENT_ATTEMPT_HOP']._serialized_end=1066 - _globals['_PAYREQUEST']._serialized_start=1069 - _globals['_PAYREQUEST']._serialized_end=1263 - _globals['_PAYRESPONSE']._serialized_start=1266 - _globals['_PAYRESPONSE']._serialized_end=1478 - _globals['_RESETPATHMEMORYREQUEST']._serialized_start=1481 - _globals['_RESETPATHMEMORYREQUEST']._serialized_end=1641 - _globals['_RESETPATHMEMORYRESPONSE']._serialized_start=1643 - _globals['_RESETPATHMEMORYRESPONSE']._serialized_end=1718 - _globals['_MPAY']._serialized_start=1721 - _globals['_MPAY']._serialized_end=2050 + _globals['_LISTPAYMENTSREQUEST']._serialized_end=643 + _globals['_PAGINATIONPARAMS']._serialized_start=645 + _globals['_PAGINATIONPARAMS']._serialized_end=694 + _globals['_LISTPAYMENTSRESPONSE']._serialized_start=697 + _globals['_LISTPAYMENTSRESPONSE']._serialized_end=1163 + _globals['_LISTPAYMENTSRESPONSE_PAYMENT']._serialized_start=776 + _globals['_LISTPAYMENTSRESPONSE_PAYMENT']._serialized_end=1163 + _globals['_LISTPAYMENTSRESPONSE_PAYMENT_ATTEMPT']._serialized_start=953 + _globals['_LISTPAYMENTSRESPONSE_PAYMENT_ATTEMPT']._serialized_end=1163 + _globals['_LISTPAYMENTSRESPONSE_PAYMENT_ATTEMPT_HOP']._serialized_start=1084 + _globals['_LISTPAYMENTSRESPONSE_PAYMENT_ATTEMPT_HOP']._serialized_end=1163 + _globals['_PAYREQUEST']._serialized_start=1166 + _globals['_PAYREQUEST']._serialized_end=1360 + _globals['_PAYRESPONSE']._serialized_start=1363 + _globals['_PAYRESPONSE']._serialized_end=1575 + _globals['_RESETPATHMEMORYREQUEST']._serialized_start=1578 + _globals['_RESETPATHMEMORYREQUEST']._serialized_end=1738 + _globals['_RESETPATHMEMORYRESPONSE']._serialized_start=1740 + _globals['_RESETPATHMEMORYRESPONSE']._serialized_end=1815 + _globals['_MPAY']._serialized_start=1818 + _globals['_MPAY']._serialized_end=2147 # @@protoc_insertion_point(module_scope) diff --git a/tools/plugins/mpay/protos/mpay_pb2.pyi b/tools/plugins/mpay/protos/mpay_pb2.pyi index a0f3b96c..32c7212e 100644 --- a/tools/plugins/mpay/protos/mpay_pb2.pyi +++ b/tools/plugins/mpay/protos/mpay_pb2.pyi @@ -53,12 +53,22 @@ class GetRoutesResponse(_message.Message): def __init__(self, routes: _Optional[_Mapping[str, GetRoutesResponse.Routes]] = ...) -> None: ... class ListPaymentsRequest(_message.Message): - __slots__ = ("bolt11", "payment_hash") + __slots__ = ("bolt11", "payment_hash", "pagination") BOLT11_FIELD_NUMBER: _ClassVar[int] PAYMENT_HASH_FIELD_NUMBER: _ClassVar[int] + PAGINATION_FIELD_NUMBER: _ClassVar[int] bolt11: str payment_hash: str - def __init__(self, bolt11: _Optional[str] = ..., payment_hash: _Optional[str] = ...) -> None: ... + pagination: PaginationParams + def __init__(self, bolt11: _Optional[str] = ..., payment_hash: _Optional[str] = ..., pagination: _Optional[_Union[PaginationParams, _Mapping]] = ...) -> None: ... + +class PaginationParams(_message.Message): + __slots__ = ("offset", "limit") + OFFSET_FIELD_NUMBER: _ClassVar[int] + LIMIT_FIELD_NUMBER: _ClassVar[int] + offset: int + limit: int + def __init__(self, offset: _Optional[int] = ..., limit: _Optional[int] = ...) -> None: ... class ListPaymentsResponse(_message.Message): __slots__ = ("payments",) diff --git a/tools/plugins/mpay/protos/mpay_pb2_grpc.py b/tools/plugins/mpay/protos/mpay_pb2_grpc.py index 6947b51b..1bfd9a07 100644 --- a/tools/plugins/mpay/protos/mpay_pb2_grpc.py +++ b/tools/plugins/mpay/protos/mpay_pb2_grpc.py @@ -5,7 +5,7 @@ import mpay_pb2 as mpay__pb2 -GRPC_GENERATED_VERSION = '1.65.4' +GRPC_GENERATED_VERSION = '1.65.5' GRPC_VERSION = grpc.__version__ EXPECTED_ERROR_RELEASE = '1.66.0' SCHEDULED_RELEASE_DATE = 'August 6, 2024' diff --git a/tools/plugins/mpay/rpc/server.py b/tools/plugins/mpay/rpc/server.py index 9a932484..f1023d5a 100644 --- a/tools/plugins/mpay/rpc/server.py +++ b/tools/plugins/mpay/rpc/server.py @@ -101,7 +101,14 @@ def ListPayments( # noqa: N802 payment_hash = bolt11_decode(request.bolt11).payment_hash with Session(self._db.engine) as s: - res = Payments.fetch(s, payment_hash) if payment_hash != "" else Payments.fetch_all(s) + if payment_hash != "": + res = Payments.fetch(s, payment_hash) + elif request.HasField("pagination"): + res = Payments.fetch_paginated( + s, request.pagination.offset, request.pagination.limit + ) + else: + res = Payments.fetch_all(s) return ListPaymentsResponse(payments=[payment_to_grpc(payment) for payment in res]) def ResetPathMemory( # noqa: N802 diff --git a/tools/plugins/mpay/rpc/tests/test_server.py b/tools/plugins/mpay/rpc/tests/test_server.py index da3c1126..4048fccb 100644 --- a/tools/plugins/mpay/rpc/tests/test_server.py +++ b/tools/plugins/mpay/rpc/tests/test_server.py @@ -27,6 +27,7 @@ GetRoutesResponse, ListPaymentsRequest, ListPaymentsResponse, + PaginationParams, PayRequest, PayResponse, ResetPathMemoryRequest, @@ -107,7 +108,7 @@ def test_get_routes_min_success( assert len(res.routes) == 0 def test_list_payments(self, cl: MpayStub) -> None: - res: ListPaymentsResponse = cl.ListPayments(ListPaymentsResponse()) + res: ListPaymentsResponse = cl.ListPayments(ListPaymentsRequest()) assert len(res.payments) == 2 for i, payment in enumerate(res.payments): @@ -121,6 +122,22 @@ def test_list_payments(self, cl: MpayStub) -> None: assert payment.ok assert len(payment.attempts) > 0 + res: ListPaymentsResponse = cl.ListPayments( + ListPaymentsRequest( + pagination=PaginationParams(offset=0, limit=1), + ) + ) + assert len(res.payments) == 1 + assert res.payments[0].id == 1 + + res: ListPaymentsResponse = cl.ListPayments( + ListPaymentsRequest( + pagination=PaginationParams(offset=1, limit=1), + ) + ) + assert len(res.payments) == 1 + assert res.payments[0].id == 2 + def test_list_payments_payment_hash(self, cl: MpayStub) -> None: payment_hash = cln_con("listpays")["pays"][-1]["payment_hash"] res: ListPaymentsResponse = cl.ListPayments(ListPaymentsRequest(payment_hash=payment_hash)) diff --git a/tools/poetry.lock b/tools/poetry.lock index d83c4a7c..818cd1ef 100644 --- a/tools/poetry.lock +++ b/tools/poetry.lock @@ -689,119 +689,119 @@ testing = ["protobuf (>=4.21.9)"] [[package]] name = "grpcio" -version = "1.64.1" +version = "1.65.5" description = "HTTP/2-based RPC framework" optional = false python-versions = ">=3.8" files = [ - {file = "grpcio-1.64.1-cp310-cp310-linux_armv7l.whl", hash = "sha256:55697ecec192bc3f2f3cc13a295ab670f51de29884ca9ae6cd6247df55df2502"}, - {file = "grpcio-1.64.1-cp310-cp310-macosx_12_0_universal2.whl", hash = "sha256:3b64ae304c175671efdaa7ec9ae2cc36996b681eb63ca39c464958396697daff"}, - {file = "grpcio-1.64.1-cp310-cp310-manylinux_2_17_aarch64.whl", hash = "sha256:bac71b4b28bc9af61efcdc7630b166440bbfbaa80940c9a697271b5e1dabbc61"}, - {file = "grpcio-1.64.1-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6c024ffc22d6dc59000faf8ad781696d81e8e38f4078cb0f2630b4a3cf231a90"}, - {file = "grpcio-1.64.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e7cd5c1325f6808b8ae31657d281aadb2a51ac11ab081ae335f4f7fc44c1721d"}, - {file = "grpcio-1.64.1-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:0a2813093ddb27418a4c99f9b1c223fab0b053157176a64cc9db0f4557b69bd9"}, - {file = "grpcio-1.64.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:2981c7365a9353f9b5c864595c510c983251b1ab403e05b1ccc70a3d9541a73b"}, - {file = "grpcio-1.64.1-cp310-cp310-win32.whl", hash = "sha256:1262402af5a511c245c3ae918167eca57342c72320dffae5d9b51840c4b2f86d"}, - {file = "grpcio-1.64.1-cp310-cp310-win_amd64.whl", hash = "sha256:19264fc964576ddb065368cae953f8d0514ecc6cb3da8903766d9fb9d4554c33"}, - {file = "grpcio-1.64.1-cp311-cp311-linux_armv7l.whl", hash = "sha256:58b1041e7c870bb30ee41d3090cbd6f0851f30ae4eb68228955d973d3efa2e61"}, - {file = "grpcio-1.64.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:bbc5b1d78a7822b0a84c6f8917faa986c1a744e65d762ef6d8be9d75677af2ca"}, - {file = "grpcio-1.64.1-cp311-cp311-manylinux_2_17_aarch64.whl", hash = "sha256:5841dd1f284bd1b3d8a6eca3a7f062b06f1eec09b184397e1d1d43447e89a7ae"}, - {file = "grpcio-1.64.1-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:8caee47e970b92b3dd948371230fcceb80d3f2277b3bf7fbd7c0564e7d39068e"}, - {file = "grpcio-1.64.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:73819689c169417a4f978e562d24f2def2be75739c4bed1992435d007819da1b"}, - {file = "grpcio-1.64.1-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:6503b64c8b2dfad299749cad1b595c650c91e5b2c8a1b775380fcf8d2cbba1e9"}, - {file = "grpcio-1.64.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:1de403fc1305fd96cfa75e83be3dee8538f2413a6b1685b8452301c7ba33c294"}, - {file = "grpcio-1.64.1-cp311-cp311-win32.whl", hash = "sha256:d4d29cc612e1332237877dfa7fe687157973aab1d63bd0f84cf06692f04c0367"}, - {file = "grpcio-1.64.1-cp311-cp311-win_amd64.whl", hash = "sha256:5e56462b05a6f860b72f0fa50dca06d5b26543a4e88d0396259a07dc30f4e5aa"}, - {file = "grpcio-1.64.1-cp312-cp312-linux_armv7l.whl", hash = "sha256:4657d24c8063e6095f850b68f2d1ba3b39f2b287a38242dcabc166453e950c59"}, - {file = "grpcio-1.64.1-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:62b4e6eb7bf901719fce0ca83e3ed474ae5022bb3827b0a501e056458c51c0a1"}, - {file = "grpcio-1.64.1-cp312-cp312-manylinux_2_17_aarch64.whl", hash = "sha256:ee73a2f5ca4ba44fa33b4d7d2c71e2c8a9e9f78d53f6507ad68e7d2ad5f64a22"}, - {file = "grpcio-1.64.1-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:198908f9b22e2672a998870355e226a725aeab327ac4e6ff3a1399792ece4762"}, - {file = "grpcio-1.64.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:39b9d0acaa8d835a6566c640f48b50054f422d03e77e49716d4c4e8e279665a1"}, - {file = "grpcio-1.64.1-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:5e42634a989c3aa6049f132266faf6b949ec2a6f7d302dbb5c15395b77d757eb"}, - {file = "grpcio-1.64.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:b1a82e0b9b3022799c336e1fc0f6210adc019ae84efb7321d668129d28ee1efb"}, - {file = "grpcio-1.64.1-cp312-cp312-win32.whl", hash = "sha256:55260032b95c49bee69a423c2f5365baa9369d2f7d233e933564d8a47b893027"}, - {file = "grpcio-1.64.1-cp312-cp312-win_amd64.whl", hash = "sha256:c1a786ac592b47573a5bb7e35665c08064a5d77ab88a076eec11f8ae86b3e3f6"}, - {file = "grpcio-1.64.1-cp38-cp38-linux_armv7l.whl", hash = "sha256:a011ac6c03cfe162ff2b727bcb530567826cec85eb8d4ad2bfb4bd023287a52d"}, - {file = "grpcio-1.64.1-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:4d6dab6124225496010bd22690f2d9bd35c7cbb267b3f14e7a3eb05c911325d4"}, - {file = "grpcio-1.64.1-cp38-cp38-manylinux_2_17_aarch64.whl", hash = "sha256:a5e771d0252e871ce194d0fdcafd13971f1aae0ddacc5f25615030d5df55c3a2"}, - {file = "grpcio-1.64.1-cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:2c3c1b90ab93fed424e454e93c0ed0b9d552bdf1b0929712b094f5ecfe7a23ad"}, - {file = "grpcio-1.64.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:20405cb8b13fd779135df23fabadc53b86522d0f1cba8cca0e87968587f50650"}, - {file = "grpcio-1.64.1-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:0cc79c982ccb2feec8aad0e8fb0d168bcbca85bc77b080d0d3c5f2f15c24ea8f"}, - {file = "grpcio-1.64.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:a3a035c37ce7565b8f4f35ff683a4db34d24e53dc487e47438e434eb3f701b2a"}, - {file = "grpcio-1.64.1-cp38-cp38-win32.whl", hash = "sha256:1257b76748612aca0f89beec7fa0615727fd6f2a1ad580a9638816a4b2eb18fd"}, - {file = "grpcio-1.64.1-cp38-cp38-win_amd64.whl", hash = "sha256:0a12ddb1678ebc6a84ec6b0487feac020ee2b1659cbe69b80f06dbffdb249122"}, - {file = "grpcio-1.64.1-cp39-cp39-linux_armv7l.whl", hash = "sha256:75dbbf415026d2862192fe1b28d71f209e2fd87079d98470db90bebe57b33179"}, - {file = "grpcio-1.64.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:e3d9f8d1221baa0ced7ec7322a981e28deb23749c76eeeb3d33e18b72935ab62"}, - {file = "grpcio-1.64.1-cp39-cp39-manylinux_2_17_aarch64.whl", hash = "sha256:5f8b75f64d5d324c565b263c67dbe4f0af595635bbdd93bb1a88189fc62ed2e5"}, - {file = "grpcio-1.64.1-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c84ad903d0d94311a2b7eea608da163dace97c5fe9412ea311e72c3684925602"}, - {file = "grpcio-1.64.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:940e3ec884520155f68a3b712d045e077d61c520a195d1a5932c531f11883489"}, - {file = "grpcio-1.64.1-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:f10193c69fc9d3d726e83bbf0f3d316f1847c3071c8c93d8090cf5f326b14309"}, - {file = "grpcio-1.64.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:ac15b6c2c80a4d1338b04d42a02d376a53395ddf0ec9ab157cbaf44191f3ffdd"}, - {file = "grpcio-1.64.1-cp39-cp39-win32.whl", hash = "sha256:03b43d0ccf99c557ec671c7dede64f023c7da9bb632ac65dbc57f166e4970040"}, - {file = "grpcio-1.64.1-cp39-cp39-win_amd64.whl", hash = "sha256:ed6091fa0adcc7e4ff944090cf203a52da35c37a130efa564ded02b7aff63bcd"}, - {file = "grpcio-1.64.1.tar.gz", hash = "sha256:8d51dd1c59d5fa0f34266b80a3805ec29a1f26425c2a54736133f6d87fc4968a"}, + {file = "grpcio-1.65.5-cp310-cp310-linux_armv7l.whl", hash = "sha256:b67d450f1e008fedcd81e097a3a400a711d8be1a8b20f852a7b8a73fead50fe3"}, + {file = "grpcio-1.65.5-cp310-cp310-macosx_12_0_universal2.whl", hash = "sha256:a70a20eed87bba647a38bedd93b3ce7db64b3f0e8e0952315237f7f5ca97b02d"}, + {file = "grpcio-1.65.5-cp310-cp310-manylinux_2_17_aarch64.whl", hash = "sha256:f79c87c114bf37adf408026b9e2e333fe9ff31dfc9648f6f80776c513145c813"}, + {file = "grpcio-1.65.5-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f17f9fa2d947dbfaca01b3ab2c62eefa8240131fdc67b924eb42ce6032e3e5c1"}, + {file = "grpcio-1.65.5-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:32d60e18ff7c34fe3f6db3d35ad5c6dc99f5b43ff3982cb26fad4174462d10b1"}, + {file = "grpcio-1.65.5-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:fe6505376f5b00bb008e4e1418152e3ad3d954b629da286c7913ff3cfc0ff740"}, + {file = "grpcio-1.65.5-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:33158e56c6378063923c417e9fbdb28660b6e0e2835af42e67f5a7793f587af7"}, + {file = "grpcio-1.65.5-cp310-cp310-win32.whl", hash = "sha256:1cbc208edb9acf1cc339396a1a36b83796939be52f34e591c90292045b579fbf"}, + {file = "grpcio-1.65.5-cp310-cp310-win_amd64.whl", hash = "sha256:bc74f3f745c37e2c5685c9d2a2d5a94de00f286963f5213f763ae137bf4f2358"}, + {file = "grpcio-1.65.5-cp311-cp311-linux_armv7l.whl", hash = "sha256:3207ae60d07e5282c134b6e02f9271a2cb523c6d7a346c6315211fe2bf8d61ed"}, + {file = "grpcio-1.65.5-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:a2f80510f99f82d4eb825849c486df703f50652cea21c189eacc2b84f2bde764"}, + {file = "grpcio-1.65.5-cp311-cp311-manylinux_2_17_aarch64.whl", hash = "sha256:a80e9a5e3f93c54f5eb82a3825ea1fc4965b2fa0026db2abfecb139a5c4ecdf1"}, + {file = "grpcio-1.65.5-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0b2944390a496567de9e70418f3742b477d85d8ca065afa90432edc91b4bb8ad"}, + {file = "grpcio-1.65.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c3655139d7be213c32c79ef6fb2367cae28e56ef68e39b1961c43214b457f257"}, + {file = "grpcio-1.65.5-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:05f02d68fc720e085f061b704ee653b181e6d5abfe315daef085719728d3d1fd"}, + {file = "grpcio-1.65.5-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:1c4caafe71aef4dabf53274bbf4affd6df651e9f80beedd6b8e08ff438ed3260"}, + {file = "grpcio-1.65.5-cp311-cp311-win32.whl", hash = "sha256:84c901cdec16a092099f251ef3360d15e29ef59772150fa261d94573612539b5"}, + {file = "grpcio-1.65.5-cp311-cp311-win_amd64.whl", hash = "sha256:11f8b16121768c1cb99d7dcb84e01510e60e6a206bf9123e134118802486f035"}, + {file = "grpcio-1.65.5-cp312-cp312-linux_armv7l.whl", hash = "sha256:ee6ed64a27588a2c94e8fa84fe8f3b5c89427d4d69c37690903d428ec61ca7e4"}, + {file = "grpcio-1.65.5-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:76991b7a6fb98630a3328839755181ce7c1aa2b1842aa085fd4198f0e5198960"}, + {file = "grpcio-1.65.5-cp312-cp312-manylinux_2_17_aarch64.whl", hash = "sha256:89c00a18801b1ed9cc441e29b521c354725d4af38c127981f2c950c796a09b6e"}, + {file = "grpcio-1.65.5-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:078038e150a897e5e402ed3d57f1d31ebf604cbed80f595bd281b5da40762a92"}, + {file = "grpcio-1.65.5-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c97962720489ef31b5ad8a916e22bc31bba3664e063fb9f6702dce056d4aa61b"}, + {file = "grpcio-1.65.5-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:b8270b15b99781461b244f5c81d5c2bc9696ab9189fb5ff86c841417fb3b39fe"}, + {file = "grpcio-1.65.5-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:8e5c4c15ac3fe1eb68e46bc51e66ad29be887479f231f8237cf8416058bf0cc1"}, + {file = "grpcio-1.65.5-cp312-cp312-win32.whl", hash = "sha256:f5b5970341359341d0e4c789da7568264b2a89cd976c05ea476036852b5950cd"}, + {file = "grpcio-1.65.5-cp312-cp312-win_amd64.whl", hash = "sha256:238a625f391a1b9f5f069bdc5930f4fd71b74426bea52196fc7b83f51fa97d34"}, + {file = "grpcio-1.65.5-cp38-cp38-linux_armv7l.whl", hash = "sha256:6c4e62bcf297a1568f627f39576dbfc27f1e5338a691c6dd5dd6b3979da51d1c"}, + {file = "grpcio-1.65.5-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:d7df567b67d16d4177835a68d3f767bbcbad04da9dfb52cbd19171f430c898bd"}, + {file = "grpcio-1.65.5-cp38-cp38-manylinux_2_17_aarch64.whl", hash = "sha256:b7ca419f1462390851eec395b2089aad1e49546b52d4e2c972ceb76da69b10f8"}, + {file = "grpcio-1.65.5-cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:fa36dd8496d3af0d40165252a669fa4f6fd2db4b4026b9a9411cbf060b9d6a15"}, + {file = "grpcio-1.65.5-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a101696f9ece90a0829988ff72f1b1ea2358f3df035bdf6d675dd8b60c2c0894"}, + {file = "grpcio-1.65.5-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:2a6d8169812932feac514b420daffae8ab8e36f90f3122b94ae767e633296b17"}, + {file = "grpcio-1.65.5-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:47d0aaaab82823f0aa6adea5184350b46e2252e13a42a942db84da5b733f2e05"}, + {file = "grpcio-1.65.5-cp38-cp38-win32.whl", hash = "sha256:85ae8f8517d5bcc21fb07dbf791e94ed84cc28f84c903cdc2bd7eaeb437c8f45"}, + {file = "grpcio-1.65.5-cp38-cp38-win_amd64.whl", hash = "sha256:770bd4bd721961f6dd8049bc27338564ba8739913f77c0f381a9815e465ff965"}, + {file = "grpcio-1.65.5-cp39-cp39-linux_armv7l.whl", hash = "sha256:ab5ec837d8cee8dbce9ef6386125f119b231e4333cc6b6d57b6c5c7c82a72331"}, + {file = "grpcio-1.65.5-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:cabd706183ee08d8026a015af5819a0b3a8959bdc9d1f6fdacd1810f09200f2a"}, + {file = "grpcio-1.65.5-cp39-cp39-manylinux_2_17_aarch64.whl", hash = "sha256:ec71fc5b39821ad7d80db7473c8f8c2910f3382f0ddadfbcfc2c6c437107eb67"}, + {file = "grpcio-1.65.5-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d3a9e35bcb045e39d7cac30464c285389b9a816ac2067e4884ad2c02e709ef8e"}, + {file = "grpcio-1.65.5-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d750e9330eb14236ca11b78d0c494eed13d6a95eb55472298f0e547c165ee324"}, + {file = "grpcio-1.65.5-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:2b91ce647b6307f25650872454a4d02a2801f26a475f90d0b91ed8110baae589"}, + {file = "grpcio-1.65.5-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:8da58ff80bc4556cf29bc03f5fff1f03b8387d6aaa7b852af9eb65b2cf833be4"}, + {file = "grpcio-1.65.5-cp39-cp39-win32.whl", hash = "sha256:7a412959aa5f08c5ac04aa7b7c3c041f5e4298cadd4fcc2acff195b56d185ebc"}, + {file = "grpcio-1.65.5-cp39-cp39-win_amd64.whl", hash = "sha256:55714ea852396ec9568f45f487639945ab674de83c12bea19d5ddbc3ae41ada3"}, + {file = "grpcio-1.65.5.tar.gz", hash = "sha256:ec6f219fb5d677a522b0deaf43cea6697b16f338cb68d009e30930c4aa0d2209"}, ] [package.extras] -protobuf = ["grpcio-tools (>=1.64.1)"] +protobuf = ["grpcio-tools (>=1.65.5)"] [[package]] name = "grpcio-tools" -version = "1.64.1" +version = "1.65.5" description = "Protobuf code generator for gRPC" optional = false python-versions = ">=3.8" files = [ - {file = "grpcio_tools-1.64.1-cp310-cp310-linux_armv7l.whl", hash = "sha256:6c8181318e3a21827c2f834fd0505040aa8f24fb568a154ff1c95c9802c0e3f5"}, - {file = "grpcio_tools-1.64.1-cp310-cp310-macosx_12_0_universal2.whl", hash = "sha256:24340327f7fb85f7406910c9484f98dd9588bdf639578b9341920d67f64306a0"}, - {file = "grpcio_tools-1.64.1-cp310-cp310-manylinux_2_17_aarch64.whl", hash = "sha256:646828eec31218e1314b04d7c62c78534d3478cae6348909b6a39ee880a757b2"}, - {file = "grpcio_tools-1.64.1-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1f467bd03d70de23e7d68d3465fd9bfd5167d15168a569edacee730b4ec105bf"}, - {file = "grpcio_tools-1.64.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a29163cbc6ecaf6f853711420ddab7e35f24d9ee014a5e35b0a6b31c328d1c63"}, - {file = "grpcio_tools-1.64.1-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:759982ba0f942995bf170386559679b9d9f3b00caf103f346f3c33b8703c3057"}, - {file = "grpcio_tools-1.64.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:1c0db41e812e1741b59844c71c8dfc8c3076eb4472b4c30165aefacf609c81bf"}, - {file = "grpcio_tools-1.64.1-cp310-cp310-win32.whl", hash = "sha256:a5208855046a338c5663ca39f59fb167e24514f1287c266db42fbf2057373aa0"}, - {file = "grpcio_tools-1.64.1-cp310-cp310-win_amd64.whl", hash = "sha256:a808aaa308e26fc5026b15008aec45bea8aa2f2662989cbaffa300601ac98fae"}, - {file = "grpcio_tools-1.64.1-cp311-cp311-linux_armv7l.whl", hash = "sha256:23e6c847647e338b6ed139c7d10ed783dbb37d8ce078ce9ab0a3f7e6a518ff4e"}, - {file = "grpcio_tools-1.64.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:0a72a2d87529329117fca6493d948489f1963e3f645d27a785a27b54b05c38cb"}, - {file = "grpcio_tools-1.64.1-cp311-cp311-manylinux_2_17_aarch64.whl", hash = "sha256:5532fbac9e1229d3290a512d4253bd311ed742d3b77d634ce7240e97b4af32ac"}, - {file = "grpcio_tools-1.64.1-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4a75c8f13762dc323b38e8dc7186d80a61c0d1321062850e3056221a4db779a4"}, - {file = "grpcio_tools-1.64.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a653002b287accf79b0924bb1a76b33ea83774be57cef14e6ec383a965999ad5"}, - {file = "grpcio_tools-1.64.1-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:0d3572b62453342f4164cb245c434053c6991ee7bf883eb94f15e45f3121967b"}, - {file = "grpcio_tools-1.64.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:e8ffaa1972e64d968a706c954f6614e718abd10068b107727028ffb9506503d2"}, - {file = "grpcio_tools-1.64.1-cp311-cp311-win32.whl", hash = "sha256:cf3fbad6312bb61f48eab8ae5d2b31dcb007653282d5901982e17111773104e1"}, - {file = "grpcio_tools-1.64.1-cp311-cp311-win_amd64.whl", hash = "sha256:fd4a596ec2b34c8a6b15c6581ef7ea91c9b85f68099004da656db79e5a2b7a8c"}, - {file = "grpcio_tools-1.64.1-cp312-cp312-linux_armv7l.whl", hash = "sha256:acf9a8bce188bb760c138327a89f64be8bbeb062634d151c77bbcd138d60bdc6"}, - {file = "grpcio_tools-1.64.1-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:8c7d0633b1177fafaeb76e9b0c7b8b14221eb1086874a79925879b298843f8a0"}, - {file = "grpcio_tools-1.64.1-cp312-cp312-manylinux_2_17_aarch64.whl", hash = "sha256:35efe38dd8cc5e05f44e67bcc2ae40f461862549b5d2590c1b644c5d4d93c390"}, - {file = "grpcio_tools-1.64.1-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e28cfaede2a243452252c94b72378f1d939b786689cb11d218fdae6a8421940f"}, - {file = "grpcio_tools-1.64.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6711f3e3fbfae9313e15f9abc47241d881772f3fb4e4d0257918bff24363139e"}, - {file = "grpcio_tools-1.64.1-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:be39db97d13f3bd0b2ff9bf8d0e68f590f4877cf2c4db201a2f9d4d39724e137"}, - {file = "grpcio_tools-1.64.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:22efb9a167da6fd051c76f1a00c4275b5d15e8b7842364c84dc4cc88def8fd4c"}, - {file = "grpcio_tools-1.64.1-cp312-cp312-win32.whl", hash = "sha256:d9a470f9e72bccc8994b025fa40cb1a7202db17a5f8e1869f4c2079ded869ac2"}, - {file = "grpcio_tools-1.64.1-cp312-cp312-win_amd64.whl", hash = "sha256:5ecfecf1da38fa9f0f95dd5f3314c04974be5af40264c520fbc1a9f4f5b1acca"}, - {file = "grpcio_tools-1.64.1-cp38-cp38-linux_armv7l.whl", hash = "sha256:9d3fd5f43503ac594872ad4deb80c08353a3d73c9304afe0226bcb077d5dacca"}, - {file = "grpcio_tools-1.64.1-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:c8cb5567cd5836b29d37ea12c8ccb753a19712ec459c4dbc05c084ca57b84b3b"}, - {file = "grpcio_tools-1.64.1-cp38-cp38-manylinux_2_17_aarch64.whl", hash = "sha256:d0f42307f951851894a1ddcbed2e2403fdb0ac0920bbb4ec5c80a2959a1d328d"}, - {file = "grpcio_tools-1.64.1-cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a078af44be25363f55cbedc33c560513f2b2928a0594c8069da0bc65917ef1a1"}, - {file = "grpcio_tools-1.64.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:58eee15287eb54d1ba27d4e73fcd7e7a9f819e529a74dabc9cf3933fbe3bef07"}, - {file = "grpcio_tools-1.64.1-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:b740e136a12a992c3c75dafe12d96c65e9249daa71e6b75f17aac5459c64f165"}, - {file = "grpcio_tools-1.64.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:625cc1493d4672af90d23f9909bbc0c4041cfa9fa21f9228abe433f5ad9b356f"}, - {file = "grpcio_tools-1.64.1-cp38-cp38-win32.whl", hash = "sha256:85808e3c020d6e08975be00521ec8841885740ffd84a48375305fe7198d8b9e5"}, - {file = "grpcio_tools-1.64.1-cp38-cp38-win_amd64.whl", hash = "sha256:37664461c8da4777c78772f79914ddd59914a4c1dc0bdd11ba86b569477a9d25"}, - {file = "grpcio_tools-1.64.1-cp39-cp39-linux_armv7l.whl", hash = "sha256:ff9b631788573bfbecfe8cb647d484dfac9cfbad4a7bb640a9e5dcfb24a1b3c5"}, - {file = "grpcio_tools-1.64.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:7e67903fba7b122cad7e41b1347c71f2d8e484f51f5c91cacc52249b4ab274bf"}, - {file = "grpcio_tools-1.64.1-cp39-cp39-manylinux_2_17_aarch64.whl", hash = "sha256:6cef267289e3a1257ef79c399a4a244a2b508c4f8d28faf9b061983187b8c2ff"}, - {file = "grpcio_tools-1.64.1-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:23eef1138065edf360ed649381cf1d9c9123b3a8c003a4b28bf0c4a5b025087a"}, - {file = "grpcio_tools-1.64.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ba0758d779bc2134219c9ee392d7d30a7ff7f788fd68bf4f56bb4a0213e5d2e4"}, - {file = "grpcio_tools-1.64.1-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:a8fb6a4438ef1ce619bd6695799b0a06c049a0be3e10ecf0b5fc5d72929a9f02"}, - {file = "grpcio_tools-1.64.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:3cc3036589e416cf8516802d3e6c37fd7de1b6c4defc292a1859848515c67ab5"}, - {file = "grpcio_tools-1.64.1-cp39-cp39-win32.whl", hash = "sha256:59db889e5f698e00ea65032d3fddbfdbec72b22b285a57c167fb7a48bce2ca27"}, - {file = "grpcio_tools-1.64.1-cp39-cp39-win_amd64.whl", hash = "sha256:984ed040f13efcede72c4dfb298274df3877573ca305f51f5cb24249463d6a77"}, - {file = "grpcio_tools-1.64.1.tar.gz", hash = "sha256:72b3550b91adb8354656ecf0f6d1d4611299044bae11fb1e7cc1d1bb66b8c1eb"}, + {file = "grpcio_tools-1.65.5-cp310-cp310-linux_armv7l.whl", hash = "sha256:f141f247a93e4c7faf33ac683a9cab93bb6570946a219260d33e2e62079db6e8"}, + {file = "grpcio_tools-1.65.5-cp310-cp310-macosx_12_0_universal2.whl", hash = "sha256:a6d05950c62024ac54dfb7b7987fd45e22e832143aa88768439aa12073e9d035"}, + {file = "grpcio_tools-1.65.5-cp310-cp310-manylinux_2_17_aarch64.whl", hash = "sha256:675df59961e2ab7808a3c0222ad995d8886bbbb7e77000fba1059214c9ce3e09"}, + {file = "grpcio_tools-1.65.5-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:fe5a21e4970cc2555066ba37c7c743749ccd0bd056d4262e97678927c586def8"}, + {file = "grpcio_tools-1.65.5-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9d0d7d34b4b3fba78075a923de2f962b33bcc04926569966c00219d5f41f2589"}, + {file = "grpcio_tools-1.65.5-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:474d5905ee0700662b42f71ce2fc5901786c88d5a54c08749fa5bccae1db27af"}, + {file = "grpcio_tools-1.65.5-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:0f698f34be22a89426f986310ee866b8faa812355aab5d241fdaf742b546c36c"}, + {file = "grpcio_tools-1.65.5-cp310-cp310-win32.whl", hash = "sha256:3d8cee4c1f0bca80115cfa99f25ab6e6c6797b4443b1f0d5fa949bf2e9ac5af9"}, + {file = "grpcio_tools-1.65.5-cp310-cp310-win_amd64.whl", hash = "sha256:ac013d5d118dfafc887c3da1649dbd5087a7161d969dab236050e54c55fa0725"}, + {file = "grpcio_tools-1.65.5-cp311-cp311-linux_armv7l.whl", hash = "sha256:553b3f406a681719f6c11e70c993fe77383ab6adead9173ad1c6a611e5aaaf48"}, + {file = "grpcio_tools-1.65.5-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:2a520fbb9be5a05b5a0cdb5c5d481f63fea5db2f048f47f19b613685009890f2"}, + {file = "grpcio_tools-1.65.5-cp311-cp311-manylinux_2_17_aarch64.whl", hash = "sha256:eca7be231ba6de3ac38556dcba1f94c05422e7cc62341bc2787ac9881aed3026"}, + {file = "grpcio_tools-1.65.5-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:cd1e9134e266fefdd49e1c9989d1bdf74578a9f237d7d9df01d871d898deda9b"}, + {file = "grpcio_tools-1.65.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:777243e4f7152da9d226d9cc1e6d7c2b94335e267c618260e6255a063bb7dfcb"}, + {file = "grpcio_tools-1.65.5-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:a2e63bf9b6444f28ec684faf3c5fc8394b035fe221842186c3b9ff0121c20534"}, + {file = "grpcio_tools-1.65.5-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:969c0b5079beb08ae0a22237652289bfc0e34602403e040bab419f46cb775e50"}, + {file = "grpcio_tools-1.65.5-cp311-cp311-win32.whl", hash = "sha256:b9aefd9dc742c20bc5fb16f497f6d04b4f4f5c7d44cc86654a334ce7ea9c8021"}, + {file = "grpcio_tools-1.65.5-cp311-cp311-win_amd64.whl", hash = "sha256:ba27d67421dad33cbb42cdcd144dabed0516f0a5ee48d37250dd1b37c97cca72"}, + {file = "grpcio_tools-1.65.5-cp312-cp312-linux_armv7l.whl", hash = "sha256:b48943492a7c00a3ce6d7159c37761d006085f7dcd4a13931dcc74ecb8a24b56"}, + {file = "grpcio_tools-1.65.5-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:ef44822eee4834158eb03cd432e4cf7e716d7d03051cc8314be4956ee9e9da3f"}, + {file = "grpcio_tools-1.65.5-cp312-cp312-manylinux_2_17_aarch64.whl", hash = "sha256:6077a87bb3028797175dd437e08ff42b559045f9588a14eb9c943dd8bde32dcc"}, + {file = "grpcio_tools-1.65.5-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:8ee220c430f87378c598b7217c8c32ce7aeab3d8a93bc92cee92ce6940d870dd"}, + {file = "grpcio_tools-1.65.5-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c86a003bfcbf98b6261a89c2aad97197672c99d057fe441440210f052c9b54f1"}, + {file = "grpcio_tools-1.65.5-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:475ef5e8d91cbcf9bd9edbf51ac135931853d1c2fe6f8ae0c496b9ef422b41e4"}, + {file = "grpcio_tools-1.65.5-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:e680b32e90c42d08363a02e9971e690bcf2509cb7bf647e232113b3e777eac9a"}, + {file = "grpcio_tools-1.65.5-cp312-cp312-win32.whl", hash = "sha256:cc6b010bc26566ca35e858a94daa18992a02e7b70f688a78f3308dada54fc063"}, + {file = "grpcio_tools-1.65.5-cp312-cp312-win_amd64.whl", hash = "sha256:3ddce72654ce415cbe36561b5e124fc0fcb461582e829016b7aa726824bcadc9"}, + {file = "grpcio_tools-1.65.5-cp38-cp38-linux_armv7l.whl", hash = "sha256:e5ae4a000c3344c32c1fa63e137ef42e65eae9adb5576dab636e3bc092653ae6"}, + {file = "grpcio_tools-1.65.5-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:23bce4fcee7cad2e085923fdfd65ed2bd2173bfc298c8c8964d3dddaef1f49ae"}, + {file = "grpcio_tools-1.65.5-cp38-cp38-manylinux_2_17_aarch64.whl", hash = "sha256:56617905a4e478132b3732fd9dda71e35f1e7adedd34c92248c9a04a3892cb01"}, + {file = "grpcio_tools-1.65.5-cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:5c38a8dc81900b7211fc5b1a14ace7f4ffd8cfbfd17e504f40044f0918b99825"}, + {file = "grpcio_tools-1.65.5-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:13b4f00f66a3f024e9bfaf535e2be8a373ada199eb928507945685208bf29536"}, + {file = "grpcio_tools-1.65.5-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:b2072ad56bec624d0190e605c6b56205a6336f31a35617b90d927791c14aa4ad"}, + {file = "grpcio_tools-1.65.5-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:c8f8241b859413b8f0c5c8cfd4d9021862d29cf090e60fb8b30968737b575b52"}, + {file = "grpcio_tools-1.65.5-cp38-cp38-win32.whl", hash = "sha256:e099bff2328931064aef565e811a7ce6ecbe7359c4d377534eee12dc6c35deb8"}, + {file = "grpcio_tools-1.65.5-cp38-cp38-win_amd64.whl", hash = "sha256:bf78ed1cfc9304dca4d1a5ec578a91b65a5946bf4ee923358a721fb47e35ffdf"}, + {file = "grpcio_tools-1.65.5-cp39-cp39-linux_armv7l.whl", hash = "sha256:02ed771ce6aea1a5620d818ae41380a7fcf65c6d499c53d1ddaf6ded882640a9"}, + {file = "grpcio_tools-1.65.5-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:5b6a50253f950fd02caff90a021d6564731a86ffad38b7c0a76423f6ed58e779"}, + {file = "grpcio_tools-1.65.5-cp39-cp39-manylinux_2_17_aarch64.whl", hash = "sha256:8848d509b88631be77b4c40119c02a37d0e884d10b10f0ddb1e3e551d7023b0d"}, + {file = "grpcio_tools-1.65.5-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:853ebfa33ed5336b51d0fa5d068bd5b42cb84d09077670ffa6b2dc7980f000cd"}, + {file = "grpcio_tools-1.65.5-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:221fd8f4c3f54ced15d9dac2b8800fd1b254bf9cd29414d500ce6f7ddb59be25"}, + {file = "grpcio_tools-1.65.5-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:b6b33e23bfc6919c71329dabec632e7693de62efbed24b3e34616c09827909d8"}, + {file = "grpcio_tools-1.65.5-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:21122fa43c48e15ff0d656258f942fdf7c3ed2b7ab1530c7d37d3027b71a5872"}, + {file = "grpcio_tools-1.65.5-cp39-cp39-win32.whl", hash = "sha256:0e092c51089251f41e6e2c03519311509162be3aba2c71a91983d7d86ed300f3"}, + {file = "grpcio_tools-1.65.5-cp39-cp39-win_amd64.whl", hash = "sha256:2819a3a50c61306074cc95938db97e365acfca873b2cce986ad2d1f519d51f2f"}, + {file = "grpcio_tools-1.65.5.tar.gz", hash = "sha256:7c3a47ad0070bc907c7818caf55aa1948e9282d24e27afd21015872a25594bc7"}, ] [package.dependencies] -grpcio = ">=1.64.1" +grpcio = ">=1.65.5" protobuf = ">=5.26.1,<6.0dev" setuptools = "*" @@ -909,6 +909,7 @@ optional = false python-versions = ">=3.9" files = [ {file = "pandas-2.2.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:90c6fca2acf139569e74e8781709dccb6fe25940488755716d1d354d6bc58bce"}, + {file = "pandas-2.2.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:c7adfc142dac335d8c1e0dcbd37eb8617eac386596eb9e1a1b77791cf2498238"}, {file = "pandas-2.2.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4abfe0be0d7221be4f12552995e58723c7422c80a659da13ca382697de830c08"}, {file = "pandas-2.2.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8635c16bf3d99040fdf3ca3db669a7250ddf49c55dc4aa8fe0ae0fa8d6dcc1f0"}, {file = "pandas-2.2.2-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:40ae1dffb3967a52203105a077415a86044a2bea011b5f321c6aa64b379a3f51"}, @@ -922,12 +923,14 @@ files = [ {file = "pandas-2.2.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:0cace394b6ea70c01ca1595f839cf193df35d1575986e484ad35c4aeae7266c1"}, {file = "pandas-2.2.2-cp311-cp311-win_amd64.whl", hash = "sha256:873d13d177501a28b2756375d59816c365e42ed8417b41665f346289adc68d24"}, {file = "pandas-2.2.2-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:9dfde2a0ddef507a631dc9dc4af6a9489d5e2e740e226ad426a05cabfbd7c8ef"}, + {file = "pandas-2.2.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:e9b79011ff7a0f4b1d6da6a61aa1aa604fb312d6647de5bad20013682d1429ce"}, {file = "pandas-2.2.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1cb51fe389360f3b5a4d57dbd2848a5f033350336ca3b340d1c53a1fad33bcad"}, {file = "pandas-2.2.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:eee3a87076c0756de40b05c5e9a6069c035ba43e8dd71c379e68cab2c20f16ad"}, {file = "pandas-2.2.2-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:3e374f59e440d4ab45ca2fffde54b81ac3834cf5ae2cdfa69c90bc03bde04d76"}, {file = "pandas-2.2.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:43498c0bdb43d55cb162cdc8c06fac328ccb5d2eabe3cadeb3529ae6f0517c32"}, {file = "pandas-2.2.2-cp312-cp312-win_amd64.whl", hash = "sha256:d187d355ecec3629624fccb01d104da7d7f391db0311145817525281e2804d23"}, {file = "pandas-2.2.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:0ca6377b8fca51815f382bd0b697a0814c8bda55115678cbc94c30aacbb6eff2"}, + {file = "pandas-2.2.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:9057e6aa78a584bc93a13f0a9bf7e753a5e9770a30b4d758b8d5f2a62a9433cd"}, {file = "pandas-2.2.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:001910ad31abc7bf06f49dcc903755d2f7f3a9186c0c040b827e522e9cef0863"}, {file = "pandas-2.2.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:66b479b0bd07204e37583c191535505410daa8df638fd8e75ae1b383851fe921"}, {file = "pandas-2.2.2-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:a77e9d1c386196879aa5eb712e77461aaee433e54c68cf253053a73b7e49c33a"}, @@ -1559,4 +1562,4 @@ zstd = ["zstandard (>=0.18.0)"] [metadata] lock-version = "2.0" python-versions = ">=3.10,<3.13" -content-hash = "47c9299547b9a68e131c9bedb27399703130af0f0aa96640fe0fb365ce6aa2f0" +content-hash = "91f03da9d782869a946b69e95942f6b5380fbc3762fdfc000d991cb85feb81d7" diff --git a/tools/pyproject.toml b/tools/pyproject.toml index b2bcde4a..ab05f8ca 100644 --- a/tools/pyproject.toml +++ b/tools/pyproject.toml @@ -12,8 +12,8 @@ sseclient = "^0.0.27" ruff = "^0.4.8" pyln-client = "^24.5" bolt11 = "^2.0.6" -grpcio = "^1.64.1" -grpcio-tools = "^1.64.1" +grpcio = "1.65.5" +grpcio-tools = "1.65.5" grpc-interceptor = "^0.15.4" cryptography = "^41.0.7" psycopg = { version = "^3.1.18", extras = ["binary"] }