supervisely 6.73.438__py3-none-any.whl → 6.73.439__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.
supervisely/__init__.py CHANGED
@@ -318,3 +318,115 @@ except Exception as e:
318
318
  from supervisely.io.env import configure_minimum_instance_version
319
319
 
320
320
  configure_minimum_instance_version()
321
+
322
+ LARGE_ENV_PLACEHOLDER = "@.@SLY_LARGE_ENV@.@"
323
+
324
+
325
+ def restore_env_vars():
326
+ try:
327
+ large_env_keys = []
328
+ for key, value in os.environ.items():
329
+ if value == LARGE_ENV_PLACEHOLDER:
330
+ large_env_keys.append(key)
331
+ if len(large_env_keys) == 0:
332
+ return
333
+
334
+ if utils.is_development():
335
+ logger.info(
336
+ "Large environment variables detected. Skipping restoration in development mode.",
337
+ extra={"keys": large_env_keys},
338
+ )
339
+ return
340
+
341
+ unknown_keys = []
342
+ state_keys = []
343
+ context_keys = []
344
+ for key in large_env_keys:
345
+ if key == "CONTEXT" or key.startswith("context."):
346
+ context_keys.append(key)
347
+ elif key.startswith("MODAL_STATE") or key.startswith("modal.state."):
348
+ state_keys.append(key)
349
+ else:
350
+ unknown_keys.append(key)
351
+
352
+ if state_keys or context_keys:
353
+ api = Api()
354
+ if state_keys:
355
+ task_info = api.task.get_info_by_id(env.task_id())
356
+ state = task_info.get("meta", {}).get("params", {}).get("state", {})
357
+ modal_state_envs = json.flatten_json(state)
358
+ modal_state_envs = json.modify_keys(modal_state_envs, prefix="modal.state.")
359
+
360
+ restored_keys = []
361
+ not_found_keys = []
362
+ for key in state_keys:
363
+ if key == "MODAL_STATE":
364
+ os.environ[key] = json.json.dumps(state)
365
+ elif key in modal_state_envs:
366
+ os.environ[key] = str(modal_state_envs[key])
367
+ elif key.replace("_", ".") in [k.upper() for k in modal_state_envs]:
368
+ # some env vars do not support dots in their names
369
+ k = next(k for k in modal_state_envs if k.upper() == key.replace("_", "."))
370
+ os.environ[key] = str(modal_state_envs[k])
371
+ else:
372
+ not_found_keys.append(key)
373
+ continue
374
+ restored_keys.append(key)
375
+
376
+ if restored_keys:
377
+ logger.info(
378
+ "Restored large environment variables from task state",
379
+ extra={"keys": restored_keys},
380
+ )
381
+
382
+ if not_found_keys:
383
+ logger.warning(
384
+ "Failed to restore some large environment variables from task state. "
385
+ "No such keys in the state.",
386
+ extra={"keys": not_found_keys},
387
+ )
388
+
389
+ if context_keys:
390
+ context = api.task.get_context(env.task_id())
391
+ context_envs = json.flatten_json(context)
392
+ context_envs = json.modify_keys(context_envs, prefix="context.")
393
+
394
+ restored_keys = []
395
+ not_found_keys = []
396
+ for key in context_keys:
397
+ if key == "CONTEXT":
398
+ os.environ[key] = json.json.dumps(context)
399
+ elif key in context_envs:
400
+ os.environ[key] = context_envs[key]
401
+ else:
402
+ not_found_keys.append(key)
403
+ continue
404
+ restored_keys.append(key)
405
+
406
+ if restored_keys:
407
+ logger.info(
408
+ "Restored large environment variables from task context",
409
+ extra={"keys": restored_keys},
410
+ )
411
+
412
+ if not_found_keys:
413
+ logger.warning(
414
+ "Failed to restore some large environment variables from task context. "
415
+ "No such keys in the context.",
416
+ extra={"keys": not_found_keys},
417
+ )
418
+
419
+ if unknown_keys:
420
+ logger.warning(
421
+ "Found unknown large environment variables. Can't restore them.",
422
+ extra={"keys": unknown_keys},
423
+ )
424
+
425
+ except Exception as e:
426
+ logger.warning(
427
+ "Failed to restore large environment variables.",
428
+ exc_info=True,
429
+ )
430
+
431
+
432
+ restore_env_vars()
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: supervisely
3
- Version: 6.73.438
3
+ Version: 6.73.439
4
4
  Summary: Supervisely Python SDK.
5
5
  Home-page: https://github.com/supervisely/supervisely
6
6
  Author: Supervisely
@@ -1,5 +1,5 @@
1
1
  supervisely/README.md,sha256=XM-DiMC6To3I9RjQZ0c61905EFRR_jnCUx2q3uNR-X8,3331
2
- supervisely/__init__.py,sha256=ojclMFGrJk0YVXxFU5wcUOQINaeFQ_eiZ1-GzModiYs,11035
2
+ supervisely/__init__.py,sha256=_zh2UIxLUyf2krDKY-yurV9enqg1drEubCRX5nDlqR4,15333
3
3
  supervisely/_utils.py,sha256=59vOeNOnmVHODnlAvULT8jdwvHHVTs2FOtAFw8mvaqE,20643
4
4
  supervisely/function_wrapper.py,sha256=R5YajTQ0GnRp2vtjwfC9hINkzQc0JiyGsu8TER373xY,1912
5
5
  supervisely/sly_logger.py,sha256=z92Vu5hmC0GgTIJO1n6kPDayRW9__8ix8hL6poDZj-Y,6274
@@ -1126,10 +1126,10 @@ supervisely/worker_api/rpc_servicer.py,sha256=HHhwaH40dM67UIp0ujK4P-ayvl0mPHTiZ5
1126
1126
  supervisely/worker_proto/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
1127
1127
  supervisely/worker_proto/worker_api_pb2.py,sha256=VQfi5JRBHs2pFCK1snec3JECgGnua3Xjqw_-b3aFxuM,59142
1128
1128
  supervisely/worker_proto/worker_api_pb2_grpc.py,sha256=3BwQXOaP9qpdi0Dt9EKG--Lm8KGN0C5AgmUfRv77_Jk,28940
1129
- supervisely_lib/__init__.py,sha256=7-3QnN8Zf0wj8NCr2oJmqoQWMKKPKTECvjH9pd2S5vY,159
1130
- supervisely-6.73.438.dist-info/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
1131
- supervisely-6.73.438.dist-info/METADATA,sha256=xJe0Ap0FGTYAVYo7tSNMTzla8H72SYeAyLHf-B5d6iU,35433
1132
- supervisely-6.73.438.dist-info/WHEEL,sha256=iAkIy5fosb7FzIOwONchHf19Qu7_1wCWyFNR5gu9nU0,91
1133
- supervisely-6.73.438.dist-info/entry_points.txt,sha256=U96-5Hxrp2ApRjnCoUiUhWMqijqh8zLR03sEhWtAcms,102
1134
- supervisely-6.73.438.dist-info/top_level.txt,sha256=kcFVwb7SXtfqZifrZaSE3owHExX4gcNYe7Q2uoby084,28
1135
- supervisely-6.73.438.dist-info/RECORD,,
1129
+ supervisely_lib/__init__.py,sha256=yRwzEQmVwSd6lUQoAUdBngKEOlnoQ6hA9ZcoZGJRNC4,331
1130
+ supervisely-6.73.439.dist-info/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
1131
+ supervisely-6.73.439.dist-info/METADATA,sha256=ka6gwfc4dPZXyj_5xc2OSjv9UWP9jlwqMx_TS7qxaqU,35433
1132
+ supervisely-6.73.439.dist-info/WHEEL,sha256=iAkIy5fosb7FzIOwONchHf19Qu7_1wCWyFNR5gu9nU0,91
1133
+ supervisely-6.73.439.dist-info/entry_points.txt,sha256=U96-5Hxrp2ApRjnCoUiUhWMqijqh8zLR03sEhWtAcms,102
1134
+ supervisely-6.73.439.dist-info/top_level.txt,sha256=kcFVwb7SXtfqZifrZaSE3owHExX4gcNYe7Q2uoby084,28
1135
+ supervisely-6.73.439.dist-info/RECORD,,
@@ -1,6 +1,11 @@
1
1
  import sys
2
+
2
3
  import supervisely
3
4
  from supervisely import *
4
5
 
5
6
  sys.modules['supervisely_lib'] = supervisely
6
- sys.modules['supervisely_lib.api.api'] = supervisely.api
7
+
8
+ for module_name in list(sys.modules.keys()):
9
+ if module_name.startswith("supervisely."):
10
+ new_name = module_name.replace("supervisely.", "supervisely_lib.", 1)
11
+ sys.modules[new_name] = sys.modules[module_name]