md2reflect 3.1.1__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 (170) hide show
  1. md2reflect-3.1.1/.gitignore +74 -0
  2. md2reflect-3.1.1/.pre-commit-config.yaml +39 -0
  3. md2reflect-3.1.1/AUTHORS.md +7 -0
  4. md2reflect-3.1.1/CHANGELOG.md +1673 -0
  5. md2reflect-3.1.1/CITATION.cff +129 -0
  6. md2reflect-3.1.1/CODE_OF_CONDUCT.md +89 -0
  7. md2reflect-3.1.1/CONTRIBUTING.md +160 -0
  8. md2reflect-3.1.1/GOVERNANCE.md +133 -0
  9. md2reflect-3.1.1/LICENSE.txt +674 -0
  10. md2reflect-3.1.1/LICENSES/GPL-3.0-or-later.txt +232 -0
  11. md2reflect-3.1.1/PKG-INFO +299 -0
  12. md2reflect-3.1.1/README.md +243 -0
  13. md2reflect-3.1.1/RELEASING.md +411 -0
  14. md2reflect-3.1.1/REUSE.toml +14 -0
  15. md2reflect-3.1.1/SECURITY.md +121 -0
  16. md2reflect-3.1.1/benchmarks/BA_reflecto.py +172 -0
  17. md2reflect-3.1.1/benchmarks/abeles_numpy_vs_jax.md +59 -0
  18. md2reflect-3.1.1/benchmarks/bench_abeles.py +200 -0
  19. md2reflect-3.1.1/benchmarks/bench_abeles_numpy_vs_jax.py +140 -0
  20. md2reflect-3.1.1/codemeta.json +118 -0
  21. md2reflect-3.1.1/docs/.gitignore +1 -0
  22. md2reflect-3.1.1/docs/Makefile +12 -0
  23. md2reflect-3.1.1/docs/api/abeles_minimal.md +8 -0
  24. md2reflect-3.1.1/docs/api/api_overview.md +18 -0
  25. md2reflect-3.1.1/docs/api/core.md +22 -0
  26. md2reflect-3.1.1/docs/api/erf_profile.md +14 -0
  27. md2reflect-3.1.1/docs/api/exceptions.md +39 -0
  28. md2reflect-3.1.1/docs/api/export.md +14 -0
  29. md2reflect-3.1.1/docs/api/index.md +20 -0
  30. md2reflect-3.1.1/docs/api/md_reader.md +9 -0
  31. md2reflect-3.1.1/docs/api/reflectometer.md +18 -0
  32. md2reflect-3.1.1/docs/api/region.md +66 -0
  33. md2reflect-3.1.1/docs/api/sample.md +41 -0
  34. md2reflect-3.1.1/docs/api/state_management.md +26 -0
  35. md2reflect-3.1.1/docs/api/stepify.md +8 -0
  36. md2reflect-3.1.1/docs/api/typing_defs.md +8 -0
  37. md2reflect-3.1.1/docs/api/visualization.md +9 -0
  38. md2reflect-3.1.1/docs/changelog.md +13 -0
  39. md2reflect-3.1.1/docs/concepts.md +571 -0
  40. md2reflect-3.1.1/docs/conf.py +101 -0
  41. md2reflect-3.1.1/docs/dependencies.md +236 -0
  42. md2reflect-3.1.1/docs/getting_started.md +177 -0
  43. md2reflect-3.1.1/docs/index.md +61 -0
  44. md2reflect-3.1.1/docs/release_notes/2.0.0.md +112 -0
  45. md2reflect-3.1.1/docs/release_notes/2.2.0.md +95 -0
  46. md2reflect-3.1.1/docs/release_notes/3.0.0.md +193 -0
  47. md2reflect-3.1.1/docs/release_notes/3.1.0.md +127 -0
  48. md2reflect-3.1.1/docs/release_notes/index.md +18 -0
  49. md2reflect-3.1.1/docs/repository_structure.md +200 -0
  50. md2reflect-3.1.1/docs/scientific_context.md +292 -0
  51. md2reflect-3.1.1/docs/standards.md +135 -0
  52. md2reflect-3.1.1/docs/tutorial.md +39 -0
  53. md2reflect-3.1.1/examples/Using_Made2Reflect_classes.py +277 -0
  54. md2reflect-3.1.1/examples/Workflow_00.ipynb +298 -0
  55. md2reflect-3.1.1/examples/data/NR_DMPC_Crisp_ISIS/DMPC_D2O_c_PLP0016596.dat +137 -0
  56. md2reflect-3.1.1/examples/data/NR_DMPC_Crisp_ISIS/DMPC_H2O_c_PLP0016607.dat +104 -0
  57. md2reflect-3.1.1/examples/data/NR_DMPC_Crisp_ISIS/DMPC_SiCM_c_PLP0016601.dat +97 -0
  58. md2reflect-3.1.1/examples/data/NR_DMPC_Crisp_ISIS/DMPC_crisp.md +2 -0
  59. md2reflect-3.1.1/examples/data/small_datasets/traj3_3mols_1frame.pdb +83 -0
  60. md2reflect-3.1.1/examples/data/small_datasets/traj3_3mols_4frames.pdb +329 -0
  61. md2reflect-3.1.1/examples/data/small_datasets/traj3_5mols_4frames.pdb +345 -0
  62. md2reflect-3.1.1/examples/demo_MD2Reflect.ipynb +655 -0
  63. md2reflect-3.1.1/examples/demo_ReferenceCurves.ipynb +194 -0
  64. md2reflect-3.1.1/examples/demo_SampleWidget_b.ipynb +297 -0
  65. md2reflect-3.1.1/examples/demo_abeles.py +70 -0
  66. md2reflect-3.1.1/examples/demo_interactive_sample_marimo.py +355 -0
  67. md2reflect-3.1.1/examples/demo_interface_shapes.py +283 -0
  68. md2reflect-3.1.1/examples/demo_jupyter_SampleWidget.ipynb +98 -0
  69. md2reflect-3.1.1/examples/demo_partial_deuteration.py +234 -0
  70. md2reflect-3.1.1/examples/demo_simulated_region_marimo.py +119 -0
  71. md2reflect-3.1.1/examples/demo_stepify_rough.py +347 -0
  72. md2reflect-3.1.1/examples/fitting_sld_profile_shape_SimulatedRegion.ipynb +280 -0
  73. md2reflect-3.1.1/examples/layouts/sample_marimo.grid.json +38 -0
  74. md2reflect-3.1.1/examples/layouts/sample_marimo.slides.json +17 -0
  75. md2reflect-3.1.1/examples/md2reflect_app_marimo.py +356 -0
  76. md2reflect-3.1.1/examples/render_notebooks.sh +48 -0
  77. md2reflect-3.1.1/examples/sample_marimo.py +246 -0
  78. md2reflect-3.1.1/lint.sh +77 -0
  79. md2reflect-3.1.1/pyproject.toml +242 -0
  80. md2reflect-3.1.1/repo_structure.toml +262 -0
  81. md2reflect-3.1.1/requirements-lock.txt +144 -0
  82. md2reflect-3.1.1/scripts/check_doc_deps.py +353 -0
  83. md2reflect-3.1.1/scripts/check_repo_structure.py +235 -0
  84. md2reflect-3.1.1/scripts/gen_codemeta.py +400 -0
  85. md2reflect-3.1.1/scripts/jj-precommit.sh +79 -0
  86. md2reflect-3.1.1/src/md2reflect/__about__.py +4 -0
  87. md2reflect-3.1.1/src/md2reflect/__init__.py +310 -0
  88. md2reflect-3.1.1/src/md2reflect/abeles_minimal.py +534 -0
  89. md2reflect-3.1.1/src/md2reflect/abeles_minimal_numpyro.py +1092 -0
  90. md2reflect-3.1.1/src/md2reflect/api_overview.py +483 -0
  91. md2reflect-3.1.1/src/md2reflect/backends.py +89 -0
  92. md2reflect-3.1.1/src/md2reflect/bornagain_export.py +209 -0
  93. md2reflect-3.1.1/src/md2reflect/convolution.py +77 -0
  94. md2reflect-3.1.1/src/md2reflect/core.py +43 -0
  95. md2reflect-3.1.1/src/md2reflect/erf_profile.py +1004 -0
  96. md2reflect-3.1.1/src/md2reflect/exceptions.py +57 -0
  97. md2reflect-3.1.1/src/md2reflect/export.py +346 -0
  98. md2reflect-3.1.1/src/md2reflect/jupyter_widgets/__init__.py +23 -0
  99. md2reflect-3.1.1/src/md2reflect/jupyter_widgets/widgets.py +1690 -0
  100. md2reflect-3.1.1/src/md2reflect/marimo_helpers.py +361 -0
  101. md2reflect-3.1.1/src/md2reflect/materials.py +219 -0
  102. md2reflect-3.1.1/src/md2reflect/materials.yml +32 -0
  103. md2reflect-3.1.1/src/md2reflect/md_reader.py +508 -0
  104. md2reflect-3.1.1/src/md2reflect/num_utils.py +35 -0
  105. md2reflect-3.1.1/src/md2reflect/py.typed +0 -0
  106. md2reflect-3.1.1/src/md2reflect/reference_curves.py +235 -0
  107. md2reflect-3.1.1/src/md2reflect/reflectometer.py +749 -0
  108. md2reflect-3.1.1/src/md2reflect/region.py +1590 -0
  109. md2reflect-3.1.1/src/md2reflect/sample.py +2550 -0
  110. md2reflect-3.1.1/src/md2reflect/state_management.py +326 -0
  111. md2reflect-3.1.1/src/md2reflect/stepify.py +760 -0
  112. md2reflect-3.1.1/src/md2reflect/typing_defs.py +79 -0
  113. md2reflect-3.1.1/src/md2reflect/visualization.py +789 -0
  114. md2reflect-3.1.1/tests/__init__.py +3 -0
  115. md2reflect-3.1.1/tests/physics/__init__.py +3 -0
  116. md2reflect-3.1.1/tests/physics/conftest.py +176 -0
  117. md2reflect-3.1.1/tests/physics/data/D2O_Si_n.dat +500 -0
  118. md2reflect-3.1.1/tests/physics/data/D2O_Si_x.dat +500 -0
  119. md2reflect-3.1.1/tests/physics/data/H2O_Si_n.dat +500 -0
  120. md2reflect-3.1.1/tests/physics/data/H2O_Si_x.dat +500 -0
  121. md2reflect-3.1.1/tests/physics/data/Q_at_critical_edges.dat +9 -0
  122. md2reflect-3.1.1/tests/physics/data/Si_D2O_1000A_Vac_x.dat +500 -0
  123. md2reflect-3.1.1/tests/physics/data/Si_D2O_100A_Vac_x.dat +500 -0
  124. md2reflect-3.1.1/tests/physics/data/Si_D2O_200A_Vac_x.dat +500 -0
  125. md2reflect-3.1.1/tests/physics/data/Si_D2O_n.dat +500 -0
  126. md2reflect-3.1.1/tests/physics/data/Si_D2O_x.dat +500 -0
  127. md2reflect-3.1.1/tests/physics/data/Si_H2O_n.dat +500 -0
  128. md2reflect-3.1.1/tests/physics/data/Si_H2O_x.dat +500 -0
  129. md2reflect-3.1.1/tests/physics/test_ba_reference.py +216 -0
  130. md2reflect-3.1.1/tests/physics/test_interface_shapes.py +185 -0
  131. md2reflect-3.1.1/tests/physics/test_intrinsic_reflectivity.py +265 -0
  132. md2reflect-3.1.1/tests/physics/test_roughness_methods_consistency.py +164 -0
  133. md2reflect-3.1.1/tests/physics/test_sharp_interface.py +394 -0
  134. md2reflect-3.1.1/tests/physics/test_thin_film.py +349 -0
  135. md2reflect-3.1.1/tests/physics/test_thin_film_roughness.py +360 -0
  136. md2reflect-3.1.1/tests/test_abeles.py +494 -0
  137. md2reflect-3.1.1/tests/test_abeles_numpyro_scan.py +223 -0
  138. md2reflect-3.1.1/tests/test_api_overview.py +215 -0
  139. md2reflect-3.1.1/tests/test_backends.py +122 -0
  140. md2reflect-3.1.1/tests/test_bornagain_export.py +192 -0
  141. md2reflect-3.1.1/tests/test_check_doc_deps.py +171 -0
  142. md2reflect-3.1.1/tests/test_core.py +1299 -0
  143. md2reflect-3.1.1/tests/test_dual_sld.py +374 -0
  144. md2reflect-3.1.1/tests/test_erf_profile.py +163 -0
  145. md2reflect-3.1.1/tests/test_export.py +494 -0
  146. md2reflect-3.1.1/tests/test_gen_codemeta.py +151 -0
  147. md2reflect-3.1.1/tests/test_interface_shape.py +458 -0
  148. md2reflect-3.1.1/tests/test_interface_shape_jax.py +289 -0
  149. md2reflect-3.1.1/tests/test_lazy_package_init.py +206 -0
  150. md2reflect-3.1.1/tests/test_marimo_helpers.py +417 -0
  151. md2reflect-3.1.1/tests/test_materials.py +613 -0
  152. md2reflect-3.1.1/tests/test_md_reader.py +265 -0
  153. md2reflect-3.1.1/tests/test_measurement_purity.py +375 -0
  154. md2reflect-3.1.1/tests/test_probe_selection.py +215 -0
  155. md2reflect-3.1.1/tests/test_reflectometer.py +565 -0
  156. md2reflect-3.1.1/tests/test_region.py +410 -0
  157. md2reflect-3.1.1/tests/test_roughness_alignment.py +229 -0
  158. md2reflect-3.1.1/tests/test_sample.py +786 -0
  159. md2reflect-3.1.1/tests/test_sample_interface_shape.py +309 -0
  160. md2reflect-3.1.1/tests/test_sample_stepify_rough.py +339 -0
  161. md2reflect-3.1.1/tests/test_simulated_region.py +993 -0
  162. md2reflect-3.1.1/tests/test_sld_display_window.py +222 -0
  163. md2reflect-3.1.1/tests/test_state_management.py +302 -0
  164. md2reflect-3.1.1/tests/test_stepified_display.py +394 -0
  165. md2reflect-3.1.1/tests/test_stepify.py +896 -0
  166. md2reflect-3.1.1/tests/test_stepify_plan_jax.py +460 -0
  167. md2reflect-3.1.1/tests/test_stepify_rough_interfaces.py +401 -0
  168. md2reflect-3.1.1/tests/test_thickness_validation.py +211 -0
  169. md2reflect-3.1.1/tests/test_visualization.py +517 -0
  170. md2reflect-3.1.1/tests/test_widgets.py +415 -0
@@ -0,0 +1,74 @@
1
+ # Python bytecode
2
+ __pycache__/
3
+ *.py[cod]
4
+ *$py.class
5
+
6
+ # Distribution / packaging
7
+ build/
8
+ dist/
9
+ *.egg-info/
10
+ *.egg
11
+
12
+ # Virtual environments
13
+ venv/
14
+ .venv/
15
+ pyvenv.cfg
16
+
17
+ # pytest
18
+ .pytest_cache/
19
+
20
+ # mypy
21
+ .mypy_cache/
22
+
23
+ # Coverage
24
+ htmlcov/
25
+ .coverage
26
+ .coverage.*
27
+ coverage.xml
28
+
29
+ # IDE
30
+ .idea/
31
+ .vscode/
32
+ *.swp
33
+ *.swo
34
+ .*.sw[a-z]
35
+ *~
36
+
37
+ # OS
38
+ .DS_Store
39
+ Thumbs.db
40
+
41
+ # Jupyter
42
+ .ipynb_checkpoints/
43
+
44
+ # Docs build output
45
+ docs/_build/
46
+
47
+ # Figures / matplotlib output
48
+ *.png
49
+ *.svg
50
+ *.pdf
51
+ *.eps
52
+
53
+ # pre-commit logs
54
+ pre-commit.log
55
+ #
56
+ TODO.md
57
+
58
+ # marimo session cache (auto-generated, not source)
59
+ __marimo__/
60
+ # large datasets (too big to track; ship separately)
61
+ /examples/data/large_datasets/
62
+ # local HTML renders of the notebooks (see examples/render_notebooks.sh)
63
+ /examples/rendered/
64
+ # my own things I do not want tracked
65
+ private/
66
+ # Atomic-write temp files from the Claude settings writer. .claude/ is
67
+ # tracked, so without this a snapshot taken mid-write sweeps one into a
68
+ # commit (it happened once).
69
+ .claude/*.tmp.*
70
+ # CI pip cache. PIP_CACHE_DIR points inside the project directory
71
+ # because GitLab can only cache paths under it, so the cache lands in
72
+ # the workspace and `reuse lint` would otherwise scan the wheels in it
73
+ # and report their licences as the project's own.
74
+ .cache/
@@ -0,0 +1,39 @@
1
+ exclude: ^tmp/
2
+
3
+ repos:
4
+ - repo: https://github.com/ambv/black
5
+ rev: 26.5.1
6
+ hooks:
7
+ - id: black
8
+
9
+ - repo: https://github.com/pre-commit/mirrors-mypy
10
+ rev: v1.18.2
11
+ hooks:
12
+ - id: mypy
13
+ language: system
14
+ # Type-gate the shipped library (src/) only -- this mirrors CI
15
+ # (`mypy src/md2reflect`). Tests are covered by pytest and lean on
16
+ # duck-typed stubs; examples (marimo apps / demo scripts) are
17
+ # untyped by nature. Both would only fight strict mypy.
18
+ exclude: ^(tests|examples)/
19
+
20
+ - repo: https://github.com/astral-sh/ruff-pre-commit
21
+ rev: v0.15.19
22
+ hooks:
23
+ # Replaces flake8 (E/F rules) and isort (I / import sorting);
24
+ # Black still owns formatting.
25
+ - id: ruff
26
+ args: [--fix]
27
+
28
+ - repo: https://github.com/pre-commit/pre-commit-hooks
29
+ rev: v6.0.0
30
+ hooks:
31
+ - id: end-of-file-fixer
32
+ - id: trailing-whitespace
33
+
34
+ # Strip notebook outputs / execution counts so committed .ipynb files
35
+ # stay small and diffable (prevents the output noise from creeping back).
36
+ - repo: https://github.com/kynan/nbstripout
37
+ rev: 0.8.1
38
+ hooks:
39
+ - id: nbstripout
@@ -0,0 +1,7 @@
1
+ ## Authors, Maintainers, Contributors
2
+
3
+ - Jean-François Moulin (2020-)
4
+ - Sebastian Busch (2020-)
5
+ - Muriel Rovira Esteva (2020-2022)
6
+ - Nebojša Zec (2020-2022)
7
+ - Zihan Zhou (2025-)