crypticorn 1.0.2rc1__py3-none-any.whl → 1.0.2rc2__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/client.py +3 -3
- crypticorn/hive/__init__.py +1 -0
- crypticorn/klines/__init__.py +2 -0
- crypticorn/klines/main.py +1 -1
- crypticorn/trade/__init__.py +2 -0
- crypticorn/trade/client/models/action_model.py +4 -4
- crypticorn/trade/client/models/api_key_model.py +4 -4
- crypticorn/trade/client/models/bot_model.py +4 -4
- crypticorn/trade/client/models/notification_model.py +4 -4
- crypticorn/trade/client/models/order_model.py +4 -4
- crypticorn/trade/client/models/strategy_model.py +4 -4
- crypticorn/trade/main.py +3 -2
- {crypticorn-1.0.2rc1.dist-info → crypticorn-1.0.2rc2.dist-info}/METADATA +16 -16
- {crypticorn-1.0.2rc1.dist-info → crypticorn-1.0.2rc2.dist-info}/RECORD +17 -47
- crypticorn/trade/test/__init__.py +0 -0
- crypticorn/trade/test/test_action_model.py +0 -87
- crypticorn/trade/test/test_api_error_identifier.py +0 -33
- crypticorn/trade/test/test_api_key_model.py +0 -61
- crypticorn/trade/test/test_api_keys_api.py +0 -66
- crypticorn/trade/test/test_bot_model.py +0 -64
- crypticorn/trade/test/test_bots_api.py +0 -59
- crypticorn/trade/test/test_exchange.py +0 -33
- crypticorn/trade/test/test_exchanges_api.py +0 -38
- crypticorn/trade/test/test_execution_ids.py +0 -68
- crypticorn/trade/test/test_futures_balance.py +0 -62
- crypticorn/trade/test/test_futures_trading_action.py +0 -86
- crypticorn/trade/test/test_futures_trading_panel_api.py +0 -66
- crypticorn/trade/test/test_http_validation_error.py +0 -58
- crypticorn/trade/test/test_margin_mode.py +0 -33
- crypticorn/trade/test/test_market_type.py +0 -33
- crypticorn/trade/test/test_notification_model.py +0 -59
- crypticorn/trade/test/test_notification_type.py +0 -33
- crypticorn/trade/test/test_notifications_api.py +0 -73
- crypticorn/trade/test/test_order_model.py +0 -75
- crypticorn/trade/test/test_order_status.py +0 -33
- crypticorn/trade/test/test_orders_api.py +0 -38
- crypticorn/trade/test/test_post_futures_action.py +0 -72
- crypticorn/trade/test/test_status_api.py +0 -38
- crypticorn/trade/test/test_strategies_api.py +0 -38
- crypticorn/trade/test/test_strategy_exchange_info.py +0 -54
- crypticorn/trade/test/test_strategy_model.py +0 -73
- crypticorn/trade/test/test_tpsl.py +0 -56
- crypticorn/trade/test/test_trading_action_type.py +0 -33
- crypticorn/trade/test/test_trading_actions_api.py +0 -52
- crypticorn/trade/test/test_update_notification.py +0 -54
- crypticorn/trade/test/test_validation_error.py +0 -60
- crypticorn/trade/test/test_validation_error_loc_inner.py +0 -50
- {crypticorn-1.0.2rc1.dist-info → crypticorn-1.0.2rc2.dist-info}/LICENSE.md +0 -0
- {crypticorn-1.0.2rc1.dist-info → crypticorn-1.0.2rc2.dist-info}/WHEEL +0 -0
- {crypticorn-1.0.2rc1.dist-info → crypticorn-1.0.2rc2.dist-info}/top_level.txt +0 -0
crypticorn/client.py
CHANGED
@@ -6,9 +6,9 @@ from typing import Optional, Union, List
|
|
6
6
|
from urllib.parse import urljoin
|
7
7
|
from datetime import datetime, timedelta
|
8
8
|
|
9
|
-
from crypticorn.hive
|
10
|
-
from crypticorn.trade
|
11
|
-
from crypticorn.klines
|
9
|
+
from crypticorn.hive import HiveClient
|
10
|
+
from crypticorn.trade import TradeClient
|
11
|
+
from crypticorn.klines import KlinesClient
|
12
12
|
|
13
13
|
class PredictionData(BaseModel):
|
14
14
|
id: Optional[int] = None
|
@@ -0,0 +1 @@
|
|
1
|
+
from crypticorn.hive.main import HiveClient
|
crypticorn/klines/main.py
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
from crypticorn.klines
|
1
|
+
from crypticorn.klines import FundingRatesApi, OHLCVDataApi, SymbolsApi, UDFApi, HealthCheckApi, Configuration, ApiClient
|
2
2
|
import pandas as pd
|
3
3
|
|
4
4
|
class FundingRatesApiWrapper(FundingRatesApi):
|
@@ -31,8 +31,8 @@ class ActionModel(BaseModel):
|
|
31
31
|
"""
|
32
32
|
ActionModel
|
33
33
|
""" # noqa: E501
|
34
|
-
created_at: Optional[StrictInt] = Field(default=
|
35
|
-
updated_at: Optional[StrictInt] = Field(default=
|
34
|
+
created_at: Optional[StrictInt] = Field(default=1742386800, description="Timestamp of creation")
|
35
|
+
updated_at: Optional[StrictInt] = Field(default=1742386800, description="Timestamp of last update")
|
36
36
|
id: Optional[StrictStr] = None
|
37
37
|
execution_id: Optional[StrictStr] = None
|
38
38
|
open_order_execution_id: Optional[StrictStr] = None
|
@@ -177,8 +177,8 @@ class ActionModel(BaseModel):
|
|
177
177
|
return cls.model_validate(obj)
|
178
178
|
|
179
179
|
_obj = cls.model_validate({
|
180
|
-
"created_at": obj.get("created_at") if obj.get("created_at") is not None else
|
181
|
-
"updated_at": obj.get("updated_at") if obj.get("updated_at") is not None else
|
180
|
+
"created_at": obj.get("created_at") if obj.get("created_at") is not None else 1742386800,
|
181
|
+
"updated_at": obj.get("updated_at") if obj.get("updated_at") is not None else 1742386800,
|
182
182
|
"id": obj.get("id"),
|
183
183
|
"execution_id": obj.get("execution_id"),
|
184
184
|
"open_order_execution_id": obj.get("open_order_execution_id"),
|
@@ -26,8 +26,8 @@ class APIKeyModel(BaseModel):
|
|
26
26
|
"""
|
27
27
|
APIKeyModel
|
28
28
|
""" # noqa: E501
|
29
|
-
created_at: Optional[StrictInt] = Field(default=
|
30
|
-
updated_at: Optional[StrictInt] = Field(default=
|
29
|
+
created_at: Optional[StrictInt] = Field(default=1742386800, description="Timestamp of creation")
|
30
|
+
updated_at: Optional[StrictInt] = Field(default=1742386800, description="Timestamp of last update")
|
31
31
|
id: Optional[StrictStr] = None
|
32
32
|
exchange: StrictStr = Field(description="Exchange name")
|
33
33
|
api_key: Optional[StrictStr] = None
|
@@ -119,8 +119,8 @@ class APIKeyModel(BaseModel):
|
|
119
119
|
return cls.model_validate(obj)
|
120
120
|
|
121
121
|
_obj = cls.model_validate({
|
122
|
-
"created_at": obj.get("created_at") if obj.get("created_at") is not None else
|
123
|
-
"updated_at": obj.get("updated_at") if obj.get("updated_at") is not None else
|
122
|
+
"created_at": obj.get("created_at") if obj.get("created_at") is not None else 1742386800,
|
123
|
+
"updated_at": obj.get("updated_at") if obj.get("updated_at") is not None else 1742386800,
|
124
124
|
"id": obj.get("id"),
|
125
125
|
"exchange": obj.get("exchange"),
|
126
126
|
"api_key": obj.get("api_key"),
|
@@ -26,8 +26,8 @@ class BotModel(BaseModel):
|
|
26
26
|
"""
|
27
27
|
BotModel
|
28
28
|
""" # noqa: E501
|
29
|
-
created_at: Optional[StrictInt] = Field(default=
|
30
|
-
updated_at: Optional[StrictInt] = Field(default=
|
29
|
+
created_at: Optional[StrictInt] = Field(default=1742386800, description="Timestamp of creation")
|
30
|
+
updated_at: Optional[StrictInt] = Field(default=1742386800, description="Timestamp of last update")
|
31
31
|
id: Optional[StrictStr] = None
|
32
32
|
name: StrictStr = Field(description="Name of the bot")
|
33
33
|
strategy_id: StrictStr = Field(description="UID for the trading strategy used by the bot")
|
@@ -105,8 +105,8 @@ class BotModel(BaseModel):
|
|
105
105
|
return cls.model_validate(obj)
|
106
106
|
|
107
107
|
_obj = cls.model_validate({
|
108
|
-
"created_at": obj.get("created_at") if obj.get("created_at") is not None else
|
109
|
-
"updated_at": obj.get("updated_at") if obj.get("updated_at") is not None else
|
108
|
+
"created_at": obj.get("created_at") if obj.get("created_at") is not None else 1742386800,
|
109
|
+
"updated_at": obj.get("updated_at") if obj.get("updated_at") is not None else 1742386800,
|
110
110
|
"id": obj.get("id"),
|
111
111
|
"name": obj.get("name"),
|
112
112
|
"strategy_id": obj.get("strategy_id"),
|
@@ -28,8 +28,8 @@ class NotificationModel(BaseModel):
|
|
28
28
|
"""
|
29
29
|
NotificationModel
|
30
30
|
""" # noqa: E501
|
31
|
-
created_at: Optional[StrictInt] = Field(default=
|
32
|
-
updated_at: Optional[StrictInt] = Field(default=
|
31
|
+
created_at: Optional[StrictInt] = Field(default=1742386800, description="Timestamp of creation")
|
32
|
+
updated_at: Optional[StrictInt] = Field(default=1742386800, description="Timestamp of last update")
|
33
33
|
id: Optional[StrictStr] = None
|
34
34
|
identifier: ApiErrorIdentifier = Field(description="Identifier string. Must match the mapping key in the frontend.")
|
35
35
|
user_id: Optional[StrictStr] = None
|
@@ -99,8 +99,8 @@ class NotificationModel(BaseModel):
|
|
99
99
|
return cls.model_validate(obj)
|
100
100
|
|
101
101
|
_obj = cls.model_validate({
|
102
|
-
"created_at": obj.get("created_at") if obj.get("created_at") is not None else
|
103
|
-
"updated_at": obj.get("updated_at") if obj.get("updated_at") is not None else
|
102
|
+
"created_at": obj.get("created_at") if obj.get("created_at") is not None else 1742386800,
|
103
|
+
"updated_at": obj.get("updated_at") if obj.get("updated_at") is not None else 1742386800,
|
104
104
|
"id": obj.get("id"),
|
105
105
|
"identifier": obj.get("identifier"),
|
106
106
|
"user_id": obj.get("user_id"),
|
@@ -32,8 +32,8 @@ class OrderModel(BaseModel):
|
|
32
32
|
"""
|
33
33
|
Response model for orders. All optional as the model is built step by step.
|
34
34
|
""" # noqa: E501
|
35
|
-
created_at: Optional[StrictInt] = Field(default=
|
36
|
-
updated_at: Optional[StrictInt] = Field(default=
|
35
|
+
created_at: Optional[StrictInt] = Field(default=1742386800, description="Timestamp of creation")
|
36
|
+
updated_at: Optional[StrictInt] = Field(default=1742386800, description="Timestamp of last update")
|
37
37
|
id: Optional[StrictStr] = None
|
38
38
|
trading_action_id: Optional[StrictStr] = None
|
39
39
|
execution_id: Optional[StrictStr] = None
|
@@ -231,8 +231,8 @@ class OrderModel(BaseModel):
|
|
231
231
|
return cls.model_validate(obj)
|
232
232
|
|
233
233
|
_obj = cls.model_validate({
|
234
|
-
"created_at": obj.get("created_at") if obj.get("created_at") is not None else
|
235
|
-
"updated_at": obj.get("updated_at") if obj.get("updated_at") is not None else
|
234
|
+
"created_at": obj.get("created_at") if obj.get("created_at") is not None else 1742386800,
|
235
|
+
"updated_at": obj.get("updated_at") if obj.get("updated_at") is not None else 1742386800,
|
236
236
|
"id": obj.get("id"),
|
237
237
|
"trading_action_id": obj.get("trading_action_id"),
|
238
238
|
"execution_id": obj.get("execution_id"),
|
@@ -28,8 +28,8 @@ class StrategyModel(BaseModel):
|
|
28
28
|
"""
|
29
29
|
StrategyModel
|
30
30
|
""" # noqa: E501
|
31
|
-
created_at: Optional[StrictInt] = Field(default=
|
32
|
-
updated_at: Optional[StrictInt] = Field(default=
|
31
|
+
created_at: Optional[StrictInt] = Field(default=1742386800, description="Timestamp of creation")
|
32
|
+
updated_at: Optional[StrictInt] = Field(default=1742386800, description="Timestamp of last update")
|
33
33
|
id: Optional[StrictStr] = None
|
34
34
|
identifier: StrictStr = Field(description="Unique human readable identifier for the strategy e.g. 'daily_trend_momentum'")
|
35
35
|
name: StrictStr = Field(description="Name of the strategy")
|
@@ -103,8 +103,8 @@ class StrategyModel(BaseModel):
|
|
103
103
|
return cls.model_validate(obj)
|
104
104
|
|
105
105
|
_obj = cls.model_validate({
|
106
|
-
"created_at": obj.get("created_at") if obj.get("created_at") is not None else
|
107
|
-
"updated_at": obj.get("updated_at") if obj.get("updated_at") is not None else
|
106
|
+
"created_at": obj.get("created_at") if obj.get("created_at") is not None else 1742386800,
|
107
|
+
"updated_at": obj.get("updated_at") if obj.get("updated_at") is not None else 1742386800,
|
108
108
|
"id": obj.get("id"),
|
109
109
|
"identifier": obj.get("identifier"),
|
110
110
|
"name": obj.get("name"),
|
crypticorn/trade/main.py
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
from crypticorn.trade
|
1
|
+
from crypticorn.trade import (
|
2
2
|
BotsApi,
|
3
3
|
ExchangesApi,
|
4
4
|
NotificationsApi,
|
@@ -23,7 +23,8 @@ class TradeClient:
|
|
23
23
|
self.host = f"{base_url}/v1/trade"
|
24
24
|
config = Configuration(
|
25
25
|
host=self.host,
|
26
|
-
access_token=jwt,
|
26
|
+
access_token=jwt,
|
27
|
+
# authorization=api_key, # TODO: add api key verification
|
27
28
|
)
|
28
29
|
base_client = ApiClient(configuration=config)
|
29
30
|
# Instantiate all the endpoint clients
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.2
|
2
2
|
Name: crypticorn
|
3
|
-
Version: 1.0.
|
3
|
+
Version: 1.0.2rc2
|
4
4
|
Summary: Maximise Your Crypto Trading Profits with AI Predictions
|
5
5
|
Author-email: Crypticorn <timon@crypticorn.com>
|
6
6
|
License: MIT License
|
@@ -16,6 +16,21 @@ Classifier: Typing :: Typed
|
|
16
16
|
Requires-Python: >=3.10
|
17
17
|
Description-Content-Type: text/markdown
|
18
18
|
License-File: LICENSE.md
|
19
|
+
Provides-Extra: trade
|
20
|
+
Requires-Dist: urllib3<3.0.0,>=1.25.3; extra == "trade"
|
21
|
+
Requires-Dist: python_dateutil>=2.8.2; extra == "trade"
|
22
|
+
Requires-Dist: pydantic>=2; extra == "trade"
|
23
|
+
Requires-Dist: typing-extensions>=4.7.1; extra == "trade"
|
24
|
+
Provides-Extra: klines
|
25
|
+
Requires-Dist: urllib3<3.0.0,>=1.25.3; extra == "klines"
|
26
|
+
Requires-Dist: python_dateutil>=2.8.2; extra == "klines"
|
27
|
+
Requires-Dist: pydantic>=2; extra == "klines"
|
28
|
+
Requires-Dist: typing-extensions>=4.7.1; extra == "klines"
|
29
|
+
Provides-Extra: hive
|
30
|
+
Requires-Dist: pandas<3.0.0,>=2.2.0; extra == "hive"
|
31
|
+
Requires-Dist: requests<3.0.0,>=2.32.0; extra == "hive"
|
32
|
+
Requires-Dist: tqdm<5.0.0,>=4.67.0; extra == "hive"
|
33
|
+
Requires-Dist: pydantic<3.0.0,>=2.0.0; extra == "hive"
|
19
34
|
Provides-Extra: dev
|
20
35
|
Requires-Dist: streamlit; extra == "dev"
|
21
36
|
Requires-Dist: httpx; extra == "dev"
|
@@ -30,18 +45,3 @@ Requires-Dist: tox>=3.9.0; extra == "test"
|
|
30
45
|
Requires-Dist: flake8>=4.0.0; extra == "test"
|
31
46
|
Requires-Dist: types-python-dateutil>=2.8.19.14; extra == "test"
|
32
47
|
Requires-Dist: mypy>=1.5; extra == "test"
|
33
|
-
Provides-Extra: klines
|
34
|
-
Requires-Dist: urllib3<3.0.0,>=1.25.3; extra == "klines"
|
35
|
-
Requires-Dist: python_dateutil>=2.8.2; extra == "klines"
|
36
|
-
Requires-Dist: pydantic>=2; extra == "klines"
|
37
|
-
Requires-Dist: typing-extensions>=4.7.1; extra == "klines"
|
38
|
-
Provides-Extra: hive
|
39
|
-
Requires-Dist: pandas<3.0.0,>=2.2.0; extra == "hive"
|
40
|
-
Requires-Dist: requests<3.0.0,>=2.32.0; extra == "hive"
|
41
|
-
Requires-Dist: tqdm<5.0.0,>=4.67.0; extra == "hive"
|
42
|
-
Requires-Dist: pydantic<3.0.0,>=2.0.0; extra == "hive"
|
43
|
-
Provides-Extra: trade
|
44
|
-
Requires-Dist: urllib3<3.0.0,>=1.25.3; extra == "trade"
|
45
|
-
Requires-Dist: python_dateutil>=2.8.2; extra == "trade"
|
46
|
-
Requires-Dist: pydantic>=2; extra == "trade"
|
47
|
-
Requires-Dist: typing-extensions>=4.7.1; extra == "trade"
|
@@ -1,9 +1,11 @@
|
|
1
1
|
crypticorn/__init__.py,sha256=tSmvwtqHKKAzbhWIc8Vt95hffRf8aEYX-8wWX6ZAPaM,147
|
2
|
-
crypticorn/client.py,sha256=
|
2
|
+
crypticorn/client.py,sha256=AWM7R7X24QQvOJn-YnJQtwK8G7SVNBrfwpGRGdji2uY,29215
|
3
|
+
crypticorn/hive/__init__.py,sha256=1o5DghmXxXFp7cL-RCNg9_EqNAJih7ftEl5gz0Q19Qc,43
|
3
4
|
crypticorn/hive/main.py,sha256=ZdB0mS_x37pGF7r63Ek-RMYTfGkmdKPf2Sj18WGGJKw,4856
|
4
5
|
crypticorn/hive/requirements.txt,sha256=-eIbxeVF3c8WJ-QKUSHm-16kCHVp-dRP7isN25wbxqw,103
|
5
6
|
crypticorn/hive/utils.py,sha256=UOgdUomUDoX97OylN0_4fsu3mPsJHaUkpHqNmSp-QYE,3126
|
6
|
-
crypticorn/klines/
|
7
|
+
crypticorn/klines/__init__.py,sha256=9UUW013uZ5x4evz5zRUxbNid-6O9WAPPYvPZIHpAwms,87
|
8
|
+
crypticorn/klines/main.py,sha256=_c_lVK2tTdiAz36jkUvdNipEg-h-j3VsiSliBehdNmc,1590
|
7
9
|
crypticorn/klines/requirements.txt,sha256=n8RhXDEAbEojFhhRCctaYym4TMVetN5A7FZ-tjjgMRA,93
|
8
10
|
crypticorn/klines/client/__init__.py,sha256=yRh5QZclw9iV6gx5VXxkcQLDuIDgqf8n4-NHsfjX4Ps,3732
|
9
11
|
crypticorn/klines/client/api_client.py,sha256=daaHrXxIXfsBxpAf82DFktJRXb5V3Di23oMkQp8HO1E,27818
|
@@ -75,7 +77,8 @@ crypticorn/klines/test/test_udf_api.py,sha256=GHb4-jTWPwnDn1O0PxRq58p-LRvt1qXCoB
|
|
75
77
|
crypticorn/klines/test/test_udf_config_response.py,sha256=WCMj8VVWE1tQgIuvRSbuFI1ixU8iQx2J105VjA2mzmE,3214
|
76
78
|
crypticorn/klines/test/test_validation_error.py,sha256=6zSVzD_LX5yIGKGZJgsH74tsXQsV6DhJIpXyqPV-fow,1910
|
77
79
|
crypticorn/klines/test/test_validation_error_loc_inner.py,sha256=D4dHw64J4-bTmMd5K-JuwKaKzHfe8bJvHdAcAfX8nsA,1759
|
78
|
-
crypticorn/trade/
|
80
|
+
crypticorn/trade/__init__.py,sha256=QzScH9n-ly3QSaBSpPP7EqYwhdzDqYCZJs0-AhEhrsY,84
|
81
|
+
crypticorn/trade/main.py,sha256=7CpTb-5JiDCgRJwjb2sohTcO1sbL_ux3d8p1cFOd4pg,1228
|
79
82
|
crypticorn/trade/requirements.txt,sha256=n8RhXDEAbEojFhhRCctaYym4TMVetN5A7FZ-tjjgMRA,93
|
80
83
|
crypticorn/trade/client/__init__.py,sha256=Fq_jmX_KcwTcUKG5SLky3UgeiAuJNwJLkomDXFc_APw,3241
|
81
84
|
crypticorn/trade/client/api_client.py,sha256=QFMMs_EPtc0_kS2uIhGPfBVbabN0nI7hyJ98FfeVa7s,27528
|
@@ -95,10 +98,10 @@ crypticorn/trade/client/api/status_api.py,sha256=iQ3GeojJ1FMEmKihgDkdIxJAbttVO7m
|
|
95
98
|
crypticorn/trade/client/api/strategies_api.py,sha256=XQiSOpDSgMC0_gi_KtZvFx0Lpj_8ejoaKL3Kjq3_I1I,11910
|
96
99
|
crypticorn/trade/client/api/trading_actions_api.py,sha256=B9div3_yrd0JjzCG3eFnxteIS4aSd-ZeRcWJ5nxNbas,33969
|
97
100
|
crypticorn/trade/client/models/__init__.py,sha256=Sg6eh8BbEwF2FG7FphlBkCuWV93UcZjgZ5B0lIGF7B4,1995
|
98
|
-
crypticorn/trade/client/models/action_model.py,sha256=
|
101
|
+
crypticorn/trade/client/models/action_model.py,sha256=nHfTRpdZk2c5P9apDzjppgRszP2DtDq_589NgYeItIo,9224
|
99
102
|
crypticorn/trade/client/models/api_error_identifier.py,sha256=LKcH6vRnpPxIWnzbhICAsx4D5uN_OsOf3BzplmYKhOE,3402
|
100
|
-
crypticorn/trade/client/models/api_key_model.py,sha256=
|
101
|
-
crypticorn/trade/client/models/bot_model.py,sha256=
|
103
|
+
crypticorn/trade/client/models/api_key_model.py,sha256=dpJPvuSqr7DoO_bapBH7gpO7EW3WlesIANy1grIJ6dI,4911
|
104
|
+
crypticorn/trade/client/models/bot_model.py,sha256=ME32DpruVjZauo9MfhaP0UEMeULJ37Fz7t9qmZRWsSk,4726
|
102
105
|
crypticorn/trade/client/models/exchange.py,sha256=UdNrCO_0L8ZFmuVsBgtEjV71UpRdi2I0XW-YeDyb7zw,746
|
103
106
|
crypticorn/trade/client/models/execution_ids.py,sha256=dJt4Qjg0B1TdeL3fI0_ZNGMZgYX_KBwIbzwxSWgSCao,2877
|
104
107
|
crypticorn/trade/client/models/futures_balance.py,sha256=VJ2Cdm5qdvzQwaF0sR2tIoWhb5MDQAvWOOVl_lyijNc,4012
|
@@ -106,53 +109,20 @@ crypticorn/trade/client/models/futures_trading_action.py,sha256=A3JO5ifaxm-xBRlM
|
|
106
109
|
crypticorn/trade/client/models/http_validation_error.py,sha256=3SRsszhn2w2qVZO9FhNR2M0ozNUGeWvPF-ywzE5ehCg,3013
|
107
110
|
crypticorn/trade/client/models/margin_mode.py,sha256=u96KDpDFRM0MIs4xbXzDOT-wn6uO73wBGZthoTP1MuE,765
|
108
111
|
crypticorn/trade/client/models/market_type.py,sha256=ppUr4WJnAiuZEZkD1WnM-oKi4vKx0ykXweAXAyfPTCk,745
|
109
|
-
crypticorn/trade/client/models/notification_model.py,sha256=
|
112
|
+
crypticorn/trade/client/models/notification_model.py,sha256=rUikEYx7hbFzpo0GQY47wHts9C0Jc_7UfDoJ3IUAoWk,4358
|
110
113
|
crypticorn/trade/client/models/notification_type.py,sha256=Cq7GDV6BwBxttohb7NMdC0nWx1-Igdq4pUDYY8CCiu0,803
|
111
|
-
crypticorn/trade/client/models/order_model.py,sha256=
|
114
|
+
crypticorn/trade/client/models/order_model.py,sha256=bzTTUyQMGxNC0DqT2epDHOZbAwsLU3Q6o0j5uajf_5s,11303
|
112
115
|
crypticorn/trade/client/models/order_status.py,sha256=V13eUjWXoZn5TD0Eyl2Q7XL9Ih6zkOUyCPOhNQ7UyTk,840
|
113
116
|
crypticorn/trade/client/models/post_futures_action.py,sha256=AdD6sQxuNUSglNUwXosTYcBdtYYqIrIvHtYcyEm3nvA,3003
|
114
117
|
crypticorn/trade/client/models/strategy_exchange_info.py,sha256=sNATmx0U6T6weg-T3vYsr1JaqgcG-36qdfuBKqpWY9Q,2834
|
115
|
-
crypticorn/trade/client/models/strategy_model.py,sha256=
|
118
|
+
crypticorn/trade/client/models/strategy_model.py,sha256=2C2ToLDm2mMYP9Gk2lzGaULoBt0tVsl5AjkaPplIvWU,4834
|
116
119
|
crypticorn/trade/client/models/tpsl.py,sha256=6Ue5uRCkMm1dUSr7xT4Y9308ZsjoZwIQ74koZGBAF6c,4180
|
117
120
|
crypticorn/trade/client/models/trading_action_type.py,sha256=eH7sFKbFojxqMdtmqq_FOrVVZ6jEOwK-uRPBBWQdeUw,845
|
118
121
|
crypticorn/trade/client/models/update_notification.py,sha256=7Aw4z98ANT6D5octUmz5UXe6EC7_Mk8ax679bjjCkXk,2988
|
119
122
|
crypticorn/trade/client/models/validation_error.py,sha256=hMZJHRMZuiByzCvD7zyR5HVzlzJSnLKcMnybUalQvgI,3105
|
120
123
|
crypticorn/trade/client/models/validation_error_loc_inner.py,sha256=wHiW_qKw46E2pUdOnesgpdnuqpTX9IQTaEOVDgph5_E,4885
|
121
|
-
crypticorn/
|
122
|
-
crypticorn/
|
123
|
-
crypticorn/
|
124
|
-
crypticorn/
|
125
|
-
crypticorn
|
126
|
-
crypticorn/trade/test/test_bot_model.py,sha256=SLISBX_Z9E_WnQ39U8_EFWlwqeQ2hel4oDNhD4be70M,1762
|
127
|
-
crypticorn/trade/test/test_bots_api.py,sha256=tTDtxJjzTjjquGZGwiO2sla2t_T6XDi12ZDcK0I_op0,1098
|
128
|
-
crypticorn/trade/test/test_exchange.py,sha256=JXuYtpeQFizjOrIgfPhc_JL0Q4MGNqXd8-WQq9ijQMo,677
|
129
|
-
crypticorn/trade/test/test_exchanges_api.py,sha256=AVnrQNHFVOzTEqeK6oG6lNPBuRVDu3Rf9vBWJVN_u-k,775
|
130
|
-
crypticorn/trade/test/test_execution_ids.py,sha256=ZhqxDYgb2EFaXTcMpSWEGfTM0xquhkcsbf-Xqg8OxgM,1757
|
131
|
-
crypticorn/trade/test/test_futures_balance.py,sha256=G010cOro2qYAfSltlY4987FfO-7piLrjw2YRZC_SHqo,1777
|
132
|
-
crypticorn/trade/test/test_futures_trading_action.py,sha256=AYt98IjeVZ9D0CTY5U1Q9yw47Vj89G9uStF_4lzO7BA,2789
|
133
|
-
crypticorn/trade/test/test_futures_trading_panel_api.py,sha256=TqxyO1S5daz1Bydpdi7PEjLMZfg6RTd_xHG3TYBdaBo,1451
|
134
|
-
crypticorn/trade/test/test_http_validation_error.py,sha256=_Dqp6mHIzGu0oOZAdbf5S7_RBdkULD7Idg9pJWQ_3t8,1711
|
135
|
-
crypticorn/trade/test/test_margin_mode.py,sha256=NP9afpV9wfTLbfr8YjkI0qU_W2Tb7IDcl9yzGRp_tfQ,692
|
136
|
-
crypticorn/trade/test/test_market_type.py,sha256=ZfF5C1Oy40wIwG5NnwGnPBEGEoCPYEKwRCBRZo78AkQ,692
|
137
|
-
crypticorn/trade/test/test_notification_model.py,sha256=aXxFWBR_aqK1666Frr86c4GuAgzCbsYF15VYnyFb8Jw,1690
|
138
|
-
crypticorn/trade/test/test_notification_type.py,sha256=oR26dNk6ku6t-c9gM7NXSgIO7KBN7rQgiyZGW1Nrf1Y,734
|
139
|
-
crypticorn/trade/test/test_notifications_api.py,sha256=H6HMhM7LujEAKl4ppjH20zzTtRu5WVxJHf4ySI1Uqso,1553
|
140
|
-
crypticorn/trade/test/test_order_model.py,sha256=yZj65SE1mJgKKiiPgo-KX9SWAu95YppBfqGkHp8K9D8,2183
|
141
|
-
crypticorn/trade/test/test_order_status.py,sha256=knUS4UQBx1TsjVxC5esSkSEMGP29ZFAvk6TWMcQDRpM,699
|
142
|
-
crypticorn/trade/test/test_orders_api.py,sha256=uKUEgAgNgGFKljoI4svWPzROiM4ztcaA2FHhBIwAEdE,751
|
143
|
-
crypticorn/trade/test/test_post_futures_action.py,sha256=EPmAUVjFfSSwF4hYFGFFdCiJ1wEVCe8gqXaxlKlOQnI,2098
|
144
|
-
crypticorn/trade/test/test_status_api.py,sha256=Dq7Aln_rJSkFkwOk6qKKzBVDZV0edl99wCZDTl6T3Vs,733
|
145
|
-
crypticorn/trade/test/test_strategies_api.py,sha256=udwtNXWkQ6Qtk7ivB1KkoQnktE5A1dc1ealO2aCj71o,783
|
146
|
-
crypticorn/trade/test/test_strategy_exchange_info.py,sha256=TTLzxbPbCTf-ILjef1r2zNkD63hYFeJd2539-WA5cWE,1582
|
147
|
-
crypticorn/trade/test/test_strategy_model.py,sha256=JIF6DjKLB2q57J8t4lDuaOUJVIKDRgtrJI6Fc5LpnSQ,2220
|
148
|
-
crypticorn/trade/test/test_tpsl.py,sha256=7pFHNNt8_H8ujDXhNL-XwJzI2ZEEp2zoMQgkmGD4Kb4,1449
|
149
|
-
crypticorn/trade/test/test_trading_action_type.py,sha256=cd1DiGo3Rjk-EKOG0u5zjPowxNOKb_JBL10iI8MfoZ4,742
|
150
|
-
crypticorn/trade/test/test_trading_actions_api.py,sha256=_yQrNMPzlKaJsFYTc2WFAnjnPWVQZ0FAsJk0p91ECoA,1082
|
151
|
-
crypticorn/trade/test/test_update_notification.py,sha256=W_-DaX50HSCP0wW5aE1djGXirfwyALnAVVu9DWBy2Ew,1521
|
152
|
-
crypticorn/trade/test/test_validation_error.py,sha256=W7o_XtQsnOc8iNe2kvQuBKpISPRoN7ZS1TS7H7w364M,1625
|
153
|
-
crypticorn/trade/test/test_validation_error_loc_inner.py,sha256=61T9xO4y0KiXAK3x66rsL3dMpym392tT1QlJTJb6mYw,1474
|
154
|
-
crypticorn-1.0.2rc1.dist-info/LICENSE.md,sha256=4QRTsg__j9b8qUNkL1jcDlrOMViv5B7wJF3p7khs-M0,1053
|
155
|
-
crypticorn-1.0.2rc1.dist-info/METADATA,sha256=WxqkWlpxCM_66TcPRlebnqke2C8_R6v9_EIHIOuR5zo,1973
|
156
|
-
crypticorn-1.0.2rc1.dist-info/WHEEL,sha256=beeZ86-EfXScwlR_HKu4SllMC9wUEj_8Z_4FJ3egI2w,91
|
157
|
-
crypticorn-1.0.2rc1.dist-info/top_level.txt,sha256=EP3NY216qIBYfmvGl0L2Zc9ItP0DjGSkiYqd9xJwGcM,11
|
158
|
-
crypticorn-1.0.2rc1.dist-info/RECORD,,
|
124
|
+
crypticorn-1.0.2rc2.dist-info/LICENSE.md,sha256=4QRTsg__j9b8qUNkL1jcDlrOMViv5B7wJF3p7khs-M0,1053
|
125
|
+
crypticorn-1.0.2rc2.dist-info/METADATA,sha256=-JVX691iYZHKknke7psUIAPqoEs0Sy0O-6Hwgdsi23Y,1973
|
126
|
+
crypticorn-1.0.2rc2.dist-info/WHEEL,sha256=beeZ86-EfXScwlR_HKu4SllMC9wUEj_8Z_4FJ3egI2w,91
|
127
|
+
crypticorn-1.0.2rc2.dist-info/top_level.txt,sha256=EP3NY216qIBYfmvGl0L2Zc9ItP0DjGSkiYqd9xJwGcM,11
|
128
|
+
crypticorn-1.0.2rc2.dist-info/RECORD,,
|
File without changes
|
@@ -1,87 +0,0 @@
|
|
1
|
-
# coding: utf-8
|
2
|
-
|
3
|
-
"""
|
4
|
-
FastAPI
|
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
|
-
import unittest
|
16
|
-
|
17
|
-
from crypticorn.trade.client.models.action_model import ActionModel
|
18
|
-
|
19
|
-
class TestActionModel(unittest.TestCase):
|
20
|
-
"""ActionModel unit test stubs"""
|
21
|
-
|
22
|
-
def setUp(self):
|
23
|
-
pass
|
24
|
-
|
25
|
-
def tearDown(self):
|
26
|
-
pass
|
27
|
-
|
28
|
-
def make_instance(self, include_optional) -> ActionModel:
|
29
|
-
"""Test ActionModel
|
30
|
-
include_optional is a boolean, when False only required
|
31
|
-
params are included, when True both required and
|
32
|
-
optional params are included """
|
33
|
-
# uncomment below to create an instance of `ActionModel`
|
34
|
-
"""
|
35
|
-
model = ActionModel()
|
36
|
-
if include_optional:
|
37
|
-
return ActionModel(
|
38
|
-
id = '',
|
39
|
-
execution_id = '',
|
40
|
-
open_order_execution_id = '',
|
41
|
-
position_id = '',
|
42
|
-
client_order_id = '',
|
43
|
-
action_type = 'open_long',
|
44
|
-
market_type = 'spot',
|
45
|
-
strategy_id = '',
|
46
|
-
symbol = '',
|
47
|
-
is_limit = True,
|
48
|
-
limit_price = 1.337,
|
49
|
-
allocation = 1.337,
|
50
|
-
take_profit = [
|
51
|
-
client.models.tpsl.TPSL(
|
52
|
-
price_delta = 0.0,
|
53
|
-
price = 1.337,
|
54
|
-
allocation = 0.0,
|
55
|
-
execution_id = '',
|
56
|
-
client_order_id = '', )
|
57
|
-
],
|
58
|
-
stop_loss = [
|
59
|
-
client.models.tpsl.TPSL(
|
60
|
-
price_delta = 0.0,
|
61
|
-
price = 1.337,
|
62
|
-
allocation = 0.0,
|
63
|
-
execution_id = '',
|
64
|
-
client_order_id = '', )
|
65
|
-
],
|
66
|
-
expiry_timestamp = 56,
|
67
|
-
leverage = 1.0,
|
68
|
-
margin_mode = 'isolated',
|
69
|
-
timestamp = 56
|
70
|
-
)
|
71
|
-
else:
|
72
|
-
return ActionModel(
|
73
|
-
action_type = 'open_long',
|
74
|
-
market_type = 'spot',
|
75
|
-
strategy_id = '',
|
76
|
-
symbol = '',
|
77
|
-
leverage = 1.0,
|
78
|
-
)
|
79
|
-
"""
|
80
|
-
|
81
|
-
def testActionModel(self):
|
82
|
-
"""Test ActionModel"""
|
83
|
-
# inst_req_only = self.make_instance(include_optional=False)
|
84
|
-
# inst_req_and_optional = self.make_instance(include_optional=True)
|
85
|
-
|
86
|
-
if __name__ == '__main__':
|
87
|
-
unittest.main()
|
@@ -1,33 +0,0 @@
|
|
1
|
-
# coding: utf-8
|
2
|
-
|
3
|
-
"""
|
4
|
-
FastAPI
|
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
|
-
import unittest
|
16
|
-
|
17
|
-
from crypticorn.trade.client.models.api_error_identifier import ApiErrorIdentifier
|
18
|
-
|
19
|
-
class TestApiErrorIdentifier(unittest.TestCase):
|
20
|
-
"""ApiErrorIdentifier unit test stubs"""
|
21
|
-
|
22
|
-
def setUp(self):
|
23
|
-
pass
|
24
|
-
|
25
|
-
def tearDown(self):
|
26
|
-
pass
|
27
|
-
|
28
|
-
def testApiErrorIdentifier(self):
|
29
|
-
"""Test ApiErrorIdentifier"""
|
30
|
-
# inst = ApiErrorIdentifier()
|
31
|
-
|
32
|
-
if __name__ == '__main__':
|
33
|
-
unittest.main()
|
@@ -1,61 +0,0 @@
|
|
1
|
-
# coding: utf-8
|
2
|
-
|
3
|
-
"""
|
4
|
-
FastAPI
|
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
|
-
import unittest
|
16
|
-
|
17
|
-
from crypticorn.trade.client.models.api_key_model import APIKeyModel
|
18
|
-
|
19
|
-
class TestAPIKeyModel(unittest.TestCase):
|
20
|
-
"""APIKeyModel unit test stubs"""
|
21
|
-
|
22
|
-
def setUp(self):
|
23
|
-
pass
|
24
|
-
|
25
|
-
def tearDown(self):
|
26
|
-
pass
|
27
|
-
|
28
|
-
def make_instance(self, include_optional) -> APIKeyModel:
|
29
|
-
"""Test APIKeyModel
|
30
|
-
include_optional is a boolean, when False only required
|
31
|
-
params are included, when True both required and
|
32
|
-
optional params are included """
|
33
|
-
# uncomment below to create an instance of `APIKeyModel`
|
34
|
-
"""
|
35
|
-
model = APIKeyModel()
|
36
|
-
if include_optional:
|
37
|
-
return APIKeyModel(
|
38
|
-
id = '',
|
39
|
-
exchange = '',
|
40
|
-
api_key = '',
|
41
|
-
secret = '',
|
42
|
-
passphrase = '',
|
43
|
-
label = '',
|
44
|
-
enabled = True,
|
45
|
-
created_at = 56,
|
46
|
-
user_id = ''
|
47
|
-
)
|
48
|
-
else:
|
49
|
-
return APIKeyModel(
|
50
|
-
exchange = '',
|
51
|
-
label = '',
|
52
|
-
)
|
53
|
-
"""
|
54
|
-
|
55
|
-
def testAPIKeyModel(self):
|
56
|
-
"""Test APIKeyModel"""
|
57
|
-
# inst_req_only = self.make_instance(include_optional=False)
|
58
|
-
# inst_req_and_optional = self.make_instance(include_optional=True)
|
59
|
-
|
60
|
-
if __name__ == '__main__':
|
61
|
-
unittest.main()
|
@@ -1,66 +0,0 @@
|
|
1
|
-
# coding: utf-8
|
2
|
-
|
3
|
-
"""
|
4
|
-
FastAPI
|
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
|
-
import unittest
|
16
|
-
|
17
|
-
from crypticorn.trade.client.api.api_keys_api import APIKeysApi
|
18
|
-
|
19
|
-
|
20
|
-
class TestAPIKeysApi(unittest.TestCase):
|
21
|
-
"""APIKeysApi unit test stubs"""
|
22
|
-
|
23
|
-
def setUp(self) -> None:
|
24
|
-
self.api = APIKeysApi()
|
25
|
-
|
26
|
-
def tearDown(self) -> None:
|
27
|
-
pass
|
28
|
-
|
29
|
-
def test_create_api_key(self) -> None:
|
30
|
-
"""Test case for create_api_key
|
31
|
-
|
32
|
-
Post Api Key
|
33
|
-
"""
|
34
|
-
pass
|
35
|
-
|
36
|
-
def test_delete_api_key(self) -> None:
|
37
|
-
"""Test case for delete_api_key
|
38
|
-
|
39
|
-
Delete Api Key
|
40
|
-
"""
|
41
|
-
pass
|
42
|
-
|
43
|
-
def test_get_api_key_by_id(self) -> None:
|
44
|
-
"""Test case for get_api_key_by_id
|
45
|
-
|
46
|
-
Get Api Key By Id
|
47
|
-
"""
|
48
|
-
pass
|
49
|
-
|
50
|
-
def test_get_api_keys(self) -> None:
|
51
|
-
"""Test case for get_api_keys
|
52
|
-
|
53
|
-
Get Api Keys
|
54
|
-
"""
|
55
|
-
pass
|
56
|
-
|
57
|
-
def test_update_api_key(self) -> None:
|
58
|
-
"""Test case for update_api_key
|
59
|
-
|
60
|
-
Put Api Key
|
61
|
-
"""
|
62
|
-
pass
|
63
|
-
|
64
|
-
|
65
|
-
if __name__ == '__main__':
|
66
|
-
unittest.main()
|