crypticorn 2.5.2__py3-none-any.whl → 2.6.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 (102) hide show
  1. crypticorn/auth/client/__init__.py +9 -0
  2. crypticorn/auth/client/api/auth_api.py +8 -5
  3. crypticorn/auth/client/api/user_api.py +247 -0
  4. crypticorn/auth/client/models/__init__.py +9 -0
  5. crypticorn/auth/client/models/create_api_key_request.py +2 -1
  6. crypticorn/auth/client/models/get_api_keys200_response_inner.py +2 -1
  7. crypticorn/{hive/client/models/http_validation_error.py → auth/client/models/user_by_username200_response.py} +14 -22
  8. crypticorn/auth/client/models/verify200_response.py +14 -1
  9. crypticorn/auth/client/models/verify_email200_response_auth_auth.py +14 -1
  10. crypticorn/auth/client/models/whoami200_response.py +6 -1
  11. crypticorn/cli/init.py +3 -0
  12. crypticorn/common/__init__.py +2 -1
  13. crypticorn/common/auth.py +13 -9
  14. crypticorn/common/errors.py +312 -105
  15. crypticorn/common/exceptions.py +38 -4
  16. crypticorn/common/mixins.py +19 -0
  17. crypticorn/common/pagination.py +49 -0
  18. crypticorn/common/scopes.py +27 -24
  19. crypticorn/common/status_router.py +9 -7
  20. crypticorn/common/utils.py +12 -6
  21. crypticorn/hive/client/__init__.py +3 -5
  22. crypticorn/hive/client/api/data_api.py +1 -33
  23. crypticorn/hive/client/api/models_api.py +351 -160
  24. crypticorn/hive/client/api/status_api.py +481 -9
  25. crypticorn/hive/client/configuration.py +12 -4
  26. crypticorn/hive/client/models/__init__.py +3 -5
  27. crypticorn/hive/client/models/coins.py +0 -1
  28. crypticorn/hive/client/models/data_info.py +44 -12
  29. crypticorn/hive/client/models/data_version.py +0 -1
  30. crypticorn/{pay/client/models/now_api_status_res.py → hive/client/models/data_version_info.py} +17 -11
  31. crypticorn/hive/client/models/exception_detail.py +114 -0
  32. crypticorn/hive/client/models/model.py +2 -3
  33. crypticorn/hive/client/models/{validation_error.py → target_info.py} +14 -25
  34. crypticorn/hive/client/rest.py +4 -1
  35. crypticorn/klines/client/api/status_api.py +481 -6
  36. crypticorn/klines/client/api/udf_api.py +0 -227
  37. crypticorn/metrics/client/api/status_api.py +476 -1
  38. crypticorn/pay/client/__init__.py +3 -8
  39. crypticorn/pay/client/api/now_payments_api.py +14 -17
  40. crypticorn/pay/client/api/payments_api.py +2 -11
  41. crypticorn/pay/client/api/products_api.py +2 -11
  42. crypticorn/pay/client/api/status_api.py +483 -8
  43. crypticorn/pay/client/api_client.py +2 -2
  44. crypticorn/pay/client/configuration.py +3 -3
  45. crypticorn/pay/client/exceptions.py +2 -2
  46. crypticorn/pay/client/models/__init__.py +3 -8
  47. crypticorn/pay/client/models/{validation_error.py → exception_detail.py} +37 -28
  48. crypticorn/pay/client/models/now_create_invoice_req.py +2 -2
  49. crypticorn/pay/client/models/now_create_invoice_res.py +2 -2
  50. crypticorn/pay/client/models/payment.py +2 -2
  51. crypticorn/pay/client/models/payment_status.py +2 -2
  52. crypticorn/pay/client/models/product_create.py +2 -2
  53. crypticorn/pay/client/models/product_read.py +2 -2
  54. crypticorn/pay/client/models/product_sub_read.py +2 -2
  55. crypticorn/pay/client/models/product_update.py +2 -2
  56. crypticorn/pay/client/models/scope.py +2 -2
  57. crypticorn/pay/client/models/services.py +2 -2
  58. crypticorn/pay/client/rest.py +2 -2
  59. crypticorn/trade/client/__init__.py +3 -7
  60. crypticorn/trade/client/api/api_keys_api.py +5 -20
  61. crypticorn/trade/client/api/bots_api.py +7 -19
  62. crypticorn/trade/client/api/exchanges_api.py +2 -2
  63. crypticorn/trade/client/api/futures_trading_panel_api.py +10 -22
  64. crypticorn/trade/client/api/notifications_api.py +10 -25
  65. crypticorn/trade/client/api/orders_api.py +2 -5
  66. crypticorn/trade/client/api/status_api.py +483 -8
  67. crypticorn/trade/client/api/strategies_api.py +5 -17
  68. crypticorn/trade/client/api/trading_actions_api.py +2 -11
  69. crypticorn/trade/client/api_client.py +2 -2
  70. crypticorn/trade/client/configuration.py +3 -3
  71. crypticorn/trade/client/exceptions.py +2 -2
  72. crypticorn/trade/client/models/__init__.py +3 -7
  73. crypticorn/trade/client/models/action_model.py +2 -2
  74. crypticorn/trade/client/models/bot_model.py +2 -2
  75. crypticorn/trade/client/models/bot_status.py +2 -2
  76. crypticorn/trade/client/models/{validation_error.py → exception_detail.py} +37 -28
  77. crypticorn/trade/client/models/exchange_key_model.py +2 -2
  78. crypticorn/trade/client/models/execution_ids.py +2 -2
  79. crypticorn/trade/client/models/futures_balance.py +2 -2
  80. crypticorn/trade/client/models/futures_trading_action.py +2 -2
  81. crypticorn/trade/client/models/margin_mode.py +2 -2
  82. crypticorn/trade/client/models/notification_model.py +2 -2
  83. crypticorn/trade/client/models/order_model.py +2 -2
  84. crypticorn/trade/client/models/order_status.py +2 -2
  85. crypticorn/trade/client/models/post_futures_action.py +2 -2
  86. crypticorn/trade/client/models/spot_trading_action.py +2 -2
  87. crypticorn/trade/client/models/strategy_exchange_info.py +2 -2
  88. crypticorn/trade/client/models/strategy_model_input.py +2 -2
  89. crypticorn/trade/client/models/strategy_model_output.py +2 -2
  90. crypticorn/trade/client/models/tpsl.py +2 -2
  91. crypticorn/trade/client/models/trading_action_type.py +2 -2
  92. crypticorn/trade/client/rest.py +2 -2
  93. {crypticorn-2.5.2.dist-info → crypticorn-2.6.0.dist-info}/METADATA +1 -1
  94. {crypticorn-2.5.2.dist-info → crypticorn-2.6.0.dist-info}/RECORD +97 -100
  95. {crypticorn-2.5.2.dist-info → crypticorn-2.6.0.dist-info}/WHEEL +1 -1
  96. crypticorn/hive/client/models/validation_error_loc_inner.py +0 -159
  97. crypticorn/pay/client/models/http_validation_error.py +0 -99
  98. crypticorn/pay/client/models/validation_error_loc_inner.py +0 -159
  99. crypticorn/trade/client/models/http_validation_error.py +0 -99
  100. crypticorn/trade/client/models/validation_error_loc_inner.py +0 -159
  101. {crypticorn-2.5.2.dist-info → crypticorn-2.6.0.dist-info}/entry_points.txt +0 -0
  102. {crypticorn-2.5.2.dist-info → crypticorn-2.6.0.dist-info}/top_level.txt +0 -0
@@ -1,159 +0,0 @@
1
- # coding: utf-8
2
-
3
- """
4
- Payment API
5
-
6
- No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
7
-
8
- The version of the OpenAPI document: 0.1.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
- VALIDATIONERRORLOCINNER_ANY_OF_SCHEMAS = ["int", "str"]
35
-
36
-
37
- class ValidationErrorLocInner(BaseModel):
38
- """
39
- ValidationErrorLocInner
40
- """
41
-
42
- # data type: str
43
- anyof_schema_1_validator: Optional[StrictStr] = None
44
- # data type: int
45
- anyof_schema_2_validator: Optional[StrictInt] = 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 = ValidationErrorLocInner.model_construct()
74
- error_messages = []
75
- # validate data type: str
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: int
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 ValidationErrorLocInner 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 str
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 int
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 ValidationErrorLocInner 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())
@@ -1,99 +0,0 @@
1
- # coding: utf-8
2
-
3
- """
4
- Trading API
5
-
6
- No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
7
-
8
- The version of the OpenAPI document: 0.1.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 pprint
17
- import re # noqa: F401
18
- import json
19
-
20
- from pydantic import BaseModel, ConfigDict
21
- from typing import Any, ClassVar, Dict, List, Optional
22
- from crypticorn.trade.client.models.validation_error import ValidationError
23
- from typing import Optional, Set
24
- from typing_extensions import Self
25
-
26
-
27
- class HTTPValidationError(BaseModel):
28
- """
29
- HTTPValidationError
30
- """ # noqa: E501
31
-
32
- detail: Optional[List[ValidationError]] = None
33
- __properties: ClassVar[List[str]] = ["detail"]
34
-
35
- model_config = ConfigDict(
36
- populate_by_name=True,
37
- validate_assignment=True,
38
- protected_namespaces=(),
39
- )
40
-
41
- def to_str(self) -> str:
42
- """Returns the string representation of the model using alias"""
43
- return pprint.pformat(self.model_dump(by_alias=True))
44
-
45
- def to_json(self) -> str:
46
- """Returns the JSON representation of the model using alias"""
47
- # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead
48
- return json.dumps(self.to_dict())
49
-
50
- @classmethod
51
- def from_json(cls, json_str: str) -> Optional[Self]:
52
- """Create an instance of HTTPValidationError from a JSON string"""
53
- return cls.from_dict(json.loads(json_str))
54
-
55
- def to_dict(self) -> Dict[str, Any]:
56
- """Return the dictionary representation of the model using alias.
57
-
58
- This has the following differences from calling pydantic's
59
- `self.model_dump(by_alias=True)`:
60
-
61
- * `None` is only added to the output dict for nullable fields that
62
- were set at model initialization. Other fields with value `None`
63
- are ignored.
64
- """
65
- excluded_fields: Set[str] = set([])
66
-
67
- _dict = self.model_dump(
68
- by_alias=True,
69
- exclude=excluded_fields,
70
- exclude_none=True,
71
- )
72
- # override the default output from pydantic by calling `to_dict()` of each item in detail (list)
73
- _items = []
74
- if self.detail:
75
- for _item_detail in self.detail:
76
- if _item_detail:
77
- _items.append(_item_detail.to_dict())
78
- _dict["detail"] = _items
79
- return _dict
80
-
81
- @classmethod
82
- def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
83
- """Create an instance of HTTPValidationError from a dict"""
84
- if obj is None:
85
- return None
86
-
87
- if not isinstance(obj, dict):
88
- return cls.model_validate(obj)
89
-
90
- _obj = cls.model_validate(
91
- {
92
- "detail": (
93
- [ValidationError.from_dict(_item) for _item in obj["detail"]]
94
- if obj.get("detail") is not None
95
- else None
96
- )
97
- }
98
- )
99
- return _obj
@@ -1,159 +0,0 @@
1
- # coding: utf-8
2
-
3
- """
4
- Trading API
5
-
6
- No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
7
-
8
- The version of the OpenAPI document: 0.1.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
- VALIDATIONERRORLOCINNER_ANY_OF_SCHEMAS = ["int", "str"]
35
-
36
-
37
- class ValidationErrorLocInner(BaseModel):
38
- """
39
- ValidationErrorLocInner
40
- """
41
-
42
- # data type: str
43
- anyof_schema_1_validator: Optional[StrictStr] = None
44
- # data type: int
45
- anyof_schema_2_validator: Optional[StrictInt] = 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 = ValidationErrorLocInner.model_construct()
74
- error_messages = []
75
- # validate data type: str
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: int
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 ValidationErrorLocInner 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 str
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 int
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 ValidationErrorLocInner 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())