mplang-nightly 0.1.dev181__tar.gz → 0.1.dev182__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.
- {mplang_nightly-0.1.dev181 → mplang_nightly-0.1.dev182}/PKG-INFO +2 -2
- {mplang_nightly-0.1.dev181 → mplang_nightly-0.1.dev182}/README.md +1 -1
- {mplang_nightly-0.1.dev181 → mplang_nightly-0.1.dev182}/mplang/core/primitive.py +1 -1
- {mplang_nightly-0.1.dev181 → mplang_nightly-0.1.dev182}/mplang/host.py +32 -0
- {mplang_nightly-0.1.dev181 → mplang_nightly-0.1.dev182}/mplang/simp/mpi.py +2 -2
- {mplang_nightly-0.1.dev181 → mplang_nightly-0.1.dev182}/.gitignore +0 -0
- {mplang_nightly-0.1.dev181 → mplang_nightly-0.1.dev182}/LICENSE +0 -0
- {mplang_nightly-0.1.dev181 → mplang_nightly-0.1.dev182}/examples/conf/3pc.yaml +0 -0
- {mplang_nightly-0.1.dev181 → mplang_nightly-0.1.dev182}/examples/stax_nn/README.md +0 -0
- {mplang_nightly-0.1.dev181 → mplang_nightly-0.1.dev182}/examples/stax_nn/models.py +0 -0
- {mplang_nightly-0.1.dev181 → mplang_nightly-0.1.dev182}/examples/stax_nn/stax_nn.py +0 -0
- {mplang_nightly-0.1.dev181 → mplang_nightly-0.1.dev182}/examples/xgboost/hist_jax.py +0 -0
- {mplang_nightly-0.1.dev181 → mplang_nightly-0.1.dev182}/examples/xgboost/hist_jax_test.py +0 -0
- {mplang_nightly-0.1.dev181 → mplang_nightly-0.1.dev182}/examples/xgboost/naive_np.py +0 -0
- {mplang_nightly-0.1.dev181 → mplang_nightly-0.1.dev182}/examples/xgboost/readme.md +0 -0
- {mplang_nightly-0.1.dev181 → mplang_nightly-0.1.dev182}/examples/xgboost/sgb.py +0 -0
- {mplang_nightly-0.1.dev181 → mplang_nightly-0.1.dev182}/examples/xgboost/sgb_test.py +0 -0
- {mplang_nightly-0.1.dev181 → mplang_nightly-0.1.dev182}/hatch_build.py +0 -0
- {mplang_nightly-0.1.dev181 → mplang_nightly-0.1.dev182}/mplang/__init__.py +0 -0
- {mplang_nightly-0.1.dev181 → mplang_nightly-0.1.dev182}/mplang/analysis/__init__.py +0 -0
- {mplang_nightly-0.1.dev181 → mplang_nightly-0.1.dev182}/mplang/analysis/diagram.py +0 -0
- {mplang_nightly-0.1.dev181 → mplang_nightly-0.1.dev182}/mplang/core/__init__.py +0 -0
- {mplang_nightly-0.1.dev181 → mplang_nightly-0.1.dev182}/mplang/core/cluster.py +0 -0
- {mplang_nightly-0.1.dev181 → mplang_nightly-0.1.dev182}/mplang/core/comm.py +0 -0
- {mplang_nightly-0.1.dev181 → mplang_nightly-0.1.dev182}/mplang/core/context_mgr.py +0 -0
- {mplang_nightly-0.1.dev181 → mplang_nightly-0.1.dev182}/mplang/core/dtypes.py +0 -0
- {mplang_nightly-0.1.dev181 → mplang_nightly-0.1.dev182}/mplang/core/expr/__init__.py +0 -0
- {mplang_nightly-0.1.dev181 → mplang_nightly-0.1.dev182}/mplang/core/expr/ast.py +0 -0
- {mplang_nightly-0.1.dev181 → mplang_nightly-0.1.dev182}/mplang/core/expr/evaluator.py +0 -0
- {mplang_nightly-0.1.dev181 → mplang_nightly-0.1.dev182}/mplang/core/expr/printer.py +0 -0
- {mplang_nightly-0.1.dev181 → mplang_nightly-0.1.dev182}/mplang/core/expr/transformer.py +0 -0
- {mplang_nightly-0.1.dev181 → mplang_nightly-0.1.dev182}/mplang/core/expr/utils.py +0 -0
- {mplang_nightly-0.1.dev181 → mplang_nightly-0.1.dev182}/mplang/core/expr/visitor.py +0 -0
- {mplang_nightly-0.1.dev181 → mplang_nightly-0.1.dev182}/mplang/core/expr/walk.py +0 -0
- {mplang_nightly-0.1.dev181 → mplang_nightly-0.1.dev182}/mplang/core/interp.py +0 -0
- {mplang_nightly-0.1.dev181 → mplang_nightly-0.1.dev182}/mplang/core/mask.py +0 -0
- {mplang_nightly-0.1.dev181 → mplang_nightly-0.1.dev182}/mplang/core/mpir.py +0 -0
- {mplang_nightly-0.1.dev181 → mplang_nightly-0.1.dev182}/mplang/core/mpobject.py +0 -0
- {mplang_nightly-0.1.dev181 → mplang_nightly-0.1.dev182}/mplang/core/mptype.py +0 -0
- {mplang_nightly-0.1.dev181 → mplang_nightly-0.1.dev182}/mplang/core/pfunc.py +0 -0
- {mplang_nightly-0.1.dev181 → mplang_nightly-0.1.dev182}/mplang/core/table.py +0 -0
- {mplang_nightly-0.1.dev181 → mplang_nightly-0.1.dev182}/mplang/core/tensor.py +0 -0
- {mplang_nightly-0.1.dev181 → mplang_nightly-0.1.dev182}/mplang/core/tracer.py +0 -0
- {mplang_nightly-0.1.dev181 → mplang_nightly-0.1.dev182}/mplang/device.py +0 -0
- {mplang_nightly-0.1.dev181 → mplang_nightly-0.1.dev182}/mplang/kernels/__init__.py +0 -0
- {mplang_nightly-0.1.dev181 → mplang_nightly-0.1.dev182}/mplang/kernels/base.py +0 -0
- {mplang_nightly-0.1.dev181 → mplang_nightly-0.1.dev182}/mplang/kernels/basic.py +0 -0
- {mplang_nightly-0.1.dev181 → mplang_nightly-0.1.dev182}/mplang/kernels/context.py +0 -0
- {mplang_nightly-0.1.dev181 → mplang_nightly-0.1.dev182}/mplang/kernels/crypto.py +0 -0
- {mplang_nightly-0.1.dev181 → mplang_nightly-0.1.dev182}/mplang/kernels/mock_tee.py +0 -0
- {mplang_nightly-0.1.dev181 → mplang_nightly-0.1.dev182}/mplang/kernels/phe.py +0 -0
- {mplang_nightly-0.1.dev181 → mplang_nightly-0.1.dev182}/mplang/kernels/spu.py +0 -0
- {mplang_nightly-0.1.dev181 → mplang_nightly-0.1.dev182}/mplang/kernels/sql_duckdb.py +0 -0
- {mplang_nightly-0.1.dev181 → mplang_nightly-0.1.dev182}/mplang/kernels/stablehlo.py +0 -0
- {mplang_nightly-0.1.dev181 → mplang_nightly-0.1.dev182}/mplang/kernels/value.py +0 -0
- {mplang_nightly-0.1.dev181 → mplang_nightly-0.1.dev182}/mplang/ops/__init__.py +0 -0
- {mplang_nightly-0.1.dev181 → mplang_nightly-0.1.dev182}/mplang/ops/base.py +0 -0
- {mplang_nightly-0.1.dev181 → mplang_nightly-0.1.dev182}/mplang/ops/basic.py +0 -0
- {mplang_nightly-0.1.dev181 → mplang_nightly-0.1.dev182}/mplang/ops/crypto.py +0 -0
- {mplang_nightly-0.1.dev181 → mplang_nightly-0.1.dev182}/mplang/ops/ibis_cc.py +0 -0
- {mplang_nightly-0.1.dev181 → mplang_nightly-0.1.dev182}/mplang/ops/jax_cc.py +0 -0
- {mplang_nightly-0.1.dev181 → mplang_nightly-0.1.dev182}/mplang/ops/phe.py +0 -0
- {mplang_nightly-0.1.dev181 → mplang_nightly-0.1.dev182}/mplang/ops/spu.py +0 -0
- {mplang_nightly-0.1.dev181 → mplang_nightly-0.1.dev182}/mplang/ops/sql_cc.py +0 -0
- {mplang_nightly-0.1.dev181 → mplang_nightly-0.1.dev182}/mplang/ops/tee.py +0 -0
- {mplang_nightly-0.1.dev181 → mplang_nightly-0.1.dev182}/mplang/protos/v1alpha1/mpir_pb2.py +0 -0
- {mplang_nightly-0.1.dev181 → mplang_nightly-0.1.dev182}/mplang/protos/v1alpha1/mpir_pb2.pyi +0 -0
- {mplang_nightly-0.1.dev181 → mplang_nightly-0.1.dev182}/mplang/protos/v1alpha1/value_pb2.py +0 -0
- {mplang_nightly-0.1.dev181 → mplang_nightly-0.1.dev182}/mplang/protos/v1alpha1/value_pb2.pyi +0 -0
- {mplang_nightly-0.1.dev181 → mplang_nightly-0.1.dev182}/mplang/runtime/__init__.py +0 -0
- {mplang_nightly-0.1.dev181 → mplang_nightly-0.1.dev182}/mplang/runtime/cli.py +0 -0
- {mplang_nightly-0.1.dev181 → mplang_nightly-0.1.dev182}/mplang/runtime/client.py +0 -0
- {mplang_nightly-0.1.dev181 → mplang_nightly-0.1.dev182}/mplang/runtime/communicator.py +0 -0
- {mplang_nightly-0.1.dev181 → mplang_nightly-0.1.dev182}/mplang/runtime/data_providers.py +0 -0
- {mplang_nightly-0.1.dev181 → mplang_nightly-0.1.dev182}/mplang/runtime/driver.py +0 -0
- {mplang_nightly-0.1.dev181 → mplang_nightly-0.1.dev182}/mplang/runtime/exceptions.py +0 -0
- {mplang_nightly-0.1.dev181 → mplang_nightly-0.1.dev182}/mplang/runtime/http_api.md +0 -0
- {mplang_nightly-0.1.dev181 → mplang_nightly-0.1.dev182}/mplang/runtime/link_comm.py +0 -0
- {mplang_nightly-0.1.dev181 → mplang_nightly-0.1.dev182}/mplang/runtime/server.py +0 -0
- {mplang_nightly-0.1.dev181 → mplang_nightly-0.1.dev182}/mplang/runtime/session.py +0 -0
- {mplang_nightly-0.1.dev181 → mplang_nightly-0.1.dev182}/mplang/runtime/simulation.py +0 -0
- {mplang_nightly-0.1.dev181 → mplang_nightly-0.1.dev182}/mplang/simp/__init__.py +0 -0
- {mplang_nightly-0.1.dev181 → mplang_nightly-0.1.dev182}/mplang/simp/api.py +0 -0
- {mplang_nightly-0.1.dev181 → mplang_nightly-0.1.dev182}/mplang/simp/party.py +0 -0
- {mplang_nightly-0.1.dev181 → mplang_nightly-0.1.dev182}/mplang/simp/random.py +0 -0
- {mplang_nightly-0.1.dev181 → mplang_nightly-0.1.dev182}/mplang/simp/smpc.py +0 -0
- {mplang_nightly-0.1.dev181 → mplang_nightly-0.1.dev182}/mplang/utils/__init__.py +0 -0
- {mplang_nightly-0.1.dev181 → mplang_nightly-0.1.dev182}/mplang/utils/crypto.py +0 -0
- {mplang_nightly-0.1.dev181 → mplang_nightly-0.1.dev182}/mplang/utils/func_utils.py +0 -0
- {mplang_nightly-0.1.dev181 → mplang_nightly-0.1.dev182}/mplang/utils/spu_utils.py +0 -0
- {mplang_nightly-0.1.dev181 → mplang_nightly-0.1.dev182}/mplang/utils/table_utils.py +0 -0
- {mplang_nightly-0.1.dev181 → mplang_nightly-0.1.dev182}/pyproject.toml +0 -0
- {mplang_nightly-0.1.dev181 → mplang_nightly-0.1.dev182}/tests/__init__.py +0 -0
- {mplang_nightly-0.1.dev181 → mplang_nightly-0.1.dev182}/tests/analysis/test_diagram.py +0 -0
- {mplang_nightly-0.1.dev181 → mplang_nightly-0.1.dev182}/tests/conftest.py +0 -0
- {mplang_nightly-0.1.dev181 → mplang_nightly-0.1.dev182}/tests/core/__init__.py +0 -0
- {mplang_nightly-0.1.dev181 → mplang_nightly-0.1.dev182}/tests/core/expr/__init__.py +0 -0
- {mplang_nightly-0.1.dev181 → mplang_nightly-0.1.dev182}/tests/core/expr/conftest.py +0 -0
- {mplang_nightly-0.1.dev181 → mplang_nightly-0.1.dev182}/tests/core/expr/test_ast.py +0 -0
- {mplang_nightly-0.1.dev181 → mplang_nightly-0.1.dev182}/tests/core/expr/test_printer.py +0 -0
- {mplang_nightly-0.1.dev181 → mplang_nightly-0.1.dev182}/tests/core/expr/test_utils.py +0 -0
- {mplang_nightly-0.1.dev181 → mplang_nightly-0.1.dev182}/tests/core/expr/test_walk.py +0 -0
- {mplang_nightly-0.1.dev181 → mplang_nightly-0.1.dev182}/tests/core/test_cluster.py +0 -0
- {mplang_nightly-0.1.dev181 → mplang_nightly-0.1.dev182}/tests/core/test_dtype.py +0 -0
- {mplang_nightly-0.1.dev181 → mplang_nightly-0.1.dev182}/tests/core/test_mask.py +0 -0
- {mplang_nightly-0.1.dev181 → mplang_nightly-0.1.dev182}/tests/core/test_mpir.py +0 -0
- {mplang_nightly-0.1.dev181 → mplang_nightly-0.1.dev182}/tests/core/test_mptype.py +0 -0
- {mplang_nightly-0.1.dev181 → mplang_nightly-0.1.dev182}/tests/core/test_primitive.py +0 -0
- {mplang_nightly-0.1.dev181 → mplang_nightly-0.1.dev182}/tests/core/test_table.py +0 -0
- {mplang_nightly-0.1.dev181 → mplang_nightly-0.1.dev182}/tests/core/test_tensor.py +0 -0
- {mplang_nightly-0.1.dev181 → mplang_nightly-0.1.dev182}/tests/core/test_tracer.py +0 -0
- {mplang_nightly-0.1.dev181 → mplang_nightly-0.1.dev182}/tests/device/__init__.py +0 -0
- {mplang_nightly-0.1.dev181 → mplang_nightly-0.1.dev182}/tests/device/test_device_basic.py +0 -0
- {mplang_nightly-0.1.dev181 → mplang_nightly-0.1.dev182}/tests/integration/README.md +0 -0
- {mplang_nightly-0.1.dev181 → mplang_nightly-0.1.dev182}/tests/integration/test_crypto_roundtrip.py +0 -0
- {mplang_nightly-0.1.dev181 → mplang_nightly-0.1.dev182}/tests/integration/test_http_e2e.py +0 -0
- {mplang_nightly-0.1.dev181 → mplang_nightly-0.1.dev182}/tests/integration/test_symbols_roundtrip.py +0 -0
- {mplang_nightly-0.1.dev181 → mplang_nightly-0.1.dev182}/tests/integration/test_tee_workflow.py +0 -0
- {mplang_nightly-0.1.dev181 → mplang_nightly-0.1.dev182}/tests/integration/test_tutorials.py +0 -0
- {mplang_nightly-0.1.dev181 → mplang_nightly-0.1.dev182}/tests/integration/test_unused_param_integration.py +0 -0
- {mplang_nightly-0.1.dev181 → mplang_nightly-0.1.dev182}/tests/kernels/test_basic.py +0 -0
- {mplang_nightly-0.1.dev181 → mplang_nightly-0.1.dev182}/tests/kernels/test_debug_print.py +0 -0
- {mplang_nightly-0.1.dev181 → mplang_nightly-0.1.dev182}/tests/kernels/test_kernel_binding.py +0 -0
- {mplang_nightly-0.1.dev181 → mplang_nightly-0.1.dev182}/tests/kernels/test_phe.py +0 -0
- {mplang_nightly-0.1.dev181 → mplang_nightly-0.1.dev182}/tests/kernels/test_spu.py +0 -0
- {mplang_nightly-0.1.dev181 → mplang_nightly-0.1.dev182}/tests/kernels/test_sql_duckdb.py +0 -0
- {mplang_nightly-0.1.dev181 → mplang_nightly-0.1.dev182}/tests/kernels/test_stablehlo.py +0 -0
- {mplang_nightly-0.1.dev181 → mplang_nightly-0.1.dev182}/tests/kernels/test_value.py +0 -0
- {mplang_nightly-0.1.dev181 → mplang_nightly-0.1.dev182}/tests/kernels/test_value_serde.py +0 -0
- {mplang_nightly-0.1.dev181 → mplang_nightly-0.1.dev182}/tests/ops/__init__.py +0 -0
- {mplang_nightly-0.1.dev181 → mplang_nightly-0.1.dev182}/tests/ops/dummy.py +0 -0
- {mplang_nightly-0.1.dev181 → mplang_nightly-0.1.dev182}/tests/ops/test_basic_pack.py +0 -0
- {mplang_nightly-0.1.dev181 → mplang_nightly-0.1.dev182}/tests/ops/test_feop_base.py +0 -0
- {mplang_nightly-0.1.dev181 → mplang_nightly-0.1.dev182}/tests/ops/test_ibis.py +0 -0
- {mplang_nightly-0.1.dev181 → mplang_nightly-0.1.dev182}/tests/ops/test_ibis_cc.py +0 -0
- {mplang_nightly-0.1.dev181 → mplang_nightly-0.1.dev182}/tests/ops/test_jax_cc.py +0 -0
- {mplang_nightly-0.1.dev181 → mplang_nightly-0.1.dev182}/tests/ops/test_phe.py +0 -0
- {mplang_nightly-0.1.dev181 → mplang_nightly-0.1.dev182}/tests/ops/test_spu.py +0 -0
- {mplang_nightly-0.1.dev181 → mplang_nightly-0.1.dev182}/tests/ops/test_spu_defensive.py +0 -0
- {mplang_nightly-0.1.dev181 → mplang_nightly-0.1.dev182}/tests/ops/test_sql.py +0 -0
- {mplang_nightly-0.1.dev181 → mplang_nightly-0.1.dev182}/tests/ops/test_table_tensor_conversion.py +0 -0
- {mplang_nightly-0.1.dev181 → mplang_nightly-0.1.dev182}/tests/runtime/__init__.py +0 -0
- {mplang_nightly-0.1.dev181 → mplang_nightly-0.1.dev182}/tests/runtime/test_cli.py +0 -0
- {mplang_nightly-0.1.dev181 → mplang_nightly-0.1.dev182}/tests/runtime/test_communicator.py +0 -0
- {mplang_nightly-0.1.dev181 → mplang_nightly-0.1.dev182}/tests/runtime/test_driver.py +0 -0
- {mplang_nightly-0.1.dev181 → mplang_nightly-0.1.dev182}/tests/runtime/test_server.py +0 -0
- {mplang_nightly-0.1.dev181 → mplang_nightly-0.1.dev182}/tests/runtime/test_simulation.py +0 -0
- {mplang_nightly-0.1.dev181 → mplang_nightly-0.1.dev182}/tests/simp/test_mpi.py +0 -0
- {mplang_nightly-0.1.dev181 → mplang_nightly-0.1.dev182}/tests/simp/test_random.py +0 -0
- {mplang_nightly-0.1.dev181 → mplang_nightly-0.1.dev182}/tests/simp/test_smpc.py +0 -0
- {mplang_nightly-0.1.dev181 → mplang_nightly-0.1.dev182}/tests/simp/test_sugar.py +0 -0
- {mplang_nightly-0.1.dev181 → mplang_nightly-0.1.dev182}/tests/utils/__init__.py +0 -0
- {mplang_nightly-0.1.dev181 → mplang_nightly-0.1.dev182}/tests/utils/server_fixtures.py +0 -0
- {mplang_nightly-0.1.dev181 → mplang_nightly-0.1.dev182}/tests/utils/test_func_utils.py +0 -0
- {mplang_nightly-0.1.dev181 → mplang_nightly-0.1.dev182}/tests/utils/test_spu_utils.py +0 -0
- {mplang_nightly-0.1.dev181 → mplang_nightly-0.1.dev182}/tests/utils/test_table_utils.py +0 -0
- {mplang_nightly-0.1.dev181 → mplang_nightly-0.1.dev182}/tutorials/0_basic.py +0 -0
- {mplang_nightly-0.1.dev181 → mplang_nightly-0.1.dev182}/tutorials/10_analysis.py +0 -0
- {mplang_nightly-0.1.dev181 → mplang_nightly-0.1.dev182}/tutorials/1_condition.py +0 -0
- {mplang_nightly-0.1.dev181 → mplang_nightly-0.1.dev182}/tutorials/2_whileloop.py +0 -0
- {mplang_nightly-0.1.dev181 → mplang_nightly-0.1.dev182}/tutorials/3_device.py +0 -0
- {mplang_nightly-0.1.dev181 → mplang_nightly-0.1.dev182}/tutorials/4_simulation.py +0 -0
- {mplang_nightly-0.1.dev181 → mplang_nightly-0.1.dev182}/tutorials/5_ir_dump.py +0 -0
- {mplang_nightly-0.1.dev181 → mplang_nightly-0.1.dev182}/tutorials/6_advanced.py +0 -0
- {mplang_nightly-0.1.dev181 → mplang_nightly-0.1.dev182}/tutorials/7_stdio.py +0 -0
- {mplang_nightly-0.1.dev181 → mplang_nightly-0.1.dev182}/tutorials/8_phe.py +0 -0
- {mplang_nightly-0.1.dev181 → mplang_nightly-0.1.dev182}/tutorials/9_tee.py +0 -0
- {mplang_nightly-0.1.dev181 → mplang_nightly-0.1.dev182}/tutorials/__init__.py +0 -0
- {mplang_nightly-0.1.dev181 → mplang_nightly-0.1.dev182}/tutorials/pitfalls/late_binding.py +0 -0
- {mplang_nightly-0.1.dev181 → mplang_nightly-0.1.dev182}/tutorials/pitfalls/rand.py +0 -0
- {mplang_nightly-0.1.dev181 → mplang_nightly-0.1.dev182}/tutorials/run.sh +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: mplang-nightly
|
|
3
|
-
Version: 0.1.
|
|
3
|
+
Version: 0.1.dev182
|
|
4
4
|
Summary: Multi-Party Programming Language
|
|
5
5
|
Author-email: SecretFlow Team <secretflow-contact@service.alipay.com>
|
|
6
6
|
License: Apache License
|
|
@@ -277,7 +277,7 @@ sim = mplang.Simulator.simple(2)
|
|
|
277
277
|
result = mplang.evaluate(sim, millionaire)
|
|
278
278
|
|
|
279
279
|
# Securely fetch the result (reveals SPU value)
|
|
280
|
-
print("Is Alice poorer than Bob?",
|
|
280
|
+
print("Is Alice poorer than Bob?", mplang.fetch(sim, result))
|
|
281
281
|
```
|
|
282
282
|
|
|
283
283
|
## Learn More
|
|
@@ -57,7 +57,7 @@ sim = mplang.Simulator.simple(2)
|
|
|
57
57
|
result = mplang.evaluate(sim, millionaire)
|
|
58
58
|
|
|
59
59
|
# Securely fetch the result (reveals SPU value)
|
|
60
|
-
print("Is Alice poorer than Bob?",
|
|
60
|
+
print("Is Alice poorer than Bob?", mplang.fetch(sim, result))
|
|
61
61
|
```
|
|
62
62
|
|
|
63
63
|
## Learn More
|
|
@@ -718,7 +718,7 @@ def pshfl(src: MPObject, index: MPObject) -> MPObject:
|
|
|
718
718
|
|
|
719
719
|
Raises:
|
|
720
720
|
ValueError: If the index tensor is not a scalar.
|
|
721
|
-
RuntimeError: If src[index[i]] is None for any valid index[i] (i.e
|
|
721
|
+
RuntimeError: If src[index[i]] is None for any valid index[i] (i.e.,
|
|
722
722
|
trying to fetch from a party that doesn't hold the data).
|
|
723
723
|
|
|
724
724
|
Examples:
|
|
@@ -38,6 +38,16 @@ def evaluate(
|
|
|
38
38
|
|
|
39
39
|
This function accepts arbitrary types as it's designed to handle
|
|
40
40
|
any multi-party computation function and arguments.
|
|
41
|
+
|
|
42
|
+
Args:
|
|
43
|
+
interp: The interpreter context for evaluating the multi-party function.
|
|
44
|
+
mpfn: The multi-party function to evaluate.
|
|
45
|
+
*args: Positional arguments to pass to the function.
|
|
46
|
+
**kwargs: Keyword arguments to pass to the function.
|
|
47
|
+
|
|
48
|
+
Returns:
|
|
49
|
+
Any: The result of evaluating the multi-party function, which can be
|
|
50
|
+
any type depending on the function's return type.
|
|
41
51
|
"""
|
|
42
52
|
assert isinstance(interp, InterpContext), f"Expect InterpContext, got {interp}"
|
|
43
53
|
with with_ctx(interp):
|
|
@@ -49,6 +59,16 @@ def fetch(interp: InterpContext | None, objs: Any) -> Any: # type: ignore[misc]
|
|
|
49
59
|
|
|
50
60
|
This function uses tree_map to handle arbitrary nested structures,
|
|
51
61
|
so it needs to accept and return Any type.
|
|
62
|
+
|
|
63
|
+
Args:
|
|
64
|
+
interp: The interpreter context for fetching results. If None, uses the
|
|
65
|
+
current context from cur_ctx().
|
|
66
|
+
objs: The objects containing MPObject instances to fetch. Can be any
|
|
67
|
+
nested structure.
|
|
68
|
+
|
|
69
|
+
Returns:
|
|
70
|
+
Any: The fetched results with the same structure as the input objects,
|
|
71
|
+
but with MPObject instances replaced by their computed values.
|
|
52
72
|
"""
|
|
53
73
|
ctx = interp or cur_ctx()
|
|
54
74
|
assert isinstance(ctx, InterpContext), f"Expect MPExecutor, got {ctx}"
|
|
@@ -94,5 +114,17 @@ class CompileOptions(MPContext):
|
|
|
94
114
|
def compile(
|
|
95
115
|
mctx: MPContext, fn: Callable[..., Any], *args: Any, **kwargs: Any
|
|
96
116
|
) -> TracedFunction:
|
|
117
|
+
"""Compile a multi-party function into a TracedFunction.
|
|
118
|
+
|
|
119
|
+
Args:
|
|
120
|
+
mctx: The multi-party context for compilation.
|
|
121
|
+
fn: The function to compile.
|
|
122
|
+
*args: Positional arguments to pass during compilation.
|
|
123
|
+
**kwargs: Keyword arguments to pass during compilation.
|
|
124
|
+
|
|
125
|
+
Returns:
|
|
126
|
+
TracedFunction: The compiled function representation that can be
|
|
127
|
+
evaluated in multi-party contexts.
|
|
128
|
+
"""
|
|
97
129
|
trace_ctx = TraceContext(mctx.cluster_spec)
|
|
98
130
|
return trace(trace_ctx, fn, *args, **kwargs)
|
|
@@ -57,9 +57,9 @@ def gather_m(src_mask: Mask, root: Rank, arg: MPObject) -> list[MPObject]:
|
|
|
57
57
|
"""Gather the object from pmask'ed parties to the root party.
|
|
58
58
|
|
|
59
59
|
Args:
|
|
60
|
-
|
|
60
|
+
src_mask: The mask of the parties that will gather the object.
|
|
61
61
|
root: The rank of the root party.
|
|
62
|
-
arg: The object to be gathered
|
|
62
|
+
arg: The object to be gathered. It must be held by all parties specified in `src_mask`.
|
|
63
63
|
|
|
64
64
|
Returns:
|
|
65
65
|
A list of objects, with length equal to the number of parties in pmask.
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{mplang_nightly-0.1.dev181 → mplang_nightly-0.1.dev182}/mplang/protos/v1alpha1/value_pb2.pyi
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{mplang_nightly-0.1.dev181 → mplang_nightly-0.1.dev182}/tests/integration/test_crypto_roundtrip.py
RENAMED
|
File without changes
|
|
File without changes
|
{mplang_nightly-0.1.dev181 → mplang_nightly-0.1.dev182}/tests/integration/test_symbols_roundtrip.py
RENAMED
|
File without changes
|
{mplang_nightly-0.1.dev181 → mplang_nightly-0.1.dev182}/tests/integration/test_tee_workflow.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{mplang_nightly-0.1.dev181 → mplang_nightly-0.1.dev182}/tests/kernels/test_kernel_binding.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{mplang_nightly-0.1.dev181 → mplang_nightly-0.1.dev182}/tests/ops/test_table_tensor_conversion.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|