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.
- {pyfibermodes-0.17.3 → pyfibermodes-0.17.6}/.github/workflows/deploy_coverage.yml +1 -1
- pyfibermodes-0.17.6/.github/workflows/deploy_documentation.yml +20 -0
- pyfibermodes-0.17.6/.github/workflows/deploy_release.yml +35 -0
- pyfibermodes-0.17.6/.github/workflows/quality.yml +21 -0
- pyfibermodes-0.17.6/.github/workflows/tests.yml +19 -0
- {pyfibermodes-0.17.3 → pyfibermodes-0.17.6}/.gitignore +1 -0
- {pyfibermodes-0.17.3 → pyfibermodes-0.17.6}/.zenodo.json +2 -2
- {pyfibermodes-0.17.3 → pyfibermodes-0.17.6}/CHANGELOG.md +10 -1
- {pyfibermodes-0.17.3 → pyfibermodes-0.17.6}/CONTRIBUTING.md +2 -0
- {pyfibermodes-0.17.3 → pyfibermodes-0.17.6}/Makefile +11 -1
- {pyfibermodes-0.17.3 → pyfibermodes-0.17.6}/PKG-INFO +3 -8
- pyfibermodes-0.17.6/PyFiberModes/_version.py +16 -0
- {pyfibermodes-0.17.3 → pyfibermodes-0.17.6}/PyFiberModes.egg-info/PKG-INFO +3 -8
- {pyfibermodes-0.17.3 → pyfibermodes-0.17.6}/PyFiberModes.egg-info/SOURCES.txt +4 -3
- {pyfibermodes-0.17.3 → pyfibermodes-0.17.6}/PyFiberModes.egg-info/requires.txt +1 -6
- {pyfibermodes-0.17.3 → pyfibermodes-0.17.6}/README.rst +1 -1
- {pyfibermodes-0.17.3 → pyfibermodes-0.17.6}/conda.recipe/meta.yaml +1 -1
- pyfibermodes-0.17.6/docs/redirect.html +12 -0
- {pyfibermodes-0.17.3 → pyfibermodes-0.17.6}/docs/source/_static/default.css +0 -12
- pyfibermodes-0.17.6/docs/source/_static/favicon.png +0 -0
- pyfibermodes-0.17.6/docs/source/_static/favicon.svg +1 -0
- pyfibermodes-0.17.6/docs/source/_static/logo.svg +1 -0
- pyfibermodes-0.17.6/docs/source/conf.py +41 -0
- {pyfibermodes-0.17.3 → pyfibermodes-0.17.6}/docs/source/index.rst +1 -1
- {pyfibermodes-0.17.3 → pyfibermodes-0.17.6}/pyproject.toml +2 -8
- {pyfibermodes-0.17.3 → pyfibermodes-0.17.6}/tools/release_tag.py +12 -1
- pyfibermodes-0.17.3/.github/workflows/deploy_PyPi.yml +0 -29
- pyfibermodes-0.17.3/.github/workflows/deploy_anaconda.yml +0 -36
- pyfibermodes-0.17.3/.github/workflows/deploy_documentation.yml +0 -19
- pyfibermodes-0.17.3/.github/workflows/quality.yml +0 -24
- pyfibermodes-0.17.3/.github/workflows/tests.yml +0 -29
- pyfibermodes-0.17.3/PyFiberModes/_version.py +0 -24
- pyfibermodes-0.17.3/docs/source/_static/favicon.png +0 -0
- pyfibermodes-0.17.3/docs/source/_static/layout.css +0 -89
- pyfibermodes-0.17.3/docs/source/conf.py +0 -197
- {pyfibermodes-0.17.3 → pyfibermodes-0.17.6}/.coveragerc +0 -0
- {pyfibermodes-0.17.3 → pyfibermodes-0.17.6}/.github/dependabot.yml +0 -0
- {pyfibermodes-0.17.3 → pyfibermodes-0.17.6}/CITATION.cff +0 -0
- {pyfibermodes-0.17.3 → pyfibermodes-0.17.6}/LICENSE +0 -0
- {pyfibermodes-0.17.3 → pyfibermodes-0.17.6}/MANIFEST.in +0 -0
- {pyfibermodes-0.17.3 → pyfibermodes-0.17.6}/PyFiberModes/__init__.py +0 -0
- {pyfibermodes-0.17.3 → pyfibermodes-0.17.6}/PyFiberModes/analysis.py +0 -0
- {pyfibermodes-0.17.3 → pyfibermodes-0.17.6}/PyFiberModes/coordinates.py +0 -0
- {pyfibermodes-0.17.3 → pyfibermodes-0.17.6}/PyFiberModes/directories.py +0 -0
- {pyfibermodes-0.17.3 → pyfibermodes-0.17.6}/PyFiberModes/exceptions.py +0 -0
- {pyfibermodes-0.17.3 → pyfibermodes-0.17.6}/PyFiberModes/factory.py +0 -0
- {pyfibermodes-0.17.3 → pyfibermodes-0.17.6}/PyFiberModes/fiber.py +0 -0
- {pyfibermodes-0.17.3 → pyfibermodes-0.17.6}/PyFiberModes/fiber_files/1550BHP.yaml +0 -0
- {pyfibermodes-0.17.3 → pyfibermodes-0.17.6}/PyFiberModes/fiber_files/DCF13.yaml +0 -0
- {pyfibermodes-0.17.3 → pyfibermodes-0.17.6}/PyFiberModes/fiber_files/DCF1300S_20.yaml +0 -0
- {pyfibermodes-0.17.3 → pyfibermodes-0.17.6}/PyFiberModes/fiber_files/DCF1300S_26.yaml +0 -0
- {pyfibermodes-0.17.3 → pyfibermodes-0.17.6}/PyFiberModes/fiber_files/DCF1300S_33.yaml +0 -0
- {pyfibermodes-0.17.3 → pyfibermodes-0.17.6}/PyFiberModes/fiber_files/DCF1300S_42.yaml +0 -0
- {pyfibermodes-0.17.3 → pyfibermodes-0.17.6}/PyFiberModes/fiber_files/F2028M12.yaml +0 -0
- {pyfibermodes-0.17.3 → pyfibermodes-0.17.6}/PyFiberModes/fiber_files/F2028M21.yaml +0 -0
- {pyfibermodes-0.17.3 → pyfibermodes-0.17.6}/PyFiberModes/fiber_files/F2028M24.yaml +0 -0
- {pyfibermodes-0.17.3 → pyfibermodes-0.17.6}/PyFiberModes/fiber_files/F2058G1.yaml +0 -0
- {pyfibermodes-0.17.3 → pyfibermodes-0.17.6}/PyFiberModes/fiber_files/F2058L1.yaml +0 -0
- {pyfibermodes-0.17.3 → pyfibermodes-0.17.6}/PyFiberModes/fiber_files/HI1060.yaml +0 -0
- {pyfibermodes-0.17.3 → pyfibermodes-0.17.6}/PyFiberModes/fiber_files/HP630.yaml +0 -0
- {pyfibermodes-0.17.3 → pyfibermodes-0.17.6}/PyFiberModes/fiber_files/SM1950.yaml +0 -0
- {pyfibermodes-0.17.3 → pyfibermodes-0.17.6}/PyFiberModes/fiber_files/SMF28.yaml +0 -0
- {pyfibermodes-0.17.3 → pyfibermodes-0.17.6}/PyFiberModes/fiber_files/fluorine_doped_1%_capillary.yaml +0 -0
- {pyfibermodes-0.17.3 → pyfibermodes-0.17.6}/PyFiberModes/fiber_files/fluorine_doped_2%_capillary.yaml +0 -0
- {pyfibermodes-0.17.3 → pyfibermodes-0.17.6}/PyFiberModes/fiber_files/test_fiber.yaml +0 -0
- {pyfibermodes-0.17.3 → pyfibermodes-0.17.6}/PyFiberModes/fiber_files/test_multimode_fiber.yaml +0 -0
- {pyfibermodes-0.17.3 → pyfibermodes-0.17.6}/PyFiberModes/field.py +0 -0
- {pyfibermodes-0.17.3 → pyfibermodes-0.17.6}/PyFiberModes/fundamentals.py +0 -0
- {pyfibermodes-0.17.3 → pyfibermodes-0.17.6}/PyFiberModes/loader.py +0 -0
- {pyfibermodes-0.17.3 → pyfibermodes-0.17.6}/PyFiberModes/materials.py +0 -0
- {pyfibermodes-0.17.3 → pyfibermodes-0.17.6}/PyFiberModes/mode.py +0 -0
- {pyfibermodes-0.17.3 → pyfibermodes-0.17.6}/PyFiberModes/mode_instances.py +0 -0
- {pyfibermodes-0.17.3 → pyfibermodes-0.17.6}/PyFiberModes/models.py +0 -0
- {pyfibermodes-0.17.3 → pyfibermodes-0.17.6}/PyFiberModes/optimization.py +0 -0
- {pyfibermodes-0.17.3 → pyfibermodes-0.17.6}/PyFiberModes/plotting.py +0 -0
- {pyfibermodes-0.17.3 → pyfibermodes-0.17.6}/PyFiberModes/propagation.py +0 -0
- {pyfibermodes-0.17.3 → pyfibermodes-0.17.6}/PyFiberModes/services.py +0 -0
- {pyfibermodes-0.17.3 → pyfibermodes-0.17.6}/PyFiberModes/solver/__init__.py +0 -0
- {pyfibermodes-0.17.3 → pyfibermodes-0.17.6}/PyFiberModes/solver/base_solver.py +0 -0
- {pyfibermodes-0.17.3 → pyfibermodes-0.17.6}/PyFiberModes/solver/multilayer/__init__.py +0 -0
- {pyfibermodes-0.17.3 → pyfibermodes-0.17.6}/PyFiberModes/solver/multilayer/effective_index.py +0 -0
- {pyfibermodes-0.17.3 → pyfibermodes-0.17.6}/PyFiberModes/solver/protocols.py +0 -0
- {pyfibermodes-0.17.3 → pyfibermodes-0.17.6}/PyFiberModes/solver/results.py +0 -0
- {pyfibermodes-0.17.3 → pyfibermodes-0.17.6}/PyFiberModes/solver/three_layer/__init__.py +0 -0
- {pyfibermodes-0.17.3 → pyfibermodes-0.17.6}/PyFiberModes/solver/three_layer/cutoff.py +0 -0
- {pyfibermodes-0.17.3 → pyfibermodes-0.17.6}/PyFiberModes/solver/two_layer/__init__.py +0 -0
- {pyfibermodes-0.17.3 → pyfibermodes-0.17.6}/PyFiberModes/solver/two_layer/cutoff.py +0 -0
- {pyfibermodes-0.17.3 → pyfibermodes-0.17.6}/PyFiberModes/solver/two_layer/effective_index.py +0 -0
- {pyfibermodes-0.17.3 → pyfibermodes-0.17.6}/PyFiberModes/source.py +0 -0
- {pyfibermodes-0.17.3 → pyfibermodes-0.17.6}/PyFiberModes/stepindex.py +0 -0
- {pyfibermodes-0.17.3 → pyfibermodes-0.17.6}/PyFiberModes.egg-info/dependency_links.txt +0 -0
- {pyfibermodes-0.17.3 → pyfibermodes-0.17.6}/PyFiberModes.egg-info/top_level.txt +0 -0
- {pyfibermodes-0.17.3 → pyfibermodes-0.17.6}/benchmarks/README.md +0 -0
- {pyfibermodes-0.17.3 → pyfibermodes-0.17.6}/benchmarks/test_field_performance.py +0 -0
- {pyfibermodes-0.17.3 → pyfibermodes-0.17.6}/docs/Makefile +0 -0
- {pyfibermodes-0.17.3 → pyfibermodes-0.17.6}/docs/examples/README.rst +0 -0
- {pyfibermodes-0.17.3 → pyfibermodes-0.17.6}/docs/examples/SMF28/README.rst +0 -0
- {pyfibermodes-0.17.3 → pyfibermodes-0.17.6}/docs/examples/SMF28/plot_smf28.py +0 -0
- {pyfibermodes-0.17.3 → pyfibermodes-0.17.6}/docs/examples/SMF28/plot_smf28_dispersion_vs_wavelength.py +0 -0
- {pyfibermodes-0.17.3 → pyfibermodes-0.17.6}/docs/examples/SMF28/plot_smf28_group_index_vs_wavelength.py +0 -0
- {pyfibermodes-0.17.3 → pyfibermodes-0.17.6}/docs/examples/analysis/README.rst +0 -0
- {pyfibermodes-0.17.3 → pyfibermodes-0.17.6}/docs/examples/analysis/plot_coupled_mode_exchange.py +0 -0
- {pyfibermodes-0.17.3 → pyfibermodes-0.17.6}/docs/examples/analysis/plot_guided_mode_discovery.py +0 -0
- {pyfibermodes-0.17.3 → pyfibermodes-0.17.6}/docs/examples/analysis/plot_structured_wavelength_sweep.py +0 -0
- {pyfibermodes-0.17.3 → pyfibermodes-0.17.6}/docs/examples/basic/README.rst +0 -0
- {pyfibermodes-0.17.3 → pyfibermodes-0.17.6}/docs/examples/basic/plot_U_vs_V.py +0 -0
- {pyfibermodes-0.17.3 → pyfibermodes-0.17.6}/docs/examples/basic/plot_comparison_solvers.py +0 -0
- {pyfibermodes-0.17.3 → pyfibermodes-0.17.6}/docs/examples/basic/plot_dispersion.py +0 -0
- {pyfibermodes-0.17.3 → pyfibermodes-0.17.6}/docs/examples/basic/plot_effective_index.py +0 -0
- {pyfibermodes-0.17.3 → pyfibermodes-0.17.6}/docs/examples/basic/plot_fiber_LP_modes.py +0 -0
- {pyfibermodes-0.17.3 → pyfibermodes-0.17.6}/docs/examples/basic/plot_group_index.py +0 -0
- {pyfibermodes-0.17.3 → pyfibermodes-0.17.6}/docs/examples/basic/plot_mode_field.py +0 -0
- {pyfibermodes-0.17.3 → pyfibermodes-0.17.6}/docs/examples/basic/plot_mode_field_1.py +0 -0
- {pyfibermodes-0.17.3 → pyfibermodes-0.17.6}/docs/examples/basic/plot_mode_field_2.py +0 -0
- {pyfibermodes-0.17.3 → pyfibermodes-0.17.6}/docs/examples/basic/plot_neff_tapered_fiber.py +0 -0
- {pyfibermodes-0.17.3 → pyfibermodes-0.17.6}/docs/examples/benchmarks/README.rst +0 -0
- {pyfibermodes-0.17.3 → pyfibermodes-0.17.6}/docs/examples/benchmarks/plot_component_batching_speedup.py +0 -0
- {pyfibermodes-0.17.3 → pyfibermodes-0.17.6}/docs/examples/benchmarks/plot_field_grid_scaling.py +0 -0
- {pyfibermodes-0.17.3 → pyfibermodes-0.17.6}/docs/examples/benchmarks/plot_modal_cache_speedup.py +0 -0
- {pyfibermodes-0.17.3 → pyfibermodes-0.17.6}/docs/examples/fields/README.rst +0 -0
- {pyfibermodes-0.17.3 → pyfibermodes-0.17.6}/docs/examples/fields/plot_confinement_by_radius.py +0 -0
- {pyfibermodes-0.17.3 → pyfibermodes-0.17.6}/docs/examples/fields/plot_polarization_rotation.py +0 -0
- {pyfibermodes-0.17.3 → pyfibermodes-0.17.6}/docs/examples/fields/plot_vector_components.py +0 -0
- {pyfibermodes-0.17.3 → pyfibermodes-0.17.6}/docs/examples/specialty_fibers/README.rst +0 -0
- {pyfibermodes-0.17.3 → pyfibermodes-0.17.6}/docs/examples/specialty_fibers/plot_refractive_index_profile.py +0 -0
- {pyfibermodes-0.17.3 → pyfibermodes-0.17.6}/docs/examples/specialty_fibers/plot_specialty_fiber_catalog.py +0 -0
- {pyfibermodes-0.17.3 → pyfibermodes-0.17.6}/docs/examples/specialty_fibers/plot_specialty_mode_indices.py +0 -0
- {pyfibermodes-0.17.3 → pyfibermodes-0.17.6}/docs/examples/validation/README.rst +0 -0
- {pyfibermodes-0.17.3 → pyfibermodes-0.17.6}/docs/examples/validation/plot_effective_index_bounds.py +0 -0
- {pyfibermodes-0.17.3 → pyfibermodes-0.17.6}/docs/examples/validation/plot_field_area_convergence.py +0 -0
- {pyfibermodes-0.17.3 → pyfibermodes-0.17.6}/docs/examples/validation/plot_normalized_effective_index.py +0 -0
- {pyfibermodes-0.17.3 → pyfibermodes-0.17.6}/docs/make.bat +0 -0
- {pyfibermodes-0.17.3 → pyfibermodes-0.17.6}/docs/source/_static/logo.png +0 -0
- {pyfibermodes-0.17.3 → pyfibermodes-0.17.6}/docs/source/_static/thumbnail.png +0 -0
- {pyfibermodes-0.17.3 → pyfibermodes-0.17.6}/docs/source/api_policy.rst +0 -0
- {pyfibermodes-0.17.3 → pyfibermodes-0.17.6}/docs/source/architecture.rst +0 -0
- {pyfibermodes-0.17.3 → pyfibermodes-0.17.6}/docs/source/code/analysis.rst +0 -0
- {pyfibermodes-0.17.3 → pyfibermodes-0.17.6}/docs/source/code/fibers.rst +0 -0
- {pyfibermodes-0.17.3 → pyfibermodes-0.17.6}/docs/source/code/fields.rst +0 -0
- {pyfibermodes-0.17.3 → pyfibermodes-0.17.6}/docs/source/code/fundamentals.rst +0 -0
- {pyfibermodes-0.17.3 → pyfibermodes-0.17.6}/docs/source/code.rst +0 -0
- {pyfibermodes-0.17.3 → pyfibermodes-0.17.6}/docs/source/examples.rst +0 -0
- {pyfibermodes-0.17.3 → pyfibermodes-0.17.6}/docs/source/getting_started.rst +0 -0
- {pyfibermodes-0.17.3 → pyfibermodes-0.17.6}/docs/source/guide.rst +0 -0
- {pyfibermodes-0.17.3 → pyfibermodes-0.17.6}/docs/source/migration_guide.rst +0 -0
- {pyfibermodes-0.17.3 → pyfibermodes-0.17.6}/docs/source/performance.rst +0 -0
- {pyfibermodes-0.17.3 → pyfibermodes-0.17.6}/docs/source/public_api_contract.rst +0 -0
- {pyfibermodes-0.17.3 → pyfibermodes-0.17.6}/docs/source/references.rst +0 -0
- {pyfibermodes-0.17.3 → pyfibermodes-0.17.6}/docs/source/resources.rst +0 -0
- {pyfibermodes-0.17.3 → pyfibermodes-0.17.6}/docs/source/theory.rst +0 -0
- {pyfibermodes-0.17.3 → pyfibermodes-0.17.6}/docs/source/troubleshooting.rst +0 -0
- {pyfibermodes-0.17.3 → pyfibermodes-0.17.6}/docs/source/user_guide/fibers.rst +0 -0
- {pyfibermodes-0.17.3 → pyfibermodes-0.17.6}/docs/source/user_guide/fields.rst +0 -0
- {pyfibermodes-0.17.3 → pyfibermodes-0.17.6}/docs/source/user_guide/index.rst +0 -0
- {pyfibermodes-0.17.3 → pyfibermodes-0.17.6}/docs/source/user_guide/modes.rst +0 -0
- {pyfibermodes-0.17.3 → pyfibermodes-0.17.6}/docs/source/user_guide/reproducibility.rst +0 -0
- {pyfibermodes-0.17.3 → pyfibermodes-0.17.6}/docs/source/user_guide/sweeps.rst +0 -0
- {pyfibermodes-0.17.3 → pyfibermodes-0.17.6}/docs/source/user_guide/units.rst +0 -0
- {pyfibermodes-0.17.3 → pyfibermodes-0.17.6}/docs/source/workflows.rst +0 -0
- {pyfibermodes-0.17.3 → pyfibermodes-0.17.6}/pytest.ini +0 -0
- {pyfibermodes-0.17.3 → pyfibermodes-0.17.6}/setup.cfg +0 -0
- {pyfibermodes-0.17.3 → pyfibermodes-0.17.6}/tests/__init__.py +0 -0
- {pyfibermodes-0.17.3 → pyfibermodes-0.17.6}/tests/api_snapshot.json +0 -0
- {pyfibermodes-0.17.3 → pyfibermodes-0.17.6}/tests/helpers.py +0 -0
- {pyfibermodes-0.17.3 → pyfibermodes-0.17.6}/tests/test_advanced_features.py +0 -0
- {pyfibermodes-0.17.3 → pyfibermodes-0.17.6}/tests/test_api.py +0 -0
- {pyfibermodes-0.17.3 → pyfibermodes-0.17.6}/tests/test_architecture.py +0 -0
- {pyfibermodes-0.17.3 → pyfibermodes-0.17.6}/tests/test_architecture_enhancements.py +0 -0
- {pyfibermodes-0.17.3 → pyfibermodes-0.17.6}/tests/test_coordinates.py +0 -0
- {pyfibermodes-0.17.3 → pyfibermodes-0.17.6}/tests/test_docstrings.py +0 -0
- {pyfibermodes-0.17.3 → pyfibermodes-0.17.6}/tests/test_fiber.py +0 -0
- {pyfibermodes-0.17.3 → pyfibermodes-0.17.6}/tests/test_field.py +0 -0
- {pyfibermodes-0.17.3 → pyfibermodes-0.17.6}/tests/test_file_loading.py +0 -0
- {pyfibermodes-0.17.3 → pyfibermodes-0.17.6}/tests/test_physics_regression.py +0 -0
- {pyfibermodes-0.17.3 → pyfibermodes-0.17.6}/tests/test_public_api.py +0 -0
- {pyfibermodes-0.17.3 → pyfibermodes-0.17.6}/tests/test_release_tools.py +0 -0
- {pyfibermodes-0.17.3 → pyfibermodes-0.17.6}/tests/test_three_layer_solver.py +0 -0
- {pyfibermodes-0.17.3 → pyfibermodes-0.17.6}/tests/test_two_layer_solver.py +0 -0
- {pyfibermodes-0.17.3 → pyfibermodes-0.17.6}/tests/test_validation.py +0 -0
- {pyfibermodes-0.17.3 → pyfibermodes-0.17.6}/tools/check_release.py +0 -0
- {pyfibermodes-0.17.3 → pyfibermodes-0.17.6}/tools/next_release_version.py +0 -0
|
@@ -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
|
|
@@ -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.
|
|
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
|
+
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.
|
|
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
|
+
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.
|
|
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/
|
|
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
|
|
@@ -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
|
-
}
|
|
Binary file
|
|
@@ -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"]
|
|
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "PyFiberModes"
|
|
7
|
-
version = "0.17.
|
|
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(
|
|
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
|