os-optics 0.10.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 (320) hide show
  1. os_optics-0.10.0/.gitignore +11 -0
  2. os_optics-0.10.0/LICENSE.txt +79 -0
  3. os_optics-0.10.0/NOTICE.txt +15 -0
  4. os_optics-0.10.0/PKG-INFO +1274 -0
  5. os_optics-0.10.0/README.md +1240 -0
  6. os_optics-0.10.0/pyproject.toml +100 -0
  7. os_optics-0.10.0/src/os_optics/__init__.py +65 -0
  8. os_optics-0.10.0/src/os_optics/__main__.py +3 -0
  9. os_optics-0.10.0/src/os_optics/_vendor/MANIFEST.json +154 -0
  10. os_optics-0.10.0/src/os_optics/_vendor/__init__.py +16 -0
  11. os_optics-0.10.0/src/os_optics/_vendor/shared_contracts/__init__.py +9 -0
  12. os_optics-0.10.0/src/os_optics/_vendor/shared_contracts/assembly_detail/__init__.py +164 -0
  13. os_optics-0.10.0/src/os_optics/_vendor/shared_contracts/assembly_detail/detail.py +338 -0
  14. os_optics-0.10.0/src/os_optics/_vendor/shared_contracts/assembly_detail/drawing.py +470 -0
  15. os_optics-0.10.0/src/os_optics/_vendor/shared_contracts/assembly_detail/verify.py +437 -0
  16. os_optics-0.10.0/src/os_optics/_vendor/shared_contracts/assembly_preview/__init__.py +278 -0
  17. os_optics-0.10.0/src/os_optics/_vendor/shared_contracts/assembly_preview/manifest.py +185 -0
  18. os_optics-0.10.0/src/os_optics/_vendor/shared_contracts/assembly_preview/package.py +359 -0
  19. os_optics-0.10.0/src/os_optics/_vendor/shared_contracts/assembly_preview/scene.py +1214 -0
  20. os_optics-0.10.0/src/os_optics/_vendor/shared_contracts/assembly_preview/validation.py +495 -0
  21. os_optics-0.10.0/src/os_optics/_vendor/shared_contracts/base.py +17 -0
  22. os_optics-0.10.0/src/os_optics/_vendor/shared_contracts/client_assembly_artifact/__init__.py +73 -0
  23. os_optics-0.10.0/src/os_optics/_vendor/shared_contracts/client_assembly_artifact/manifest.py +306 -0
  24. os_optics-0.10.0/src/os_optics/_vendor/shared_contracts/common/__init__.py +87 -0
  25. os_optics-0.10.0/src/os_optics/_vendor/shared_contracts/common/_osc1_numbers.py +78 -0
  26. os_optics-0.10.0/src/os_optics/_vendor/shared_contracts/common/decimal_string.py +39 -0
  27. os_optics-0.10.0/src/os_optics/_vendor/shared_contracts/common/frozen_string_map.py +92 -0
  28. os_optics-0.10.0/src/os_optics/_vendor/shared_contracts/common/geometry.py +49 -0
  29. os_optics-0.10.0/src/os_optics/_vendor/shared_contracts/common/hashes.py +139 -0
  30. os_optics-0.10.0/src/os_optics/_vendor/shared_contracts/common/identifiers.py +85 -0
  31. os_optics-0.10.0/src/os_optics/_vendor/shared_contracts/common/ordering.py +75 -0
  32. os_optics-0.10.0/src/os_optics/_vendor/shared_contracts/common/osc1.py +163 -0
  33. os_optics-0.10.0/src/os_optics/_vendor/shared_contracts/common/safe_int.py +30 -0
  34. os_optics-0.10.0/src/os_optics/_vendor/shared_contracts/common/timestamps.py +26 -0
  35. os_optics-0.10.0/src/os_optics/_vendor/shared_contracts/common/unknown.py +19 -0
  36. os_optics-0.10.0/src/os_optics/_vendor/shared_contracts/common/versioning.py +66 -0
  37. os_optics-0.10.0/src/os_optics/_vendor/shared_contracts/design_catalog/__init__.py +213 -0
  38. os_optics-0.10.0/src/os_optics/_vendor/shared_contracts/design_catalog/enums.py +306 -0
  39. os_optics-0.10.0/src/os_optics/_vendor/shared_contracts/design_catalog/manifest.py +110 -0
  40. os_optics-0.10.0/src/os_optics/_vendor/shared_contracts/design_catalog/optical_catalog.py +3308 -0
  41. os_optics-0.10.0/src/os_optics/_vendor/shared_contracts/optical_design/__init__.py +179 -0
  42. os_optics-0.10.0/src/os_optics/_vendor/shared_contracts/optical_design/_ordering.py +29 -0
  43. os_optics-0.10.0/src/os_optics/_vendor/shared_contracts/optical_design/component.py +154 -0
  44. os_optics-0.10.0/src/os_optics/_vendor/shared_contracts/optical_design/compute_budget.py +87 -0
  45. os_optics-0.10.0/src/os_optics/_vendor/shared_contracts/optical_design/design_content.py +244 -0
  46. os_optics-0.10.0/src/os_optics/_vendor/shared_contracts/optical_design/dof.py +109 -0
  47. os_optics-0.10.0/src/os_optics/_vendor/shared_contracts/optical_design/local_validation.py +475 -0
  48. os_optics-0.10.0/src/os_optics/_vendor/shared_contracts/optical_design/optical_model.py +630 -0
  49. os_optics-0.10.0/src/os_optics/_vendor/shared_contracts/optical_design/project.py +160 -0
  50. os_optics-0.10.0/src/os_optics/_vendor/shared_contracts/optical_design/scientific_result.py +128 -0
  51. os_optics-0.10.0/src/os_optics/_vendor/shared_contracts/optical_design/source.py +250 -0
  52. os_optics-0.10.0/src/os_optics/_vendor/shared_contracts/optical_design/workspace.py +718 -0
  53. os_optics-0.10.0/src/os_optics/_vendor/shared_contracts/optical_layout/__init__.py +4 -0
  54. os_optics-0.10.0/src/os_optics/_vendor/shared_contracts/optical_layout/drawing.py +166 -0
  55. os_optics-0.10.0/src/os_optics/_vendor/shared_contracts/optical_layout/package.py +227 -0
  56. os_optics-0.10.0/src/os_optics/_vendor/shared_contracts/optical_view/__init__.py +101 -0
  57. os_optics-0.10.0/src/os_optics/_vendor/shared_contracts/optical_view/scene.py +1063 -0
  58. os_optics-0.10.0/src/os_optics/_vendor/shared_contracts/protected_assembly_delivery/__init__.py +122 -0
  59. os_optics-0.10.0/src/os_optics/_vendor/shared_contracts/protected_assembly_delivery/_common.py +243 -0
  60. os_optics-0.10.0/src/os_optics/_vendor/shared_contracts/protected_assembly_delivery/detail_envelope.py +342 -0
  61. os_optics-0.10.0/src/os_optics/_vendor/shared_contracts/protected_assembly_delivery/envelope.py +326 -0
  62. os_optics-0.10.0/src/os_optics/_version.py +139 -0
  63. os_optics-0.10.0/src/os_optics/assembly/__init__.py +130 -0
  64. os_optics-0.10.0/src/os_optics/assembly/checks.py +569 -0
  65. os_optics-0.10.0/src/os_optics/assembly/interfaces.py +78 -0
  66. os_optics-0.10.0/src/os_optics/assembly/mesh.py +175 -0
  67. os_optics-0.10.0/src/os_optics/assembly/overlap.py +311 -0
  68. os_optics-0.10.0/src/os_optics/assembly/result.py +99 -0
  69. os_optics-0.10.0/src/os_optics/assembly/tolerances.py +33 -0
  70. os_optics-0.10.0/src/os_optics/assembly/transforms.py +143 -0
  71. os_optics-0.10.0/src/os_optics/assembly_drawing/__init__.py +82 -0
  72. os_optics-0.10.0/src/os_optics/assembly_drawing/alignment.py +237 -0
  73. os_optics-0.10.0/src/os_optics/assembly_drawing/canvas.py +114 -0
  74. os_optics-0.10.0/src/os_optics/assembly_drawing/errors.py +60 -0
  75. os_optics-0.10.0/src/os_optics/assembly_drawing/generate.py +439 -0
  76. os_optics-0.10.0/src/os_optics/assembly_drawing/geometry.py +216 -0
  77. os_optics-0.10.0/src/os_optics/assembly_drawing/hidden_lines.py +316 -0
  78. os_optics-0.10.0/src/os_optics/assembly_drawing/i18n.py +774 -0
  79. os_optics-0.10.0/src/os_optics/assembly_drawing/layout.py +191 -0
  80. os_optics-0.10.0/src/os_optics/assembly_drawing/model.py +245 -0
  81. os_optics-0.10.0/src/os_optics/assembly_drawing/pdf.py +175 -0
  82. os_optics-0.10.0/src/os_optics/assembly_drawing/privacy.py +321 -0
  83. os_optics-0.10.0/src/os_optics/assembly_drawing/sheet.py +2516 -0
  84. os_optics-0.10.0/src/os_optics/assembly_drawing/steps.py +488 -0
  85. os_optics-0.10.0/src/os_optics/assembly_drawing/svg.py +84 -0
  86. os_optics-0.10.0/src/os_optics/assembly_drawing/text.py +165 -0
  87. os_optics-0.10.0/src/os_optics/builders.py +328 -0
  88. os_optics-0.10.0/src/os_optics/catalog/__init__.py +94 -0
  89. os_optics-0.10.0/src/os_optics/catalog/errors.py +60 -0
  90. os_optics-0.10.0/src/os_optics/catalog/locking.py +150 -0
  91. os_optics-0.10.0/src/os_optics/catalog/remote.py +187 -0
  92. os_optics-0.10.0/src/os_optics/catalog/service.py +754 -0
  93. os_optics-0.10.0/src/os_optics/catalog/store.py +474 -0
  94. os_optics-0.10.0/src/os_optics/catalog_copy.py +97 -0
  95. os_optics-0.10.0/src/os_optics/cli.py +701 -0
  96. os_optics-0.10.0/src/os_optics/cli_catalog.py +218 -0
  97. os_optics-0.10.0/src/os_optics/cli_commerce.py +1101 -0
  98. os_optics-0.10.0/src/os_optics/cli_doctor.py +486 -0
  99. os_optics-0.10.0/src/os_optics/cli_interop.py +67 -0
  100. os_optics-0.10.0/src/os_optics/cli_layout.py +116 -0
  101. os_optics-0.10.0/src/os_optics/cli_native.py +176 -0
  102. os_optics-0.10.0/src/os_optics/cli_network.py +69 -0
  103. os_optics-0.10.0/src/os_optics/cli_paraxial.py +67 -0
  104. os_optics-0.10.0/src/os_optics/cli_prescription.py +118 -0
  105. os_optics-0.10.0/src/os_optics/cli_project.py +197 -0
  106. os_optics-0.10.0/src/os_optics/cli_results.py +360 -0
  107. os_optics-0.10.0/src/os_optics/cli_solids.py +61 -0
  108. os_optics-0.10.0/src/os_optics/cli_view.py +166 -0
  109. os_optics-0.10.0/src/os_optics/cli_workspace.py +464 -0
  110. os_optics-0.10.0/src/os_optics/client/__init__.py +155 -0
  111. os_optics-0.10.0/src/os_optics/client/api.py +861 -0
  112. os_optics-0.10.0/src/os_optics/client/credentials.py +227 -0
  113. os_optics-0.10.0/src/os_optics/client/errors.py +494 -0
  114. os_optics-0.10.0/src/os_optics/client/transport.py +334 -0
  115. os_optics-0.10.0/src/os_optics/client_artifacts.py +180 -0
  116. os_optics-0.10.0/src/os_optics/compare.py +111 -0
  117. os_optics-0.10.0/src/os_optics/composition/__init__.py +95 -0
  118. os_optics-0.10.0/src/os_optics/composition/document.py +209 -0
  119. os_optics-0.10.0/src/os_optics/composition/errors.py +155 -0
  120. os_optics-0.10.0/src/os_optics/composition/importing.py +861 -0
  121. os_optics-0.10.0/src/os_optics/composition/json_wrappers.py +213 -0
  122. os_optics-0.10.0/src/os_optics/composition/operations.py +1801 -0
  123. os_optics-0.10.0/src/os_optics/composition/rotation.py +209 -0
  124. os_optics-0.10.0/src/os_optics/composition/selection.py +156 -0
  125. os_optics-0.10.0/src/os_optics/composition/validation.py +230 -0
  126. os_optics-0.10.0/src/os_optics/config.py +220 -0
  127. os_optics-0.10.0/src/os_optics/contracts/__init__.py +106 -0
  128. os_optics-0.10.0/src/os_optics/contracts/base.py +53 -0
  129. os_optics-0.10.0/src/os_optics/contracts/components.py +322 -0
  130. os_optics-0.10.0/src/os_optics/contracts/geometry.py +84 -0
  131. os_optics-0.10.0/src/os_optics/contracts/manifest.py +27 -0
  132. os_optics-0.10.0/src/os_optics/contracts/materials.py +141 -0
  133. os_optics-0.10.0/src/os_optics/contracts/metrics.py +46 -0
  134. os_optics-0.10.0/src/os_optics/contracts/network.py +277 -0
  135. os_optics-0.10.0/src/os_optics/contracts/optics.py +742 -0
  136. os_optics-0.10.0/src/os_optics/contracts/outcome.py +89 -0
  137. os_optics-0.10.0/src/os_optics/contracts/polarization.py +77 -0
  138. os_optics-0.10.0/src/os_optics/contracts/project.py +169 -0
  139. os_optics-0.10.0/src/os_optics/contracts/request.py +25 -0
  140. os_optics-0.10.0/src/os_optics/contracts/results.py +1088 -0
  141. os_optics-0.10.0/src/os_optics/control/__init__.py +19 -0
  142. os_optics-0.10.0/src/os_optics/control/actuation.py +73 -0
  143. os_optics-0.10.0/src/os_optics/control/analysis.py +171 -0
  144. os_optics-0.10.0/src/os_optics/control/lm.py +165 -0
  145. os_optics-0.10.0/src/os_optics/control/readings.py +90 -0
  146. os_optics-0.10.0/src/os_optics/control/sensitivity.py +108 -0
  147. os_optics-0.10.0/src/os_optics/errors/__init__.py +30 -0
  148. os_optics-0.10.0/src/os_optics/errors/codes.py +126 -0
  149. os_optics-0.10.0/src/os_optics/errors/exceptions.py +19 -0
  150. os_optics-0.10.0/src/os_optics/errors/issues.py +73 -0
  151. os_optics-0.10.0/src/os_optics/errors/status.py +157 -0
  152. os_optics-0.10.0/src/os_optics/interop/__init__.py +143 -0
  153. os_optics-0.10.0/src/os_optics/interop/entries.py +643 -0
  154. os_optics-0.10.0/src/os_optics/interop/model.py +181 -0
  155. os_optics-0.10.0/src/os_optics/layout/__init__.py +6 -0
  156. os_optics-0.10.0/src/os_optics/layout/checks.py +288 -0
  157. os_optics-0.10.0/src/os_optics/layout/geometry.py +168 -0
  158. os_optics-0.10.0/src/os_optics/local/__init__.py +396 -0
  159. os_optics-0.10.0/src/os_optics/local/advisories.py +126 -0
  160. os_optics-0.10.0/src/os_optics/local/artifacts.py +494 -0
  161. os_optics-0.10.0/src/os_optics/local/bodies.py +26 -0
  162. os_optics-0.10.0/src/os_optics/local/catalog.py +445 -0
  163. os_optics-0.10.0/src/os_optics/local/catalog_update.py +267 -0
  164. os_optics-0.10.0/src/os_optics/local/compile.py +1624 -0
  165. os_optics-0.10.0/src/os_optics/local/declared.py +71 -0
  166. os_optics-0.10.0/src/os_optics/local/errors.py +137 -0
  167. os_optics-0.10.0/src/os_optics/local/example.py +728 -0
  168. os_optics-0.10.0/src/os_optics/local/freshness.py +185 -0
  169. os_optics-0.10.0/src/os_optics/local/json_api.py +1405 -0
  170. os_optics-0.10.0/src/os_optics/local/lowering.py +737 -0
  171. os_optics-0.10.0/src/os_optics/local/network.py +103 -0
  172. os_optics-0.10.0/src/os_optics/local/paraxial.py +519 -0
  173. os_optics-0.10.0/src/os_optics/local/project_ops.py +888 -0
  174. os_optics-0.10.0/src/os_optics/local/record.py +140 -0
  175. os_optics-0.10.0/src/os_optics/local/run.py +315 -0
  176. os_optics-0.10.0/src/os_optics/local/submission.py +124 -0
  177. os_optics-0.10.0/src/os_optics/local/validity.py +1042 -0
  178. os_optics-0.10.0/src/os_optics/manifest/__init__.py +13 -0
  179. os_optics-0.10.0/src/os_optics/manifest/build.py +51 -0
  180. os_optics-0.10.0/src/os_optics/manifest/canonical.py +62 -0
  181. os_optics-0.10.0/src/os_optics/math/__init__.py +45 -0
  182. os_optics-0.10.0/src/os_optics/math/exact_erf.py +92 -0
  183. os_optics-0.10.0/src/os_optics/math/exact_linalg.py +138 -0
  184. os_optics-0.10.0/src/os_optics/math/exact_trig.py +261 -0
  185. os_optics-0.10.0/src/os_optics/math/phase.py +26 -0
  186. os_optics-0.10.0/src/os_optics/math/pose.py +62 -0
  187. os_optics-0.10.0/src/os_optics/math/rng.py +49 -0
  188. os_optics-0.10.0/src/os_optics/math/rotation.py +74 -0
  189. os_optics-0.10.0/src/os_optics/math/vectors.py +204 -0
  190. os_optics-0.10.0/src/os_optics/mounting_sheet.py +286 -0
  191. os_optics-0.10.0/src/os_optics/native_library/__init__.py +90 -0
  192. os_optics-0.10.0/src/os_optics/native_library/common.py +334 -0
  193. os_optics-0.10.0/src/os_optics/native_library/compound.py +240 -0
  194. os_optics-0.10.0/src/os_optics/native_library/errors.py +73 -0
  195. os_optics-0.10.0/src/os_optics/native_library/lenses.py +570 -0
  196. os_optics-0.10.0/src/os_optics/native_library/materials.py +273 -0
  197. os_optics-0.10.0/src/os_optics/native_library/numbers.py +118 -0
  198. os_optics-0.10.0/src/os_optics/native_library/params.py +252 -0
  199. os_optics-0.10.0/src/os_optics/native_library/paraxial.py +109 -0
  200. os_optics-0.10.0/src/os_optics/native_library/plates.py +253 -0
  201. os_optics-0.10.0/src/os_optics/native_library/polarization.py +93 -0
  202. os_optics-0.10.0/src/os_optics/native_library/project.py +76 -0
  203. os_optics-0.10.0/src/os_optics/native_library/refractors.py +257 -0
  204. os_optics-0.10.0/src/os_optics/native_library/registry.py +503 -0
  205. os_optics-0.10.0/src/os_optics/native_library/responses.py +210 -0
  206. os_optics-0.10.0/src/os_optics/native_library/retroreflectors.py +215 -0
  207. os_optics-0.10.0/src/os_optics/native_library/stops.py +136 -0
  208. os_optics-0.10.0/src/os_optics/native_library/trig.py +135 -0
  209. os_optics-0.10.0/src/os_optics/network/__init__.py +28 -0
  210. os_optics-0.10.0/src/os_optics/network/basis.py +49 -0
  211. os_optics-0.10.0/src/os_optics/network/conventions.py +125 -0
  212. os_optics-0.10.0/src/os_optics/network/errors.py +93 -0
  213. os_optics-0.10.0/src/os_optics/network/export.py +1206 -0
  214. os_optics-0.10.0/src/os_optics/network/recorder.py +100 -0
  215. os_optics-0.10.0/src/os_optics/optical_layout/__init__.py +52 -0
  216. os_optics-0.10.0/src/os_optics/optical_layout/angles.py +61 -0
  217. os_optics-0.10.0/src/os_optics/optical_layout/generate.py +938 -0
  218. os_optics-0.10.0/src/os_optics/optical_layout/messages.py +182 -0
  219. os_optics-0.10.0/src/os_optics/optical_layout/privacy.py +98 -0
  220. os_optics-0.10.0/src/os_optics/optical_solids/__init__.py +204 -0
  221. os_optics-0.10.0/src/os_optics/optical_solids/bodies.py +742 -0
  222. os_optics-0.10.0/src/os_optics/optical_solids/checks.py +710 -0
  223. os_optics-0.10.0/src/os_optics/optical_solids/report.py +96 -0
  224. os_optics-0.10.0/src/os_optics/optical_view/__init__.py +40 -0
  225. os_optics-0.10.0/src/os_optics/optical_view/artifacts.py +34 -0
  226. os_optics-0.10.0/src/os_optics/optical_view/builder.py +1072 -0
  227. os_optics-0.10.0/src/os_optics/optical_view/colors.py +42 -0
  228. os_optics-0.10.0/src/os_optics/optical_view/geometry.py +368 -0
  229. os_optics-0.10.0/src/os_optics/optical_view/glb.py +591 -0
  230. os_optics-0.10.0/src/os_optics/optical_view/identity.py +8 -0
  231. os_optics-0.10.0/src/os_optics/optical_view/optic_mesh.py +773 -0
  232. os_optics-0.10.0/src/os_optics/optical_view/section.py +684 -0
  233. os_optics-0.10.0/src/os_optics/optical_view/solids.py +191 -0
  234. os_optics-0.10.0/src/os_optics/optical_view/surface_mesh.py +722 -0
  235. os_optics-0.10.0/src/os_optics/optics/__init__.py +0 -0
  236. os_optics-0.10.0/src/os_optics/optics/attenuation.py +170 -0
  237. os_optics-0.10.0/src/os_optics/optics/gaussian/__init__.py +28 -0
  238. os_optics-0.10.0/src/os_optics/optics/gaussian/ops.py +317 -0
  239. os_optics-0.10.0/src/os_optics/optics/gaussian/state.py +145 -0
  240. os_optics-0.10.0/src/os_optics/optics/gaussian/truncation.py +353 -0
  241. os_optics-0.10.0/src/os_optics/optics/interference/__init__.py +3 -0
  242. os_optics-0.10.0/src/os_optics/optics/interference/coherence.py +273 -0
  243. os_optics-0.10.0/src/os_optics/optics/interference/two_beam.py +314 -0
  244. os_optics-0.10.0/src/os_optics/optics/materials/__init__.py +5 -0
  245. os_optics-0.10.0/src/os_optics/optics/materials/coatings.py +152 -0
  246. os_optics-0.10.0/src/os_optics/optics/materials/group.py +106 -0
  247. os_optics-0.10.0/src/os_optics/optics/materials/index.py +109 -0
  248. os_optics-0.10.0/src/os_optics/optics/materials/library.py +66 -0
  249. os_optics-0.10.0/src/os_optics/optics/polarization/__init__.py +26 -0
  250. os_optics-0.10.0/src/os_optics/optics/polarization/fresnel.py +59 -0
  251. os_optics-0.10.0/src/os_optics/optics/polarization/jones.py +120 -0
  252. os_optics-0.10.0/src/os_optics/optics/polarization/phases.py +122 -0
  253. os_optics-0.10.0/src/os_optics/optics/polarization/routing.py +609 -0
  254. os_optics-0.10.0/src/os_optics/optics/rays/__init__.py +4 -0
  255. os_optics-0.10.0/src/os_optics/optics/rays/envelope.py +72 -0
  256. os_optics-0.10.0/src/os_optics/optics/rays/hits.py +79 -0
  257. os_optics-0.10.0/src/os_optics/optics/rays/path_ids.py +46 -0
  258. os_optics-0.10.0/src/os_optics/optics/rays/pupil.py +30 -0
  259. os_optics-0.10.0/src/os_optics/optics/rays/tracer.py +3785 -0
  260. os_optics-0.10.0/src/os_optics/optics/surfaces/__init__.py +15 -0
  261. os_optics-0.10.0/src/os_optics/optics/surfaces/geometry.py +400 -0
  262. os_optics-0.10.0/src/os_optics/optics/surfaces/interaction.py +74 -0
  263. os_optics-0.10.0/src/os_optics/optics/surfaces/sag.py +253 -0
  264. os_optics-0.10.0/src/os_optics/optics/surfaces/tabulated_lens.py +162 -0
  265. os_optics-0.10.0/src/os_optics/prescription/__init__.py +294 -0
  266. os_optics-0.10.0/src/os_optics/prescription/api.py +92 -0
  267. os_optics-0.10.0/src/os_optics/prescription/csv_table.py +818 -0
  268. os_optics-0.10.0/src/os_optics/prescription/errors.py +180 -0
  269. os_optics-0.10.0/src/os_optics/prescription/glass.py +442 -0
  270. os_optics-0.10.0/src/os_optics/prescription/ir.py +253 -0
  271. os_optics-0.10.0/src/os_optics/prescription/lowering.py +494 -0
  272. os_optics-0.10.0/src/os_optics/protected_delivery.py +343 -0
  273. os_optics-0.10.0/src/os_optics/py.typed +0 -0
  274. os_optics-0.10.0/src/os_optics/results/__init__.py +98 -0
  275. os_optics-0.10.0/src/os_optics/results/export.py +98 -0
  276. os_optics-0.10.0/src/os_optics/results/handoff.py +278 -0
  277. os_optics-0.10.0/src/os_optics/results/irradiance.py +166 -0
  278. os_optics-0.10.0/src/os_optics/results/model.py +729 -0
  279. os_optics-0.10.0/src/os_optics/results/rays.py +321 -0
  280. os_optics-0.10.0/src/os_optics/results/tables.py +727 -0
  281. os_optics-0.10.0/src/os_optics/scene/__init__.py +0 -0
  282. os_optics-0.10.0/src/os_optics/scene/lower.py +304 -0
  283. os_optics-0.10.0/src/os_optics/scene/model.py +132 -0
  284. os_optics-0.10.0/src/os_optics/units.py +6 -0
  285. os_optics-0.10.0/src/os_optics/validation/__init__.py +27 -0
  286. os_optics-0.10.0/src/os_optics/validation/affected.py +134 -0
  287. os_optics-0.10.0/src/os_optics/validation/alignment.py +151 -0
  288. os_optics-0.10.0/src/os_optics/validation/closed_returns.py +349 -0
  289. os_optics-0.10.0/src/os_optics/validation/descriptors.py +323 -0
  290. os_optics-0.10.0/src/os_optics/validation/exposures.py +3565 -0
  291. os_optics-0.10.0/src/os_optics/validation/metrics.py +1240 -0
  292. os_optics-0.10.0/src/os_optics/validation/observations.py +694 -0
  293. os_optics-0.10.0/src/os_optics/validation/outcome.py +166 -0
  294. os_optics-0.10.0/src/os_optics/validation/pipeline.py +443 -0
  295. os_optics-0.10.0/src/os_optics/validation/power.py +266 -0
  296. os_optics-0.10.0/src/os_optics/validation/rating_conditions.py +710 -0
  297. os_optics-0.10.0/src/os_optics/validation/ray_paths.py +316 -0
  298. os_optics-0.10.0/src/os_optics/validation/resonance.py +1600 -0
  299. os_optics-0.10.0/src/os_optics/validation/scope.py +40 -0
  300. os_optics-0.10.0/src/os_optics/validation/superposition.py +296 -0
  301. os_optics-0.10.0/src/os_optics/validation/target_parameters.py +111 -0
  302. os_optics-0.10.0/src/os_optics/validation/untraced.py +558 -0
  303. os_optics-0.10.0/src/os_optics/validation/window_bound.py +547 -0
  304. os_optics-0.10.0/src/os_optics/viewer/__init__.py +124 -0
  305. os_optics-0.10.0/src/os_optics/viewer/assembly.py +168 -0
  306. os_optics-0.10.0/src/os_optics/viewer/assets/THREE_LICENSE.txt +21 -0
  307. os_optics-0.10.0/src/os_optics/viewer/assets/index.html +54 -0
  308. os_optics-0.10.0/src/os_optics/viewer/assets/three.bundle.js +4625 -0
  309. os_optics-0.10.0/src/os_optics/viewer/assets/viewer.css +73 -0
  310. os_optics-0.10.0/src/os_optics/viewer/assets/viewer.js +875 -0
  311. os_optics-0.10.0/src/os_optics/viewer/font.py +121 -0
  312. os_optics-0.10.0/src/os_optics/viewer/model.py +328 -0
  313. os_optics-0.10.0/src/os_optics/viewer/optical.py +225 -0
  314. os_optics-0.10.0/src/os_optics/viewer/page.py +69 -0
  315. os_optics-0.10.0/src/os_optics/viewer/palette.py +101 -0
  316. os_optics-0.10.0/src/os_optics/viewer/png.py +46 -0
  317. os_optics-0.10.0/src/os_optics/viewer/raster.py +630 -0
  318. os_optics-0.10.0/src/os_optics/viewer/section_render.py +143 -0
  319. os_optics-0.10.0/src/os_optics/viewer/server.py +152 -0
  320. os_optics-0.10.0/src/os_optics/viewer/snapshots.py +92 -0
@@ -0,0 +1,11 @@
1
+ .venv/
2
+ __pycache__/
3
+ *.pyc
4
+ .pytest_cache/
5
+ .coverage
6
+ .pyodide_final/
7
+ .pyodide_report_out/
8
+ dist/
9
+ build/
10
+ *.egg-info/
11
+ node_modules/
@@ -0,0 +1,79 @@
1
+ OpenSci Engine License
2
+ SPDX: LicenseRef-OpenSci-Engine
3
+
4
+ Copyright (c) 2026 OpenSci (Beijing Kekai Zhiyan Technology Co., Ltd. / 北京科开智研科技有限公司). All rights reserved.
5
+
6
+ OpenSci Engine ("the Software") is proprietary software that OpenSci distributes publicly, free of charge,
7
+ through the Python Package Index (PyPI) as the package "opensci-engine". It is not open-source software and is
8
+ not licensed under MIT, Apache-2.0, GPL, AGPL or any other standard open-source license.
9
+
10
+ Free to download and use; proprietary to redistribute and commercialize as software.
11
+
12
+ 1. Grant of use
13
+
14
+ Subject to this License, OpenSci grants you a worldwide, royalty-free, non-exclusive, non-transferable right to:
15
+
16
+ a) download and install the official package from PyPI or from another distribution channel operated by
17
+ OpenSci;
18
+ b) use the Software for research, education, internal engineering and commercial research and development,
19
+ including commercial use within your own organization; ordinary commercial use does not require a separate
20
+ commercial software license;
21
+ c) let your own AI agents, scripts and tools call and operate the Software on your behalf;
22
+ d) use the Software as part of your own scientific or engineering workflows and integrate it with your own
23
+ systems; and
24
+ e) debug, inspect, read tracebacks of, analyse and integrate the Software as needed for the uses above.
25
+
26
+ 2. Your outputs
27
+
28
+ The designs, project files, simulation and validation results, reports, drawings, images, bills of
29
+ materials and other results you produce through authorized use of the Software ("Outputs") are yours. You
30
+ may use, publish, share and redistribute your Outputs without restriction under this License. The
31
+ restrictions in section 3 apply to the Software itself, never to your Outputs.
32
+
33
+ 3. Restrictions
34
+
35
+ Without prior written authorization from OpenSci, you may not:
36
+
37
+ a) redistribute, re-host or mirror the Software or any of its distribution files (wheels, source
38
+ distributions or their contents), other than installing it from an OpenSci distribution channel;
39
+ b) sell, rent, lease, sublicense or otherwise commercialize the Software itself;
40
+ c) repackage the Software, in whole or in substantial part, as or within another SDK, Python package or
41
+ distributable software product;
42
+ d) provide the Software itself as the core of a third-party optical-design, simulation, procurement or
43
+ ordering software product or service that competes with OpenSci; or
44
+ e) remove, alter or obscure any copyright, trademark or license notice of OpenSci in the Software.
45
+
46
+ These restrictions do not limit ordinary installation, use, debugging, interoperability, analysis or
47
+ integration within your own workflows as permitted by section 1.
48
+
49
+ 4. What this License does not grant
50
+
51
+ This License grants no rights to OpenSci's trademarks, names or logos, and no rights to private supplier data,
52
+ supplier mappings, private catalogs, routing or pricing logic, server-side implementations or any other
53
+ non-public OpenSci information or services. Use of OpenSci's online services (for example the OpenSci
54
+ Commercial Service and the OpenSci Account) is governed by their own terms.
55
+
56
+ 5. Third-party components
57
+
58
+ The Software depends on, and may bundle, third-party components that remain under their own licenses (for
59
+ example NumPy, SciPy, pydantic and Shapely as dependencies, and three.js in the 3D viewer, whose MIT license is
60
+ included in the package). Nothing in this License restricts your rights under those licenses.
61
+
62
+ 6. Termination
63
+
64
+ If you breach this License, your rights under it end automatically. Sections 2 (as to Outputs already
65
+ produced), 4, 5, 7 and 8 survive termination.
66
+
67
+ 7. No warranty
68
+
69
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED
70
+ TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
71
+
72
+ 8. Limitation of liability
73
+
74
+ TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, OPENSCI SHALL NOT BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
75
+ LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR
76
+ ITS USE. Commercial obligations for OpenSci products and services ordered through OpenSci are governed solely
77
+ by the quotation and contract of the respective Order.
78
+
79
+ Questions about this License or requests for written authorization: https://opensci-optics.com/
@@ -0,0 +1,15 @@
1
+ OS Optics (os-optics; earlier name opensci-engine)
2
+ Copyright (c) 2026 OpenSci (Beijing Kekai Zhiyan Technology Co., Ltd. / 北京科开智研科技有限公司). All rights reserved.
3
+
4
+ This is proprietary software, distributed free of charge by OpenSci through the Python Package Index (PyPI) under
5
+ the OpenSci Engine License (LicenseRef-OpenSci-Engine, see LICENSE.txt). It is not open-source software.
6
+
7
+ Free to download and use, including for commercial research and development; the designs, results, drawings and
8
+ bills of materials you produce with it are yours to use and publish. Redistribution, resale, repackaging or
9
+ offering the software itself as a competing product requires written authorization from OpenSci.
10
+
11
+ Official distribution: https://pypi.org/project/os-optics/ (and https://pypi.org/project/opensci-engine/ for the
12
+ earlier name) -- product information: https://opensci-optics.com/
13
+
14
+ Third-party dependencies and bundled components (for example NumPy, SciPy, pydantic, Shapely and three.js) remain
15
+ under their own licenses.