mplang-nightly 0.1.dev261__tar.gz → 0.1.dev263__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.dev261 → mplang_nightly-0.1.dev263}/PKG-INFO +1 -1
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/mplang/v2/backends/crypto_impl.py +29 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/mplang/v2/backends/table_impl.py +4 -4
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/mplang/v2/dialects/crypto.py +71 -8
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/mplang/v2/dialects/tensor.py +0 -3
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/tests/v2/backends/test_crypto_impl.py +102 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/.gitignore +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/LICENSE +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/README.md +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/examples/v1/conf/3pc.yaml +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/examples/v1/stax_nn/README.md +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/examples/v1/stax_nn/models.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/examples/v1/stax_nn/stax_nn.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/examples/v1/xgboost/bench_fhe_hist.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/examples/v1/xgboost/hist_jax.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/examples/v1/xgboost/hist_jax_test.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/examples/v1/xgboost/naive_np.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/examples/v1/xgboost/readme.md +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/examples/v1/xgboost/sgb.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/examples/v1/xgboost/sgb_test.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/hatch_build.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/mplang/__init__.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/mplang/v1/__init__.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/mplang/v1/_device.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/mplang/v1/analysis/__init__.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/mplang/v1/analysis/diagram.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/mplang/v1/core/__init__.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/mplang/v1/core/cluster.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/mplang/v1/core/comm.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/mplang/v1/core/context_mgr.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/mplang/v1/core/dtypes.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/mplang/v1/core/expr/__init__.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/mplang/v1/core/expr/ast.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/mplang/v1/core/expr/evaluator.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/mplang/v1/core/expr/printer.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/mplang/v1/core/expr/transformer.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/mplang/v1/core/expr/utils.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/mplang/v1/core/expr/visitor.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/mplang/v1/core/expr/walk.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/mplang/v1/core/interp.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/mplang/v1/core/mask.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/mplang/v1/core/mpir.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/mplang/v1/core/mpobject.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/mplang/v1/core/mptype.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/mplang/v1/core/pfunc.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/mplang/v1/core/primitive.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/mplang/v1/core/table.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/mplang/v1/core/tensor.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/mplang/v1/core/tracer.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/mplang/v1/host.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/mplang/v1/kernels/__init__.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/mplang/v1/kernels/base.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/mplang/v1/kernels/basic.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/mplang/v1/kernels/context.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/mplang/v1/kernels/crypto.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/mplang/v1/kernels/fhe.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/mplang/v1/kernels/mock_tee.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/mplang/v1/kernels/phe.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/mplang/v1/kernels/spu.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/mplang/v1/kernels/sql_duckdb.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/mplang/v1/kernels/stablehlo.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/mplang/v1/kernels/value.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/mplang/v1/ops/__init__.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/mplang/v1/ops/base.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/mplang/v1/ops/basic.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/mplang/v1/ops/crypto.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/mplang/v1/ops/fhe.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/mplang/v1/ops/jax_cc.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/mplang/v1/ops/nnx_cc.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/mplang/v1/ops/phe.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/mplang/v1/ops/spu.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/mplang/v1/ops/sql_cc.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/mplang/v1/ops/tee.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/mplang/v1/protos/v1alpha1/mpir_pb2.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/mplang/v1/protos/v1alpha1/mpir_pb2.pyi +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/mplang/v1/protos/v1alpha1/value_pb2.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/mplang/v1/protos/v1alpha1/value_pb2.pyi +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/mplang/v1/runtime/__init__.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/mplang/v1/runtime/cli.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/mplang/v1/runtime/client.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/mplang/v1/runtime/communicator.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/mplang/v1/runtime/data_providers.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/mplang/v1/runtime/driver.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/mplang/v1/runtime/exceptions.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/mplang/v1/runtime/http_api.md +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/mplang/v1/runtime/link_comm.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/mplang/v1/runtime/server.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/mplang/v1/runtime/session.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/mplang/v1/runtime/simulation.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/mplang/v1/simp/__init__.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/mplang/v1/simp/api.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/mplang/v1/simp/mpi.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/mplang/v1/simp/party.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/mplang/v1/simp/random.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/mplang/v1/simp/smpc.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/mplang/v1/utils/__init__.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/mplang/v1/utils/crypto.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/mplang/v1/utils/func_utils.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/mplang/v1/utils/spu_utils.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/mplang/v1/utils/table_utils.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/mplang/v2/__init__.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/mplang/v2/backends/__init__.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/mplang/v2/backends/bfv_impl.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/mplang/v2/backends/field_impl.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/mplang/v2/backends/func_impl.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/mplang/v2/backends/phe_impl.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/mplang/v2/backends/simp_design.md +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/mplang/v2/backends/simp_driver/__init__.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/mplang/v2/backends/simp_driver/http.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/mplang/v2/backends/simp_driver/mem.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/mplang/v2/backends/simp_driver/ops.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/mplang/v2/backends/simp_driver/state.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/mplang/v2/backends/simp_driver/values.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/mplang/v2/backends/simp_worker/__init__.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/mplang/v2/backends/simp_worker/http.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/mplang/v2/backends/simp_worker/mem.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/mplang/v2/backends/simp_worker/ops.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/mplang/v2/backends/simp_worker/state.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/mplang/v2/backends/spu_impl.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/mplang/v2/backends/spu_state.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/mplang/v2/backends/store_impl.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/mplang/v2/backends/tee_impl.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/mplang/v2/backends/tensor_impl.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/mplang/v2/cli.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/mplang/v2/cli_guide.md +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/mplang/v2/dialects/__init__.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/mplang/v2/dialects/bfv.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/mplang/v2/dialects/dtypes.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/mplang/v2/dialects/field.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/mplang/v2/dialects/func.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/mplang/v2/dialects/phe.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/mplang/v2/dialects/simp.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/mplang/v2/dialects/spu.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/mplang/v2/dialects/store.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/mplang/v2/dialects/table.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/mplang/v2/dialects/tee.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/mplang/v2/edsl/README.md +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/mplang/v2/edsl/__init__.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/mplang/v2/edsl/context.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/mplang/v2/edsl/graph.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/mplang/v2/edsl/jit.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/mplang/v2/edsl/object.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/mplang/v2/edsl/primitive.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/mplang/v2/edsl/printer.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/mplang/v2/edsl/registry.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/mplang/v2/edsl/serde.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/mplang/v2/edsl/tracer.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/mplang/v2/edsl/typing.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/mplang/v2/kernels/Makefile +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/mplang/v2/kernels/__init__.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/mplang/v2/kernels/gf128.cpp +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/mplang/v2/kernels/ldpc.cpp +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/mplang/v2/kernels/okvs.cpp +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/mplang/v2/kernels/okvs_opt.cpp +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/mplang/v2/kernels/py_kernels.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/mplang/v2/libs/collective.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/mplang/v2/libs/device/__init__.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/mplang/v2/libs/device/api.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/mplang/v2/libs/device/cluster.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/mplang/v2/libs/ml/__init__.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/mplang/v2/libs/ml/sgb.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/mplang/v2/libs/mpc/__init__.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/mplang/v2/libs/mpc/_utils.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/mplang/v2/libs/mpc/analytics/__init__.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/mplang/v2/libs/mpc/analytics/aggregation.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/mplang/v2/libs/mpc/analytics/groupby.md +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/mplang/v2/libs/mpc/analytics/groupby.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/mplang/v2/libs/mpc/analytics/permutation.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/mplang/v2/libs/mpc/common/constants.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/mplang/v2/libs/mpc/ot/__init__.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/mplang/v2/libs/mpc/ot/base.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/mplang/v2/libs/mpc/ot/extension.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/mplang/v2/libs/mpc/ot/silent.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/mplang/v2/libs/mpc/psi/__init__.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/mplang/v2/libs/mpc/psi/cuckoo.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/mplang/v2/libs/mpc/psi/okvs.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/mplang/v2/libs/mpc/psi/okvs_gct.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/mplang/v2/libs/mpc/psi/oprf.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/mplang/v2/libs/mpc/psi/rr22.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/mplang/v2/libs/mpc/psi/unbalanced.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/mplang/v2/libs/mpc/vole/__init__.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/mplang/v2/libs/mpc/vole/gilboa.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/mplang/v2/libs/mpc/vole/ldpc.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/mplang/v2/libs/mpc/vole/silver.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/mplang/v2/runtime/__init__.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/mplang/v2/runtime/dialect_state.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/mplang/v2/runtime/interpreter.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/mplang/v2/runtime/object_store.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/mplang/v2/runtime/value.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/pyproject.toml +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/tests/__init__.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/tests/conftest.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/tests/v1/__init__.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/tests/v1/analysis/test_diagram.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/tests/v1/conftest.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/tests/v1/core/__init__.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/tests/v1/core/expr/__init__.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/tests/v1/core/expr/conftest.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/tests/v1/core/expr/test_ast.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/tests/v1/core/expr/test_printer.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/tests/v1/core/expr/test_utils.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/tests/v1/core/expr/test_walk.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/tests/v1/core/test_cluster.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/tests/v1/core/test_dtype.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/tests/v1/core/test_mask.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/tests/v1/core/test_mpir.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/tests/v1/core/test_mptype.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/tests/v1/core/test_primitive.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/tests/v1/core/test_table.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/tests/v1/core/test_tensor.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/tests/v1/core/test_tracer.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/tests/v1/device/__init__.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/tests/v1/device/test_device_basic.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/tests/v1/integration/README.md +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/tests/v1/integration/test_crypto_roundtrip.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/tests/v1/integration/test_http_e2e.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/tests/v1/integration/test_symbols_roundtrip.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/tests/v1/integration/test_tee_workflow.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/tests/v1/integration/test_tutorials.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/tests/v1/integration/test_unused_param_integration.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/tests/v1/kernels/__init__.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/tests/v1/kernels/test_basic.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/tests/v1/kernels/test_debug_print.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/tests/v1/kernels/test_fhe.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/tests/v1/kernels/test_kernel_binding.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/tests/v1/kernels/test_phe.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/tests/v1/kernels/test_spu.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/tests/v1/kernels/test_sql_duckdb.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/tests/v1/kernels/test_stablehlo.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/tests/v1/kernels/test_value.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/tests/v1/kernels/test_value_serde.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/tests/v1/ops/__init__.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/tests/v1/ops/dummy.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/tests/v1/ops/test_basic_pack.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/tests/v1/ops/test_crypto.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/tests/v1/ops/test_feop_base.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/tests/v1/ops/test_jax_cc.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/tests/v1/ops/test_nnx_cc.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/tests/v1/ops/test_phe.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/tests/v1/ops/test_spu.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/tests/v1/ops/test_spu_defensive.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/tests/v1/ops/test_sql.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/tests/v1/ops/test_sql_cc.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/tests/v1/ops/test_table_tensor_conversion.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/tests/v1/runtime/__init__.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/tests/v1/runtime/test_cli.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/tests/v1/runtime/test_communicator.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/tests/v1/runtime/test_driver.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/tests/v1/runtime/test_server.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/tests/v1/runtime/test_simulation.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/tests/v1/simp/test_mpi.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/tests/v1/simp/test_random.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/tests/v1/simp/test_smpc.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/tests/v1/simp/test_sugar.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/tests/v1/utils/__init__.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/tests/v1/utils/server_fixtures.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/tests/v1/utils/test_func_utils.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/tests/v1/utils/test_spu_utils.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/tests/v1/utils/test_table_utils.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/tests/v2/__init__.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/tests/v2/backends/__init__.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/tests/v2/backends/simp_driver/__init__.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/tests/v2/backends/simp_driver/test_http.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/tests/v2/backends/simp_worker/__init__.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/tests/v2/backends/simp_worker/test_http.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/tests/v2/backends/simp_worker/test_mem.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/tests/v2/backends/test_bfv_impl.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/tests/v2/backends/test_okvs_binding.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/tests/v2/backends/test_simp_integration.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/tests/v2/backends/test_simp_object_store.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/tests/v2/backends/test_spu_impl.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/tests/v2/backends/test_table_impl.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/tests/v2/backends/test_tee_impl.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/tests/v2/backends/test_tensor_impl.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/tests/v2/backends/test_verify_clean.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/tests/v2/conftest.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/tests/v2/dialects/__init__.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/tests/v2/dialects/test_bfv.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/tests/v2/dialects/test_crypto.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/tests/v2/dialects/test_dtypes.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/tests/v2/dialects/test_field.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/tests/v2/dialects/test_func.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/tests/v2/dialects/test_okvs.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/tests/v2/dialects/test_okvs_bench.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/tests/v2/dialects/test_phe.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/tests/v2/dialects/test_simp.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/tests/v2/dialects/test_simp_comm.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/tests/v2/dialects/test_spu.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/tests/v2/dialects/test_table.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/tests/v2/dialects/test_tee.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/tests/v2/dialects/test_tensor.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/tests/v2/edsl/__init__.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/tests/v2/edsl/test_context.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/tests/v2/edsl/test_graph.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/tests/v2/edsl/test_primitive.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/tests/v2/edsl/test_primitive_multi_output.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/tests/v2/edsl/test_printer.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/tests/v2/edsl/test_serde.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/tests/v2/edsl/test_tracer.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/tests/v2/edsl/test_typing.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/tests/v2/edsl/test_typing_graph_serde.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/tests/v2/libs/device/__init__.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/tests/v2/libs/device/conftest.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/tests/v2/libs/device/test_device_api_errors.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/tests/v2/libs/device/test_device_dialects.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/tests/v2/libs/device/test_device_layouts.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/tests/v2/libs/device/test_device_tee.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/tests/v2/libs/ml/__init__.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/tests/v2/libs/ml/test_sgb.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/tests/v2/libs/ml/test_sgb_bench.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/tests/v2/libs/mpc/__init__.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/tests/v2/libs/mpc/analytics/__init__.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/tests/v2/libs/mpc/analytics/test_aggregation.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/tests/v2/libs/mpc/analytics/test_groupby.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/tests/v2/libs/mpc/analytics/test_permutation.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/tests/v2/libs/mpc/ot/__init__.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/tests/v2/libs/mpc/ot/test_ot.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/tests/v2/libs/mpc/ot/test_ot_extension.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/tests/v2/libs/mpc/ot/test_silent_ot.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/tests/v2/libs/mpc/psi/__init__.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/tests/v2/libs/mpc/psi/test_okvs_gct.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/tests/v2/libs/mpc/psi/test_oprf.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/tests/v2/libs/mpc/psi/test_psi.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/tests/v2/libs/mpc/psi/test_psi_bench.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/tests/v2/libs/mpc/psi/test_rr22.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/tests/v2/libs/mpc/psi/verify_psi_okvs_logic.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/tests/v2/libs/mpc/test_field_gf128.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/tests/v2/libs/mpc/test_utils.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/tests/v2/libs/mpc/vole/__init__.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/tests/v2/libs/mpc/vole/test_gilboa_manual.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/tests/v2/libs/mpc/vole/test_ldpc.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/tests/v2/libs/mpc/vole/test_silver_vole.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/tests/v2/libs/mpc/vole/test_vole.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/tests/v2/libs/mpc/vole/test_vole_bench.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/tests/v2/libs/mpc/vole/verify_vole_logic.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/tests/v2/libs/test_collective.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/tests/v2/libs/test_simple_guide.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/tests/v2/runtime/test_interpreter_async.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/tests/v2/runtime/test_object_store.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/tests/v2/runtime/test_object_store_fs.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/tests/v2/test_fetch_semantics.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/tests/v2/test_pytree_io.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/tests/v2/test_store.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/tests/v2/utils/__init__.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/tests/v2/utils/tensor_patch.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/tutorials/MIGRATION.md +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/tutorials/README.md +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/tutorials/__init__.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/tutorials/data/alice.csv +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/tutorials/data/bob.csv +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/tutorials/data/prepare_vertical_iris.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/tutorials/run.sh +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/tutorials/v1/device/00_device_basics.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/tutorials/v1/device/01_function_decorator.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/tutorials/v1/device/02_simulation_and_driver.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/tutorials/v1/device/03_run_jax.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/tutorials/v1/device/04_run_sql.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/tutorials/v1/device/05_pipeline.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/tutorials/v1/device/06_ir_dump_and_analysis.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/tutorials/v1/device/07_run_nnx.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/tutorials/v1/pitfalls/late_binding.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/tutorials/v1/pitfalls/rand.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/tutorials/v1/simp/00_basic.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/tutorials/v1/simp/01_condition.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/tutorials/v1/simp/02_whileloop.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/tutorials/v1/simp/03_stdio.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/tutorials/v1/simp/04_phe.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/tutorials/v1/simp/05_tee.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/tutorials/v1/simp/06_fhe.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/tutorials/v1/simp/07_advanced.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/tutorials/v1/simp/08_simple_secret_sharing.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/tutorials/v2/00_device_basics.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/tutorials/v2/01_function_decorator.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/tutorials/v2/02_simulation_and_driver.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/tutorials/v2/03_run_jax.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/tutorials/v2/04_ir_dump_and_analysis.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/tutorials/v2/05_run_sql.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/tutorials/v2/06_pipeline.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/tutorials/v2/07_stax_nn.py +0 -0
- {mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/tutorials/v2/__init__.py +0 -0
|
@@ -271,6 +271,27 @@ def bytes_to_point_impl(
|
|
|
271
271
|
|
|
272
272
|
# --- Sym / Hash Impl ---
|
|
273
273
|
|
|
274
|
+
# Supported symmetric encryption algorithms
|
|
275
|
+
_SUPPORTED_ALGOS = {"aes-gcm"}
|
|
276
|
+
|
|
277
|
+
|
|
278
|
+
def _validate_algo(algo: str, operation: str) -> None:
|
|
279
|
+
"""Validate that the algorithm is supported.
|
|
280
|
+
|
|
281
|
+
Args:
|
|
282
|
+
algo: Algorithm name to validate
|
|
283
|
+
operation: Operation name for error message (e.g., "encryption", "decryption")
|
|
284
|
+
|
|
285
|
+
Raises:
|
|
286
|
+
ValueError: If algo is not supported
|
|
287
|
+
"""
|
|
288
|
+
if algo not in _SUPPORTED_ALGOS:
|
|
289
|
+
supported = ", ".join(sorted(_SUPPORTED_ALGOS))
|
|
290
|
+
raise ValueError(
|
|
291
|
+
f"Unsupported {operation} algorithm: {algo!r}. "
|
|
292
|
+
f"Supported algorithms: {supported}"
|
|
293
|
+
)
|
|
294
|
+
|
|
274
295
|
|
|
275
296
|
@crypto.hash_p.def_impl
|
|
276
297
|
def hash_impl(interpreter: Interpreter, op: Operation, data: Value) -> Value:
|
|
@@ -336,6 +357,10 @@ def sym_encrypt_impl(
|
|
|
336
357
|
numpy arrays, scalars, etc.). This supports both high-level API usage
|
|
337
358
|
(with TensorValue) and elementwise operations (with raw scalars).
|
|
338
359
|
"""
|
|
360
|
+
# Read and validate algo parameter (must be provided by frontend)
|
|
361
|
+
algo = op.attrs["algo"]
|
|
362
|
+
_validate_algo(algo, "encryption")
|
|
363
|
+
|
|
339
364
|
# Get raw key bytes - strict type checking
|
|
340
365
|
if isinstance(key, SymmetricKeyValue):
|
|
341
366
|
k = key.key_bytes
|
|
@@ -376,6 +401,10 @@ def sym_decrypt_impl(
|
|
|
376
401
|
on what was encrypted - could be a Value subclass (TensorValue, BytesValue),
|
|
377
402
|
a numpy array, or a scalar (int, float, etc.) when used in elementwise ops.
|
|
378
403
|
"""
|
|
404
|
+
# Read and validate algo parameter (must be provided by frontend)
|
|
405
|
+
algo = op.attrs["algo"]
|
|
406
|
+
_validate_algo(algo, "decryption")
|
|
407
|
+
|
|
379
408
|
# Get raw key bytes - strict type checking
|
|
380
409
|
if isinstance(key, SymmetricKeyValue):
|
|
381
410
|
k = key.key_bytes
|
|
@@ -186,10 +186,10 @@ def constant_impl(interpreter: Interpreter, op: Operation) -> TableValue:
|
|
|
186
186
|
# If data was a DataFrame, it might have been stored as is if the IR supports it.
|
|
187
187
|
# If data was a dict, it's fine.
|
|
188
188
|
|
|
189
|
-
if isinstance(data,
|
|
190
|
-
return _wrap(
|
|
191
|
-
|
|
192
|
-
|
|
189
|
+
if isinstance(data, pa.Table):
|
|
190
|
+
return _wrap(data)
|
|
191
|
+
else:
|
|
192
|
+
return _wrap(pa.table(data))
|
|
193
193
|
|
|
194
194
|
|
|
195
195
|
def _infer_format(path: str, format_hint: str) -> str:
|
|
@@ -275,15 +275,44 @@ def _hash_batch_ae(data: elt.BaseType) -> elt.TensorType:
|
|
|
275
275
|
|
|
276
276
|
|
|
277
277
|
@sym_encrypt_p.def_abstract_eval
|
|
278
|
-
def _sym_encrypt_ae(
|
|
278
|
+
def _sym_encrypt_ae(
|
|
279
|
+
key: elt.BaseType, plaintext: elt.BaseType, *, algo: str = "aes-gcm"
|
|
280
|
+
) -> elt.TensorType:
|
|
281
|
+
"""Abstract evaluation for symmetric encryption.
|
|
282
|
+
|
|
283
|
+
Args:
|
|
284
|
+
key: Symmetric encryption key
|
|
285
|
+
plaintext: Data to encrypt
|
|
286
|
+
algo: Encryption algorithm (keyword-only, validated at runtime)
|
|
287
|
+
|
|
288
|
+
Returns:
|
|
289
|
+
Ciphertext as dynamic-length uint8 tensor
|
|
290
|
+
"""
|
|
279
291
|
# Dynamic shape for ciphertext
|
|
292
|
+
# algo validation is done at backend impl, not here
|
|
280
293
|
return elt.TensorType(elt.u8, (-1,))
|
|
281
294
|
|
|
282
295
|
|
|
283
296
|
@sym_decrypt_p.def_abstract_eval
|
|
284
297
|
def _sym_decrypt_ae(
|
|
285
|
-
key: elt.BaseType,
|
|
298
|
+
key: elt.BaseType,
|
|
299
|
+
ciphertext: elt.BaseType,
|
|
300
|
+
*,
|
|
301
|
+
target_type: elt.BaseType,
|
|
302
|
+
algo: str = "aes-gcm",
|
|
286
303
|
) -> elt.BaseType:
|
|
304
|
+
"""Abstract evaluation for symmetric decryption.
|
|
305
|
+
|
|
306
|
+
Args:
|
|
307
|
+
key: Symmetric decryption key
|
|
308
|
+
ciphertext: Encrypted data
|
|
309
|
+
target_type: Expected type of decrypted plaintext (keyword-only)
|
|
310
|
+
algo: Decryption algorithm (keyword-only, validated at runtime)
|
|
311
|
+
|
|
312
|
+
Returns:
|
|
313
|
+
Decrypted plaintext with type matching target_type
|
|
314
|
+
"""
|
|
315
|
+
# algo validation is done at backend impl, not here
|
|
287
316
|
return target_type
|
|
288
317
|
|
|
289
318
|
|
|
@@ -367,16 +396,50 @@ def hash_batch(data: el.Object) -> el.Object:
|
|
|
367
396
|
return hash_batch_p.bind(data)
|
|
368
397
|
|
|
369
398
|
|
|
370
|
-
def sym_encrypt(
|
|
371
|
-
|
|
372
|
-
|
|
399
|
+
def sym_encrypt(
|
|
400
|
+
key: el.Object, plaintext: el.Object, *, algo: str = "aes-gcm"
|
|
401
|
+
) -> el.Object:
|
|
402
|
+
"""Symmetric encrypt.
|
|
403
|
+
|
|
404
|
+
Args:
|
|
405
|
+
key: Symmetric encryption key (SymmetricKeyType or bytes).
|
|
406
|
+
plaintext: Data to encrypt (any serializable object).
|
|
407
|
+
algo: Encryption algorithm. Currently only "aes-gcm" is supported.
|
|
408
|
+
Validation is performed at backend execution time.
|
|
409
|
+
|
|
410
|
+
Returns:
|
|
411
|
+
Ciphertext as Tensor[u8, (-1,)].
|
|
412
|
+
|
|
413
|
+
Raises:
|
|
414
|
+
ValueError: At runtime if algo is not supported by the backend.
|
|
415
|
+
"""
|
|
416
|
+
return sym_encrypt_p.bind(key, plaintext, algo=algo)
|
|
373
417
|
|
|
374
418
|
|
|
375
419
|
def sym_decrypt(
|
|
376
|
-
key: el.Object,
|
|
420
|
+
key: el.Object,
|
|
421
|
+
ciphertext: el.Object,
|
|
422
|
+
target_type: elt.BaseType,
|
|
423
|
+
*,
|
|
424
|
+
algo: str = "aes-gcm",
|
|
377
425
|
) -> el.Object:
|
|
378
|
-
"""Symmetric decrypt.
|
|
379
|
-
|
|
426
|
+
"""Symmetric decrypt.
|
|
427
|
+
|
|
428
|
+
Args:
|
|
429
|
+
key: Symmetric decryption key (SymmetricKeyType or bytes).
|
|
430
|
+
ciphertext: Encrypted data.
|
|
431
|
+
target_type: Expected type of the decrypted plaintext (for type inference).
|
|
432
|
+
algo: Decryption algorithm. Must match the algorithm used for encryption.
|
|
433
|
+
Currently only "aes-gcm" is supported.
|
|
434
|
+
Validation is performed at backend execution time.
|
|
435
|
+
|
|
436
|
+
Returns:
|
|
437
|
+
Decrypted plaintext with type matching target_type.
|
|
438
|
+
|
|
439
|
+
Raises:
|
|
440
|
+
ValueError: At runtime if algo is not supported by the backend.
|
|
441
|
+
"""
|
|
442
|
+
return sym_decrypt_p.bind(key, ciphertext, target_type=target_type, algo=algo)
|
|
380
443
|
|
|
381
444
|
|
|
382
445
|
def select(cond: el.Object, true_val: el.Object, false_val: el.Object) -> el.Object:
|
|
@@ -236,9 +236,6 @@ def _run_jax_trace(fn: Callable[..., Any], *args: Any, **kwargs: Any) -> Any:
|
|
|
236
236
|
|
|
237
237
|
normalized_fn, variables = normalize_fn(fn, args, kwargs, _is_trace_object)
|
|
238
238
|
|
|
239
|
-
if not variables:
|
|
240
|
-
raise TypeError("tensor.run_jax requires at least one Tensor argument")
|
|
241
|
-
|
|
242
239
|
# Convert TraceObjects to JAX placeholders for compilation
|
|
243
240
|
placeholders: list[ShapeDtypeStruct] = []
|
|
244
241
|
for var in variables:
|
{mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/tests/v2/backends/test_crypto_impl.py
RENAMED
|
@@ -174,6 +174,44 @@ class TestSymmetricEncryption:
|
|
|
174
174
|
# Ciphertexts should be different due to random nonce
|
|
175
175
|
assert _unwrap(ct1.runtime_obj) != _unwrap(ct2.runtime_obj)
|
|
176
176
|
|
|
177
|
+
def test_encrypt_decrypt_keyword_only_params(self):
|
|
178
|
+
"""Test that algo parameter is properly passed as keyword-only."""
|
|
179
|
+
with Interpreter():
|
|
180
|
+
sk, pk = crypto.kem_keygen("x25519")
|
|
181
|
+
key = crypto.kem_derive(sk, pk)
|
|
182
|
+
|
|
183
|
+
message = np.array([1, 2, 3, 4, 5], dtype=np.uint8)
|
|
184
|
+
message_obj = tensor.constant(message)
|
|
185
|
+
|
|
186
|
+
# Test keyword-only algo parameter in encrypt
|
|
187
|
+
ciphertext = crypto.sym_encrypt(key, message_obj, algo="aes-gcm")
|
|
188
|
+
assert isinstance(ciphertext.runtime_obj, BytesValue)
|
|
189
|
+
|
|
190
|
+
# Test keyword-only parameters in decrypt (target_type and algo)
|
|
191
|
+
plaintext = crypto.sym_decrypt(
|
|
192
|
+
key,
|
|
193
|
+
ciphertext,
|
|
194
|
+
target_type=elt.TensorType(elt.u8, (5,)),
|
|
195
|
+
algo="aes-gcm",
|
|
196
|
+
)
|
|
197
|
+
np.testing.assert_array_equal(_unwrap(plaintext.runtime_obj), message)
|
|
198
|
+
|
|
199
|
+
def test_encrypt_decrypt_default_algo(self):
|
|
200
|
+
"""Test that default algo parameter works correctly."""
|
|
201
|
+
with Interpreter():
|
|
202
|
+
sk, pk = crypto.kem_keygen("x25519")
|
|
203
|
+
key = crypto.kem_derive(sk, pk)
|
|
204
|
+
|
|
205
|
+
message = np.array([1, 2, 3, 4, 5], dtype=np.uint8)
|
|
206
|
+
message_obj = tensor.constant(message)
|
|
207
|
+
|
|
208
|
+
# Should work without explicit algo (defaults to "aes-gcm")
|
|
209
|
+
ciphertext = crypto.sym_encrypt(key, message_obj)
|
|
210
|
+
plaintext = crypto.sym_decrypt(
|
|
211
|
+
key, ciphertext, target_type=elt.TensorType(elt.u8, (5,))
|
|
212
|
+
)
|
|
213
|
+
np.testing.assert_array_equal(_unwrap(plaintext.runtime_obj), message)
|
|
214
|
+
|
|
177
215
|
|
|
178
216
|
class TestDigitalEnvelope:
|
|
179
217
|
"""Test complete digital envelope workflow."""
|
|
@@ -236,3 +274,67 @@ class TestDigitalEnvelope:
|
|
|
236
274
|
ct_b = crypto.sym_encrypt(bob_key, msg_b_obj)
|
|
237
275
|
pt_b = crypto.sym_decrypt(alice_key, ct_b, elt.TensorType(elt.u8, (3,)))
|
|
238
276
|
np.testing.assert_array_equal(_unwrap(pt_b.runtime_obj), msg_b)
|
|
277
|
+
|
|
278
|
+
|
|
279
|
+
class TestAlgoParameter:
|
|
280
|
+
"""Test algo parameter validation in sym_encrypt/sym_decrypt."""
|
|
281
|
+
|
|
282
|
+
def setup_method(self):
|
|
283
|
+
self.interpreter = Interpreter()
|
|
284
|
+
self.interpreter.__enter__()
|
|
285
|
+
sk, pk = crypto.kem_keygen("x25519")
|
|
286
|
+
self.key = crypto.kem_derive(sk, pk)
|
|
287
|
+
|
|
288
|
+
def teardown_method(self):
|
|
289
|
+
self.interpreter.__exit__(None, None, None)
|
|
290
|
+
|
|
291
|
+
def test_default_algo_works(self):
|
|
292
|
+
"""Test default algo='aes-gcm' works without explicit parameter."""
|
|
293
|
+
|
|
294
|
+
message = np.array([1, 2, 3], dtype=np.uint8)
|
|
295
|
+
message_obj = tensor.constant(message)
|
|
296
|
+
|
|
297
|
+
# Use default algo (should be aes-gcm)
|
|
298
|
+
ciphertext = crypto.sym_encrypt(self.key, message_obj)
|
|
299
|
+
plaintext = crypto.sym_decrypt(
|
|
300
|
+
self.key, ciphertext, elt.TensorType(elt.u8, (3,))
|
|
301
|
+
)
|
|
302
|
+
np.testing.assert_array_equal(_unwrap(plaintext.runtime_obj), message)
|
|
303
|
+
|
|
304
|
+
def test_explicit_aes_gcm_algo(self):
|
|
305
|
+
"""Test explicitly passing algo='aes-gcm' works."""
|
|
306
|
+
|
|
307
|
+
message = np.array([4, 5, 6], dtype=np.uint8)
|
|
308
|
+
message_obj = tensor.constant(message)
|
|
309
|
+
|
|
310
|
+
# Explicitly pass algo='aes-gcm'
|
|
311
|
+
ciphertext = crypto.sym_encrypt(self.key, message_obj, algo="aes-gcm")
|
|
312
|
+
plaintext = crypto.sym_decrypt(
|
|
313
|
+
self.key, ciphertext, elt.TensorType(elt.u8, (3,)), algo="aes-gcm"
|
|
314
|
+
)
|
|
315
|
+
np.testing.assert_array_equal(_unwrap(plaintext.runtime_obj), message)
|
|
316
|
+
|
|
317
|
+
def test_unsupported_algo_encrypt_fails(self):
|
|
318
|
+
"""Test that unsupported algo raises ValueError during encryption."""
|
|
319
|
+
|
|
320
|
+
message = np.array([7, 8, 9], dtype=np.uint8)
|
|
321
|
+
message_obj = tensor.constant(message)
|
|
322
|
+
|
|
323
|
+
# Try unsupported algorithm
|
|
324
|
+
with pytest.raises(ValueError, match="Unsupported encryption algorithm"):
|
|
325
|
+
crypto.sym_encrypt(self.key, message_obj, algo="aes-ctr")
|
|
326
|
+
|
|
327
|
+
def test_unsupported_algo_decrypt_fails(self):
|
|
328
|
+
"""Test that unsupported algo raises ValueError during decryption."""
|
|
329
|
+
|
|
330
|
+
message = np.array([10, 11, 12], dtype=np.uint8)
|
|
331
|
+
message_obj = tensor.constant(message)
|
|
332
|
+
|
|
333
|
+
# Encrypt with default algo
|
|
334
|
+
ciphertext = crypto.sym_encrypt(self.key, message_obj)
|
|
335
|
+
|
|
336
|
+
# Try to decrypt with unsupported algorithm
|
|
337
|
+
with pytest.raises(ValueError, match="Unsupported decryption algorithm"):
|
|
338
|
+
crypto.sym_decrypt(
|
|
339
|
+
self.key, ciphertext, elt.TensorType(elt.u8, (3,)), algo="sm4-gcm"
|
|
340
|
+
)
|
|
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.dev261 → mplang_nightly-0.1.dev263}/examples/v1/xgboost/bench_fhe_hist.py
RENAMED
|
File without changes
|
|
File without changes
|
{mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/examples/v1/xgboost/hist_jax_test.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
|
|
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.dev261 → mplang_nightly-0.1.dev263}/mplang/v1/protos/v1alpha1/mpir_pb2.py
RENAMED
|
File without changes
|
{mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/mplang/v1/protos/v1alpha1/mpir_pb2.pyi
RENAMED
|
File without changes
|
{mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/mplang/v1/protos/v1alpha1/value_pb2.py
RENAMED
|
File without changes
|
{mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/mplang/v1/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
|
{mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/mplang/v2/backends/simp_driver/__init__.py
RENAMED
|
File without changes
|
{mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/mplang/v2/backends/simp_driver/http.py
RENAMED
|
File without changes
|
{mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/mplang/v2/backends/simp_driver/mem.py
RENAMED
|
File without changes
|
{mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/mplang/v2/backends/simp_driver/ops.py
RENAMED
|
File without changes
|
{mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/mplang/v2/backends/simp_driver/state.py
RENAMED
|
File without changes
|
{mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/mplang/v2/backends/simp_driver/values.py
RENAMED
|
File without changes
|
{mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/mplang/v2/backends/simp_worker/__init__.py
RENAMED
|
File without changes
|
{mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/mplang/v2/backends/simp_worker/http.py
RENAMED
|
File without changes
|
{mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/mplang/v2/backends/simp_worker/mem.py
RENAMED
|
File without changes
|
{mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/mplang/v2/backends/simp_worker/ops.py
RENAMED
|
File without changes
|
{mplang_nightly-0.1.dev261 → mplang_nightly-0.1.dev263}/mplang/v2/backends/simp_worker/state.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
|