sequence 1.0.0.dev13413021__tar.gz → 1.3.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (169) hide show
  1. {sequence-1.0.0.dev13413021 → sequence-1.3.0}/PKG-INFO +6 -20
  2. {sequence-1.0.0.dev13413021 → sequence-1.3.0}/README.md +4 -11
  3. sequence-1.3.0/pyproject.toml +158 -0
  4. sequence-1.0.0.dev13413021/pyproject.toml → sequence-1.3.0/pyproject.toml.orig +73 -14
  5. sequence-1.3.0/sequence/__init__.py +33 -0
  6. sequence-1.3.0/sequence/__init__.pyi +169 -0
  7. sequence-1.3.0/sequence/app/__init__.py +5 -0
  8. sequence-1.3.0/sequence/app/__init__.pyi +4 -0
  9. sequence-1.3.0/sequence/app/app.py +81 -0
  10. {sequence-1.0.0.dev13413021 → sequence-1.3.0}/sequence/app/request_app.py +14 -13
  11. sequence-1.3.0/sequence/components/__init__.py +5 -0
  12. sequence-1.3.0/sequence/components/__init__.pyi +49 -0
  13. {sequence-1.0.0.dev13413021 → sequence-1.3.0}/sequence/components/circuit.py +12 -32
  14. {sequence-1.0.0.dev13413021 → sequence-1.3.0}/sequence/components/memory.py +6 -1
  15. {sequence-1.0.0.dev13413021 → sequence-1.3.0}/sequence/constants.py +8 -0
  16. sequence-1.3.0/sequence/entanglement_management/__init__.py +5 -0
  17. sequence-1.3.0/sequence/entanglement_management/__init__.pyi +34 -0
  18. {sequence-1.0.0.dev13413021 → sequence-1.3.0}/sequence/entanglement_management/entanglement_protocol.py +9 -0
  19. {sequence-1.0.0.dev13413021 → sequence-1.3.0}/sequence/entanglement_management/generation/barret_kok.py +4 -1
  20. {sequence-1.0.0.dev13413021 → sequence-1.3.0}/sequence/entanglement_management/generation/generation_base.py +5 -1
  21. {sequence-1.0.0.dev13413021 → sequence-1.3.0}/sequence/entanglement_management/generation/single_heralded.py +4 -1
  22. sequence-1.3.0/sequence/entanglement_management/purification/__init__.py +18 -0
  23. sequence-1.3.0/sequence/entanglement_management/purification/bbpssw_bds.py +205 -0
  24. {sequence-1.0.0.dev13413021 → sequence-1.3.0}/sequence/entanglement_management/purification/bbpssw_circuit.py +14 -14
  25. sequence-1.3.0/sequence/entanglement_management/purification/dejmps_bds.py +164 -0
  26. sequence-1.0.0.dev13413021/sequence/entanglement_management/purification/bbpssw_protocol.py → sequence-1.3.0/sequence/entanglement_management/purification/purification_protocol.py +26 -18
  27. {sequence-1.0.0.dev13413021 → sequence-1.3.0}/sequence/entanglement_management/swapping/swapping_base.py +15 -3
  28. {sequence-1.0.0.dev13413021 → sequence-1.3.0}/sequence/entanglement_management/swapping/swapping_bds.py +7 -3
  29. {sequence-1.0.0.dev13413021 → sequence-1.3.0}/sequence/entanglement_management/swapping/swapping_circuit.py +5 -1
  30. sequence-1.3.0/sequence/kernel/__init__.py +5 -0
  31. sequence-1.3.0/sequence/kernel/__init__.pyi +21 -0
  32. sequence-1.3.0/sequence/kernel/quantum_gates.py +149 -0
  33. sequence-1.3.0/sequence/kernel/quantum_manager/base.py +161 -0
  34. {sequence-1.0.0.dev13413021 → sequence-1.3.0}/sequence/kernel/quantum_manager/bell_diagonal.py +16 -0
  35. {sequence-1.0.0.dev13413021 → sequence-1.3.0}/sequence/kernel/quantum_manager/density_matrix.py +81 -14
  36. {sequence-1.0.0.dev13413021 → sequence-1.3.0}/sequence/kernel/quantum_manager/fock_density_matrix.py +3 -0
  37. sequence-1.3.0/sequence/kernel/quantum_manager/ket_vector.py +240 -0
  38. {sequence-1.0.0.dev13413021 → sequence-1.3.0}/sequence/kernel/quantum_manager/stabilizer.py +18 -0
  39. sequence-1.3.0/sequence/kernel/quantum_manager/utils.py +47 -0
  40. {sequence-1.0.0.dev13413021 → sequence-1.3.0}/sequence/kernel/quantum_utils.py +74 -74
  41. {sequence-1.0.0.dev13413021 → sequence-1.3.0}/sequence/kernel/timeline.py +2 -1
  42. sequence-1.3.0/sequence/network_management/__init__.py +5 -0
  43. sequence-1.3.0/sequence/network_management/__init__.pyi +24 -0
  44. {sequence-1.0.0.dev13413021 → sequence-1.3.0}/sequence/network_management/network_manager.py +16 -2
  45. {sequence-1.0.0.dev13413021 → sequence-1.3.0}/sequence/network_management/reservation.py +31 -4
  46. sequence-1.3.0/sequence/network_management/routing/__init__.py +11 -0
  47. {sequence-1.0.0.dev13413021 → sequence-1.3.0}/sequence/network_management/routing/routing_distributed.py +1 -1
  48. {sequence-1.0.0.dev13413021 → sequence-1.3.0}/sequence/network_management/rsvp.py +7 -0
  49. sequence-1.3.0/sequence/py.typed +0 -0
  50. sequence-1.3.0/sequence/qkd/__init__.py +5 -0
  51. sequence-1.3.0/sequence/qkd/__init__.pyi +12 -0
  52. {sequence-1.0.0.dev13413021 → sequence-1.3.0}/sequence/qkd/cascade.py +1 -2
  53. sequence-1.3.0/sequence/resource_management/__init__.py +5 -0
  54. sequence-1.3.0/sequence/resource_management/__init__.pyi +7 -0
  55. {sequence-1.0.0.dev13413021 → sequence-1.3.0}/sequence/resource_management/action_condition_set.py +6 -6
  56. sequence-1.3.0/sequence/resource_management/reservation_rule_registry.py +347 -0
  57. {sequence-1.0.0.dev13413021 → sequence-1.3.0}/sequence/resource_management/resource_manager.py +99 -107
  58. {sequence-1.0.0.dev13413021 → sequence-1.3.0}/sequence/resource_management/rule_manager.py +14 -13
  59. sequence-1.3.0/sequence/topology/__init__.py +5 -0
  60. sequence-1.3.0/sequence/topology/__init__.pyi +12 -0
  61. {sequence-1.0.0.dev13413021 → sequence-1.3.0}/sequence/topology/node.py +3 -2
  62. sequence-1.3.0/sequence/utils/__init__.py +5 -0
  63. sequence-1.3.0/sequence/utils/__init__.pyi +7 -0
  64. sequence-1.3.0/sequence/utils/classical_delay.py +80 -0
  65. {sequence-1.0.0.dev13413021 → sequence-1.3.0}/sequence/utils/config_generator_cli.py +34 -11
  66. sequence-1.3.0/sequence/utils/draw_topo.py +84 -0
  67. sequence-1.3.0/sequence/utils/metrics/__init__.py +272 -0
  68. sequence-1.3.0/sequence/utils/metrics/builtins.py +134 -0
  69. sequence-1.3.0/sequence/utils/metrics/event_types.py +207 -0
  70. sequence-1.3.0/sequence/utils/metrics/metric_types.py +615 -0
  71. sequence-1.3.0/sequence/utils/metrics/registry.py +81 -0
  72. sequence-1.3.0/sequence/utils/metrics/storage.py +76 -0
  73. {sequence-1.0.0.dev13413021 → sequence-1.3.0}/sequence/utils/nx_converter.py +5 -5
  74. sequence-1.0.0.dev13413021/sequence/__init__.py +0 -27
  75. sequence-1.0.0.dev13413021/sequence/app/__init__.py +0 -4
  76. sequence-1.0.0.dev13413021/sequence/components/__init__.py +0 -5
  77. sequence-1.0.0.dev13413021/sequence/entanglement_management/__init__.py +0 -4
  78. sequence-1.0.0.dev13413021/sequence/entanglement_management/purification/__init__.py +0 -8
  79. sequence-1.0.0.dev13413021/sequence/entanglement_management/purification/bbpssw_bds.py +0 -236
  80. sequence-1.0.0.dev13413021/sequence/gui/__init__.py +0 -4
  81. sequence-1.0.0.dev13413021/sequence/gui/app.py +0 -1240
  82. sequence-1.0.0.dev13413021/sequence/gui/assets/argonne.png +0 -0
  83. sequence-1.0.0.dev13413021/sequence/gui/assets/attributions_req +0 -11
  84. sequence-1.0.0.dev13413021/sequence/gui/assets/bsmnode.png +0 -0
  85. sequence-1.0.0.dev13413021/sequence/gui/assets/detector.png +0 -0
  86. sequence-1.0.0.dev13413021/sequence/gui/assets/logo.png +0 -0
  87. sequence-1.0.0.dev13413021/sequence/gui/assets/photonsource.png +0 -0
  88. sequence-1.0.0.dev13413021/sequence/gui/assets/quantum.png +0 -0
  89. sequence-1.0.0.dev13413021/sequence/gui/assets/repeater.png +0 -0
  90. sequence-1.0.0.dev13413021/sequence/gui/assets/router.png +0 -0
  91. sequence-1.0.0.dev13413021/sequence/gui/assets/sequence.jpg +0 -0
  92. sequence-1.0.0.dev13413021/sequence/gui/assets/svg/bsmnode.svg +0 -9
  93. sequence-1.0.0.dev13413021/sequence/gui/assets/svg/detector.svg +0 -30
  94. sequence-1.0.0.dev13413021/sequence/gui/assets/svg/photonsource.svg +0 -9
  95. sequence-1.0.0.dev13413021/sequence/gui/assets/svg/quantum.svg +0 -1
  96. sequence-1.0.0.dev13413021/sequence/gui/assets/svg/repeater.svg +0 -1
  97. sequence-1.0.0.dev13413021/sequence/gui/assets/svg/router.svg +0 -78
  98. sequence-1.0.0.dev13413021/sequence/gui/assets/svg/temp.svg +0 -4
  99. sequence-1.0.0.dev13413021/sequence/gui/assets/temp.png +0 -0
  100. sequence-1.0.0.dev13413021/sequence/gui/css_styles.py +0 -163
  101. sequence-1.0.0.dev13413021/sequence/gui/default_params.json +0 -34
  102. sequence-1.0.0.dev13413021/sequence/gui/default_templates.json +0 -43
  103. sequence-1.0.0.dev13413021/sequence/gui/graph_comp.py +0 -10
  104. sequence-1.0.0.dev13413021/sequence/gui/layout.py +0 -265
  105. sequence-1.0.0.dev13413021/sequence/gui/menus.py +0 -982
  106. sequence-1.0.0.dev13413021/sequence/gui/run_gui.py +0 -91
  107. sequence-1.0.0.dev13413021/sequence/gui/simulator_bindings.py +0 -206
  108. sequence-1.0.0.dev13413021/sequence/gui/starlight.json +0 -115
  109. sequence-1.0.0.dev13413021/sequence/gui/test.txt +0 -49
  110. sequence-1.0.0.dev13413021/sequence/gui/user_templates.json +0 -43
  111. sequence-1.0.0.dev13413021/sequence/kernel/__init__.py +0 -4
  112. sequence-1.0.0.dev13413021/sequence/kernel/quantum_manager/base.py +0 -252
  113. sequence-1.0.0.dev13413021/sequence/kernel/quantum_manager/ket_vector.py +0 -192
  114. sequence-1.0.0.dev13413021/sequence/network_management/__init__.py +0 -4
  115. sequence-1.0.0.dev13413021/sequence/network_management/routing/__init__.py +0 -8
  116. sequence-1.0.0.dev13413021/sequence/qkd/__init__.py +0 -4
  117. sequence-1.0.0.dev13413021/sequence/resource_management/__init__.py +0 -4
  118. sequence-1.0.0.dev13413021/sequence/topology/__init__.py +0 -4
  119. sequence-1.0.0.dev13413021/sequence/utils/__init__.py +0 -3
  120. sequence-1.0.0.dev13413021/sequence/utils/dqc_node_generator.py +0 -20
  121. sequence-1.0.0.dev13413021/sequence/utils/draw_topo.py +0 -81
  122. {sequence-1.0.0.dev13413021 → sequence-1.3.0}/LICENSE +0 -0
  123. {sequence-1.0.0.dev13413021 → sequence-1.3.0}/sequence/app/random_request.py +0 -0
  124. {sequence-1.0.0.dev13413021 → sequence-1.3.0}/sequence/app/teleport_app.py +0 -0
  125. {sequence-1.0.0.dev13413021 → sequence-1.3.0}/sequence/components/beam_splitter.py +0 -0
  126. {sequence-1.0.0.dev13413021 → sequence-1.3.0}/sequence/components/bsm.py +0 -0
  127. {sequence-1.0.0.dev13413021 → sequence-1.3.0}/sequence/components/detector.py +0 -0
  128. {sequence-1.0.0.dev13413021 → sequence-1.3.0}/sequence/components/fiber_stretcher.py +0 -0
  129. {sequence-1.0.0.dev13413021 → sequence-1.3.0}/sequence/components/interferometer.py +0 -0
  130. {sequence-1.0.0.dev13413021 → sequence-1.3.0}/sequence/components/light_source.py +0 -0
  131. {sequence-1.0.0.dev13413021 → sequence-1.3.0}/sequence/components/mirror.py +0 -0
  132. {sequence-1.0.0.dev13413021 → sequence-1.3.0}/sequence/components/optical_channel.py +0 -0
  133. {sequence-1.0.0.dev13413021 → sequence-1.3.0}/sequence/components/photon.py +0 -0
  134. {sequence-1.0.0.dev13413021 → sequence-1.3.0}/sequence/components/spdc_lens.py +0 -0
  135. {sequence-1.0.0.dev13413021 → sequence-1.3.0}/sequence/components/switch.py +0 -0
  136. {sequence-1.0.0.dev13413021 → sequence-1.3.0}/sequence/components/transducer.py +0 -0
  137. {sequence-1.0.0.dev13413021 → sequence-1.3.0}/sequence/components/transmon.py +0 -0
  138. {sequence-1.0.0.dev13413021 → sequence-1.3.0}/sequence/entanglement_management/generation/__init__.py +0 -0
  139. {sequence-1.0.0.dev13413021 → sequence-1.3.0}/sequence/entanglement_management/generation/generation_message.py +0 -0
  140. {sequence-1.0.0.dev13413021 → sequence-1.3.0}/sequence/entanglement_management/swapping/__init__.py +0 -0
  141. {sequence-1.0.0.dev13413021 → sequence-1.3.0}/sequence/entanglement_management/teleportation.py +0 -0
  142. {sequence-1.0.0.dev13413021 → sequence-1.3.0}/sequence/kernel/entity.py +0 -0
  143. {sequence-1.0.0.dev13413021 → sequence-1.3.0}/sequence/kernel/event.py +0 -0
  144. {sequence-1.0.0.dev13413021 → sequence-1.3.0}/sequence/kernel/eventlist.py +0 -0
  145. {sequence-1.0.0.dev13413021 → sequence-1.3.0}/sequence/kernel/process.py +0 -0
  146. {sequence-1.0.0.dev13413021 → sequence-1.3.0}/sequence/kernel/quantum_manager/__init__.py +0 -0
  147. {sequence-1.0.0.dev13413021 → sequence-1.3.0}/sequence/kernel/quantum_state/__init__.py +0 -0
  148. {sequence-1.0.0.dev13413021 → sequence-1.3.0}/sequence/kernel/quantum_state/base.py +0 -0
  149. {sequence-1.0.0.dev13413021 → sequence-1.3.0}/sequence/kernel/quantum_state/bell_diagonal.py +0 -0
  150. {sequence-1.0.0.dev13413021 → sequence-1.3.0}/sequence/kernel/quantum_state/density_matrix.py +0 -0
  151. {sequence-1.0.0.dev13413021 → sequence-1.3.0}/sequence/kernel/quantum_state/free.py +0 -0
  152. {sequence-1.0.0.dev13413021 → sequence-1.3.0}/sequence/kernel/quantum_state/ket_vector.py +0 -0
  153. {sequence-1.0.0.dev13413021 → sequence-1.3.0}/sequence/kernel/quantum_state/stabilizer.py +0 -0
  154. {sequence-1.0.0.dev13413021 → sequence-1.3.0}/sequence/message.py +0 -0
  155. {sequence-1.0.0.dev13413021 → sequence-1.3.0}/sequence/network_management/forwarding.py +0 -0
  156. {sequence-1.0.0.dev13413021 → sequence-1.3.0}/sequence/network_management/memory_timecard.py +0 -0
  157. {sequence-1.0.0.dev13413021 → sequence-1.3.0}/sequence/network_management/routing/routing_base.py +0 -0
  158. {sequence-1.0.0.dev13413021 → sequence-1.3.0}/sequence/network_management/routing/routing_static.py +0 -0
  159. {sequence-1.0.0.dev13413021 → sequence-1.3.0}/sequence/protocol.py +0 -0
  160. {sequence-1.0.0.dev13413021 → sequence-1.3.0}/sequence/qkd/BB84.py +0 -0
  161. {sequence-1.0.0.dev13413021 → sequence-1.3.0}/sequence/resource_management/memory_manager.py +0 -0
  162. {sequence-1.0.0.dev13413021 → sequence-1.3.0}/sequence/topology/dqc_net_topo.py +0 -0
  163. {sequence-1.0.0.dev13413021 → sequence-1.3.0}/sequence/topology/qkd_topo.py +0 -0
  164. {sequence-1.0.0.dev13413021 → sequence-1.3.0}/sequence/topology/router_net_topo.py +0 -0
  165. {sequence-1.0.0.dev13413021 → sequence-1.3.0}/sequence/topology/topology.py +0 -0
  166. {sequence-1.0.0.dev13413021 → sequence-1.3.0}/sequence/utils/encoding.py +0 -0
  167. {sequence-1.0.0.dev13413021 → sequence-1.3.0}/sequence/utils/graphs.py +0 -0
  168. {sequence-1.0.0.dev13413021 → sequence-1.3.0}/sequence/utils/log.py +0 -0
  169. {sequence-1.0.0.dev13413021 → sequence-1.3.0}/sequence/utils/noise.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: sequence
3
- Version: 1.0.0.dev13413021
3
+ Version: 1.3.0
4
4
  Summary: Simulator of QUantum Network Communication (SeQUeNCe) is an open-source tool that allows modeling of quantum networks including photonic network components, control protocols, and applications.
5
5
  Keywords: quantum,network,discrete,event,simulator
6
6
  Author: Xiaoliang Wu, Joaquin Chung, Alexander Kolar, Alexander Kiefer, Eugene Wang, Tian Zhong, Rajkumar Kettimuthu, Martin Suchara, Robert Hayek, Ansh Singal, Caitao Zhan
@@ -9,22 +9,15 @@ License-File: LICENSE
9
9
  Classifier: Programming Language :: Python :: 3.12
10
10
  Classifier: Programming Language :: Python :: 3.13
11
11
  Classifier: Programming Language :: Python :: 3.14
12
- Requires-Dist: dash>=3.3.0
13
- Requires-Dist: dash-bootstrap-components>=2.0.4
14
- Requires-Dist: dash-core-components>=2.0.0
15
- Requires-Dist: dash-cytoscape>=1.0.2
16
- Requires-Dist: dash-html-components>=2.0.0
17
- Requires-Dist: dash-table>=5.0.0
18
12
  Requires-Dist: gmpy2>=2.2.2
19
13
  Requires-Dist: graphviz>=0.21
20
14
  Requires-Dist: ipywidgets>=8.1.8
21
15
  Requires-Dist: jupyterlab>=4.5.0
16
+ Requires-Dist: lazy-loader>=0.6
22
17
  Requires-Dist: matplotlib>=3.10.7
23
18
  Requires-Dist: networkx>=3.6.1
24
19
  Requires-Dist: numpy>=2.3.5
25
20
  Requires-Dist: pandas>=2.3.3
26
- Requires-Dist: plotly>=6.5.0
27
- Requires-Dist: pytest>=9.0.2
28
21
  Requires-Dist: pyyaml>=6.0.3
29
22
  Requires-Dist: qutip>=5.2.2
30
23
  Requires-Dist: qutip-qip>=0.4.1
@@ -61,7 +54,8 @@ Description-Content-Type: text/markdown
61
54
  [![QuTiP](https://img.shields.io/badge/integration-QuTiP-blue)](https://qutip.org/)
62
55
  [![Stim](https://img.shields.io/badge/integration-Stim-blue)](https://github.com/quantumlib/Stim)
63
56
  [![Paper](https://img.shields.io/badge/10.1088%2F2058-9565%2Fac22f6?label=DOI)](https://iopscience.iop.org/article/10.1088/2058-9565/ac22f6)
64
- [![Download-month](https://img.shields.io/pypi/dm/sequence)](https://pypistats.org/packages/sequence)
57
+ [![Downloads](https://static.pepy.tech/badge/sequence/month)](https://pepy.tech/project/sequence)
58
+
65
59
 
66
60
  </div>
67
61
 
@@ -95,7 +89,7 @@ Editable installations let Python use your local source tree directly, so change
95
89
  #### (1) Using pip
96
90
  ```
97
91
  git clone https://github.com/sequence-toolbox/SeQUeNCe.git
98
- cd sequence
92
+ cd SeQUeNCe
99
93
  make install_editable
100
94
  ```
101
95
 
@@ -122,7 +116,7 @@ powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | ie
122
116
  Here we clone the repository and let uv configure the development environment with the target python version.
123
117
  ```bash
124
118
  git clone https://github.com/sequence-toolbox/SeQUeNCe.git
125
- cd sequence
119
+ cd SeQUeNCe
126
120
  uv sync
127
121
  ```
128
122
 
@@ -158,14 +152,6 @@ publisher = {IOP Publishing},
158
152
  }
159
153
  ```
160
154
 
161
- <!-- * X. Wu, A. Kolar, J. Chung, D. Jin, T. Zhong, R. Kettimuthu and M. Suchara. "SeQUeNCe: Simulator of QUantum Network Communication." GitHub repository, https://github.com/sequence-toolbox/SeQUeNCe, 2021. -->
162
-
163
- ## Running the GUI
164
- Once SeQUeNCe has been installed as described above, run the `gui.py` script found in the root of the project directory
165
- ```
166
- python gui.py
167
- ```
168
-
169
155
  ## Usage Examples
170
156
  Many examples of SeQUeNCe in action can be found in the [example](/example) folder. The example includes jupyter notebook demos, and code used in published papers.
171
157
 
@@ -17,7 +17,8 @@
17
17
  [![QuTiP](https://img.shields.io/badge/integration-QuTiP-blue)](https://qutip.org/)
18
18
  [![Stim](https://img.shields.io/badge/integration-Stim-blue)](https://github.com/quantumlib/Stim)
19
19
  [![Paper](https://img.shields.io/badge/10.1088%2F2058-9565%2Fac22f6?label=DOI)](https://iopscience.iop.org/article/10.1088/2058-9565/ac22f6)
20
- [![Download-month](https://img.shields.io/pypi/dm/sequence)](https://pypistats.org/packages/sequence)
20
+ [![Downloads](https://static.pepy.tech/badge/sequence/month)](https://pepy.tech/project/sequence)
21
+
21
22
 
22
23
  </div>
23
24
 
@@ -51,7 +52,7 @@ Editable installations let Python use your local source tree directly, so change
51
52
  #### (1) Using pip
52
53
  ```
53
54
  git clone https://github.com/sequence-toolbox/SeQUeNCe.git
54
- cd sequence
55
+ cd SeQUeNCe
55
56
  make install_editable
56
57
  ```
57
58
 
@@ -78,7 +79,7 @@ powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | ie
78
79
  Here we clone the repository and let uv configure the development environment with the target python version.
79
80
  ```bash
80
81
  git clone https://github.com/sequence-toolbox/SeQUeNCe.git
81
- cd sequence
82
+ cd SeQUeNCe
82
83
  uv sync
83
84
  ```
84
85
 
@@ -114,14 +115,6 @@ publisher = {IOP Publishing},
114
115
  }
115
116
  ```
116
117
 
117
- <!-- * X. Wu, A. Kolar, J. Chung, D. Jin, T. Zhong, R. Kettimuthu and M. Suchara. "SeQUeNCe: Simulator of QUantum Network Communication." GitHub repository, https://github.com/sequence-toolbox/SeQUeNCe, 2021. -->
118
-
119
- ## Running the GUI
120
- Once SeQUeNCe has been installed as described above, run the `gui.py` script found in the root of the project directory
121
- ```
122
- python gui.py
123
- ```
124
-
125
118
  ## Usage Examples
126
119
  Many examples of SeQUeNCe in action can be found in the [example](/example) folder. The example includes jupyter notebook demos, and code used in published papers.
127
120
 
@@ -0,0 +1,158 @@
1
+ [project]
2
+ name = "sequence"
3
+ version = "1.3.0"
4
+ license-files = ["LICENSE"]
5
+ description = "Simulator of QUantum Network Communication (SeQUeNCe) is an open-source tool that allows modeling of quantum networks including photonic network components, control protocols, and applications."
6
+ readme = "README.md"
7
+ requires-python = ">=3.12, <3.15"
8
+ classifiers = [
9
+ "Programming Language :: Python :: 3.12",
10
+ "Programming Language :: Python :: 3.13",
11
+ "Programming Language :: Python :: 3.14",
12
+ ]
13
+ keywords = [
14
+ "quantum",
15
+ "network",
16
+ "discrete",
17
+ "event",
18
+ "simulator",
19
+ ]
20
+ dependencies = [
21
+ "gmpy2>=2.2.2",
22
+ "graphviz>=0.21",
23
+ "ipywidgets>=8.1.8",
24
+ "jupyterlab>=4.5.0",
25
+ "lazy-loader>=0.6",
26
+ "matplotlib>=3.10.7",
27
+ "networkx>=3.6.1",
28
+ "numpy>=2.3.5",
29
+ "pandas>=2.3.3",
30
+ "pyyaml>=6.0.3",
31
+ "qutip>=5.2.2",
32
+ "qutip-qip>=0.4.1",
33
+ "scipy>=1.16.3",
34
+ "seaborn>=0.13.2",
35
+ "tqdm>=4.67.1",
36
+ "typer>=0.24.1",
37
+ "stim>=1.15",
38
+ ]
39
+
40
+ [[project.authors]]
41
+ name = "Xiaoliang Wu, Joaquin Chung, Alexander Kolar, Alexander Kiefer, Eugene Wang, Tian Zhong, Rajkumar Kettimuthu, Martin Suchara, Robert Hayek, Ansh Singal, Caitao Zhan"
42
+ email = "czhan@anl.gov"
43
+
44
+ [[project.maintainers]]
45
+ name = "Caitao Zhan"
46
+ email = "czhan@anl.gov"
47
+
48
+ [[project.maintainers]]
49
+ name = "Robert Hayek"
50
+ email = "rhayek@anl.gov"
51
+
52
+ [project.scripts]
53
+ generate-topology = "sequence.utils.config_generator_cli:app"
54
+
55
+ [project.urls]
56
+ Homepage = "https://github.com/sequence-toolbox/SeQUeNCe"
57
+ Documentation = "https://sequence-rtd-tutorial.readthedocs.io/"
58
+ Issues = "https://github.com/sequence-toolbox/SeQUeNCe/issues"
59
+ Changelog = "https://github.com/sequence-toolbox/SeQUeNCe/blob/master/CHANGELOG.md"
60
+
61
+ [build-system]
62
+ requires = ["uv_build>=0.11.11,<0.13"]
63
+ build-backend = "uv_build"
64
+
65
+ [tool.uv.build-backend]
66
+ module-root = ""
67
+ module-name = "sequence"
68
+
69
+ [tool.pytest.ini_options]
70
+ markers = ["unit: Marks tests as unit tests"]
71
+
72
+ [tool.semantic_release]
73
+ build_command = """
74
+ python -m pip install "uv>=0.11,<0.12"
75
+ uv lock --upgrade-package "$PACKAGE_NAME"
76
+ git add uv.lock
77
+ """
78
+ assets = ["uv.lock"]
79
+ version_toml = ["pyproject.toml:project.version"]
80
+ commit_message = """
81
+ {version}
82
+
83
+ Automatically generated by python-semantic-release"""
84
+ commit_parser = "conventional"
85
+ logging_use_named_masks = false
86
+ major_on_zero = true
87
+ allow_zero_version = false
88
+ no_git_verify = false
89
+ tag_format = "v{version}"
90
+ add_partial_tags = false
91
+
92
+ [tool.semantic_release.branches.main]
93
+ match = "master"
94
+
95
+ [tool.semantic_release.changelog]
96
+ changelog_file = "CHANGELOG.md"
97
+ exclude_commit_patterns = []
98
+ mode = "update"
99
+ insertion_flag = "<!-- version list -->"
100
+
101
+ [tool.semantic_release.changelog.default_templates]
102
+ changelog_file = "CHANGELOG.md"
103
+ output_format = "md"
104
+ mask_initial_release = true
105
+
106
+ [tool.semantic_release.changelog.environment]
107
+ block_start_string = "{%"
108
+ block_end_string = "%}"
109
+ variable_start_string = "{{"
110
+ variable_end_string = "}}"
111
+ comment_start_string = "{#"
112
+ comment_end_string = "#}"
113
+ trim_blocks = true
114
+ lstrip_blocks = true
115
+ newline_sequence = """
116
+
117
+ """
118
+ keep_trailing_newline = true
119
+ extensions = []
120
+ autoescape = false
121
+
122
+ [tool.semantic_release.commit_parser_options]
123
+ minor_tags = ["feat"]
124
+ patch_tags = [
125
+ "fix",
126
+ "docs",
127
+ "test",
128
+ "ci",
129
+ "refactor",
130
+ "perf",
131
+ "chore",
132
+ "revert",
133
+ ]
134
+ allowed_tags = [
135
+ "feat",
136
+ "fix",
137
+ "perf",
138
+ "build",
139
+ "ci",
140
+ "docs",
141
+ "style",
142
+ "refactor",
143
+ "test",
144
+ ]
145
+ other_allowed_tags = ["chore"]
146
+ default_bump_level = 0
147
+ parse_squash_commits = true
148
+ ignore_merge_commits = true
149
+
150
+ [dependency-groups]
151
+ dev = [
152
+ "coverage>=7.13.4",
153
+ "ruff>=0.15.1",
154
+ "ty>=0.0.16",
155
+ "scipy-stubs>=1.16.3,<1.19.0",
156
+ "pytest-cov>=7.1.0",
157
+ "pytest>=9.0.2",
158
+ ]
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "sequence"
3
- version = "1.0.0.dev13413021"
3
+ version = "1.3.0"
4
4
  authors = [
5
5
  { name = "Xiaoliang Wu, Joaquin Chung, Alexander Kolar, Alexander Kiefer, Eugene Wang, Tian Zhong, Rajkumar Kettimuthu, Martin Suchara, Robert Hayek, Ansh Singal, Caitao Zhan", email = "czhan@anl.gov" }
6
6
  ]
@@ -19,22 +19,15 @@ classifiers = [
19
19
  ]
20
20
  keywords = ["quantum", "network", "discrete", "event", "simulator"]
21
21
  dependencies = [
22
- "dash>=3.3.0",
23
- "dash-bootstrap-components>=2.0.4",
24
- "dash-core-components>=2.0.0",
25
- "dash-cytoscape>=1.0.2",
26
- "dash-html-components>=2.0.0",
27
- "dash-table>=5.0.0",
28
22
  "gmpy2>=2.2.2",
29
23
  "graphviz>=0.21",
30
24
  "ipywidgets>=8.1.8",
31
25
  "jupyterlab>=4.5.0",
26
+ "lazy-loader>=0.6",
32
27
  "matplotlib>=3.10.7",
33
28
  "networkx>=3.6.1",
34
29
  "numpy>=2.3.5",
35
30
  "pandas>=2.3.3",
36
- "plotly>=6.5.0",
37
- "pytest>=9.0.2",
38
31
  "pyyaml>=6.0.3",
39
32
  "qutip>=5.2.2",
40
33
  "qutip-qip>=0.4.1",
@@ -42,14 +35,14 @@ dependencies = [
42
35
  "seaborn>=0.13.2",
43
36
  "tqdm>=4.67.1",
44
37
  "typer>=0.24.1",
45
- "stim>=1.15"
38
+ "stim>=1.15",
46
39
  ]
47
40
 
48
41
  [project.scripts]
49
42
  generate-topology = "sequence.utils.config_generator_cli:app"
50
43
 
51
44
  [build-system]
52
- requires = ["uv_build>=0.11.11,<0.12"]
45
+ requires = ["uv_build>=0.11.11,<0.13"]
53
46
  build-backend = "uv_build"
54
47
 
55
48
  [tool.uv.build-backend]
@@ -66,12 +59,78 @@ dev = [
66
59
  "coverage>=7.13.4",
67
60
  "ruff>=0.15.1",
68
61
  "ty>=0.0.16",
69
- "pandas-stubs~=2.3.3",
70
- "scipy-stubs~=1.16.3",
62
+ "scipy-stubs>=1.16.3,<1.19.0",
63
+ "pytest-cov>=7.1.0",
64
+ "pytest>=9.0.2",
71
65
  ]
72
66
 
73
67
  [project.urls]
74
68
  Homepage = "https://github.com/sequence-toolbox/SeQUeNCe"
75
69
  Documentation = "https://sequence-rtd-tutorial.readthedocs.io/"
76
70
  Issues = "https://github.com/sequence-toolbox/SeQUeNCe/issues"
77
- Changelog = "https://github.com/sequence-toolbox/SeQUeNCe/blob/master/CHANGELOG.md"
71
+ Changelog = "https://github.com/sequence-toolbox/SeQUeNCe/blob/master/CHANGELOG.md"
72
+
73
+ [tool.semantic_release]
74
+ build_command = """
75
+ python -m pip install "uv>=0.11,<0.12"
76
+ uv lock --upgrade-package "$PACKAGE_NAME"
77
+ git add uv.lock
78
+ """
79
+ assets = ["uv.lock"]
80
+ version_toml = ["pyproject.toml:project.version"]
81
+ commit_message = "{version}\n\nAutomatically generated by python-semantic-release"
82
+ commit_parser = "conventional"
83
+ logging_use_named_masks = false
84
+ major_on_zero = true
85
+ allow_zero_version = false
86
+ no_git_verify = false
87
+ tag_format = "v{version}"
88
+ add_partial_tags = false
89
+
90
+ [tool.semantic_release.branches.main]
91
+ match = "master"
92
+
93
+ [tool.semantic_release.changelog]
94
+ changelog_file = "CHANGELOG.md"
95
+ exclude_commit_patterns = []
96
+ mode = "update"
97
+ insertion_flag = "<!-- version list -->"
98
+
99
+
100
+ [tool.semantic_release.changelog.default_templates]
101
+ changelog_file = "CHANGELOG.md"
102
+ output_format = "md"
103
+ mask_initial_release = true
104
+
105
+ [tool.semantic_release.changelog.environment]
106
+ block_start_string = "{%"
107
+ block_end_string = "%}"
108
+ variable_start_string = "{{"
109
+ variable_end_string = "}}"
110
+ comment_start_string = "{#"
111
+ comment_end_string = "#}"
112
+ trim_blocks = true
113
+ lstrip_blocks = true
114
+ newline_sequence = "\n"
115
+ keep_trailing_newline = true
116
+ extensions = []
117
+ autoescape = false
118
+
119
+ [tool.semantic_release.commit_parser_options]
120
+ minor_tags = ["feat"]
121
+ patch_tags = [
122
+ "fix",
123
+ "docs",
124
+ "test",
125
+ "ci",
126
+ "refactor",
127
+ "perf",
128
+ "chore",
129
+ "revert",
130
+ ]
131
+ allowed_tags = ["feat", "fix", "perf", "build", "ci", "docs", "style", "refactor", "test"]
132
+ other_allowed_tags = ["chore"]
133
+
134
+ default_bump_level = 0
135
+ parse_squash_commits = true
136
+ ignore_merge_commits = true
@@ -0,0 +1,33 @@
1
+ """SeQUeNCe Quantum Network Simulator. Documentation is provided at https://sequence-rtd-tutorial.readthedocs.io/stable/index.html
2
+
3
+ Example usage:
4
+ ```
5
+ import sequence as sq
6
+ timeline = sq.Timeline()
7
+ memory = sq.Memory(...)
8
+ ```
9
+ """
10
+
11
+ from pathlib import Path
12
+
13
+ import lazy_loader as lazy
14
+
15
+ __getattr__, __dir__, __all__ = lazy.attach_stub(__name__, __file__)
16
+
17
+
18
+ def read_version_from_pyproject() -> str:
19
+ """Read the project version from a source checkout."""
20
+ pyproject = Path(__file__).resolve().parent.parent / "pyproject.toml"
21
+ if not pyproject.exists():
22
+ return "unknown"
23
+
24
+ try:
25
+ import tomllib
26
+
27
+ with pyproject.open("rb") as file:
28
+ return tomllib.load(file)["project"]["version"]
29
+ except (ImportError, KeyError, OSError, TypeError):
30
+ return "unknown"
31
+
32
+
33
+ __version__ = read_version_from_pyproject()
@@ -0,0 +1,169 @@
1
+ from . import (
2
+ app as app,
3
+ components as components,
4
+ constants as constants,
5
+ entanglement_management as entanglement_management,
6
+ kernel as kernel,
7
+ network_management as network_management,
8
+ qkd as qkd,
9
+ resource_management as resource_management,
10
+ topology as topology,
11
+ utils as utils,
12
+ )
13
+ from .app import (
14
+ App as App,
15
+ RandomRequestApp as RandomRequestApp,
16
+ RequestApp as RequestApp,
17
+ TeleportApp as TeleportApp,
18
+ )
19
+ from .components import (
20
+ AbsorptiveBSM as AbsorptiveBSM,
21
+ AbsorptiveMemory as AbsorptiveMemory,
22
+ BSM as BSM,
23
+ BeamSplitter as BeamSplitter,
24
+ Circuit as Circuit,
25
+ ClassicalChannel as ClassicalChannel,
26
+ Detector as Detector,
27
+ DownConversionProtocol as DownConversionProtocol,
28
+ EmittingProtocol as EmittingProtocol,
29
+ FiberStretcher as FiberStretcher,
30
+ FockBeamSplitter as FockBeamSplitter,
31
+ FockBeamSplitter2 as FockBeamSplitter2,
32
+ FockDetector as FockDetector,
33
+ Interferometer as Interferometer,
34
+ LightSource as LightSource,
35
+ Memory as Memory,
36
+ MemoryArray as MemoryArray,
37
+ MemoryWithRandomCoherenceTime as MemoryWithRandomCoherenceTime,
38
+ Mirror as Mirror,
39
+ OpticalChannel as OpticalChannel,
40
+ Photon as Photon,
41
+ PolarizationBSM as PolarizationBSM,
42
+ QSDetector as QSDetector,
43
+ QSDetectorFockDirect as QSDetectorFockDirect,
44
+ QSDetectorFockInterference as QSDetectorFockInterference,
45
+ QSDetectorPolarization as QSDetectorPolarization,
46
+ QSDetectorTimeBin as QSDetectorTimeBin,
47
+ QuantumChannel as QuantumChannel,
48
+ SPDCLens as SPDCLens,
49
+ SPDCSource as SPDCSource,
50
+ ShellBSM as ShellBSM,
51
+ SingleAtomBSM as SingleAtomBSM,
52
+ SingleHeraldedBSM as SingleHeraldedBSM,
53
+ Switch as Switch,
54
+ TimeBinBSM as TimeBinBSM,
55
+ Transducer as Transducer,
56
+ Transmon as Transmon,
57
+ UpConversionProtocol as UpConversionProtocol,
58
+ make_bsm as make_bsm,
59
+ )
60
+ from .entanglement_management import (
61
+ BBPSSW_BDS as BBPSSW_BDS,
62
+ BBPSSWCircuit as BBPSSWCircuit,
63
+ BBPSSWMessage as BBPSSWMessage,
64
+ BBPSSWMsgType as BBPSSWMsgType,
65
+ BarretKokA as BarretKokA,
66
+ BarretKokB as BarretKokB,
67
+ DEJMPS_BDS as DEJMPS_BDS,
68
+ EntanglementGenerationA as EntanglementGenerationA,
69
+ EntanglementGenerationB as EntanglementGenerationB,
70
+ EntanglementGenerationMessage as EntanglementGenerationMessage,
71
+ EntanglementProtocol as EntanglementProtocol,
72
+ EntanglementSwappingA as EntanglementSwappingA,
73
+ EntanglementSwappingA_BDS as EntanglementSwappingA_BDS,
74
+ EntanglementSwappingA_Circuit as EntanglementSwappingA_Circuit,
75
+ EntanglementSwappingB as EntanglementSwappingB,
76
+ EntanglementSwappingB_BDS as EntanglementSwappingB_BDS,
77
+ EntanglementSwappingB_Circuit as EntanglementSwappingB_Circuit,
78
+ EntanglementSwappingMessage as EntanglementSwappingMessage,
79
+ GenerationMsgType as GenerationMsgType,
80
+ PurificationProtocol as PurificationProtocol,
81
+ SingleHeraldedA as SingleHeraldedA,
82
+ SingleHeraldedB as SingleHeraldedB,
83
+ SwappingMsgType as SwappingMsgType,
84
+ TeleportMessage as TeleportMessage,
85
+ TeleportMsgType as TeleportMsgType,
86
+ TeleportProtocol as TeleportProtocol,
87
+ )
88
+ from .kernel import (
89
+ BellDiagonalState as BellDiagonalState,
90
+ ClassicalEntity as ClassicalEntity,
91
+ DensityState as DensityState,
92
+ Entity as Entity,
93
+ Event as Event,
94
+ EventList as EventList,
95
+ FreeQuantumState as FreeQuantumState,
96
+ KetState as KetState,
97
+ Process as Process,
98
+ QuantumManager as QuantumManager,
99
+ QuantumManagerBellDiagonal as QuantumManagerBellDiagonal,
100
+ QuantumManagerDensity as QuantumManagerDensity,
101
+ QuantumManagerDensityFock as QuantumManagerDensityFock,
102
+ QuantumManagerKet as QuantumManagerKet,
103
+ QuantumManagerStabilizer as QuantumManagerStabilizer,
104
+ StabilizerState as StabilizerState,
105
+ State as State,
106
+ Timeline as Timeline,
107
+ )
108
+ from .message import Message as Message
109
+ from .network_management import (
110
+ DistributedNetworkManager as DistributedNetworkManager,
111
+ DistributedRoutingProtocol as DistributedRoutingProtocol,
112
+ ForwardingMessage as ForwardingMessage,
113
+ ForwardingMessageType as ForwardingMessageType,
114
+ ForwardingProtocol as ForwardingProtocol,
115
+ MemoryTimeCard as MemoryTimeCard,
116
+ NetworkManager as NetworkManager,
117
+ NetworkManagerMessage as NetworkManagerMessage,
118
+ NetworkManagerMsgType as NetworkManagerMsgType,
119
+ QCap as QCap,
120
+ RSVPMessage as RSVPMessage,
121
+ RSVPMsgType as RSVPMsgType,
122
+ RSVPProtocol as RSVPProtocol,
123
+ Reservation as Reservation,
124
+ RoutingProtocol as RoutingProtocol,
125
+ StaticRoutingProtocol as StaticRoutingProtocol,
126
+ )
127
+ from .protocol import Protocol as Protocol, StackProtocol as StackProtocol
128
+ from .qkd import (
129
+ BB84 as BB84,
130
+ BB84Message as BB84Message,
131
+ BB84MsgType as BB84MsgType,
132
+ Cascade as Cascade,
133
+ CascadeMessage as CascadeMessage,
134
+ CascadeMsgType as CascadeMsgType,
135
+ pair_bb84_protocols as pair_bb84_protocols,
136
+ pair_cascade_protocols as pair_cascade_protocols,
137
+ )
138
+ from .resource_management import (
139
+ MemoryInfo as MemoryInfo,
140
+ MemoryManager as MemoryManager,
141
+ ResourceManager as ResourceManager,
142
+ ResourceManagerMessage as ResourceManagerMessage,
143
+ ResourceManagerMsgType as ResourceManagerMsgType,
144
+ Rule as Rule,
145
+ RuleManager as RuleManager,
146
+ )
147
+ from .topology import (
148
+ BSMNode as BSMNode,
149
+ ClassicalNode as ClassicalNode,
150
+ DQCNetTopo as DQCNetTopo,
151
+ DQCNode as DQCNode,
152
+ Node as Node,
153
+ QKDNode as QKDNode,
154
+ QKDTopo as QKDTopo,
155
+ QuantumRouter as QuantumRouter,
156
+ RouterNetTopo as RouterNetTopo,
157
+ Topology as Topology,
158
+ )
159
+ from .utils import (
160
+ encoding as encoding,
161
+ graphs as graphs,
162
+ log as log,
163
+ metrics as metrics,
164
+ nx_converter as nx_converter,
165
+ )
166
+
167
+ __version__: str
168
+
169
+ def read_version_from_pyproject() -> str: ...
@@ -0,0 +1,5 @@
1
+ """Applications supplied with SeQUeNCe."""
2
+
3
+ import lazy_loader as lazy
4
+
5
+ __getattr__, __dir__, __all__ = lazy.attach_stub(__name__, __file__)
@@ -0,0 +1,4 @@
1
+ from .app import App as App
2
+ from .random_request import RandomRequestApp as RandomRequestApp
3
+ from .request_app import RequestApp as RequestApp
4
+ from .teleport_app import TeleportApp as TeleportApp