PyFiberModes 0.17.3__tar.gz → 0.17.6__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 (181) hide show
  1. {pyfibermodes-0.17.3 → pyfibermodes-0.17.6}/.github/workflows/deploy_coverage.yml +1 -1
  2. pyfibermodes-0.17.6/.github/workflows/deploy_documentation.yml +20 -0
  3. pyfibermodes-0.17.6/.github/workflows/deploy_release.yml +35 -0
  4. pyfibermodes-0.17.6/.github/workflows/quality.yml +21 -0
  5. pyfibermodes-0.17.6/.github/workflows/tests.yml +19 -0
  6. {pyfibermodes-0.17.3 → pyfibermodes-0.17.6}/.gitignore +1 -0
  7. {pyfibermodes-0.17.3 → pyfibermodes-0.17.6}/.zenodo.json +2 -2
  8. {pyfibermodes-0.17.3 → pyfibermodes-0.17.6}/CHANGELOG.md +10 -1
  9. {pyfibermodes-0.17.3 → pyfibermodes-0.17.6}/CONTRIBUTING.md +2 -0
  10. {pyfibermodes-0.17.3 → pyfibermodes-0.17.6}/Makefile +11 -1
  11. {pyfibermodes-0.17.3 → pyfibermodes-0.17.6}/PKG-INFO +3 -8
  12. pyfibermodes-0.17.6/PyFiberModes/_version.py +16 -0
  13. {pyfibermodes-0.17.3 → pyfibermodes-0.17.6}/PyFiberModes.egg-info/PKG-INFO +3 -8
  14. {pyfibermodes-0.17.3 → pyfibermodes-0.17.6}/PyFiberModes.egg-info/SOURCES.txt +4 -3
  15. {pyfibermodes-0.17.3 → pyfibermodes-0.17.6}/PyFiberModes.egg-info/requires.txt +1 -6
  16. {pyfibermodes-0.17.3 → pyfibermodes-0.17.6}/README.rst +1 -1
  17. {pyfibermodes-0.17.3 → pyfibermodes-0.17.6}/conda.recipe/meta.yaml +1 -1
  18. pyfibermodes-0.17.6/docs/redirect.html +12 -0
  19. {pyfibermodes-0.17.3 → pyfibermodes-0.17.6}/docs/source/_static/default.css +0 -12
  20. pyfibermodes-0.17.6/docs/source/_static/favicon.png +0 -0
  21. pyfibermodes-0.17.6/docs/source/_static/favicon.svg +1 -0
  22. pyfibermodes-0.17.6/docs/source/_static/logo.svg +1 -0
  23. pyfibermodes-0.17.6/docs/source/conf.py +41 -0
  24. {pyfibermodes-0.17.3 → pyfibermodes-0.17.6}/docs/source/index.rst +1 -1
  25. {pyfibermodes-0.17.3 → pyfibermodes-0.17.6}/pyproject.toml +2 -8
  26. {pyfibermodes-0.17.3 → pyfibermodes-0.17.6}/tools/release_tag.py +12 -1
  27. pyfibermodes-0.17.3/.github/workflows/deploy_PyPi.yml +0 -29
  28. pyfibermodes-0.17.3/.github/workflows/deploy_anaconda.yml +0 -36
  29. pyfibermodes-0.17.3/.github/workflows/deploy_documentation.yml +0 -19
  30. pyfibermodes-0.17.3/.github/workflows/quality.yml +0 -24
  31. pyfibermodes-0.17.3/.github/workflows/tests.yml +0 -29
  32. pyfibermodes-0.17.3/PyFiberModes/_version.py +0 -24
  33. pyfibermodes-0.17.3/docs/source/_static/favicon.png +0 -0
  34. pyfibermodes-0.17.3/docs/source/_static/layout.css +0 -89
  35. pyfibermodes-0.17.3/docs/source/conf.py +0 -197
  36. {pyfibermodes-0.17.3 → pyfibermodes-0.17.6}/.coveragerc +0 -0
  37. {pyfibermodes-0.17.3 → pyfibermodes-0.17.6}/.github/dependabot.yml +0 -0
  38. {pyfibermodes-0.17.3 → pyfibermodes-0.17.6}/CITATION.cff +0 -0
  39. {pyfibermodes-0.17.3 → pyfibermodes-0.17.6}/LICENSE +0 -0
  40. {pyfibermodes-0.17.3 → pyfibermodes-0.17.6}/MANIFEST.in +0 -0
  41. {pyfibermodes-0.17.3 → pyfibermodes-0.17.6}/PyFiberModes/__init__.py +0 -0
  42. {pyfibermodes-0.17.3 → pyfibermodes-0.17.6}/PyFiberModes/analysis.py +0 -0
  43. {pyfibermodes-0.17.3 → pyfibermodes-0.17.6}/PyFiberModes/coordinates.py +0 -0
  44. {pyfibermodes-0.17.3 → pyfibermodes-0.17.6}/PyFiberModes/directories.py +0 -0
  45. {pyfibermodes-0.17.3 → pyfibermodes-0.17.6}/PyFiberModes/exceptions.py +0 -0
  46. {pyfibermodes-0.17.3 → pyfibermodes-0.17.6}/PyFiberModes/factory.py +0 -0
  47. {pyfibermodes-0.17.3 → pyfibermodes-0.17.6}/PyFiberModes/fiber.py +0 -0
  48. {pyfibermodes-0.17.3 → pyfibermodes-0.17.6}/PyFiberModes/fiber_files/1550BHP.yaml +0 -0
  49. {pyfibermodes-0.17.3 → pyfibermodes-0.17.6}/PyFiberModes/fiber_files/DCF13.yaml +0 -0
  50. {pyfibermodes-0.17.3 → pyfibermodes-0.17.6}/PyFiberModes/fiber_files/DCF1300S_20.yaml +0 -0
  51. {pyfibermodes-0.17.3 → pyfibermodes-0.17.6}/PyFiberModes/fiber_files/DCF1300S_26.yaml +0 -0
  52. {pyfibermodes-0.17.3 → pyfibermodes-0.17.6}/PyFiberModes/fiber_files/DCF1300S_33.yaml +0 -0
  53. {pyfibermodes-0.17.3 → pyfibermodes-0.17.6}/PyFiberModes/fiber_files/DCF1300S_42.yaml +0 -0
  54. {pyfibermodes-0.17.3 → pyfibermodes-0.17.6}/PyFiberModes/fiber_files/F2028M12.yaml +0 -0
  55. {pyfibermodes-0.17.3 → pyfibermodes-0.17.6}/PyFiberModes/fiber_files/F2028M21.yaml +0 -0
  56. {pyfibermodes-0.17.3 → pyfibermodes-0.17.6}/PyFiberModes/fiber_files/F2028M24.yaml +0 -0
  57. {pyfibermodes-0.17.3 → pyfibermodes-0.17.6}/PyFiberModes/fiber_files/F2058G1.yaml +0 -0
  58. {pyfibermodes-0.17.3 → pyfibermodes-0.17.6}/PyFiberModes/fiber_files/F2058L1.yaml +0 -0
  59. {pyfibermodes-0.17.3 → pyfibermodes-0.17.6}/PyFiberModes/fiber_files/HI1060.yaml +0 -0
  60. {pyfibermodes-0.17.3 → pyfibermodes-0.17.6}/PyFiberModes/fiber_files/HP630.yaml +0 -0
  61. {pyfibermodes-0.17.3 → pyfibermodes-0.17.6}/PyFiberModes/fiber_files/SM1950.yaml +0 -0
  62. {pyfibermodes-0.17.3 → pyfibermodes-0.17.6}/PyFiberModes/fiber_files/SMF28.yaml +0 -0
  63. {pyfibermodes-0.17.3 → pyfibermodes-0.17.6}/PyFiberModes/fiber_files/fluorine_doped_1%_capillary.yaml +0 -0
  64. {pyfibermodes-0.17.3 → pyfibermodes-0.17.6}/PyFiberModes/fiber_files/fluorine_doped_2%_capillary.yaml +0 -0
  65. {pyfibermodes-0.17.3 → pyfibermodes-0.17.6}/PyFiberModes/fiber_files/test_fiber.yaml +0 -0
  66. {pyfibermodes-0.17.3 → pyfibermodes-0.17.6}/PyFiberModes/fiber_files/test_multimode_fiber.yaml +0 -0
  67. {pyfibermodes-0.17.3 → pyfibermodes-0.17.6}/PyFiberModes/field.py +0 -0
  68. {pyfibermodes-0.17.3 → pyfibermodes-0.17.6}/PyFiberModes/fundamentals.py +0 -0
  69. {pyfibermodes-0.17.3 → pyfibermodes-0.17.6}/PyFiberModes/loader.py +0 -0
  70. {pyfibermodes-0.17.3 → pyfibermodes-0.17.6}/PyFiberModes/materials.py +0 -0
  71. {pyfibermodes-0.17.3 → pyfibermodes-0.17.6}/PyFiberModes/mode.py +0 -0
  72. {pyfibermodes-0.17.3 → pyfibermodes-0.17.6}/PyFiberModes/mode_instances.py +0 -0
  73. {pyfibermodes-0.17.3 → pyfibermodes-0.17.6}/PyFiberModes/models.py +0 -0
  74. {pyfibermodes-0.17.3 → pyfibermodes-0.17.6}/PyFiberModes/optimization.py +0 -0
  75. {pyfibermodes-0.17.3 → pyfibermodes-0.17.6}/PyFiberModes/plotting.py +0 -0
  76. {pyfibermodes-0.17.3 → pyfibermodes-0.17.6}/PyFiberModes/propagation.py +0 -0
  77. {pyfibermodes-0.17.3 → pyfibermodes-0.17.6}/PyFiberModes/services.py +0 -0
  78. {pyfibermodes-0.17.3 → pyfibermodes-0.17.6}/PyFiberModes/solver/__init__.py +0 -0
  79. {pyfibermodes-0.17.3 → pyfibermodes-0.17.6}/PyFiberModes/solver/base_solver.py +0 -0
  80. {pyfibermodes-0.17.3 → pyfibermodes-0.17.6}/PyFiberModes/solver/multilayer/__init__.py +0 -0
  81. {pyfibermodes-0.17.3 → pyfibermodes-0.17.6}/PyFiberModes/solver/multilayer/effective_index.py +0 -0
  82. {pyfibermodes-0.17.3 → pyfibermodes-0.17.6}/PyFiberModes/solver/protocols.py +0 -0
  83. {pyfibermodes-0.17.3 → pyfibermodes-0.17.6}/PyFiberModes/solver/results.py +0 -0
  84. {pyfibermodes-0.17.3 → pyfibermodes-0.17.6}/PyFiberModes/solver/three_layer/__init__.py +0 -0
  85. {pyfibermodes-0.17.3 → pyfibermodes-0.17.6}/PyFiberModes/solver/three_layer/cutoff.py +0 -0
  86. {pyfibermodes-0.17.3 → pyfibermodes-0.17.6}/PyFiberModes/solver/two_layer/__init__.py +0 -0
  87. {pyfibermodes-0.17.3 → pyfibermodes-0.17.6}/PyFiberModes/solver/two_layer/cutoff.py +0 -0
  88. {pyfibermodes-0.17.3 → pyfibermodes-0.17.6}/PyFiberModes/solver/two_layer/effective_index.py +0 -0
  89. {pyfibermodes-0.17.3 → pyfibermodes-0.17.6}/PyFiberModes/source.py +0 -0
  90. {pyfibermodes-0.17.3 → pyfibermodes-0.17.6}/PyFiberModes/stepindex.py +0 -0
  91. {pyfibermodes-0.17.3 → pyfibermodes-0.17.6}/PyFiberModes.egg-info/dependency_links.txt +0 -0
  92. {pyfibermodes-0.17.3 → pyfibermodes-0.17.6}/PyFiberModes.egg-info/top_level.txt +0 -0
  93. {pyfibermodes-0.17.3 → pyfibermodes-0.17.6}/benchmarks/README.md +0 -0
  94. {pyfibermodes-0.17.3 → pyfibermodes-0.17.6}/benchmarks/test_field_performance.py +0 -0
  95. {pyfibermodes-0.17.3 → pyfibermodes-0.17.6}/docs/Makefile +0 -0
  96. {pyfibermodes-0.17.3 → pyfibermodes-0.17.6}/docs/examples/README.rst +0 -0
  97. {pyfibermodes-0.17.3 → pyfibermodes-0.17.6}/docs/examples/SMF28/README.rst +0 -0
  98. {pyfibermodes-0.17.3 → pyfibermodes-0.17.6}/docs/examples/SMF28/plot_smf28.py +0 -0
  99. {pyfibermodes-0.17.3 → pyfibermodes-0.17.6}/docs/examples/SMF28/plot_smf28_dispersion_vs_wavelength.py +0 -0
  100. {pyfibermodes-0.17.3 → pyfibermodes-0.17.6}/docs/examples/SMF28/plot_smf28_group_index_vs_wavelength.py +0 -0
  101. {pyfibermodes-0.17.3 → pyfibermodes-0.17.6}/docs/examples/analysis/README.rst +0 -0
  102. {pyfibermodes-0.17.3 → pyfibermodes-0.17.6}/docs/examples/analysis/plot_coupled_mode_exchange.py +0 -0
  103. {pyfibermodes-0.17.3 → pyfibermodes-0.17.6}/docs/examples/analysis/plot_guided_mode_discovery.py +0 -0
  104. {pyfibermodes-0.17.3 → pyfibermodes-0.17.6}/docs/examples/analysis/plot_structured_wavelength_sweep.py +0 -0
  105. {pyfibermodes-0.17.3 → pyfibermodes-0.17.6}/docs/examples/basic/README.rst +0 -0
  106. {pyfibermodes-0.17.3 → pyfibermodes-0.17.6}/docs/examples/basic/plot_U_vs_V.py +0 -0
  107. {pyfibermodes-0.17.3 → pyfibermodes-0.17.6}/docs/examples/basic/plot_comparison_solvers.py +0 -0
  108. {pyfibermodes-0.17.3 → pyfibermodes-0.17.6}/docs/examples/basic/plot_dispersion.py +0 -0
  109. {pyfibermodes-0.17.3 → pyfibermodes-0.17.6}/docs/examples/basic/plot_effective_index.py +0 -0
  110. {pyfibermodes-0.17.3 → pyfibermodes-0.17.6}/docs/examples/basic/plot_fiber_LP_modes.py +0 -0
  111. {pyfibermodes-0.17.3 → pyfibermodes-0.17.6}/docs/examples/basic/plot_group_index.py +0 -0
  112. {pyfibermodes-0.17.3 → pyfibermodes-0.17.6}/docs/examples/basic/plot_mode_field.py +0 -0
  113. {pyfibermodes-0.17.3 → pyfibermodes-0.17.6}/docs/examples/basic/plot_mode_field_1.py +0 -0
  114. {pyfibermodes-0.17.3 → pyfibermodes-0.17.6}/docs/examples/basic/plot_mode_field_2.py +0 -0
  115. {pyfibermodes-0.17.3 → pyfibermodes-0.17.6}/docs/examples/basic/plot_neff_tapered_fiber.py +0 -0
  116. {pyfibermodes-0.17.3 → pyfibermodes-0.17.6}/docs/examples/benchmarks/README.rst +0 -0
  117. {pyfibermodes-0.17.3 → pyfibermodes-0.17.6}/docs/examples/benchmarks/plot_component_batching_speedup.py +0 -0
  118. {pyfibermodes-0.17.3 → pyfibermodes-0.17.6}/docs/examples/benchmarks/plot_field_grid_scaling.py +0 -0
  119. {pyfibermodes-0.17.3 → pyfibermodes-0.17.6}/docs/examples/benchmarks/plot_modal_cache_speedup.py +0 -0
  120. {pyfibermodes-0.17.3 → pyfibermodes-0.17.6}/docs/examples/fields/README.rst +0 -0
  121. {pyfibermodes-0.17.3 → pyfibermodes-0.17.6}/docs/examples/fields/plot_confinement_by_radius.py +0 -0
  122. {pyfibermodes-0.17.3 → pyfibermodes-0.17.6}/docs/examples/fields/plot_polarization_rotation.py +0 -0
  123. {pyfibermodes-0.17.3 → pyfibermodes-0.17.6}/docs/examples/fields/plot_vector_components.py +0 -0
  124. {pyfibermodes-0.17.3 → pyfibermodes-0.17.6}/docs/examples/specialty_fibers/README.rst +0 -0
  125. {pyfibermodes-0.17.3 → pyfibermodes-0.17.6}/docs/examples/specialty_fibers/plot_refractive_index_profile.py +0 -0
  126. {pyfibermodes-0.17.3 → pyfibermodes-0.17.6}/docs/examples/specialty_fibers/plot_specialty_fiber_catalog.py +0 -0
  127. {pyfibermodes-0.17.3 → pyfibermodes-0.17.6}/docs/examples/specialty_fibers/plot_specialty_mode_indices.py +0 -0
  128. {pyfibermodes-0.17.3 → pyfibermodes-0.17.6}/docs/examples/validation/README.rst +0 -0
  129. {pyfibermodes-0.17.3 → pyfibermodes-0.17.6}/docs/examples/validation/plot_effective_index_bounds.py +0 -0
  130. {pyfibermodes-0.17.3 → pyfibermodes-0.17.6}/docs/examples/validation/plot_field_area_convergence.py +0 -0
  131. {pyfibermodes-0.17.3 → pyfibermodes-0.17.6}/docs/examples/validation/plot_normalized_effective_index.py +0 -0
  132. {pyfibermodes-0.17.3 → pyfibermodes-0.17.6}/docs/make.bat +0 -0
  133. {pyfibermodes-0.17.3 → pyfibermodes-0.17.6}/docs/source/_static/logo.png +0 -0
  134. {pyfibermodes-0.17.3 → pyfibermodes-0.17.6}/docs/source/_static/thumbnail.png +0 -0
  135. {pyfibermodes-0.17.3 → pyfibermodes-0.17.6}/docs/source/api_policy.rst +0 -0
  136. {pyfibermodes-0.17.3 → pyfibermodes-0.17.6}/docs/source/architecture.rst +0 -0
  137. {pyfibermodes-0.17.3 → pyfibermodes-0.17.6}/docs/source/code/analysis.rst +0 -0
  138. {pyfibermodes-0.17.3 → pyfibermodes-0.17.6}/docs/source/code/fibers.rst +0 -0
  139. {pyfibermodes-0.17.3 → pyfibermodes-0.17.6}/docs/source/code/fields.rst +0 -0
  140. {pyfibermodes-0.17.3 → pyfibermodes-0.17.6}/docs/source/code/fundamentals.rst +0 -0
  141. {pyfibermodes-0.17.3 → pyfibermodes-0.17.6}/docs/source/code.rst +0 -0
  142. {pyfibermodes-0.17.3 → pyfibermodes-0.17.6}/docs/source/examples.rst +0 -0
  143. {pyfibermodes-0.17.3 → pyfibermodes-0.17.6}/docs/source/getting_started.rst +0 -0
  144. {pyfibermodes-0.17.3 → pyfibermodes-0.17.6}/docs/source/guide.rst +0 -0
  145. {pyfibermodes-0.17.3 → pyfibermodes-0.17.6}/docs/source/migration_guide.rst +0 -0
  146. {pyfibermodes-0.17.3 → pyfibermodes-0.17.6}/docs/source/performance.rst +0 -0
  147. {pyfibermodes-0.17.3 → pyfibermodes-0.17.6}/docs/source/public_api_contract.rst +0 -0
  148. {pyfibermodes-0.17.3 → pyfibermodes-0.17.6}/docs/source/references.rst +0 -0
  149. {pyfibermodes-0.17.3 → pyfibermodes-0.17.6}/docs/source/resources.rst +0 -0
  150. {pyfibermodes-0.17.3 → pyfibermodes-0.17.6}/docs/source/theory.rst +0 -0
  151. {pyfibermodes-0.17.3 → pyfibermodes-0.17.6}/docs/source/troubleshooting.rst +0 -0
  152. {pyfibermodes-0.17.3 → pyfibermodes-0.17.6}/docs/source/user_guide/fibers.rst +0 -0
  153. {pyfibermodes-0.17.3 → pyfibermodes-0.17.6}/docs/source/user_guide/fields.rst +0 -0
  154. {pyfibermodes-0.17.3 → pyfibermodes-0.17.6}/docs/source/user_guide/index.rst +0 -0
  155. {pyfibermodes-0.17.3 → pyfibermodes-0.17.6}/docs/source/user_guide/modes.rst +0 -0
  156. {pyfibermodes-0.17.3 → pyfibermodes-0.17.6}/docs/source/user_guide/reproducibility.rst +0 -0
  157. {pyfibermodes-0.17.3 → pyfibermodes-0.17.6}/docs/source/user_guide/sweeps.rst +0 -0
  158. {pyfibermodes-0.17.3 → pyfibermodes-0.17.6}/docs/source/user_guide/units.rst +0 -0
  159. {pyfibermodes-0.17.3 → pyfibermodes-0.17.6}/docs/source/workflows.rst +0 -0
  160. {pyfibermodes-0.17.3 → pyfibermodes-0.17.6}/pytest.ini +0 -0
  161. {pyfibermodes-0.17.3 → pyfibermodes-0.17.6}/setup.cfg +0 -0
  162. {pyfibermodes-0.17.3 → pyfibermodes-0.17.6}/tests/__init__.py +0 -0
  163. {pyfibermodes-0.17.3 → pyfibermodes-0.17.6}/tests/api_snapshot.json +0 -0
  164. {pyfibermodes-0.17.3 → pyfibermodes-0.17.6}/tests/helpers.py +0 -0
  165. {pyfibermodes-0.17.3 → pyfibermodes-0.17.6}/tests/test_advanced_features.py +0 -0
  166. {pyfibermodes-0.17.3 → pyfibermodes-0.17.6}/tests/test_api.py +0 -0
  167. {pyfibermodes-0.17.3 → pyfibermodes-0.17.6}/tests/test_architecture.py +0 -0
  168. {pyfibermodes-0.17.3 → pyfibermodes-0.17.6}/tests/test_architecture_enhancements.py +0 -0
  169. {pyfibermodes-0.17.3 → pyfibermodes-0.17.6}/tests/test_coordinates.py +0 -0
  170. {pyfibermodes-0.17.3 → pyfibermodes-0.17.6}/tests/test_docstrings.py +0 -0
  171. {pyfibermodes-0.17.3 → pyfibermodes-0.17.6}/tests/test_fiber.py +0 -0
  172. {pyfibermodes-0.17.3 → pyfibermodes-0.17.6}/tests/test_field.py +0 -0
  173. {pyfibermodes-0.17.3 → pyfibermodes-0.17.6}/tests/test_file_loading.py +0 -0
  174. {pyfibermodes-0.17.3 → pyfibermodes-0.17.6}/tests/test_physics_regression.py +0 -0
  175. {pyfibermodes-0.17.3 → pyfibermodes-0.17.6}/tests/test_public_api.py +0 -0
  176. {pyfibermodes-0.17.3 → pyfibermodes-0.17.6}/tests/test_release_tools.py +0 -0
  177. {pyfibermodes-0.17.3 → pyfibermodes-0.17.6}/tests/test_three_layer_solver.py +0 -0
  178. {pyfibermodes-0.17.3 → pyfibermodes-0.17.6}/tests/test_two_layer_solver.py +0 -0
  179. {pyfibermodes-0.17.3 → pyfibermodes-0.17.6}/tests/test_validation.py +0 -0
  180. {pyfibermodes-0.17.3 → pyfibermodes-0.17.6}/tools/check_release.py +0 -0
  181. {pyfibermodes-0.17.3 → pyfibermodes-0.17.6}/tools/next_release_version.py +0 -0
@@ -12,7 +12,7 @@ permissions:
12
12
 
13
13
  jobs:
14
14
  coverage:
15
- uses: MartinPdeS/MPSActions/.github/workflows/publish_coverage.yml@v5
15
+ uses: MartinPdeS/MPSActions/.github/workflows/publish_coverage.yml@v2
16
16
  with:
17
17
  python-version: "3.11"
18
18
  apt-package: xvfb
@@ -0,0 +1,20 @@
1
+ name: Publish documentation
2
+ 'on':
3
+ push:
4
+ branches:
5
+ - master
6
+ pull_request:
7
+ branches:
8
+ - master
9
+ permissions:
10
+ contents: read
11
+ jobs:
12
+ documentation:
13
+ permissions:
14
+ contents: read
15
+ uses: MartinPdeS/MPSActions/.github/workflows/build_documentation.yml@v2
16
+ with:
17
+ python-version: '3.11'
18
+ package-name: PyFiberModes
19
+ apt-package: xvfb jq
20
+ debug: true
@@ -0,0 +1,35 @@
1
+ name: Publish release
2
+
3
+ on:
4
+ push:
5
+ tags: ["v*"]
6
+
7
+ permissions:
8
+ contents: read
9
+
10
+ jobs:
11
+ release:
12
+ permissions:
13
+ contents: write
14
+ pages: write
15
+ id-token: write
16
+ uses: MartinPdeS/MPSActions/.github/workflows/publish_release.yml@v2
17
+ with:
18
+ documentation: true
19
+ documentation_package_name: PyFiberModes
20
+ documentation_python_version: "3.11"
21
+ documentation_apt_package: xvfb jq
22
+ documentation_retain_versions: 5
23
+ debug: true
24
+ pypi_package_type: pure
25
+ pypi_python_version: "3.11"
26
+ pypi_test_command: 'python -c "import PyFiberModes"'
27
+ release_validation_command: 'python tools/check_release.py --version "${GITHUB_REF_NAME}"'
28
+ conda_python_versions: '["3.14"]'
29
+ conda_os_list: '["ubuntu-latest"]'
30
+ conda_package_name: pyfibermodes
31
+ conda_recipe_path: conda.recipe
32
+ conda_test_import: PyFiberModes
33
+ secrets:
34
+ PYPI_API_TOKEN: ${{ secrets.PYPI_API_TOKEN }}
35
+ ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }}
@@ -0,0 +1,21 @@
1
+ name: Quality
2
+
3
+ on:
4
+ push:
5
+ branches: [master]
6
+ pull_request:
7
+ branches: [master]
8
+
9
+ permissions:
10
+ contents: read
11
+
12
+ jobs:
13
+ quality:
14
+ uses: MartinPdeS/MPSActions/.github/workflows/run_quality.yml@v2
15
+ with:
16
+ install-command: >-
17
+ python -m pip install --upgrade pip && python -m pip install -e ".[dev]"
18
+ quality-command: |
19
+ python -m ruff check PyFiberModes tests tools
20
+ python -m mypy
21
+ python tools/check_release.py
@@ -0,0 +1,19 @@
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
+ uses: MartinPdeS/MPSActions/.github/workflows/run_tests.yml@v2
15
+ with:
16
+ python-versions: '["3.11", "3.12", "3.13", "3.14"]'
17
+ install-command: >-
18
+ python -m pip install --upgrade pip && python -m pip install -e ".[testing]"
19
+ test-command: python -m pytest -q
@@ -34,6 +34,7 @@
34
34
  # But ignore docs/build inside docs and code
35
35
  docs/build/
36
36
  docs/source/gallery/
37
+ docs/source/sg_execution_times.rst
37
38
 
38
39
  # Compiled files in the project
39
40
  *__pycache__*
@@ -9,8 +9,8 @@
9
9
  "license": "MIT",
10
10
  "upload_type": "software",
11
11
  "access_right": "open",
12
- "version": "0.17.3",
13
- "publication_date": "2026-10-16",
12
+ "version": "0.17.6",
13
+ "publication_date": "2026-10-22",
14
14
  "keywords": [
15
15
  "optical fibers",
16
16
  "guided modes",
@@ -6,6 +6,12 @@ use [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
6
6
 
7
7
  ## [Unreleased]
8
8
 
9
+ ## [0.17.6] - 2026-10-22
10
+
11
+ ## [0.17.5] - 2026-10-22
12
+
13
+ ## [0.17.4] - 2026-10-20
14
+
9
15
  ## [0.17.3] - 2026-10-16
10
16
 
11
17
  ## [0.17.2] - 2026-10-13
@@ -167,7 +173,10 @@ use [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
167
173
 
168
174
  - Established the current tagged baseline for subsequent documented releases.
169
175
 
170
- [Unreleased]: https://github.com/MartinPdeS/PyFiberModes/compare/v0.17.3...HEAD
176
+ [Unreleased]: https://github.com/MartinPdeS/PyFiberModes/compare/v0.17.6...HEAD
177
+ [0.17.6]: https://github.com/MartinPdeS/PyFiberModes/releases/tag/v0.17.6
178
+ [0.17.5]: https://github.com/MartinPdeS/PyFiberModes/releases/tag/v0.17.5
179
+ [0.17.4]: https://github.com/MartinPdeS/PyFiberModes/releases/tag/v0.17.4
171
180
  [0.17.3]: https://github.com/MartinPdeS/PyFiberModes/releases/tag/v0.17.3
172
181
  [0.17.2]: https://github.com/MartinPdeS/PyFiberModes/releases/tag/v0.17.2
173
182
  [0.17.1]: https://github.com/MartinPdeS/PyFiberModes/releases/tag/v0.17.1
@@ -2,6 +2,8 @@
2
2
 
3
3
  Use Python 3.11 or newer. Install development dependencies with `python -m pip install -e ".[testing,documentation]"`, then run `python -m pytest`.
4
4
 
5
+ Build the documentation with `make docs`. The configuration and layout come from the published `MartinPdeS-docs` package. Run `make docs-install` first if documentation dependencies are missing; use `make docs PYTHON=/path/to/python` to select an environment. Gallery examples execute during the build.
6
+
5
7
  Releases use semantic version tags. Run `make patch`, `make minor`, or `make major` from a clean `master` checkout; the command creates the release commit, tags it, and pushes both. Publishing workflows run only for `v*` tags.
6
8
 
7
9
  The Conda recipe is at `conda.recipe/meta.yaml`. Do not commit generated documentation, virtual environments, build artefacts, or caches.
@@ -1,14 +1,18 @@
1
1
  .DEFAULT_GOAL := help
2
2
 
3
3
  PYTHON ?= python3
4
+ SPHINXOPTS ?=
5
+ DOCS_BUILD_DIR ?= docs/build
4
6
  TAG_VERSION ?= $(or $(VERSION),$(filter v%,$(MAKECMDGOALS)))
5
7
  RELEASE_KIND := $(filter major minor patch,$(MAKECMDGOALS))
6
8
 
7
- .PHONY: help test quality check release-check tag release major minor patch
9
+ .PHONY: help docs docs-install test quality check release-check tag release major minor patch
8
10
 
9
11
  help:
10
12
  @echo "PyFiberModes development commands"
11
13
  @echo ""
14
+ @echo " make docs Build documentation and execute gallery examples"
15
+ @echo " make docs-install Install the documentation dependencies"
12
16
  @echo " make test Run the test suite"
13
17
  @echo " make quality Run static quality checks"
14
18
  @echo " make check Run tests, quality, and release checks"
@@ -26,6 +30,12 @@ $(TAG_VERSION):
26
30
  endif
27
31
  endif
28
32
 
33
+ docs-install:
34
+ $(PYTHON) -m pip install -e ".[documentation]"
35
+
36
+ docs:
37
+ MPLBACKEND=Agg $(PYTHON) -m sphinx -M html docs/source "$(DOCS_BUILD_DIR)" $(SPHINXOPTS)
38
+
29
39
  test:
30
40
  MPLBACKEND=Agg $(PYTHON) -m pytest
31
41
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: PyFiberModes
3
- Version: 0.17.3
3
+ Version: 0.17.6
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
@@ -715,19 +715,14 @@ Requires-Dist: matplotlib>=3.8; extra == "plotting"
715
715
  Provides-Extra: benchmarking
716
716
  Requires-Dist: pytest-benchmark<6,>=5; extra == "benchmarking"
717
717
  Provides-Extra: documentation
718
+ Requires-Dist: MartinPdeS-docs<0.3,>=0.2.5; extra == "documentation"
718
719
  Requires-Dist: matplotlib>=3.8; extra == "documentation"
719
- Requires-Dist: numpydoc==1.11.0; extra == "documentation"
720
- Requires-Dist: sphinx>=5.1.1; extra == "documentation"
721
- Requires-Dist: sphinx-gallery==0.22.1; extra == "documentation"
722
- Requires-Dist: sphinx-design<1,>=0.6; extra == "documentation"
723
- Requires-Dist: sphinx-rtd-theme==3.1.0; extra == "documentation"
724
- Requires-Dist: pydata-sphinx-theme==0.22.0; extra == "documentation"
725
720
  Provides-Extra: dev
726
721
  Requires-Dist: ruff<1,>=0.8; extra == "dev"
727
722
  Requires-Dist: mypy<3,>=1.15; extra == "dev"
728
723
  Dynamic: license-file
729
724
 
730
- .. image:: https://raw.githubusercontent.com/MartinPdeS/PyFiberModes/master/docs/source/_static/logo.png
725
+ .. image:: https://raw.githubusercontent.com/MartinPdeS/PyFiberModes/master/docs/source/_static/logo.svg
731
726
  :width: 620
732
727
  :align: center
733
728
  :alt: PyFiberModes logo
@@ -0,0 +1,16 @@
1
+ # file generated by setuptools_scm
2
+ # don't change, don't track in version control
3
+ TYPE_CHECKING = False
4
+ if TYPE_CHECKING:
5
+ from typing import Tuple, Union
6
+ VERSION_TUPLE = Tuple[Union[int, str], ...]
7
+ else:
8
+ VERSION_TUPLE = object
9
+
10
+ version: str
11
+ __version__: str
12
+ __version_tuple__: VERSION_TUPLE
13
+ version_tuple: VERSION_TUPLE
14
+
15
+ __version__ = version = '0.17.6'
16
+ __version_tuple__ = version_tuple = (0, 17, 6)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: PyFiberModes
3
- Version: 0.17.3
3
+ Version: 0.17.6
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
@@ -715,19 +715,14 @@ Requires-Dist: matplotlib>=3.8; extra == "plotting"
715
715
  Provides-Extra: benchmarking
716
716
  Requires-Dist: pytest-benchmark<6,>=5; extra == "benchmarking"
717
717
  Provides-Extra: documentation
718
+ Requires-Dist: MartinPdeS-docs<0.3,>=0.2.5; extra == "documentation"
718
719
  Requires-Dist: matplotlib>=3.8; extra == "documentation"
719
- Requires-Dist: numpydoc==1.11.0; extra == "documentation"
720
- Requires-Dist: sphinx>=5.1.1; extra == "documentation"
721
- Requires-Dist: sphinx-gallery==0.22.1; extra == "documentation"
722
- Requires-Dist: sphinx-design<1,>=0.6; extra == "documentation"
723
- Requires-Dist: sphinx-rtd-theme==3.1.0; extra == "documentation"
724
- Requires-Dist: pydata-sphinx-theme==0.22.0; extra == "documentation"
725
720
  Provides-Extra: dev
726
721
  Requires-Dist: ruff<1,>=0.8; extra == "dev"
727
722
  Requires-Dist: mypy<3,>=1.15; extra == "dev"
728
723
  Dynamic: license-file
729
724
 
730
- .. image:: https://raw.githubusercontent.com/MartinPdeS/PyFiberModes/master/docs/source/_static/logo.png
725
+ .. image:: https://raw.githubusercontent.com/MartinPdeS/PyFiberModes/master/docs/source/_static/logo.svg
731
726
  :width: 620
732
727
  :align: center
733
728
  :alt: PyFiberModes logo
@@ -11,10 +11,9 @@ README.rst
11
11
  pyproject.toml
12
12
  pytest.ini
13
13
  .github/dependabot.yml
14
- .github/workflows/deploy_PyPi.yml
15
- .github/workflows/deploy_anaconda.yml
16
14
  .github/workflows/deploy_coverage.yml
17
15
  .github/workflows/deploy_documentation.yml
16
+ .github/workflows/deploy_release.yml
18
17
  .github/workflows/quality.yml
19
18
  .github/workflows/tests.yml
20
19
  PyFiberModes/__init__.py
@@ -78,6 +77,7 @@ benchmarks/test_field_performance.py
78
77
  conda.recipe/meta.yaml
79
78
  docs/Makefile
80
79
  docs/make.bat
80
+ docs/redirect.html
81
81
  docs/examples/README.rst
82
82
  docs/examples/SMF28/README.rst
83
83
  docs/examples/SMF28/plot_smf28.py
@@ -132,8 +132,9 @@ docs/source/troubleshooting.rst
132
132
  docs/source/workflows.rst
133
133
  docs/source/_static/default.css
134
134
  docs/source/_static/favicon.png
135
- docs/source/_static/layout.css
135
+ docs/source/_static/favicon.svg
136
136
  docs/source/_static/logo.png
137
+ docs/source/_static/logo.svg
137
138
  docs/source/_static/thumbnail.png
138
139
  docs/source/code/analysis.rst
139
140
  docs/source/code/fibers.rst
@@ -11,13 +11,8 @@ ruff<1,>=0.8
11
11
  mypy<3,>=1.15
12
12
 
13
13
  [documentation]
14
+ MartinPdeS-docs<0.3,>=0.2.5
14
15
  matplotlib>=3.8
15
- numpydoc==1.11.0
16
- sphinx>=5.1.1
17
- sphinx-gallery==0.22.1
18
- sphinx-design<1,>=0.6
19
- sphinx-rtd-theme==3.1.0
20
- pydata-sphinx-theme==0.22.0
21
16
 
22
17
  [plotting]
23
18
  matplotlib>=3.8
@@ -1,4 +1,4 @@
1
- .. image:: https://raw.githubusercontent.com/MartinPdeS/PyFiberModes/master/docs/source/_static/logo.png
1
+ .. image:: https://raw.githubusercontent.com/MartinPdeS/PyFiberModes/master/docs/source/_static/logo.svg
2
2
  :width: 620
3
3
  :align: center
4
4
  :alt: PyFiberModes logo
@@ -1,6 +1,6 @@
1
1
  package:
2
2
  name: pyfibermodes
3
- version: 0.17.3
3
+ version: 0.17.6
4
4
 
5
5
  source:
6
6
  path: ../
@@ -0,0 +1,12 @@
1
+ <!doctype html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="utf-8">
5
+ <meta http-equiv="refresh" content="0; url=docs/latest/index.html">
6
+ <link rel="canonical" href="docs/latest/index.html">
7
+ <title>PyFiberModes documentation</title>
8
+ </head>
9
+ <body>
10
+ <p>Opening the <a href="docs/latest/index.html">PyFiberModes documentation</a>.</p>
11
+ </body>
12
+ </html>
@@ -29,18 +29,6 @@ div.highlight a {
29
29
  box-shadow: 0 0.8rem 1.8rem rgb(14 34 90 / 16%);
30
30
  }
31
31
 
32
- .navbar-brand img,
33
- .bd-header .navbar-brand img {
34
- max-height: 3rem;
35
- }
36
-
37
32
  .bd-content img[alt="PyFiberModes logo"] {
38
33
  filter: drop-shadow(0 0.7rem 1rem rgb(20 217 255 / 20%));
39
34
  }
40
-
41
- /* Keep desktop navigation labels compact and on a single line. */
42
- @media (min-width: 960px) {
43
- .bd-header .navbar-nav .nav-link {
44
- white-space: nowrap;
45
- }
46
- }
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 128 128"><defs><linearGradient id="r" x1="0" y1="0" x2="1" y2="1"><stop stop-color="#8cecff"/><stop offset=".5" stop-color="#16a8d0"/><stop offset="1" stop-color="#172c68"/></linearGradient><radialGradient id="c" cx="35%" cy="32%"><stop stop-color="#d9fbff"/><stop offset="1" stop-color="#08759d"/></radialGradient><radialGradient id="v" cx="35%" cy="32%"><stop stop-color="#f1edff"/><stop offset="1" stop-color="#3c277e"/></radialGradient></defs><rect width="128" height="128" rx="28" fill="#071632"/><circle cx="64" cy="64" r="48" fill="#071632" stroke="url(#r)" stroke-width="10"/><ellipse cx="52" cy="64" rx="23" ry="34" fill="url(#c)"/><ellipse cx="76" cy="64" rx="23" ry="34" fill="url(#v)" opacity=".92"/><circle cx="64" cy="64" r="7" fill="#fff" opacity=".85"/></svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 560 130" role="img" aria-labelledby="t"><title id="t">PyFiberModes</title><defs><linearGradient id="r" x1="0" y1="0" x2="1" y2="1"><stop stop-color="#8cecff"/><stop offset=".5" stop-color="#16a8d0"/><stop offset="1" stop-color="#172c68"/></linearGradient><radialGradient id="c" cx="35%" cy="32%"><stop stop-color="#d9fbff"/><stop offset=".2" stop-color="#31d5ed"/><stop offset="1" stop-color="#08759d"/></radialGradient><radialGradient id="v" cx="35%" cy="32%"><stop stop-color="#f1edff"/><stop offset=".2" stop-color="#a88cff"/><stop offset="1" stop-color="#3c277e"/></radialGradient><filter id="s"><feDropShadow dx="0" dy="7" stdDeviation="5" flood-color="#07152e" flood-opacity=".7"/></filter></defs><g filter="url(#s)"><circle cx="98" cy="65" r="55" fill="#071632" stroke="url(#r)" stroke-width="11"/><ellipse cx="82" cy="65" rx="27" ry="39" fill="url(#c)"/><ellipse cx="113" cy="65" rx="27" ry="39" fill="url(#v)" opacity=".92"/><circle cx="98" cy="65" r="8" fill="#fff" opacity=".8"/><path d="M40 65H20M156 65h20" stroke="#efa31e" stroke-width="10" stroke-linecap="round"/></g><text x="205" y="82" fill="#10244b" font-family="Arial,sans-serif" font-size="42" font-weight="700">PyFiberModes</text></svg>
@@ -0,0 +1,41 @@
1
+ """PyFiberModes documentation, using the shared MartinPdeS-docs theme."""
2
+
3
+ from pathlib import Path
4
+ import sys
5
+ import tomllib
6
+
7
+ from martinpdes_docs import configure
8
+
9
+
10
+ ROOT = Path(__file__).resolve().parents[2]
11
+ # Gallery examples and autodoc must describe this checkout.
12
+ sys.path.insert(0, str(ROOT))
13
+
14
+ gallery_sections = [
15
+ "basic",
16
+ "SMF28",
17
+ "specialty_fibers",
18
+ "fields",
19
+ "analysis",
20
+ "validation",
21
+ "benchmarks",
22
+ ]
23
+
24
+ globals().update(
25
+ configure(
26
+ project="PyFiberModes",
27
+ package="PyFiberModes",
28
+ repository="MartinPdeS/PyFiberModes",
29
+ logo="_static/logo.svg",
30
+ favicon="_static/favicon.svg",
31
+ gallery_sections=gallery_sections,
32
+ gallery_default_thumb="_static/favicon.png",
33
+ gallery_options={"abort_on_example_error": True},
34
+ logo_text="",
35
+ autodoc_default_options={"members": True},
36
+ )
37
+ )
38
+
39
+ # Keep page substitutions independent of importing the numerical package.
40
+ metadata = tomllib.loads((ROOT / "pyproject.toml").read_text(encoding="utf-8"))
41
+ version = release = metadata["project"]["version"]
@@ -1,6 +1,6 @@
1
1
  **Date**: |today|, **Version**: |version|
2
2
 
3
- .. image:: _static/logo.png
3
+ .. image:: _static/logo.svg
4
4
  :width: 620
5
5
  :align: center
6
6
  :alt: PyFiberModes logo
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "PyFiberModes"
7
- version = "0.17.3"
7
+ version = "0.17.6"
8
8
  description = "Guided-mode analysis and design for circular optical fibers."
9
9
  license = {file = "LICENSE"}
10
10
  readme = "README.rst"
@@ -54,7 +54,6 @@ include-package-data = true
54
54
 
55
55
 
56
56
  [tool.setuptools_scm]
57
- write_to = "PyFiberModes/_version.py"
58
57
  version_scheme = "only-version"
59
58
  local_scheme = "no-local-version"
60
59
 
@@ -79,13 +78,8 @@ benchmarking = [
79
78
 
80
79
 
81
80
  documentation = [
81
+ "MartinPdeS-docs>=0.2.5,<0.3",
82
82
  "matplotlib>=3.8",
83
- "numpydoc ==1.11.0",
84
- "sphinx >=5.1.1",
85
- "sphinx-gallery ==0.22.1",
86
- "sphinx-design >=0.6,<1",
87
- "sphinx-rtd-theme ==3.1.0",
88
- "pydata-sphinx-theme ==0.22.0",
89
83
  ]
90
84
 
91
85
  dev = [
@@ -11,6 +11,7 @@ import subprocess
11
11
  import sys
12
12
 
13
13
  ROOT = Path(__file__).resolve().parents[1]
14
+ VERSION_FILE = ROOT / "PyFiberModes" / "_version.py"
14
15
  TAG_PATTERN = re.compile(r"v(?P<version>(?:0|[1-9]\d*)\.(?:0|[1-9]\d*)\.(?:0|[1-9]\d*))$")
15
16
 
16
17
 
@@ -82,7 +83,17 @@ def update_changelog(version: str) -> None:
82
83
  def generate_version_file(version: str) -> None:
83
84
  environment = os.environ.copy()
84
85
  environment["SETUPTOOLS_SCM_PRETEND_VERSION"] = version
85
- run(sys.executable, "-m", "vcs_versioning", "--force-write-version-files", env=environment)
86
+ run(
87
+ sys.executable,
88
+ "-c",
89
+ (
90
+ "import setuptools_scm; "
91
+ f"setuptools_scm.get_version(root={str(ROOT)!r}, "
92
+ f"write_to={str(VERSION_FILE.relative_to(ROOT))!r}, "
93
+ "version_scheme='only-version', local_scheme='no-local-version')"
94
+ ),
95
+ env=environment,
96
+ )
86
97
 
87
98
 
88
99
  def create_release(tag: str, version: str) -> None:
@@ -1,29 +0,0 @@
1
- name: Publish to PyPI
2
-
3
- on:
4
- push:
5
- tags: ["v*"]
6
-
7
- permissions:
8
- contents: read
9
-
10
- jobs:
11
- validate-release:
12
- runs-on: ubuntu-latest
13
- steps:
14
- - name: Set up Python for release validation
15
- uses: MartinPdeS/MPSActions/actions/setup-python@0f5927acf88b25b5d253421e508387897096a2cc
16
- with:
17
- python-version: "3.11"
18
- install-command: "true"
19
- fetch-depth: 0
20
- - run: python tools/check_release.py --version "${GITHUB_REF_NAME}"
21
-
22
- publish:
23
- needs: validate-release
24
- uses: MartinPdeS/MPSActions/.github/workflows/publish_pure_package_to_PyPi.yml@v5
25
- with:
26
- python-version: "3.11"
27
- test-command: python -c 'import PyFiberModes'
28
- secrets:
29
- PYPI_API_TOKEN: ${{ secrets.PYPI_API_TOKEN }}
@@ -1,36 +0,0 @@
1
- name: Publish Conda package
2
-
3
- on:
4
- push:
5
- tags: ["v*"]
6
-
7
- permissions:
8
- contents: read
9
-
10
- jobs:
11
- validate-release:
12
- runs-on: ubuntu-latest
13
- steps:
14
- - name: Set up Python for release validation
15
- uses: MartinPdeS/MPSActions/actions/setup-python@0f5927acf88b25b5d253421e508387897096a2cc
16
- with:
17
- python-version: "3.11"
18
- install-command: "true"
19
- fetch-depth: 0
20
- - run: python tools/check_release.py --version "${GITHUB_REF_NAME}"
21
-
22
- publish:
23
- needs: validate-release
24
- uses: MartinPdeS/MPSActions/.github/workflows/publish_compiled_package_to_anaconda.yml@v6
25
- with:
26
- # The recipe is ``noarch: python``. Building it in a platform/version
27
- # matrix creates several artifacts with the same archive path, which
28
- # collide when the reusable workflow merges them before upload.
29
- # One noarch archive supports all declared Python versions; test it on 3.14.
30
- python_versions: '["3.14"]'
31
- os_list: '["ubuntu-latest"]'
32
- package_name: pyfibermodes
33
- recipe_path: conda.recipe
34
- test_import: PyFiberModes
35
- secrets:
36
- ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }}
@@ -1,19 +0,0 @@
1
- name: Publish documentation
2
-
3
- on:
4
- push:
5
- branches: [master]
6
- tags: ["v*"]
7
-
8
- permissions:
9
- contents: write
10
- pages: write
11
- id-token: write
12
-
13
- jobs:
14
- documentation:
15
- uses: MartinPdeS/MPSActions/.github/workflows/publish_documentation.yml@v5
16
- with:
17
- python-version: "3.11"
18
- package-name: PyFiberModes
19
- apt-package: xvfb jq
@@ -1,24 +0,0 @@
1
- name: Static quality checks
2
-
3
- on:
4
- push:
5
- branches: [master]
6
- pull_request:
7
- branches: [master]
8
-
9
- permissions:
10
- contents: read
11
-
12
- jobs:
13
- quality:
14
- runs-on: ubuntu-latest
15
- steps:
16
- - name: Set up Python and CI dependencies
17
- uses: MartinPdeS/MPSActions/actions/setup-python@0f5927acf88b25b5d253421e508387897096a2cc
18
- with:
19
- python-version: "3.11"
20
- install-command: >-
21
- python -m pip install --upgrade pip && python -m pip install -e ".[dev]"
22
- - run: python -m ruff check PyFiberModes tests tools
23
- - run: python -m mypy
24
- - run: python tools/check_release.py
@@ -1,29 +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", "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