PyMieSimX 0.3.0__tar.gz → 0.4.0__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.
Potentially problematic release.
This version of PyMieSimX might be problematic. Click here for more details.
- {pymiesimx-0.3.0 → pymiesimx-0.4.0}/.github/workflows/deploy_anaconda.yml +2 -2
- {pymiesimx-0.3.0 → pymiesimx-0.4.0}/.github/workflows/tests.yml +5 -1
- {pymiesimx-0.3.0 → pymiesimx-0.4.0}/PKG-INFO +5 -1
- {pymiesimx-0.3.0 → pymiesimx-0.4.0}/PyMieSimX/gui/callbacks.py +1 -1
- {pymiesimx-0.3.0 → pymiesimx-0.4.0}/PyMieSimX.egg-info/PKG-INFO +5 -1
- pymiesimx-0.4.0/PyMieSimX.egg-info/scm_version.json +8 -0
- {pymiesimx-0.3.0 → pymiesimx-0.4.0}/pyproject.toml +7 -0
- {pymiesimx-0.3.0 → pymiesimx-0.4.0}/tests/browser/test_dashboard.py +3 -3
- {pymiesimx-0.3.0 → pymiesimx-0.4.0}/tests/gui/test_sharing.py +1 -1
- pymiesimx-0.3.0/PyMieSimX.egg-info/scm_version.json +0 -8
- {pymiesimx-0.3.0 → pymiesimx-0.4.0}/.coveragerc +0 -0
- {pymiesimx-0.3.0 → pymiesimx-0.4.0}/.flake8 +0 -0
- {pymiesimx-0.3.0 → pymiesimx-0.4.0}/.github/dependabot.yml +0 -0
- {pymiesimx-0.3.0 → pymiesimx-0.4.0}/.github/workflows/deploy_PyPi.yml +0 -0
- {pymiesimx-0.3.0 → pymiesimx-0.4.0}/.github/workflows/deploy_coverage.yml +0 -0
- {pymiesimx-0.3.0 → pymiesimx-0.4.0}/.github/workflows/quality.yml +0 -0
- {pymiesimx-0.3.0 → pymiesimx-0.4.0}/.gitignore +0 -0
- {pymiesimx-0.3.0 → pymiesimx-0.4.0}/.pre-commit-config.yaml +0 -0
- {pymiesimx-0.3.0 → pymiesimx-0.4.0}/AGENTS.md +0 -0
- {pymiesimx-0.3.0 → pymiesimx-0.4.0}/CONTRIBUTING.md +0 -0
- {pymiesimx-0.3.0 → pymiesimx-0.4.0}/Dockerfile +0 -0
- {pymiesimx-0.3.0 → pymiesimx-0.4.0}/LICENSE +0 -0
- {pymiesimx-0.3.0 → pymiesimx-0.4.0}/PyMieSimX/__init__.py +0 -0
- {pymiesimx-0.3.0 → pymiesimx-0.4.0}/PyMieSimX/__main__.py +0 -0
- {pymiesimx-0.3.0 → pymiesimx-0.4.0}/PyMieSimX/api.py +0 -0
- {pymiesimx-0.3.0 → pymiesimx-0.4.0}/PyMieSimX/application/__init__.py +0 -0
- {pymiesimx-0.3.0 → pymiesimx-0.4.0}/PyMieSimX/application/wsgi.py +0 -0
- {pymiesimx-0.3.0 → pymiesimx-0.4.0}/PyMieSimX/gui/__init__.py +0 -0
- {pymiesimx-0.3.0 → pymiesimx-0.4.0}/PyMieSimX/gui/admin.py +0 -0
- {pymiesimx-0.3.0 → pymiesimx-0.4.0}/PyMieSimX/gui/assets/card-state.js +0 -0
- {pymiesimx-0.3.0 → pymiesimx-0.4.0}/PyMieSimX/gui/assets/dashboard.css +0 -0
- {pymiesimx-0.3.0 → pymiesimx-0.4.0}/PyMieSimX/gui/assets/default-settings.json +0 -0
- {pymiesimx-0.3.0 → pymiesimx-0.4.0}/PyMieSimX/gui/assets/home-spf-radial.gif +0 -0
- {pymiesimx-0.3.0 → pymiesimx-0.4.0}/PyMieSimX/gui/assets/home-spf-radial.png +0 -0
- {pymiesimx-0.3.0 → pymiesimx-0.4.0}/PyMieSimX/gui/assets/logo.png +0 -0
- {pymiesimx-0.3.0 → pymiesimx-0.4.0}/PyMieSimX/gui/assets/materials-stock.json +0 -0
- {pymiesimx-0.3.0 → pymiesimx-0.4.0}/PyMieSimX/gui/assets/pymiesim-favicon.svg +0 -0
- {pymiesimx-0.3.0 → pymiesimx-0.4.0}/PyMieSimX/gui/assets/pymiesim-logo-dark.svg +0 -0
- {pymiesimx-0.3.0 → pymiesimx-0.4.0}/PyMieSimX/gui/assets/pymiesim-logo.svg +0 -0
- {pymiesimx-0.3.0 → pymiesimx-0.4.0}/PyMieSimX/gui/assets/simulation-sharing.js +0 -0
- {pymiesimx-0.3.0 → pymiesimx-0.4.0}/PyMieSimX/gui/callback_helpers.py +0 -0
- {pymiesimx-0.3.0 → pymiesimx-0.4.0}/PyMieSimX/gui/components/__init__.py +0 -0
- {pymiesimx-0.3.0 → pymiesimx-0.4.0}/PyMieSimX/gui/components/cards.py +0 -0
- {pymiesimx-0.3.0 → pymiesimx-0.4.0}/PyMieSimX/gui/computation.py +0 -0
- {pymiesimx-0.3.0 → pymiesimx-0.4.0}/PyMieSimX/gui/defaults.py +0 -0
- {pymiesimx-0.3.0 → pymiesimx-0.4.0}/PyMieSimX/gui/experiment_service.py +0 -0
- {pymiesimx-0.3.0 → pymiesimx-0.4.0}/PyMieSimX/gui/interface.py +0 -0
- {pymiesimx-0.3.0 → pymiesimx-0.4.0}/PyMieSimX/gui/jobs.py +0 -0
- {pymiesimx-0.3.0 → pymiesimx-0.4.0}/PyMieSimX/gui/layout.py +0 -0
- {pymiesimx-0.3.0 → pymiesimx-0.4.0}/PyMieSimX/gui/material_catalog.py +0 -0
- {pymiesimx-0.3.0 → pymiesimx-0.4.0}/PyMieSimX/gui/models.py +0 -0
- {pymiesimx-0.3.0 → pymiesimx-0.4.0}/PyMieSimX/gui/pages/__init__.py +0 -0
- {pymiesimx-0.3.0 → pymiesimx-0.4.0}/PyMieSimX/gui/pages/citation.py +0 -0
- {pymiesimx-0.3.0 → pymiesimx-0.4.0}/PyMieSimX/gui/pages/documentation.py +0 -0
- {pymiesimx-0.3.0 → pymiesimx-0.4.0}/PyMieSimX/gui/pages/examples.py +0 -0
- {pymiesimx-0.3.0 → pymiesimx-0.4.0}/PyMieSimX/gui/pages/experiment/__init__.py +0 -0
- {pymiesimx-0.3.0 → pymiesimx-0.4.0}/PyMieSimX/gui/pages/experiment/page.py +0 -0
- {pymiesimx-0.3.0 → pymiesimx-0.4.0}/PyMieSimX/gui/pages/experiment/sections/__init__.py +0 -0
- {pymiesimx-0.3.0 → pymiesimx-0.4.0}/PyMieSimX/gui/pages/experiment/sections/configuration.py +0 -0
- {pymiesimx-0.3.0 → pymiesimx-0.4.0}/PyMieSimX/gui/pages/field_syntax.py +0 -0
- {pymiesimx-0.3.0 → pymiesimx-0.4.0}/PyMieSimX/gui/pages/home.py +0 -0
- {pymiesimx-0.3.0 → pymiesimx-0.4.0}/PyMieSimX/gui/pages/install_local.py +0 -0
- {pymiesimx-0.3.0 → pymiesimx-0.4.0}/PyMieSimX/gui/pages/population.py +0 -0
- {pymiesimx-0.3.0 → pymiesimx-0.4.0}/PyMieSimX/gui/pages/sellmeier.py +0 -0
- {pymiesimx-0.3.0 → pymiesimx-0.4.0}/PyMieSimX/gui/pages/settings.py +0 -0
- {pymiesimx-0.3.0 → pymiesimx-0.4.0}/PyMieSimX/gui/pages/single/__init__.py +0 -0
- {pymiesimx-0.3.0 → pymiesimx-0.4.0}/PyMieSimX/gui/pages/single/page.py +0 -0
- {pymiesimx-0.3.0 → pymiesimx-0.4.0}/PyMieSimX/gui/pages/single/sections/__init__.py +0 -0
- {pymiesimx-0.3.0 → pymiesimx-0.4.0}/PyMieSimX/gui/pages/single/sections/representations.py +0 -0
- {pymiesimx-0.3.0 → pymiesimx-0.4.0}/PyMieSimX/gui/pages/single/sections/setup.py +0 -0
- {pymiesimx-0.3.0 → pymiesimx-0.4.0}/PyMieSimX/gui/parsing.py +0 -0
- {pymiesimx-0.3.0 → pymiesimx-0.4.0}/PyMieSimX/gui/plotting.py +0 -0
- {pymiesimx-0.3.0 → pymiesimx-0.4.0}/PyMieSimX/gui/population_service.py +0 -0
- {pymiesimx-0.3.0 → pymiesimx-0.4.0}/PyMieSimX/gui/schemas.py +0 -0
- {pymiesimx-0.3.0 → pymiesimx-0.4.0}/PyMieSimX/gui/seo.py +0 -0
- {pymiesimx-0.3.0 → pymiesimx-0.4.0}/PyMieSimX/gui/services.py +0 -0
- {pymiesimx-0.3.0 → pymiesimx-0.4.0}/PyMieSimX/gui/sharing.py +0 -0
- {pymiesimx-0.3.0 → pymiesimx-0.4.0}/PyMieSimX/gui/single_service.py +0 -0
- {pymiesimx-0.3.0 → pymiesimx-0.4.0}/PyMieSimX/gui/usage_metrics.py +0 -0
- {pymiesimx-0.3.0 → pymiesimx-0.4.0}/PyMieSimX/gui/validation.py +0 -0
- {pymiesimx-0.3.0 → pymiesimx-0.4.0}/PyMieSimX.egg-info/SOURCES.txt +0 -0
- {pymiesimx-0.3.0 → pymiesimx-0.4.0}/PyMieSimX.egg-info/dependency_links.txt +0 -0
- {pymiesimx-0.3.0 → pymiesimx-0.4.0}/PyMieSimX.egg-info/entry_points.txt +0 -0
- {pymiesimx-0.3.0 → pymiesimx-0.4.0}/PyMieSimX.egg-info/requires.txt +0 -0
- {pymiesimx-0.3.0 → pymiesimx-0.4.0}/PyMieSimX.egg-info/scm_file_list.json +0 -0
- {pymiesimx-0.3.0 → pymiesimx-0.4.0}/PyMieSimX.egg-info/top_level.txt +0 -0
- {pymiesimx-0.3.0 → pymiesimx-0.4.0}/README.rst +0 -0
- {pymiesimx-0.3.0 → pymiesimx-0.4.0}/conda.recipe/meta.yaml +0 -0
- {pymiesimx-0.3.0 → pymiesimx-0.4.0}/makefile +0 -0
- {pymiesimx-0.3.0 → pymiesimx-0.4.0}/pytest.ini +0 -0
- {pymiesimx-0.3.0 → pymiesimx-0.4.0}/setup.cfg +0 -0
- {pymiesimx-0.3.0 → pymiesimx-0.4.0}/tests/gui/cli.py +0 -0
- {pymiesimx-0.3.0 → pymiesimx-0.4.0}/tests/gui/test_admin.py +0 -0
- {pymiesimx-0.3.0 → pymiesimx-0.4.0}/tests/gui/test_api.py +0 -0
- {pymiesimx-0.3.0 → pymiesimx-0.4.0}/tests/gui/test_dash_callbacks.py +0 -0
- {pymiesimx-0.3.0 → pymiesimx-0.4.0}/tests/gui/test_examples.py +0 -0
- {pymiesimx-0.3.0 → pymiesimx-0.4.0}/tests/gui/test_home.py +0 -0
- {pymiesimx-0.3.0 → pymiesimx-0.4.0}/tests/gui/test_population.py +0 -0
- {pymiesimx-0.3.0 → pymiesimx-0.4.0}/tests/gui/test_seo.py +0 -0
- {pymiesimx-0.3.0 → pymiesimx-0.4.0}/tests/gui/test_services.py +0 -0
- {pymiesimx-0.3.0 → pymiesimx-0.4.0}/tests/gui/test_usage_metrics.py +0 -0
- {pymiesimx-0.3.0 → pymiesimx-0.4.0}/tools/generate_home_spf.py +0 -0
- {pymiesimx-0.3.0 → pymiesimx-0.4.0}/tools/next_release_version.py +0 -0
- {pymiesimx-0.3.0 → pymiesimx-0.4.0}/tools/release_tag.py +0 -0
- {pymiesimx-0.3.0 → pymiesimx-0.4.0}/tools/verify_conda_artifact.py +0 -0
|
@@ -10,9 +10,9 @@ permissions:
|
|
|
10
10
|
|
|
11
11
|
jobs:
|
|
12
12
|
publish:
|
|
13
|
-
uses: MartinPdeS/MPSActions/.github/workflows/publish_compiled_package_to_anaconda.yml@
|
|
13
|
+
uses: MartinPdeS/MPSActions/.github/workflows/publish_compiled_package_to_anaconda.yml@v6
|
|
14
14
|
with:
|
|
15
|
-
python_versions: '["3.11", "3.12", "3.13"]'
|
|
15
|
+
python_versions: '["3.11", "3.12", "3.13", "3.14"]'
|
|
16
16
|
os_list: '["ubuntu-latest", "macos-latest", "windows-latest"]'
|
|
17
17
|
package_name: pymiesimx
|
|
18
18
|
recipe_path: conda.recipe
|
|
@@ -12,11 +12,15 @@ permissions:
|
|
|
12
12
|
jobs:
|
|
13
13
|
tests:
|
|
14
14
|
runs-on: ubuntu-latest
|
|
15
|
+
strategy:
|
|
16
|
+
fail-fast: false
|
|
17
|
+
matrix:
|
|
18
|
+
python-version: ["3.11", "3.14"]
|
|
15
19
|
steps:
|
|
16
20
|
- name: Set up Python and CI dependencies
|
|
17
21
|
uses: MartinPdeS/MPSActions/actions/setup-python@0f5927acf88b25b5d253421e508387897096a2cc
|
|
18
22
|
with:
|
|
19
|
-
python-version: "
|
|
23
|
+
python-version: "${{ matrix.python-version }}"
|
|
20
24
|
install-command: >-
|
|
21
25
|
python -m pip install --upgrade pip && python -m pip install -e ".[testing]"
|
|
22
26
|
- run: python -m PyOptik setup --no-progress
|
|
@@ -1,10 +1,14 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: PyMieSimX
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.4.0
|
|
4
4
|
Summary: Graphical Dash interface for PyMieSim.
|
|
5
5
|
Author-email: Martin Poinsinet de Sivry-Houle <martin.poinsinet.de.sivry@gmail.com>
|
|
6
6
|
License-Expression: MIT
|
|
7
7
|
Project-URL: Repository, https://github.com/MartinPdeS/PyMieSimX
|
|
8
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
9
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
10
|
+
Classifier: Programming Language :: Python :: 3.13
|
|
11
|
+
Classifier: Programming Language :: Python :: 3.14
|
|
8
12
|
Requires-Python: >=3.11
|
|
9
13
|
Description-Content-Type: text/x-rst
|
|
10
14
|
License-File: LICENSE
|
|
@@ -199,7 +199,7 @@ def register_callbacks(app: Dash, default_measure_options: list[str]) -> None:
|
|
|
199
199
|
route = pathname or "/"
|
|
200
200
|
try:
|
|
201
201
|
setup = read_simulation(search, route)
|
|
202
|
-
share_message =
|
|
202
|
+
share_message = None
|
|
203
203
|
except ValueError as error:
|
|
204
204
|
setup = None
|
|
205
205
|
share_message = str(error)
|
|
@@ -1,10 +1,14 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: PyMieSimX
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.4.0
|
|
4
4
|
Summary: Graphical Dash interface for PyMieSim.
|
|
5
5
|
Author-email: Martin Poinsinet de Sivry-Houle <martin.poinsinet.de.sivry@gmail.com>
|
|
6
6
|
License-Expression: MIT
|
|
7
7
|
Project-URL: Repository, https://github.com/MartinPdeS/PyMieSimX
|
|
8
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
9
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
10
|
+
Classifier: Programming Language :: Python :: 3.13
|
|
11
|
+
Classifier: Programming Language :: Python :: 3.14
|
|
8
12
|
Requires-Python: >=3.11
|
|
9
13
|
Description-Content-Type: text/x-rst
|
|
10
14
|
License-File: LICENSE
|
|
@@ -24,6 +24,13 @@ dependencies = [
|
|
|
24
24
|
"psycopg[binary]>=3.2.9,<4",
|
|
25
25
|
]
|
|
26
26
|
|
|
27
|
+
classifiers = [
|
|
28
|
+
"Programming Language :: Python :: 3.11",
|
|
29
|
+
"Programming Language :: Python :: 3.12",
|
|
30
|
+
"Programming Language :: Python :: 3.13",
|
|
31
|
+
"Programming Language :: Python :: 3.14",
|
|
32
|
+
]
|
|
33
|
+
|
|
27
34
|
[project.urls]
|
|
28
35
|
Repository = "https://github.com/MartinPdeS/PyMieSimX"
|
|
29
36
|
|
|
@@ -534,8 +534,8 @@ def test_shared_sweep_restores_saved_inputs_and_runs_once(dash_duo, viewport, is
|
|
|
534
534
|
}
|
|
535
535
|
link = _shared_url(dash_duo, "/experiment", controls, {"font_size": 22, "show_grid": False, "template": "plotly_dark"})
|
|
536
536
|
dash_duo.driver.get(link)
|
|
537
|
-
dash_duo.wait_for_element(".simulation-link-notice")
|
|
538
537
|
WebDriverWait(dash_duo.driver, 30).until(lambda _: dash_duo.find_element("#export-csv").is_enabled())
|
|
538
|
+
assert not dash_duo.driver.find_elements("css selector", ".simulation-link-notice")
|
|
539
539
|
WebDriverWait(dash_duo.driver, 10).until(lambda driver: "diameter" in dash_duo.find_element("#x-axis-select").text)
|
|
540
540
|
assert "Qsca" in dash_duo.find_element("#measure-select").text
|
|
541
541
|
assert "Qext" in dash_duo.find_element("#measure-select").text
|
|
@@ -588,8 +588,8 @@ def test_shared_single_setup_runs_once_with_restored_projection_and_remains_edit
|
|
|
588
588
|
_shared_field_id("single-scatterer", "material"): "1.47+0.02j",
|
|
589
589
|
"plot-single-font-size": 21, "plot-single-grid": False}
|
|
590
590
|
dash_duo.driver.get(_shared_url(dash_duo, "/single", controls, {"font_size": 21, "show_grid": False}))
|
|
591
|
-
dash_duo.wait_for_element(".simulation-link-notice")
|
|
592
591
|
WebDriverWait(dash_duo.driver, 30).until(lambda _: dash_duo.find_element("#export-single-csv").is_enabled())
|
|
592
|
+
assert not dash_duo.driver.find_elements("css selector", ".simulation-link-notice")
|
|
593
593
|
assert len(runs) == 1
|
|
594
594
|
assert runs[0]["projection"] == "polar_1d"
|
|
595
595
|
assert runs[0]["sampling"] == "24"
|
|
@@ -635,8 +635,8 @@ def test_shared_population_runs_with_restored_values_and_invalid_link_recovers(d
|
|
|
635
635
|
"population-diameter": "210", "population-concentration-basis": "volume",
|
|
636
636
|
"population-concentration": "0.0023"}
|
|
637
637
|
dash_duo.driver.get(_shared_url(dash_duo, "/population", controls))
|
|
638
|
-
dash_duo.wait_for_element(".simulation-link-notice")
|
|
639
638
|
dash_duo.wait_for_text_to_equal("#population-status", "Completed. All population properties are shown below.")
|
|
639
|
+
assert not dash_duo.driver.find_elements("css selector", ".simulation-link-notice")
|
|
640
640
|
copied = read_simulation(urlsplit(_copy_shared_link(dash_duo)).query, "/population")
|
|
641
641
|
assert copied["controls"].items() >= controls.items()
|
|
642
642
|
assert dash_duo.find_element("#population-export").is_enabled()
|
|
@@ -134,7 +134,7 @@ def test_route_restores_controls_and_arms_run_after_restoration():
|
|
|
134
134
|
assert armed["expected_controls"] == sweep_payload()["controls"]
|
|
135
135
|
assert field_key("source", "wavelength") in armed["field_keys"]
|
|
136
136
|
assert field_key("scatterer", "diameter") in armed["field_keys"]
|
|
137
|
-
assert "
|
|
137
|
+
assert not any(getattr(item, "className", None) == "simulation-link-notice" for item in components(page))
|
|
138
138
|
fields = callback(app, "_render_source_fields")("PlaneWaveSet", search_for(sweep_payload()))
|
|
139
139
|
wavelength = next(item for item in components(fields) if getattr(item, "id", None) == {"kind": "field", "section": "source", "name": "wavelength"})
|
|
140
140
|
assert wavelength.value == "600:700:3"
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{pymiesimx-0.3.0 → pymiesimx-0.4.0}/PyMieSimX/gui/pages/experiment/sections/configuration.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|