crypticorn 2.9.0rc1__py3-none-any.whl → 2.10.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.
Files changed (34) hide show
  1. crypticorn/cli/__init__.py +2 -1
  2. crypticorn/cli/__main__.py +2 -1
  3. crypticorn/cli/init.py +22 -7
  4. crypticorn/cli/templates/merge-env.sh +17 -0
  5. crypticorn/cli/version.py +8 -0
  6. crypticorn/common/enums.py +4 -4
  7. crypticorn/common/errors.py +6 -7
  8. crypticorn/common/mixins.py +8 -5
  9. crypticorn/common/openapi.py +9 -10
  10. crypticorn/common/router/admin_router.py +13 -5
  11. crypticorn/common/router/status_router.py +1 -1
  12. crypticorn/hive/client/__init__.py +1 -1
  13. crypticorn/hive/client/api/admin_api.py +30 -27
  14. crypticorn/hive/client/api/data_api.py +36 -18
  15. crypticorn/hive/client/api/models_api.py +87 -72
  16. crypticorn/hive/client/models/__init__.py +1 -1
  17. crypticorn/hive/client/models/api_error_identifier.py +1 -1
  18. crypticorn/hive/client/models/api_error_level.py +1 -1
  19. crypticorn/hive/client/models/api_error_type.py +1 -1
  20. crypticorn/hive/client/models/exception_detail.py +1 -1
  21. crypticorn/hive/client/models/{model.py → model_read.py} +3 -3
  22. crypticorn/metrics/client/api/admin_api.py +14 -14
  23. crypticorn/metrics/client/api/status_api.py +6 -6
  24. crypticorn/metrics/client/models/api_error_identifier.py +1 -1
  25. crypticorn/metrics/client/models/api_error_level.py +1 -1
  26. crypticorn/metrics/client/models/api_error_type.py +1 -1
  27. crypticorn/metrics/client/models/exception_detail.py +1 -1
  28. crypticorn/metrics/client/models/marketcap_ranking.py +2 -2
  29. {crypticorn-2.9.0rc1.dist-info → crypticorn-2.10.1.dist-info}/METADATA +20 -5
  30. {crypticorn-2.9.0rc1.dist-info → crypticorn-2.10.1.dist-info}/RECORD +34 -31
  31. {crypticorn-2.9.0rc1.dist-info → crypticorn-2.10.1.dist-info}/WHEEL +1 -1
  32. crypticorn-2.10.1.dist-info/licenses/LICENSE +15 -0
  33. {crypticorn-2.9.0rc1.dist-info → crypticorn-2.10.1.dist-info}/entry_points.txt +0 -0
  34. {crypticorn-2.9.0rc1.dist-info → crypticorn-2.10.1.dist-info}/top_level.txt +0 -0
@@ -271,7 +271,7 @@ class AdminApi:
271
271
  include: Annotated[
272
272
  Optional[List[StrictStr]],
273
273
  Field(
274
- description="List of dependencies to include in the response. If not provided, all installed packages will be returned."
274
+ description="List of regex patterns to match against package names. If not provided, all installed packages will be returned."
275
275
  ),
276
276
  ] = None,
277
277
  _request_timeout: Union[
@@ -285,12 +285,12 @@ class AdminApi:
285
285
  _content_type: Optional[StrictStr] = None,
286
286
  _headers: Optional[Dict[StrictStr, Any]] = None,
287
287
  _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
288
- ) -> List[object]:
288
+ ) -> Dict[str, str]:
289
289
  """List Installed Packages
290
290
 
291
- Return a list of installed packages and versions.
291
+ Return a list of installed packages and versions. The include parameter accepts regex patterns to match against package names. For example: - crypticorn.* will match all packages starting with 'crypticorn' - .*tic.* will match all packages containing 'tic' in their name
292
292
 
293
- :param include: List of dependencies to include in the response. If not provided, all installed packages will be returned.
293
+ :param include: List of regex patterns to match against package names. If not provided, all installed packages will be returned.
294
294
  :type include: List[str]
295
295
  :param _request_timeout: timeout setting for this request. If one
296
296
  number provided, it will be total request
@@ -323,7 +323,7 @@ class AdminApi:
323
323
  )
324
324
 
325
325
  _response_types_map: Dict[str, Optional[str]] = {
326
- "200": "List[object]",
326
+ "200": "Dict[str, str]",
327
327
  }
328
328
  response_data = await self.api_client.call_api(
329
329
  *_param, _request_timeout=_request_timeout
@@ -340,7 +340,7 @@ class AdminApi:
340
340
  include: Annotated[
341
341
  Optional[List[StrictStr]],
342
342
  Field(
343
- description="List of dependencies to include in the response. If not provided, all installed packages will be returned."
343
+ description="List of regex patterns to match against package names. If not provided, all installed packages will be returned."
344
344
  ),
345
345
  ] = None,
346
346
  _request_timeout: Union[
@@ -354,12 +354,12 @@ class AdminApi:
354
354
  _content_type: Optional[StrictStr] = None,
355
355
  _headers: Optional[Dict[StrictStr, Any]] = None,
356
356
  _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
357
- ) -> ApiResponse[List[object]]:
357
+ ) -> ApiResponse[Dict[str, str]]:
358
358
  """List Installed Packages
359
359
 
360
- Return a list of installed packages and versions.
360
+ Return a list of installed packages and versions. The include parameter accepts regex patterns to match against package names. For example: - crypticorn.* will match all packages starting with 'crypticorn' - .*tic.* will match all packages containing 'tic' in their name
361
361
 
362
- :param include: List of dependencies to include in the response. If not provided, all installed packages will be returned.
362
+ :param include: List of regex patterns to match against package names. If not provided, all installed packages will be returned.
363
363
  :type include: List[str]
364
364
  :param _request_timeout: timeout setting for this request. If one
365
365
  number provided, it will be total request
@@ -392,7 +392,7 @@ class AdminApi:
392
392
  )
393
393
 
394
394
  _response_types_map: Dict[str, Optional[str]] = {
395
- "200": "List[object]",
395
+ "200": "Dict[str, str]",
396
396
  }
397
397
  response_data = await self.api_client.call_api(
398
398
  *_param, _request_timeout=_request_timeout
@@ -409,7 +409,7 @@ class AdminApi:
409
409
  include: Annotated[
410
410
  Optional[List[StrictStr]],
411
411
  Field(
412
- description="List of dependencies to include in the response. If not provided, all installed packages will be returned."
412
+ description="List of regex patterns to match against package names. If not provided, all installed packages will be returned."
413
413
  ),
414
414
  ] = None,
415
415
  _request_timeout: Union[
@@ -426,9 +426,9 @@ class AdminApi:
426
426
  ) -> RESTResponseType:
427
427
  """List Installed Packages
428
428
 
429
- Return a list of installed packages and versions.
429
+ Return a list of installed packages and versions. The include parameter accepts regex patterns to match against package names. For example: - crypticorn.* will match all packages starting with 'crypticorn' - .*tic.* will match all packages containing 'tic' in their name
430
430
 
431
- :param include: List of dependencies to include in the response. If not provided, all installed packages will be returned.
431
+ :param include: List of regex patterns to match against package names. If not provided, all installed packages will be returned.
432
432
  :type include: List[str]
433
433
  :param _request_timeout: timeout setting for this request. If one
434
434
  number provided, it will be total request
@@ -461,7 +461,7 @@ class AdminApi:
461
461
  )
462
462
 
463
463
  _response_types_map: Dict[str, Optional[str]] = {
464
- "200": "List[object]",
464
+ "200": "Dict[str, str]",
465
465
  }
466
466
  response_data = await self.api_client.call_api(
467
467
  *_param, _request_timeout=_request_timeout
@@ -17,7 +17,7 @@ from typing import Any, Dict, List, Optional, Tuple, Union
17
17
  from typing_extensions import Annotated
18
18
 
19
19
  from pydantic import StrictStr, field_validator
20
- from typing import Any, Dict, Optional
20
+ from typing import Optional
21
21
 
22
22
  from crypticorn.metrics.client.api_client import ApiClient, RequestSerialized
23
23
  from crypticorn.metrics.client.api_response import ApiResponse
@@ -294,7 +294,7 @@ class StatusApi:
294
294
  _content_type: Optional[StrictStr] = None,
295
295
  _headers: Optional[Dict[StrictStr, Any]] = None,
296
296
  _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
297
- ) -> Dict[str, object]:
297
+ ) -> str:
298
298
  """Ping
299
299
 
300
300
  Returns 'OK' if the API is running.
@@ -329,7 +329,7 @@ class StatusApi:
329
329
  )
330
330
 
331
331
  _response_types_map: Dict[str, Optional[str]] = {
332
- "200": "Dict[str, object]",
332
+ "200": "str",
333
333
  }
334
334
  response_data = await self.api_client.call_api(
335
335
  *_param, _request_timeout=_request_timeout
@@ -354,7 +354,7 @@ class StatusApi:
354
354
  _content_type: Optional[StrictStr] = None,
355
355
  _headers: Optional[Dict[StrictStr, Any]] = None,
356
356
  _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
357
- ) -> ApiResponse[Dict[str, object]]:
357
+ ) -> ApiResponse[str]:
358
358
  """Ping
359
359
 
360
360
  Returns 'OK' if the API is running.
@@ -389,7 +389,7 @@ class StatusApi:
389
389
  )
390
390
 
391
391
  _response_types_map: Dict[str, Optional[str]] = {
392
- "200": "Dict[str, object]",
392
+ "200": "str",
393
393
  }
394
394
  response_data = await self.api_client.call_api(
395
395
  *_param, _request_timeout=_request_timeout
@@ -449,7 +449,7 @@ class StatusApi:
449
449
  )
450
450
 
451
451
  _response_types_map: Dict[str, Optional[str]] = {
452
- "200": "Dict[str, object]",
452
+ "200": "str",
453
453
  }
454
454
  response_data = await self.api_client.call_api(
455
455
  *_param, _request_timeout=_request_timeout
@@ -20,7 +20,7 @@ from typing_extensions import Self
20
20
 
21
21
  class ApiErrorIdentifier(str, Enum):
22
22
  """
23
- API error identifiers
23
+ Unique identifier of the API error.
24
24
  """
25
25
 
26
26
  """
@@ -20,7 +20,7 @@ from typing_extensions import Self
20
20
 
21
21
  class ApiErrorLevel(str, Enum):
22
22
  """
23
- API error levels
23
+ Level of the API error.
24
24
  """
25
25
 
26
26
  """
@@ -20,7 +20,7 @@ from typing_extensions import Self
20
20
 
21
21
  class ApiErrorType(str, Enum):
22
22
  """
23
- Type of API error
23
+ Type of the API error.
24
24
  """
25
25
 
26
26
  """
@@ -28,7 +28,7 @@ from typing_extensions import Self
28
28
 
29
29
  class ExceptionDetail(BaseModel):
30
30
  """
31
- 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.
32
32
  """ # noqa: E501
33
33
 
34
34
  message: Optional[StrictStr] = None
@@ -19,7 +19,7 @@ import json
19
19
 
20
20
  from datetime import datetime
21
21
  from pydantic import BaseModel, ConfigDict, StrictStr
22
- from typing import Any, ClassVar, Dict, List
22
+ from typing import Any, ClassVar, Dict, List, Optional
23
23
  from typing import Optional, Set
24
24
  from typing_extensions import Self
25
25
 
@@ -30,7 +30,7 @@ class MarketcapRanking(BaseModel):
30
30
  """ # noqa: E501
31
31
 
32
32
  timestamp: datetime
33
- symbols: List[StrictStr]
33
+ symbols: List[Optional[StrictStr]]
34
34
  __properties: ClassVar[List[str]] = ["timestamp", "symbols"]
35
35
 
36
36
  model_config = ConfigDict(
@@ -1,9 +1,23 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: crypticorn
3
- Version: 2.9.0rc1
3
+ Version: 2.10.1
4
4
  Summary: Maximise Your Crypto Trading Profits with Machine Learning
5
5
  Author-email: Crypticorn <timon@crypticorn.com>
6
- License: MIT
6
+ License: Copyright © 2025 Crypticorn
7
+
8
+ All rights reserved. This software and accompanying documentation files (collectively referred to as "the Software") are the proprietary property of Crypticorn. Any unauthorised reproduction, modification, integration, publication, distribution, sublicensing, sale, or enabling access to the Software without explicit written permission from Crypticorn is strictly prohibited, subject to the conditions outlined herein:
9
+
10
+ 1. The aforementioned copyright notice and this permission notice must be included unaltered in all copies, or significant portions, of the Software.
11
+
12
+ 2. The Software is provided "AS IS", without any warranty, whether express or implied. Crypticorn expressly disclaims any guarantees, including but not limited to those of satisfactory quality, fitness for a particular purpose, or non-infringement of third-party rights.
13
+
14
+ 3. In no event shall Crypticorn, its authors, or copyright holders be held liable for any claim, damages, or other liability arising from or associated with the use of the Software or any other dealings involving the Software, to the extent that such liability can be limited or excluded by applicable law.
15
+
16
+ Changes to this agreement may be made without notice, and it is the user's responsibility to keep abreast of any changes. This agreement and its interpretation are subject to the laws of the Federal Republic of Germany.
17
+
18
+ If any provision of this license agreement is held to be invalid or unenforceable under applicable law, the remaining provisions will continue in full force and effect. Crypticorn's failure to enforce any provision of this agreement does not constitute a waiver of its right to do so in the future.
19
+
20
+ This agreement is written in English. In the event of any discrepancy between the English version and any translation, the English version shall prevail.
7
21
  Project-URL: Homepage, https://crypticorn.com
8
22
  Project-URL: Documentation, https://docs.crypticorn.com
9
23
  Project-URL: Dashboard, https://app.crypticorn.com
@@ -20,6 +34,7 @@ Classifier: Programming Language :: Python :: 3.13
20
34
  Classifier: Typing :: Typed
21
35
  Requires-Python: >=3.10
22
36
  Description-Content-Type: text/markdown
37
+ License-File: LICENSE
23
38
  Requires-Dist: fastapi<1.0.0,>=0.115.0
24
39
  Requires-Dist: click<9.0.0,>=8.0.0
25
40
  Requires-Dist: psutil<8.0.0,>=7.0.0
@@ -35,14 +50,13 @@ Requires-Dist: tqdm<5.0.0,>=4.67.0
35
50
  Provides-Extra: dev
36
51
  Requires-Dist: build; extra == "dev"
37
52
  Requires-Dist: twine; extra == "dev"
38
- Requires-Dist: streamlit; extra == "dev"
39
- Requires-Dist: httpx; extra == "dev"
40
53
  Requires-Dist: black; extra == "dev"
41
54
  Requires-Dist: ruff; extra == "dev"
42
55
  Requires-Dist: isort; extra == "dev"
43
56
  Requires-Dist: mypy; extra == "dev"
44
57
  Requires-Dist: openapi-generator-cli<8.0.0,>=7.12.0; extra == "dev"
45
58
  Requires-Dist: pdoc==15.0.3; extra == "dev"
59
+ Requires-Dist: python-semantic-release==9.21.0; extra == "dev"
46
60
  Provides-Extra: test
47
61
  Requires-Dist: pytest==8.3.5; extra == "test"
48
62
  Requires-Dist: pytest-asyncio==0.26.0; extra == "test"
@@ -51,6 +65,7 @@ Requires-Dist: python-dotenv==1.0.1; extra == "test"
51
65
  Requires-Dist: PyJWT==2.10.0; extra == "test"
52
66
  Provides-Extra: extra
53
67
  Requires-Dist: pandas<3.0.0,>=2.2.0; extra == "extra"
68
+ Dynamic: license-file
54
69
 
55
70
  ## What is Crypticorn?
56
71
 
@@ -83,7 +98,7 @@ from crypticorn import ApiClient
83
98
  ```
84
99
  The ApiClient serves as the central interface for API operations. It instantiates multiple API wrappers corresponding to our micro services. These are structured the following:
85
100
 
86
- <img src="../static/pip-structure.svg" alt="pip package structure" />
101
+ <img src="pip-structure.svg" alt="pip package structure" />
87
102
 
88
103
  You can either explore each API by clicking through the library or checkout the [API Documentation](https://docs.crypticorn.com/api).
89
104
 
@@ -55,36 +55,38 @@ crypticorn/auth/client/models/verify_email_request.py,sha256=W_X14qdTADduVwY4wxS
55
55
  crypticorn/auth/client/models/verify_wallet_request.py,sha256=gFKkFXi6b45aUfyklFeHKNJVLxYXE3wR3PvF3JVI4Po,2671
56
56
  crypticorn/auth/client/models/wallet_verified200_response.py,sha256=IXhtaD0CC6Jp9ZG6sgyRg-beIzrhFDuF_bQYOjNMdY0,2445
57
57
  crypticorn/auth/client/models/whoami200_response.py,sha256=-Kj3fB4lgNaa8v_LTertjxXahBYtTpTIXkBha9MhA1o,3199
58
- crypticorn/cli/__init__.py,sha256=bgMmlpRThjYcxXJ1U3UmLE8ODVT5olmFY1u69VOjthQ,69
59
- crypticorn/cli/__main__.py,sha256=x9T4xS3U-qokGEzad7rTujmq4yjV5xcYSXgNsDFkvyo,253
60
- crypticorn/cli/init.py,sha256=8f7fihi1Wcd95ChvbLWl6U_zWnEYZC7XYSm6xacUTdE,3718
58
+ crypticorn/cli/__init__.py,sha256=5qIQ_WXKSoJk3tGU6n0XwmSX8a2cDRSM6dncaU1qOZ4,123
59
+ crypticorn/cli/__main__.py,sha256=q_3MdBGUJPukr_xexup3TICf8kLL7Tp4JxLWB5XCESs,303
60
+ crypticorn/cli/init.py,sha256=-ZVXbrHb_Yg8a4bKyflgi9Om5GHVYo3vX91X44b90ZA,4100
61
+ crypticorn/cli/version.py,sha256=OVDxeL80eMgZsFgw2cDSzFfuaRToDfnYAVOQTpkoMWs,206
61
62
  crypticorn/cli/templates/Dockerfile,sha256=89KlphaXJH51L7Vs4B928WmwYcMtpvLmKGyoDAhOcMw,726
62
63
  crypticorn/cli/templates/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
63
64
  crypticorn/cli/templates/auth.py,sha256=Q1TxlA7qzhjvrqp1xz1aV2vGnj3DKFNN-VSl3o0B-dI,983
64
65
  crypticorn/cli/templates/dependabot.yml,sha256=ct5ieB8KAV1KLzoYKUNm6dZ9wKG_P_JQHgRjZUfT54w,861
66
+ crypticorn/cli/templates/merge-env.sh,sha256=Q6d_RKcp2h6fOifYid8AsCvVGuUdleXkY3AxOVQ5psw,501
65
67
  crypticorn/cli/templates/ruff.yml,sha256=gWicFFTzC4nToSmRkIIGipos8CZ447YG0kebBCJhtJE,319
66
68
  crypticorn/common/__init__.py,sha256=DXEuUU_kaLBSBcvpiFie_ROuK5XEZuTMIfsg-BZE0iE,752
67
69
  crypticorn/common/ansi_colors.py,sha256=ts49UtfTy-c0uvlGwb3wE-jE_GbXvSBSfzwrDlNi0HE,1331
68
70
  crypticorn/common/auth.py,sha256=5wgApDw5x7dI-IWU9tX_gih-gMozi7Y5Tgpen-A9fbo,8713
69
71
  crypticorn/common/decorators.py,sha256=pmnGYCIrLv59wZkDbvPyK9NJmgPJWW74LXTdIWSjOkY,1063
70
- crypticorn/common/enums.py,sha256=8iPG1UFtU50HKytOrubYJsFJ_isMY5z69U2mezXA-NE,765
71
- crypticorn/common/errors.py,sha256=E7H8DVUP4E4uu-ze9v7aJBrfV7ODgbFBXJeyVSXbdVo,28041
72
+ crypticorn/common/enums.py,sha256=-KbdOEZ4LXHyPB6lBHzwLraBnIem9UXU3FM90culL1o,693
73
+ crypticorn/common/errors.py,sha256=UvPIAMuKaCG1Skbog4hJKHsjJyOvO95nF_UDBwfc3MU,27945
72
74
  crypticorn/common/exceptions.py,sha256=iq_VFkZ4jr_7BeEjDwlmHyRYPLIYN98-MJGJrxe2OqM,6036
73
75
  crypticorn/common/logging.py,sha256=bpWT3ip8CM5tf_jKECJjwrVVf5GYcRjfo-CPb47gISU,4346
74
76
  crypticorn/common/middleware.py,sha256=O7XiXPimNYUhF9QTv6yFUTVlb91-SK-3CfTrWMNP6Ck,1011
75
- crypticorn/common/mixins.py,sha256=NoZL1kXgSb4oVOGNWPqPwCcVZYjHzlsyL80bz6Xxlzg,2002
76
- crypticorn/common/openapi.py,sha256=Hppim3bLIy_uDixuC3ZPGCsxwk9WU5R45ua8XqZFatg,321
77
+ crypticorn/common/mixins.py,sha256=l7XQrBISaee6fDZXy96k0HnQ18XYocjTUXlNpVxhaOY,2206
78
+ crypticorn/common/openapi.py,sha256=D8bCpCVVzYQptHrJ7SYOgCxI3R_d0cjW9KMOBq-x0xk,279
77
79
  crypticorn/common/pagination.py,sha256=BYMNB4JUW9eeiTw1q3CyHXaT_-hk_BrSXAOqvif08Ek,2334
78
80
  crypticorn/common/scopes.py,sha256=TsSzMFHQAJ45CwhSrU3uRPHyHHjrCgPdJhAyjxY6b2Q,2456
79
81
  crypticorn/common/urls.py,sha256=qJHxdkpwQR1iPLSPMYVoobnLNSsQoKVV5SsRng4dZYs,1161
80
82
  crypticorn/common/utils.py,sha256=N4h-FtojufTuc4IBU7TeuSOygFvErpgZDrwl4epGmvw,2503
81
83
  crypticorn/common/warnings.py,sha256=bIfMLbKaCntMV88rTnoWgV6SZ9FJvo_adXv3yFW1rqg,2395
82
- crypticorn/common/router/admin_router.py,sha256=_Uvpkrg6daNiAdfr_2rtBlcCq8OvHy04Me12VRWdh4Y,3434
83
- crypticorn/common/router/status_router.py,sha256=snscsxpqK8WVucKnivP8Z_J8VhLCBbpmKAjPwYMC3vA,869
84
+ crypticorn/common/router/admin_router.py,sha256=x81s1gxhH7nLf7txqAIjVxrNgQmXsA1YG7g9v9KJwHA,3740
85
+ crypticorn/common/router/status_router.py,sha256=it6kfvx_Pn4Rv06fmViwhwr-m6f4WuSgcZwc6VTaMz4,868
84
86
  crypticorn/hive/__init__.py,sha256=hRfTlEzEql4msytdUC_04vfaHzVKG5CGZle1M-9QFgY,81
85
87
  crypticorn/hive/main.py,sha256=eoo5bTmbfS94zuYHDkD20orNANESYuTURHQNw3pIEvQ,2875
86
88
  crypticorn/hive/utils.py,sha256=5T2GYnIFazXgAdUlO03xWqcMWhWkM82cfWvwsO8geHE,2040
87
- crypticorn/hive/client/__init__.py,sha256=DIC-Gy384GgwFXehCLPrsud67WQn2zADFVo4FbgHWiY,2636
89
+ crypticorn/hive/client/__init__.py,sha256=9H8k_fi6UDVrVwnHH8i-Q_1CNTe0f_Ti5gBmt42AtFo,2645
88
90
  crypticorn/hive/client/api_client.py,sha256=fDFsACK7hxXw_sgt3ZJVH2RplEdUhR0YZd4tsZA9P5Q,26869
89
91
  crypticorn/hive/client/api_response.py,sha256=WhxwYDSMm6wPixp9CegO8dJzjFxDz3JF1yCq9s0ZqKE,639
90
92
  crypticorn/hive/client/configuration.py,sha256=J4tZF5m71BMOFE1rfWzgrBWEPQ-DQ-FByFJiNZ81W48,19105
@@ -92,14 +94,14 @@ crypticorn/hive/client/exceptions.py,sha256=IKuM8sbMtr3T9z-fOuePTJmheUFahzmyZ8ia
92
94
  crypticorn/hive/client/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
93
95
  crypticorn/hive/client/rest.py,sha256=VhXkE7R3y1RD0QmbvIwmsk-LP_DmOei_zd9YiIXer28,6975
94
96
  crypticorn/hive/client/api/__init__.py,sha256=Qp35Nx0HEuKa8YmFcv6iSAqrLuR0YczPK7R-EEBDYuo,281
95
- crypticorn/hive/client/api/admin_api.py,sha256=KoEcDZ8tpJ86H8sUZUrZBAzF24ewDfG0HX61IbjnQyo,58649
96
- crypticorn/hive/client/api/data_api.py,sha256=GJlH2Qs1KmWCc4nv7y5byyyFDiidLdooG-WvbBv-Z-4,22624
97
- crypticorn/hive/client/api/models_api.py,sha256=W35VZR5OQvwHk7v1WFO85m97FovnoWjdsskA4qU165Y,74143
97
+ crypticorn/hive/client/api/admin_api.py,sha256=ov2vApFo50A3uOAq717PBhrw2JpQSsHyBHnL7l3-iWI,59784
98
+ crypticorn/hive/client/api/data_api.py,sha256=bXEx44opuJsJtNJORlL2A9By2FA-vhCep_ath_uIRXA,23218
99
+ crypticorn/hive/client/api/models_api.py,sha256=ID0-IJjxRSQO6rq0HFaEKvEArD45QI2ULJIE5FFXJfg,76071
98
100
  crypticorn/hive/client/api/status_api.py,sha256=KIpSewGuK6_cUT6dfUjlvt35k1xW4YZcuSTCPWFURms,19577
99
- crypticorn/hive/client/models/__init__.py,sha256=SxW9EZLd6FULaHE14S-K8otx7MGj6vB4YpkhWWhLdg4,1786
100
- crypticorn/hive/client/models/api_error_identifier.py,sha256=7-y5KzdprlPOS4Ar3z7sWG90vCVjQjNIg_jhQmm0yBk,4901
101
- crypticorn/hive/client/models/api_error_level.py,sha256=7ucfXQ27SckkLGSfmexF9kV6mDqFHyP9c_y6nGhFfKc,718
102
- crypticorn/hive/client/models/api_error_type.py,sha256=YB6Fw0rmeGtEy2gx0XVfcqyw-VpJkd7KoszPni7STZ4,759
101
+ crypticorn/hive/client/models/__init__.py,sha256=idst4l4rnxk0BpUq-FoUAWg6cG4iXUo2mH6sQTMoUmA,1795
102
+ crypticorn/hive/client/models/api_error_identifier.py,sha256=VbjaaF0d7PJL9abHZqoF_Ht8SUcqhfO2nVDeyTNhtyM,4915
103
+ crypticorn/hive/client/models/api_error_level.py,sha256=huHUOq0gBgH-MR4SZL4P-432DeW8UaMHjzvvAPvwSCE,725
104
+ crypticorn/hive/client/models/api_error_type.py,sha256=IN_aDBQQP7sKXUNk-oElKcCBg7CYfCt8efL1qvhb54g,764
103
105
  crypticorn/hive/client/models/coins.py,sha256=4rPueVFUDbdU-8KrZ5b1jwqasf3uMT_cIsORyKbeydc,875
104
106
  crypticorn/hive/client/models/data_download_response.py,sha256=AVPLov8RO9zq6vThUe7M4p3LlhZQytXyPbFZD1AFDfY,3649
105
107
  crypticorn/hive/client/models/data_info.py,sha256=xhP_JFJP9jikOsOsPT4DJEbwGpDB8rfo5FDA1LT0ecs,6633
@@ -109,11 +111,11 @@ crypticorn/hive/client/models/data_version_info.py,sha256=LdwEwSgGfOzjitxiPXZfEp
109
111
  crypticorn/hive/client/models/download_links.py,sha256=nXq__ZoJ2ZVqeofVolB9B47LgGGDQKorPBNRsdp8uPU,2854
110
112
  crypticorn/hive/client/models/evaluation.py,sha256=WeLJA4tCS4W_CnGxRAgrxySWko3QPYzpxeVDuYyLPgM,2608
111
113
  crypticorn/hive/client/models/evaluation_response.py,sha256=iwE1G1_EOFga6Zztf1A8z6TNiNc_R06r2lKLHIr5_6A,2526
112
- crypticorn/hive/client/models/exception_detail.py,sha256=bWZxtSADoPajuXrPYCskmmzJ14s1R2H3BtsbxkBewWc,3903
114
+ crypticorn/hive/client/models/exception_detail.py,sha256=eG5nD9934kI-Ymx4kh1IOeduhwMjKd4ZUvLiPJeKXoo,3797
113
115
  crypticorn/hive/client/models/feature_size.py,sha256=saLwDjXIzoa9sPO0lMvm3x4FavG2-IbBLub7-TOzW2M,785
114
116
  crypticorn/hive/client/models/log_level.py,sha256=PcqRrIF-dJ1wnssdHlbA6SsPUjB1T4IpRGttsedeuyQ,722
115
- crypticorn/hive/client/models/model.py,sha256=iLVq8r5lUL86vubUDTcBXmdpSjhncNEk7BrCG_MZC1s,4512
116
117
  crypticorn/hive/client/models/model_create.py,sha256=f6Ayw3KD39qw0qtvYF77K3huy7_Tmzv8pDyyQ_ooAG8,2828
118
+ crypticorn/hive/client/models/model_read.py,sha256=QGYajrM18hxKzJYVsi0-gychCgZM3079Aq7BUw9iO68,4524
117
119
  crypticorn/hive/client/models/model_status.py,sha256=-2H6CHw6jhJgv4VJgwr1sgN2NtT1m7LGCX7L8ULTxEQ,685
118
120
  crypticorn/hive/client/models/model_update.py,sha256=iO-VtYt0aRzj9z_GeIUK2OVNg9yvM01OUVfWyCA36fc,2413
119
121
  crypticorn/hive/client/models/target.py,sha256=otOJK8s5WVUen6J1AQZpRiD330RIpaJU6JShb-EU8Hs,777
@@ -166,25 +168,25 @@ crypticorn/metrics/client/exceptions.py,sha256=UegnYftFlQDXAQv8BmD20yRzTtWpjTHcu
166
168
  crypticorn/metrics/client/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
167
169
  crypticorn/metrics/client/rest.py,sha256=pWeYnpTfTV7L5U6Kli3b7i8VrmqdG8sskqSnTHPIoQo,7025
168
170
  crypticorn/metrics/client/api/__init__.py,sha256=nNmEy9XBH8jQboMzedrzeGl8OVuDo_iylCaFw4Fgysg,649
169
- crypticorn/metrics/client/api/admin_api.py,sha256=QAfVE4Ag2QAsu1imyK-ylrQDxQX4-Ue10H7pxAfGPb0,59131
171
+ crypticorn/metrics/client/api/admin_api.py,sha256=_YobvzUaNfv0CohQdAndUH2HPw5u6FbHwVaUATvsFyU,59843
170
172
  crypticorn/metrics/client/api/exchanges_api.py,sha256=BZiJH8hxxSnI9SXydgErM6gzvIR-t9vNXbh9fFotpQQ,40455
171
173
  crypticorn/metrics/client/api/indicators_api.py,sha256=gltFmv_EorYbeWMnp-N0QkgdVKrkvi1iOZUP_ewkXZ0,26748
172
174
  crypticorn/metrics/client/api/logs_api.py,sha256=lDOixn5hn3DWc6HjExWtKZfy7U4NfcSLsO1bNFrx4GE,13550
173
175
  crypticorn/metrics/client/api/marketcap_api.py,sha256=28lQlBJh5hdW7fULJl55bAJy_HWZWEdouds63YJIwAQ,51106
174
176
  crypticorn/metrics/client/api/markets_api.py,sha256=NbPtD5bQK_Nt73hlVd6cd1pAZ7HO1QQgNl_abNoN00s,14739
175
177
  crypticorn/metrics/client/api/quote_currencies_api.py,sha256=H4c3zOp5eTTUrRMlMH-H8aIIBpV4Ioj8c65UUt_BEuE,11259
176
- crypticorn/metrics/client/api/status_api.py,sha256=hxQf-22CurM-1TQygsYeYiL8CVhFe9cCPbDkX0zLvfg,19714
178
+ crypticorn/metrics/client/api/status_api.py,sha256=_Ou_EGmjPyv32G-S4QKfRemdpGG6FUsgOkbGDfYaFp0,19633
177
179
  crypticorn/metrics/client/api/tokens_api.py,sha256=x5a-YAeAgFJm-pN4K3-lOM-WPVYAxoBr-AYb-oxhysM,19522
178
180
  crypticorn/metrics/client/models/__init__.py,sha256=Voa1tj-CTpvzF6UmGJf0h0zFqG-7wFV8TSwH_lst0WY,1285
179
- crypticorn/metrics/client/models/api_error_identifier.py,sha256=HrL78MgQ0NbWv8CJhl6Zbp3QSIK2xO8lAZy5y6M8NCk,4948
180
- crypticorn/metrics/client/models/api_error_level.py,sha256=fxhEXRsXIAttvVqKvv0r58fEsRl_2X8GOICw0eRGMIg,765
181
- crypticorn/metrics/client/models/api_error_type.py,sha256=AwnguQ4VyyqMj3hGqy-kpxZhzpy-tjQVt0n3ml_wYlg,806
182
- crypticorn/metrics/client/models/exception_detail.py,sha256=3SijhjW8homYVC4p0qgRyOUlObGCP3WpbO4IfGYLzQk,3959
181
+ crypticorn/metrics/client/models/api_error_identifier.py,sha256=f_GdLo9HUcWPlXw8U8jDpjlKCj2mtuB3Ik9owJl_wJU,4962
182
+ crypticorn/metrics/client/models/api_error_level.py,sha256=soxtGExzlBja-Jux_jguro-1taLAGcKmGSHlxTKTYR4,772
183
+ crypticorn/metrics/client/models/api_error_type.py,sha256=Y8pCAtdcS4zfTetTZj9x60BFJwSXD6ro-8NU38aEDyQ,811
184
+ crypticorn/metrics/client/models/exception_detail.py,sha256=GIIa_LNZrtXlWCMLh1OAgEO6UoBo3m0kiCk788wMbuA,3853
183
185
  crypticorn/metrics/client/models/exchange_mapping.py,sha256=SJkMHO-ZZfnnjWNHAgmLOyJyDIGV8t1T3AF_3PukXBs,4104
184
186
  crypticorn/metrics/client/models/internal_exchange.py,sha256=aWc3gPt1TSQ74y5tivLAVOu-qySo9djgIWwsB8nYass,864
185
187
  crypticorn/metrics/client/models/log_level.py,sha256=u_1h06MyyyfV5PYYh8Xjgq9ySF2CfU_clZbkww6aJk4,769
186
188
  crypticorn/metrics/client/models/market_type.py,sha256=1fLJIuDO5wK5JABFxtnJzHMwJw1mSqf21-QVAP102xk,711
187
- crypticorn/metrics/client/models/marketcap_ranking.py,sha256=tRA7IjesdhQWZJAucRXngMpHIjfOeQefinnJkP71UxQ,2561
189
+ crypticorn/metrics/client/models/marketcap_ranking.py,sha256=9uNO0PxJWM2FQL37GH3GwRaRwsy5AmSwLLe67UtX1J8,2581
188
190
  crypticorn/metrics/client/models/ohlcv.py,sha256=2CZx2WOAMHn5hpA9MafWQQIgxP6UbXagh1KsPoe0ODU,3368
189
191
  crypticorn/metrics/client/models/severity.py,sha256=Bwls2jjCMP2lKc-_67d5WZbGPAebUEPge7a82iUf4Qs,731
190
192
  crypticorn/metrics/client/models/time_interval.py,sha256=8bHhMNt56xVGvJi5xNFMrAkAZFRKfym1UkeGoM2H0j8,772
@@ -257,8 +259,9 @@ crypticorn/trade/client/models/strategy_model_input.py,sha256=ala19jARyfA5ysys5D
257
259
  crypticorn/trade/client/models/strategy_model_output.py,sha256=2o2lhbgUSTznowpMLEHF1Ex9TG9oRmzlCIb-gXqo7_s,5643
258
260
  crypticorn/trade/client/models/tpsl.py,sha256=C2KgTIZs-a8W4msdaXgBKJcwtA-o5wR4rBauRP-iQxU,4317
259
261
  crypticorn/trade/client/models/trading_action_type.py,sha256=pGq_TFLMPfYFizYP-xKgEC1ZF4U3lGdJYoGa_ZH2x-Q,769
260
- crypticorn-2.9.0rc1.dist-info/METADATA,sha256=TNqI7UgqBELwQkyjPOn_Z2H_asbLoxIFSpsy04-1G9M,8143
261
- crypticorn-2.9.0rc1.dist-info/WHEEL,sha256=0CuiUZ_p9E4cD6NyLD6UG80LBXYyiSYZOKDm5lp32xk,91
262
- crypticorn-2.9.0rc1.dist-info/entry_points.txt,sha256=d_xHsGvUTebPveVUK0SrpDFQ5ZRSjlI7lNCc11sn2PM,59
263
- crypticorn-2.9.0rc1.dist-info/top_level.txt,sha256=EP3NY216qIBYfmvGl0L2Zc9ItP0DjGSkiYqd9xJwGcM,11
264
- crypticorn-2.9.0rc1.dist-info/RECORD,,
262
+ crypticorn-2.10.1.dist-info/licenses/LICENSE,sha256=HonAVvzFXkP2C1d7D3ByIKPwjGH8NcHTAQvKH7uvOHQ,1856
263
+ crypticorn-2.10.1.dist-info/METADATA,sha256=U9MCK09AhdO8syM1BGzfjN4WFi7tQWE6RIHBmSIQuAg,10125
264
+ crypticorn-2.10.1.dist-info/WHEEL,sha256=DnLRTWE75wApRYVsjgc6wsVswC54sMSJhAEd4xhDpBk,91
265
+ crypticorn-2.10.1.dist-info/entry_points.txt,sha256=d_xHsGvUTebPveVUK0SrpDFQ5ZRSjlI7lNCc11sn2PM,59
266
+ crypticorn-2.10.1.dist-info/top_level.txt,sha256=EP3NY216qIBYfmvGl0L2Zc9ItP0DjGSkiYqd9xJwGcM,11
267
+ crypticorn-2.10.1.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: setuptools (80.3.1)
2
+ Generator: setuptools (80.4.0)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5
 
@@ -0,0 +1,15 @@
1
+ Copyright © 2025 Crypticorn
2
+
3
+ All rights reserved. This software and accompanying documentation files (collectively referred to as "the Software") are the proprietary property of Crypticorn. Any unauthorised reproduction, modification, integration, publication, distribution, sublicensing, sale, or enabling access to the Software without explicit written permission from Crypticorn is strictly prohibited, subject to the conditions outlined herein:
4
+
5
+ 1. The aforementioned copyright notice and this permission notice must be included unaltered in all copies, or significant portions, of the Software.
6
+
7
+ 2. The Software is provided "AS IS", without any warranty, whether express or implied. Crypticorn expressly disclaims any guarantees, including but not limited to those of satisfactory quality, fitness for a particular purpose, or non-infringement of third-party rights.
8
+
9
+ 3. In no event shall Crypticorn, its authors, or copyright holders be held liable for any claim, damages, or other liability arising from or associated with the use of the Software or any other dealings involving the Software, to the extent that such liability can be limited or excluded by applicable law.
10
+
11
+ Changes to this agreement may be made without notice, and it is the user's responsibility to keep abreast of any changes. This agreement and its interpretation are subject to the laws of the Federal Republic of Germany.
12
+
13
+ If any provision of this license agreement is held to be invalid or unenforceable under applicable law, the remaining provisions will continue in full force and effect. Crypticorn's failure to enforce any provision of this agreement does not constitute a waiver of its right to do so in the future.
14
+
15
+ This agreement is written in English. In the event of any discrepancy between the English version and any translation, the English version shall prevail.