crypticorn 2.11.9__py3-none-any.whl → 2.12.0__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.
Files changed (29) hide show
  1. crypticorn/common/errors.py +4 -4
  2. crypticorn/common/exceptions.py +10 -0
  3. crypticorn/hive/client/__init__.py +1 -0
  4. crypticorn/hive/client/models/__init__.py +1 -0
  5. crypticorn/hive/client/models/api_error_identifier.py +2 -0
  6. crypticorn/hive/client/models/coin_info.py +106 -0
  7. crypticorn/hive/client/models/data_info.py +17 -6
  8. crypticorn/hive/client/models/target_info.py +20 -6
  9. crypticorn/pay/client/__init__.py +5 -3
  10. crypticorn/pay/client/api/admin_api.py +35 -33
  11. crypticorn/pay/client/api/now_payments_api.py +476 -5
  12. crypticorn/pay/client/api/payments_api.py +43 -264
  13. crypticorn/pay/client/api/products_api.py +16 -16
  14. crypticorn/pay/client/models/__init__.py +5 -3
  15. crypticorn/pay/client/models/api_error_identifier.py +117 -0
  16. crypticorn/pay/client/models/api_error_level.py +37 -0
  17. crypticorn/pay/client/models/api_error_type.py +37 -0
  18. crypticorn/pay/client/models/exception_detail.py +7 -4
  19. crypticorn/pay/client/models/{product_read.py → product.py} +4 -4
  20. crypticorn/pay/client/models/product_create.py +1 -1
  21. crypticorn/pay/client/models/scope.py +1 -0
  22. crypticorn/pay/client/models/{product_sub_read.py → subscription.py} +5 -5
  23. {crypticorn-2.11.9.dist-info → crypticorn-2.12.0.dist-info}/METADATA +1 -1
  24. {crypticorn-2.11.9.dist-info → crypticorn-2.12.0.dist-info}/RECORD +28 -25
  25. {crypticorn-2.11.9.dist-info → crypticorn-2.12.0.dist-info}/WHEEL +1 -1
  26. crypticorn/pay/client/models/response_getuptime.py +0 -159
  27. {crypticorn-2.11.9.dist-info → crypticorn-2.12.0.dist-info}/entry_points.txt +0 -0
  28. {crypticorn-2.11.9.dist-info → crypticorn-2.12.0.dist-info}/licenses/LICENSE +0 -0
  29. {crypticorn-2.11.9.dist-info → crypticorn-2.12.0.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,117 @@
1
+ # coding: utf-8
2
+
3
+ """
4
+ Payment API
5
+
6
+ API for accepting payments and storing subscriptions
7
+
8
+ The version of the OpenAPI document: 1.0.0
9
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
10
+
11
+ Do not edit the class manually.
12
+ """ # noqa: E501
13
+
14
+
15
+ from __future__ import annotations
16
+ import json
17
+ from enum import Enum
18
+ from typing_extensions import Self
19
+
20
+
21
+ class ApiErrorIdentifier(str, Enum):
22
+ """
23
+ Unique identifier of the API error.
24
+ """
25
+
26
+ """
27
+ allowed enum values
28
+ """
29
+ ALLOCATION_BELOW_CURRENT_EXPOSURE = "allocation_below_current_exposure"
30
+ ALLOCATION_BELOW_MIN_AMOUNT = "allocation_below_min_amount"
31
+ BLACK_SWAN = "black_swan"
32
+ BOT_ALREADY_DELETED = "bot_already_deleted"
33
+ BOT_DISABLED = "bot_disabled"
34
+ BOT_STOPPING_COMPLETED = "bot_stopping_completed"
35
+ BOT_STOPPING_STARTED = "bot_stopping_started"
36
+ CLIENT_ORDER_ID_ALREADY_EXISTS = "client_order_id_already_exists"
37
+ INVALID_CONTENT_TYPE = "invalid_content_type"
38
+ DELETE_BOT_ERROR = "delete_bot_error"
39
+ EXCHANGE_INVALID_SIGNATURE = "exchange_invalid_signature"
40
+ EXCHANGE_INVALID_TIMESTAMP = "exchange_invalid_timestamp"
41
+ EXCHANGE_IP_ADDRESS_IS_NOT_AUTHORIZED = "exchange_ip_address_is_not_authorized"
42
+ EXCHANGE_KEY_ALREADY_EXISTS = "exchange_key_already_exists"
43
+ EXCHANGE_KEY_IN_USE = "exchange_key_in_use"
44
+ EXCHANGE_SYSTEM_UNDER_MAINTENANCE = "exchange_system_under_maintenance"
45
+ EXCHANGE_RATE_LIMIT_EXCEEDED = "exchange_rate_limit_exceeded"
46
+ INSUFFICIENT_PERMISSIONS_SPOT_AND_FUTURES_REQUIRED = (
47
+ "insufficient_permissions_spot_and_futures_required"
48
+ )
49
+ EXCHANGE_SERVICE_TEMPORARILY_UNAVAILABLE = (
50
+ "exchange_service_temporarily_unavailable"
51
+ )
52
+ EXCHANGE_SYSTEM_IS_BUSY = "exchange_system_is_busy"
53
+ EXCHANGE_SYSTEM_CONFIGURATION_ERROR = "exchange_system_configuration_error"
54
+ EXCHANGE_INTERNAL_SYSTEM_ERROR = "exchange_internal_system_error"
55
+ EXCHANGE_USER_ACCOUNT_IS_FROZEN = "exchange_user_account_is_frozen"
56
+ API_KEY_EXPIRED = "api_key_expired"
57
+ BEARER_TOKEN_EXPIRED = "bearer_token_expired"
58
+ FORBIDDEN = "forbidden"
59
+ HEDGE_MODE_NOT_ACTIVE = "hedge_mode_not_active"
60
+ HTTP_REQUEST_ERROR = "http_request_error"
61
+ INSUFFICIENT_BALANCE = "insufficient_balance"
62
+ INSUFFICIENT_MARGIN = "insufficient_margin"
63
+ INSUFFICIENT_SCOPES = "insufficient_scopes"
64
+ INVALID_API_KEY = "invalid_api_key"
65
+ INVALID_BEARER = "invalid_bearer"
66
+ INVALID_DATA = "invalid_data"
67
+ INVALID_DATA_RESPONSE = "invalid_data_response"
68
+ INVALID_EXCHANGE_KEY = "invalid_exchange_key"
69
+ INVALID_MARGIN_MODE = "invalid_margin_mode"
70
+ INVALID_MODEL_NAME = "invalid_model_name"
71
+ INVALID_PARAMETER_PROVIDED = "invalid_parameter_provided"
72
+ LEVERAGE_LIMIT_EXCEEDED = "leverage_limit_exceeded"
73
+ ORDER_VIOLATES_LIQUIDATION_PRICE_CONSTRAINTS = (
74
+ "order_violates_liquidation_price_constraints"
75
+ )
76
+ MARGIN_MODE_CLASH = "margin_mode_clash"
77
+ MODEL_NAME_NOT_UNIQUE = "model_name_not_unique"
78
+ NO_CREDENTIALS = "no_credentials"
79
+ NOW_API_DOWN = "now_api_down"
80
+ OBJECT_ALREADY_EXISTS = "object_already_exists"
81
+ OBJECT_CREATED = "object_created"
82
+ OBJECT_DELETED = "object_deleted"
83
+ OBJECT_LOCKED = "object_locked"
84
+ OBJECT_NOT_FOUND = "object_not_found"
85
+ OBJECT_UPDATED = "object_updated"
86
+ ORDER_IS_ALREADY_FILLED = "order_is_already_filled"
87
+ ORDER_IS_BEING_PROCESSED = "order_is_being_processed"
88
+ ORDER_QUANTITY_LIMIT_EXCEEDED = "order_quantity_limit_exceeded"
89
+ ORDER_DOES_NOT_EXIST = "order_does_not_exist"
90
+ ORDER_PRICE_IS_INVALID = "order_price_is_invalid"
91
+ ORDER_SIZE_TOO_LARGE = "order_size_too_large"
92
+ ORDER_SIZE_TOO_SMALL = "order_size_too_small"
93
+ POSITION_LIMIT_EXCEEDED = "position_limit_exceeded"
94
+ POSITION_DOES_NOT_EXIST = "position_does_not_exist"
95
+ POSITION_OPENING_TEMPORARILY_SUSPENDED = "position_opening_temporarily_suspended"
96
+ POST_ONLY_ORDER_WOULD_IMMEDIATELY_MATCH = "post_only_order_would_immediately_match"
97
+ REQUEST_SCOPE_LIMIT_EXCEEDED = "request_scope_limit_exceeded"
98
+ RISK_LIMIT_EXCEEDED = "risk_limit_exceeded"
99
+ RPC_TIMEOUT = "rpc_timeout"
100
+ SYSTEM_SETTLEMENT_IN_PROCESS = "system_settlement_in_process"
101
+ STRATEGY_ALREADY_EXISTS = "strategy_already_exists"
102
+ STRATEGY_DISABLED = "strategy_disabled"
103
+ STRATEGY_LEVERAGE_MISMATCH = "strategy_leverage_mismatch"
104
+ STRATEGY_NOT_SUPPORTING_EXCHANGE = "strategy_not_supporting_exchange"
105
+ SUCCESS = "success"
106
+ SYMBOL_DOES_NOT_EXIST = "symbol_does_not_exist"
107
+ TRADING_ACTION_EXPIRED = "trading_action_expired"
108
+ TRADING_ACTION_SKIPPED = "trading_action_skipped"
109
+ TRADING_HAS_BEEN_LOCKED = "trading_has_been_locked"
110
+ TRADING_IS_SUSPENDED = "trading_is_suspended"
111
+ UNKNOWN_ERROR_OCCURRED = "unknown_error_occurred"
112
+ REQUESTED_RESOURCE_NOT_FOUND = "requested_resource_not_found"
113
+
114
+ @classmethod
115
+ def from_json(cls, json_str: str) -> Self:
116
+ """Create an instance of ApiErrorIdentifier from a JSON string"""
117
+ return cls(json.loads(json_str))
@@ -0,0 +1,37 @@
1
+ # coding: utf-8
2
+
3
+ """
4
+ Payment API
5
+
6
+ API for accepting payments and storing subscriptions
7
+
8
+ The version of the OpenAPI document: 1.0.0
9
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
10
+
11
+ Do not edit the class manually.
12
+ """ # noqa: E501
13
+
14
+
15
+ from __future__ import annotations
16
+ import json
17
+ from enum import Enum
18
+ from typing_extensions import Self
19
+
20
+
21
+ class ApiErrorLevel(str, Enum):
22
+ """
23
+ Level of the API error.
24
+ """
25
+
26
+ """
27
+ allowed enum values
28
+ """
29
+ ERROR = "error"
30
+ INFO = "info"
31
+ SUCCESS = "success"
32
+ WARNING = "warning"
33
+
34
+ @classmethod
35
+ def from_json(cls, json_str: str) -> Self:
36
+ """Create an instance of ApiErrorLevel from a JSON string"""
37
+ return cls(json.loads(json_str))
@@ -0,0 +1,37 @@
1
+ # coding: utf-8
2
+
3
+ """
4
+ Payment API
5
+
6
+ API for accepting payments and storing subscriptions
7
+
8
+ The version of the OpenAPI document: 1.0.0
9
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
10
+
11
+ Do not edit the class manually.
12
+ """ # noqa: E501
13
+
14
+
15
+ from __future__ import annotations
16
+ import json
17
+ from enum import Enum
18
+ from typing_extensions import Self
19
+
20
+
21
+ class ApiErrorType(str, Enum):
22
+ """
23
+ Type of the API error.
24
+ """
25
+
26
+ """
27
+ allowed enum values
28
+ """
29
+ USER_ERROR = "user error"
30
+ EXCHANGE_ERROR = "exchange error"
31
+ SERVER_ERROR = "server error"
32
+ NO_ERROR = "no error"
33
+
34
+ @classmethod
35
+ def from_json(cls, json_str: str) -> Self:
36
+ """Create an instance of ApiErrorType from a JSON string"""
37
+ return cls(json.loads(json_str))
@@ -19,19 +19,22 @@ import json
19
19
 
20
20
  from pydantic import BaseModel, ConfigDict, Field, StrictInt, StrictStr
21
21
  from typing import Any, ClassVar, Dict, List, Optional
22
+ from crypticorn.pay.client.models.api_error_identifier import ApiErrorIdentifier
23
+ from crypticorn.pay.client.models.api_error_level import ApiErrorLevel
24
+ from crypticorn.pay.client.models.api_error_type import ApiErrorType
22
25
  from typing import Optional, Set
23
26
  from typing_extensions import Self
24
27
 
25
28
 
26
29
  class ExceptionDetail(BaseModel):
27
30
  """
28
- This is the detail of the exception. It is used to enrich the exception with additional information by unwrapping the ApiError into its components.
31
+ Exception details returned to the client.
29
32
  """ # noqa: E501
30
33
 
31
34
  message: Optional[StrictStr] = None
32
- code: StrictStr = Field(description="API error identifiers")
33
- type: StrictStr = Field(description="Type of API error")
34
- level: StrictStr = Field(description="API error levels")
35
+ code: ApiErrorIdentifier = Field(description="The unique error code")
36
+ type: ApiErrorType = Field(description="The type of error")
37
+ level: ApiErrorLevel = Field(description="The level of the error")
35
38
  status_code: StrictInt = Field(description="The HTTP status code")
36
39
  details: Optional[Any] = None
37
40
  __properties: ClassVar[List[str]] = [
@@ -32,7 +32,7 @@ from typing import Optional, Set
32
32
  from typing_extensions import Self
33
33
 
34
34
 
35
- class ProductRead(BaseModel):
35
+ class Product(BaseModel):
36
36
  """
37
37
  Model for reading a product
38
38
  """ # noqa: E501
@@ -41,7 +41,7 @@ class ProductRead(BaseModel):
41
41
  price: Union[StrictFloat, StrictInt] = Field(description="Product price")
42
42
  scopes: Optional[List[Scope]] = None
43
43
  duration: StrictInt = Field(
44
- description="Product duration in days. 0 means unlimited."
44
+ description="Product duration in days. 0 means forever."
45
45
  )
46
46
  description: StrictStr = Field(description="Product description")
47
47
  is_active: StrictBool = Field(description="Product is active")
@@ -73,7 +73,7 @@ class ProductRead(BaseModel):
73
73
 
74
74
  @classmethod
75
75
  def from_json(cls, json_str: str) -> Optional[Self]:
76
- """Create an instance of ProductRead from a JSON string"""
76
+ """Create an instance of Product from a JSON string"""
77
77
  return cls.from_dict(json.loads(json_str))
78
78
 
79
79
  def to_dict(self) -> Dict[str, Any]:
@@ -102,7 +102,7 @@ class ProductRead(BaseModel):
102
102
 
103
103
  @classmethod
104
104
  def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
105
- """Create an instance of ProductRead from a dict"""
105
+ """Create an instance of Product from a dict"""
106
106
  if obj is None:
107
107
  return None
108
108
 
@@ -41,7 +41,7 @@ class ProductCreate(BaseModel):
41
41
  price: Union[StrictFloat, StrictInt] = Field(description="Product price")
42
42
  scopes: Optional[List[Scope]] = None
43
43
  duration: StrictInt = Field(
44
- description="Product duration in days. 0 means unlimited."
44
+ description="Product duration in days. 0 means forever."
45
45
  )
46
46
  description: StrictStr = Field(description="Product description")
47
47
  is_active: StrictBool = Field(description="Product is active")
@@ -57,6 +57,7 @@ class Scope(str, Enum):
57
57
  READ_COLON_METRICS_COLON_TOKENS = "read:metrics:tokens"
58
58
  READ_COLON_METRICS_COLON_MARKETS = "read:metrics:markets"
59
59
  READ_COLON_SENTIMENT = "read:sentiment"
60
+ READ_COLON_KLINES = "read:klines"
60
61
 
61
62
  @classmethod
62
63
  def from_json(cls, json_str: str) -> Self:
@@ -23,16 +23,16 @@ from typing import Optional, Set
23
23
  from typing_extensions import Self
24
24
 
25
25
 
26
- class ProductSubRead(BaseModel):
26
+ class Subscription(BaseModel):
27
27
  """
28
28
  Model for reading a product subscription
29
29
  """ # noqa: E501
30
30
 
31
31
  user_id: StrictStr = Field(description="User ID")
32
32
  product_id: StrictStr = Field(description="Product ID")
33
- access_from: StrictInt = Field(description="Access from timestamp in milliseconds")
33
+ access_from: StrictInt = Field(description="Access from timestamp in seconds")
34
34
  access_until: StrictInt = Field(
35
- description="Access until timestamp in milliseconds. 0 means unlimited."
35
+ description="Access until timestamp in seconds. 0 means unlimited."
36
36
  )
37
37
  id: StrictStr = Field(description="UID of the product subscription")
38
38
  __properties: ClassVar[List[str]] = [
@@ -60,7 +60,7 @@ class ProductSubRead(BaseModel):
60
60
 
61
61
  @classmethod
62
62
  def from_json(cls, json_str: str) -> Optional[Self]:
63
- """Create an instance of ProductSubRead from a JSON string"""
63
+ """Create an instance of Subscription from a JSON string"""
64
64
  return cls.from_dict(json.loads(json_str))
65
65
 
66
66
  def to_dict(self) -> Dict[str, Any]:
@@ -84,7 +84,7 @@ class ProductSubRead(BaseModel):
84
84
 
85
85
  @classmethod
86
86
  def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
87
- """Create an instance of ProductSubRead from a dict"""
87
+ """Create an instance of Subscription from a dict"""
88
88
  if obj is None:
89
89
  return None
90
90
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: crypticorn
3
- Version: 2.11.9
3
+ Version: 2.12.0
4
4
  Summary: Maximise Your Crypto Trading Profits with Machine Learning
5
5
  Author-email: Crypticorn <timon@crypticorn.com>
6
6
  License-Expression: MIT
@@ -70,8 +70,8 @@ crypticorn/common/ansi_colors.py,sha256=-tMlUTE8NI7TPv7uj0kGRe-SI2hGaUNPKBFI_dfi
70
70
  crypticorn/common/auth.py,sha256=HxiAEej315qQGbX0p8WmQI50blUTOWsMWpCtguMx-A4,8786
71
71
  crypticorn/common/decorators.py,sha256=t5Y3vSJ-gt0n2vOYYjYN0dtzNXvZxrJs2SEItpzG8oo,1127
72
72
  crypticorn/common/enums.py,sha256=YE7ObydyWAKO8MOSQBwk9M1PzzaPvlnxc6Dbpu78QMk,787
73
- crypticorn/common/errors.py,sha256=6GykQkXoIWOvRA9EP5J-qNWUFFLxYnUwcjseX5SY4EA,28721
74
- crypticorn/common/exceptions.py,sha256=31WcS1OEcGBAMc3FnPrtb6jFbh6Ni1v9Kciz7Av4y84,6098
73
+ crypticorn/common/errors.py,sha256=qI6MqplcMbQg4A2-fa8h-qoSLrj1lJJl9DfRlAF34pE,28691
74
+ crypticorn/common/exceptions.py,sha256=ytMxm7I5QWM9RkirQmzXon1NdhecrXEXafGyXDjVkS0,6390
75
75
  crypticorn/common/logging.py,sha256=3ZTFB9j8Mqy_AlNYABUFQ_134OH0YtophJkP4_GDJ9w,4408
76
76
  crypticorn/common/middleware.py,sha256=O7XiXPimNYUhF9QTv6yFUTVlb91-SK-3CfTrWMNP6Ck,1011
77
77
  crypticorn/common/mixins.py,sha256=l7XQrBISaee6fDZXy96k0HnQ18XYocjTUXlNpVxhaOY,2206
@@ -86,7 +86,7 @@ crypticorn/common/router/status_router.py,sha256=it6kfvx_Pn4Rv06fmViwhwr-m6f4WuS
86
86
  crypticorn/hive/__init__.py,sha256=hRfTlEzEql4msytdUC_04vfaHzVKG5CGZle1M-9QFgY,81
87
87
  crypticorn/hive/main.py,sha256=eoo5bTmbfS94zuYHDkD20orNANESYuTURHQNw3pIEvQ,2875
88
88
  crypticorn/hive/utils.py,sha256=5T2GYnIFazXgAdUlO03xWqcMWhWkM82cfWvwsO8geHE,2040
89
- crypticorn/hive/client/__init__.py,sha256=9H8k_fi6UDVrVwnHH8i-Q_1CNTe0f_Ti5gBmt42AtFo,2645
89
+ crypticorn/hive/client/__init__.py,sha256=Exioq01qeou_AXsWpEoLD-AhIlxmdTPF9hXhonk8d0s,2706
90
90
  crypticorn/hive/client/api_client.py,sha256=fDFsACK7hxXw_sgt3ZJVH2RplEdUhR0YZd4tsZA9P5Q,26869
91
91
  crypticorn/hive/client/api_response.py,sha256=WhxwYDSMm6wPixp9CegO8dJzjFxDz3JF1yCq9s0ZqKE,639
92
92
  crypticorn/hive/client/configuration.py,sha256=J4tZF5m71BMOFE1rfWzgrBWEPQ-DQ-FByFJiNZ81W48,19105
@@ -98,13 +98,14 @@ crypticorn/hive/client/api/admin_api.py,sha256=ov2vApFo50A3uOAq717PBhrw2JpQSsHyB
98
98
  crypticorn/hive/client/api/data_api.py,sha256=bXEx44opuJsJtNJORlL2A9By2FA-vhCep_ath_uIRXA,23218
99
99
  crypticorn/hive/client/api/models_api.py,sha256=ID0-IJjxRSQO6rq0HFaEKvEArD45QI2ULJIE5FFXJfg,76071
100
100
  crypticorn/hive/client/api/status_api.py,sha256=KIpSewGuK6_cUT6dfUjlvt35k1xW4YZcuSTCPWFURms,19577
101
- crypticorn/hive/client/models/__init__.py,sha256=idst4l4rnxk0BpUq-FoUAWg6cG4iXUo2mH6sQTMoUmA,1795
102
- crypticorn/hive/client/models/api_error_identifier.py,sha256=VbjaaF0d7PJL9abHZqoF_Ht8SUcqhfO2nVDeyTNhtyM,4915
101
+ crypticorn/hive/client/models/__init__.py,sha256=wnx72H1vU0TmWQhwe0Lq5AasPj03E9kz8Yg5UYDL4NA,1856
102
+ crypticorn/hive/client/models/api_error_identifier.py,sha256=aDMlBzjQ7xu9ZsSzbxVUl54XcCkRnhIaOUfcZIvNHEM,4995
103
103
  crypticorn/hive/client/models/api_error_level.py,sha256=huHUOq0gBgH-MR4SZL4P-432DeW8UaMHjzvvAPvwSCE,725
104
104
  crypticorn/hive/client/models/api_error_type.py,sha256=IN_aDBQQP7sKXUNk-oElKcCBg7CYfCt8efL1qvhb54g,764
105
+ crypticorn/hive/client/models/coin_info.py,sha256=7JQ8pkcGxz36yjAR7z0AaudkCp2Ahq88hLKGmjSZT8o,3242
105
106
  crypticorn/hive/client/models/coins.py,sha256=4rPueVFUDbdU-8KrZ5b1jwqasf3uMT_cIsORyKbeydc,875
106
107
  crypticorn/hive/client/models/data_download_response.py,sha256=AVPLov8RO9zq6vThUe7M4p3LlhZQytXyPbFZD1AFDfY,3649
107
- crypticorn/hive/client/models/data_info.py,sha256=xhP_JFJP9jikOsOsPT4DJEbwGpDB8rfo5FDA1LT0ecs,6633
108
+ crypticorn/hive/client/models/data_info.py,sha256=UtmA3gvkJr2-rRL5MPFMWe5LbT_ta-mxO6HbGUGnP2A,7102
108
109
  crypticorn/hive/client/models/data_options.py,sha256=akpUT6EaGS2AxiKPAMS3pwl9XuRoSjKe9T91xhjGlaI,2785
109
110
  crypticorn/hive/client/models/data_version.py,sha256=Id_PKD-6GDVgkxbg194s3gOokgpX3WbLQ3CGdctnajU,663
110
111
  crypticorn/hive/client/models/data_version_info.py,sha256=LdwEwSgGfOzjitxiPXZfEp7IDkMQJs_7SCftZI0-5TQ,2687
@@ -119,7 +120,7 @@ crypticorn/hive/client/models/model_read.py,sha256=QGYajrM18hxKzJYVsi0-gychCgZM3
119
120
  crypticorn/hive/client/models/model_status.py,sha256=-2H6CHw6jhJgv4VJgwr1sgN2NtT1m7LGCX7L8ULTxEQ,685
120
121
  crypticorn/hive/client/models/model_update.py,sha256=iO-VtYt0aRzj9z_GeIUK2OVNg9yvM01OUVfWyCA36fc,2413
121
122
  crypticorn/hive/client/models/target.py,sha256=otOJK8s5WVUen6J1AQZpRiD330RIpaJU6JShb-EU8Hs,777
122
- crypticorn/hive/client/models/target_info.py,sha256=hFaOMZlirH2B68DQstL_c4WvtejwXyOk67lxIaeuh3Q,2857
123
+ crypticorn/hive/client/models/target_info.py,sha256=bnQl3505eQc1-dXZqrBCHA_5jgO8OfBiyDl5PQPlGww,3377
123
124
  crypticorn/hive/client/models/target_type.py,sha256=FUMaEFkPM7EvStPJE1auimDJ9mxDf6pbsFf-dF3coGw,684
124
125
  crypticorn/klines/__init__.py,sha256=9UUW013uZ5x4evz5zRUxbNid-6O9WAPPYvPZIHpAwms,87
125
126
  crypticorn/klines/main.py,sha256=C_I_Q1VBVJ7dh8oTu7-lMFvb--rYYRjDq9trA1jEtyM,2694
@@ -195,7 +196,7 @@ crypticorn/metrics/client/models/time_interval.py,sha256=8bHhMNt56xVGvJi5xNFMrAk
195
196
  crypticorn/metrics/client/models/trading_status.py,sha256=_S-KAyuCJsLLY0UTcNKkhLWoPJS-ywf7y3yTdhIuF0w,746
196
197
  crypticorn/pay/__init__.py,sha256=ux-B-YbNetpTlZTb2fijuGUOEmSm4IB0fYtieGnVDBg,78
197
198
  crypticorn/pay/main.py,sha256=AP0bQLIP6QehbR6o7lswSu2HTPjnnkTD72VsHMYw_Tk,697
198
- crypticorn/pay/client/__init__.py,sha256=t51BXLDtwIAkAUFYhBnme4xRzqf-zHwaJ6tvPPUEeDo,2115
199
+ crypticorn/pay/client/__init__.py,sha256=fHk-Ut0ujx6rNiY3GtMY-1oY0unRSdBEKqxJS3Ch8hk,2243
199
200
  crypticorn/pay/client/api_client.py,sha256=HjmMJeQ4hcDNWm5I9LEQtZEGD1hPeyQU2y_SLmgD9mE,26870
200
201
  crypticorn/pay/client/api_response.py,sha256=WhxwYDSMm6wPixp9CegO8dJzjFxDz3JF1yCq9s0ZqKE,639
201
202
  crypticorn/pay/client/configuration.py,sha256=-PRnl7AEOWSGACFOzIF42EMTZ8iGluXwhZvqAhSRXPI,19110
@@ -203,25 +204,27 @@ crypticorn/pay/client/exceptions.py,sha256=hbV_qDEzFJ2GVU2hVi6DqQMFztSBH1M8Nnuzo
203
204
  crypticorn/pay/client/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
204
205
  crypticorn/pay/client/rest.py,sha256=GfZLzoQiqFOYC1jIwCuxeY9XCOxlpu-Cvwn2Tu3Q1n0,6981
205
206
  crypticorn/pay/client/api/__init__.py,sha256=OLynXJY1ujBoaam3yRbuC5QWZK31RJRGp_MWrmJ6DqY,359
206
- crypticorn/pay/client/api/admin_api.py,sha256=GZSMjlrvC6S9-yrtNRH2sv9GNoh2HUEYkMw6iSx6JJo,58860
207
- crypticorn/pay/client/api/now_payments_api.py,sha256=3BouXcha-xARDX6_soa5egqRszEO8f8QhN4WjOpP8tk,30346
208
- crypticorn/pay/client/api/payments_api.py,sha256=XlCNkD6s_6nH8fktneoqMq4ZTHB9YkotVqX_edy614o,33820
209
- crypticorn/pay/client/api/products_api.py,sha256=zh8y_3YgpCUZT7wAGAR7lDheR98y53YGJHwOU6VJQjw,33586
207
+ crypticorn/pay/client/api/admin_api.py,sha256=YxMUHucqPbl3oorYE0hJs9nn3TTKHrFpOGru0QcP7IA,59897
208
+ crypticorn/pay/client/api/now_payments_api.py,sha256=HhhgdOUwrFG0-T2D2vDOdN57GmEcMYM48qr6jYpezJ0,49589
209
+ crypticorn/pay/client/api/payments_api.py,sha256=fza4PnsZk9-iNubfgeprT01REcu9LgFhpkxpzVCVnSg,24640
210
+ crypticorn/pay/client/api/products_api.py,sha256=h27SftXedInUka6wU4Kje_mjArltJBnNEdMn3gSL2rE,33517
210
211
  crypticorn/pay/client/api/status_api.py,sha256=G7ACZnRoKX87WbUJ8eI47XtQu_u1Xl0H1OHnC8-XrQg,19581
211
- crypticorn/pay/client/models/__init__.py,sha256=L7iyMDmXtedB6N95TsBvoGYyMOhoYckpGFdz_kX8TP8,1196
212
- crypticorn/pay/client/models/exception_detail.py,sha256=RKqu-lNMwpLu_lcLJe5WmSFCcsaHFKCDS8uCcpcd6L8,3664
212
+ crypticorn/pay/client/models/__init__.py,sha256=Q-tN_kaQNpoCunlfMeGysTcwl2lyP9S5nJu_HFu4RZ4,1324
213
+ crypticorn/pay/client/models/api_error_identifier.py,sha256=yjWWaZpMnPEbb9dZOLKhRhvn8znN0d6oJapOQUVDfSQ,5002
214
+ crypticorn/pay/client/models/api_error_level.py,sha256=tPnObV-r0FK9e3SsqA-TBTxF7cLygn-kS5-Q0LAi8Zs,732
215
+ crypticorn/pay/client/models/api_error_type.py,sha256=eD86iPZAOK6pL1CdCFivSQRbjpa9VcwFEl55xzjejqY,771
216
+ crypticorn/pay/client/models/exception_detail.py,sha256=wZUdv59lViyGUJSdfZYu6gjO1gugd97XZSkVgtpcxDg,3801
213
217
  crypticorn/pay/client/models/log_level.py,sha256=Z6gL84MpIt8u18Brh-oZT217IQB1w8H1zhHnWZtKU4M,729
214
218
  crypticorn/pay/client/models/now_create_invoice_req.py,sha256=9MKrW4ETKdQLFuGUXcyqUwFkQ_4utWrhGvLzUxOoFws,6644
215
219
  crypticorn/pay/client/models/now_create_invoice_res.py,sha256=zsdEAJjyZCmZdaag6Jr6XdLJIKZkOrx03K8t0IY7aTU,6957
216
220
  crypticorn/pay/client/models/payment.py,sha256=SxHoHZ4AKWPk0r_1oeiP-7Vz5RdN9ow02cfZM0XKHdA,3543
217
221
  crypticorn/pay/client/models/payment_status.py,sha256=S3-Xnvumq-c0aNkx3HzfsxglTf6E1-5HgjJTHX_d9QE,823
218
- crypticorn/pay/client/models/product_create.py,sha256=lY_7nOdUrKwZwEr22MnXk-28Hk7ZeeTlnDJMl9kMf9g,3543
219
- crypticorn/pay/client/models/product_read.py,sha256=H2DQJNlO7fpL8R5KScprmn0-23orEazK2skr7c-KBHk,3647
220
- crypticorn/pay/client/models/product_sub_read.py,sha256=5B0W9-tEypWUpmjUyvuaT_bgVq5wRsDcK-rWQDdU3wY,3156
222
+ crypticorn/pay/client/models/product.py,sha256=78_QcOVHEYtG2WQVCTIw_Wm-oATqNlpNcrY9-CNe_v8,3633
223
+ crypticorn/pay/client/models/product_create.py,sha256=uoVQK31dEJWpvtJETuQEK_wyAM4AOOWRYcZK8J3HUS8,3541
221
224
  crypticorn/pay/client/models/product_update.py,sha256=dM27vbcHRgtu3YrFgux3ufg8QMN5ta6OnGGRIe8Wrjk,4441
222
225
  crypticorn/pay/client/models/provider.py,sha256=w2gJkEoTBnW-VluQ3AYLouWelszdf8Y4LnAVkWJUkTQ,656
223
- crypticorn/pay/client/models/response_getuptime.py,sha256=2q_8MrnJxrIVkfl6dOP3aY0ZtBcTDgxjW_j1ldL6sw8,5021
224
- crypticorn/pay/client/models/scope.py,sha256=YAgY33KvNjgIyjse2bezwatc2VrMwBHYjf8oCWR1dnU,2419
226
+ crypticorn/pay/client/models/scope.py,sha256=tHhMZxKekwRw7--gljw5ocYXk7Sm1XyEJlaOQdiL-Y4,2457
227
+ crypticorn/pay/client/models/subscription.py,sha256=mkSaNn4bXIGRPCsGxwDoPjvhXYhgCFaeZhmeAASNSf4,3140
225
228
  crypticorn/trade/__init__.py,sha256=QzScH9n-ly3QSaBSpPP7EqYwhdzDqYCZJs0-AhEhrsY,84
226
229
  crypticorn/trade/main.py,sha256=h-lh8ESY0E5lKB5bg-D41TPxiNND8g4pFAd7updpd0Y,1074
227
230
  crypticorn/trade/client/__init__.py,sha256=Y0VHAIUGvjZR2UNFaAJT9_ciXyQlcVuF2d04cufFkEI,4028
@@ -275,9 +278,9 @@ crypticorn/trade/client/models/strategy_exchange_info.py,sha256=MhPqBXHNM-jM0JPY
275
278
  crypticorn/trade/client/models/strategy_update.py,sha256=f7UsKSlNardj5h6uqHYbacjWWQscXkFDqcLOoefa28M,5048
276
279
  crypticorn/trade/client/models/tpsl.py,sha256=vUWMI9T69kCgiN0aQobiIkGFb3MYdMfkhPUjQuCLeYE,4405
277
280
  crypticorn/trade/client/models/trading_action_type.py,sha256=BysUEOl85zs79EA2zOcDN1EExcpQdABaJ4Jz08_z8VU,857
278
- crypticorn-2.11.9.dist-info/licenses/LICENSE,sha256=HonAVvzFXkP2C1d7D3ByIKPwjGH8NcHTAQvKH7uvOHQ,1856
279
- crypticorn-2.11.9.dist-info/METADATA,sha256=VTjaoMrJ1GCsHKX2aFPlPowrls5x2slXIt61LFGZrIo,8640
280
- crypticorn-2.11.9.dist-info/WHEEL,sha256=Nw36Djuh_5VDukK0H78QzOX-_FQEo6V37m3nkm96gtU,91
281
- crypticorn-2.11.9.dist-info/entry_points.txt,sha256=d_xHsGvUTebPveVUK0SrpDFQ5ZRSjlI7lNCc11sn2PM,59
282
- crypticorn-2.11.9.dist-info/top_level.txt,sha256=EP3NY216qIBYfmvGl0L2Zc9ItP0DjGSkiYqd9xJwGcM,11
283
- crypticorn-2.11.9.dist-info/RECORD,,
281
+ crypticorn-2.12.0.dist-info/licenses/LICENSE,sha256=HonAVvzFXkP2C1d7D3ByIKPwjGH8NcHTAQvKH7uvOHQ,1856
282
+ crypticorn-2.12.0.dist-info/METADATA,sha256=DNXZ9XgcxhdhiljcW7ixFoUDkiz-VqfphIKqntf3llM,8640
283
+ crypticorn-2.12.0.dist-info/WHEEL,sha256=zaaOINJESkSfm_4HQVc5ssNzHCPXhJm0kEUakpsEHaU,91
284
+ crypticorn-2.12.0.dist-info/entry_points.txt,sha256=d_xHsGvUTebPveVUK0SrpDFQ5ZRSjlI7lNCc11sn2PM,59
285
+ crypticorn-2.12.0.dist-info/top_level.txt,sha256=EP3NY216qIBYfmvGl0L2Zc9ItP0DjGSkiYqd9xJwGcM,11
286
+ crypticorn-2.12.0.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: setuptools (80.7.1)
2
+ Generator: setuptools (80.8.0)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5
 
@@ -1,159 +0,0 @@
1
- # coding: utf-8
2
-
3
- """
4
- Payment API
5
-
6
- API for accepting payments and storing subscriptions
7
-
8
- The version of the OpenAPI document: 1.0.0
9
- Generated by OpenAPI Generator (https://openapi-generator.tech)
10
-
11
- Do not edit the class manually.
12
- """ # noqa: E501
13
-
14
-
15
- from __future__ import annotations
16
- from inspect import getfullargspec
17
- import json
18
- import pprint
19
- import re # noqa: F401
20
- from pydantic import (
21
- BaseModel,
22
- ConfigDict,
23
- Field,
24
- StrictInt,
25
- StrictStr,
26
- ValidationError,
27
- field_validator,
28
- )
29
- from typing import Optional
30
- from typing import Union, Any, List, Set, TYPE_CHECKING, Optional, Dict
31
- from typing_extensions import Literal, Self
32
- from pydantic import Field
33
-
34
- RESPONSEGETUPTIME_ANY_OF_SCHEMAS = ["int", "str"]
35
-
36
-
37
- class ResponseGetuptime(BaseModel):
38
- """
39
- ResponseGetuptime
40
- """
41
-
42
- # data type: int
43
- anyof_schema_1_validator: Optional[StrictInt] = None
44
- # data type: str
45
- anyof_schema_2_validator: Optional[StrictStr] = None
46
- if TYPE_CHECKING:
47
- actual_instance: Optional[Union[int, str]] = None
48
- else:
49
- actual_instance: Any = None
50
- any_of_schemas: Set[str] = {"int", "str"}
51
-
52
- model_config = {
53
- "validate_assignment": True,
54
- "protected_namespaces": (),
55
- }
56
-
57
- def __init__(self, *args, **kwargs) -> None:
58
- if args:
59
- if len(args) > 1:
60
- raise ValueError(
61
- "If a position argument is used, only 1 is allowed to set `actual_instance`"
62
- )
63
- if kwargs:
64
- raise ValueError(
65
- "If a position argument is used, keyword arguments cannot be used."
66
- )
67
- super().__init__(actual_instance=args[0])
68
- else:
69
- super().__init__(**kwargs)
70
-
71
- @field_validator("actual_instance")
72
- def actual_instance_must_validate_anyof(cls, v):
73
- instance = ResponseGetuptime.model_construct()
74
- error_messages = []
75
- # validate data type: int
76
- try:
77
- instance.anyof_schema_1_validator = v
78
- return v
79
- except (ValidationError, ValueError) as e:
80
- error_messages.append(str(e))
81
- # validate data type: str
82
- try:
83
- instance.anyof_schema_2_validator = v
84
- return v
85
- except (ValidationError, ValueError) as e:
86
- error_messages.append(str(e))
87
- if error_messages:
88
- # no match
89
- raise ValueError(
90
- "No match found when setting the actual_instance in ResponseGetuptime with anyOf schemas: int, str. Details: "
91
- + ", ".join(error_messages)
92
- )
93
- else:
94
- return v
95
-
96
- @classmethod
97
- def from_dict(cls, obj: Dict[str, Any]) -> Self:
98
- return cls.from_json(json.dumps(obj))
99
-
100
- @classmethod
101
- def from_json(cls, json_str: str) -> Self:
102
- """Returns the object represented by the json string"""
103
- instance = cls.model_construct()
104
- error_messages = []
105
- # deserialize data into int
106
- try:
107
- # validation
108
- instance.anyof_schema_1_validator = json.loads(json_str)
109
- # assign value to actual_instance
110
- instance.actual_instance = instance.anyof_schema_1_validator
111
- return instance
112
- except (ValidationError, ValueError) as e:
113
- error_messages.append(str(e))
114
- # deserialize data into str
115
- try:
116
- # validation
117
- instance.anyof_schema_2_validator = json.loads(json_str)
118
- # assign value to actual_instance
119
- instance.actual_instance = instance.anyof_schema_2_validator
120
- return instance
121
- except (ValidationError, ValueError) as e:
122
- error_messages.append(str(e))
123
-
124
- if error_messages:
125
- # no match
126
- raise ValueError(
127
- "No match found when deserializing the JSON string into ResponseGetuptime with anyOf schemas: int, str. Details: "
128
- + ", ".join(error_messages)
129
- )
130
- else:
131
- return instance
132
-
133
- def to_json(self) -> str:
134
- """Returns the JSON representation of the actual instance"""
135
- if self.actual_instance is None:
136
- return "null"
137
-
138
- if hasattr(self.actual_instance, "to_json") and callable(
139
- self.actual_instance.to_json
140
- ):
141
- return self.actual_instance.to_json()
142
- else:
143
- return json.dumps(self.actual_instance)
144
-
145
- def to_dict(self) -> Optional[Union[Dict[str, Any], int, str]]:
146
- """Returns the dict representation of the actual instance"""
147
- if self.actual_instance is None:
148
- return None
149
-
150
- if hasattr(self.actual_instance, "to_dict") and callable(
151
- self.actual_instance.to_dict
152
- ):
153
- return self.actual_instance.to_dict()
154
- else:
155
- return self.actual_instance
156
-
157
- def to_str(self) -> str:
158
- """Returns the string representation of the actual instance"""
159
- return pprint.pformat(self.model_dump())