malevich-coretools 0.3.44__tar.gz → 0.3.47__tar.gz
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.
Potentially problematic release.
This version of malevich-coretools might be problematic. Click here for more details.
- {malevich_coretools-0.3.44/malevich_coretools.egg-info → malevich_coretools-0.3.47}/PKG-INFO +3 -2
- malevich_coretools-0.3.47/VERSION +1 -0
- {malevich_coretools-0.3.44 → malevich_coretools-0.3.47}/malevich_coretools/abstract/abstract.py +26 -3
- {malevich_coretools-0.3.44 → malevich_coretools-0.3.47}/malevich_coretools/funcs/funcs.py +8 -0
- {malevich_coretools-0.3.44 → malevich_coretools-0.3.47}/malevich_coretools/funcs/helpers.py +2 -0
- {malevich_coretools-0.3.44 → malevich_coretools-0.3.47}/malevich_coretools/utils.py +34 -7
- {malevich_coretools-0.3.44 → malevich_coretools-0.3.47/malevich_coretools.egg-info}/PKG-INFO +3 -2
- malevich_coretools-0.3.44/VERSION +0 -1
- {malevich_coretools-0.3.44 → malevich_coretools-0.3.47}/LICENSE +0 -0
- {malevich_coretools-0.3.44 → malevich_coretools-0.3.47}/MANIFEST.in +0 -0
- {malevich_coretools-0.3.44 → malevich_coretools-0.3.47}/README.md +0 -0
- {malevich_coretools-0.3.44 → malevich_coretools-0.3.47}/malevich_coretools/__init__.py +0 -0
- {malevich_coretools-0.3.44 → malevich_coretools-0.3.47}/malevich_coretools/abstract/__init__.py +0 -0
- {malevich_coretools-0.3.44 → malevich_coretools-0.3.47}/malevich_coretools/abstract/operations.py +0 -0
- {malevich_coretools-0.3.44 → malevich_coretools-0.3.47}/malevich_coretools/abstract/pipeline.py +0 -0
- {malevich_coretools-0.3.44 → malevich_coretools-0.3.47}/malevich_coretools/abstract/statuses.py +0 -0
- {malevich_coretools-0.3.44 → malevich_coretools-0.3.47}/malevich_coretools/admin/__init__.py +0 -0
- {malevich_coretools-0.3.44 → malevich_coretools-0.3.47}/malevich_coretools/admin/utils.py +0 -0
- {malevich_coretools-0.3.44 → malevich_coretools-0.3.47}/malevich_coretools/batch/__init__.py +0 -0
- {malevich_coretools-0.3.44 → malevich_coretools-0.3.47}/malevich_coretools/batch/utils.py +0 -0
- {malevich_coretools-0.3.44 → malevich_coretools-0.3.47}/malevich_coretools/funcs/__init__.py +0 -0
- {malevich_coretools-0.3.44 → malevich_coretools-0.3.47}/malevich_coretools/funcs/checks.py +0 -0
- {malevich_coretools-0.3.44 → malevich_coretools-0.3.47}/malevich_coretools/secondary/__init__.py +0 -0
- {malevich_coretools-0.3.44 → malevich_coretools-0.3.47}/malevich_coretools/secondary/config.py +0 -0
- {malevich_coretools-0.3.44 → malevich_coretools-0.3.47}/malevich_coretools/secondary/const.py +0 -0
- {malevich_coretools-0.3.44 → malevich_coretools-0.3.47}/malevich_coretools/secondary/helpers.py +0 -0
- {malevich_coretools-0.3.44 → malevich_coretools-0.3.47}/malevich_coretools/secondary/kafka_utils.py +0 -0
- {malevich_coretools-0.3.44 → malevich_coretools-0.3.47}/malevich_coretools/tools/__init__.py +0 -0
- {malevich_coretools-0.3.44 → malevich_coretools-0.3.47}/malevich_coretools/tools/abstract.py +0 -0
- {malevich_coretools-0.3.44 → malevich_coretools-0.3.47}/malevich_coretools/tools/vast.py +0 -0
- {malevich_coretools-0.3.44 → malevich_coretools-0.3.47}/malevich_coretools.egg-info/SOURCES.txt +0 -0
- {malevich_coretools-0.3.44 → malevich_coretools-0.3.47}/malevich_coretools.egg-info/dependency_links.txt +0 -0
- {malevich_coretools-0.3.44 → malevich_coretools-0.3.47}/malevich_coretools.egg-info/requires.txt +0 -0
- {malevich_coretools-0.3.44 → malevich_coretools-0.3.47}/malevich_coretools.egg-info/top_level.txt +0 -0
- {malevich_coretools-0.3.44 → malevich_coretools-0.3.47}/pyproject.toml +0 -0
- {malevich_coretools-0.3.44 → malevich_coretools-0.3.47}/requirements.txt +0 -0
- {malevich_coretools-0.3.44 → malevich_coretools-0.3.47}/setup.cfg +0 -0
- {malevich_coretools-0.3.44 → malevich_coretools-0.3.47}/setup.py +0 -0
{malevich_coretools-0.3.44/malevich_coretools.egg-info → malevich_coretools-0.3.47}/PKG-INFO
RENAMED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
Metadata-Version: 2.
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
2
|
Name: malevich-coretools
|
|
3
|
-
Version: 0.3.
|
|
3
|
+
Version: 0.3.47
|
|
4
4
|
Author: Andrew Pogrebnoj
|
|
5
5
|
Author-email: andrew@onjulius.co
|
|
6
6
|
License-File: LICENSE
|
|
@@ -11,4 +11,5 @@ Requires-Dist: aiohttp
|
|
|
11
11
|
Requires-Dist: kafka-python
|
|
12
12
|
Dynamic: author
|
|
13
13
|
Dynamic: author-email
|
|
14
|
+
Dynamic: license-file
|
|
14
15
|
Dynamic: requires-dist
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
0.3.47
|
{malevich_coretools-0.3.44 → malevich_coretools-0.3.47}/malevich_coretools/abstract/abstract.py
RENAMED
|
@@ -154,9 +154,16 @@ class TaskPolicy(BaseModel):
|
|
|
154
154
|
|
|
155
155
|
|
|
156
156
|
class Schedule(BaseModel):
|
|
157
|
-
delay: int
|
|
158
|
-
startAfter: int =
|
|
159
|
-
count: Optional[int] = None
|
|
157
|
+
delay: Optional[int] = None # seconds
|
|
158
|
+
startAfter: Optional[int] = None # seconds
|
|
159
|
+
count: Optional[int] = None # iters
|
|
160
|
+
cron: Optional[str] = None
|
|
161
|
+
|
|
162
|
+
def validate(self) -> None:
|
|
163
|
+
if self.cron is None:
|
|
164
|
+
assert self.delay is not None, "cron or delay should set"
|
|
165
|
+
else:
|
|
166
|
+
assert self.delay is None and self.startAfter is None and self.count is None, "should set cron or other"
|
|
160
167
|
|
|
161
168
|
|
|
162
169
|
class Schedules(BaseModel):
|
|
@@ -189,11 +196,13 @@ class MainTask(BaseModel):
|
|
|
189
196
|
profileMode: Optional[str] = None
|
|
190
197
|
withLogs: bool = False # use only in prepare
|
|
191
198
|
saveFails: bool = True
|
|
199
|
+
scaleCount: int = 1
|
|
192
200
|
scaleInfo: List[ScaleInfo]
|
|
193
201
|
component: TaskComponent
|
|
194
202
|
policy: TaskPolicy
|
|
195
203
|
schedule: Optional[Schedule] = None
|
|
196
204
|
restrictions: Optional[Restrictions] = Restrictions()
|
|
205
|
+
tags: Optional[Dict[str, str]] = None
|
|
197
206
|
|
|
198
207
|
|
|
199
208
|
class MainPipeline(BaseModel):
|
|
@@ -218,6 +227,8 @@ class MainPipeline(BaseModel):
|
|
|
218
227
|
run: bool = True
|
|
219
228
|
synthetic: bool = False
|
|
220
229
|
saveFails: bool = True
|
|
230
|
+
scaleCount: int = 1
|
|
231
|
+
tags: Optional[Dict[str, str]] = None
|
|
221
232
|
|
|
222
233
|
|
|
223
234
|
class RunTask(Operation):
|
|
@@ -319,6 +330,10 @@ class ResultUserCfg(BaseModel):
|
|
|
319
330
|
id: Alias.Id
|
|
320
331
|
|
|
321
332
|
|
|
333
|
+
class ResultTags(BaseModel):
|
|
334
|
+
idToTags: Dict[str, Optional[Dict[str, str]]]
|
|
335
|
+
|
|
336
|
+
|
|
322
337
|
# TODO add smth from Cfg
|
|
323
338
|
class AppSettings(BaseModel):
|
|
324
339
|
taskId: Optional[Alias.Id] = None
|
|
@@ -420,6 +435,7 @@ class FunctionInfo(BaseModel):
|
|
|
420
435
|
arguments: List[Tuple[str, Optional[str]]]
|
|
421
436
|
finishMsg: Optional[str] = None
|
|
422
437
|
doc: Optional[str] = None
|
|
438
|
+
tags: Optional[Dict[str, str]] = None
|
|
423
439
|
|
|
424
440
|
|
|
425
441
|
class InputFunctionInfo(FunctionInfo):
|
|
@@ -448,6 +464,7 @@ class InitInfo(BaseModel):
|
|
|
448
464
|
prepare: bool
|
|
449
465
|
argname: Optional[str] = None
|
|
450
466
|
doc: Optional[str] = None
|
|
467
|
+
tags: Optional[Dict[str, str]] = None
|
|
451
468
|
|
|
452
469
|
|
|
453
470
|
class AppFunctionsInfo(BaseModel):
|
|
@@ -589,6 +606,7 @@ class BasePlatformSettings(BaseModel):
|
|
|
589
606
|
cpuLimit: Optional[int] = None
|
|
590
607
|
storageRequest: Optional[int] = None
|
|
591
608
|
storageLimit: Optional[int] = None
|
|
609
|
+
kubeconfig: Optional[str] = None
|
|
592
610
|
|
|
593
611
|
|
|
594
612
|
class Limits(BasePlatformSettings):
|
|
@@ -648,3 +666,8 @@ class MCPTool(MCPToolSimple):
|
|
|
648
666
|
class MCPToolCall(BaseModel):
|
|
649
667
|
name: str
|
|
650
668
|
arguments: Dict[str, Any]
|
|
669
|
+
|
|
670
|
+
|
|
671
|
+
class RunsFilter(BaseModel):
|
|
672
|
+
data: Optional[Dict[str, str]] = None
|
|
673
|
+
withTags: bool = False
|
|
@@ -1056,6 +1056,14 @@ async def get_run_activeRuns_async(*args, **kwargs) -> ResultIds:
|
|
|
1056
1056
|
return model_from_json(await send_to_core_get_async(TEMP_RUN_ACTIVE_RUNS, *args, **kwargs), ResultIds)
|
|
1057
1057
|
|
|
1058
1058
|
|
|
1059
|
+
def post_run_activeRuns(data: RunsFilter, *args, **kwargs) -> Union[ResultIds, ResultTags]:
|
|
1060
|
+
return model_from_json(send_to_core_modify(TEMP_RUN_ACTIVE_RUNS, data, *args, **kwargs), ResultTags if data.withTags else ResultIds)
|
|
1061
|
+
|
|
1062
|
+
|
|
1063
|
+
async def post_run_activeRuns_async(data: RunsFilter, *args, **kwargs) -> Union[ResultIds, ResultTags]:
|
|
1064
|
+
return model_from_json(await send_to_core_modify_async(TEMP_RUN_ACTIVE_RUNS, data, *args, **kwargs), ResultTags if data.withTags else ResultIds)
|
|
1065
|
+
|
|
1066
|
+
|
|
1059
1067
|
def get_run_mainTaskCfg(id: str, *args, **kwargs) -> MainTaskCfg:
|
|
1060
1068
|
return model_from_json(send_to_core_get(TEMP_RUN_MAIN_TASK_CFG(id), *args, **kwargs), MainTaskCfg)
|
|
1061
1069
|
|
|
@@ -332,6 +332,7 @@ def base_settings(
|
|
|
332
332
|
cpu_limit: Optional[int] = None,
|
|
333
333
|
storage_request: Optional[int] = None,
|
|
334
334
|
storage_limit: Optional[int] = None,
|
|
335
|
+
kubeconfig: Optional[str] = None,
|
|
335
336
|
) -> str:
|
|
336
337
|
return BasePlatformSettings(
|
|
337
338
|
memoryRequest=memory_request,
|
|
@@ -340,4 +341,5 @@ def base_settings(
|
|
|
340
341
|
cpuLimit=cpu_limit,
|
|
341
342
|
storageRequest=storage_request,
|
|
342
343
|
storageLimit=storage_limit,
|
|
344
|
+
kubeconfig=kubeconfig,
|
|
343
345
|
).model_dump_json()
|
|
@@ -2846,20 +2846,30 @@ def get_run_condition(
|
|
|
2846
2846
|
|
|
2847
2847
|
|
|
2848
2848
|
def get_run_active_runs(
|
|
2849
|
+
tags: Optional[Dict[str, str]] = None,
|
|
2850
|
+
with_tags: bool = False,
|
|
2849
2851
|
*,
|
|
2850
2852
|
auth: Optional[AUTH] = None,
|
|
2851
2853
|
conn_url: Optional[str] = None,
|
|
2852
2854
|
batcher: Optional[Batcher] = None,
|
|
2853
2855
|
is_async: bool = False,
|
|
2854
|
-
) -> ResultIds:
|
|
2855
|
-
"""return list running operationIds"""
|
|
2856
|
+
) -> Union[ResultIds, ResultTags]:
|
|
2857
|
+
"""return list running operationIds, filter by tags if set, return id -> tags if with_tags"""
|
|
2856
2858
|
if batcher is None:
|
|
2857
2859
|
batcher = Config.BATCHER
|
|
2858
|
-
if
|
|
2859
|
-
|
|
2860
|
-
|
|
2861
|
-
|
|
2862
|
-
|
|
2860
|
+
if tags is not None or with_tags:
|
|
2861
|
+
data = RunsFilter(data=tags, withTags=with_tags)
|
|
2862
|
+
if batcher is not None:
|
|
2863
|
+
return batcher.add("postActiveRuns", data=data, result_model=ResultTags if with_tags else ResultIds)
|
|
2864
|
+
if is_async:
|
|
2865
|
+
return f.post_run_activeRuns_async(data, auth=auth, conn_url=conn_url)
|
|
2866
|
+
return f.post_run_activeRuns(data, auth=auth, conn_url=conn_url)
|
|
2867
|
+
else:
|
|
2868
|
+
if batcher is not None:
|
|
2869
|
+
return batcher.add("getActiveRuns", result_model=ResultIds)
|
|
2870
|
+
if is_async:
|
|
2871
|
+
return f.get_run_activeRuns_async(auth=auth, conn_url=conn_url)
|
|
2872
|
+
return f.get_run_activeRuns(auth=auth, conn_url=conn_url)
|
|
2863
2873
|
|
|
2864
2874
|
|
|
2865
2875
|
def get_run_main_task_cfg(
|
|
@@ -3161,6 +3171,7 @@ def task_full(
|
|
|
3161
3171
|
policy: TaskPolicy = None,
|
|
3162
3172
|
schedule: Optional[Schedule] = None,
|
|
3163
3173
|
restrictions: Optional[Restrictions] = None,
|
|
3174
|
+
tags: Optional[Dict[str, str]] = None,
|
|
3164
3175
|
wait: bool = True,
|
|
3165
3176
|
*,
|
|
3166
3177
|
auth: Optional[AUTH] = None,
|
|
@@ -3188,6 +3199,8 @@ def task_full(
|
|
|
3188
3199
|
restrictions: (Optional[Restrictions]): permissions to handle deployment
|
|
3189
3200
|
wait (bool): is it worth waiting for the result or immediately return `operation_id`
|
|
3190
3201
|
auth (Optional[AUTH]): redefined auth if not None"""
|
|
3202
|
+
if schedule is not None:
|
|
3203
|
+
schedule.validate()
|
|
3191
3204
|
if batcher is None:
|
|
3192
3205
|
batcher = Config.BATCHER
|
|
3193
3206
|
if scaleInfo is None:
|
|
@@ -3217,6 +3230,7 @@ def task_full(
|
|
|
3217
3230
|
policy=policy,
|
|
3218
3231
|
schedule=schedule,
|
|
3219
3232
|
restrictions=restrictions,
|
|
3233
|
+
tags=tags,
|
|
3220
3234
|
)
|
|
3221
3235
|
if batcher is not None:
|
|
3222
3236
|
return batcher.add("sendTask", data=data, result_model=AppLogs)
|
|
@@ -3263,6 +3277,7 @@ def task_prepare(
|
|
|
3263
3277
|
component: TaskComponent = None,
|
|
3264
3278
|
policy: TaskPolicy = None,
|
|
3265
3279
|
restrictions: Optional[Restrictions] = None,
|
|
3280
|
+
tags: Optional[Dict[str, str]] = None,
|
|
3266
3281
|
wait: bool = True,
|
|
3267
3282
|
*,
|
|
3268
3283
|
auth: Optional[AUTH] = None,
|
|
@@ -3332,6 +3347,7 @@ def task_prepare(
|
|
|
3332
3347
|
component=component,
|
|
3333
3348
|
policy=policy,
|
|
3334
3349
|
restrictions=restrictions,
|
|
3350
|
+
tags=tags,
|
|
3335
3351
|
)
|
|
3336
3352
|
if batcher is not None:
|
|
3337
3353
|
return batcher.add("sendTask", data=data, result_model=AppLogs)
|
|
@@ -3393,6 +3409,8 @@ def task_run(
|
|
|
3393
3409
|
schedule: (Optional[Schedule]): schedule task runs settings - return scheduleId instead of operationId
|
|
3394
3410
|
wait (bool): is it worth waiting for the result or immediately return `operation_id`
|
|
3395
3411
|
auth (Optional[AUTH]): redefined auth if not None"""
|
|
3412
|
+
if schedule is not None:
|
|
3413
|
+
schedule.validate()
|
|
3396
3414
|
if batcher is None:
|
|
3397
3415
|
batcher = Config.BATCHER
|
|
3398
3416
|
if run_id is None:
|
|
@@ -3447,6 +3465,7 @@ def pipeline_full(
|
|
|
3447
3465
|
restrictions: Optional[Restrictions] = None,
|
|
3448
3466
|
scaleInfo: List[ScaleInfo] = None,
|
|
3449
3467
|
save_fails: bool = True,
|
|
3468
|
+
tags: Optional[Dict[str, str]] = None,
|
|
3450
3469
|
with_show: bool = True,
|
|
3451
3470
|
long: bool = False,
|
|
3452
3471
|
long_timeout: Optional[int] = WAIT_RESULT_TIMEOUT,
|
|
@@ -3458,6 +3477,8 @@ def pipeline_full(
|
|
|
3458
3477
|
batcher: Optional[Batcher] = None,
|
|
3459
3478
|
is_async: bool = False,
|
|
3460
3479
|
) -> Union[Alias.Id, AppLogs]:
|
|
3480
|
+
if schedule is not None:
|
|
3481
|
+
schedule.validate()
|
|
3461
3482
|
if batcher is None:
|
|
3462
3483
|
batcher = Config.BATCHER
|
|
3463
3484
|
if scaleInfo is None:
|
|
@@ -3489,6 +3510,8 @@ def pipeline_full(
|
|
|
3489
3510
|
kafkaModeUrl=None,
|
|
3490
3511
|
run=True,
|
|
3491
3512
|
saveFails=save_fails,
|
|
3513
|
+
scaleCount=1,
|
|
3514
|
+
tags=tags,
|
|
3492
3515
|
)
|
|
3493
3516
|
if batcher is not None:
|
|
3494
3517
|
return batcher.add("sendPipeline", data=data, result_model=AppLogs)
|
|
@@ -3535,6 +3558,8 @@ def pipeline_prepare(
|
|
|
3535
3558
|
kafka_mode_url_response: Optional[str] = None,
|
|
3536
3559
|
synthetic: bool = False,
|
|
3537
3560
|
save_fails: bool = True,
|
|
3561
|
+
scale_count: int = 1,
|
|
3562
|
+
tags: Optional[Dict[str, str]] = None,
|
|
3538
3563
|
with_show: bool = True,
|
|
3539
3564
|
long: bool = False,
|
|
3540
3565
|
long_timeout: Optional[int] = WAIT_RESULT_TIMEOUT,
|
|
@@ -3577,6 +3602,8 @@ def pipeline_prepare(
|
|
|
3577
3602
|
run=False,
|
|
3578
3603
|
synthetic=synthetic,
|
|
3579
3604
|
saveFails=save_fails,
|
|
3605
|
+
scaleCount=scale_count,
|
|
3606
|
+
tags=tags,
|
|
3580
3607
|
)
|
|
3581
3608
|
if batcher is not None:
|
|
3582
3609
|
return batcher.add("sendPipeline", data=data, result_model=AppLogs)
|
{malevich_coretools-0.3.44 → malevich_coretools-0.3.47/malevich_coretools.egg-info}/PKG-INFO
RENAMED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
Metadata-Version: 2.
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
2
|
Name: malevich-coretools
|
|
3
|
-
Version: 0.3.
|
|
3
|
+
Version: 0.3.47
|
|
4
4
|
Author: Andrew Pogrebnoj
|
|
5
5
|
Author-email: andrew@onjulius.co
|
|
6
6
|
License-File: LICENSE
|
|
@@ -11,4 +11,5 @@ Requires-Dist: aiohttp
|
|
|
11
11
|
Requires-Dist: kafka-python
|
|
12
12
|
Dynamic: author
|
|
13
13
|
Dynamic: author-email
|
|
14
|
+
Dynamic: license-file
|
|
14
15
|
Dynamic: requires-dist
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
0.3.44
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{malevich_coretools-0.3.44 → malevich_coretools-0.3.47}/malevich_coretools/abstract/__init__.py
RENAMED
|
File without changes
|
{malevich_coretools-0.3.44 → malevich_coretools-0.3.47}/malevich_coretools/abstract/operations.py
RENAMED
|
File without changes
|
{malevich_coretools-0.3.44 → malevich_coretools-0.3.47}/malevich_coretools/abstract/pipeline.py
RENAMED
|
File without changes
|
{malevich_coretools-0.3.44 → malevich_coretools-0.3.47}/malevich_coretools/abstract/statuses.py
RENAMED
|
File without changes
|
{malevich_coretools-0.3.44 → malevich_coretools-0.3.47}/malevich_coretools/admin/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{malevich_coretools-0.3.44 → malevich_coretools-0.3.47}/malevich_coretools/batch/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{malevich_coretools-0.3.44 → malevich_coretools-0.3.47}/malevich_coretools/funcs/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{malevich_coretools-0.3.44 → malevich_coretools-0.3.47}/malevich_coretools/secondary/__init__.py
RENAMED
|
File without changes
|
{malevich_coretools-0.3.44 → malevich_coretools-0.3.47}/malevich_coretools/secondary/config.py
RENAMED
|
File without changes
|
{malevich_coretools-0.3.44 → malevich_coretools-0.3.47}/malevich_coretools/secondary/const.py
RENAMED
|
File without changes
|
{malevich_coretools-0.3.44 → malevich_coretools-0.3.47}/malevich_coretools/secondary/helpers.py
RENAMED
|
File without changes
|
{malevich_coretools-0.3.44 → malevich_coretools-0.3.47}/malevich_coretools/secondary/kafka_utils.py
RENAMED
|
File without changes
|
{malevich_coretools-0.3.44 → malevich_coretools-0.3.47}/malevich_coretools/tools/__init__.py
RENAMED
|
File without changes
|
{malevich_coretools-0.3.44 → malevich_coretools-0.3.47}/malevich_coretools/tools/abstract.py
RENAMED
|
File without changes
|
|
File without changes
|
{malevich_coretools-0.3.44 → malevich_coretools-0.3.47}/malevich_coretools.egg-info/SOURCES.txt
RENAMED
|
File without changes
|
|
File without changes
|
{malevich_coretools-0.3.44 → malevich_coretools-0.3.47}/malevich_coretools.egg-info/requires.txt
RENAMED
|
File without changes
|
{malevich_coretools-0.3.44 → malevich_coretools-0.3.47}/malevich_coretools.egg-info/top_level.txt
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|