ivoryos 1.3.8__py3-none-any.whl → 1.4.0__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.

Potentially problematic release.


This version of ivoryos might be problematic. Click here for more details.

Files changed (34) hide show
  1. ivoryos/optimizer/ax_optimizer.py +44 -25
  2. ivoryos/optimizer/base_optimizer.py +15 -1
  3. ivoryos/optimizer/baybe_optimizer.py +24 -17
  4. ivoryos/optimizer/nimo_optimizer.py +26 -24
  5. ivoryos/routes/data/data.py +27 -9
  6. ivoryos/routes/data/templates/components/step_card.html +47 -11
  7. ivoryos/routes/data/templates/workflow_view.html +14 -5
  8. ivoryos/routes/design/design.py +31 -1
  9. ivoryos/routes/design/design_step.py +2 -1
  10. ivoryos/routes/design/templates/components/edit_action_form.html +16 -3
  11. ivoryos/routes/design/templates/components/python_code_overlay.html +27 -10
  12. ivoryos/routes/design/templates/experiment_builder.html +1 -0
  13. ivoryos/routes/execute/execute.py +36 -7
  14. ivoryos/routes/execute/templates/components/run_tabs.html +45 -2
  15. ivoryos/routes/execute/templates/components/tab_bayesian.html +447 -325
  16. ivoryos/routes/execute/templates/components/tab_configuration.html +303 -18
  17. ivoryos/routes/execute/templates/components/tab_repeat.html +6 -2
  18. ivoryos/routes/execute/templates/experiment_run.html +0 -264
  19. ivoryos/socket_handlers.py +1 -1
  20. ivoryos/static/js/action_handlers.js +252 -118
  21. ivoryos/static/js/sortable_design.js +1 -0
  22. ivoryos/utils/bo_campaign.py +17 -16
  23. ivoryos/utils/db_models.py +122 -18
  24. ivoryos/utils/decorators.py +1 -0
  25. ivoryos/utils/form.py +22 -5
  26. ivoryos/utils/nest_script.py +314 -0
  27. ivoryos/utils/script_runner.py +447 -147
  28. ivoryos/utils/utils.py +11 -1
  29. ivoryos/version.py +1 -1
  30. {ivoryos-1.3.8.dist-info → ivoryos-1.4.0.dist-info}/METADATA +3 -2
  31. {ivoryos-1.3.8.dist-info → ivoryos-1.4.0.dist-info}/RECORD +34 -33
  32. {ivoryos-1.3.8.dist-info → ivoryos-1.4.0.dist-info}/WHEEL +0 -0
  33. {ivoryos-1.3.8.dist-info → ivoryos-1.4.0.dist-info}/licenses/LICENSE +0 -0
  34. {ivoryos-1.3.8.dist-info → ivoryos-1.4.0.dist-info}/top_level.txt +0 -0
ivoryos/utils/utils.py CHANGED
@@ -1,6 +1,7 @@
1
1
  import ast
2
2
  import importlib
3
3
  import inspect
4
+ import json
4
5
  import logging
5
6
  import os
6
7
  import pickle
@@ -380,6 +381,7 @@ def create_block_snapshot(save: bool = False, output_path: str = ''):
380
381
  block_snapshot[key][func_name] = {
381
382
  "signature": meta["signature"],
382
383
  "docstring": meta["docstring"],
384
+ "coroutine": meta["coroutine"],
383
385
  "path": f"{func.__module__}.{func.__qualname__}"
384
386
  }
385
387
  if block_snapshot:
@@ -444,4 +446,12 @@ def get_local_ip():
444
446
  ip = '127.0.0.1'
445
447
  finally:
446
448
  s.close()
447
- return ip
449
+ return ip
450
+
451
+
452
+ def safe_dump(obj):
453
+ try:
454
+ json.dumps(obj)
455
+ return obj
456
+ except (TypeError, OverflowError):
457
+ return repr(obj) # store readable representation
ivoryos/version.py CHANGED
@@ -1 +1 @@
1
- __version__ = "1.3.8"
1
+ __version__ = "1.4.0"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: ivoryos
3
- Version: 1.3.8
3
+ Version: 1.4.0
4
4
  Summary: an open-source Python package enabling Self-Driving Labs (SDLs) interoperability
5
5
  Author-email: Ivory Zhang <ivoryzhang@chem.ubc.ca>
6
6
  License: MIT
@@ -17,6 +17,7 @@ Requires-Dist: Flask-SQLAlchemy
17
17
  Requires-Dist: Flask-WTF
18
18
  Requires-Dist: SQLAlchemy-Utils
19
19
  Requires-Dist: python-dotenv
20
+ Requires-Dist: pandas
20
21
  Requires-Dist: astor; python_version < "3.9"
21
22
  Provides-Extra: optimizer-ax
22
23
  Requires-Dist: ax-platform; extra == "optimizer-ax"
@@ -26,7 +27,7 @@ Provides-Extra: optimizer-nimo
26
27
  Requires-Dist: nimo; extra == "optimizer-nimo"
27
28
  Provides-Extra: optimizer
28
29
  Requires-Dist: ax-platform>=1.1.2; extra == "optimizer"
29
- Requires-Dist: baybe; extra == "optimizer"
30
+ Requires-Dist: baybe>=0.14.0; extra == "optimizer"
30
31
  Provides-Extra: doc
31
32
  Requires-Dist: sphinx; extra == "doc"
32
33
  Requires-Dist: sphinx-rtd-theme; extra == "doc"
@@ -2,12 +2,12 @@ ivoryos/__init__.py,sha256=gEvBO2y5TRq06Itjjej3iAcq73UsihqKPWcb2HykPwM,463
2
2
  ivoryos/app.py,sha256=G6kzEOVzCduj7Fc2r1rMbMFHgDzZQV0lC20Oxps7RSM,4839
3
3
  ivoryos/config.py,sha256=y3RxNjiIola9tK7jg-mHM8EzLMwiLwOzoisXkDvj0gA,2174
4
4
  ivoryos/server.py,sha256=Idr41Boa8rPsh3bVJ8xy2Flwfxa1Xu6f2T0oMp4qBEk,7121
5
- ivoryos/socket_handlers.py,sha256=VWVWiIdm4jYAutwGu6R0t1nK5MuMyOCL0xAnFn06jWQ,1302
6
- ivoryos/version.py,sha256=47xEhOdVR5Y8-pZH8aVP6Z2UhhY8jGWTQ-rJHt5fIeU,22
7
- ivoryos/optimizer/ax_optimizer.py,sha256=k7RzhNMjh3MseOE-_FADVX72lYLDyXz-XE3juSBRWTk,7116
8
- ivoryos/optimizer/base_optimizer.py,sha256=gNBX9m3RxoYklwEBkqeDGZlU7c6e9e5kN0ZeTtnxnCE,2044
9
- ivoryos/optimizer/baybe_optimizer.py,sha256=EdrrRiYO-IOx610cPXiQhH4qG8knUP0uiZ0YoyaGIU8,7954
10
- ivoryos/optimizer/nimo_optimizer.py,sha256=J1nR1gMI4LqOkKqqdc5Pq7r3e3R8QQTJ-TZ9l9GVPQE,6696
5
+ ivoryos/socket_handlers.py,sha256=KSh8TxbLFTcmaa-lEb5rKJvOYjKgnGTtaKZST8Wh3b8,1326
6
+ ivoryos/version.py,sha256=8UhoYEXHs1Oai7BW_ExBmuwWnRI-yMG_u1fQAXMizHQ,22
7
+ ivoryos/optimizer/ax_optimizer.py,sha256=jdsMej_p-R0Ec3UdTYg0pCs9hlDScYRTfM3hyz38uVc,8253
8
+ ivoryos/optimizer/base_optimizer.py,sha256=QtF4NVqasKBbcUHuUV1vKnPuBU8b0TYufOOwIp2ZqLY,2582
9
+ ivoryos/optimizer/baybe_optimizer.py,sha256=aSB0FL_u_QucuslImGfYxIAAf9QAv3Pno_czjIfDzpk,8445
10
+ ivoryos/optimizer/nimo_optimizer.py,sha256=00gDjhPyTvappYrKnzoBvuo0F6CD3sefJobHS2kny30,6868
11
11
  ivoryos/optimizer/registry.py,sha256=dLMo5cszcwa06hfBxdINQIGpkHtRe5-J3J7t76Jq6X0,306
12
12
  ivoryos/routes/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
13
13
  ivoryos/routes/api/api.py,sha256=97Y7pqTwOaWgZgI5ovEPxEBm6Asrt0Iy0VhBkVp2xqA,2304
@@ -23,15 +23,15 @@ ivoryos/routes/control/utils.py,sha256=XlhhqAtOj7n3XfHPDxJ8TvCV2K2I2IixB0CBkl1Qe
23
23
  ivoryos/routes/control/templates/controllers.html,sha256=5hF3zcx5Rpy0Zaoq-5YGrR_TvPD9MGIa30fI4smEii0,9702
24
24
  ivoryos/routes/control/templates/controllers_new.html,sha256=eVeLABT39DWOIYrwWClw7sAD3lCoAGCznygPgFbQoRc,5945
25
25
  ivoryos/routes/data/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
26
- ivoryos/routes/data/data.py,sha256=2YqiUJuZOv13Z6wtqzZKBfeHHSjo5KrHRA-p6sZU5fo,5832
26
+ ivoryos/routes/data/data.py,sha256=MR7Vu7HB9dWjVr3cPwJbfIvTWs1Rqh2uXOPWIEFivzs,6399
27
27
  ivoryos/routes/data/templates/workflow_database.html,sha256=ofvHcovpwmJXo1SFiSrL8I9kLU_3U1UxsJUUrQ2CJUU,4878
28
- ivoryos/routes/data/templates/workflow_view.html,sha256=Ti17kzlPlYTmzx5MkdsPlXJ1_k6QgMYQBM6FHjG50go,12491
29
- ivoryos/routes/data/templates/components/step_card.html,sha256=XWsr7qxAY76RCuQHETubWjWBlPgs2HkviH4ju6qfBKo,1923
28
+ ivoryos/routes/data/templates/workflow_view.html,sha256=NljmhBVBUYfoOkuUWpVYUYsQkBFPbKlmzYFmFY7KHvY,13011
29
+ ivoryos/routes/data/templates/components/step_card.html,sha256=fxTg-1_Vw8b8QzAUXsPMfFgTmcHo8esAdLTUvK1cKVI,3726
30
30
  ivoryos/routes/design/__init__.py,sha256=zS3HXKaw0ALL5n6t_W1rUz5Uj5_tTQ-Y1VMXyzewvR0,113
31
- ivoryos/routes/design/design.py,sha256=HPjjoGH9mzSP6TxVNUYWgwhfzkpRt5BF38agL_tJvXk,18760
31
+ ivoryos/routes/design/design.py,sha256=n7768F60Nx04ST7yZSoKiNsoRFCwKjFsZvdzveoFLq0,20042
32
32
  ivoryos/routes/design/design_file.py,sha256=MVIc5uGSaGxZhs86hfPjX2n0iy1OcXeLq7b9Ucdg4VQ,2115
33
- ivoryos/routes/design/design_step.py,sha256=M3l37kP1kU4_bolLBU1MWJgEW0LUXojo9UdQgysZyXs,5943
34
- ivoryos/routes/design/templates/experiment_builder.html,sha256=hh-d2tOc_40gww5WfUYIf8sM3qBaALZnR8Sx7Ja4tpU,1623
33
+ ivoryos/routes/design/design_step.py,sha256=W2mFKMOkbSDBk4Gx9wRYcwjeru2mj-ub1l_K4hPRuZY,6031
34
+ ivoryos/routes/design/templates/experiment_builder.html,sha256=js00-lo1r3O9oY6nRI13-qFyQ2q5BhPsvOWlfPabFGA,1699
35
35
  ivoryos/routes/design/templates/components/action_form.html,sha256=kXJOrJLbFsMHHWVSuMQHpt1xFrUMnwgzTG8e6Qfn0Cg,3042
36
36
  ivoryos/routes/design/templates/components/actions_panel.html,sha256=jHTR58saTUIZInBdC-vLc1ZTbStLiULeWbupjB4hQzo,977
37
37
  ivoryos/routes/design/templates/components/autofill_toggle.html,sha256=CRVQUHoQT7sOSO5-Vax54ImHdT4G_mEgqR5OQkeUwK8,617
@@ -40,10 +40,10 @@ ivoryos/routes/design/templates/components/canvas_footer.html,sha256=5VRRacMZbzx
40
40
  ivoryos/routes/design/templates/components/canvas_header.html,sha256=7iIzLDGHX7MnmBbf98nWtLDprbeIgoNV4dJUO1zE4Tc,3598
41
41
  ivoryos/routes/design/templates/components/canvas_main.html,sha256=nLEtp3U2YtfJwob1kR8ua8-UVdu9hwc6z1L5UMNVz8c,1524
42
42
  ivoryos/routes/design/templates/components/deck_selector.html,sha256=ryTRpljYezo0AzGLCJu_qOMokjjnft3GIxddmNGtBA0,657
43
- ivoryos/routes/design/templates/components/edit_action_form.html,sha256=idhUKOqewIxgqMKYKLutqOjopKQVLvddB6uufoBA3Lo,1912
43
+ ivoryos/routes/design/templates/components/edit_action_form.html,sha256=1xL0wueewp_Hdua9DzYJBry09Qcchh4XgGmt4qPCwnc,2782
44
44
  ivoryos/routes/design/templates/components/instruments_panel.html,sha256=tRKd-wOqKjaMJCLuGgRmHtxIgSjklhBkuX8arm5aTCU,4268
45
45
  ivoryos/routes/design/templates/components/modals.html,sha256=6Dl8I8oD4ln7kK8C5e92pFVVH5KDte-vVTL0U_6NSTg,306
46
- ivoryos/routes/design/templates/components/python_code_overlay.html,sha256=GUHgsmUWQf0P1Fbg5W0OJC34TXCUIMQVUkS7KDoauyI,1264
46
+ ivoryos/routes/design/templates/components/python_code_overlay.html,sha256=Iyk-wOzk1x2997kqGt3uJONh_rpi5sCUs7VCRDg8Q9U,2150
47
47
  ivoryos/routes/design/templates/components/sidebar.html,sha256=A6dRo53zIB6QJVrRLJcBZHUNJ3qpYPnR3kWxM8gTkjw,501
48
48
  ivoryos/routes/design/templates/components/text_to_code_panel.html,sha256=d-omdXk-PXAR5AyWPr4Rc4pqsebZOiTiMrnz3pPCnUY,1197
49
49
  ivoryos/routes/design/templates/components/modals/drop_modal.html,sha256=LPxcycSiBjdQbajYOegjMQEi7ValcaczGoWmW8Sz3Ms,779
@@ -52,17 +52,17 @@ ivoryos/routes/design/templates/components/modals/new_script_modal.html,sha256=p
52
52
  ivoryos/routes/design/templates/components/modals/rename_modal.html,sha256=40rLNF9JprdXekB3mv_S3OdqVuQYOe-BZSCgOnIkxJQ,1202
53
53
  ivoryos/routes/design/templates/components/modals/saveas_modal.html,sha256=N5PEqUuK3qxDFbtDKFnzHwhLarQLPHiX-XQAdQPL1AU,1555
54
54
  ivoryos/routes/execute/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
55
- ivoryos/routes/execute/execute.py,sha256=jCdElrV_ufzWDgtQr0UT4Ura16nFHcNVq_DwcPM1Kmo,12447
55
+ ivoryos/routes/execute/execute.py,sha256=80m63cPxDhOVooKv56zTErcJekil7jm67XZfIWJs7Yg,13606
56
56
  ivoryos/routes/execute/execute_file.py,sha256=TelWYV295p4ZPhkUDJSVxfYROfVaKodEmDPTS2plQHI,2816
57
- ivoryos/routes/execute/templates/experiment_run.html,sha256=D-ek7ISQrIQXy4PH37TnsURihbGNdpCgdTC8w79cwQc,10355
57
+ ivoryos/routes/execute/templates/experiment_run.html,sha256=fvHRrG5ii1v5zPHL9N_ljDGHUo3t3amiproVPtnOFVE,944
58
58
  ivoryos/routes/execute/templates/components/error_modal.html,sha256=5Dmp9V0Ys6781Y-pKn_mc4N9J46c8EwIkjkHX22xCsw,1025
59
59
  ivoryos/routes/execute/templates/components/logging_panel.html,sha256=FllozlPd6o7uBd8eflGjRktPV435J3XgiEeLZugoUi0,1623
60
60
  ivoryos/routes/execute/templates/components/progress_panel.html,sha256=-nX76aFLxSOiYgI1xMjznC9rDYF-Vb92TmfjXYpBtps,1323
61
61
  ivoryos/routes/execute/templates/components/run_panel.html,sha256=CmK-LYJ4K6RonHn6l9eJkqRw0XQizThOugxiXZonSDs,373
62
- ivoryos/routes/execute/templates/components/run_tabs.html,sha256=u-msoTQPBGvyE_5_UczRtR9bh7zD3EvsgJhT77rTzOI,1145
63
- ivoryos/routes/execute/templates/components/tab_bayesian.html,sha256=5XTMHZzbGxcCZ2M0LSRqqmVh4qmu0R1MjCkT_FQ0ag0,21314
64
- ivoryos/routes/execute/templates/components/tab_configuration.html,sha256=JIHsYvwcYQZmJJz503NXnhcceKxd9B3JKFUSvGNWe_0,5131
65
- ivoryos/routes/execute/templates/components/tab_repeat.html,sha256=X-r7p78tVRrfwmAbhhZGBZbm78C4nTJS6O2A4dvzGEg,760
62
+ ivoryos/routes/execute/templates/components/run_tabs.html,sha256=HZUBQxJIigp9DgMvcxZOoR_pqz4ZW9kpxhbCjW6_dRg,2724
63
+ ivoryos/routes/execute/templates/components/tab_bayesian.html,sha256=oxtXWb5rUo88yTyyB9dZNxfzi0YanKy8NS9SBuiZKbI,24864
64
+ ivoryos/routes/execute/templates/components/tab_configuration.html,sha256=uZQfi8QLIGbCvgQR2M-fuFAjW4id9ANlYgBUbTJfaZw,14878
65
+ ivoryos/routes/execute/templates/components/tab_repeat.html,sha256=s8Q9Vuztf_h0vy97CBjHwgMdbaLQwall6StVdbL6FY8,989
66
66
  ivoryos/routes/library/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
67
67
  ivoryos/routes/library/library.py,sha256=QKeP34COssXDipn3d9yEn7pVPYbPb-eFg_X0C8JTvVQ,5387
68
68
  ivoryos/routes/library/templates/library.html,sha256=kMaQphkoGQdxIRcQmVcEIn8eghuv2AAClHpo7jGDVv8,4021
@@ -75,30 +75,31 @@ ivoryos/static/logo.webp,sha256=lXgfQR-4mHTH83k7VV9iB54-oC2ipe6uZvbwdOnLETc,1497
75
75
  ivoryos/static/style.css,sha256=zQVx35A5g6JMJ-K84-6fSKtzXGjp_p5ZVG6KLHPM2IE,4021
76
76
  ivoryos/static/gui_annotation/Slide1.png,sha256=Lm4gdOkUF5HIUFaB94tl6koQVkzpitKj43GXV_XYMMc,121727
77
77
  ivoryos/static/gui_annotation/Slide2.PNG,sha256=z3wQ9oVgg4JTWVLQGKK_KhtepRHUYP1e05XUWGT2A0I,118761
78
- ivoryos/static/js/action_handlers.js,sha256=MdYfXLRNSMAkfO_lkDb8Mr--MlZA7SluEQ5AB3Jqw7k,6704
78
+ ivoryos/static/js/action_handlers.js,sha256=VC_kHFk0KKE7Q20PNRSIyxUDgrl_-54Tr2w55JvlhCU,11512
79
79
  ivoryos/static/js/db_delete.js,sha256=l67fqUaN_FVDaL7v91Hd7LyRbxnqXx9nyjF34-7aewY,561
80
80
  ivoryos/static/js/overlay.js,sha256=dPxop19es0E0ZUSY3d_4exIk7CJuQEnlW5uTt5fZfzI,483
81
81
  ivoryos/static/js/script_metadata.js,sha256=m8VYZ8OGT2oTx1kXMXq60bKQI9WCbJNkzcFDzLvRuGc,1188
82
82
  ivoryos/static/js/socket_handler.js,sha256=5MGLj-nNA3053eBcko4MZAB5zq2mkgr1g__c_rr3cE8,6849
83
83
  ivoryos/static/js/sortable_card.js,sha256=ifmlGe3yy0U_KzMphV4ClRhK2DLOvkELYMlq1vECuac,807
84
- ivoryos/static/js/sortable_design.js,sha256=ASc9P6_423Mczeg6QH6LVtyxLyWhpxWJP2nEEjR9K1M,5474
84
+ ivoryos/static/js/sortable_design.js,sha256=ZezDxKtFxqmqSLfFy-HJ61LvQSXL36imYud6TIREs3U,5503
85
85
  ivoryos/static/js/ui_state.js,sha256=XYsOcfGlduqLlqHySvPrRrR50CiAsml51duqneigsRY,3368
86
86
  ivoryos/templates/base.html,sha256=cl5w6E8yskbUzdiJFal6fZjnPuFNKEzc7BrrbRd6bMI,8581
87
87
  ivoryos/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
88
- ivoryos/utils/bo_campaign.py,sha256=AqTE4aIUWL26P0-o1qvL2ms4MjYzNQABNxZFisxBsyg,9712
88
+ ivoryos/utils/bo_campaign.py,sha256=Z4WXJwbf1Hhg1dtlvhWHncBiq9Cuaf0BiqR60bWy36U,10038
89
89
  ivoryos/utils/client_proxy.py,sha256=74G3HAuq50iEHkSvlMZFmQaukm613FbRgOdzO_T3dMg,10191
90
- ivoryos/utils/db_models.py,sha256=TbOydX7rC1jGfei2mVYaexlE3lyq1Igb1VQuHJlMRKQ,31945
91
- ivoryos/utils/decorators.py,sha256=p1Bdl3dCeaHNv6-cCCUOZMiFu9kRaqqQnkFJUkzPoJE,991
92
- ivoryos/utils/form.py,sha256=f1yXHlOQX1YnJ2j_UW6iHmh4pTAGAs9sAlhyQB8yBIo,22505
90
+ ivoryos/utils/db_models.py,sha256=C0iTN_SuM3ew6CajuPpeqAusZGjaNrf6eCzRMtVi3fw,36641
91
+ ivoryos/utils/decorators.py,sha256=pcD8WijFjNfkNvr-wmJSWTHn_OqCOCpAO-7w_qg9_xM,1051
92
+ ivoryos/utils/form.py,sha256=I4Bikx4wDDPuq5tSP5b36yeOkp9GpJbK0fTJETOd79Q,23334
93
93
  ivoryos/utils/global_config.py,sha256=leYoEXvAS0AH4xQpYsqu4HI9CJ9-wiLM-pIh_bEG4Ak,3087
94
94
  ivoryos/utils/llm_agent.py,sha256=-lVCkjPlpLues9sNTmaT7bT4sdhWvV2DiojNwzB2Lcw,6422
95
+ ivoryos/utils/nest_script.py,sha256=kc4V0cBca5TviqQuquMFBF8Q5IjqKqj2R6g-_N6gMak,10645
95
96
  ivoryos/utils/py_to_json.py,sha256=ZtejHgwdEAUCVVMYeVNR8G7ceLINue294q6WpiJ6jn0,9734
96
- ivoryos/utils/script_runner.py,sha256=gIYdTEFNWZFmPf9cf31y3wAUKUeJk_qnjohYDKevWNw,20749
97
+ ivoryos/utils/script_runner.py,sha256=wz1vT7vcaPVq30oYXRbUS_ZUG8Gmk0PomsuFHMBjP90,34584
97
98
  ivoryos/utils/serilize.py,sha256=lkBhkz8r2bLmz2_xOb0c4ptSSOqjIu6krj5YYK4Nvj8,6784
98
99
  ivoryos/utils/task_runner.py,sha256=xiMzK8gQ0mHsg0A1Ah8fmXe3azpaJh4hJiQJLHA11ZQ,3682
99
- ivoryos/utils/utils.py,sha256=dIc4BO55eS3lCA0nhbIncS5d7sLaKZy5hJS1I_Sm45o,14949
100
- ivoryos-1.3.8.dist-info/licenses/LICENSE,sha256=p2c8S8i-8YqMpZCJnadLz1-ofxnRMILzz6NCMIypRag,1084
101
- ivoryos-1.3.8.dist-info/METADATA,sha256=bXrrHzrfiv_y7C9T4OGAJUYhCVtUoLDXP_9X0aEM_hU,8516
102
- ivoryos-1.3.8.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
103
- ivoryos-1.3.8.dist-info/top_level.txt,sha256=FRIWWdiEvRKqw-XfF_UK3XV0CrnNb6EmVbEgjaVazRM,8
104
- ivoryos-1.3.8.dist-info/RECORD,,
100
+ ivoryos/utils/utils.py,sha256=QUAeZYLBUl7iLOcIS89PC5vH2nnXAVX-MLDwNVaNFDg,15181
101
+ ivoryos-1.4.0.dist-info/licenses/LICENSE,sha256=p2c8S8i-8YqMpZCJnadLz1-ofxnRMILzz6NCMIypRag,1084
102
+ ivoryos-1.4.0.dist-info/METADATA,sha256=hmI02h6MUh2vsW0Wj559BCJzchoCn14uKVy4uzEBnTk,8546
103
+ ivoryos-1.4.0.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
104
+ ivoryos-1.4.0.dist-info/top_level.txt,sha256=FRIWWdiEvRKqw-XfF_UK3XV0CrnNb6EmVbEgjaVazRM,8
105
+ ivoryos-1.4.0.dist-info/RECORD,,