PyFiberModes 0.16.0__tar.gz → 0.17.2__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 (171) hide show
  1. {pyfibermodes-0.16.0 → pyfibermodes-0.17.2}/.github/dependabot.yml +1 -2
  2. {pyfibermodes-0.16.0 → pyfibermodes-0.17.2}/.github/workflows/deploy_anaconda.yml +3 -2
  3. {pyfibermodes-0.16.0 → pyfibermodes-0.17.2}/.github/workflows/quality.yml +4 -3
  4. pyfibermodes-0.17.2/.github/workflows/tests.yml +29 -0
  5. {pyfibermodes-0.16.0 → pyfibermodes-0.17.2}/.zenodo.json +2 -2
  6. {pyfibermodes-0.16.0 → pyfibermodes-0.17.2}/CHANGELOG.md +20 -1
  7. {pyfibermodes-0.16.0 → pyfibermodes-0.17.2}/PKG-INFO +8 -7
  8. {pyfibermodes-0.16.0 → pyfibermodes-0.17.2}/PyFiberModes/_version.py +2 -2
  9. {pyfibermodes-0.16.0 → pyfibermodes-0.17.2}/PyFiberModes.egg-info/PKG-INFO +8 -7
  10. {pyfibermodes-0.16.0 → pyfibermodes-0.17.2}/PyFiberModes.egg-info/SOURCES.txt +2 -0
  11. {pyfibermodes-0.16.0 → pyfibermodes-0.17.2}/PyFiberModes.egg-info/requires.txt +5 -5
  12. {pyfibermodes-0.16.0 → pyfibermodes-0.17.2}/README.rst +1 -1
  13. {pyfibermodes-0.16.0 → pyfibermodes-0.17.2}/conda.recipe/meta.yaml +2 -2
  14. pyfibermodes-0.17.2/docs/source/guide.rst +37 -0
  15. {pyfibermodes-0.16.0 → pyfibermodes-0.17.2}/docs/source/index.rst +4 -12
  16. pyfibermodes-0.17.2/docs/source/resources.rst +62 -0
  17. {pyfibermodes-0.16.0 → pyfibermodes-0.17.2}/pyproject.toml +11 -6
  18. {pyfibermodes-0.16.0 → pyfibermodes-0.17.2}/tests/test_public_api.py +5 -3
  19. pyfibermodes-0.16.0/.github/workflows/tests.yml +0 -28
  20. {pyfibermodes-0.16.0 → pyfibermodes-0.17.2}/.coveragerc +0 -0
  21. {pyfibermodes-0.16.0 → pyfibermodes-0.17.2}/.github/workflows/deploy_PyPi.yml +0 -0
  22. {pyfibermodes-0.16.0 → pyfibermodes-0.17.2}/.github/workflows/deploy_coverage.yml +0 -0
  23. {pyfibermodes-0.16.0 → pyfibermodes-0.17.2}/.github/workflows/deploy_documentation.yml +0 -0
  24. {pyfibermodes-0.16.0 → pyfibermodes-0.17.2}/.gitignore +0 -0
  25. {pyfibermodes-0.16.0 → pyfibermodes-0.17.2}/CITATION.cff +0 -0
  26. {pyfibermodes-0.16.0 → pyfibermodes-0.17.2}/CONTRIBUTING.md +0 -0
  27. {pyfibermodes-0.16.0 → pyfibermodes-0.17.2}/LICENSE +0 -0
  28. {pyfibermodes-0.16.0 → pyfibermodes-0.17.2}/MANIFEST.in +0 -0
  29. {pyfibermodes-0.16.0 → pyfibermodes-0.17.2}/Makefile +0 -0
  30. {pyfibermodes-0.16.0 → pyfibermodes-0.17.2}/PyFiberModes/__init__.py +0 -0
  31. {pyfibermodes-0.16.0 → pyfibermodes-0.17.2}/PyFiberModes/analysis.py +0 -0
  32. {pyfibermodes-0.16.0 → pyfibermodes-0.17.2}/PyFiberModes/coordinates.py +0 -0
  33. {pyfibermodes-0.16.0 → pyfibermodes-0.17.2}/PyFiberModes/directories.py +0 -0
  34. {pyfibermodes-0.16.0 → pyfibermodes-0.17.2}/PyFiberModes/exceptions.py +0 -0
  35. {pyfibermodes-0.16.0 → pyfibermodes-0.17.2}/PyFiberModes/factory.py +0 -0
  36. {pyfibermodes-0.16.0 → pyfibermodes-0.17.2}/PyFiberModes/fiber.py +0 -0
  37. {pyfibermodes-0.16.0 → pyfibermodes-0.17.2}/PyFiberModes/fiber_files/1550BHP.yaml +0 -0
  38. {pyfibermodes-0.16.0 → pyfibermodes-0.17.2}/PyFiberModes/fiber_files/DCF13.yaml +0 -0
  39. {pyfibermodes-0.16.0 → pyfibermodes-0.17.2}/PyFiberModes/fiber_files/DCF1300S_20.yaml +0 -0
  40. {pyfibermodes-0.16.0 → pyfibermodes-0.17.2}/PyFiberModes/fiber_files/DCF1300S_26.yaml +0 -0
  41. {pyfibermodes-0.16.0 → pyfibermodes-0.17.2}/PyFiberModes/fiber_files/DCF1300S_33.yaml +0 -0
  42. {pyfibermodes-0.16.0 → pyfibermodes-0.17.2}/PyFiberModes/fiber_files/DCF1300S_42.yaml +0 -0
  43. {pyfibermodes-0.16.0 → pyfibermodes-0.17.2}/PyFiberModes/fiber_files/F2028M12.yaml +0 -0
  44. {pyfibermodes-0.16.0 → pyfibermodes-0.17.2}/PyFiberModes/fiber_files/F2028M21.yaml +0 -0
  45. {pyfibermodes-0.16.0 → pyfibermodes-0.17.2}/PyFiberModes/fiber_files/F2028M24.yaml +0 -0
  46. {pyfibermodes-0.16.0 → pyfibermodes-0.17.2}/PyFiberModes/fiber_files/F2058G1.yaml +0 -0
  47. {pyfibermodes-0.16.0 → pyfibermodes-0.17.2}/PyFiberModes/fiber_files/F2058L1.yaml +0 -0
  48. {pyfibermodes-0.16.0 → pyfibermodes-0.17.2}/PyFiberModes/fiber_files/HI1060.yaml +0 -0
  49. {pyfibermodes-0.16.0 → pyfibermodes-0.17.2}/PyFiberModes/fiber_files/HP630.yaml +0 -0
  50. {pyfibermodes-0.16.0 → pyfibermodes-0.17.2}/PyFiberModes/fiber_files/SM1950.yaml +0 -0
  51. {pyfibermodes-0.16.0 → pyfibermodes-0.17.2}/PyFiberModes/fiber_files/SMF28.yaml +0 -0
  52. {pyfibermodes-0.16.0 → pyfibermodes-0.17.2}/PyFiberModes/fiber_files/fluorine_doped_1%_capillary.yaml +0 -0
  53. {pyfibermodes-0.16.0 → pyfibermodes-0.17.2}/PyFiberModes/fiber_files/fluorine_doped_2%_capillary.yaml +0 -0
  54. {pyfibermodes-0.16.0 → pyfibermodes-0.17.2}/PyFiberModes/fiber_files/test_fiber.yaml +0 -0
  55. {pyfibermodes-0.16.0 → pyfibermodes-0.17.2}/PyFiberModes/fiber_files/test_multimode_fiber.yaml +0 -0
  56. {pyfibermodes-0.16.0 → pyfibermodes-0.17.2}/PyFiberModes/field.py +0 -0
  57. {pyfibermodes-0.16.0 → pyfibermodes-0.17.2}/PyFiberModes/fundamentals.py +0 -0
  58. {pyfibermodes-0.16.0 → pyfibermodes-0.17.2}/PyFiberModes/loader.py +0 -0
  59. {pyfibermodes-0.16.0 → pyfibermodes-0.17.2}/PyFiberModes/materials.py +0 -0
  60. {pyfibermodes-0.16.0 → pyfibermodes-0.17.2}/PyFiberModes/mode.py +0 -0
  61. {pyfibermodes-0.16.0 → pyfibermodes-0.17.2}/PyFiberModes/mode_instances.py +0 -0
  62. {pyfibermodes-0.16.0 → pyfibermodes-0.17.2}/PyFiberModes/models.py +0 -0
  63. {pyfibermodes-0.16.0 → pyfibermodes-0.17.2}/PyFiberModes/optimization.py +0 -0
  64. {pyfibermodes-0.16.0 → pyfibermodes-0.17.2}/PyFiberModes/plotting.py +0 -0
  65. {pyfibermodes-0.16.0 → pyfibermodes-0.17.2}/PyFiberModes/propagation.py +0 -0
  66. {pyfibermodes-0.16.0 → pyfibermodes-0.17.2}/PyFiberModes/services.py +0 -0
  67. {pyfibermodes-0.16.0 → pyfibermodes-0.17.2}/PyFiberModes/solver/__init__.py +0 -0
  68. {pyfibermodes-0.16.0 → pyfibermodes-0.17.2}/PyFiberModes/solver/base_solver.py +0 -0
  69. {pyfibermodes-0.16.0 → pyfibermodes-0.17.2}/PyFiberModes/solver/multilayer/__init__.py +0 -0
  70. {pyfibermodes-0.16.0 → pyfibermodes-0.17.2}/PyFiberModes/solver/multilayer/effective_index.py +0 -0
  71. {pyfibermodes-0.16.0 → pyfibermodes-0.17.2}/PyFiberModes/solver/protocols.py +0 -0
  72. {pyfibermodes-0.16.0 → pyfibermodes-0.17.2}/PyFiberModes/solver/results.py +0 -0
  73. {pyfibermodes-0.16.0 → pyfibermodes-0.17.2}/PyFiberModes/solver/three_layer/__init__.py +0 -0
  74. {pyfibermodes-0.16.0 → pyfibermodes-0.17.2}/PyFiberModes/solver/three_layer/cutoff.py +0 -0
  75. {pyfibermodes-0.16.0 → pyfibermodes-0.17.2}/PyFiberModes/solver/two_layer/__init__.py +0 -0
  76. {pyfibermodes-0.16.0 → pyfibermodes-0.17.2}/PyFiberModes/solver/two_layer/cutoff.py +0 -0
  77. {pyfibermodes-0.16.0 → pyfibermodes-0.17.2}/PyFiberModes/solver/two_layer/effective_index.py +0 -0
  78. {pyfibermodes-0.16.0 → pyfibermodes-0.17.2}/PyFiberModes/source.py +0 -0
  79. {pyfibermodes-0.16.0 → pyfibermodes-0.17.2}/PyFiberModes/stepindex.py +0 -0
  80. {pyfibermodes-0.16.0 → pyfibermodes-0.17.2}/PyFiberModes.egg-info/dependency_links.txt +0 -0
  81. {pyfibermodes-0.16.0 → pyfibermodes-0.17.2}/PyFiberModes.egg-info/top_level.txt +0 -0
  82. {pyfibermodes-0.16.0 → pyfibermodes-0.17.2}/benchmarks/README.md +0 -0
  83. {pyfibermodes-0.16.0 → pyfibermodes-0.17.2}/benchmarks/test_field_performance.py +0 -0
  84. {pyfibermodes-0.16.0 → pyfibermodes-0.17.2}/docs/Makefile +0 -0
  85. {pyfibermodes-0.16.0 → pyfibermodes-0.17.2}/docs/examples/README.rst +0 -0
  86. {pyfibermodes-0.16.0 → pyfibermodes-0.17.2}/docs/examples/SMF28/README.rst +0 -0
  87. {pyfibermodes-0.16.0 → pyfibermodes-0.17.2}/docs/examples/SMF28/plot_smf28.py +0 -0
  88. {pyfibermodes-0.16.0 → pyfibermodes-0.17.2}/docs/examples/SMF28/plot_smf28_dispersion_vs_wavelength.py +0 -0
  89. {pyfibermodes-0.16.0 → pyfibermodes-0.17.2}/docs/examples/SMF28/plot_smf28_group_index_vs_wavelength.py +0 -0
  90. {pyfibermodes-0.16.0 → pyfibermodes-0.17.2}/docs/examples/analysis/README.rst +0 -0
  91. {pyfibermodes-0.16.0 → pyfibermodes-0.17.2}/docs/examples/analysis/plot_coupled_mode_exchange.py +0 -0
  92. {pyfibermodes-0.16.0 → pyfibermodes-0.17.2}/docs/examples/analysis/plot_guided_mode_discovery.py +0 -0
  93. {pyfibermodes-0.16.0 → pyfibermodes-0.17.2}/docs/examples/analysis/plot_structured_wavelength_sweep.py +0 -0
  94. {pyfibermodes-0.16.0 → pyfibermodes-0.17.2}/docs/examples/basic/README.rst +0 -0
  95. {pyfibermodes-0.16.0 → pyfibermodes-0.17.2}/docs/examples/basic/plot_U_vs_V.py +0 -0
  96. {pyfibermodes-0.16.0 → pyfibermodes-0.17.2}/docs/examples/basic/plot_comparison_solvers.py +0 -0
  97. {pyfibermodes-0.16.0 → pyfibermodes-0.17.2}/docs/examples/basic/plot_dispersion.py +0 -0
  98. {pyfibermodes-0.16.0 → pyfibermodes-0.17.2}/docs/examples/basic/plot_effective_index.py +0 -0
  99. {pyfibermodes-0.16.0 → pyfibermodes-0.17.2}/docs/examples/basic/plot_fiber_LP_modes.py +0 -0
  100. {pyfibermodes-0.16.0 → pyfibermodes-0.17.2}/docs/examples/basic/plot_group_index.py +0 -0
  101. {pyfibermodes-0.16.0 → pyfibermodes-0.17.2}/docs/examples/basic/plot_mode_field.py +0 -0
  102. {pyfibermodes-0.16.0 → pyfibermodes-0.17.2}/docs/examples/basic/plot_mode_field_1.py +0 -0
  103. {pyfibermodes-0.16.0 → pyfibermodes-0.17.2}/docs/examples/basic/plot_mode_field_2.py +0 -0
  104. {pyfibermodes-0.16.0 → pyfibermodes-0.17.2}/docs/examples/basic/plot_neff_tapered_fiber.py +0 -0
  105. {pyfibermodes-0.16.0 → pyfibermodes-0.17.2}/docs/examples/benchmarks/README.rst +0 -0
  106. {pyfibermodes-0.16.0 → pyfibermodes-0.17.2}/docs/examples/benchmarks/plot_component_batching_speedup.py +0 -0
  107. {pyfibermodes-0.16.0 → pyfibermodes-0.17.2}/docs/examples/benchmarks/plot_field_grid_scaling.py +0 -0
  108. {pyfibermodes-0.16.0 → pyfibermodes-0.17.2}/docs/examples/benchmarks/plot_modal_cache_speedup.py +0 -0
  109. {pyfibermodes-0.16.0 → pyfibermodes-0.17.2}/docs/examples/fields/README.rst +0 -0
  110. {pyfibermodes-0.16.0 → pyfibermodes-0.17.2}/docs/examples/fields/plot_confinement_by_radius.py +0 -0
  111. {pyfibermodes-0.16.0 → pyfibermodes-0.17.2}/docs/examples/fields/plot_polarization_rotation.py +0 -0
  112. {pyfibermodes-0.16.0 → pyfibermodes-0.17.2}/docs/examples/fields/plot_vector_components.py +0 -0
  113. {pyfibermodes-0.16.0 → pyfibermodes-0.17.2}/docs/examples/specialty_fibers/README.rst +0 -0
  114. {pyfibermodes-0.16.0 → pyfibermodes-0.17.2}/docs/examples/specialty_fibers/plot_refractive_index_profile.py +0 -0
  115. {pyfibermodes-0.16.0 → pyfibermodes-0.17.2}/docs/examples/specialty_fibers/plot_specialty_fiber_catalog.py +0 -0
  116. {pyfibermodes-0.16.0 → pyfibermodes-0.17.2}/docs/examples/specialty_fibers/plot_specialty_mode_indices.py +0 -0
  117. {pyfibermodes-0.16.0 → pyfibermodes-0.17.2}/docs/examples/validation/README.rst +0 -0
  118. {pyfibermodes-0.16.0 → pyfibermodes-0.17.2}/docs/examples/validation/plot_effective_index_bounds.py +0 -0
  119. {pyfibermodes-0.16.0 → pyfibermodes-0.17.2}/docs/examples/validation/plot_field_area_convergence.py +0 -0
  120. {pyfibermodes-0.16.0 → pyfibermodes-0.17.2}/docs/examples/validation/plot_normalized_effective_index.py +0 -0
  121. {pyfibermodes-0.16.0 → pyfibermodes-0.17.2}/docs/make.bat +0 -0
  122. {pyfibermodes-0.16.0 → pyfibermodes-0.17.2}/docs/source/_static/default.css +0 -0
  123. {pyfibermodes-0.16.0 → pyfibermodes-0.17.2}/docs/source/_static/favicon.png +0 -0
  124. {pyfibermodes-0.16.0 → pyfibermodes-0.17.2}/docs/source/_static/logo.png +0 -0
  125. {pyfibermodes-0.16.0 → pyfibermodes-0.17.2}/docs/source/_static/thumbnail.png +0 -0
  126. {pyfibermodes-0.16.0 → pyfibermodes-0.17.2}/docs/source/api_policy.rst +0 -0
  127. {pyfibermodes-0.16.0 → pyfibermodes-0.17.2}/docs/source/architecture.rst +0 -0
  128. {pyfibermodes-0.16.0 → pyfibermodes-0.17.2}/docs/source/code/analysis.rst +0 -0
  129. {pyfibermodes-0.16.0 → pyfibermodes-0.17.2}/docs/source/code/fibers.rst +0 -0
  130. {pyfibermodes-0.16.0 → pyfibermodes-0.17.2}/docs/source/code/fields.rst +0 -0
  131. {pyfibermodes-0.16.0 → pyfibermodes-0.17.2}/docs/source/code/fundamentals.rst +0 -0
  132. {pyfibermodes-0.16.0 → pyfibermodes-0.17.2}/docs/source/code.rst +0 -0
  133. {pyfibermodes-0.16.0 → pyfibermodes-0.17.2}/docs/source/conf.py +0 -0
  134. {pyfibermodes-0.16.0 → pyfibermodes-0.17.2}/docs/source/examples.rst +0 -0
  135. {pyfibermodes-0.16.0 → pyfibermodes-0.17.2}/docs/source/getting_started.rst +0 -0
  136. {pyfibermodes-0.16.0 → pyfibermodes-0.17.2}/docs/source/migration_guide.rst +0 -0
  137. {pyfibermodes-0.16.0 → pyfibermodes-0.17.2}/docs/source/performance.rst +0 -0
  138. {pyfibermodes-0.16.0 → pyfibermodes-0.17.2}/docs/source/public_api_contract.rst +0 -0
  139. {pyfibermodes-0.16.0 → pyfibermodes-0.17.2}/docs/source/references.rst +0 -0
  140. {pyfibermodes-0.16.0 → pyfibermodes-0.17.2}/docs/source/theory.rst +0 -0
  141. {pyfibermodes-0.16.0 → pyfibermodes-0.17.2}/docs/source/troubleshooting.rst +0 -0
  142. {pyfibermodes-0.16.0 → pyfibermodes-0.17.2}/docs/source/user_guide/fibers.rst +0 -0
  143. {pyfibermodes-0.16.0 → pyfibermodes-0.17.2}/docs/source/user_guide/fields.rst +0 -0
  144. {pyfibermodes-0.16.0 → pyfibermodes-0.17.2}/docs/source/user_guide/index.rst +0 -0
  145. {pyfibermodes-0.16.0 → pyfibermodes-0.17.2}/docs/source/user_guide/modes.rst +0 -0
  146. {pyfibermodes-0.16.0 → pyfibermodes-0.17.2}/docs/source/user_guide/reproducibility.rst +0 -0
  147. {pyfibermodes-0.16.0 → pyfibermodes-0.17.2}/docs/source/user_guide/sweeps.rst +0 -0
  148. {pyfibermodes-0.16.0 → pyfibermodes-0.17.2}/docs/source/user_guide/units.rst +0 -0
  149. {pyfibermodes-0.16.0 → pyfibermodes-0.17.2}/docs/source/workflows.rst +0 -0
  150. {pyfibermodes-0.16.0 → pyfibermodes-0.17.2}/pytest.ini +0 -0
  151. {pyfibermodes-0.16.0 → pyfibermodes-0.17.2}/setup.cfg +0 -0
  152. {pyfibermodes-0.16.0 → pyfibermodes-0.17.2}/tests/__init__.py +0 -0
  153. {pyfibermodes-0.16.0 → pyfibermodes-0.17.2}/tests/api_snapshot.json +0 -0
  154. {pyfibermodes-0.16.0 → pyfibermodes-0.17.2}/tests/helpers.py +0 -0
  155. {pyfibermodes-0.16.0 → pyfibermodes-0.17.2}/tests/test_advanced_features.py +0 -0
  156. {pyfibermodes-0.16.0 → pyfibermodes-0.17.2}/tests/test_api.py +0 -0
  157. {pyfibermodes-0.16.0 → pyfibermodes-0.17.2}/tests/test_architecture.py +0 -0
  158. {pyfibermodes-0.16.0 → pyfibermodes-0.17.2}/tests/test_architecture_enhancements.py +0 -0
  159. {pyfibermodes-0.16.0 → pyfibermodes-0.17.2}/tests/test_coordinates.py +0 -0
  160. {pyfibermodes-0.16.0 → pyfibermodes-0.17.2}/tests/test_docstrings.py +0 -0
  161. {pyfibermodes-0.16.0 → pyfibermodes-0.17.2}/tests/test_fiber.py +0 -0
  162. {pyfibermodes-0.16.0 → pyfibermodes-0.17.2}/tests/test_field.py +0 -0
  163. {pyfibermodes-0.16.0 → pyfibermodes-0.17.2}/tests/test_file_loading.py +0 -0
  164. {pyfibermodes-0.16.0 → pyfibermodes-0.17.2}/tests/test_physics_regression.py +0 -0
  165. {pyfibermodes-0.16.0 → pyfibermodes-0.17.2}/tests/test_release_tools.py +0 -0
  166. {pyfibermodes-0.16.0 → pyfibermodes-0.17.2}/tests/test_three_layer_solver.py +0 -0
  167. {pyfibermodes-0.16.0 → pyfibermodes-0.17.2}/tests/test_two_layer_solver.py +0 -0
  168. {pyfibermodes-0.16.0 → pyfibermodes-0.17.2}/tests/test_validation.py +0 -0
  169. {pyfibermodes-0.16.0 → pyfibermodes-0.17.2}/tools/check_release.py +0 -0
  170. {pyfibermodes-0.16.0 → pyfibermodes-0.17.2}/tools/next_release_version.py +0 -0
  171. {pyfibermodes-0.16.0 → pyfibermodes-0.17.2}/tools/release_tag.py +0 -0
@@ -6,6 +6,5 @@ updates:
6
6
  directory: "/"
7
7
  target-branch: "master"
8
8
  schedule:
9
- interval: "monthly"
10
- day: "sunday"
9
+ interval: "quarterly"
11
10
  time: "09:00"
@@ -21,12 +21,13 @@ jobs:
21
21
 
22
22
  publish:
23
23
  needs: validate-release
24
- uses: MartinPdeS/MPSActions/.github/workflows/publish_compiled_package_to_anaconda.yml@v5
24
+ uses: MartinPdeS/MPSActions/.github/workflows/publish_compiled_package_to_anaconda.yml@v6
25
25
  with:
26
26
  # The recipe is ``noarch: python``. Building it in a platform/version
27
27
  # matrix creates several artifacts with the same archive path, which
28
28
  # collide when the reusable workflow merges them before upload.
29
- python_versions: '["3.11"]'
29
+ # One noarch archive supports all declared Python versions; test it on 3.14.
30
+ python_versions: '["3.14"]'
30
31
  os_list: '["ubuntu-latest"]'
31
32
  package_name: pyfibermodes
32
33
  recipe_path: conda.recipe
@@ -13,11 +13,12 @@ jobs:
13
13
  quality:
14
14
  runs-on: ubuntu-latest
15
15
  steps:
16
- - uses: actions/checkout@fbc6f3992d24b796d5a048ff273f7fcc4a7b6c09
17
- - uses: actions/setup-python@ece7cb06caefa5fff74198d8649806c4678c61a1
16
+ - name: Set up Python and CI dependencies
17
+ uses: MartinPdeS/MPSActions/actions/setup-python@0f5927acf88b25b5d253421e508387897096a2cc
18
18
  with:
19
19
  python-version: "3.11"
20
- - run: python -m pip install --upgrade pip && python -m pip install -e ".[dev]"
20
+ install-command: >-
21
+ python -m pip install --upgrade pip && python -m pip install -e ".[dev]"
21
22
  - run: python -m ruff check PyFiberModes tests tools
22
23
  - run: python -m mypy
23
24
  - run: python tools/check_release.py
@@ -0,0 +1,29 @@
1
+ name: Tests
2
+
3
+ on:
4
+ push:
5
+ branches: [master]
6
+ pull_request:
7
+ branches: [master]
8
+
9
+ permissions:
10
+ contents: read
11
+
12
+ jobs:
13
+ tests:
14
+ name: Python ${{ matrix.python-version }}
15
+ runs-on: ubuntu-latest
16
+ strategy:
17
+ fail-fast: false
18
+ matrix:
19
+ python-version: ["3.11", "3.12", "3.13", "3.14"]
20
+ steps:
21
+ - name: Set up Python and CI dependencies
22
+ uses: MartinPdeS/MPSActions/actions/setup-python@0f5927acf88b25b5d253421e508387897096a2cc
23
+ with:
24
+ python-version: "${{ matrix.python-version }}"
25
+ install-command: >-
26
+ python -m pip install --upgrade pip && python -m pip install -e ".[testing]"
27
+ - run: python -m pytest -q
28
+ env:
29
+ MPLBACKEND: Agg
@@ -9,8 +9,8 @@
9
9
  "license": "MIT",
10
10
  "upload_type": "software",
11
11
  "access_right": "open",
12
- "version": "0.16.0",
13
- "publication_date": "2026-09-23",
12
+ "version": "0.17.2",
13
+ "publication_date": "2026-10-13",
14
14
  "keywords": [
15
15
  "optical fibers",
16
16
  "guided modes",
@@ -6,6 +6,22 @@ use [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
6
6
 
7
7
  ## [Unreleased]
8
8
 
9
+ ## [0.17.2] - 2026-10-13
10
+
11
+ ### Fixed
12
+
13
+ - Updated the documentation navigation regression test for the new Resources
14
+ grouping.
15
+
16
+ ## [0.17.1] - 2026-10-13
17
+
18
+ ### Changed
19
+
20
+ - Reorganized the documentation navigation into Start, Guide, Examples, API,
21
+ and Resources sections.
22
+
23
+ ## [0.17.0] - 2026-10-13
24
+
9
25
  ## [0.16.0] - 2026-09-23
10
26
 
11
27
  ### Fixed
@@ -149,7 +165,10 @@ use [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
149
165
 
150
166
  - Established the current tagged baseline for subsequent documented releases.
151
167
 
152
- [Unreleased]: https://github.com/MartinPdeS/PyFiberModes/compare/v0.16.0...HEAD
168
+ [Unreleased]: https://github.com/MartinPdeS/PyFiberModes/compare/v0.17.2...HEAD
169
+ [0.17.2]: https://github.com/MartinPdeS/PyFiberModes/releases/tag/v0.17.2
170
+ [0.17.1]: https://github.com/MartinPdeS/PyFiberModes/releases/tag/v0.17.1
171
+ [0.17.0]: https://github.com/MartinPdeS/PyFiberModes/releases/tag/v0.17.0
153
172
  [0.16.0]: https://github.com/MartinPdeS/PyFiberModes/releases/tag/v0.16.0
154
173
  [0.15.0]: https://github.com/MartinPdeS/PyFiberModes/releases/tag/v0.15.0
155
174
  [0.14.3]: https://github.com/MartinPdeS/PyFiberModes/releases/tag/v0.14.3
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: PyFiberModes
3
- Version: 0.16.0
3
+ Version: 0.17.2
4
4
  Summary: Guided-mode analysis and design for circular optical fibers.
5
5
  Author-email: Martin Poinsinet de Sivry-Houle <martin.poinsinet.de.sivry@gmail.com>
6
6
  License: GNU GENERAL PUBLIC LICENSE
@@ -689,6 +689,7 @@ Classifier: Programming Language :: Python :: 3 :: Only
689
689
  Classifier: Programming Language :: Python :: 3.11
690
690
  Classifier: Programming Language :: Python :: 3.12
691
691
  Classifier: Programming Language :: Python :: 3.13
692
+ Classifier: Programming Language :: Python :: 3.14
692
693
  Classifier: Programming Language :: Python :: Implementation :: CPython
693
694
  Classifier: Development Status :: 4 - Beta
694
695
  Classifier: Topic :: Scientific/Engineering :: Physics
@@ -708,22 +709,22 @@ Requires-Dist: pytest-json-report~=1.5; extra == "testing"
708
709
  Requires-Dist: coverage~=7.6; extra == "testing"
709
710
  Requires-Dist: ruff<1,>=0.8; extra == "testing"
710
711
  Requires-Dist: matplotlib>=3.8; extra == "testing"
711
- Requires-Dist: mypy<2,>=1.15; extra == "testing"
712
+ Requires-Dist: mypy<3,>=1.15; extra == "testing"
712
713
  Provides-Extra: plotting
713
714
  Requires-Dist: matplotlib>=3.8; extra == "plotting"
714
715
  Provides-Extra: benchmarking
715
716
  Requires-Dist: pytest-benchmark<6,>=5; extra == "benchmarking"
716
717
  Provides-Extra: documentation
717
718
  Requires-Dist: matplotlib>=3.8; extra == "documentation"
718
- Requires-Dist: numpydoc==1.10.0; extra == "documentation"
719
+ Requires-Dist: numpydoc==1.11.0; extra == "documentation"
719
720
  Requires-Dist: sphinx>=5.1.1; extra == "documentation"
720
- Requires-Dist: sphinx-gallery==0.21.0; extra == "documentation"
721
+ Requires-Dist: sphinx-gallery==0.22.1; extra == "documentation"
721
722
  Requires-Dist: sphinx-design<1,>=0.6; extra == "documentation"
722
723
  Requires-Dist: sphinx-rtd-theme==3.1.0; extra == "documentation"
723
- Requires-Dist: pydata-sphinx-theme==0.17.1; extra == "documentation"
724
+ Requires-Dist: pydata-sphinx-theme==0.22.0; extra == "documentation"
724
725
  Provides-Extra: dev
725
726
  Requires-Dist: ruff<1,>=0.8; extra == "dev"
726
- Requires-Dist: mypy<2,>=1.15; extra == "dev"
727
+ Requires-Dist: mypy<3,>=1.15; extra == "dev"
727
728
  Dynamic: license-file
728
729
 
729
730
  .. image:: https://raw.githubusercontent.com/MartinPdeS/PyFiberModes/master/docs/source/_static/logo.png
@@ -1049,7 +1050,7 @@ Or run the complete local check target:
1049
1050
 
1050
1051
  make check
1051
1052
 
1052
- Tests run on Python 3.11 through 3.13 in GitHub Actions. Bug reports and
1053
+ Tests run on Python 3.11 through 3.14 in GitHub Actions. Bug reports and
1053
1054
  feature proposals are welcome through the
1054
1055
  `issue tracker <https://github.com/MartinPdeS/PyFiberModes/issues>`_.
1055
1056
 
@@ -18,7 +18,7 @@ version_tuple: tuple[int | str, ...]
18
18
  commit_id: str | None
19
19
  __commit_id__: str | None
20
20
 
21
- __version__ = version = '0.16.0'
22
- __version_tuple__ = version_tuple = (0, 16, 0)
21
+ __version__ = version = '0.17.2'
22
+ __version_tuple__ = version_tuple = (0, 17, 2)
23
23
 
24
24
  __commit_id__ = commit_id = None
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: PyFiberModes
3
- Version: 0.16.0
3
+ Version: 0.17.2
4
4
  Summary: Guided-mode analysis and design for circular optical fibers.
5
5
  Author-email: Martin Poinsinet de Sivry-Houle <martin.poinsinet.de.sivry@gmail.com>
6
6
  License: GNU GENERAL PUBLIC LICENSE
@@ -689,6 +689,7 @@ Classifier: Programming Language :: Python :: 3 :: Only
689
689
  Classifier: Programming Language :: Python :: 3.11
690
690
  Classifier: Programming Language :: Python :: 3.12
691
691
  Classifier: Programming Language :: Python :: 3.13
692
+ Classifier: Programming Language :: Python :: 3.14
692
693
  Classifier: Programming Language :: Python :: Implementation :: CPython
693
694
  Classifier: Development Status :: 4 - Beta
694
695
  Classifier: Topic :: Scientific/Engineering :: Physics
@@ -708,22 +709,22 @@ Requires-Dist: pytest-json-report~=1.5; extra == "testing"
708
709
  Requires-Dist: coverage~=7.6; extra == "testing"
709
710
  Requires-Dist: ruff<1,>=0.8; extra == "testing"
710
711
  Requires-Dist: matplotlib>=3.8; extra == "testing"
711
- Requires-Dist: mypy<2,>=1.15; extra == "testing"
712
+ Requires-Dist: mypy<3,>=1.15; extra == "testing"
712
713
  Provides-Extra: plotting
713
714
  Requires-Dist: matplotlib>=3.8; extra == "plotting"
714
715
  Provides-Extra: benchmarking
715
716
  Requires-Dist: pytest-benchmark<6,>=5; extra == "benchmarking"
716
717
  Provides-Extra: documentation
717
718
  Requires-Dist: matplotlib>=3.8; extra == "documentation"
718
- Requires-Dist: numpydoc==1.10.0; extra == "documentation"
719
+ Requires-Dist: numpydoc==1.11.0; extra == "documentation"
719
720
  Requires-Dist: sphinx>=5.1.1; extra == "documentation"
720
- Requires-Dist: sphinx-gallery==0.21.0; extra == "documentation"
721
+ Requires-Dist: sphinx-gallery==0.22.1; extra == "documentation"
721
722
  Requires-Dist: sphinx-design<1,>=0.6; extra == "documentation"
722
723
  Requires-Dist: sphinx-rtd-theme==3.1.0; extra == "documentation"
723
- Requires-Dist: pydata-sphinx-theme==0.17.1; extra == "documentation"
724
+ Requires-Dist: pydata-sphinx-theme==0.22.0; extra == "documentation"
724
725
  Provides-Extra: dev
725
726
  Requires-Dist: ruff<1,>=0.8; extra == "dev"
726
- Requires-Dist: mypy<2,>=1.15; extra == "dev"
727
+ Requires-Dist: mypy<3,>=1.15; extra == "dev"
727
728
  Dynamic: license-file
728
729
 
729
730
  .. image:: https://raw.githubusercontent.com/MartinPdeS/PyFiberModes/master/docs/source/_static/logo.png
@@ -1049,7 +1050,7 @@ Or run the complete local check target:
1049
1050
 
1050
1051
  make check
1051
1052
 
1052
- Tests run on Python 3.11 through 3.13 in GitHub Actions. Bug reports and
1053
+ Tests run on Python 3.11 through 3.14 in GitHub Actions. Bug reports and
1053
1054
  feature proposals are welcome through the
1054
1055
  `issue tracker <https://github.com/MartinPdeS/PyFiberModes/issues>`_.
1055
1056
 
@@ -120,11 +120,13 @@ docs/source/code.rst
120
120
  docs/source/conf.py
121
121
  docs/source/examples.rst
122
122
  docs/source/getting_started.rst
123
+ docs/source/guide.rst
123
124
  docs/source/index.rst
124
125
  docs/source/migration_guide.rst
125
126
  docs/source/performance.rst
126
127
  docs/source/public_api_contract.rst
127
128
  docs/source/references.rst
129
+ docs/source/resources.rst
128
130
  docs/source/theory.rst
129
131
  docs/source/troubleshooting.rst
130
132
  docs/source/workflows.rst
@@ -8,16 +8,16 @@ pytest-benchmark<6,>=5
8
8
 
9
9
  [dev]
10
10
  ruff<1,>=0.8
11
- mypy<2,>=1.15
11
+ mypy<3,>=1.15
12
12
 
13
13
  [documentation]
14
14
  matplotlib>=3.8
15
- numpydoc==1.10.0
15
+ numpydoc==1.11.0
16
16
  sphinx>=5.1.1
17
- sphinx-gallery==0.21.0
17
+ sphinx-gallery==0.22.1
18
18
  sphinx-design<1,>=0.6
19
19
  sphinx-rtd-theme==3.1.0
20
- pydata-sphinx-theme==0.17.1
20
+ pydata-sphinx-theme==0.22.0
21
21
 
22
22
  [plotting]
23
23
  matplotlib>=3.8
@@ -29,4 +29,4 @@ pytest-json-report~=1.5
29
29
  coverage~=7.6
30
30
  ruff<1,>=0.8
31
31
  matplotlib>=3.8
32
- mypy<2,>=1.15
32
+ mypy<3,>=1.15
@@ -321,7 +321,7 @@ Or run the complete local check target:
321
321
 
322
322
  make check
323
323
 
324
- Tests run on Python 3.11 through 3.13 in GitHub Actions. Bug reports and
324
+ Tests run on Python 3.11 through 3.14 in GitHub Actions. Bug reports and
325
325
  feature proposals are welcome through the
326
326
  `issue tracker <https://github.com/MartinPdeS/PyFiberModes/issues>`_.
327
327
 
@@ -1,6 +1,6 @@
1
1
  package:
2
2
  name: pyfibermodes
3
- version: 0.16.0
3
+ version: 0.17.2
4
4
 
5
5
  source:
6
6
  path: ../
@@ -53,7 +53,7 @@ test:
53
53
  - pytest>=0.6
54
54
  - pytest-cov>=2.0
55
55
  - pytest-json-report==1.5.0
56
- - coverage==7.6.1
56
+ - coverage >=7.10,<8
57
57
  commands:
58
58
  - python -m pytest
59
59
  source_files:
@@ -0,0 +1,37 @@
1
+ Guide
2
+ =====
3
+
4
+ Learn the fundamentals of fiber modeling, then follow a workflow suited to
5
+ your calculation.
6
+
7
+ .. grid:: 1 1 3 3
8
+ :gutter: 2
9
+
10
+ .. grid-item-card:: User guide
11
+ :link: user_guide/index
12
+ :link-type: doc
13
+
14
+ Work through fiber definitions, modes, fields, units, and parameter
15
+ sweeps.
16
+
17
+ .. grid-item-card:: Workflows
18
+ :link: workflows
19
+ :link-type: doc
20
+
21
+ Choose a practical path for characterization, field analysis, design,
22
+ or coupled-mode propagation.
23
+
24
+ .. grid-item-card:: Theory
25
+ :link: theory
26
+ :link-type: doc
27
+
28
+ Review the mode families, normalized frequency, and numerical
29
+ conventions behind the calculations.
30
+
31
+ .. toctree::
32
+ :hidden:
33
+ :maxdepth: 2
34
+
35
+ user_guide/index
36
+ workflows
37
+ theory
@@ -12,19 +12,11 @@
12
12
  :maxdepth: 2
13
13
  :hidden:
14
14
 
15
- Getting started <getting_started.rst>
16
- User guide <user_guide/index.rst>
17
- Theory <theory.rst>
18
- Architecture <architecture.rst>
19
- API policy <api_policy.rst>
20
- Public API contract <public_api_contract.rst>
21
- Migration <migration_guide.rst>
22
- Workflows <workflows.rst>
23
- Performance <performance.rst>
24
- Troubleshooting <troubleshooting.rst>
15
+ Start <getting_started.rst>
16
+ Guide <guide.rst>
25
17
  Examples <examples.rst>
26
- API reference <code.rst>
27
- References <references.rst>
18
+ API <code.rst>
19
+ Resources <resources.rst>
28
20
 
29
21
  Choose your path
30
22
  ----------------
@@ -0,0 +1,62 @@
1
+ Resources
2
+ =========
3
+
4
+ Find guidance on numerical reliability, compatibility, and the design of the
5
+ PyFiberModes public API.
6
+
7
+ .. grid:: 1 2 3 3
8
+ :gutter: 2
9
+
10
+ .. grid-item-card:: Architecture
11
+ :link: architecture
12
+ :link-type: doc
13
+
14
+ Understand the package structure and the roles of its main components.
15
+
16
+ .. grid-item-card:: API policy
17
+ :link: api_policy
18
+ :link-type: doc
19
+
20
+ Learn which imports are public and how compatibility is managed.
21
+
22
+ .. grid-item-card:: Public API contract
23
+ :link: public_api_contract
24
+ :link-type: doc
25
+
26
+ Review the supported names and guarantees of the public interface.
27
+
28
+ .. grid-item-card:: Migration guide
29
+ :link: migration_guide
30
+ :link-type: doc
31
+
32
+ Find user-facing changes and guidance for updating existing code.
33
+
34
+ .. grid-item-card:: Performance
35
+ :link: performance
36
+ :link-type: doc
37
+
38
+ Plan parameter grids, control memory use, and benchmark fairly.
39
+
40
+ .. grid-item-card:: Troubleshooting
41
+ :link: troubleshooting
42
+ :link-type: doc
43
+
44
+ Resolve installation and runtime issues.
45
+
46
+ .. grid-item-card:: References
47
+ :link: references
48
+ :link-type: doc
49
+
50
+ Consult the sources behind the implemented methods.
51
+
52
+ .. toctree::
53
+ :hidden:
54
+ :maxdepth: 1
55
+
56
+ architecture
57
+ api_policy
58
+ public_api_contract
59
+ migration_guide
60
+ performance
61
+ troubleshooting
62
+ references
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "PyFiberModes"
7
- version = "0.16.0"
7
+ version = "0.17.2"
8
8
  description = "Guided-mode analysis and design for circular optical fibers."
9
9
  license = {file = "LICENSE"}
10
10
  readme = "README.rst"
@@ -17,6 +17,7 @@ classifiers = [
17
17
  'Programming Language :: Python :: 3.11',
18
18
  'Programming Language :: Python :: 3.12',
19
19
  'Programming Language :: Python :: 3.13',
20
+ 'Programming Language :: Python :: 3.14',
20
21
  'Programming Language :: Python :: Implementation :: CPython',
21
22
  'Development Status :: 4 - Beta',
22
23
  'Topic :: Scientific/Engineering :: Physics',
@@ -65,7 +66,7 @@ testing = [
65
66
  "coverage ~=7.6",
66
67
  "ruff>=0.8,<1",
67
68
  "matplotlib>=3.8",
68
- "mypy>=1.15,<2",
69
+ "mypy>=1.15,<3",
69
70
  ]
70
71
 
71
72
  plotting = [
@@ -79,17 +80,17 @@ benchmarking = [
79
80
 
80
81
  documentation = [
81
82
  "matplotlib>=3.8",
82
- "numpydoc ==1.10.0",
83
+ "numpydoc ==1.11.0",
83
84
  "sphinx >=5.1.1",
84
- "sphinx-gallery ==0.21.0",
85
+ "sphinx-gallery ==0.22.1",
85
86
  "sphinx-design >=0.6,<1",
86
87
  "sphinx-rtd-theme ==3.1.0",
87
- "pydata-sphinx-theme ==0.17.1",
88
+ "pydata-sphinx-theme ==0.22.0",
88
89
  ]
89
90
 
90
91
  dev = [
91
92
  "ruff>=0.8,<1",
92
- "mypy>=1.15,<2",
93
+ "mypy>=1.15,<3",
93
94
  ]
94
95
 
95
96
  [tool.ruff]
@@ -110,3 +111,7 @@ files = [
110
111
  "PyFiberModes/solver/protocols.py",
111
112
  "PyFiberModes/solver/results.py",
112
113
  ]
114
+
115
+ # Include runtime resources when building wheels from a source archive without Git.
116
+ [tool.setuptools.package-data]
117
+ PyFiberModes = ["fiber_files/*.yaml"]
@@ -71,11 +71,13 @@ def test_compatibility_documents_are_published_in_navigation():
71
71
  """Keep the policy and migration guide visible in built documentation."""
72
72
  documentation = PROJECT_ROOT / "docs" / "source"
73
73
  navigation = (documentation / "index.rst").read_text(encoding="utf-8")
74
+ resources = (documentation / "resources.rst").read_text(encoding="utf-8")
74
75
  policy = (documentation / "api_policy.rst").read_text(encoding="utf-8")
75
76
  migration = (documentation / "migration_guide.rst").read_text(encoding="utf-8")
76
77
 
77
- assert "api_policy.rst" in navigation
78
- assert "public_api_contract.rst" in navigation
79
- assert "migration_guide.rst" in navigation
78
+ assert "Resources <resources.rst>" in navigation
79
+ assert ":link: api_policy" in resources
80
+ assert ":link: public_api_contract" in resources
81
+ assert ":link: migration_guide" in resources
80
82
  assert "at least two minor releases and six months" in policy
81
83
  assert "Unreleased" in migration
@@ -1,28 +0,0 @@
1
- name: Tests
2
-
3
- on:
4
- push:
5
- branches: [master]
6
- pull_request:
7
- branches: [master]
8
-
9
- permissions:
10
- contents: read
11
-
12
- jobs:
13
- tests:
14
- name: Python ${{ matrix.python-version }}
15
- runs-on: ubuntu-latest
16
- strategy:
17
- fail-fast: false
18
- matrix:
19
- python-version: ["3.11", "3.12", "3.13"]
20
- steps:
21
- - uses: actions/checkout@fbc6f3992d24b796d5a048ff273f7fcc4a7b6c09
22
- - uses: actions/setup-python@ece7cb06caefa5fff74198d8649806c4678c61a1
23
- with:
24
- python-version: ${{ matrix.python-version }}
25
- - run: python -m pip install --upgrade pip && python -m pip install -e ".[testing]"
26
- - run: python -m pytest -q
27
- env:
28
- MPLBACKEND: Agg
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes