mplang-nightly 0.1.dev269__py3-none-any.whl → 0.1.dev270__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (180) hide show
  1. mplang/__init__.py +391 -17
  2. mplang/{v2/backends → backends}/__init__.py +9 -7
  3. mplang/{v2/backends → backends}/bfv_impl.py +6 -6
  4. mplang/{v2/backends → backends}/crypto_impl.py +6 -6
  5. mplang/{v2/backends → backends}/field_impl.py +5 -5
  6. mplang/{v2/backends → backends}/func_impl.py +4 -4
  7. mplang/{v2/backends → backends}/phe_impl.py +3 -3
  8. mplang/{v2/backends → backends}/simp_design.md +1 -1
  9. mplang/{v2/backends → backends}/simp_driver/__init__.py +5 -5
  10. mplang/{v2/backends → backends}/simp_driver/http.py +8 -8
  11. mplang/{v2/backends → backends}/simp_driver/mem.py +9 -9
  12. mplang/{v2/backends → backends}/simp_driver/ops.py +4 -4
  13. mplang/{v2/backends → backends}/simp_driver/state.py +2 -2
  14. mplang/{v2/backends → backends}/simp_driver/values.py +2 -2
  15. mplang/{v2/backends → backends}/simp_worker/__init__.py +3 -3
  16. mplang/{v2/backends → backends}/simp_worker/http.py +10 -10
  17. mplang/{v2/backends → backends}/simp_worker/mem.py +1 -1
  18. mplang/{v2/backends → backends}/simp_worker/ops.py +5 -5
  19. mplang/{v2/backends → backends}/simp_worker/state.py +2 -4
  20. mplang/{v2/backends → backends}/spu_impl.py +8 -8
  21. mplang/{v2/backends → backends}/spu_state.py +4 -4
  22. mplang/{v2/backends → backends}/store_impl.py +3 -3
  23. mplang/{v2/backends → backends}/table_impl.py +8 -8
  24. mplang/{v2/backends → backends}/tee_impl.py +6 -6
  25. mplang/{v2/backends → backends}/tensor_impl.py +6 -6
  26. mplang/{v2/cli.py → cli.py} +9 -9
  27. mplang/{v2/cli_guide.md → cli_guide.md} +12 -12
  28. mplang/{v2/dialects → dialects}/__init__.py +5 -5
  29. mplang/{v2/dialects → dialects}/bfv.py +6 -6
  30. mplang/{v2/dialects → dialects}/crypto.py +5 -5
  31. mplang/{v2/dialects → dialects}/dtypes.py +2 -2
  32. mplang/{v2/dialects → dialects}/field.py +3 -3
  33. mplang/{v2/dialects → dialects}/func.py +2 -2
  34. mplang/{v2/dialects → dialects}/phe.py +6 -6
  35. mplang/{v2/dialects → dialects}/simp.py +6 -6
  36. mplang/{v2/dialects → dialects}/spu.py +7 -7
  37. mplang/{v2/dialects → dialects}/store.py +2 -2
  38. mplang/{v2/dialects → dialects}/table.py +3 -3
  39. mplang/{v2/dialects → dialects}/tee.py +6 -6
  40. mplang/{v2/dialects → dialects}/tensor.py +5 -5
  41. mplang/{v2/edsl → edsl}/__init__.py +3 -3
  42. mplang/{v2/edsl → edsl}/context.py +6 -6
  43. mplang/{v2/edsl → edsl}/graph.py +5 -5
  44. mplang/{v2/edsl → edsl}/jit.py +2 -2
  45. mplang/{v2/edsl → edsl}/object.py +1 -1
  46. mplang/{v2/edsl → edsl}/primitive.py +5 -5
  47. mplang/{v2/edsl → edsl}/printer.py +1 -1
  48. mplang/{v2/edsl → edsl}/serde.py +1 -1
  49. mplang/{v2/edsl → edsl}/tracer.py +7 -7
  50. mplang/{v2/edsl → edsl}/typing.py +1 -1
  51. mplang/{v2/kernels → kernels}/ldpc.cpp +13 -13
  52. mplang/{v2/kernels → kernels}/okvs.cpp +4 -4
  53. mplang/{v2/kernels → kernels}/okvs_opt.cpp +31 -31
  54. mplang/{v2/kernels → kernels}/py_kernels.py +1 -1
  55. mplang/{v2/libs → libs}/collective.py +5 -5
  56. mplang/{v2/libs → libs}/device/__init__.py +1 -1
  57. mplang/{v2/libs → libs}/device/api.py +12 -12
  58. mplang/{v2/libs → libs}/ml/__init__.py +1 -1
  59. mplang/{v2/libs → libs}/ml/sgb.py +4 -4
  60. mplang/{v2/libs → libs}/mpc/__init__.py +3 -3
  61. mplang/{v2/libs → libs}/mpc/_utils.py +2 -2
  62. mplang/{v2/libs → libs}/mpc/analytics/aggregation.py +1 -1
  63. mplang/{v2/libs → libs}/mpc/analytics/groupby.py +2 -2
  64. mplang/{v2/libs → libs}/mpc/analytics/permutation.py +3 -3
  65. mplang/{v2/libs → libs}/mpc/ot/base.py +3 -3
  66. mplang/{v2/libs → libs}/mpc/ot/extension.py +2 -2
  67. mplang/{v2/libs → libs}/mpc/ot/silent.py +4 -4
  68. mplang/{v2/libs → libs}/mpc/psi/cuckoo.py +3 -3
  69. mplang/{v2/libs → libs}/mpc/psi/okvs.py +1 -1
  70. mplang/{v2/libs → libs}/mpc/psi/okvs_gct.py +3 -3
  71. mplang/{v2/libs → libs}/mpc/psi/oprf.py +3 -3
  72. mplang/{v2/libs → libs}/mpc/psi/rr22.py +7 -7
  73. mplang/{v2/libs → libs}/mpc/psi/unbalanced.py +4 -4
  74. mplang/{v2/libs → libs}/mpc/vole/gilboa.py +3 -3
  75. mplang/{v2/libs → libs}/mpc/vole/ldpc.py +2 -2
  76. mplang/{v2/libs → libs}/mpc/vole/silver.py +6 -6
  77. mplang/{v2/runtime → runtime}/interpreter.py +11 -11
  78. mplang/{v2/runtime → runtime}/value.py +2 -2
  79. mplang/{v1/runtime → utils}/__init__.py +18 -15
  80. mplang/{v1/utils → utils}/func_utils.py +1 -1
  81. {mplang_nightly-0.1.dev269.dist-info → mplang_nightly-0.1.dev270.dist-info}/METADATA +2 -2
  82. mplang_nightly-0.1.dev270.dist-info/RECORD +102 -0
  83. mplang/v1/__init__.py +0 -157
  84. mplang/v1/_device.py +0 -602
  85. mplang/v1/analysis/__init__.py +0 -37
  86. mplang/v1/analysis/diagram.py +0 -567
  87. mplang/v1/core/__init__.py +0 -157
  88. mplang/v1/core/cluster.py +0 -343
  89. mplang/v1/core/comm.py +0 -281
  90. mplang/v1/core/context_mgr.py +0 -50
  91. mplang/v1/core/dtypes.py +0 -335
  92. mplang/v1/core/expr/__init__.py +0 -80
  93. mplang/v1/core/expr/ast.py +0 -542
  94. mplang/v1/core/expr/evaluator.py +0 -581
  95. mplang/v1/core/expr/printer.py +0 -285
  96. mplang/v1/core/expr/transformer.py +0 -141
  97. mplang/v1/core/expr/utils.py +0 -78
  98. mplang/v1/core/expr/visitor.py +0 -85
  99. mplang/v1/core/expr/walk.py +0 -387
  100. mplang/v1/core/interp.py +0 -160
  101. mplang/v1/core/mask.py +0 -325
  102. mplang/v1/core/mpir.py +0 -965
  103. mplang/v1/core/mpobject.py +0 -117
  104. mplang/v1/core/mptype.py +0 -407
  105. mplang/v1/core/pfunc.py +0 -130
  106. mplang/v1/core/primitive.py +0 -877
  107. mplang/v1/core/table.py +0 -218
  108. mplang/v1/core/tensor.py +0 -75
  109. mplang/v1/core/tracer.py +0 -383
  110. mplang/v1/host.py +0 -130
  111. mplang/v1/kernels/__init__.py +0 -41
  112. mplang/v1/kernels/base.py +0 -125
  113. mplang/v1/kernels/basic.py +0 -240
  114. mplang/v1/kernels/context.py +0 -369
  115. mplang/v1/kernels/crypto.py +0 -122
  116. mplang/v1/kernels/fhe.py +0 -858
  117. mplang/v1/kernels/mock_tee.py +0 -72
  118. mplang/v1/kernels/phe.py +0 -1864
  119. mplang/v1/kernels/spu.py +0 -341
  120. mplang/v1/kernels/sql_duckdb.py +0 -44
  121. mplang/v1/kernels/stablehlo.py +0 -90
  122. mplang/v1/kernels/value.py +0 -626
  123. mplang/v1/ops/__init__.py +0 -35
  124. mplang/v1/ops/base.py +0 -424
  125. mplang/v1/ops/basic.py +0 -294
  126. mplang/v1/ops/crypto.py +0 -262
  127. mplang/v1/ops/fhe.py +0 -272
  128. mplang/v1/ops/jax_cc.py +0 -147
  129. mplang/v1/ops/nnx_cc.py +0 -168
  130. mplang/v1/ops/phe.py +0 -216
  131. mplang/v1/ops/spu.py +0 -151
  132. mplang/v1/ops/sql_cc.py +0 -303
  133. mplang/v1/ops/tee.py +0 -36
  134. mplang/v1/protos/v1alpha1/mpir_pb2.py +0 -63
  135. mplang/v1/protos/v1alpha1/mpir_pb2.pyi +0 -557
  136. mplang/v1/protos/v1alpha1/value_pb2.py +0 -34
  137. mplang/v1/protos/v1alpha1/value_pb2.pyi +0 -169
  138. mplang/v1/runtime/channel.py +0 -230
  139. mplang/v1/runtime/cli.py +0 -451
  140. mplang/v1/runtime/client.py +0 -456
  141. mplang/v1/runtime/communicator.py +0 -131
  142. mplang/v1/runtime/data_providers.py +0 -303
  143. mplang/v1/runtime/driver.py +0 -324
  144. mplang/v1/runtime/exceptions.py +0 -27
  145. mplang/v1/runtime/http_api.md +0 -56
  146. mplang/v1/runtime/link_comm.py +0 -196
  147. mplang/v1/runtime/server.py +0 -501
  148. mplang/v1/runtime/session.py +0 -270
  149. mplang/v1/runtime/simulation.py +0 -324
  150. mplang/v1/simp/__init__.py +0 -13
  151. mplang/v1/simp/api.py +0 -353
  152. mplang/v1/simp/mpi.py +0 -131
  153. mplang/v1/simp/party.py +0 -225
  154. mplang/v1/simp/random.py +0 -120
  155. mplang/v1/simp/smpc.py +0 -238
  156. mplang/v1/utils/__init__.py +0 -13
  157. mplang/v1/utils/crypto.py +0 -32
  158. mplang/v1/utils/spu_utils.py +0 -130
  159. mplang/v1/utils/table_utils.py +0 -185
  160. mplang/v2/__init__.py +0 -424
  161. mplang_nightly-0.1.dev269.dist-info/RECORD +0 -180
  162. /mplang/{v2/backends → backends}/channel.py +0 -0
  163. /mplang/{v2/edsl → edsl}/README.md +0 -0
  164. /mplang/{v2/edsl → edsl}/registry.py +0 -0
  165. /mplang/{v2/kernels → kernels}/Makefile +0 -0
  166. /mplang/{v2/kernels → kernels}/__init__.py +0 -0
  167. /mplang/{v2/kernels → kernels}/gf128.cpp +0 -0
  168. /mplang/{v2/libs → libs}/device/cluster.py +0 -0
  169. /mplang/{v2/libs → libs}/mpc/analytics/__init__.py +0 -0
  170. /mplang/{v2/libs → libs}/mpc/analytics/groupby.md +0 -0
  171. /mplang/{v2/libs → libs}/mpc/common/constants.py +0 -0
  172. /mplang/{v2/libs → libs}/mpc/ot/__init__.py +0 -0
  173. /mplang/{v2/libs → libs}/mpc/psi/__init__.py +0 -0
  174. /mplang/{v2/libs → libs}/mpc/vole/__init__.py +0 -0
  175. /mplang/{v2/runtime → runtime}/__init__.py +0 -0
  176. /mplang/{v2/runtime → runtime}/dialect_state.py +0 -0
  177. /mplang/{v2/runtime → runtime}/object_store.py +0 -0
  178. {mplang_nightly-0.1.dev269.dist-info → mplang_nightly-0.1.dev270.dist-info}/WHEEL +0 -0
  179. {mplang_nightly-0.1.dev269.dist-info → mplang_nightly-0.1.dev270.dist-info}/entry_points.txt +0 -0
  180. {mplang_nightly-0.1.dev269.dist-info → mplang_nightly-0.1.dev270.dist-info}/licenses/LICENSE +0 -0
@@ -14,7 +14,7 @@
14
14
 
15
15
  """Machine Learning algorithms for secure multi-party computation."""
16
16
 
17
- from mplang.v2.libs.ml.sgb import SecureBoost, Tree, TreeEnsemble
17
+ from mplang.libs.ml.sgb import SecureBoost, Tree, TreeEnsemble
18
18
 
19
19
  __all__ = [
20
20
  "SecureBoost",
@@ -14,7 +14,7 @@
14
14
 
15
15
  # mypy: disable-error-code="no-untyped-def,no-any-return,var-annotated"
16
16
 
17
- """SecureBoost v2: Optimized implementation using mplang.v2 low-level BFV APIs.
17
+ """SecureBoost v2: Optimized implementation using mplang low-level BFV APIs.
18
18
 
19
19
  This implementation improves upon v1 by leveraging BFV SIMD slots and the
20
20
  groupby primitives for efficient histogram computation.
@@ -46,8 +46,8 @@ import jax.numpy as jnp
46
46
  import numpy as np
47
47
  from jax.ops import segment_sum
48
48
 
49
- from mplang.v2.dialects import bfv, simp, tensor
50
- from mplang.v2.libs.mpc.analytics import aggregation
49
+ from mplang.dialects import bfv, simp, tensor
50
+ from mplang.libs.mpc.analytics import aggregation
51
51
 
52
52
  # ==============================================================================
53
53
  # Configuration
@@ -1687,7 +1687,7 @@ def fit_tree_ensemble(
1687
1687
 
1688
1688
 
1689
1689
  class SecureBoost:
1690
- """SecureBoost classifier using mplang.v2 low-level BFV APIs.
1690
+ """SecureBoost classifier using mplang low-level BFV APIs.
1691
1691
 
1692
1692
  This is an optimized implementation that uses BFV SIMD slots for
1693
1693
  efficient histogram computation.
@@ -21,9 +21,9 @@ Subpackages:
21
21
  - analytics: Privacy-preserving analytics
22
22
 
23
23
  Example usage:
24
- from mplang.v2.libs.mpc import ot_transfer, apply_permutation
25
- from mplang.v2.libs.mpc.vole import silver_vole
26
- from mplang.v2.libs.mpc.psi import psi_intersect
24
+ from mplang.libs.mpc import ot_transfer, apply_permutation
25
+ from mplang.libs.mpc.vole import silver_vole
26
+ from mplang.libs.mpc.psi import psi_intersect
27
27
  """
28
28
 
29
29
  from .analytics.aggregation import rotate_and_sum
@@ -20,8 +20,8 @@ from typing import Any, cast
20
20
 
21
21
  import jax.numpy as jnp
22
22
 
23
- import mplang.v2.edsl as el
24
- from mplang.v2.dialects import tensor
23
+ import mplang.edsl as el
24
+ from mplang.dialects import tensor
25
25
 
26
26
 
27
27
  def bytes_to_bits(data: el.Object) -> el.Object:
@@ -24,7 +24,7 @@ from typing import Any
24
24
 
25
25
  import numpy as np
26
26
 
27
- from mplang.v2.dialects import bfv, tensor
27
+ from mplang.dialects import bfv, tensor
28
28
 
29
29
 
30
30
  def _safe_rotate(
@@ -27,8 +27,8 @@ from typing import Any
27
27
  import jax
28
28
  import jax.numpy as jnp
29
29
 
30
- from mplang.v2.dialects import bfv, crypto, simp, tensor
31
- from mplang.v2.libs.mpc.analytics import aggregation, permutation
30
+ from mplang.dialects import bfv, crypto, simp, tensor
31
+ from mplang.libs.mpc.analytics import aggregation, permutation
32
32
 
33
33
 
34
34
  def oblivious_groupby_sum_bfv(
@@ -33,9 +33,9 @@ import jax
33
33
  import jax.numpy as jnp
34
34
  import numpy as np
35
35
 
36
- import mplang.v2.edsl.typing as elt
37
- from mplang.v2.dialects import simp, tensor
38
- from mplang.v2.libs.mpc.ot import base as ot
36
+ import mplang.edsl.typing as elt
37
+ from mplang.dialects import simp, tensor
38
+ from mplang.libs.mpc.ot import base as ot
39
39
 
40
40
 
41
41
  def secure_switch(
@@ -27,9 +27,9 @@ from typing import Any, cast
27
27
 
28
28
  import numpy as np
29
29
 
30
- import mplang.v2.edsl as el
31
- import mplang.v2.edsl.typing as elt
32
- from mplang.v2.dialects import crypto, simp, tensor
30
+ import mplang.edsl as el
31
+ import mplang.edsl.typing as elt
32
+ from mplang.dialects import crypto, simp, tensor
33
33
 
34
34
 
35
35
  def _receiver_keygen_scalar(
@@ -24,8 +24,8 @@ from typing import Any, cast
24
24
 
25
25
  import jax.numpy as jnp
26
26
 
27
- import mplang.v2.edsl as el
28
- from mplang.v2.dialects import crypto, field, simp, tensor
27
+ import mplang.edsl as el
28
+ from mplang.dialects import crypto, field, simp, tensor
29
29
 
30
30
 
31
31
  def prg_expand(seed_tensor: el.Object, length: int) -> el.Object:
@@ -22,10 +22,10 @@ from typing import Any, cast
22
22
 
23
23
  import jax.numpy as jnp
24
24
 
25
- import mplang.v2.edsl as el
26
- import mplang.v2.edsl.typing as elt
27
- import mplang.v2.libs.mpc.vole.gilboa as vole
28
- from mplang.v2.dialects import crypto, field, simp, tensor
25
+ import mplang.edsl as el
26
+ import mplang.edsl.typing as elt
27
+ import mplang.libs.mpc.vole.gilboa as vole
28
+ from mplang.dialects import crypto, field, simp, tensor
29
29
 
30
30
 
31
31
  def silent_vole_random_u(
@@ -26,9 +26,9 @@ from typing import Any, cast
26
26
 
27
27
  import jax.numpy as jnp
28
28
 
29
- import mplang.v2.edsl as el
30
- from mplang.v2.dialects import tensor
31
- from mplang.v2.libs.mpc.common.constants import (
29
+ import mplang.edsl as el
30
+ from mplang.dialects import tensor
31
+ from mplang.libs.mpc.common.constants import (
32
32
  E_FRAC_1,
33
33
  GOLDEN_RATIO_64,
34
34
  PI_FRAC_1,
@@ -16,7 +16,7 @@
16
16
 
17
17
  from abc import ABC, abstractmethod
18
18
 
19
- import mplang.v2.edsl as el
19
+ import mplang.edsl as el
20
20
 
21
21
 
22
22
  class OKVS(ABC):
@@ -18,9 +18,9 @@ This module provides the core data structures and algorithms for Sparse OKVS,
18
18
  which is a critical component in unbalanced Private Set Intersection (PSI).
19
19
  """
20
20
 
21
- import mplang.v2.edsl as el
22
- from mplang.v2.dialects import field
23
- from mplang.v2.libs.mpc.psi.okvs import OKVS
21
+ import mplang.edsl as el
22
+ from mplang.dialects import field
23
+ from mplang.libs.mpc.psi.okvs import OKVS
24
24
 
25
25
  # ============================================================================
26
26
  # Constants
@@ -24,9 +24,9 @@ from typing import Any, cast
24
24
 
25
25
  import jax.numpy as jnp
26
26
 
27
- import mplang.v2.edsl as el
28
- from mplang.v2.dialects import simp, tensor
29
- from mplang.v2.libs.mpc.ot import extension as ot_extension
27
+ import mplang.edsl as el
28
+ from mplang.dialects import simp, tensor
29
+ from mplang.libs.mpc.ot import extension as ot_extension
30
30
 
31
31
 
32
32
  def eval_oprf(
@@ -64,9 +64,9 @@ from typing import Any, cast
64
64
 
65
65
  import jax.numpy as jnp
66
66
 
67
- import mplang.v2.edsl as el
68
- import mplang.v2.libs.mpc.ot.silent as silent_ot
69
- from mplang.v2.dialects import field, simp, tensor
67
+ import mplang.edsl as el
68
+ import mplang.libs.mpc.ot.silent as silent_ot
69
+ from mplang.dialects import field, simp, tensor
70
70
 
71
71
 
72
72
  def psi_intersect(
@@ -107,7 +107,7 @@ def psi_intersect(
107
107
  # =========================================================================
108
108
  # Phase 1. Parameter Setup
109
109
  # =========================================================================
110
- import mplang.v2.libs.mpc.psi.okvs_gct as okvs_gct
110
+ import mplang.libs.mpc.psi.okvs_gct as okvs_gct
111
111
 
112
112
  expansion = okvs_gct.get_okvs_expansion(n)
113
113
  M = int(n * expansion)
@@ -137,8 +137,8 @@ def psi_intersect(
137
137
  # Receiver masks P with U (Paper's A vector).
138
138
  # Q = P ^ U
139
139
 
140
- from mplang.v2.dialects import crypto
141
- from mplang.v2.edsl import typing as elt
140
+ from mplang.dialects import crypto
141
+ from mplang.edsl import typing as elt
142
142
 
143
143
  def _gen_seed() -> Any:
144
144
  return crypto.random_tensor((2,), elt.u64)
@@ -262,7 +262,7 @@ def psi_intersect(
262
262
  # the truncated hash (first 16 bytes).
263
263
 
264
264
  # 5.1 Compute hashed & truncated tags on Sender
265
- from mplang.v2.libs.mpc.ot import extension as ot_extension
265
+ from mplang.libs.mpc.ot import extension as ot_extension
266
266
 
267
267
  def _hash_and_trunc(tags: Any) -> Any:
268
268
  # Compute batched hash on sender and truncate to 16 bytes
@@ -36,10 +36,10 @@ from typing import Any, cast
36
36
 
37
37
  import jax.numpy as jnp
38
38
 
39
- import mplang.v2.edsl as el
40
- import mplang.v2.edsl.typing as elt
41
- from mplang.v2.dialects import crypto, field, simp, tensor
42
- from mplang.v2.libs.mpc.psi.okvs_gct import get_okvs_expansion
39
+ import mplang.edsl as el
40
+ import mplang.edsl.typing as elt
41
+ from mplang.dialects import crypto, field, simp, tensor
42
+ from mplang.libs.mpc.psi.okvs_gct import get_okvs_expansion
43
43
 
44
44
 
45
45
  def psi_unbalanced(
@@ -24,9 +24,9 @@ from typing import Any, cast
24
24
  import jax.numpy as jnp
25
25
  import numpy as np
26
26
 
27
- import mplang.v2.edsl as el
28
- import mplang.v2.libs.mpc.ot.extension as ot
29
- from mplang.v2.dialects import field, simp, tensor
27
+ import mplang.edsl as el
28
+ import mplang.libs.mpc.ot.extension as ot
29
+ from mplang.dialects import field, simp, tensor
30
30
 
31
31
 
32
32
  def vole(
@@ -32,8 +32,8 @@ import jax.numpy as jnp
32
32
  import numpy as np
33
33
  import scipy.sparse as sp
34
34
 
35
- import mplang.v2.edsl as el
36
- from mplang.v2.dialects import crypto, field, tensor
35
+ import mplang.edsl as el
36
+ from mplang.dialects import crypto, field, tensor
37
37
 
38
38
  # ============================================================================
39
39
  # Constants
@@ -43,11 +43,11 @@ from typing import Any, cast
43
43
 
44
44
  import jax.numpy as jnp
45
45
 
46
- import mplang.v2.edsl as el
47
- import mplang.v2.edsl.typing as elt
48
- import mplang.v2.libs.mpc.ot.extension as ot
49
- from mplang.v2.dialects import crypto, field, simp, tensor
50
- from mplang.v2.libs.mpc.vole import ldpc
46
+ import mplang.edsl as el
47
+ import mplang.edsl.typing as elt
48
+ import mplang.libs.mpc.ot.extension as ot
49
+ from mplang.dialects import crypto, field, simp, tensor
50
+ from mplang.libs.mpc.vole import ldpc
51
51
 
52
52
  # ============================================================================
53
53
  # Constants
@@ -148,7 +148,7 @@ def silver_vole(
148
148
  H_indices_r, H_indptr_r = simp.pcall_static((receiver,), _sparse_struct_provider)
149
149
 
150
150
  # 2. Base VOLE (Size K)
151
- from mplang.v2.libs.mpc.vole import gilboa
151
+ from mplang.libs.mpc.vole import gilboa
152
152
 
153
153
  def _u_base_provider() -> el.Object:
154
154
  # Generate random u_base using new API
@@ -33,16 +33,16 @@ import time
33
33
  from collections.abc import Callable
34
34
  from typing import TYPE_CHECKING, Any, cast
35
35
 
36
- from mplang.v2.edsl.context import AbstractInterpreter
37
- from mplang.v2.edsl.graph import Graph
38
- from mplang.v2.edsl.object import Object
39
- from mplang.v2.edsl.registry import get_impl
40
- from mplang.v2.edsl.typing import BaseType
41
- from mplang.v2.runtime.dialect_state import DialectState
42
- from mplang.v2.runtime.object_store import ObjectStore
36
+ from mplang.edsl.context import AbstractInterpreter
37
+ from mplang.edsl.graph import Graph
38
+ from mplang.edsl.object import Object
39
+ from mplang.edsl.registry import get_impl
40
+ from mplang.edsl.typing import BaseType
41
+ from mplang.runtime.dialect_state import DialectState
42
+ from mplang.runtime.object_store import ObjectStore
43
43
 
44
44
  if TYPE_CHECKING:
45
- from mplang.v2.edsl.primitive import Primitive
45
+ from mplang.edsl.primitive import Primitive
46
46
 
47
47
 
48
48
  class ExecutionTracer:
@@ -442,8 +442,8 @@ class Interpreter(AbstractInterpreter):
442
442
  Returns:
443
443
  Execution result (InterpObject or list of InterpObject or mixed with immediates)
444
444
  """
445
- from mplang.v1.utils.func_utils import var_demorph, var_morph
446
- from mplang.v2.edsl.tracer import Tracer
445
+ from mplang.edsl.tracer import Tracer
446
+ from mplang.utils import var_demorph, var_morph
447
447
 
448
448
  # Create tracer and build graph
449
449
  # Note: primitive.bind() internally calls Tracer.lift() with is_param=False,
@@ -525,7 +525,7 @@ class Interpreter(AbstractInterpreter):
525
525
  >>> interp = Interpreter()
526
526
  >>> z_interp = interp.lift(z_trace) # evaluate graph → InterpObject
527
527
  """
528
- from mplang.v2.edsl.tracer import TraceObject
528
+ from mplang.edsl.tracer import TraceObject
529
529
 
530
530
  if isinstance(obj, InterpObject):
531
531
  # InterpObject must belong to this interpreter
@@ -22,8 +22,8 @@ This module defines:
22
22
  implements the "wrap/unwrap" pattern with automatic type conversion.
23
23
 
24
24
  Usage:
25
- from mplang.v2.runtime.value import Value
26
- from mplang.v2.edsl import serde
25
+ from mplang.runtime.value import Value
26
+ from mplang.edsl import serde
27
27
 
28
28
  @serde.register_class
29
29
  class MyValue(Value):
@@ -12,21 +12,24 @@
12
12
  # See the License for the specific language governing permissions and
13
13
  # limitations under the License.
14
14
 
15
- """
16
- Runtime components for mplang.
17
-
18
- This module contains runtime implementations including:
19
- - Simulator for local simulation
20
- - Driver for distributed execution
21
- """
22
-
23
- from mplang.v1.runtime.driver import Driver, DriverVar
24
- from mplang.v1.runtime.simulation import Simulator
15
+ from .func_utils import (
16
+ MorphStruct,
17
+ is_treedef_list,
18
+ list_reconstruct,
19
+ list_split,
20
+ normalize_fn,
21
+ validate_morph_struct,
22
+ var_demorph,
23
+ var_morph,
24
+ )
25
25
 
26
26
  __all__ = [
27
- "Driver",
28
- "DriverVar",
29
- "Simulator",
30
- # "serve",
31
- # "start_cluster",
27
+ "MorphStruct",
28
+ "is_treedef_list",
29
+ "list_reconstruct",
30
+ "list_split",
31
+ "normalize_fn",
32
+ "validate_morph_struct",
33
+ "var_demorph",
34
+ "var_morph",
32
35
  ]
@@ -119,7 +119,7 @@ def normalize_fn(
119
119
  return normalized, params
120
120
 
121
121
 
122
- def is_treedef_list(treedef: PyTreeDef) -> bool:
122
+ def is_treedef_list(treedef: PyTreeDef) -> bool: # type: ignore
123
123
  """
124
124
  Checks if a PyTreeDef object represents a simple (non-nested) list.
125
125
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: mplang-nightly
3
- Version: 0.1.dev269
3
+ Version: 0.1.dev270
4
4
  Summary: Multi-Party Programming Language
5
5
  Author-email: SecretFlow Team <secretflow-contact@service.alipay.com>
6
6
  License: Apache License
@@ -214,7 +214,7 @@ Requires-Dist: flax>=0.12.0
214
214
  Requires-Dist: httpx<1.0.0,>=0.27.0
215
215
  Requires-Dist: jax[cpu]==0.8.0
216
216
  Requires-Dist: lightphe<0.1.0,>=0.0.15
217
- Requires-Dist: numpy>=2.0.0
217
+ Requires-Dist: numpy!=2.4.0,>=2.0.0
218
218
  Requires-Dist: pandas>=2.0.0
219
219
  Requires-Dist: protobuf<6.0,>=5.0
220
220
  Requires-Dist: pyarrow>=14.0.0
@@ -0,0 +1,102 @@
1
+ mplang/__init__.py,sha256=q-H8IXjVuI79eHhSFVh4FT5KbYow4lGyji2MyLsjufw,13429
2
+ mplang/cli.py,sha256=PqxgWL0rtG-0zuip4JzoVKTIQ5gAwIwHzG3xlZJaBwI,19638
3
+ mplang/cli_guide.md,sha256=hKC6AKgJn-lM_wZ0CzZIP2QUBxGPnT0Op_1YyeUhCfI,3581
4
+ mplang/py.typed,sha256=RyhZV7Yxo8BvEoBiFz5fH3IWVqQKTcBBE-bzjx_N5GQ,583
5
+ mplang/backends/__init__.py,sha256=EnKHmOX4YgvNVA42k_KfiS-Vn860yN7Rj9XkUU0g9ys,2042
6
+ mplang/backends/bfv_impl.py,sha256=qobGXe7ldWvYVcqdkNsTcVdNV-hUVE9-Ks5pd3X0Mvc,25691
7
+ mplang/backends/channel.py,sha256=t8P7RphNnhvo3Zj08hX85d7PxgWQXiMGNYfZPK_4YoM,6622
8
+ mplang/backends/crypto_impl.py,sha256=m5tbZpedn4McG5t6HIaEjhTQUFOIaEDMdyEG0499S0Y,23187
9
+ mplang/backends/field_impl.py,sha256=lIghppy0i8QL7aTNCr8tNWjC_bvOXBIKLnavaO0fIOA,14773
10
+ mplang/backends/func_impl.py,sha256=vhkSJnvgSzvQWXqOE40O8npqOmtNqLxefzv9ETuQODQ,3573
11
+ mplang/backends/phe_impl.py,sha256=CefRpFrRJvbZm3X58OYOFAyNZXKDp081Q6CT8fhdreE,4118
12
+ mplang/backends/simp_design.md,sha256=u4YeDLKk5avsueXhzPtt4OUBToBmurOVK_BWTKTJ7w0,5246
13
+ mplang/backends/spu_impl.py,sha256=6hGdEcZ34ZkwsD6ZnkrhNkmut_UnWWxNiOgHQwMKMCs,9451
14
+ mplang/backends/spu_state.py,sha256=tgwOiWN6zfP-fBx2rN2cNnC-Y9GrSArqU-ZBT3NdXls,6557
15
+ mplang/backends/store_impl.py,sha256=BdrCfNhFbcjswIvfxD2XKGYeBfBrmEQA3pj2-EDzFcI,2213
16
+ mplang/backends/table_impl.py,sha256=-8KCVSboJkL81HPLRzTpUlSvC37d5qNLIQx1xluN3Pg,27542
17
+ mplang/backends/tee_impl.py,sha256=5yed94Lr55hgSDT6j3FjdTboqzhl4HpJ9lGk1YGZBXQ,7026
18
+ mplang/backends/tensor_impl.py,sha256=4-cypN0KuUD8dzpzAdWEWWuRlzLZwwyIap9QscWGLyk,18888
19
+ mplang/backends/simp_driver/__init__.py,sha256=pQkHGR8HagnPB4OqagPZY-Ul19y6HjIJ5dY6QXZrBH8,1243
20
+ mplang/backends/simp_driver/http.py,sha256=vrjfyEs1_TiMh7I-3cQhIwG6edE0R_eTGegvfFl5xx4,5526
21
+ mplang/backends/simp_driver/mem.py,sha256=EAsDO4Zl2pHf8TY4K_whluhbAwaT1NhktBM9u4g5yYE,9101
22
+ mplang/backends/simp_driver/ops.py,sha256=WYObWDRCsiXH0UBWZX5vD5W98ZPkd88U_qBV8SE5rA8,4503
23
+ mplang/backends/simp_driver/state.py,sha256=dNmYMFN2D2BBdgs6C0YLaHrfaBRMgs05UNxMWw6tZIs,1713
24
+ mplang/backends/simp_driver/values.py,sha256=Lz1utNSIzH-dCzZAEjU6JRcxPsfKGfUJrYl6gIuMOGw,1509
25
+ mplang/backends/simp_worker/__init__.py,sha256=gdrSY1-MDkupCoJ8xwwH7em7fgVWv3J4gBJ45uHdzgg,961
26
+ mplang/backends/simp_worker/http.py,sha256=qB62LsXTtokjpRqxd2f0hFpYO445pPaTrgI62BJjBqY,12626
27
+ mplang/backends/simp_worker/mem.py,sha256=tMGiRppeca0TnY8WdqYQMQvsx5UVswCqdeOhiDlLQBs,3574
28
+ mplang/backends/simp_worker/ops.py,sha256=X_mAhrSZkiN9GmgTJgJs1c50CFTNB_lo9zoPI4rIYU4,5510
29
+ mplang/backends/simp_worker/state.py,sha256=nIu0ybvdYqRqp0TkoSneUF2u31evDHucCRduVBaDals,1445
30
+ mplang/dialects/__init__.py,sha256=CYMmkeQVU0Znr9n3_5clZKb16u7acJ5jl5Zjbx4Tn1U,1478
31
+ mplang/dialects/bfv.py,sha256=m5YfobFCBqn0lg2zBM9RNs2AC7i4PUQH2qXjHLHwSy4,22332
32
+ mplang/dialects/crypto.py,sha256=oEVYyQZxUoVnLW0UN7TULU_06AcSJfBJ9PFupMnbOh4,22182
33
+ mplang/dialects/dtypes.py,sha256=IzWBLpOumGJEy223oH_ECFKTXb1chhPAIebtxJeqLEA,12098
34
+ mplang/dialects/field.py,sha256=s6fK3h0OCpnhQB6YaawEqjpI3TgHT6jMnJkTw3ltjAA,6371
35
+ mplang/dialects/func.py,sha256=qt2H3ClIqdOU5T7cWxzCdoPoWqeXxmbqIsKT2b7w0Mg,4369
36
+ mplang/dialects/phe.py,sha256=-5WvBnlhaUpClLvayKVQIKSof9ROXhZbv0tnz8CTSaY,22878
37
+ mplang/dialects/simp.py,sha256=MA6zhlMMeiBD93yafZgBcQGadShqEATBB7R2VdyfMjQ,32851
38
+ mplang/dialects/spu.py,sha256=zKIbFDcQsTtfVnPWLMR0rnp656Y8eWywDQIVqFSmVJ8,11353
39
+ mplang/dialects/store.py,sha256=FkvTOdcNC_oCgJPMZfdpGLlKZAlelEqRIZ2WgMgYH-8,2108
40
+ mplang/dialects/table.py,sha256=i9ruyh91_tSWu9rsLomrBUfqRdbHiZMMMJzNKfMrAUc,13534
41
+ mplang/dialects/tee.py,sha256=BMFSbeK-Ck2jQP4qY9bZeNYTxEa7uEtUWLZLC4BPQxk,10111
42
+ mplang/dialects/tensor.py,sha256=7aAYKaMaFjJ8N25yPFnmVhUuUdKJYy-M-a4NsZGE7kY,39893
43
+ mplang/edsl/README.md,sha256=viflvdRojOa6Xk_UMRPqpuPGXcPGmdlv2-XR6LO7B58,7592
44
+ mplang/edsl/__init__.py,sha256=ARYS7FkkSXwjWCsPLtWc9kL5OaR4wd5zCQhFTkzZUp0,2598
45
+ mplang/edsl/context.py,sha256=Ln8n3bDe8_ISe42TAGzUuz8fw57-tu1APuihMfAtW1Y,10075
46
+ mplang/edsl/graph.py,sha256=nCeCN7-bxfzyv40fmxcEXOaVUx14cOCaHfFb7A9OBnE,14968
47
+ mplang/edsl/jit.py,sha256=Gm8qnaXW4_jhF3GVoenJgJmHw02D5KNaaXqxe_lfybk,2063
48
+ mplang/edsl/object.py,sha256=dBl58q-ondjpjPNBh8zZvIEj6pJw2yEoz6TCaM_oleA,1906
49
+ mplang/edsl/primitive.py,sha256=1I9A1Y7lsKgd-zBj2nte-jtCdcC6V0cHNhifvVsULkU,10560
50
+ mplang/edsl/printer.py,sha256=drmfRkdCNqbkRfSDmejxtO-rEAaM13QyHB3AbAmKVFk,4393
51
+ mplang/edsl/registry.py,sha256=hudXZPUrUUueEwgksDKN0cnE3iiXucuTaDdDK8uSPmk,6822
52
+ mplang/edsl/serde.py,sha256=8K94laE8ObeGuBoF6m7g3A-xEe98EvqQ_6ZPPspddAY,11641
53
+ mplang/edsl/tracer.py,sha256=g7P0WU6HvPYOhWMAflsX9YBLkAJyYI0YNPo9_P1nf-A,22528
54
+ mplang/edsl/typing.py,sha256=Vp0r_oTyFrOhwwpVD_6XAX0sSsKvR04X-KdihkmD4QA,29287
55
+ mplang/kernels/Makefile,sha256=5PoPpajcb_8ByPGNHzVytmovXUwkjJs_K8MbXX9qDYs,1033
56
+ mplang/kernels/__init__.py,sha256=J_rDl9lAXd7QL3Nt_P3YX6j9yge7ssguSaHuafPZNKE,876
57
+ mplang/kernels/gf128.cpp,sha256=WIvCr3MijzwJxMi1Wnfhm8aWT8oL0fia6FeyTmFJtPQ,5975
58
+ mplang/kernels/ldpc.cpp,sha256=7n_FlI9btM3sSKdQOUC4f-PqTBAI98xccdaZIHX625M,2614
59
+ mplang/kernels/okvs.cpp,sha256=7P_FkBY8LyEwnzupdlv48X8uKMjPUjXtzU2QlTjp-Q0,10311
60
+ mplang/kernels/okvs_opt.cpp,sha256=qKkwHGGv7ayvIRW46PrQZZ7ej4b58Drbr3BlqEK506U,11707
61
+ mplang/kernels/py_kernels.py,sha256=EXK2ByfRsVpBqp1etDyCb_qExT0obiytcNFXYpRyxpo,12070
62
+ mplang/libs/collective.py,sha256=1RhwnpKwjLvbZ5UgmCMkO6brwqHEIdkW_zymRawwTW4,10668
63
+ mplang/libs/device/__init__.py,sha256=UHPGQ9JVedXy6AQo-ixQooS2R8eTwJEu7-p8A5_po78,1248
64
+ mplang/libs/device/api.py,sha256=lyMlNIFXQFuht_jaWc9uFkHRybv9OQC59nQ7USR5TWQ,28794
65
+ mplang/libs/device/cluster.py,sha256=YUqYZ_IBS6rpV5ejUFP3kTxcTQHSyeDeuaJcsiFY_Js,12508
66
+ mplang/libs/ml/__init__.py,sha256=kUR6V74kWmGnOUdmLuGAP1xebW7y-NBOmHyHK-kdqWg,784
67
+ mplang/libs/ml/sgb.py,sha256=g5x1PQnV7oRzheyu6PiDooqmBWI9jMvLHkIHrNnMoDk,60211
68
+ mplang/libs/mpc/__init__.py,sha256=0wTdCjWmoW4Ka4j8ItIfENd8t5uzgjFu0OhOtaeHlpY,1396
69
+ mplang/libs/mpc/_utils.py,sha256=53mDJj_LTIJe6RWkR85-2nXha2KwYQqCK0PBG80MOl0,3209
70
+ mplang/libs/mpc/analytics/__init__.py,sha256=8_1Sm05nrO2ISat1hNZT6UXHpKQ-SDBby1eeS-wm_fE,1204
71
+ mplang/libs/mpc/analytics/aggregation.py,sha256=FXEp8Aa9NkS9cwQCqVxQBMa-fnw828QnyGdlM5IKb-4,11645
72
+ mplang/libs/mpc/analytics/groupby.md,sha256=_3oCouzGKlWt3OBMIFkhN25gyzJj6DlGpq-B78_PSlU,4679
73
+ mplang/libs/mpc/analytics/groupby.py,sha256=KjhZgB0EJwcShsIiE49HFzowgYVkYA7IQBx71_cj2m4,11312
74
+ mplang/libs/mpc/analytics/permutation.py,sha256=FOXarjeKTZChf9dN7kaHhwQYytIQqRYMVsspovBKTnI,13811
75
+ mplang/libs/mpc/common/constants.py,sha256=YRRE8WkLGfdOZzicc976hPsPeZZkqho3aW41i5Mj72s,1316
76
+ mplang/libs/mpc/ot/__init__.py,sha256=9Ivef7QnAzoCBtIohh2kzOSdfslcNftOwKV_d9Qv4z0,951
77
+ mplang/libs/mpc/ot/base.py,sha256=ydM6KRB4ytv5AVOZaCQ_GV54MsqmPhIE2JUUwoavi-c,7009
78
+ mplang/libs/mpc/ot/extension.py,sha256=2Zk43JTpd7a0iorV7KWbyo_ebJi3G11QlxT9-8WJvBE,17452
79
+ mplang/libs/mpc/ot/silent.py,sha256=lO8qhlejx0crIT_8PJcRU-lyUTgIsrE26hkoBzbR7sY,7867
80
+ mplang/libs/mpc/psi/__init__.py,sha256=mpevlx3Z5_u9Q1McDZBBIGHApeO9julgiM09GToxxEA,1231
81
+ mplang/libs/mpc/psi/cuckoo.py,sha256=BQE0CQ7OZWuz_E-ICJ55PDH6hG2T0McbR1QTLmf9HC0,7743
82
+ mplang/libs/mpc/psi/okvs.py,sha256=bNUA_7LEkSw9Yw-v39G3qSfE4VtLHYj_a752WyTXXqc,1573
83
+ mplang/libs/mpc/psi/okvs_gct.py,sha256=1XPw1CgQfuaspSRP7A2GbxyPJ66qW_sRnWmsWc_vG4w,3366
84
+ mplang/libs/mpc/psi/oprf.py,sha256=JSSmK6JK9R8wKEVzmw_4BFa1wFA4UJqxrNK_ayBxE-Q,13763
85
+ mplang/libs/mpc/psi/rr22.py,sha256=LXHqY_S3H7yEScGW6KO7NbliKIkB2prqOhnw1Vb2fE8,11188
86
+ mplang/libs/mpc/psi/unbalanced.py,sha256=-0qAbYqw7vn_hBTb8E71z5RljO6-x8Tcn47TBH1v2_M,7421
87
+ mplang/libs/mpc/vole/__init__.py,sha256=2dU4X6n73HoK-YCiCl4b36SkLRKR6rofe2xxLxBz6Rc,968
88
+ mplang/libs/mpc/vole/gilboa.py,sha256=Lt9n9Ee_wgekxjvUdL0ed4eLpiQJ8EB4_YhOVqI-vBc,9942
89
+ mplang/libs/mpc/vole/ldpc.py,sha256=gOmIbyOjkGE5lewyatl3p6FizNNH8LZ_1oOhp_-TOck,12780
90
+ mplang/libs/mpc/vole/silver.py,sha256=EIxhpFIVNBemgeIZzCu5Cz_4wysxRm9b1Xfu0xiweVQ,12218
91
+ mplang/runtime/__init__.py,sha256=VdUwJ3kDaI46FvGw7iMGwcsjt0HTGmmRmaBwj99xKIw,620
92
+ mplang/runtime/dialect_state.py,sha256=HxO1i4kSOujS2tQzAF9-WmI3nChSaGgupf2_07dHetY,1277
93
+ mplang/runtime/interpreter.py,sha256=jf79iH3JxQklzBPI2z1u8lnNo3CGJ0JBUiigPUQbevc,32256
94
+ mplang/runtime/object_store.py,sha256=yT6jtKG2GUEJVmpq3gnQ8mCMvUFYzgBciC5A-J5KRdk,5998
95
+ mplang/runtime/value.py,sha256=EqlhSgxLTJi_FF3ppyKjMe4eHS6-ROx-zK1YesG1U4o,4311
96
+ mplang/utils/__init__.py,sha256=toubeyISiT6WDdITdfAvdY2iXVZU3PKVNWVeC9sYxuA,947
97
+ mplang/utils/func_utils.py,sha256=aZ-X43w8JKJgiF-IUMS0G7QqrNeoTM5ZPzRNd-tKxpw,5180
98
+ mplang_nightly-0.1.dev270.dist-info/METADATA,sha256=SJloPENuQIObfO0jrJ62IITYz3Hbl4y1Lo-mwN58-Yc,16783
99
+ mplang_nightly-0.1.dev270.dist-info/WHEEL,sha256=WLgqFyCfm_KASv4WHyYy0P3pM_m7J5L9k2skdKLirC8,87
100
+ mplang_nightly-0.1.dev270.dist-info/entry_points.txt,sha256=mG1oJT-GAjQR834a62_QIWb7litzWPPyVnwFqm-rWuY,55
101
+ mplang_nightly-0.1.dev270.dist-info/licenses/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
102
+ mplang_nightly-0.1.dev270.dist-info/RECORD,,