witwin-maxwell 0.0.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 (157) hide show
  1. witwin_maxwell-0.0.1/.claude/settings.json +16 -0
  2. witwin_maxwell-0.0.1/.github/workflows/publish-witwin-maxwell.yml +93 -0
  3. witwin_maxwell-0.0.1/.gitignore +229 -0
  4. witwin_maxwell-0.0.1/COPYING +674 -0
  5. witwin_maxwell-0.0.1/FEATURE_LIST.md +252 -0
  6. witwin_maxwell-0.0.1/PKG-INFO +188 -0
  7. witwin_maxwell-0.0.1/README.md +174 -0
  8. witwin_maxwell-0.0.1/assets/teapot.obj +24238 -0
  9. witwin_maxwell-0.0.1/benchmark/RESULTS.md +60 -0
  10. witwin_maxwell-0.0.1/benchmark/__init__.py +3 -0
  11. witwin_maxwell-0.0.1/benchmark/__main__.py +5 -0
  12. witwin_maxwell-0.0.1/benchmark/cache.py +146 -0
  13. witwin_maxwell-0.0.1/benchmark/metrics.py +155 -0
  14. witwin_maxwell-0.0.1/benchmark/models.py +38 -0
  15. witwin_maxwell-0.0.1/benchmark/paths.py +36 -0
  16. witwin_maxwell-0.0.1/benchmark/plotting.py +449 -0
  17. witwin_maxwell-0.0.1/benchmark/report.py +141 -0
  18. witwin_maxwell-0.0.1/benchmark/runner.py +577 -0
  19. witwin_maxwell-0.0.1/benchmark/scenes/__init__.py +47 -0
  20. witwin_maxwell-0.0.1/benchmark/scenes/_common.py +76 -0
  21. witwin_maxwell-0.0.1/benchmark/scenes/dipole/__init__.py +21 -0
  22. witwin_maxwell-0.0.1/benchmark/scenes/dipole/dipole_dielectric_box.py +39 -0
  23. witwin_maxwell-0.0.1/benchmark/scenes/dipole/dipole_dielectric_sphere.py +40 -0
  24. witwin_maxwell-0.0.1/benchmark/scenes/dipole/dipole_ey.py +45 -0
  25. witwin_maxwell-0.0.1/benchmark/scenes/dipole/dipole_offcenter.py +45 -0
  26. witwin_maxwell-0.0.1/benchmark/scenes/dipole/dipole_two_freq.py +37 -0
  27. witwin_maxwell-0.0.1/benchmark/scenes/dipole/dipole_vacuum.py +48 -0
  28. witwin_maxwell-0.0.1/benchmark/scenes/dipole/high_eps_box.py +38 -0
  29. witwin_maxwell-0.0.1/benchmark/scenes/dipole/lorentz_resonator.py +45 -0
  30. witwin_maxwell-0.0.1/benchmark/scenes/dipole/multi_dielectric.py +39 -0
  31. witwin_maxwell-0.0.1/benchmark/scenes/planewave/__init__.py +13 -0
  32. witwin_maxwell-0.0.1/benchmark/scenes/planewave/dielectric_slab.py +44 -0
  33. witwin_maxwell-0.0.1/benchmark/scenes/planewave/dielectric_sphere.py +36 -0
  34. witwin_maxwell-0.0.1/benchmark/scenes/planewave/metal_sphere.py +52 -0
  35. witwin_maxwell-0.0.1/benchmark/scenes/planewave/planewave_dielectric_sphere.py +38 -0
  36. witwin_maxwell-0.0.1/benchmark/scenes/planewave/planewave_vacuum.py +37 -0
  37. witwin_maxwell-0.0.1/benchmark/tidy3d_scene.py +32 -0
  38. witwin_maxwell-0.0.1/pyproject.toml +23 -0
  39. witwin_maxwell-0.0.1/tests/TEST_LAYOUT.md +36 -0
  40. witwin_maxwell-0.0.1/tests/__init__.py +1 -0
  41. witwin_maxwell-0.0.1/tests/api/adapters/tidy3d/test_tidy3d_adapter.py +493 -0
  42. witwin_maxwell-0.0.1/tests/api/public/test_public_api.py +780 -0
  43. witwin_maxwell-0.0.1/tests/api/public/test_simulation_smoke.py +92 -0
  44. witwin_maxwell-0.0.1/tests/assets/cube.obj +15 -0
  45. witwin_maxwell-0.0.1/tests/assets/teapot.obj +599 -0
  46. witwin_maxwell-0.0.1/tests/boundaries/boundary_physics/test_fdtd_boundary_physics.py +223 -0
  47. witwin_maxwell-0.0.1/tests/boundaries/boundary_specs/test_fdtd_boundaries.py +270 -0
  48. witwin_maxwell-0.0.1/tests/boundaries/cpml/test_fdtd_cpml.py +382 -0
  49. witwin_maxwell-0.0.1/tests/conftest.py +20 -0
  50. witwin_maxwell-0.0.1/tests/core/geometry/test_mesh_geometry.py +197 -0
  51. witwin_maxwell-0.0.1/tests/core/grid/test_fdtd_coords.py +72 -0
  52. witwin_maxwell-0.0.1/tests/core/scene/test_scene.py +598 -0
  53. witwin_maxwell-0.0.1/tests/gradients/README.md +11 -0
  54. witwin_maxwell-0.0.1/tests/gradients/__init__.py +1 -0
  55. witwin_maxwell-0.0.1/tests/gradients/fdtd_adjoint_baselines.py +237 -0
  56. witwin_maxwell-0.0.1/tests/gradients/test_fdtd_adjoint_bridge.py +2457 -0
  57. witwin_maxwell-0.0.1/tests/gradients/test_fdtd_adjoint_rigorous.py +999 -0
  58. witwin_maxwell-0.0.1/tests/gradients/test_fdtd_mode_source_adjoint.py +196 -0
  59. witwin_maxwell-0.0.1/tests/materials/compiler/test_fdfd_material_support.py +95 -0
  60. witwin_maxwell-0.0.1/tests/materials/compiler/test_material_compiler.py +528 -0
  61. witwin_maxwell-0.0.1/tests/materials/dispersive/test_fdtd_dispersive.py +348 -0
  62. witwin_maxwell-0.0.1/tests/monitors/observers/test_fdtd_observers.py +533 -0
  63. witwin_maxwell-0.0.1/tests/postprocess/directivity/test_directivity.py +94 -0
  64. witwin_maxwell-0.0.1/tests/postprocess/evaluation/test_fdtd_evaluation.py +45 -0
  65. witwin_maxwell-0.0.1/tests/postprocess/rcs/test_postprocess.py +512 -0
  66. witwin_maxwell-0.0.1/tests/postprocess/scattering/test_mode_overlap.py +244 -0
  67. witwin_maxwell-0.0.1/tests/postprocess/scattering/test_scattering_parameters.py +322 -0
  68. witwin_maxwell-0.0.1/tests/sources/definitions/test_sources.py +188 -0
  69. witwin_maxwell-0.0.1/tests/sources/incident/test_fdtd_incident.py +96 -0
  70. witwin_maxwell-0.0.1/tests/sources/mode/test_fdtd_mode_source.py +53 -0
  71. witwin_maxwell-0.0.1/tests/sources/mode/test_mode_solver_gradients.py +301 -0
  72. witwin_maxwell-0.0.1/tests/sources/point/test_fdtd_source_normalization.py +76 -0
  73. witwin_maxwell-0.0.1/tests/sources/point/test_fdtd_sources.py +261 -0
  74. witwin_maxwell-0.0.1/tests/sources/tfsf/test_fdtd_tfsf.py +306 -0
  75. witwin_maxwell-0.0.1/tests/validation/benchmark/test_benchmark_system.py +591 -0
  76. witwin_maxwell-0.0.1/tests/validation/cross_solver/test_fdfd_vs_fdtd.py +418 -0
  77. witwin_maxwell-0.0.1/tests/validation/physics/test_fdtd_boundary_tfsf_validation.py +753 -0
  78. witwin_maxwell-0.0.1/tests/validation/physics/test_fdtd_physics_correctness.py +190 -0
  79. witwin_maxwell-0.0.1/tests/validation/physics/test_postprocess_end_to_end_validation.py +585 -0
  80. witwin_maxwell-0.0.1/witwin/maxwell/__init__.py +78 -0
  81. witwin_maxwell-0.0.1/witwin/maxwell/adapters/__init__.py +1 -0
  82. witwin_maxwell-0.0.1/witwin/maxwell/adapters/tidy3d.py +651 -0
  83. witwin_maxwell-0.0.1/witwin/maxwell/compiler/__init__.py +10 -0
  84. witwin_maxwell-0.0.1/witwin/maxwell/compiler/materials.py +633 -0
  85. witwin_maxwell-0.0.1/witwin/maxwell/compiler/monitors.py +73 -0
  86. witwin_maxwell-0.0.1/witwin/maxwell/compiler/sources.py +122 -0
  87. witwin_maxwell-0.0.1/witwin/maxwell/fdfd/__init__.py +3 -0
  88. witwin_maxwell-0.0.1/witwin/maxwell/fdfd/plotting.py +110 -0
  89. witwin_maxwell-0.0.1/witwin/maxwell/fdfd/postprocess.py +33 -0
  90. witwin_maxwell-0.0.1/witwin/maxwell/fdfd/solver.py +799 -0
  91. witwin_maxwell-0.0.1/witwin/maxwell/fdtd/__init__.py +4 -0
  92. witwin_maxwell-0.0.1/witwin/maxwell/fdtd/adjoint/.kernels_runtime_1773795042135987100_57071.slang +2090 -0
  93. witwin_maxwell-0.0.1/witwin/maxwell/fdtd/adjoint/.kernels_runtime_1773800541701589400_57074.slang +2090 -0
  94. witwin_maxwell-0.0.1/witwin/maxwell/fdtd/adjoint/__init__.py +22 -0
  95. witwin_maxwell-0.0.1/witwin/maxwell/fdtd/adjoint/bridge.py +513 -0
  96. witwin_maxwell-0.0.1/witwin/maxwell/fdtd/adjoint/core.py +3154 -0
  97. witwin_maxwell-0.0.1/witwin/maxwell/fdtd/adjoint/dispatch.py +393 -0
  98. witwin_maxwell-0.0.1/witwin/maxwell/fdtd/adjoint/kernels.slang +2090 -0
  99. witwin_maxwell-0.0.1/witwin/maxwell/fdtd/adjoint/profiler.py +181 -0
  100. witwin_maxwell-0.0.1/witwin/maxwell/fdtd/adjoint/reference.py +1030 -0
  101. witwin_maxwell-0.0.1/witwin/maxwell/fdtd/adjoint/reverse_common.py +479 -0
  102. witwin_maxwell-0.0.1/witwin/maxwell/fdtd/adjoint/seeds.py +479 -0
  103. witwin_maxwell-0.0.1/witwin/maxwell/fdtd/boundary/__init__.py +37 -0
  104. witwin_maxwell-0.0.1/witwin/maxwell/fdtd/boundary/common.py +38 -0
  105. witwin_maxwell-0.0.1/witwin/maxwell/fdtd/boundary/cpml.py +446 -0
  106. witwin_maxwell-0.0.1/witwin/maxwell/fdtd/boundary/helpers.slang +218 -0
  107. witwin_maxwell-0.0.1/witwin/maxwell/fdtd/boundary/projection.slang +134 -0
  108. witwin_maxwell-0.0.1/witwin/maxwell/fdtd/boundary/runtime.py +83 -0
  109. witwin_maxwell-0.0.1/witwin/maxwell/fdtd/boundary/update.slang +1866 -0
  110. witwin_maxwell-0.0.1/witwin/maxwell/fdtd/checkpoint.py +170 -0
  111. witwin_maxwell-0.0.1/witwin/maxwell/fdtd/coords.py +45 -0
  112. witwin_maxwell-0.0.1/witwin/maxwell/fdtd/evaluation.py +290 -0
  113. witwin_maxwell-0.0.1/witwin/maxwell/fdtd/excitation/__init__.py +25 -0
  114. witwin_maxwell-0.0.1/witwin/maxwell/fdtd/excitation/injection.py +619 -0
  115. witwin_maxwell-0.0.1/witwin/maxwell/fdtd/excitation/modes.py +1360 -0
  116. witwin_maxwell-0.0.1/witwin/maxwell/fdtd/excitation/spatial.py +328 -0
  117. witwin_maxwell-0.0.1/witwin/maxwell/fdtd/excitation/temporal.py +347 -0
  118. witwin_maxwell-0.0.1/witwin/maxwell/fdtd/excitation/tfsf_apply.py +222 -0
  119. witwin_maxwell-0.0.1/witwin/maxwell/fdtd/excitation/tfsf_common.py +345 -0
  120. witwin_maxwell-0.0.1/witwin/maxwell/fdtd/excitation/tfsf_specs.py +471 -0
  121. witwin_maxwell-0.0.1/witwin/maxwell/fdtd/excitation/tfsf_state.py +536 -0
  122. witwin_maxwell-0.0.1/witwin/maxwell/fdtd/fdtd.slang +9 -0
  123. witwin_maxwell-0.0.1/witwin/maxwell/fdtd/io.py +31 -0
  124. witwin_maxwell-0.0.1/witwin/maxwell/fdtd/kernels/common.slang +54 -0
  125. witwin_maxwell-0.0.1/witwin/maxwell/fdtd/kernels/dispersive.slang +375 -0
  126. witwin_maxwell-0.0.1/witwin/maxwell/fdtd/kernels/magnetic.slang +223 -0
  127. witwin_maxwell-0.0.1/witwin/maxwell/fdtd/kernels/sources.slang +640 -0
  128. witwin_maxwell-0.0.1/witwin/maxwell/fdtd/kernels/spectral.slang +178 -0
  129. witwin_maxwell-0.0.1/witwin/maxwell/fdtd/material_pullback.py +273 -0
  130. witwin_maxwell-0.0.1/witwin/maxwell/fdtd/observers.py +1046 -0
  131. witwin_maxwell-0.0.1/witwin/maxwell/fdtd/plotting.py +121 -0
  132. witwin_maxwell-0.0.1/witwin/maxwell/fdtd/postprocess.py +205 -0
  133. witwin_maxwell-0.0.1/witwin/maxwell/fdtd/runtime/__init__.py +119 -0
  134. witwin_maxwell-0.0.1/witwin/maxwell/fdtd/runtime/initialization.py +207 -0
  135. witwin_maxwell-0.0.1/witwin/maxwell/fdtd/runtime/materials.py +630 -0
  136. witwin_maxwell-0.0.1/witwin/maxwell/fdtd/runtime/module_cache.py +49 -0
  137. witwin_maxwell-0.0.1/witwin/maxwell/fdtd/runtime/spectral.py +469 -0
  138. witwin_maxwell-0.0.1/witwin/maxwell/fdtd/runtime/stepping.py +699 -0
  139. witwin_maxwell-0.0.1/witwin/maxwell/fdtd/solver.py +487 -0
  140. witwin_maxwell-0.0.1/witwin/maxwell/materials.py +3 -0
  141. witwin_maxwell-0.0.1/witwin/maxwell/media.py +387 -0
  142. witwin_maxwell-0.0.1/witwin/maxwell/monitors.py +483 -0
  143. witwin_maxwell-0.0.1/witwin/maxwell/ports.py +101 -0
  144. witwin_maxwell-0.0.1/witwin/maxwell/postprocess/RCS.py +139 -0
  145. witwin_maxwell-0.0.1/witwin/maxwell/postprocess/__init__.py +33 -0
  146. witwin_maxwell-0.0.1/witwin/maxwell/postprocess/directivity.py +152 -0
  147. witwin_maxwell-0.0.1/witwin/maxwell/postprocess/modal.py +325 -0
  148. witwin_maxwell-0.0.1/witwin/maxwell/postprocess/nfft.py +249 -0
  149. witwin_maxwell-0.0.1/witwin/maxwell/postprocess/scattering_parameters.py +225 -0
  150. witwin_maxwell-0.0.1/witwin/maxwell/postprocess/stratton_chu.py +914 -0
  151. witwin_maxwell-0.0.1/witwin/maxwell/result.py +800 -0
  152. witwin_maxwell-0.0.1/witwin/maxwell/scene.py +950 -0
  153. witwin_maxwell-0.0.1/witwin/maxwell/simulation.py +589 -0
  154. witwin_maxwell-0.0.1/witwin/maxwell/sources.py +481 -0
  155. witwin_maxwell-0.0.1/witwin/maxwell/visualization/__init__.py +20 -0
  156. witwin_maxwell-0.0.1/witwin/maxwell/visualization/interactive.py +481 -0
  157. witwin_maxwell-0.0.1/witwin/maxwell/visualization/plots.py +568 -0
@@ -0,0 +1,16 @@
1
+ {
2
+ "permissions": {
3
+ "allow": [
4
+ "Bash(C:/Users/Asixa/miniconda3/envs/witwin2/python.exe run_validation.py --tidy3d-only)",
5
+ "Bash(C:/Users/Asixa/miniconda3/envs/witwin2/python.exe run_validation.py --maxwell-only)",
6
+ "Bash(C:/Users/Asixa/miniconda3/envs/witwin2/python.exe -c \":*)",
7
+ "Read(//c/Users/Asixa/.maxwell/validation_cache/**)",
8
+ "Bash(C:/Users/Asixa/miniconda3/envs/witwin2/python.exe -m pytest tests/test_validation.py -v --tb=short)",
9
+ "Bash(C:/Users/Asixa/miniconda3/envs/witwin2/python.exe plot_validation.py)",
10
+ "Bash(C:/Users/Asixa/miniconda3/envs/witwin2/python.exe submit_tidy3d_3d.py)"
11
+ ],
12
+ "additionalDirectories": [
13
+ "C:\\Users\\Asixa\\.maxwell\\validation_cache"
14
+ ]
15
+ }
16
+ }
@@ -0,0 +1,93 @@
1
+ name: Publish witwin-maxwell
2
+
3
+ on:
4
+ release:
5
+ types: [published]
6
+
7
+ jobs:
8
+ publish:
9
+ if: startsWith(github.event.release.tag_name, 'witwin-maxwell-v') && !github.event.release.prerelease
10
+ runs-on: ubuntu-latest
11
+ permissions:
12
+ contents: read
13
+ id-token: write
14
+ environment:
15
+ name: pypi
16
+ url: https://pypi.org/project/witwin-maxwell/
17
+
18
+ steps:
19
+ - name: Check out repository
20
+ uses: actions/checkout@v4
21
+
22
+ - name: Set up Python
23
+ uses: actions/setup-python@v5
24
+ with:
25
+ python-version: "3.11"
26
+
27
+ - name: Resolve package directory
28
+ id: package_dir
29
+ shell: bash
30
+ run: |
31
+ if [ -f pyproject.toml ]; then
32
+ echo "path=." >> "$GITHUB_OUTPUT"
33
+ elif [ -f maxwell/pyproject.toml ]; then
34
+ echo "path=maxwell" >> "$GITHUB_OUTPUT"
35
+ else
36
+ echo "Unable to find pyproject.toml for the witwin-maxwell package." >&2
37
+ exit 1
38
+ fi
39
+
40
+ - name: Validate release tag and package version
41
+ shell: bash
42
+ env:
43
+ PACKAGE_DIR: ${{ steps.package_dir.outputs.path }}
44
+ RELEASE_TAG: ${{ github.event.release.tag_name }}
45
+ run: |
46
+ python - <<'PY'
47
+ import os
48
+ import re
49
+ import sys
50
+ import tomllib
51
+ from pathlib import Path
52
+
53
+ tag = os.environ["RELEASE_TAG"]
54
+ match = re.fullmatch(r"witwin-maxwell-v(?P<version>[0-9A-Za-z.+_-]+)", tag)
55
+ if match is None:
56
+ print(f"Release tag '{tag}' must match 'witwin-maxwell-v<version>'.", file=sys.stderr)
57
+ raise SystemExit(1)
58
+
59
+ expected_version = match.group("version")
60
+ pyproject_path = Path(os.environ["PACKAGE_DIR"]) / "pyproject.toml"
61
+ data = tomllib.loads(pyproject_path.read_text(encoding="utf-8"))
62
+
63
+ project = data["project"]
64
+ package_name = project["name"]
65
+ package_version = project["version"]
66
+
67
+ if package_name != "witwin-maxwell":
68
+ print(f"Expected package name 'witwin-maxwell', found '{package_name}'.", file=sys.stderr)
69
+ raise SystemExit(1)
70
+
71
+ if package_version != expected_version:
72
+ print(
73
+ f"Release tag version '{expected_version}' does not match pyproject version '{package_version}'.",
74
+ file=sys.stderr,
75
+ )
76
+ raise SystemExit(1)
77
+
78
+ print(f"Validated {package_name} {package_version} from {pyproject_path}.")
79
+ PY
80
+
81
+ - name: Build distributions
82
+ shell: bash
83
+ env:
84
+ PACKAGE_DIR: ${{ steps.package_dir.outputs.path }}
85
+ run: |
86
+ python -m pip install --upgrade pip build
87
+ python -m build "$PACKAGE_DIR"
88
+
89
+ - name: Publish distributions to PyPI
90
+ uses: pypa/gh-action-pypi-publish@release/v1
91
+ with:
92
+ packages-dir: ${{ steps.package_dir.outputs.path }}/dist
93
+
@@ -0,0 +1,229 @@
1
+ # Byte-compiled / optimized / DLL files
2
+ __pycache__/
3
+ *.py[codz]
4
+ *$py.class
5
+
6
+ # C extensions
7
+ *.so
8
+
9
+ *.lock
10
+ # Distribution / packaging
11
+ .Python
12
+ build/
13
+ develop-eggs/
14
+ dist/
15
+ downloads/
16
+ eggs/
17
+ .eggs/
18
+ lib/
19
+ lib64/
20
+ parts/
21
+ sdist/
22
+ var/
23
+ wheels/
24
+ share/python-wheels/
25
+ *.egg-info/
26
+ .installed.cfg
27
+ *.egg
28
+ MANIFEST
29
+
30
+ *.h5
31
+ *.hdf5
32
+ # PyInstaller
33
+ # Usually these files are written by a python script from a template
34
+ # before PyInstaller builds the exe, so as to inject date/other infos into it.
35
+ *.manifest
36
+ *.spec
37
+
38
+ validation_cache/
39
+
40
+ # Installer logs
41
+ pip-log.txt
42
+ pip-delete-this-directory.txt
43
+
44
+ # Unit test / coverage reports
45
+ htmlcov/
46
+ .tox/
47
+ .nox/
48
+ .coverage
49
+ .coverage.*
50
+ .cache
51
+ nosetests.xml
52
+ coverage.xml
53
+ *.cover
54
+ *.py.cover
55
+ .hypothesis/
56
+ .pytest_cache/
57
+ cover/
58
+
59
+ # Translations
60
+ *.mo
61
+ *.pot
62
+
63
+ # Django stuff:
64
+ *.log
65
+ local_settings.py
66
+ db.sqlite3
67
+ db.sqlite3-journal
68
+
69
+ # Flask stuff:
70
+ instance/
71
+ .webassets-cache
72
+
73
+ # Scrapy stuff:
74
+ .scrapy
75
+
76
+ # Sphinx documentation
77
+ docs/_build/
78
+
79
+ # PyBuilder
80
+ .pybuilder/
81
+ target/
82
+
83
+ # Jupyter Notebook
84
+ .ipynb_checkpoints
85
+
86
+ # IPython
87
+ profile_default/
88
+ ipython_config.py
89
+
90
+ # pyenv
91
+ # For a library or package, you might want to ignore these files since the code is
92
+ # intended to run in multiple environments; otherwise, check them in:
93
+ # .python-version
94
+
95
+ # pipenv
96
+ # According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
97
+ # However, in case of collaboration, if having platform-specific dependencies or dependencies
98
+ # having no cross-platform support, pipenv may install dependencies that don't work, or not
99
+ # install all needed dependencies.
100
+ # Pipfile.lock
101
+
102
+ # UV
103
+ # Similar to Pipfile.lock, it is generally recommended to include uv.lock in version control.
104
+ # This is especially recommended for binary packages to ensure reproducibility, and is more
105
+ # commonly ignored for libraries.
106
+ # uv.lock
107
+
108
+ # poetry
109
+ # Similar to Pipfile.lock, it is generally recommended to include poetry.lock in version control.
110
+ # This is especially recommended for binary packages to ensure reproducibility, and is more
111
+ # commonly ignored for libraries.
112
+ # https://python-poetry.org/docs/basic-usage/#commit-your-poetrylock-file-to-version-control
113
+ # poetry.lock
114
+ # poetry.toml
115
+
116
+ # pdm
117
+ # Similar to Pipfile.lock, it is generally recommended to include pdm.lock in version control.
118
+ # pdm recommends including project-wide configuration in pdm.toml, but excluding .pdm-python.
119
+ # https://pdm-project.org/en/latest/usage/project/#working-with-version-control
120
+ # pdm.lock
121
+ # pdm.toml
122
+ .pdm-python
123
+ .pdm-build/
124
+
125
+ # pixi
126
+ # Similar to Pipfile.lock, it is generally recommended to include pixi.lock in version control.
127
+ # pixi.lock
128
+ # Pixi creates a virtual environment in the .pixi directory, just like venv module creates one
129
+ # in the .venv directory. It is recommended not to include this directory in version control.
130
+ .pixi
131
+
132
+ # PEP 582; used by e.g. github.com/David-OConnor/pyflow and github.com/pdm-project/pdm
133
+ __pypackages__/
134
+
135
+ # Celery stuff
136
+ celerybeat-schedule
137
+ celerybeat.pid
138
+
139
+ # Redis
140
+ *.rdb
141
+ *.aof
142
+ *.pid
143
+
144
+ # RabbitMQ
145
+ mnesia/
146
+ rabbitmq/
147
+ rabbitmq-data/
148
+
149
+ # ActiveMQ
150
+ activemq-data/
151
+
152
+ # SageMath parsed files
153
+ *.sage.py
154
+
155
+ # Environments
156
+ .env
157
+ .envrc
158
+ .venv
159
+ env/
160
+ venv/
161
+ ENV/
162
+ env.bak/
163
+ venv.bak/
164
+
165
+ # Spyder project settings
166
+ .spyderproject
167
+ .spyproject
168
+
169
+ # Rope project settings
170
+ .ropeproject
171
+
172
+ # mkdocs documentation
173
+ /site
174
+ .slangtorch_cache/
175
+ .fdtd_runtime_*.slang
176
+ .adjoint_kernels_runtime_*.slang
177
+ *.png
178
+ *.npy
179
+ *.npz
180
+
181
+ settings.local.json
182
+
183
+ # mypy
184
+ .mypy_cache/
185
+ .dmypy.json
186
+ dmypy.json
187
+
188
+ # Pyre type checker
189
+ .pyre/
190
+
191
+ # pytype static type analyzer
192
+ .pytype/
193
+
194
+ # Cython debug symbols
195
+ cython_debug/
196
+
197
+ # PyCharm
198
+ # JetBrains specific template is maintained in a separate JetBrains.gitignore that can
199
+ # be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore
200
+ # and can be added to the global gitignore or merged into this file. For a more nuclear
201
+ # option (not recommended) you can uncomment the following to ignore the entire idea folder.
202
+ # .idea/
203
+
204
+ # Abstra
205
+ # Abstra is an AI-powered process automation framework.
206
+ # Ignore directories containing user credentials, local state, and settings.
207
+ # Learn more at https://abstra.io/docs
208
+ .abstra/
209
+
210
+ # Visual Studio Code
211
+ # Visual Studio Code specific template is maintained in a separate VisualStudioCode.gitignore
212
+ # that can be found at https://github.com/github/gitignore/blob/main/Global/VisualStudioCode.gitignore
213
+ # and can be added to the global gitignore or merged into this file. However, if you prefer,
214
+ # you could uncomment the following to ignore the entire vscode folder
215
+ # .vscode/
216
+
217
+ # Ruff stuff:
218
+ .ruff_cache/
219
+
220
+ # PyPI configuration file
221
+ .pypirc
222
+
223
+ # Marimo
224
+ marimo/_static/
225
+ marimo/_lsp/
226
+ __marimo__/
227
+
228
+ # Streamlit
229
+ .streamlit/secrets.toml