crypticorn 2.4.4__py3-none-any.whl → 2.4.5__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- crypticorn/common/errors.py +9 -5
- crypticorn/common/scopes.py +5 -0
- crypticorn/common/sorter.py +2 -2
- crypticorn/pay/client/__init__.py +1 -3
- crypticorn/pay/client/api/payments_api.py +68 -1
- crypticorn/pay/client/api/products_api.py +16 -18
- crypticorn/pay/client/configuration.py +8 -1
- crypticorn/pay/client/models/__init__.py +1 -3
- crypticorn/pay/client/models/product_update_model.py +6 -6
- crypticorn/pay/client/models/scope.py +2 -2
- crypticorn/pay/client/rest.py +4 -1
- {crypticorn-2.4.4.dist-info → crypticorn-2.4.5.dist-info}/METADATA +1 -1
- {crypticorn-2.4.4.dist-info → crypticorn-2.4.5.dist-info}/RECORD +16 -16
- {crypticorn-2.4.4.dist-info → crypticorn-2.4.5.dist-info}/WHEEL +0 -0
- {crypticorn-2.4.4.dist-info → crypticorn-2.4.5.dist-info}/entry_points.txt +0 -0
- {crypticorn-2.4.4.dist-info → crypticorn-2.4.5.dist-info}/top_level.txt +0 -0
crypticorn/common/errors.py
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
from enum import Enum, EnumMeta
|
1
|
+
from enum import Enum, EnumMeta, StrEnum
|
2
2
|
import logging
|
3
3
|
from fastapi import status
|
4
4
|
|
@@ -6,15 +6,19 @@ logger = logging.getLogger(__name__)
|
|
6
6
|
|
7
7
|
|
8
8
|
class Fallback(EnumMeta):
|
9
|
+
"""Fallback to UNKNOWN_ERROR for error codes not yet published to PyPI."""
|
10
|
+
|
9
11
|
def __getattr__(cls, name):
|
10
|
-
|
12
|
+
# Let Pydantic/internal stuff pass silently ! fragile
|
13
|
+
if name.startswith("__"):
|
14
|
+
raise AttributeError(name)
|
11
15
|
logger.warning(
|
12
16
|
f"Unknown error code '{name}' - update crypticorn package or check for typos"
|
13
17
|
)
|
14
18
|
return cls.UNKNOWN_ERROR
|
15
19
|
|
16
20
|
|
17
|
-
class ApiErrorType(
|
21
|
+
class ApiErrorType(StrEnum):
|
18
22
|
"""Type of API error"""
|
19
23
|
|
20
24
|
USER_ERROR = "user error"
|
@@ -27,7 +31,7 @@ class ApiErrorType(str, Enum):
|
|
27
31
|
"""error that does not need to be handled or does not affect the program or is a placeholder."""
|
28
32
|
|
29
33
|
|
30
|
-
class ApiErrorIdentifier(
|
34
|
+
class ApiErrorIdentifier(StrEnum):
|
31
35
|
"""API error identifiers"""
|
32
36
|
|
33
37
|
ALLOCATION_BELOW_EXPOSURE = "allocation_below_current_exposure"
|
@@ -97,7 +101,7 @@ class ApiErrorIdentifier(str, Enum):
|
|
97
101
|
URL_NOT_FOUND = "requested_resource_not_found"
|
98
102
|
|
99
103
|
|
100
|
-
class ApiErrorLevel(
|
104
|
+
class ApiErrorLevel(StrEnum):
|
101
105
|
"""API error levels"""
|
102
106
|
|
103
107
|
ERROR = "error"
|
crypticorn/common/scopes.py
CHANGED
@@ -6,8 +6,13 @@ logger = logging.getLogger("uvicorn")
|
|
6
6
|
|
7
7
|
class Fallback(EnumMeta):
|
8
8
|
"""Fallback to no scope for unknown scopes."""
|
9
|
+
# Note: This is a workaround to avoid the AttributeError when an unknown scope is accessed.
|
10
|
+
# As soon as we have stable scopes, we can remove this.
|
9
11
|
|
10
12
|
def __getattr__(cls, name):
|
13
|
+
# Let Pydantic/internal stuff pass silently ! fragile
|
14
|
+
if name.startswith("__"):
|
15
|
+
raise AttributeError(name)
|
11
16
|
logger.warning(
|
12
17
|
f"Unknown scope '{name}' - falling back to no scope - update crypticorn package or check for typos"
|
13
18
|
)
|
crypticorn/common/sorter.py
CHANGED
@@ -4,7 +4,7 @@ import pyperclip
|
|
4
4
|
|
5
5
|
def sort_api_errors(file_content, class_name="ApiErrorIdentifier"):
|
6
6
|
# Find the start of the ApiError class definition
|
7
|
-
class_start = file_content.find(f"class {class_name}(
|
7
|
+
class_start = file_content.find(f"class {class_name}(StrEnum):")
|
8
8
|
if class_start == -1:
|
9
9
|
return f"Could not find {class_name} class"
|
10
10
|
|
@@ -23,7 +23,7 @@ def sort_api_errors(file_content, class_name="ApiErrorIdentifier"):
|
|
23
23
|
sorted_entries = sorted(enum_entries, key=lambda x: x[0])
|
24
24
|
|
25
25
|
# Reconstruct the class content
|
26
|
-
class_header = f"class {class_name}(
|
26
|
+
class_header = f"class {class_name}(StrEnum):\n\n"
|
27
27
|
sorted_content = class_header + "\n ".join(entry[1] for entry in sorted_entries)
|
28
28
|
|
29
29
|
return sorted_content
|
@@ -41,12 +41,10 @@ from crypticorn.pay.client.models.now_create_invoice_res import NowCreateInvoice
|
|
41
41
|
from crypticorn.pay.client.models.now_fee_structure import NowFeeStructure
|
42
42
|
from crypticorn.pay.client.models.now_payment_status import NowPaymentStatus
|
43
43
|
from crypticorn.pay.client.models.now_webhook_payload import NowWebhookPayload
|
44
|
-
from crypticorn.pay.client.models.partial_product_update_model import (
|
45
|
-
PartialProductUpdateModel,
|
46
|
-
)
|
47
44
|
from crypticorn.pay.client.models.payment_status import PaymentStatus
|
48
45
|
from crypticorn.pay.client.models.product_model import ProductModel
|
49
46
|
from crypticorn.pay.client.models.product_subs_model import ProductSubsModel
|
47
|
+
from crypticorn.pay.client.models.product_update_model import ProductUpdateModel
|
50
48
|
from crypticorn.pay.client.models.scope import Scope
|
51
49
|
from crypticorn.pay.client.models.services import Services
|
52
50
|
from crypticorn.pay.client.models.unified_payment_model import UnifiedPaymentModel
|
@@ -16,7 +16,7 @@ from pydantic import validate_call, Field, StrictFloat, StrictStr, StrictInt
|
|
16
16
|
from typing import Any, Dict, List, Optional, Tuple, Union
|
17
17
|
from typing_extensions import Annotated
|
18
18
|
|
19
|
-
from pydantic import Field, StrictStr
|
19
|
+
from pydantic import Field, StrictInt, StrictStr
|
20
20
|
from typing import List, Optional
|
21
21
|
from typing_extensions import Annotated
|
22
22
|
from crypticorn.pay.client.models.product_subs_model import ProductSubsModel
|
@@ -298,6 +298,18 @@ class PaymentsApi:
|
|
298
298
|
@validate_call
|
299
299
|
async def get_payment_history(
|
300
300
|
self,
|
301
|
+
limit: Annotated[
|
302
|
+
Optional[StrictInt],
|
303
|
+
Field(
|
304
|
+
description="Limit the number of payments returned. 0 means no limit."
|
305
|
+
),
|
306
|
+
] = None,
|
307
|
+
offset: Annotated[
|
308
|
+
Optional[StrictInt],
|
309
|
+
Field(
|
310
|
+
description="Offset the number of payments returned. 0 means no offset."
|
311
|
+
),
|
312
|
+
] = None,
|
301
313
|
_request_timeout: Union[
|
302
314
|
None,
|
303
315
|
Annotated[StrictFloat, Field(gt=0)],
|
@@ -314,6 +326,10 @@ class PaymentsApi:
|
|
314
326
|
|
315
327
|
Get the combined payment history for a user across all payment services.
|
316
328
|
|
329
|
+
:param limit: Limit the number of payments returned. 0 means no limit.
|
330
|
+
:type limit: int
|
331
|
+
:param offset: Offset the number of payments returned. 0 means no offset.
|
332
|
+
:type offset: int
|
317
333
|
:param _request_timeout: timeout setting for this request. If one
|
318
334
|
number provided, it will be total request
|
319
335
|
timeout. It can also be a pair (tuple) of
|
@@ -337,6 +353,8 @@ class PaymentsApi:
|
|
337
353
|
""" # noqa: E501
|
338
354
|
|
339
355
|
_param = self._get_payment_history_serialize(
|
356
|
+
limit=limit,
|
357
|
+
offset=offset,
|
340
358
|
_request_auth=_request_auth,
|
341
359
|
_content_type=_content_type,
|
342
360
|
_headers=_headers,
|
@@ -345,6 +363,7 @@ class PaymentsApi:
|
|
345
363
|
|
346
364
|
_response_types_map: Dict[str, Optional[str]] = {
|
347
365
|
"200": "List[UnifiedPaymentModel]",
|
366
|
+
"422": "HTTPValidationError",
|
348
367
|
}
|
349
368
|
response_data = await self.api_client.call_api(
|
350
369
|
*_param, _request_timeout=_request_timeout
|
@@ -358,6 +377,18 @@ class PaymentsApi:
|
|
358
377
|
@validate_call
|
359
378
|
async def get_payment_history_with_http_info(
|
360
379
|
self,
|
380
|
+
limit: Annotated[
|
381
|
+
Optional[StrictInt],
|
382
|
+
Field(
|
383
|
+
description="Limit the number of payments returned. 0 means no limit."
|
384
|
+
),
|
385
|
+
] = None,
|
386
|
+
offset: Annotated[
|
387
|
+
Optional[StrictInt],
|
388
|
+
Field(
|
389
|
+
description="Offset the number of payments returned. 0 means no offset."
|
390
|
+
),
|
391
|
+
] = None,
|
361
392
|
_request_timeout: Union[
|
362
393
|
None,
|
363
394
|
Annotated[StrictFloat, Field(gt=0)],
|
@@ -374,6 +405,10 @@ class PaymentsApi:
|
|
374
405
|
|
375
406
|
Get the combined payment history for a user across all payment services.
|
376
407
|
|
408
|
+
:param limit: Limit the number of payments returned. 0 means no limit.
|
409
|
+
:type limit: int
|
410
|
+
:param offset: Offset the number of payments returned. 0 means no offset.
|
411
|
+
:type offset: int
|
377
412
|
:param _request_timeout: timeout setting for this request. If one
|
378
413
|
number provided, it will be total request
|
379
414
|
timeout. It can also be a pair (tuple) of
|
@@ -397,6 +432,8 @@ class PaymentsApi:
|
|
397
432
|
""" # noqa: E501
|
398
433
|
|
399
434
|
_param = self._get_payment_history_serialize(
|
435
|
+
limit=limit,
|
436
|
+
offset=offset,
|
400
437
|
_request_auth=_request_auth,
|
401
438
|
_content_type=_content_type,
|
402
439
|
_headers=_headers,
|
@@ -405,6 +442,7 @@ class PaymentsApi:
|
|
405
442
|
|
406
443
|
_response_types_map: Dict[str, Optional[str]] = {
|
407
444
|
"200": "List[UnifiedPaymentModel]",
|
445
|
+
"422": "HTTPValidationError",
|
408
446
|
}
|
409
447
|
response_data = await self.api_client.call_api(
|
410
448
|
*_param, _request_timeout=_request_timeout
|
@@ -418,6 +456,18 @@ class PaymentsApi:
|
|
418
456
|
@validate_call
|
419
457
|
async def get_payment_history_without_preload_content(
|
420
458
|
self,
|
459
|
+
limit: Annotated[
|
460
|
+
Optional[StrictInt],
|
461
|
+
Field(
|
462
|
+
description="Limit the number of payments returned. 0 means no limit."
|
463
|
+
),
|
464
|
+
] = None,
|
465
|
+
offset: Annotated[
|
466
|
+
Optional[StrictInt],
|
467
|
+
Field(
|
468
|
+
description="Offset the number of payments returned. 0 means no offset."
|
469
|
+
),
|
470
|
+
] = None,
|
421
471
|
_request_timeout: Union[
|
422
472
|
None,
|
423
473
|
Annotated[StrictFloat, Field(gt=0)],
|
@@ -434,6 +484,10 @@ class PaymentsApi:
|
|
434
484
|
|
435
485
|
Get the combined payment history for a user across all payment services.
|
436
486
|
|
487
|
+
:param limit: Limit the number of payments returned. 0 means no limit.
|
488
|
+
:type limit: int
|
489
|
+
:param offset: Offset the number of payments returned. 0 means no offset.
|
490
|
+
:type offset: int
|
437
491
|
:param _request_timeout: timeout setting for this request. If one
|
438
492
|
number provided, it will be total request
|
439
493
|
timeout. It can also be a pair (tuple) of
|
@@ -457,6 +511,8 @@ class PaymentsApi:
|
|
457
511
|
""" # noqa: E501
|
458
512
|
|
459
513
|
_param = self._get_payment_history_serialize(
|
514
|
+
limit=limit,
|
515
|
+
offset=offset,
|
460
516
|
_request_auth=_request_auth,
|
461
517
|
_content_type=_content_type,
|
462
518
|
_headers=_headers,
|
@@ -465,6 +521,7 @@ class PaymentsApi:
|
|
465
521
|
|
466
522
|
_response_types_map: Dict[str, Optional[str]] = {
|
467
523
|
"200": "List[UnifiedPaymentModel]",
|
524
|
+
"422": "HTTPValidationError",
|
468
525
|
}
|
469
526
|
response_data = await self.api_client.call_api(
|
470
527
|
*_param, _request_timeout=_request_timeout
|
@@ -473,6 +530,8 @@ class PaymentsApi:
|
|
473
530
|
|
474
531
|
def _get_payment_history_serialize(
|
475
532
|
self,
|
533
|
+
limit,
|
534
|
+
offset,
|
476
535
|
_request_auth,
|
477
536
|
_content_type,
|
478
537
|
_headers,
|
@@ -494,6 +553,14 @@ class PaymentsApi:
|
|
494
553
|
|
495
554
|
# process the path parameters
|
496
555
|
# process the query parameters
|
556
|
+
if limit is not None:
|
557
|
+
|
558
|
+
_query_params.append(("limit", limit))
|
559
|
+
|
560
|
+
if offset is not None:
|
561
|
+
|
562
|
+
_query_params.append(("offset", offset))
|
563
|
+
|
497
564
|
# process the header parameters
|
498
565
|
# process the form parameters
|
499
566
|
# process the body parameter
|
@@ -19,10 +19,8 @@ from typing_extensions import Annotated
|
|
19
19
|
from pydantic import Field, StrictInt, StrictStr
|
20
20
|
from typing import Any, List, Optional
|
21
21
|
from typing_extensions import Annotated
|
22
|
-
from crypticorn.pay.client.models.partial_product_update_model import (
|
23
|
-
PartialProductUpdateModel,
|
24
|
-
)
|
25
22
|
from crypticorn.pay.client.models.product_model import ProductModel
|
23
|
+
from crypticorn.pay.client.models.product_update_model import ProductUpdateModel
|
26
24
|
|
27
25
|
from crypticorn.pay.client.api_client import ApiClient, RequestSerialized
|
28
26
|
from crypticorn.pay.client.api_response import ApiResponse
|
@@ -594,7 +592,7 @@ class ProductsApi:
|
|
594
592
|
async def update_product(
|
595
593
|
self,
|
596
594
|
id: Annotated[StrictStr, Field(description="The ID of the product to update")],
|
597
|
-
|
595
|
+
product_update_model: ProductUpdateModel,
|
598
596
|
_request_timeout: Union[
|
599
597
|
None,
|
600
598
|
Annotated[StrictFloat, Field(gt=0)],
|
@@ -613,8 +611,8 @@ class ProductsApi:
|
|
613
611
|
|
614
612
|
:param id: The ID of the product to update (required)
|
615
613
|
:type id: str
|
616
|
-
:param
|
617
|
-
:type
|
614
|
+
:param product_update_model: (required)
|
615
|
+
:type product_update_model: ProductUpdateModel
|
618
616
|
:param _request_timeout: timeout setting for this request. If one
|
619
617
|
number provided, it will be total request
|
620
618
|
timeout. It can also be a pair (tuple) of
|
@@ -639,7 +637,7 @@ class ProductsApi:
|
|
639
637
|
|
640
638
|
_param = self._update_product_serialize(
|
641
639
|
id=id,
|
642
|
-
|
640
|
+
product_update_model=product_update_model,
|
643
641
|
_request_auth=_request_auth,
|
644
642
|
_content_type=_content_type,
|
645
643
|
_headers=_headers,
|
@@ -663,7 +661,7 @@ class ProductsApi:
|
|
663
661
|
async def update_product_with_http_info(
|
664
662
|
self,
|
665
663
|
id: Annotated[StrictStr, Field(description="The ID of the product to update")],
|
666
|
-
|
664
|
+
product_update_model: ProductUpdateModel,
|
667
665
|
_request_timeout: Union[
|
668
666
|
None,
|
669
667
|
Annotated[StrictFloat, Field(gt=0)],
|
@@ -682,8 +680,8 @@ class ProductsApi:
|
|
682
680
|
|
683
681
|
:param id: The ID of the product to update (required)
|
684
682
|
:type id: str
|
685
|
-
:param
|
686
|
-
:type
|
683
|
+
:param product_update_model: (required)
|
684
|
+
:type product_update_model: ProductUpdateModel
|
687
685
|
:param _request_timeout: timeout setting for this request. If one
|
688
686
|
number provided, it will be total request
|
689
687
|
timeout. It can also be a pair (tuple) of
|
@@ -708,7 +706,7 @@ class ProductsApi:
|
|
708
706
|
|
709
707
|
_param = self._update_product_serialize(
|
710
708
|
id=id,
|
711
|
-
|
709
|
+
product_update_model=product_update_model,
|
712
710
|
_request_auth=_request_auth,
|
713
711
|
_content_type=_content_type,
|
714
712
|
_headers=_headers,
|
@@ -732,7 +730,7 @@ class ProductsApi:
|
|
732
730
|
async def update_product_without_preload_content(
|
733
731
|
self,
|
734
732
|
id: Annotated[StrictStr, Field(description="The ID of the product to update")],
|
735
|
-
|
733
|
+
product_update_model: ProductUpdateModel,
|
736
734
|
_request_timeout: Union[
|
737
735
|
None,
|
738
736
|
Annotated[StrictFloat, Field(gt=0)],
|
@@ -751,8 +749,8 @@ class ProductsApi:
|
|
751
749
|
|
752
750
|
:param id: The ID of the product to update (required)
|
753
751
|
:type id: str
|
754
|
-
:param
|
755
|
-
:type
|
752
|
+
:param product_update_model: (required)
|
753
|
+
:type product_update_model: ProductUpdateModel
|
756
754
|
:param _request_timeout: timeout setting for this request. If one
|
757
755
|
number provided, it will be total request
|
758
756
|
timeout. It can also be a pair (tuple) of
|
@@ -777,7 +775,7 @@ class ProductsApi:
|
|
777
775
|
|
778
776
|
_param = self._update_product_serialize(
|
779
777
|
id=id,
|
780
|
-
|
778
|
+
product_update_model=product_update_model,
|
781
779
|
_request_auth=_request_auth,
|
782
780
|
_content_type=_content_type,
|
783
781
|
_headers=_headers,
|
@@ -796,7 +794,7 @@ class ProductsApi:
|
|
796
794
|
def _update_product_serialize(
|
797
795
|
self,
|
798
796
|
id,
|
799
|
-
|
797
|
+
product_update_model,
|
800
798
|
_request_auth,
|
801
799
|
_content_type,
|
802
800
|
_headers,
|
@@ -823,8 +821,8 @@ class ProductsApi:
|
|
823
821
|
# process the header parameters
|
824
822
|
# process the form parameters
|
825
823
|
# process the body parameter
|
826
|
-
if
|
827
|
-
_body_params =
|
824
|
+
if product_update_model is not None:
|
825
|
+
_body_params = product_update_model
|
828
826
|
|
829
827
|
# set the HTTP header `Accept`
|
830
828
|
if "Accept" not in _header_params:
|
@@ -17,7 +17,7 @@ import http.client as httplib
|
|
17
17
|
import logging
|
18
18
|
from logging import FileHandler
|
19
19
|
import sys
|
20
|
-
from typing import Any, ClassVar, Dict, List, Literal, Optional, TypedDict
|
20
|
+
from typing import Any, ClassVar, Dict, List, Literal, Optional, TypedDict, Union
|
21
21
|
from typing_extensions import NotRequired, Self
|
22
22
|
|
23
23
|
import urllib3
|
@@ -168,6 +168,8 @@ class Configuration:
|
|
168
168
|
:param ssl_ca_cert: str - the path to a file of concatenated CA certificates
|
169
169
|
in PEM format.
|
170
170
|
:param retries: Number of retries for API requests.
|
171
|
+
:param ca_cert_data: verify the peer using concatenated CA certificate data
|
172
|
+
in PEM (str) or DER (bytes) format.
|
171
173
|
|
172
174
|
:Example:
|
173
175
|
|
@@ -208,6 +210,7 @@ class Configuration:
|
|
208
210
|
ignore_operation_servers: bool = False,
|
209
211
|
ssl_ca_cert: Optional[str] = None,
|
210
212
|
retries: Optional[int] = None,
|
213
|
+
ca_cert_data: Optional[Union[str, bytes]] = None,
|
211
214
|
*,
|
212
215
|
debug: Optional[bool] = None,
|
213
216
|
) -> None:
|
@@ -284,6 +287,10 @@ class Configuration:
|
|
284
287
|
self.ssl_ca_cert = ssl_ca_cert
|
285
288
|
"""Set this to customize the certificate file to verify the peer.
|
286
289
|
"""
|
290
|
+
self.ca_cert_data = ca_cert_data
|
291
|
+
"""Set this to verify the peer using PEM (str) or DER (bytes)
|
292
|
+
certificate data.
|
293
|
+
"""
|
287
294
|
self.cert_file = None
|
288
295
|
"""client certificate file
|
289
296
|
"""
|
@@ -21,12 +21,10 @@ from crypticorn.pay.client.models.now_create_invoice_res import NowCreateInvoice
|
|
21
21
|
from crypticorn.pay.client.models.now_fee_structure import NowFeeStructure
|
22
22
|
from crypticorn.pay.client.models.now_payment_status import NowPaymentStatus
|
23
23
|
from crypticorn.pay.client.models.now_webhook_payload import NowWebhookPayload
|
24
|
-
from crypticorn.pay.client.models.partial_product_update_model import (
|
25
|
-
PartialProductUpdateModel,
|
26
|
-
)
|
27
24
|
from crypticorn.pay.client.models.payment_status import PaymentStatus
|
28
25
|
from crypticorn.pay.client.models.product_model import ProductModel
|
29
26
|
from crypticorn.pay.client.models.product_subs_model import ProductSubsModel
|
27
|
+
from crypticorn.pay.client.models.product_update_model import ProductUpdateModel
|
30
28
|
from crypticorn.pay.client.models.scope import Scope
|
31
29
|
from crypticorn.pay.client.models.services import Services
|
32
30
|
from crypticorn.pay.client.models.unified_payment_model import UnifiedPaymentModel
|
@@ -37,12 +37,12 @@ class ProductUpdateModel(BaseModel):
|
|
37
37
|
""" # noqa: E501
|
38
38
|
|
39
39
|
id: Optional[StrictStr] = None
|
40
|
-
name: Optional[StrictStr]
|
41
|
-
price: Optional[Union[StrictFloat, StrictInt]]
|
42
|
-
scopes: Optional[List[Scope]]
|
43
|
-
duration: Optional[StrictInt]
|
44
|
-
description: Optional[StrictStr]
|
45
|
-
is_active: Optional[StrictBool]
|
40
|
+
name: Optional[StrictStr] = None
|
41
|
+
price: Optional[Union[StrictFloat, StrictInt]] = None
|
42
|
+
scopes: Optional[List[Scope]] = None
|
43
|
+
duration: Optional[StrictInt] = None
|
44
|
+
description: Optional[StrictStr] = None
|
45
|
+
is_active: Optional[StrictBool] = None
|
46
46
|
__properties: ClassVar[List[str]] = [
|
47
47
|
"id",
|
48
48
|
"name",
|
@@ -31,8 +31,8 @@ class Scope(str, Enum):
|
|
31
31
|
WRITE_COLON_HIVE_COLON_MODEL = "write:hive:model"
|
32
32
|
READ_COLON_TRADE_COLON_BOTS = "read:trade:bots"
|
33
33
|
WRITE_COLON_TRADE_COLON_BOTS = "write:trade:bots"
|
34
|
-
|
35
|
-
|
34
|
+
READ_COLON_TRADE_COLON_EXCHANGEKEYS = "read:trade:exchangekeys"
|
35
|
+
WRITE_COLON_TRADE_COLON_EXCHANGEKEYS = "write:trade:exchangekeys"
|
36
36
|
READ_COLON_TRADE_COLON_ORDERS = "read:trade:orders"
|
37
37
|
READ_COLON_TRADE_COLON_ACTIONS = "read:trade:actions"
|
38
38
|
WRITE_COLON_TRADE_COLON_ACTIONS = "write:trade:actions"
|
crypticorn/pay/client/rest.py
CHANGED
@@ -57,7 +57,10 @@ class RESTClientObject:
|
|
57
57
|
# maxsize is number of requests to host that are allowed in parallel
|
58
58
|
self.maxsize = configuration.connection_pool_maxsize
|
59
59
|
|
60
|
-
self.ssl_context = ssl.create_default_context(
|
60
|
+
self.ssl_context = ssl.create_default_context(
|
61
|
+
cafile=configuration.ssl_ca_cert,
|
62
|
+
cadata=configuration.ca_cert_data,
|
63
|
+
)
|
61
64
|
if configuration.cert_file:
|
62
65
|
self.ssl_context.load_cert_chain(
|
63
66
|
configuration.cert_file, keyfile=configuration.key_file
|
@@ -62,10 +62,10 @@ crypticorn/cli/templates/auth.py,sha256=Q1TxlA7qzhjvrqp1xz1aV2vGnj3DKFNN-VSl3o0B
|
|
62
62
|
crypticorn/common/__init__.py,sha256=7DCYhqkqmzCyACdLWn3GuhccBcx5jQcwlIsl_cCr7gM,269
|
63
63
|
crypticorn/common/auth.py,sha256=wPdPLgTva4-bN-iOv8woe6n1t06LXNRbhbsNIEAHkuE,7496
|
64
64
|
crypticorn/common/enums.py,sha256=6cCwQZVdXUoN33WA8kSf4LeSZyExZcWO2ahSsgGddCs,1243
|
65
|
-
crypticorn/common/errors.py,sha256
|
65
|
+
crypticorn/common/errors.py,sha256=7SQmnpTt4lr4xMf6lcMO6po6d5DyTQptqPdd7DUb4XE,19972
|
66
66
|
crypticorn/common/pydantic.py,sha256=pmnGYCIrLv59wZkDbvPyK9NJmgPJWW74LXTdIWSjOkY,1063
|
67
|
-
crypticorn/common/scopes.py,sha256=
|
68
|
-
crypticorn/common/sorter.py,sha256=
|
67
|
+
crypticorn/common/scopes.py,sha256=Kr_qSaGAJ2n8R4o3973xWV_mxQRfDiRUdg2o21F7xzY,2426
|
68
|
+
crypticorn/common/sorter.py,sha256=keRRp4u7KJk3nS2A8tMdSF8Hbc1jcsre8KdTVuetfGc,1278
|
69
69
|
crypticorn/common/urls.py,sha256=X557WaODUqW2dECi-mOjTbmhkSpnp40fPXDdvlnBXfo,805
|
70
70
|
crypticorn/common/utils.py,sha256=qzpTTdZarpK9vgCQi36puS2GS_vmdIA6ApxoOVuszPg,1460
|
71
71
|
crypticorn/hive/__init__.py,sha256=hRfTlEzEql4msytdUC_04vfaHzVKG5CGZle1M-9QFgY,81
|
@@ -177,19 +177,19 @@ crypticorn/metrics/client/models/validation_error.py,sha256=XAkAm1zTjroJLvnmQB6r
|
|
177
177
|
crypticorn/metrics/client/models/validation_error_loc_inner.py,sha256=p0a-GosxsFHZV22hz3u4PNwj0kPd8-7CWRNwAO05pvk,5277
|
178
178
|
crypticorn/pay/__init__.py,sha256=ux-B-YbNetpTlZTb2fijuGUOEmSm4IB0fYtieGnVDBg,78
|
179
179
|
crypticorn/pay/main.py,sha256=6sCELtBpQglCDpHlOtCMfWct_itCNv9QZCeumZI22A0,601
|
180
|
-
crypticorn/pay/client/__init__.py,sha256=
|
180
|
+
crypticorn/pay/client/__init__.py,sha256=PX6uZRiEphtBJiOxvUqd_IxXVsi2_Lqqq_Q1MWvV1Wc,2438
|
181
181
|
crypticorn/pay/client/api_client.py,sha256=axhwIXY3gZod8xn8BCHjA-8v-wnyyHrxV5TxcMFqjVA,26924
|
182
182
|
crypticorn/pay/client/api_response.py,sha256=WhxwYDSMm6wPixp9CegO8dJzjFxDz3JF1yCq9s0ZqKE,639
|
183
|
-
crypticorn/pay/client/configuration.py,sha256=
|
183
|
+
crypticorn/pay/client/configuration.py,sha256=3OBBS0Q5lthyqgjRpAssw_fJStRpzsd39PUpyg7OQfM,19164
|
184
184
|
crypticorn/pay/client/exceptions.py,sha256=BewSfp_OiqQ9ybRNlkZ7A_nn-8kDY1iiBSlYocagl3w,6435
|
185
185
|
crypticorn/pay/client/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
186
|
-
crypticorn/pay/client/rest.py,sha256=
|
186
|
+
crypticorn/pay/client/rest.py,sha256=q0P8SwRU9kXGGOaeJJjYx8JSyPU_KlO1XSZ5t8G0Nn8,7035
|
187
187
|
crypticorn/pay/client/api/__init__.py,sha256=vbisPmBd4c5G3_MHAlInKeu1obSr8witdtwxC43BnN8,302
|
188
188
|
crypticorn/pay/client/api/now_payments_api.py,sha256=nbTM9vqDwf5OgGIT3Fsg84AoTCCWLAnSwpOz3S9N18Q,33011
|
189
|
-
crypticorn/pay/client/api/payments_api.py,sha256=
|
190
|
-
crypticorn/pay/client/api/products_api.py,sha256=
|
189
|
+
crypticorn/pay/client/api/payments_api.py,sha256=Icr1LHNHgYN9sj86eJlFdGXg6sWYJniZwVOfEc4C_R4,34412
|
190
|
+
crypticorn/pay/client/api/products_api.py,sha256=kDUKuMOOKuhK1AbxzHBaEv1f-TPUiKBvwGXhN9F-b4o,34035
|
191
191
|
crypticorn/pay/client/api/status_api.py,sha256=XSfwyUDRS3XMB8mfngLhtYqEFMOE2t6m_PAWcwX9eg0,9908
|
192
|
-
crypticorn/pay/client/models/__init__.py,sha256
|
192
|
+
crypticorn/pay/client/models/__init__.py,sha256=-2KlYhxZkxh_h-zV222LiLQH3YKO12qv_GGOJ6hrWCo,1576
|
193
193
|
crypticorn/pay/client/models/api_status_res.py,sha256=2MSDgnzQZpQyjFu7I-4HkJI3ygy0Dzs1lPdvgzM63Jg,2494
|
194
194
|
crypticorn/pay/client/models/body_create_now_invoice.py,sha256=F--oFNyB0bv2mmFpwd3jG9ZGEl0Ip7slVFdSkxbVbe8,3045
|
195
195
|
crypticorn/pay/client/models/body_create_product.py,sha256=_Jh3LqwcC8U3Rz14NP6Aohimea7d3TsrSWTexm5iB5Q,3030
|
@@ -221,8 +221,8 @@ crypticorn/pay/client/models/payment_status.py,sha256=X27W1roil70iUNkcJVKABK1dRp
|
|
221
221
|
crypticorn/pay/client/models/product.py,sha256=6_L59YIz-rdN5fHypJUcRpaU-hpG1l4xF1Cl2n8sF0k,2572
|
222
222
|
crypticorn/pay/client/models/product_model.py,sha256=emo_bZGfI9k3dtR_jfzlJGFUTR1SZosLRfkaObj3J6g,3855
|
223
223
|
crypticorn/pay/client/models/product_subs_model.py,sha256=DeeVu-8aDJneHov97hlNR4JFph_jGu2yt9_eVTPWzpw,3355
|
224
|
-
crypticorn/pay/client/models/product_update_model.py,sha256=
|
225
|
-
crypticorn/pay/client/models/scope.py,sha256=
|
224
|
+
crypticorn/pay/client/models/product_update_model.py,sha256=j6EGDSqko5owqk-Qrx_9fh1mQQB87welVhCBmDkWcS0,4777
|
225
|
+
crypticorn/pay/client/models/scope.py,sha256=RQ6j1jQfNiu1CVnh_LMoAGSeunaXyISMgU-naCncBQw,2033
|
226
226
|
crypticorn/pay/client/models/services.py,sha256=GSR4E0IVNzmMkPW6AdhW9MmHFmku0YBfx27xWzAFDGI,709
|
227
227
|
crypticorn/pay/client/models/unified_payment_model.py,sha256=5IXOcKctWFejLAq_x3btO2R29fRaKMDSgMfgcYYJKY4,3621
|
228
228
|
crypticorn/pay/client/models/validation_error.py,sha256=dEYMLbX_N7IfQLeuL-BRBVnh5-plOpUe6R2YZTMzEX4,3206
|
@@ -273,8 +273,8 @@ crypticorn/trade/client/models/tpsl.py,sha256=LlqzHaSA-HgQp1k4PhRckmxWNhgVZU6NgB
|
|
273
273
|
crypticorn/trade/client/models/trading_action_type.py,sha256=oLVDp94VeC9kjYbgZN7dHn2t07YGGUrAkNr2PE435eM,827
|
274
274
|
crypticorn/trade/client/models/validation_error.py,sha256=x4rR325juK4EJiFJ8l5IKp2werY8y6PWbLx_WJMxbbA,3208
|
275
275
|
crypticorn/trade/client/models/validation_error_loc_inner.py,sha256=ZB2NbHkxhjDZ2-qK1HyvzTUnabeCdxeTjbSAHNmWq5A,5111
|
276
|
-
crypticorn-2.4.
|
277
|
-
crypticorn-2.4.
|
278
|
-
crypticorn-2.4.
|
279
|
-
crypticorn-2.4.
|
280
|
-
crypticorn-2.4.
|
276
|
+
crypticorn-2.4.5.dist-info/METADATA,sha256=PwuvqEgCUP8ZsVR9MqYiBieHqDi8hiK3TZTfh7AYSFo,5895
|
277
|
+
crypticorn-2.4.5.dist-info/WHEEL,sha256=CmyFI0kx5cdEMTLiONQRbGQwjIoR1aIYB7eCAQ4KPJ0,91
|
278
|
+
crypticorn-2.4.5.dist-info/entry_points.txt,sha256=d_xHsGvUTebPveVUK0SrpDFQ5ZRSjlI7lNCc11sn2PM,59
|
279
|
+
crypticorn-2.4.5.dist-info/top_level.txt,sha256=EP3NY216qIBYfmvGl0L2Zc9ItP0DjGSkiYqd9xJwGcM,11
|
280
|
+
crypticorn-2.4.5.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|