mplang-nightly 0.1.dev280__tar.gz → 0.1.dev282__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.
Files changed (216) hide show
  1. {mplang_nightly-0.1.dev280 → mplang_nightly-0.1.dev282}/PKG-INFO +1 -1
  2. {mplang_nightly-0.1.dev280 → mplang_nightly-0.1.dev282}/mplang/backends/channel.py +5 -4
  3. {mplang_nightly-0.1.dev280 → mplang_nightly-0.1.dev282}/mplang/backends/simp_worker/http.py +21 -11
  4. {mplang_nightly-0.1.dev280 → mplang_nightly-0.1.dev282}/mplang/backends/simp_worker/mem.py +1 -1
  5. {mplang_nightly-0.1.dev280 → mplang_nightly-0.1.dev282}/.gitignore +0 -0
  6. {mplang_nightly-0.1.dev280 → mplang_nightly-0.1.dev282}/LICENSE +0 -0
  7. {mplang_nightly-0.1.dev280 → mplang_nightly-0.1.dev282}/README.md +0 -0
  8. {mplang_nightly-0.1.dev280 → mplang_nightly-0.1.dev282}/examples/.gitkeep +0 -0
  9. {mplang_nightly-0.1.dev280 → mplang_nightly-0.1.dev282}/hatch_build.py +0 -0
  10. {mplang_nightly-0.1.dev280 → mplang_nightly-0.1.dev282}/mplang/__init__.py +0 -0
  11. {mplang_nightly-0.1.dev280 → mplang_nightly-0.1.dev282}/mplang/backends/__init__.py +0 -0
  12. {mplang_nightly-0.1.dev280 → mplang_nightly-0.1.dev282}/mplang/backends/bfv_impl.py +0 -0
  13. {mplang_nightly-0.1.dev280 → mplang_nightly-0.1.dev282}/mplang/backends/crypto_impl.py +0 -0
  14. {mplang_nightly-0.1.dev280 → mplang_nightly-0.1.dev282}/mplang/backends/field_impl.py +0 -0
  15. {mplang_nightly-0.1.dev280 → mplang_nightly-0.1.dev282}/mplang/backends/func_impl.py +0 -0
  16. {mplang_nightly-0.1.dev280 → mplang_nightly-0.1.dev282}/mplang/backends/phe_impl.py +0 -0
  17. {mplang_nightly-0.1.dev280 → mplang_nightly-0.1.dev282}/mplang/backends/simp_design.md +0 -0
  18. {mplang_nightly-0.1.dev280 → mplang_nightly-0.1.dev282}/mplang/backends/simp_driver/__init__.py +0 -0
  19. {mplang_nightly-0.1.dev280 → mplang_nightly-0.1.dev282}/mplang/backends/simp_driver/http.py +0 -0
  20. {mplang_nightly-0.1.dev280 → mplang_nightly-0.1.dev282}/mplang/backends/simp_driver/mem.py +0 -0
  21. {mplang_nightly-0.1.dev280 → mplang_nightly-0.1.dev282}/mplang/backends/simp_driver/ops.py +0 -0
  22. {mplang_nightly-0.1.dev280 → mplang_nightly-0.1.dev282}/mplang/backends/simp_driver/state.py +0 -0
  23. {mplang_nightly-0.1.dev280 → mplang_nightly-0.1.dev282}/mplang/backends/simp_driver/values.py +0 -0
  24. {mplang_nightly-0.1.dev280 → mplang_nightly-0.1.dev282}/mplang/backends/simp_worker/__init__.py +0 -0
  25. {mplang_nightly-0.1.dev280 → mplang_nightly-0.1.dev282}/mplang/backends/simp_worker/ops.py +0 -0
  26. {mplang_nightly-0.1.dev280 → mplang_nightly-0.1.dev282}/mplang/backends/simp_worker/state.py +0 -0
  27. {mplang_nightly-0.1.dev280 → mplang_nightly-0.1.dev282}/mplang/backends/spu_impl.py +0 -0
  28. {mplang_nightly-0.1.dev280 → mplang_nightly-0.1.dev282}/mplang/backends/spu_state.py +0 -0
  29. {mplang_nightly-0.1.dev280 → mplang_nightly-0.1.dev282}/mplang/backends/store_impl.py +0 -0
  30. {mplang_nightly-0.1.dev280 → mplang_nightly-0.1.dev282}/mplang/backends/table_impl.py +0 -0
  31. {mplang_nightly-0.1.dev280 → mplang_nightly-0.1.dev282}/mplang/backends/tee_impl.py +0 -0
  32. {mplang_nightly-0.1.dev280 → mplang_nightly-0.1.dev282}/mplang/backends/tensor_impl.py +0 -0
  33. {mplang_nightly-0.1.dev280 → mplang_nightly-0.1.dev282}/mplang/cli.py +0 -0
  34. {mplang_nightly-0.1.dev280 → mplang_nightly-0.1.dev282}/mplang/cli_guide.md +0 -0
  35. {mplang_nightly-0.1.dev280 → mplang_nightly-0.1.dev282}/mplang/dialects/__init__.py +0 -0
  36. {mplang_nightly-0.1.dev280 → mplang_nightly-0.1.dev282}/mplang/dialects/bfv.py +0 -0
  37. {mplang_nightly-0.1.dev280 → mplang_nightly-0.1.dev282}/mplang/dialects/crypto.py +0 -0
  38. {mplang_nightly-0.1.dev280 → mplang_nightly-0.1.dev282}/mplang/dialects/dtypes.py +0 -0
  39. {mplang_nightly-0.1.dev280 → mplang_nightly-0.1.dev282}/mplang/dialects/field.py +0 -0
  40. {mplang_nightly-0.1.dev280 → mplang_nightly-0.1.dev282}/mplang/dialects/func.py +0 -0
  41. {mplang_nightly-0.1.dev280 → mplang_nightly-0.1.dev282}/mplang/dialects/phe.py +0 -0
  42. {mplang_nightly-0.1.dev280 → mplang_nightly-0.1.dev282}/mplang/dialects/simp.py +0 -0
  43. {mplang_nightly-0.1.dev280 → mplang_nightly-0.1.dev282}/mplang/dialects/spu.py +0 -0
  44. {mplang_nightly-0.1.dev280 → mplang_nightly-0.1.dev282}/mplang/dialects/store.py +0 -0
  45. {mplang_nightly-0.1.dev280 → mplang_nightly-0.1.dev282}/mplang/dialects/table.py +0 -0
  46. {mplang_nightly-0.1.dev280 → mplang_nightly-0.1.dev282}/mplang/dialects/tee.py +0 -0
  47. {mplang_nightly-0.1.dev280 → mplang_nightly-0.1.dev282}/mplang/dialects/tensor.py +0 -0
  48. {mplang_nightly-0.1.dev280 → mplang_nightly-0.1.dev282}/mplang/edsl/README.md +0 -0
  49. {mplang_nightly-0.1.dev280 → mplang_nightly-0.1.dev282}/mplang/edsl/__init__.py +0 -0
  50. {mplang_nightly-0.1.dev280 → mplang_nightly-0.1.dev282}/mplang/edsl/context.py +0 -0
  51. {mplang_nightly-0.1.dev280 → mplang_nightly-0.1.dev282}/mplang/edsl/graph.py +0 -0
  52. {mplang_nightly-0.1.dev280 → mplang_nightly-0.1.dev282}/mplang/edsl/jit.py +0 -0
  53. {mplang_nightly-0.1.dev280 → mplang_nightly-0.1.dev282}/mplang/edsl/object.py +0 -0
  54. {mplang_nightly-0.1.dev280 → mplang_nightly-0.1.dev282}/mplang/edsl/primitive.py +0 -0
  55. {mplang_nightly-0.1.dev280 → mplang_nightly-0.1.dev282}/mplang/edsl/printer.py +0 -0
  56. {mplang_nightly-0.1.dev280 → mplang_nightly-0.1.dev282}/mplang/edsl/program.py +0 -0
  57. {mplang_nightly-0.1.dev280 → mplang_nightly-0.1.dev282}/mplang/edsl/registry.py +0 -0
  58. {mplang_nightly-0.1.dev280 → mplang_nightly-0.1.dev282}/mplang/edsl/serde.py +0 -0
  59. {mplang_nightly-0.1.dev280 → mplang_nightly-0.1.dev282}/mplang/edsl/tracer.py +0 -0
  60. {mplang_nightly-0.1.dev280 → mplang_nightly-0.1.dev282}/mplang/edsl/typing.py +0 -0
  61. {mplang_nightly-0.1.dev280 → mplang_nightly-0.1.dev282}/mplang/kernels/Makefile +0 -0
  62. {mplang_nightly-0.1.dev280 → mplang_nightly-0.1.dev282}/mplang/kernels/__init__.py +0 -0
  63. {mplang_nightly-0.1.dev280 → mplang_nightly-0.1.dev282}/mplang/kernels/gf128.cpp +0 -0
  64. {mplang_nightly-0.1.dev280 → mplang_nightly-0.1.dev282}/mplang/kernels/ldpc.cpp +0 -0
  65. {mplang_nightly-0.1.dev280 → mplang_nightly-0.1.dev282}/mplang/kernels/okvs.cpp +0 -0
  66. {mplang_nightly-0.1.dev280 → mplang_nightly-0.1.dev282}/mplang/kernels/okvs_opt.cpp +0 -0
  67. {mplang_nightly-0.1.dev280 → mplang_nightly-0.1.dev282}/mplang/kernels/py_kernels.py +0 -0
  68. {mplang_nightly-0.1.dev280 → mplang_nightly-0.1.dev282}/mplang/libs/collective.py +0 -0
  69. {mplang_nightly-0.1.dev280 → mplang_nightly-0.1.dev282}/mplang/libs/device/__init__.py +0 -0
  70. {mplang_nightly-0.1.dev280 → mplang_nightly-0.1.dev282}/mplang/libs/device/api.py +0 -0
  71. {mplang_nightly-0.1.dev280 → mplang_nightly-0.1.dev282}/mplang/libs/device/cluster.py +0 -0
  72. {mplang_nightly-0.1.dev280 → mplang_nightly-0.1.dev282}/mplang/libs/ml/__init__.py +0 -0
  73. {mplang_nightly-0.1.dev280 → mplang_nightly-0.1.dev282}/mplang/libs/ml/sgb.py +0 -0
  74. {mplang_nightly-0.1.dev280 → mplang_nightly-0.1.dev282}/mplang/libs/mpc/__init__.py +0 -0
  75. {mplang_nightly-0.1.dev280 → mplang_nightly-0.1.dev282}/mplang/libs/mpc/_utils.py +0 -0
  76. {mplang_nightly-0.1.dev280 → mplang_nightly-0.1.dev282}/mplang/libs/mpc/analytics/__init__.py +0 -0
  77. {mplang_nightly-0.1.dev280 → mplang_nightly-0.1.dev282}/mplang/libs/mpc/analytics/aggregation.py +0 -0
  78. {mplang_nightly-0.1.dev280 → mplang_nightly-0.1.dev282}/mplang/libs/mpc/analytics/groupby.md +0 -0
  79. {mplang_nightly-0.1.dev280 → mplang_nightly-0.1.dev282}/mplang/libs/mpc/analytics/groupby.py +0 -0
  80. {mplang_nightly-0.1.dev280 → mplang_nightly-0.1.dev282}/mplang/libs/mpc/analytics/permutation.py +0 -0
  81. {mplang_nightly-0.1.dev280 → mplang_nightly-0.1.dev282}/mplang/libs/mpc/common/constants.py +0 -0
  82. {mplang_nightly-0.1.dev280 → mplang_nightly-0.1.dev282}/mplang/libs/mpc/ot/__init__.py +0 -0
  83. {mplang_nightly-0.1.dev280 → mplang_nightly-0.1.dev282}/mplang/libs/mpc/ot/base.py +0 -0
  84. {mplang_nightly-0.1.dev280 → mplang_nightly-0.1.dev282}/mplang/libs/mpc/ot/extension.py +0 -0
  85. {mplang_nightly-0.1.dev280 → mplang_nightly-0.1.dev282}/mplang/libs/mpc/ot/silent.py +0 -0
  86. {mplang_nightly-0.1.dev280 → mplang_nightly-0.1.dev282}/mplang/libs/mpc/psi/__init__.py +0 -0
  87. {mplang_nightly-0.1.dev280 → mplang_nightly-0.1.dev282}/mplang/libs/mpc/psi/cuckoo.py +0 -0
  88. {mplang_nightly-0.1.dev280 → mplang_nightly-0.1.dev282}/mplang/libs/mpc/psi/okvs.py +0 -0
  89. {mplang_nightly-0.1.dev280 → mplang_nightly-0.1.dev282}/mplang/libs/mpc/psi/okvs_gct.py +0 -0
  90. {mplang_nightly-0.1.dev280 → mplang_nightly-0.1.dev282}/mplang/libs/mpc/psi/oprf.py +0 -0
  91. {mplang_nightly-0.1.dev280 → mplang_nightly-0.1.dev282}/mplang/libs/mpc/psi/rr22.py +0 -0
  92. {mplang_nightly-0.1.dev280 → mplang_nightly-0.1.dev282}/mplang/libs/mpc/psi/unbalanced.py +0 -0
  93. {mplang_nightly-0.1.dev280 → mplang_nightly-0.1.dev282}/mplang/libs/mpc/vole/__init__.py +0 -0
  94. {mplang_nightly-0.1.dev280 → mplang_nightly-0.1.dev282}/mplang/libs/mpc/vole/gilboa.py +0 -0
  95. {mplang_nightly-0.1.dev280 → mplang_nightly-0.1.dev282}/mplang/libs/mpc/vole/ldpc.py +0 -0
  96. {mplang_nightly-0.1.dev280 → mplang_nightly-0.1.dev282}/mplang/libs/mpc/vole/silver.py +0 -0
  97. {mplang_nightly-0.1.dev280 → mplang_nightly-0.1.dev282}/mplang/py.typed +0 -0
  98. {mplang_nightly-0.1.dev280 → mplang_nightly-0.1.dev282}/mplang/runtime/__init__.py +0 -0
  99. {mplang_nightly-0.1.dev280 → mplang_nightly-0.1.dev282}/mplang/runtime/dialect_state.py +0 -0
  100. {mplang_nightly-0.1.dev280 → mplang_nightly-0.1.dev282}/mplang/runtime/interpreter.py +0 -0
  101. {mplang_nightly-0.1.dev280 → mplang_nightly-0.1.dev282}/mplang/runtime/object_store.py +0 -0
  102. {mplang_nightly-0.1.dev280 → mplang_nightly-0.1.dev282}/mplang/runtime/value.py +0 -0
  103. {mplang_nightly-0.1.dev280 → mplang_nightly-0.1.dev282}/mplang/tool/__init__.py +0 -0
  104. {mplang_nightly-0.1.dev280 → mplang_nightly-0.1.dev282}/mplang/tool/program.py +0 -0
  105. {mplang_nightly-0.1.dev280 → mplang_nightly-0.1.dev282}/mplang/utils/__init__.py +0 -0
  106. {mplang_nightly-0.1.dev280 → mplang_nightly-0.1.dev282}/mplang/utils/func_utils.py +0 -0
  107. {mplang_nightly-0.1.dev280 → mplang_nightly-0.1.dev282}/mplang/utils/logging.py +0 -0
  108. {mplang_nightly-0.1.dev280 → mplang_nightly-0.1.dev282}/pyproject.toml +0 -0
  109. {mplang_nightly-0.1.dev280 → mplang_nightly-0.1.dev282}/tests/__init__.py +0 -0
  110. {mplang_nightly-0.1.dev280 → mplang_nightly-0.1.dev282}/tests/backends/__init__.py +0 -0
  111. {mplang_nightly-0.1.dev280 → mplang_nightly-0.1.dev282}/tests/backends/simp_driver/__init__.py +0 -0
  112. {mplang_nightly-0.1.dev280 → mplang_nightly-0.1.dev282}/tests/backends/simp_driver/test_http.py +0 -0
  113. {mplang_nightly-0.1.dev280 → mplang_nightly-0.1.dev282}/tests/backends/simp_worker/__init__.py +0 -0
  114. {mplang_nightly-0.1.dev280 → mplang_nightly-0.1.dev282}/tests/backends/simp_worker/test_http.py +0 -0
  115. {mplang_nightly-0.1.dev280 → mplang_nightly-0.1.dev282}/tests/backends/simp_worker/test_mem.py +0 -0
  116. {mplang_nightly-0.1.dev280 → mplang_nightly-0.1.dev282}/tests/backends/simp_worker/test_shuffle_exec_id_key.py +0 -0
  117. {mplang_nightly-0.1.dev280 → mplang_nightly-0.1.dev282}/tests/backends/test_bfv_impl.py +0 -0
  118. {mplang_nightly-0.1.dev280 → mplang_nightly-0.1.dev282}/tests/backends/test_channel.py +0 -0
  119. {mplang_nightly-0.1.dev280 → mplang_nightly-0.1.dev282}/tests/backends/test_crypto_impl.py +0 -0
  120. {mplang_nightly-0.1.dev280 → mplang_nightly-0.1.dev282}/tests/backends/test_okvs_binding.py +0 -0
  121. {mplang_nightly-0.1.dev280 → mplang_nightly-0.1.dev282}/tests/backends/test_simp_integration.py +0 -0
  122. {mplang_nightly-0.1.dev280 → mplang_nightly-0.1.dev282}/tests/backends/test_simp_object_store.py +0 -0
  123. {mplang_nightly-0.1.dev280 → mplang_nightly-0.1.dev282}/tests/backends/test_spu_impl.py +0 -0
  124. {mplang_nightly-0.1.dev280 → mplang_nightly-0.1.dev282}/tests/backends/test_table_impl.py +0 -0
  125. {mplang_nightly-0.1.dev280 → mplang_nightly-0.1.dev282}/tests/backends/test_tee_impl.py +0 -0
  126. {mplang_nightly-0.1.dev280 → mplang_nightly-0.1.dev282}/tests/backends/test_tensor_impl.py +0 -0
  127. {mplang_nightly-0.1.dev280 → mplang_nightly-0.1.dev282}/tests/backends/test_verify_clean.py +0 -0
  128. {mplang_nightly-0.1.dev280 → mplang_nightly-0.1.dev282}/tests/conftest.py +0 -0
  129. {mplang_nightly-0.1.dev280 → mplang_nightly-0.1.dev282}/tests/dialects/__init__.py +0 -0
  130. {mplang_nightly-0.1.dev280 → mplang_nightly-0.1.dev282}/tests/dialects/test_bfv.py +0 -0
  131. {mplang_nightly-0.1.dev280 → mplang_nightly-0.1.dev282}/tests/dialects/test_crypto.py +0 -0
  132. {mplang_nightly-0.1.dev280 → mplang_nightly-0.1.dev282}/tests/dialects/test_dtypes.py +0 -0
  133. {mplang_nightly-0.1.dev280 → mplang_nightly-0.1.dev282}/tests/dialects/test_field.py +0 -0
  134. {mplang_nightly-0.1.dev280 → mplang_nightly-0.1.dev282}/tests/dialects/test_func.py +0 -0
  135. {mplang_nightly-0.1.dev280 → mplang_nightly-0.1.dev282}/tests/dialects/test_okvs.py +0 -0
  136. {mplang_nightly-0.1.dev280 → mplang_nightly-0.1.dev282}/tests/dialects/test_okvs_bench.py +0 -0
  137. {mplang_nightly-0.1.dev280 → mplang_nightly-0.1.dev282}/tests/dialects/test_phe.py +0 -0
  138. {mplang_nightly-0.1.dev280 → mplang_nightly-0.1.dev282}/tests/dialects/test_simp.py +0 -0
  139. {mplang_nightly-0.1.dev280 → mplang_nightly-0.1.dev282}/tests/dialects/test_simp_comm.py +0 -0
  140. {mplang_nightly-0.1.dev280 → mplang_nightly-0.1.dev282}/tests/dialects/test_spu.py +0 -0
  141. {mplang_nightly-0.1.dev280 → mplang_nightly-0.1.dev282}/tests/dialects/test_store.py +0 -0
  142. {mplang_nightly-0.1.dev280 → mplang_nightly-0.1.dev282}/tests/dialects/test_table.py +0 -0
  143. {mplang_nightly-0.1.dev280 → mplang_nightly-0.1.dev282}/tests/dialects/test_tee.py +0 -0
  144. {mplang_nightly-0.1.dev280 → mplang_nightly-0.1.dev282}/tests/dialects/test_tensor.py +0 -0
  145. {mplang_nightly-0.1.dev280 → mplang_nightly-0.1.dev282}/tests/edsl/__init__.py +0 -0
  146. {mplang_nightly-0.1.dev280 → mplang_nightly-0.1.dev282}/tests/edsl/test_compiled_program_artifact.py +0 -0
  147. {mplang_nightly-0.1.dev280 → mplang_nightly-0.1.dev282}/tests/edsl/test_context.py +0 -0
  148. {mplang_nightly-0.1.dev280 → mplang_nightly-0.1.dev282}/tests/edsl/test_graph.py +0 -0
  149. {mplang_nightly-0.1.dev280 → mplang_nightly-0.1.dev282}/tests/edsl/test_primitive.py +0 -0
  150. {mplang_nightly-0.1.dev280 → mplang_nightly-0.1.dev282}/tests/edsl/test_primitive_multi_output.py +0 -0
  151. {mplang_nightly-0.1.dev280 → mplang_nightly-0.1.dev282}/tests/edsl/test_printer.py +0 -0
  152. {mplang_nightly-0.1.dev280 → mplang_nightly-0.1.dev282}/tests/edsl/test_serde.py +0 -0
  153. {mplang_nightly-0.1.dev280 → mplang_nightly-0.1.dev282}/tests/edsl/test_tracer.py +0 -0
  154. {mplang_nightly-0.1.dev280 → mplang_nightly-0.1.dev282}/tests/edsl/test_typing.py +0 -0
  155. {mplang_nightly-0.1.dev280 → mplang_nightly-0.1.dev282}/tests/edsl/test_typing_graph_serde.py +0 -0
  156. {mplang_nightly-0.1.dev280 → mplang_nightly-0.1.dev282}/tests/libs/device/__init__.py +0 -0
  157. {mplang_nightly-0.1.dev280 → mplang_nightly-0.1.dev282}/tests/libs/device/conftest.py +0 -0
  158. {mplang_nightly-0.1.dev280 → mplang_nightly-0.1.dev282}/tests/libs/device/test_device_api_errors.py +0 -0
  159. {mplang_nightly-0.1.dev280 → mplang_nightly-0.1.dev282}/tests/libs/device/test_device_dialects.py +0 -0
  160. {mplang_nightly-0.1.dev280 → mplang_nightly-0.1.dev282}/tests/libs/device/test_device_layouts.py +0 -0
  161. {mplang_nightly-0.1.dev280 → mplang_nightly-0.1.dev282}/tests/libs/device/test_device_tee.py +0 -0
  162. {mplang_nightly-0.1.dev280 → mplang_nightly-0.1.dev282}/tests/libs/ml/__init__.py +0 -0
  163. {mplang_nightly-0.1.dev280 → mplang_nightly-0.1.dev282}/tests/libs/ml/test_sgb.py +0 -0
  164. {mplang_nightly-0.1.dev280 → mplang_nightly-0.1.dev282}/tests/libs/ml/test_sgb_bench.py +0 -0
  165. {mplang_nightly-0.1.dev280 → mplang_nightly-0.1.dev282}/tests/libs/mpc/__init__.py +0 -0
  166. {mplang_nightly-0.1.dev280 → mplang_nightly-0.1.dev282}/tests/libs/mpc/analytics/__init__.py +0 -0
  167. {mplang_nightly-0.1.dev280 → mplang_nightly-0.1.dev282}/tests/libs/mpc/analytics/test_aggregation.py +0 -0
  168. {mplang_nightly-0.1.dev280 → mplang_nightly-0.1.dev282}/tests/libs/mpc/analytics/test_groupby.py +0 -0
  169. {mplang_nightly-0.1.dev280 → mplang_nightly-0.1.dev282}/tests/libs/mpc/analytics/test_permutation.py +0 -0
  170. {mplang_nightly-0.1.dev280 → mplang_nightly-0.1.dev282}/tests/libs/mpc/ot/__init__.py +0 -0
  171. {mplang_nightly-0.1.dev280 → mplang_nightly-0.1.dev282}/tests/libs/mpc/ot/test_ot.py +0 -0
  172. {mplang_nightly-0.1.dev280 → mplang_nightly-0.1.dev282}/tests/libs/mpc/ot/test_ot_extension.py +0 -0
  173. {mplang_nightly-0.1.dev280 → mplang_nightly-0.1.dev282}/tests/libs/mpc/ot/test_silent_ot.py +0 -0
  174. {mplang_nightly-0.1.dev280 → mplang_nightly-0.1.dev282}/tests/libs/mpc/psi/__init__.py +0 -0
  175. {mplang_nightly-0.1.dev280 → mplang_nightly-0.1.dev282}/tests/libs/mpc/psi/test_okvs_gct.py +0 -0
  176. {mplang_nightly-0.1.dev280 → mplang_nightly-0.1.dev282}/tests/libs/mpc/psi/test_oprf.py +0 -0
  177. {mplang_nightly-0.1.dev280 → mplang_nightly-0.1.dev282}/tests/libs/mpc/psi/test_psi.py +0 -0
  178. {mplang_nightly-0.1.dev280 → mplang_nightly-0.1.dev282}/tests/libs/mpc/psi/test_psi_bench.py +0 -0
  179. {mplang_nightly-0.1.dev280 → mplang_nightly-0.1.dev282}/tests/libs/mpc/psi/test_rr22.py +0 -0
  180. {mplang_nightly-0.1.dev280 → mplang_nightly-0.1.dev282}/tests/libs/mpc/psi/verify_psi_okvs_logic.py +0 -0
  181. {mplang_nightly-0.1.dev280 → mplang_nightly-0.1.dev282}/tests/libs/mpc/test_field_gf128.py +0 -0
  182. {mplang_nightly-0.1.dev280 → mplang_nightly-0.1.dev282}/tests/libs/mpc/test_utils.py +0 -0
  183. {mplang_nightly-0.1.dev280 → mplang_nightly-0.1.dev282}/tests/libs/mpc/vole/__init__.py +0 -0
  184. {mplang_nightly-0.1.dev280 → mplang_nightly-0.1.dev282}/tests/libs/mpc/vole/test_gilboa_manual.py +0 -0
  185. {mplang_nightly-0.1.dev280 → mplang_nightly-0.1.dev282}/tests/libs/mpc/vole/test_ldpc.py +0 -0
  186. {mplang_nightly-0.1.dev280 → mplang_nightly-0.1.dev282}/tests/libs/mpc/vole/test_silver_vole.py +0 -0
  187. {mplang_nightly-0.1.dev280 → mplang_nightly-0.1.dev282}/tests/libs/mpc/vole/test_vole.py +0 -0
  188. {mplang_nightly-0.1.dev280 → mplang_nightly-0.1.dev282}/tests/libs/mpc/vole/test_vole_bench.py +0 -0
  189. {mplang_nightly-0.1.dev280 → mplang_nightly-0.1.dev282}/tests/libs/mpc/vole/verify_vole_logic.py +0 -0
  190. {mplang_nightly-0.1.dev280 → mplang_nightly-0.1.dev282}/tests/libs/test_collective.py +0 -0
  191. {mplang_nightly-0.1.dev280 → mplang_nightly-0.1.dev282}/tests/libs/test_simple_guide.py +0 -0
  192. {mplang_nightly-0.1.dev280 → mplang_nightly-0.1.dev282}/tests/runtime/test_interpreter_async.py +0 -0
  193. {mplang_nightly-0.1.dev280 → mplang_nightly-0.1.dev282}/tests/runtime/test_object_store.py +0 -0
  194. {mplang_nightly-0.1.dev280 → mplang_nightly-0.1.dev282}/tests/runtime/test_object_store_fs.py +0 -0
  195. {mplang_nightly-0.1.dev280 → mplang_nightly-0.1.dev282}/tests/test_fetch_semantics.py +0 -0
  196. {mplang_nightly-0.1.dev280 → mplang_nightly-0.1.dev282}/tests/test_pytree_io.py +0 -0
  197. {mplang_nightly-0.1.dev280 → mplang_nightly-0.1.dev282}/tests/utils/__init__.py +0 -0
  198. {mplang_nightly-0.1.dev280 → mplang_nightly-0.1.dev282}/tests/utils/tensor_patch.py +0 -0
  199. {mplang_nightly-0.1.dev280 → mplang_nightly-0.1.dev282}/tests/utils/test_func_utils.py +0 -0
  200. {mplang_nightly-0.1.dev280 → mplang_nightly-0.1.dev282}/tests/utils/test_logging.py +0 -0
  201. {mplang_nightly-0.1.dev280 → mplang_nightly-0.1.dev282}/tutorials/00_device_basics.py +0 -0
  202. {mplang_nightly-0.1.dev280 → mplang_nightly-0.1.dev282}/tutorials/01_function_decorator.py +0 -0
  203. {mplang_nightly-0.1.dev280 → mplang_nightly-0.1.dev282}/tutorials/02_simulation_and_driver.py +0 -0
  204. {mplang_nightly-0.1.dev280 → mplang_nightly-0.1.dev282}/tutorials/03_run_jax.py +0 -0
  205. {mplang_nightly-0.1.dev280 → mplang_nightly-0.1.dev282}/tutorials/04_ir_dump_and_analysis.py +0 -0
  206. {mplang_nightly-0.1.dev280 → mplang_nightly-0.1.dev282}/tutorials/05_run_sql.py +0 -0
  207. {mplang_nightly-0.1.dev280 → mplang_nightly-0.1.dev282}/tutorials/06_pipeline.py +0 -0
  208. {mplang_nightly-0.1.dev280 → mplang_nightly-0.1.dev282}/tutorials/07_stax_nn.py +0 -0
  209. {mplang_nightly-0.1.dev280 → mplang_nightly-0.1.dev282}/tutorials/08_logging.py +0 -0
  210. {mplang_nightly-0.1.dev280 → mplang_nightly-0.1.dev282}/tutorials/MIGRATION.md +0 -0
  211. {mplang_nightly-0.1.dev280 → mplang_nightly-0.1.dev282}/tutorials/README.md +0 -0
  212. {mplang_nightly-0.1.dev280 → mplang_nightly-0.1.dev282}/tutorials/__init__.py +0 -0
  213. {mplang_nightly-0.1.dev280 → mplang_nightly-0.1.dev282}/tutorials/data/alice.csv +0 -0
  214. {mplang_nightly-0.1.dev280 → mplang_nightly-0.1.dev282}/tutorials/data/bob.csv +0 -0
  215. {mplang_nightly-0.1.dev280 → mplang_nightly-0.1.dev282}/tutorials/data/prepare_vertical_iris.py +0 -0
  216. {mplang_nightly-0.1.dev280 → mplang_nightly-0.1.dev282}/tutorials/run.sh +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: mplang-nightly
3
- Version: 0.1.dev280
3
+ Version: 0.1.dev282
4
4
  Summary: Multi-Party Programming Language
5
5
  Author-email: SecretFlow Team <secretflow-contact@service.alipay.com>
6
6
  License: Apache License
@@ -36,7 +36,9 @@ class CommunicatorProtocol(Protocol):
36
36
  Both ThreadCommunicator and HttpCommunicator implement this interface.
37
37
  """
38
38
 
39
- def send(self, to: int, key: str, data: bytes) -> None: ...
39
+ def send(
40
+ self, to: int, key: str, data: bytes, *, is_raw_bytes: bool = False
41
+ ) -> None: ...
40
42
  def recv(self, frm: int, key: str) -> bytes: ...
41
43
 
42
44
 
@@ -111,9 +113,8 @@ class BaseChannel(libspu.link.IChannel):
111
113
  len(data),
112
114
  )
113
115
 
114
- # Send raw bytes directly
115
- # v2 communicators accept Any, bytes is valid
116
- self._comm.send(self._peer_rank, key, data)
116
+ # Send raw bytes directly.
117
+ self._comm.send(self._peer_rank, key, data, is_raw_bytes=True)
117
118
 
118
119
  def Recv(self, tag: str) -> bytes:
119
120
  """Receive bytes from peer (blocking).
@@ -91,27 +91,37 @@ class HttpCommunicator:
91
91
  self._pending_sends: list[concurrent.futures.Future[None]] = []
92
92
  self.client = httpx.Client(timeout=None)
93
93
 
94
- def send(self, to: int, key: str, data: Any) -> None:
95
- """Send data to another rank asynchronously."""
96
- future = self._send_executor.submit(self._do_send, to, key, data)
94
+ def send(self, to: int, key: str, data: Any, *, is_raw_bytes: bool = False) -> None:
95
+ """Send data to another rank asynchronously.
96
+
97
+ Args:
98
+ to: Target rank.
99
+ key: Message key.
100
+ data: Payload.
101
+ is_raw_bytes: If True, treat `data` as raw bytes and transmit as
102
+ base64-encoded bytes (no serde). If False, the transport may still
103
+ treat `bytes` payloads as raw bytes.
104
+ """
105
+ future = self._send_executor.submit(self._do_send, to, key, data, is_raw_bytes)
97
106
  self._pending_sends.append(future)
98
107
 
99
- def _do_send(self, to: int, key: str, data: Any) -> None:
108
+ def _do_send(self, to: int, key: str, data: Any, is_raw_bytes: bool) -> None:
100
109
  """Perform the HTTP send."""
101
110
  url = f"{self.endpoints[to]}/comm/{key}"
102
111
  logger.debug(f"Rank {self.rank} sending to {to} key={key}, url={url}")
103
112
 
104
- # Detect SPU channel (tag prefix "spu:") and handle bytes
105
- if key.startswith("spu:") and isinstance(data, bytes):
106
- # Send raw bytes for SPU channels
113
+ # Raw-bytes transport rule:
114
+ # - If caller explicitly marks raw bytes, always use raw path.
115
+ # - Otherwise, if payload is `bytes`, use raw path.
116
+ # This avoids coupling encoding format to key naming conventions.
117
+ send_raw_bytes = is_raw_bytes or isinstance(data, bytes)
118
+
119
+ if send_raw_bytes:
107
120
  import base64
108
121
 
109
122
  payload = base64.b64encode(data).decode("ascii")
110
- is_raw_bytes = True
111
123
  else:
112
- # Use secure JSON serialization
113
124
  payload = serde.dumps_b64(data)
114
- is_raw_bytes = False
115
125
 
116
126
  size_bytes = len(payload)
117
127
 
@@ -132,7 +142,7 @@ class HttpCommunicator:
132
142
  json={
133
143
  "data": payload,
134
144
  "from_rank": self.rank,
135
- "is_raw_bytes": is_raw_bytes,
145
+ "is_raw_bytes": send_raw_bytes,
136
146
  },
137
147
  )
138
148
  resp.raise_for_status()
@@ -50,7 +50,7 @@ class ThreadCommunicator:
50
50
  self._shutdown = True
51
51
  self._cond.notify_all()
52
52
 
53
- def send(self, to: int, key: str, data: Any) -> None:
53
+ def send(self, to: int, key: str, data: Any, *, is_raw_bytes: bool = False) -> None:
54
54
  assert 0 <= to < self.world_size
55
55
  if self.use_serde:
56
56
  from mplang.edsl import serde