everysk-lib 1.10.2__cp312-cp312-win_amd64.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.
- everysk/__init__.py +30 -0
- everysk/_version.py +683 -0
- everysk/api/__init__.py +61 -0
- everysk/api/api_requestor.py +167 -0
- everysk/api/api_resources/__init__.py +23 -0
- everysk/api/api_resources/api_resource.py +371 -0
- everysk/api/api_resources/calculation.py +779 -0
- everysk/api/api_resources/custom_index.py +42 -0
- everysk/api/api_resources/datastore.py +81 -0
- everysk/api/api_resources/file.py +42 -0
- everysk/api/api_resources/market_data.py +223 -0
- everysk/api/api_resources/parser.py +66 -0
- everysk/api/api_resources/portfolio.py +43 -0
- everysk/api/api_resources/private_security.py +42 -0
- everysk/api/api_resources/report.py +65 -0
- everysk/api/api_resources/report_template.py +39 -0
- everysk/api/api_resources/tests.py +115 -0
- everysk/api/api_resources/worker_execution.py +64 -0
- everysk/api/api_resources/workflow.py +65 -0
- everysk/api/api_resources/workflow_execution.py +93 -0
- everysk/api/api_resources/workspace.py +42 -0
- everysk/api/http_client.py +63 -0
- everysk/api/tests.py +32 -0
- everysk/api/utils.py +262 -0
- everysk/config.py +451 -0
- everysk/core/_tests/serialize/test_json.py +336 -0
- everysk/core/_tests/serialize/test_orjson.py +295 -0
- everysk/core/_tests/serialize/test_pickle.py +48 -0
- everysk/core/cloud_function/main.py +78 -0
- everysk/core/cloud_function/tests.py +86 -0
- everysk/core/compress.py +245 -0
- everysk/core/datetime/__init__.py +12 -0
- everysk/core/datetime/calendar.py +144 -0
- everysk/core/datetime/date.py +424 -0
- everysk/core/datetime/date_expression.py +299 -0
- everysk/core/datetime/date_mixin.py +1475 -0
- everysk/core/datetime/date_settings.py +30 -0
- everysk/core/datetime/datetime.py +713 -0
- everysk/core/exceptions.py +435 -0
- everysk/core/fields.py +1176 -0
- everysk/core/firestore.py +555 -0
- everysk/core/fixtures/_settings.py +29 -0
- everysk/core/fixtures/other/_settings.py +18 -0
- everysk/core/fixtures/user_agents.json +88 -0
- everysk/core/http.py +691 -0
- everysk/core/lists.py +92 -0
- everysk/core/log.py +709 -0
- everysk/core/number.py +37 -0
- everysk/core/object.py +1469 -0
- everysk/core/redis.py +1021 -0
- everysk/core/retry.py +51 -0
- everysk/core/serialize.py +674 -0
- everysk/core/sftp.py +414 -0
- everysk/core/signing.py +53 -0
- everysk/core/slack.py +127 -0
- everysk/core/string.py +199 -0
- everysk/core/tests.py +240 -0
- everysk/core/threads.py +199 -0
- everysk/core/undefined.py +70 -0
- everysk/core/unittests.py +73 -0
- everysk/core/workers.py +241 -0
- everysk/sdk/__init__.py +23 -0
- everysk/sdk/base.py +98 -0
- everysk/sdk/brutils/cnpj.py +391 -0
- everysk/sdk/brutils/cnpj_pd.py +129 -0
- everysk/sdk/engines/__init__.py +26 -0
- everysk/sdk/engines/cache.py +185 -0
- everysk/sdk/engines/compliance.py +37 -0
- everysk/sdk/engines/cryptography.py +69 -0
- everysk/sdk/engines/expression.cp312-win_amd64.pyd +0 -0
- everysk/sdk/engines/expression.pyi +55 -0
- everysk/sdk/engines/helpers.cp312-win_amd64.pyd +0 -0
- everysk/sdk/engines/helpers.pyi +26 -0
- everysk/sdk/engines/lock.py +120 -0
- everysk/sdk/engines/market_data.py +244 -0
- everysk/sdk/engines/settings.py +19 -0
- everysk/sdk/entities/__init__.py +23 -0
- everysk/sdk/entities/base.py +784 -0
- everysk/sdk/entities/base_list.py +131 -0
- everysk/sdk/entities/custom_index/base.py +209 -0
- everysk/sdk/entities/custom_index/settings.py +29 -0
- everysk/sdk/entities/datastore/base.py +160 -0
- everysk/sdk/entities/datastore/settings.py +17 -0
- everysk/sdk/entities/fields.py +375 -0
- everysk/sdk/entities/file/base.py +215 -0
- everysk/sdk/entities/file/settings.py +63 -0
- everysk/sdk/entities/portfolio/base.py +248 -0
- everysk/sdk/entities/portfolio/securities.py +241 -0
- everysk/sdk/entities/portfolio/security.py +580 -0
- everysk/sdk/entities/portfolio/settings.py +97 -0
- everysk/sdk/entities/private_security/base.py +226 -0
- everysk/sdk/entities/private_security/settings.py +17 -0
- everysk/sdk/entities/query.py +603 -0
- everysk/sdk/entities/report/base.py +214 -0
- everysk/sdk/entities/report/settings.py +23 -0
- everysk/sdk/entities/script.py +310 -0
- everysk/sdk/entities/secrets/base.py +128 -0
- everysk/sdk/entities/secrets/script.py +119 -0
- everysk/sdk/entities/secrets/settings.py +17 -0
- everysk/sdk/entities/settings.py +48 -0
- everysk/sdk/entities/tags.py +174 -0
- everysk/sdk/entities/worker_execution/base.py +307 -0
- everysk/sdk/entities/worker_execution/settings.py +63 -0
- everysk/sdk/entities/workflow_execution/base.py +113 -0
- everysk/sdk/entities/workflow_execution/settings.py +32 -0
- everysk/sdk/entities/workspace/base.py +99 -0
- everysk/sdk/entities/workspace/settings.py +27 -0
- everysk/sdk/settings.py +67 -0
- everysk/sdk/tests.py +105 -0
- everysk/sdk/worker_base.py +47 -0
- everysk/server/__init__.py +9 -0
- everysk/server/applications.py +63 -0
- everysk/server/endpoints.py +516 -0
- everysk/server/example_api.py +69 -0
- everysk/server/middlewares.py +80 -0
- everysk/server/requests.py +62 -0
- everysk/server/responses.py +119 -0
- everysk/server/routing.py +64 -0
- everysk/server/settings.py +36 -0
- everysk/server/tests.py +36 -0
- everysk/settings.py +98 -0
- everysk/sql/__init__.py +9 -0
- everysk/sql/connection.py +232 -0
- everysk/sql/model.py +376 -0
- everysk/sql/query.py +417 -0
- everysk/sql/row_factory.py +63 -0
- everysk/sql/settings.py +49 -0
- everysk/sql/utils.py +129 -0
- everysk/tests.py +23 -0
- everysk/utils.py +81 -0
- everysk/version.py +15 -0
- everysk_lib-1.10.2.dist-info/.gitignore +5 -0
- everysk_lib-1.10.2.dist-info/METADATA +326 -0
- everysk_lib-1.10.2.dist-info/RECORD +137 -0
- everysk_lib-1.10.2.dist-info/WHEEL +5 -0
- everysk_lib-1.10.2.dist-info/licenses/LICENSE.txt +9 -0
- everysk_lib-1.10.2.dist-info/top_level.txt +2 -0
everysk/core/lists.py
ADDED
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
###############################################################################
|
|
2
|
+
#
|
|
3
|
+
# (C) Copyright 2025 EVERYSK TECHNOLOGIES
|
|
4
|
+
#
|
|
5
|
+
# This is an unpublished work containing confidential and proprietary
|
|
6
|
+
# information of EVERYSK TECHNOLOGIES. Disclosure, use, or reproduction
|
|
7
|
+
# without authorization of EVERYSK TECHNOLOGIES is prohibited.
|
|
8
|
+
#
|
|
9
|
+
###############################################################################
|
|
10
|
+
from math import ceil
|
|
11
|
+
from operator import itemgetter
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
###############################################################################
|
|
15
|
+
# Public Functions Implementation
|
|
16
|
+
###############################################################################
|
|
17
|
+
def split_in_slices(total_size: int, slice_size: int) -> list[slice]:
|
|
18
|
+
"""
|
|
19
|
+
Divides a range of a given size into slices of approximately equal lengths.
|
|
20
|
+
|
|
21
|
+
Args:
|
|
22
|
+
total_size (int): The total size of the range to be divided.
|
|
23
|
+
slice_size (int): The desired size for each slice.
|
|
24
|
+
|
|
25
|
+
Returns:
|
|
26
|
+
list[slice]: A list of `slice` objects, where each slice represents a segment of the range. The slices cover the entire range without overlap.
|
|
27
|
+
|
|
28
|
+
Examples:
|
|
29
|
+
>>> split_in_slices(1, 2)
|
|
30
|
+
[slice(0, 1)]
|
|
31
|
+
>>> split_in_slices(3, 2)
|
|
32
|
+
[slice(0, 2), slice(2, 3)]
|
|
33
|
+
>>> split_in_slices(5, 3)
|
|
34
|
+
[slice(0, 2), slice(2, 4), slice(4, 5)]
|
|
35
|
+
"""
|
|
36
|
+
# Return an empty list if total_size or slice_size is invalid
|
|
37
|
+
if total_size <= 0 or slice_size <= 0:
|
|
38
|
+
return []
|
|
39
|
+
|
|
40
|
+
# If the total_size is smaller than or equal to the desired slice size,
|
|
41
|
+
# return a single slice that covers the entire range
|
|
42
|
+
if total_size <= slice_size:
|
|
43
|
+
return [slice(0, total_size)]
|
|
44
|
+
|
|
45
|
+
# Calculate the number of slices needed
|
|
46
|
+
n = int(ceil(total_size / float(slice_size)))
|
|
47
|
+
|
|
48
|
+
# Compute the base slice size and the remainder
|
|
49
|
+
k, m = divmod(total_size, n)
|
|
50
|
+
|
|
51
|
+
# Generate slices using a list comprehension
|
|
52
|
+
return [slice(i * k + min(i, m), (i + 1) * k + min(i + 1, m)) for i in range(n)]
|
|
53
|
+
|
|
54
|
+
def slices(lst: list, size: int) -> list:
|
|
55
|
+
"""
|
|
56
|
+
Split the list in slices.
|
|
57
|
+
https://stackoverflow.com/a/312464
|
|
58
|
+
|
|
59
|
+
Args:
|
|
60
|
+
lst (list): The list to split.
|
|
61
|
+
size (int): The size of each slice.
|
|
62
|
+
|
|
63
|
+
Returns:
|
|
64
|
+
list: A list in which each element is a slice of the original list.
|
|
65
|
+
|
|
66
|
+
Example:
|
|
67
|
+
>>> from everysk.core.lists import slices
|
|
68
|
+
>>> slices([1, 2, 3, 4, 5, 6, 7, 8, 9, 10], 2)
|
|
69
|
+
[[1, 2], [3, 4], [5, 6], [7, 8], [9, 10]]
|
|
70
|
+
|
|
71
|
+
"""
|
|
72
|
+
return [lst[i:i + size] for i in range(0, len(lst), size)]
|
|
73
|
+
|
|
74
|
+
def sort_list_dict(*keys: list[str], lst: list[dict], reverse: bool = False) -> list:
|
|
75
|
+
"""
|
|
76
|
+
Order a list of dictionaries by a specific key or keys.
|
|
77
|
+
https://stackoverflow.com/a/73050
|
|
78
|
+
|
|
79
|
+
Args:
|
|
80
|
+
keys (list[str]): The key or keys to sort by.
|
|
81
|
+
lst (list[dict]): The list of dictionaries to sort.
|
|
82
|
+
reverse (bool): Whether to sort in reverse order.
|
|
83
|
+
|
|
84
|
+
Returns:
|
|
85
|
+
list: The sorted list of dictionaries.
|
|
86
|
+
|
|
87
|
+
Example:
|
|
88
|
+
>>> from everysk.core.lists import sort_list_dict
|
|
89
|
+
>>> sort_list_dict('name', 'age', lst=[{'name': 'John', 'age': 25}, {'name': 'Jane', 'age': 22}], reverse=True)
|
|
90
|
+
[{'name': 'John', 'age': 25}, {'name': 'Jane', 'age': 22}]
|
|
91
|
+
"""
|
|
92
|
+
return sorted(lst, key=itemgetter(*keys), reverse=reverse)
|