crypticorn 2.7.0__py3-none-any.whl → 2.7.1__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.
@@ -20,7 +20,7 @@ from typing_extensions import Self
20
20
 
21
21
  class Coins(str, Enum):
22
22
  """
23
- All ever existing coins
23
+ All existing coins. Some might no be available in the latest data version, but kept for older versions.
24
24
  """
25
25
 
26
26
  """
@@ -17,7 +17,7 @@ import pprint
17
17
  import re # noqa: F401
18
18
  import json
19
19
 
20
- from pydantic import BaseModel, ConfigDict
20
+ from pydantic import BaseModel, ConfigDict, Field
21
21
  from typing import Any, ClassVar, Dict, List
22
22
  from crypticorn.hive.client.models.coins import Coins
23
23
  from crypticorn.hive.client.models.data_version import DataVersion
@@ -30,13 +30,13 @@ from typing_extensions import Self
30
30
 
31
31
  class DataDownloadResponse(BaseModel):
32
32
  """
33
- DataDownloadResponse
33
+ The response for a data download request
34
34
  """ # noqa: E501
35
35
 
36
- coin: Coins
37
- feature_size: FeatureSize
38
- version: DataVersion
39
- target: Target
36
+ coin: Coins = Field(description="The coin the data is for")
37
+ feature_size: FeatureSize = Field(description="The feature size the data is for")
38
+ version: DataVersion = Field(description="The version of the data")
39
+ target: Target = Field(description="The target of the data")
40
40
  links: DownloadLinks
41
41
  __properties: ClassVar[List[str]] = [
42
42
  "coin",
@@ -17,7 +17,7 @@ import pprint
17
17
  import re # noqa: F401
18
18
  import json
19
19
 
20
- from pydantic import BaseModel, ConfigDict
20
+ from pydantic import BaseModel, ConfigDict, Field
21
21
  from typing import Any, ClassVar, Dict, List
22
22
  from crypticorn.hive.client.models.coins import Coins
23
23
  from crypticorn.hive.client.models.data_value_value_value_inner import (
@@ -32,15 +32,27 @@ from typing_extensions import Self
32
32
 
33
33
  class DataInfo(BaseModel):
34
34
  """
35
- DataInfo
35
+ The complete data information for all versions, coins, feature sizes and targets
36
36
  """ # noqa: E501
37
37
 
38
- data: Dict[str, Dict[str, Dict[str, List[DataValueValueValueInner]]]]
39
- coins: List[Coins]
40
- feature_sizes: List[FeatureSize]
41
- targets: List[TargetInfo]
42
- all_versions: List[DataVersionInfo]
43
- available_versions: List[DataVersionInfo]
38
+ data: Dict[str, Dict[str, Dict[str, List[DataValueValueValueInner]]]] = Field(
39
+ description="The complete data information for all versions, coins, feature sizes and targets."
40
+ )
41
+ coins: List[Coins] = Field(
42
+ description="The coins available on the latest data version."
43
+ )
44
+ feature_sizes: List[FeatureSize] = Field(
45
+ description="The feature sizes available on the latest data version."
46
+ )
47
+ targets: List[TargetInfo] = Field(
48
+ description="The targets available on the latest data version."
49
+ )
50
+ all_versions: List[DataVersionInfo] = Field(
51
+ description="All ever existing data versions. Some may not be publicly available yet."
52
+ )
53
+ available_versions: List[DataVersionInfo] = Field(
54
+ description="All publicly available data versions."
55
+ )
44
56
  __properties: ClassVar[List[str]] = [
45
57
  "data",
46
58
  "coins",
@@ -20,7 +20,7 @@ from typing_extensions import Self
20
20
 
21
21
  class DataVersion(str, Enum):
22
22
  """
23
- All ever existing data versions
23
+ All existing data versions
24
24
  """
25
25
 
26
26
  """
@@ -25,12 +25,16 @@ from typing_extensions import Self
25
25
 
26
26
  class DownloadLinks(BaseModel):
27
27
  """
28
- DownloadLinks
28
+ The download links for the data
29
29
  """ # noqa: E501
30
30
 
31
- y_train: StrictStr
32
- x_test: StrictStr = Field(alias="X_test")
33
- x_train: StrictStr = Field(alias="X_train")
31
+ y_train: StrictStr = Field(description="The download link for the y_train data")
32
+ x_test: StrictStr = Field(
33
+ description="The download link for the X_test data", alias="X_test"
34
+ )
35
+ x_train: StrictStr = Field(
36
+ description="The download link for the X_train data", alias="X_train"
37
+ )
34
38
  __properties: ClassVar[List[str]] = ["y_train", "X_test", "X_train"]
35
39
 
36
40
  model_config = ConfigDict(
@@ -20,7 +20,7 @@ from typing_extensions import Self
20
20
 
21
21
  class FeatureSize(str, Enum):
22
22
  """
23
- All ever existing feature sizes
23
+ All existing feature sizes. Some might no be available in the latest data version, but kept for older versions.
24
24
  """
25
25
 
26
26
  """
@@ -20,7 +20,7 @@ from typing_extensions import Self
20
20
 
21
21
  class Target(str, Enum):
22
22
  """
23
- All ever existing targets
23
+ All existing targets. Some might no be available in the latest data version, but kept for older versions.
24
24
  """
25
25
 
26
26
  """
@@ -28,7 +28,7 @@ from typing_extensions import Self
28
28
 
29
29
  class TargetInfo(BaseModel):
30
30
  """
31
- TargetInfo
31
+ Information about a target
32
32
  """ # noqa: E501
33
33
 
34
34
  name: Target = Field(description="Target name")
@@ -20,7 +20,7 @@ from typing_extensions import Self
20
20
 
21
21
  class TargetType(str, Enum):
22
22
  """
23
- TargetType
23
+ The type of the target
24
24
  """
25
25
 
26
26
  """
crypticorn/hive/main.py CHANGED
@@ -40,11 +40,17 @@ class DataApiWrapper(DataApi):
40
40
  ),
41
41
  download_file(
42
42
  url=response.links.x_test,
43
- dest_path=base_path + "x_test_" + response.feature_size + ".feather",
43
+ dest_path=base_path
44
+ + "x_test_"
45
+ + response.feature_size
46
+ + ".feather",
44
47
  ),
45
48
  download_file(
46
49
  url=response.links.x_train,
47
- dest_path=base_path + "x_train_" + response.feature_size + ".feather",
50
+ dest_path=base_path
51
+ + "x_train_"
52
+ + response.feature_size
53
+ + ".feather",
48
54
  ),
49
55
  ]
50
56
  )
crypticorn/hive/utils.py CHANGED
@@ -7,7 +7,9 @@ logger = logging.getLogger(__name__)
7
7
  logger.setLevel(logging.INFO)
8
8
 
9
9
 
10
- async def download_file(url: str, dest_path: str, show_progress_bars: bool = True) -> str:
10
+ async def download_file(
11
+ url: str, dest_path: str, show_progress_bars: bool = True
12
+ ) -> str:
11
13
  """downloads a file and shows a progress bar. allow resuming a download"""
12
14
  file_size = 0
13
15
  req = requests.get(url, stream=True, timeout=600)
crypticorn/klines/main.py CHANGED
@@ -10,6 +10,25 @@ from crypticorn.klines import (
10
10
  )
11
11
  from crypticorn.common import optional_import
12
12
 
13
+ class KlinesClient:
14
+ """
15
+ A client for interacting with the Crypticorn Klines API.
16
+ """
17
+
18
+ config_class = Configuration
19
+
20
+ def __init__(
21
+ self,
22
+ config: Configuration,
23
+ ):
24
+ self.config = config
25
+ self.base_client = ApiClient(configuration=self.config)
26
+ # Instantiate all the endpoint clients
27
+ self.funding = FundingRatesApiWrapper(self.base_client)
28
+ self.ohlcv = OHLCVDataApiWrapper(self.base_client)
29
+ self.symbols = SymbolsApiWrapper(self.base_client)
30
+ self.udf = UDFApi(self.base_client)
31
+ self.status = StatusApi(self.base_client)
13
32
 
14
33
  class FundingRatesApiWrapper(FundingRatesApi):
15
34
  """
@@ -21,11 +40,16 @@ class FundingRatesApiWrapper(FundingRatesApi):
21
40
  Get the funding rates in a pandas DataFrame.
22
41
  """
23
42
  pd = optional_import("pandas", "extra")
24
- response = await self.get_funding_rates_without_preload_content(*args, **kwargs)
25
- response.raise_for_status()
26
- json_data = await response.json()
27
- return pd.DataFrame(json_data)
28
-
43
+ response = await self.get_funding_rates(*args, **kwargs)
44
+ response = [
45
+ {
46
+ "timestamp": int(m.timestamp.timestamp()),
47
+ "symbol": m.symbol,
48
+ "funding_rate": m.funding_rate,
49
+ }
50
+ for m in response
51
+ ]
52
+ return pd.DataFrame(response)
29
53
 
30
54
  class OHLCVDataApiWrapper(OHLCVDataApi):
31
55
  """
@@ -37,19 +61,20 @@ class OHLCVDataApiWrapper(OHLCVDataApi):
37
61
  Get the OHLCV data in a pandas DataFrame.
38
62
  """
39
63
  pd = optional_import("pandas", "extra")
40
- response = await self.get_ohlcv_without_preload_content(*args, **kwargs)
41
- response.raise_for_status()
42
- json_data = await response.json()
43
- return pd.DataFrame(
64
+ response = await self.get_ohlcv(*args, **kwargs)
65
+ df = pd.DataFrame(
44
66
  {
45
- "timestamp": json_data["timestamp"],
46
- "open": json_data["open"],
47
- "high": json_data["high"],
48
- "low": json_data["low"],
49
- "close": json_data["close"],
50
- "volume": json_data["volume"],
67
+ "timestamp": [int(d.timestamp()) for d in response.timestamps],
68
+ "open": response.open,
69
+ "high": response.high,
70
+ "low": response.low,
71
+ "close": response.close,
72
+ "volume": response.volume,
51
73
  }
52
74
  )
75
+ df.sort_values(by="timestamp", ascending=False, inplace=True)
76
+ df.reset_index(drop=True, inplace=True)
77
+ return df
53
78
 
54
79
 
55
80
  class SymbolsApiWrapper(SymbolsApi):
@@ -62,30 +87,7 @@ class SymbolsApiWrapper(SymbolsApi):
62
87
  Get the symbols in a pandas DataFrame.
63
88
  """
64
89
  pd = optional_import("pandas", "extra")
65
- response = await self.get_klines_symbols_without_preload_content(
66
- *args, **kwargs
67
- )
68
- response.raise_for_status()
69
- json_data = await response.json()
70
- return pd.DataFrame(json_data["data"], columns=["symbol"])
90
+ response = await self.get_klines_symbols(*args, **kwargs)
91
+ return pd.DataFrame(response, columns=["symbol"])
71
92
 
72
93
 
73
- class KlinesClient:
74
- """
75
- A client for interacting with the Crypticorn Klines API.
76
- """
77
-
78
- config_class = Configuration
79
-
80
- def __init__(
81
- self,
82
- config: Configuration,
83
- ):
84
- self.config = config
85
- self.base_client = ApiClient(configuration=self.config)
86
- # Instantiate all the endpoint clients
87
- self.funding = FundingRatesApiWrapper(self.base_client)
88
- self.ohlcv = OHLCVDataApiWrapper(self.base_client)
89
- self.symbols = SymbolsApiWrapper(self.base_client)
90
- self.udf = UDFApi(self.base_client)
91
- self.status = StatusApi(self.base_client)
@@ -33,7 +33,7 @@ class MetricsClient:
33
33
  self.marketcap = MarketcapApiWrapper(self.base_client)
34
34
  self.markets = MarketsApi(self.base_client)
35
35
  self.tokens = TokensApiWrapper(self.base_client)
36
- self.exchanges = ExchangesApi(self.base_client)
36
+ self.exchanges = ExchangesApiWrapper(self.base_client)
37
37
 
38
38
 
39
39
  class MarketcapApiWrapper(MarketcapApi):
@@ -46,12 +46,8 @@ class MarketcapApiWrapper(MarketcapApi):
46
46
  Get the marketcap symbols in a pandas dataframe
47
47
  """
48
48
  pd = optional_import("pandas", "extra")
49
- response = await self.get_marketcap_symbols_without_preload_content(
50
- *args, **kwargs
51
- )
52
- response.raise_for_status()
53
- json_response = await response.json()
54
- df = pd.DataFrame(json_response["data"])
49
+ response = await self.get_marketcap_symbols(*args, **kwargs)
50
+ df = pd.DataFrame(response)
55
51
  df.rename(columns={df.columns[0]: "timestamp"}, inplace=True)
56
52
  return df
57
53
 
@@ -66,12 +62,8 @@ class TokensApiWrapper(TokensApi):
66
62
  Get the tokens in a pandas dataframe
67
63
  """
68
64
  pd = optional_import("pandas", "extra")
69
- response = await self.get_stable_and_wrapped_tokens_without_preload_content(
70
- *args, **kwargs
71
- )
72
- response.raise_for_status()
73
- json_data = await response.json()
74
- return pd.DataFrame(json_data)
65
+ response = await self.get_stable_and_wrapped_tokens(*args, **kwargs)
66
+ return pd.DataFrame(response)
75
67
 
76
68
 
77
69
  class ExchangesApiWrapper(ExchangesApi):
@@ -79,18 +71,14 @@ class ExchangesApiWrapper(ExchangesApi):
79
71
  A wrapper for the ExchangesApi class.
80
72
  """
81
73
 
82
- async def get_exchanges_fmt(self, *args, **kwargs) -> pd.DataFrame: # type: ignore
74
+ async def get_available_exchanges_fmt(self, *args, **kwargs) -> pd.DataFrame: # type: ignore
83
75
  """
84
76
  Get the exchanges in a pandas dataframe
85
77
  """
86
78
  pd = optional_import("pandas", "extra")
87
- response = await self.get_available_exchanges_without_preload_content(
88
- *args, **kwargs
89
- )
90
- response.raise_for_status()
91
- json_data = await response.json()
79
+ response = await self.get_available_exchanges(*args, **kwargs)
92
80
  processed_results = []
93
- for row in json_data:
81
+ for row in response:
94
82
  data = {"timestamp": row["timestamp"]}
95
83
  data.update(row["exchanges"])
96
84
  processed_results.append(data)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: crypticorn
3
- Version: 2.7.0
3
+ Version: 2.7.1
4
4
  Summary: Maximise Your Crypto Trading Profits with Machine Learning
5
5
  Author-email: Crypticorn <timon@crypticorn.com>
6
6
  Project-URL: Homepage, https://crypticorn.com
@@ -73,8 +73,8 @@ crypticorn/common/status_router.py,sha256=s7LY3aNQPhtDUgNWHRszfCQMl0Uh13li_jR8je
73
73
  crypticorn/common/urls.py,sha256=3Gf1NU1XQYcOTjcdztG3bDAE98FVbgTK2QXzUe7tFVQ,878
74
74
  crypticorn/common/utils.py,sha256=Kz2-I96MKIGKM18PHQ77VbKHLMGUvZG_jjj7xpQed8k,2138
75
75
  crypticorn/hive/__init__.py,sha256=hRfTlEzEql4msytdUC_04vfaHzVKG5CGZle1M-9QFgY,81
76
- crypticorn/hive/main.py,sha256=8-MKEE9zjxjSk4QMD-PcezD5MS-A1BzCFAmdgunJqyg,2308
77
- crypticorn/hive/utils.py,sha256=nQe_GLb2Xk9EsuYpHASb_Sik5VyNXEHewCgT1LN4woo,2060
76
+ crypticorn/hive/main.py,sha256=4oQ2RybZMbe0kRxVJrVAABsN5kUTCMExQFJDSnAzBUY,2428
77
+ crypticorn/hive/utils.py,sha256=dxQ_OszrnTsslO5hDefMmgfj6yRwRPr8sr17fGizWIw,2066
78
78
  crypticorn/hive/client/__init__.py,sha256=BZ7MlUhK1x5j73WRPTPJFbTSELv9urdbpPonq04m6Aw,2331
79
79
  crypticorn/hive/client/api_client.py,sha256=fDFsACK7hxXw_sgt3ZJVH2RplEdUhR0YZd4tsZA9P5Q,26869
80
80
  crypticorn/hive/client/api_response.py,sha256=WhxwYDSMm6wPixp9CegO8dJzjFxDz3JF1yCq9s0ZqKE,639
@@ -87,26 +87,26 @@ crypticorn/hive/client/api/data_api.py,sha256=GJlH2Qs1KmWCc4nv7y5byyyFDiidLdooG-
87
87
  crypticorn/hive/client/api/models_api.py,sha256=61r9uObh1puEGJOXi_v-LmEP1xNqfbEo5spEYzlAA44,74136
88
88
  crypticorn/hive/client/api/status_api.py,sha256=3ZZ9e1duL9Oz8gWvQQMryUevuRY_ERMPpClW8gY2THE,28714
89
89
  crypticorn/hive/client/models/__init__.py,sha256=C-SmdIMEQljgJaxgADRAgHQuknh0sCZiAELnHC4SuJI,1539
90
- crypticorn/hive/client/models/coins.py,sha256=9fTwC6_7mMS2dz4cUZoLYWloOpAjCr-KySGYrVZO_IE,795
91
- crypticorn/hive/client/models/data_download_response.py,sha256=ZipGpZW_BPmjLeHimiveacWc3R27afjA2c8R7xXAlAE,3425
92
- crypticorn/hive/client/models/data_info.py,sha256=2moeH1k9b6-jot6HIzyduONTNWXFcB2ltW3U0sZd5nk,5068
90
+ crypticorn/hive/client/models/coins.py,sha256=4rPueVFUDbdU-8KrZ5b1jwqasf3uMT_cIsORyKbeydc,875
91
+ crypticorn/hive/client/models/data_download_response.py,sha256=AVPLov8RO9zq6vThUe7M4p3LlhZQytXyPbFZD1AFDfY,3649
92
+ crypticorn/hive/client/models/data_info.py,sha256=5MILoSXWeiWArYKUtDi4448mSdamE3elCQuYE5je8Kk,5716
93
93
  crypticorn/hive/client/models/data_value_value_value_inner.py,sha256=fMkZWwAwrdmTDjwD9PVNIh4WzZ_nFACD57B7OPKO4n4,4987
94
- crypticorn/hive/client/models/data_version.py,sha256=MMgH6JyFdcpAc6mzs4j13Gumd0vDTw3UEOsKFSOcsSg,668
94
+ crypticorn/hive/client/models/data_version.py,sha256=Id_PKD-6GDVgkxbg194s3gOokgpX3WbLQ3CGdctnajU,663
95
95
  crypticorn/hive/client/models/data_version_info.py,sha256=LdwEwSgGfOzjitxiPXZfEp7IDkMQJs_7SCftZI0-5TQ,2687
96
- crypticorn/hive/client/models/download_links.py,sha256=bmxzXwpGxlFwoOPPsKFtEGdotzP_04WHQvzuj2mtu-Q,2639
96
+ crypticorn/hive/client/models/download_links.py,sha256=nXq__ZoJ2ZVqeofVolB9B47LgGGDQKorPBNRsdp8uPU,2854
97
97
  crypticorn/hive/client/models/evaluation.py,sha256=WeLJA4tCS4W_CnGxRAgrxySWko3QPYzpxeVDuYyLPgM,2608
98
98
  crypticorn/hive/client/models/evaluation_response.py,sha256=iwE1G1_EOFga6Zztf1A8z6TNiNc_R06r2lKLHIr5_6A,2526
99
99
  crypticorn/hive/client/models/exception_detail.py,sha256=xLvJvILpIQl3Nl0LYtDPXsZcIouWIUB-0fqoUAaqiaU,3657
100
- crypticorn/hive/client/models/feature_size.py,sha256=4lICZHaNU9eLkHzcTaquajSrcOGlBBRFvEKySPp89bc,705
100
+ crypticorn/hive/client/models/feature_size.py,sha256=saLwDjXIzoa9sPO0lMvm3x4FavG2-IbBLub7-TOzW2M,785
101
101
  crypticorn/hive/client/models/model.py,sha256=xbyqGaaiql35T2-qGyG1kkLsnKJCEmzm1bBNvQDf4FI,4536
102
102
  crypticorn/hive/client/models/model_create.py,sha256=f6Ayw3KD39qw0qtvYF77K3huy7_Tmzv8pDyyQ_ooAG8,2828
103
103
  crypticorn/hive/client/models/model_status.py,sha256=-2H6CHw6jhJgv4VJgwr1sgN2NtT1m7LGCX7L8ULTxEQ,685
104
104
  crypticorn/hive/client/models/model_update.py,sha256=iO-VtYt0aRzj9z_GeIUK2OVNg9yvM01OUVfWyCA36fc,2413
105
- crypticorn/hive/client/models/target.py,sha256=eTDXDO4Vv1bB-cFrH7FuEeY7Eaf0YDIrQgba9TW7Y6s,697
106
- crypticorn/hive/client/models/target_info.py,sha256=evxehW41BlLG2EUYb4ZZBKgF-0-3ZzHNSFWe_7qyjiQ,2841
107
- crypticorn/hive/client/models/target_type.py,sha256=rv9ub_0BM5DAR8jtGAZKbTO7RObEu-86kPT4dTS-OuM,672
105
+ crypticorn/hive/client/models/target.py,sha256=otOJK8s5WVUen6J1AQZpRiD330RIpaJU6JShb-EU8Hs,777
106
+ crypticorn/hive/client/models/target_info.py,sha256=hFaOMZlirH2B68DQstL_c4WvtejwXyOk67lxIaeuh3Q,2857
107
+ crypticorn/hive/client/models/target_type.py,sha256=FUMaEFkPM7EvStPJE1auimDJ9mxDf6pbsFf-dF3coGw,684
108
108
  crypticorn/klines/__init__.py,sha256=9UUW013uZ5x4evz5zRUxbNid-6O9WAPPYvPZIHpAwms,87
109
- crypticorn/klines/main.py,sha256=uQ7Ds_pQZ68o3uvSUOd7J0NEyy9--88dKXhzzm0F9dI,2754
109
+ crypticorn/klines/main.py,sha256=gLbd-taZhyHLV20CT2CFQr-ucM0oESx9QtqoYTe-G4U,2788
110
110
  crypticorn/klines/client/__init__.py,sha256=YLtas-sCXyq543ujKIWIT73qfQ1D97stsztr1AWjhSc,2222
111
111
  crypticorn/klines/client/api_client.py,sha256=XYk_eoVRHxQDoTKJJwMpO__LbU1DQtpMikBTyulJrvE,26925
112
112
  crypticorn/klines/client/api_response.py,sha256=WhxwYDSMm6wPixp9CegO8dJzjFxDz3JF1yCq9s0ZqKE,639
@@ -135,7 +135,7 @@ crypticorn/klines/client/models/symbol_type.py,sha256=uOEqlQJ714fa0SEYOxzCOx9cG-
135
135
  crypticorn/klines/client/models/timeframe.py,sha256=bSZJz3Q78V1RAnm3ZDtGBzFOnDKE3Pc5A0eP3ky3KaI,760
136
136
  crypticorn/klines/client/models/udf_config.py,sha256=3VxMqMJb7AqwxWyeM1SxEd4jp2r-iRZppVRW7RHR7iY,5066
137
137
  crypticorn/metrics/__init__.py,sha256=t7FrHV5PaVTka90eIxDgOaWvOiyznSStcUanSbLov2o,126
138
- crypticorn/metrics/main.py,sha256=Gg-kF8zgGs4oSl2lqH8ef-3QAEsAjOld0N-_nXDuhdo,3501
138
+ crypticorn/metrics/main.py,sha256=hT7dS8Nc3IEIHOGAzVDehEOwHy3GlmEjaL2IxREHjhw,3127
139
139
  crypticorn/metrics/client/__init__.py,sha256=IcYZIuKVRCnesSbJgvn_-Wg1it5vY0goYwL-pNdVfh0,1727
140
140
  crypticorn/metrics/client/api_client.py,sha256=pGWJuO-mgxlUdhJGwkScf7CviGzjDrmUAiU0LXasQY4,26934
141
141
  crypticorn/metrics/client/api_response.py,sha256=WhxwYDSMm6wPixp9CegO8dJzjFxDz3JF1yCq9s0ZqKE,639
@@ -221,8 +221,8 @@ crypticorn/trade/client/models/strategy_model_input.py,sha256=ala19jARyfA5ysys5D
221
221
  crypticorn/trade/client/models/strategy_model_output.py,sha256=2o2lhbgUSTznowpMLEHF1Ex9TG9oRmzlCIb-gXqo7_s,5643
222
222
  crypticorn/trade/client/models/tpsl.py,sha256=C2KgTIZs-a8W4msdaXgBKJcwtA-o5wR4rBauRP-iQxU,4317
223
223
  crypticorn/trade/client/models/trading_action_type.py,sha256=pGq_TFLMPfYFizYP-xKgEC1ZF4U3lGdJYoGa_ZH2x-Q,769
224
- crypticorn-2.7.0.dist-info/METADATA,sha256=WcIXa2urQyx79i-xY-v6Q6TicA9zaybXWNOcmg2euxo,6249
225
- crypticorn-2.7.0.dist-info/WHEEL,sha256=wXxTzcEDnjrTwFYjLPcsW_7_XihufBwmpiBeiXNBGEA,91
226
- crypticorn-2.7.0.dist-info/entry_points.txt,sha256=d_xHsGvUTebPveVUK0SrpDFQ5ZRSjlI7lNCc11sn2PM,59
227
- crypticorn-2.7.0.dist-info/top_level.txt,sha256=EP3NY216qIBYfmvGl0L2Zc9ItP0DjGSkiYqd9xJwGcM,11
228
- crypticorn-2.7.0.dist-info/RECORD,,
224
+ crypticorn-2.7.1.dist-info/METADATA,sha256=V-HqZMdshq4XkwDAHV-vBDfZ2dqR1nhtrHiUb0EJDXc,6249
225
+ crypticorn-2.7.1.dist-info/WHEEL,sha256=wXxTzcEDnjrTwFYjLPcsW_7_XihufBwmpiBeiXNBGEA,91
226
+ crypticorn-2.7.1.dist-info/entry_points.txt,sha256=d_xHsGvUTebPveVUK0SrpDFQ5ZRSjlI7lNCc11sn2PM,59
227
+ crypticorn-2.7.1.dist-info/top_level.txt,sha256=EP3NY216qIBYfmvGl0L2Zc9ItP0DjGSkiYqd9xJwGcM,11
228
+ crypticorn-2.7.1.dist-info/RECORD,,