PyDMConverter 1.0.3__tar.gz → 1.0.5__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.
- {pydmconverter-1.0.3 → pydmconverter-1.0.5}/.github/workflows/gh-pages.yml +6 -3
- {pydmconverter-1.0.3 → pydmconverter-1.0.5}/.github/workflows/lint.yml +2 -2
- {pydmconverter-1.0.3 → pydmconverter-1.0.5}/.github/workflows/pypi_release.yml +3 -3
- {pydmconverter-1.0.3 → pydmconverter-1.0.5}/.github/workflows/tests.yml +4 -4
- {pydmconverter-1.0.3 → pydmconverter-1.0.5}/.gitignore +8 -0
- {pydmconverter-1.0.3 → pydmconverter-1.0.5}/PKG-INFO +8 -3
- {pydmconverter-1.0.3 → pydmconverter-1.0.5}/PyDMConverter.egg-info/PKG-INFO +8 -3
- pydmconverter-1.0.5/PyDMConverter.egg-info/SOURCES.txt +177 -0
- {pydmconverter-1.0.3 → pydmconverter-1.0.5}/PyDMConverter.egg-info/requires.txt +8 -2
- pydmconverter-1.0.5/PyDMConverter.egg-info/scm_file_list.json +173 -0
- pydmconverter-1.0.5/PyDMConverter.egg-info/scm_version.json +8 -0
- {pydmconverter-1.0.3 → pydmconverter-1.0.5}/app/src/model/options_model.py +6 -0
- {pydmconverter-1.0.3 → pydmconverter-1.0.5}/app/src/view/main_window.py +20 -3
- {pydmconverter-1.0.3 → pydmconverter-1.0.5}/app/src/view/options_window.py +9 -0
- {pydmconverter-1.0.3 → pydmconverter-1.0.5}/pydmconverter/__main__.py +76 -7
- {pydmconverter-1.0.3 → pydmconverter-1.0.5}/pydmconverter/custom_types.py +3 -2
- {pydmconverter-1.0.3 → pydmconverter-1.0.5}/pydmconverter/edm/converter.py +3 -2
- {pydmconverter-1.0.3 → pydmconverter-1.0.5}/pydmconverter/edm/converter_helpers.py +47 -85
- pydmconverter-1.0.5/pydmconverter/edm/edm_qt.py +142 -0
- pydmconverter-1.0.5/pydmconverter/edm/ir_adapter.py +570 -0
- {pydmconverter-1.0.3 → pydmconverter-1.0.5}/pydmconverter/edm/parser.py +70 -43
- {pydmconverter-1.0.3 → pydmconverter-1.0.5}/pydmconverter/edm/parser_helpers.py +219 -25
- pydmconverter-1.0.5/pydmconverter/ir/__init__.py +42 -0
- pydmconverter-1.0.5/pydmconverter/ir/base.py +27 -0
- pydmconverter-1.0.5/pydmconverter/ir/builder.py +198 -0
- pydmconverter-1.0.5/pydmconverter/ir/data/VENDORED_SCHEMA.md +25 -0
- pydmconverter-1.0.5/pydmconverter/ir/data/screen-ir.schema.json +163 -0
- pydmconverter-1.0.5/pydmconverter/ir/data/widget-registry/.beaver-snapshot-sha +1 -0
- pydmconverter-1.0.5/pydmconverter/ir/data/widget-registry/absolute-canvas.json +35 -0
- pydmconverter-1.0.5/pydmconverter/ir/data/widget-registry/arc.json +69 -0
- pydmconverter-1.0.5/pydmconverter/ir/data/widget-registry/ellipse.json +63 -0
- pydmconverter-1.0.5/pydmconverter/ir/data/widget-registry/embedded-display.json +55 -0
- pydmconverter-1.0.5/pydmconverter/ir/data/widget-registry/frame.json +52 -0
- pydmconverter-1.0.5/pydmconverter/ir/data/widget-registry/group-box.json +44 -0
- pydmconverter-1.0.5/pydmconverter/ir/data/widget-registry/group.json +41 -0
- pydmconverter-1.0.5/pydmconverter/ir/data/widget-registry/image-view.json +51 -0
- pydmconverter-1.0.5/pydmconverter/ir/data/widget-registry/line.json +78 -0
- pydmconverter-1.0.5/pydmconverter/ir/data/widget-registry/pv-button.json +57 -0
- pydmconverter-1.0.5/pydmconverter/ir/data/widget-registry/pv-byte-led.json +58 -0
- pydmconverter-1.0.5/pydmconverter/ir/data/widget-registry/pv-checkbox.json +55 -0
- pydmconverter-1.0.5/pydmconverter/ir/data/widget-registry/pv-enum-combobox.json +49 -0
- pydmconverter-1.0.5/pydmconverter/ir/data/widget-registry/pv-label.json +77 -0
- pydmconverter-1.0.5/pydmconverter/ir/data/widget-registry/pv-led.json +50 -0
- pydmconverter-1.0.5/pydmconverter/ir/data/widget-registry/pv-meter.json +56 -0
- pydmconverter-1.0.5/pydmconverter/ir/data/widget-registry/pv-progress-bar.json +62 -0
- pydmconverter-1.0.5/pydmconverter/ir/data/widget-registry/pv-radio-group.json +53 -0
- pydmconverter-1.0.5/pydmconverter/ir/data/widget-registry/pv-slider.json +58 -0
- pydmconverter-1.0.5/pydmconverter/ir/data/widget-registry/pv-text-input.json +57 -0
- pydmconverter-1.0.5/pydmconverter/ir/data/widget-registry/qwidget-container.json +44 -0
- pydmconverter-1.0.5/pydmconverter/ir/data/widget-registry/rectangle.json +64 -0
- pydmconverter-1.0.5/pydmconverter/ir/data/widget-registry/regular-button.json +62 -0
- pydmconverter-1.0.5/pydmconverter/ir/data/widget-registry/related-display-button.json +60 -0
- pydmconverter-1.0.5/pydmconverter/ir/data/widget-registry/scroll-area.json +52 -0
- pydmconverter-1.0.5/pydmconverter/ir/data/widget-registry/shell-command-button.json +59 -0
- pydmconverter-1.0.5/pydmconverter/ir/data/widget-registry/tabs.json +50 -0
- pydmconverter-1.0.5/pydmconverter/ir/data/widget-registry/text-label.json +60 -0
- pydmconverter-1.0.5/pydmconverter/ir/data/widget-registry/waveform-plot.json +62 -0
- pydmconverter-1.0.5/pydmconverter/ir/emit.py +56 -0
- pydmconverter-1.0.5/pydmconverter/ir/fox.py +65 -0
- pydmconverter-1.0.5/pydmconverter/ir/ids.py +73 -0
- pydmconverter-1.0.5/pydmconverter/ir/macros.py +34 -0
- pydmconverter-1.0.5/pydmconverter/ir/model.py +177 -0
- pydmconverter-1.0.5/pydmconverter/ir/registry.py +120 -0
- pydmconverter-1.0.5/pydmconverter/ir/schema.py +38 -0
- pydmconverter-1.0.5/pydmconverter/ir/source.py +80 -0
- pydmconverter-1.0.5/pydmconverter/ir/transforms.py +200 -0
- pydmconverter-1.0.5/pydmconverter/react.py +146 -0
- pydmconverter-1.0.5/pydmconverter/ui/__init__.py +6 -0
- pydmconverter-1.0.5/pydmconverter/ui/ir_adapter.py +181 -0
- {pydmconverter-1.0.3 → pydmconverter-1.0.5}/pydmconverter/widgets.py +38 -0
- {pydmconverter-1.0.3 → pydmconverter-1.0.5}/pydmconverter/widgets_helpers.py +29 -11
- {pydmconverter-1.0.3 → pydmconverter-1.0.5}/pyproject.toml +13 -4
- pydmconverter-1.0.5/tests/edm/fixtures/basic_widgets.edl +74 -0
- pydmconverter-1.0.5/tests/edm/fixtures/byte_and_related.edl +47 -0
- pydmconverter-1.0.5/tests/edm/fixtures/colors.edl +83 -0
- pydmconverter-1.0.5/tests/edm/fixtures/colors.list +12 -0
- pydmconverter-1.0.5/tests/edm/fixtures/exit_button.edl +49 -0
- pydmconverter-1.0.5/tests/edm/fixtures/graphics_arc.edl +61 -0
- pydmconverter-1.0.5/tests/edm/fixtures/graphics_bars.edl +64 -0
- pydmconverter-1.0.5/tests/edm/fixtures/graphics_circle.edl +29 -0
- pydmconverter-1.0.5/tests/edm/fixtures/graphics_group.edl +93 -0
- pydmconverter-1.0.5/tests/edm/fixtures/graphics_line.edl +90 -0
- pydmconverter-1.0.5/tests/edm/fixtures/graphics_rect.edl +62 -0
- pydmconverter-1.0.5/tests/edm/fixtures/indicator.edl +34 -0
- pydmconverter-1.0.5/tests/edm/fixtures/integration_combined.edl +242 -0
- pydmconverter-1.0.5/tests/edm/fixtures/integration_combined.screen.json +285 -0
- pydmconverter-1.0.5/tests/edm/fixtures/meter.edl +43 -0
- pydmconverter-1.0.5/tests/edm/fixtures/misc_buttons.edl +83 -0
- pydmconverter-1.0.5/tests/edm/fixtures/mmv_multiline.edl +52 -0
- pydmconverter-1.0.5/tests/edm/fixtures/png.edl +27 -0
- pydmconverter-1.0.5/tests/edm/fixtures/radio.edl +30 -0
- pydmconverter-1.0.5/tests/edm/fixtures/shell_cmd.edl +38 -0
- pydmconverter-1.0.5/tests/edm/fixtures/textdsp.edl +60 -0
- pydmconverter-1.0.5/tests/edm/fixtures/unknown.edl +29 -0
- pydmconverter-1.0.5/tests/edm/fixtures/visibility.edl +62 -0
- pydmconverter-1.0.5/tests/edm/test_byte_and_related.py +26 -0
- pydmconverter-1.0.5/tests/edm/test_colors.py +135 -0
- pydmconverter-1.0.5/tests/edm/test_control_widgets.py +213 -0
- {pydmconverter-1.0.3 → pydmconverter-1.0.5}/tests/edm/test_converter.py +92 -0
- pydmconverter-1.0.5/tests/edm/test_graphics_widgets.py +219 -0
- pydmconverter-1.0.5/tests/edm/test_integration_combined.py +82 -0
- pydmconverter-1.0.5/tests/edm/test_ir_adapter.py +71 -0
- {pydmconverter-1.0.3 → pydmconverter-1.0.5}/tests/edm/test_parser.py +81 -0
- {pydmconverter-1.0.3 → pydmconverter-1.0.5}/tests/edm/test_parser_helpers.py +104 -4
- pydmconverter-1.0.5/tests/edm/test_visibility_rules.py +54 -0
- pydmconverter-1.0.5/tests/ir/__init__.py +0 -0
- pydmconverter-1.0.5/tests/ir/conftest.py +69 -0
- pydmconverter-1.0.5/tests/ir/test_ir_builder.py +224 -0
- pydmconverter-1.0.5/tests/ir/test_ir_emit.py +50 -0
- pydmconverter-1.0.5/tests/ir/test_ir_fox.py +41 -0
- pydmconverter-1.0.5/tests/ir/test_ir_ids.py +38 -0
- pydmconverter-1.0.5/tests/ir/test_ir_model.py +88 -0
- pydmconverter-1.0.5/tests/ir/test_ir_registry.py +139 -0
- pydmconverter-1.0.5/tests/ir/test_ir_schema.py +82 -0
- pydmconverter-1.0.5/tests/ir/test_ir_transforms.py +106 -0
- pydmconverter-1.0.5/tests/test_headless_import.py +35 -0
- pydmconverter-1.0.5/tests/test_options_model.py +38 -0
- pydmconverter-1.0.5/tests/test_react.py +72 -0
- {pydmconverter-1.0.3 → pydmconverter-1.0.5}/tests/test_widgets.py +41 -0
- {pydmconverter-1.0.3 → pydmconverter-1.0.5}/tests/test_widgets_helpers.py +56 -0
- pydmconverter-1.0.5/tests/ui/__init__.py +0 -0
- pydmconverter-1.0.5/tests/ui/fixtures/basic_widgets.ui +75 -0
- pydmconverter-1.0.5/tests/ui/fixtures/byte_and_related.ui +46 -0
- pydmconverter-1.0.5/tests/ui/fixtures/newly_supported.ui +88 -0
- pydmconverter-1.0.5/tests/ui/test_byte_and_related.py +50 -0
- pydmconverter-1.0.5/tests/ui/test_ir_adapter.py +153 -0
- pydmconverter-1.0.3/PyDMConverter.egg-info/SOURCES.txt +0 -77
- {pydmconverter-1.0.3 → pydmconverter-1.0.5}/.github/ISSUE_TEMPLATE/bug-report.yml +0 -0
- {pydmconverter-1.0.3 → pydmconverter-1.0.5}/.github/ISSUE_TEMPLATE/feature-request.yml +0 -0
- {pydmconverter-1.0.3 → pydmconverter-1.0.5}/.pre-commit-config.yaml +0 -0
- {pydmconverter-1.0.3 → pydmconverter-1.0.5}/LICENSE +0 -0
- {pydmconverter-1.0.3 → pydmconverter-1.0.5}/PyDMConverter.egg-info/dependency_links.txt +0 -0
- {pydmconverter-1.0.3 → pydmconverter-1.0.5}/PyDMConverter.egg-info/entry_points.txt +0 -0
- {pydmconverter-1.0.3 → pydmconverter-1.0.5}/PyDMConverter.egg-info/top_level.txt +0 -0
- {pydmconverter-1.0.3 → pydmconverter-1.0.5}/README.md +0 -0
- {pydmconverter-1.0.3 → pydmconverter-1.0.5}/app/resources/file_minus.png +0 -0
- {pydmconverter-1.0.3 → pydmconverter-1.0.5}/app/resources/file_plus.png +0 -0
- {pydmconverter-1.0.3 → pydmconverter-1.0.5}/app/resources/file_x.png +0 -0
- {pydmconverter-1.0.3 → pydmconverter-1.0.5}/app/resources/folder_plus.png +0 -0
- {pydmconverter-1.0.3 → pydmconverter-1.0.5}/app/resources/folder_search.png +0 -0
- {pydmconverter-1.0.3 → pydmconverter-1.0.5}/app/resources/play_circle_outline.png +0 -0
- {pydmconverter-1.0.3 → pydmconverter-1.0.5}/app/resources/settings.png +0 -0
- {pydmconverter-1.0.3 → pydmconverter-1.0.5}/app/src/model/__init__.py +0 -0
- {pydmconverter-1.0.3 → pydmconverter-1.0.5}/app/src/model/app_model.py +0 -0
- {pydmconverter-1.0.3 → pydmconverter-1.0.5}/app/src/view/__init__.py +0 -0
- {pydmconverter-1.0.3 → pydmconverter-1.0.5}/app/src/view/file_select_widget.py +0 -0
- {pydmconverter-1.0.3 → pydmconverter-1.0.5}/app/src/view/main_window.ui +0 -0
- {pydmconverter-1.0.3 → pydmconverter-1.0.5}/app/src/view/output_select_dialog.py +0 -0
- {pydmconverter-1.0.3 → pydmconverter-1.0.5}/docs/arguments.md +0 -0
- {pydmconverter-1.0.3 → pydmconverter-1.0.5}/docs/images/pydmconverter.png +0 -0
- {pydmconverter-1.0.3 → pydmconverter-1.0.5}/docs/index.md +0 -0
- {pydmconverter-1.0.3 → pydmconverter-1.0.5}/docs/reference/custom_types.md +0 -0
- {pydmconverter-1.0.3 → pydmconverter-1.0.5}/docs/reference/edm/converter.md +0 -0
- {pydmconverter-1.0.3 → pydmconverter-1.0.5}/docs/reference/edm/converter_helpers.md +0 -0
- {pydmconverter-1.0.3 → pydmconverter-1.0.5}/docs/reference/edm/menumux.md +0 -0
- {pydmconverter-1.0.3 → pydmconverter-1.0.5}/docs/reference/edm/parser.md +0 -0
- {pydmconverter-1.0.3 → pydmconverter-1.0.5}/docs/reference/edm/parser_helpers.md +0 -0
- {pydmconverter-1.0.3 → pydmconverter-1.0.5}/docs/reference/index.md +0 -0
- {pydmconverter-1.0.3 → pydmconverter-1.0.5}/docs/reference/pydm-converter-tool.md +0 -0
- {pydmconverter-1.0.3 → pydmconverter-1.0.5}/docs/reference/widgets.md +0 -0
- {pydmconverter-1.0.3 → pydmconverter-1.0.5}/docs/reference/widgets_helpers.md +0 -0
- {pydmconverter-1.0.3 → pydmconverter-1.0.5}/docs/user_guide.md +0 -0
- {pydmconverter-1.0.3 → pydmconverter-1.0.5}/environment.yml +0 -0
- {pydmconverter-1.0.3 → pydmconverter-1.0.5}/examples/TEM_mapping.edl +0 -0
- {pydmconverter-1.0.3 → pydmconverter-1.0.5}/examples/all_bsy0_main.edl +0 -0
- {pydmconverter-1.0.3 → pydmconverter-1.0.5}/examples/all_bsy0_main_with_groups.edl +0 -0
- {pydmconverter-1.0.3 → pydmconverter-1.0.5}/examples/prosilica.edl +0 -0
- {pydmconverter-1.0.3 → pydmconverter-1.0.5}/mkdocs.yml +0 -0
- {pydmconverter-1.0.3 → pydmconverter-1.0.5}/pydmconverter/__init__.py +0 -0
- {pydmconverter-1.0.3 → pydmconverter-1.0.5}/pydmconverter/edm/__init__.py +0 -0
- {pydmconverter-1.0.3 → pydmconverter-1.0.5}/pydmconverter/edm/menumux.py +0 -0
- {pydmconverter-1.0.3 → pydmconverter-1.0.5}/pydmconverter/exceptions.py +0 -0
- {pydmconverter-1.0.3 → pydmconverter-1.0.5}/pydmconverter/launch_gui.sh +0 -0
- {pydmconverter-1.0.3 → pydmconverter-1.0.5}/pydmconverter/sites/__init__.py +0 -0
- {pydmconverter-1.0.3 → pydmconverter-1.0.5}/pydmconverter/sites/slac.py +0 -0
- {pydmconverter-1.0.3 → pydmconverter-1.0.5}/setup.cfg +0 -0
- {pydmconverter-1.0.3 → pydmconverter-1.0.5}/tests/__init__.py +0 -0
- {pydmconverter-1.0.3 → pydmconverter-1.0.5}/tests/edm/test_converter_helpers.py +0 -0
- {pydmconverter-1.0.3 → pydmconverter-1.0.5}/tests/test_main.py +0 -0
- {pydmconverter-1.0.3 → pydmconverter-1.0.5}/tests/test_sites.py +0 -0
|
@@ -7,6 +7,9 @@ on:
|
|
|
7
7
|
branches:
|
|
8
8
|
- main
|
|
9
9
|
|
|
10
|
+
permissions:
|
|
11
|
+
contents: write
|
|
12
|
+
|
|
10
13
|
jobs:
|
|
11
14
|
deploy:
|
|
12
15
|
if: ${{ github.repository == 'slaclab/pydm-converter-tool' }}
|
|
@@ -16,8 +19,8 @@ jobs:
|
|
|
16
19
|
os: [ubuntu-latest]
|
|
17
20
|
python-version: [3.9]
|
|
18
21
|
steps:
|
|
19
|
-
- uses: actions/checkout@v4
|
|
20
|
-
- uses: conda-incubator/setup-miniconda@v3
|
|
22
|
+
- uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4
|
|
23
|
+
- uses: conda-incubator/setup-miniconda@fc2d68f6413eb2d87b895e92f8584b5b94a10167 # v3
|
|
21
24
|
with:
|
|
22
25
|
miniforge-version: latest
|
|
23
26
|
use-mamba: true
|
|
@@ -32,7 +35,7 @@ jobs:
|
|
|
32
35
|
mkdocs build
|
|
33
36
|
|
|
34
37
|
- name: Deploy to gh-pages
|
|
35
|
-
uses: peaceiris/actions-gh-pages@v4
|
|
38
|
+
uses: peaceiris/actions-gh-pages@84c30a85c19949d7eee79c4ff27748b70285e453 # v4
|
|
36
39
|
with:
|
|
37
40
|
github_token: ${{ secrets.GITHUB_TOKEN }}
|
|
38
41
|
publish_dir: ./site/
|
|
@@ -8,11 +8,11 @@ jobs:
|
|
|
8
8
|
lint:
|
|
9
9
|
runs-on: ubuntu-latest
|
|
10
10
|
steps:
|
|
11
|
-
- uses: actions/checkout@v4
|
|
11
|
+
- uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4
|
|
12
12
|
with:
|
|
13
13
|
fetch-depth: 1
|
|
14
14
|
- name: Install Python
|
|
15
|
-
uses: actions/setup-python@v5
|
|
15
|
+
uses: actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065 # v5
|
|
16
16
|
with:
|
|
17
17
|
python-version: "3.12"
|
|
18
18
|
- name: Install dependencies
|
|
@@ -11,11 +11,11 @@ jobs:
|
|
|
11
11
|
permissions:
|
|
12
12
|
id-token: write # IMPORTANT: this permission is mandatory for trusted publishing
|
|
13
13
|
steps:
|
|
14
|
-
- uses: actions/checkout@v4
|
|
14
|
+
- uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4
|
|
15
15
|
with:
|
|
16
16
|
fetch-depth: 0
|
|
17
17
|
- name: Set up Python 3.12
|
|
18
|
-
uses: actions/setup-python@v5
|
|
18
|
+
uses: actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065 # v5
|
|
19
19
|
with:
|
|
20
20
|
python-version: 3.12
|
|
21
21
|
- name: Install pypa/build
|
|
@@ -25,4 +25,4 @@ jobs:
|
|
|
25
25
|
run: |
|
|
26
26
|
python -m build --sdist --outdir dist/ .
|
|
27
27
|
- name: Publish package distributions to PyPI
|
|
28
|
-
uses: pypa/gh-action-pypi-publish@release/v1
|
|
28
|
+
uses: pypa/gh-action-pypi-publish@cef221092ed1bacb1cc03d23a2d87d1d172e277b # release/v1
|
|
@@ -20,10 +20,10 @@ jobs:
|
|
|
20
20
|
DISPLAY: ':99.0'
|
|
21
21
|
QT_MAC_WANTS_LAYER: 1 # PyQT gui tests involving qtbot interaction on macOS will fail without this
|
|
22
22
|
steps:
|
|
23
|
-
- uses: actions/checkout@v4
|
|
23
|
+
- uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4
|
|
24
24
|
|
|
25
25
|
- name: Setup Miniforge
|
|
26
|
-
uses: conda-incubator/setup-miniconda@v3
|
|
26
|
+
uses: conda-incubator/setup-miniconda@fc2d68f6413eb2d87b895e92f8584b5b94a10167 # v3
|
|
27
27
|
with:
|
|
28
28
|
miniforge-version: latest
|
|
29
29
|
activate-environment: pydm-converter-tool-dev
|
|
@@ -54,11 +54,11 @@ jobs:
|
|
|
54
54
|
test-pypi-build:
|
|
55
55
|
runs-on: ubuntu-latest
|
|
56
56
|
steps:
|
|
57
|
-
- uses: actions/checkout@v4
|
|
57
|
+
- uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4
|
|
58
58
|
with:
|
|
59
59
|
fetch-depth: 0
|
|
60
60
|
- name: Set up Python 3.10
|
|
61
|
-
uses: actions/setup-python@v5
|
|
61
|
+
uses: actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065 # v5
|
|
62
62
|
with:
|
|
63
63
|
python-version: '3.10'
|
|
64
64
|
- name: Install pypa/build
|
|
@@ -119,3 +119,11 @@ ENV/
|
|
|
119
119
|
.vscode/
|
|
120
120
|
|
|
121
121
|
*.json
|
|
122
|
+
|
|
123
|
+
# Canopy IR data files (generated schema + vendored widget registry) are tracked assets
|
|
124
|
+
!pydmconverter/ir/data/*.json
|
|
125
|
+
!pydmconverter/ir/data/widget-registry/*.json
|
|
126
|
+
|
|
127
|
+
# EDM->IR combined integration snapshot (committed regression fixture;
|
|
128
|
+
# see tests/edm/test_integration_combined.py for how to regenerate it deliberately)
|
|
129
|
+
!tests/edm/fixtures/integration_combined.screen.json
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: PyDMConverter
|
|
3
|
-
Version: 1.0.
|
|
3
|
+
Version: 1.0.5
|
|
4
4
|
Summary: converter to generate pydm .ui files from other display managers.
|
|
5
5
|
Author: Devan Agrawal, Zach Domke, Ryan McClanahan, Alexander Ng, Logan Somoza, Alexandria Ikuma
|
|
6
6
|
Author-email: Yekta Yazar <yazar@slac.stanford.edu>
|
|
@@ -692,13 +692,18 @@ Classifier: Topic :: Scientific/Engineering
|
|
|
692
692
|
Requires-Python: >=3.10
|
|
693
693
|
Description-Content-Type: text/markdown
|
|
694
694
|
License-File: LICENSE
|
|
695
|
-
Requires-Dist:
|
|
696
|
-
Requires-Dist:
|
|
695
|
+
Requires-Dist: pydantic>=2
|
|
696
|
+
Requires-Dist: jsonschema>=4
|
|
697
|
+
Provides-Extra: gui
|
|
698
|
+
Requires-Dist: pydm; extra == "gui"
|
|
699
|
+
Requires-Dist: pyqt5; extra == "gui"
|
|
697
700
|
Provides-Extra: dev
|
|
698
701
|
Requires-Dist: pytest; extra == "dev"
|
|
699
702
|
Requires-Dist: pytest-cov; extra == "dev"
|
|
700
703
|
Requires-Dist: pytest-qt; extra == "dev"
|
|
701
704
|
Requires-Dist: pytest-mock; extra == "dev"
|
|
705
|
+
Requires-Dist: pydm; extra == "dev"
|
|
706
|
+
Requires-Dist: pyqt5; extra == "dev"
|
|
702
707
|
Dynamic: license-file
|
|
703
708
|
|
|
704
709
|
# PyDM Converter
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: PyDMConverter
|
|
3
|
-
Version: 1.0.
|
|
3
|
+
Version: 1.0.5
|
|
4
4
|
Summary: converter to generate pydm .ui files from other display managers.
|
|
5
5
|
Author: Devan Agrawal, Zach Domke, Ryan McClanahan, Alexander Ng, Logan Somoza, Alexandria Ikuma
|
|
6
6
|
Author-email: Yekta Yazar <yazar@slac.stanford.edu>
|
|
@@ -692,13 +692,18 @@ Classifier: Topic :: Scientific/Engineering
|
|
|
692
692
|
Requires-Python: >=3.10
|
|
693
693
|
Description-Content-Type: text/markdown
|
|
694
694
|
License-File: LICENSE
|
|
695
|
-
Requires-Dist:
|
|
696
|
-
Requires-Dist:
|
|
695
|
+
Requires-Dist: pydantic>=2
|
|
696
|
+
Requires-Dist: jsonschema>=4
|
|
697
|
+
Provides-Extra: gui
|
|
698
|
+
Requires-Dist: pydm; extra == "gui"
|
|
699
|
+
Requires-Dist: pyqt5; extra == "gui"
|
|
697
700
|
Provides-Extra: dev
|
|
698
701
|
Requires-Dist: pytest; extra == "dev"
|
|
699
702
|
Requires-Dist: pytest-cov; extra == "dev"
|
|
700
703
|
Requires-Dist: pytest-qt; extra == "dev"
|
|
701
704
|
Requires-Dist: pytest-mock; extra == "dev"
|
|
705
|
+
Requires-Dist: pydm; extra == "dev"
|
|
706
|
+
Requires-Dist: pyqt5; extra == "dev"
|
|
702
707
|
Dynamic: license-file
|
|
703
708
|
|
|
704
709
|
# PyDM Converter
|
|
@@ -0,0 +1,177 @@
|
|
|
1
|
+
.gitignore
|
|
2
|
+
.pre-commit-config.yaml
|
|
3
|
+
LICENSE
|
|
4
|
+
README.md
|
|
5
|
+
environment.yml
|
|
6
|
+
mkdocs.yml
|
|
7
|
+
pyproject.toml
|
|
8
|
+
.github/ISSUE_TEMPLATE/bug-report.yml
|
|
9
|
+
.github/ISSUE_TEMPLATE/feature-request.yml
|
|
10
|
+
.github/workflows/gh-pages.yml
|
|
11
|
+
.github/workflows/lint.yml
|
|
12
|
+
.github/workflows/pypi_release.yml
|
|
13
|
+
.github/workflows/tests.yml
|
|
14
|
+
PyDMConverter.egg-info/PKG-INFO
|
|
15
|
+
PyDMConverter.egg-info/SOURCES.txt
|
|
16
|
+
PyDMConverter.egg-info/dependency_links.txt
|
|
17
|
+
PyDMConverter.egg-info/entry_points.txt
|
|
18
|
+
PyDMConverter.egg-info/requires.txt
|
|
19
|
+
PyDMConverter.egg-info/scm_file_list.json
|
|
20
|
+
PyDMConverter.egg-info/scm_version.json
|
|
21
|
+
PyDMConverter.egg-info/top_level.txt
|
|
22
|
+
app/resources/file_minus.png
|
|
23
|
+
app/resources/file_plus.png
|
|
24
|
+
app/resources/file_x.png
|
|
25
|
+
app/resources/folder_plus.png
|
|
26
|
+
app/resources/folder_search.png
|
|
27
|
+
app/resources/play_circle_outline.png
|
|
28
|
+
app/resources/settings.png
|
|
29
|
+
app/src/model/__init__.py
|
|
30
|
+
app/src/model/app_model.py
|
|
31
|
+
app/src/model/options_model.py
|
|
32
|
+
app/src/view/__init__.py
|
|
33
|
+
app/src/view/file_select_widget.py
|
|
34
|
+
app/src/view/main_window.py
|
|
35
|
+
app/src/view/main_window.ui
|
|
36
|
+
app/src/view/options_window.py
|
|
37
|
+
app/src/view/output_select_dialog.py
|
|
38
|
+
docs/arguments.md
|
|
39
|
+
docs/index.md
|
|
40
|
+
docs/user_guide.md
|
|
41
|
+
docs/images/pydmconverter.png
|
|
42
|
+
docs/reference/custom_types.md
|
|
43
|
+
docs/reference/index.md
|
|
44
|
+
docs/reference/pydm-converter-tool.md
|
|
45
|
+
docs/reference/widgets.md
|
|
46
|
+
docs/reference/widgets_helpers.md
|
|
47
|
+
docs/reference/edm/converter.md
|
|
48
|
+
docs/reference/edm/converter_helpers.md
|
|
49
|
+
docs/reference/edm/menumux.md
|
|
50
|
+
docs/reference/edm/parser.md
|
|
51
|
+
docs/reference/edm/parser_helpers.md
|
|
52
|
+
examples/TEM_mapping.edl
|
|
53
|
+
examples/all_bsy0_main.edl
|
|
54
|
+
examples/all_bsy0_main_with_groups.edl
|
|
55
|
+
examples/prosilica.edl
|
|
56
|
+
pydmconverter/__init__.py
|
|
57
|
+
pydmconverter/__main__.py
|
|
58
|
+
pydmconverter/custom_types.py
|
|
59
|
+
pydmconverter/exceptions.py
|
|
60
|
+
pydmconverter/launch_gui.sh
|
|
61
|
+
pydmconverter/react.py
|
|
62
|
+
pydmconverter/widgets.py
|
|
63
|
+
pydmconverter/widgets_helpers.py
|
|
64
|
+
pydmconverter/edm/__init__.py
|
|
65
|
+
pydmconverter/edm/converter.py
|
|
66
|
+
pydmconverter/edm/converter_helpers.py
|
|
67
|
+
pydmconverter/edm/edm_qt.py
|
|
68
|
+
pydmconverter/edm/ir_adapter.py
|
|
69
|
+
pydmconverter/edm/menumux.py
|
|
70
|
+
pydmconverter/edm/parser.py
|
|
71
|
+
pydmconverter/edm/parser_helpers.py
|
|
72
|
+
pydmconverter/ir/__init__.py
|
|
73
|
+
pydmconverter/ir/base.py
|
|
74
|
+
pydmconverter/ir/builder.py
|
|
75
|
+
pydmconverter/ir/emit.py
|
|
76
|
+
pydmconverter/ir/fox.py
|
|
77
|
+
pydmconverter/ir/ids.py
|
|
78
|
+
pydmconverter/ir/macros.py
|
|
79
|
+
pydmconverter/ir/model.py
|
|
80
|
+
pydmconverter/ir/registry.py
|
|
81
|
+
pydmconverter/ir/schema.py
|
|
82
|
+
pydmconverter/ir/source.py
|
|
83
|
+
pydmconverter/ir/transforms.py
|
|
84
|
+
pydmconverter/ir/data/VENDORED_SCHEMA.md
|
|
85
|
+
pydmconverter/ir/data/screen-ir.schema.json
|
|
86
|
+
pydmconverter/ir/data/widget-registry/.beaver-snapshot-sha
|
|
87
|
+
pydmconverter/ir/data/widget-registry/absolute-canvas.json
|
|
88
|
+
pydmconverter/ir/data/widget-registry/arc.json
|
|
89
|
+
pydmconverter/ir/data/widget-registry/ellipse.json
|
|
90
|
+
pydmconverter/ir/data/widget-registry/embedded-display.json
|
|
91
|
+
pydmconverter/ir/data/widget-registry/frame.json
|
|
92
|
+
pydmconverter/ir/data/widget-registry/group-box.json
|
|
93
|
+
pydmconverter/ir/data/widget-registry/group.json
|
|
94
|
+
pydmconverter/ir/data/widget-registry/image-view.json
|
|
95
|
+
pydmconverter/ir/data/widget-registry/line.json
|
|
96
|
+
pydmconverter/ir/data/widget-registry/pv-button.json
|
|
97
|
+
pydmconverter/ir/data/widget-registry/pv-byte-led.json
|
|
98
|
+
pydmconverter/ir/data/widget-registry/pv-checkbox.json
|
|
99
|
+
pydmconverter/ir/data/widget-registry/pv-enum-combobox.json
|
|
100
|
+
pydmconverter/ir/data/widget-registry/pv-label.json
|
|
101
|
+
pydmconverter/ir/data/widget-registry/pv-led.json
|
|
102
|
+
pydmconverter/ir/data/widget-registry/pv-meter.json
|
|
103
|
+
pydmconverter/ir/data/widget-registry/pv-progress-bar.json
|
|
104
|
+
pydmconverter/ir/data/widget-registry/pv-radio-group.json
|
|
105
|
+
pydmconverter/ir/data/widget-registry/pv-slider.json
|
|
106
|
+
pydmconverter/ir/data/widget-registry/pv-text-input.json
|
|
107
|
+
pydmconverter/ir/data/widget-registry/qwidget-container.json
|
|
108
|
+
pydmconverter/ir/data/widget-registry/rectangle.json
|
|
109
|
+
pydmconverter/ir/data/widget-registry/regular-button.json
|
|
110
|
+
pydmconverter/ir/data/widget-registry/related-display-button.json
|
|
111
|
+
pydmconverter/ir/data/widget-registry/scroll-area.json
|
|
112
|
+
pydmconverter/ir/data/widget-registry/shell-command-button.json
|
|
113
|
+
pydmconverter/ir/data/widget-registry/tabs.json
|
|
114
|
+
pydmconverter/ir/data/widget-registry/text-label.json
|
|
115
|
+
pydmconverter/ir/data/widget-registry/waveform-plot.json
|
|
116
|
+
pydmconverter/sites/__init__.py
|
|
117
|
+
pydmconverter/sites/slac.py
|
|
118
|
+
pydmconverter/ui/__init__.py
|
|
119
|
+
pydmconverter/ui/ir_adapter.py
|
|
120
|
+
tests/__init__.py
|
|
121
|
+
tests/test_headless_import.py
|
|
122
|
+
tests/test_main.py
|
|
123
|
+
tests/test_options_model.py
|
|
124
|
+
tests/test_react.py
|
|
125
|
+
tests/test_sites.py
|
|
126
|
+
tests/test_widgets.py
|
|
127
|
+
tests/test_widgets_helpers.py
|
|
128
|
+
tests/edm/test_byte_and_related.py
|
|
129
|
+
tests/edm/test_colors.py
|
|
130
|
+
tests/edm/test_control_widgets.py
|
|
131
|
+
tests/edm/test_converter.py
|
|
132
|
+
tests/edm/test_converter_helpers.py
|
|
133
|
+
tests/edm/test_graphics_widgets.py
|
|
134
|
+
tests/edm/test_integration_combined.py
|
|
135
|
+
tests/edm/test_ir_adapter.py
|
|
136
|
+
tests/edm/test_parser.py
|
|
137
|
+
tests/edm/test_parser_helpers.py
|
|
138
|
+
tests/edm/test_visibility_rules.py
|
|
139
|
+
tests/edm/fixtures/basic_widgets.edl
|
|
140
|
+
tests/edm/fixtures/byte_and_related.edl
|
|
141
|
+
tests/edm/fixtures/colors.edl
|
|
142
|
+
tests/edm/fixtures/colors.list
|
|
143
|
+
tests/edm/fixtures/exit_button.edl
|
|
144
|
+
tests/edm/fixtures/graphics_arc.edl
|
|
145
|
+
tests/edm/fixtures/graphics_bars.edl
|
|
146
|
+
tests/edm/fixtures/graphics_circle.edl
|
|
147
|
+
tests/edm/fixtures/graphics_group.edl
|
|
148
|
+
tests/edm/fixtures/graphics_line.edl
|
|
149
|
+
tests/edm/fixtures/graphics_rect.edl
|
|
150
|
+
tests/edm/fixtures/indicator.edl
|
|
151
|
+
tests/edm/fixtures/integration_combined.edl
|
|
152
|
+
tests/edm/fixtures/integration_combined.screen.json
|
|
153
|
+
tests/edm/fixtures/meter.edl
|
|
154
|
+
tests/edm/fixtures/misc_buttons.edl
|
|
155
|
+
tests/edm/fixtures/mmv_multiline.edl
|
|
156
|
+
tests/edm/fixtures/png.edl
|
|
157
|
+
tests/edm/fixtures/radio.edl
|
|
158
|
+
tests/edm/fixtures/shell_cmd.edl
|
|
159
|
+
tests/edm/fixtures/textdsp.edl
|
|
160
|
+
tests/edm/fixtures/unknown.edl
|
|
161
|
+
tests/edm/fixtures/visibility.edl
|
|
162
|
+
tests/ir/__init__.py
|
|
163
|
+
tests/ir/conftest.py
|
|
164
|
+
tests/ir/test_ir_builder.py
|
|
165
|
+
tests/ir/test_ir_emit.py
|
|
166
|
+
tests/ir/test_ir_fox.py
|
|
167
|
+
tests/ir/test_ir_ids.py
|
|
168
|
+
tests/ir/test_ir_model.py
|
|
169
|
+
tests/ir/test_ir_registry.py
|
|
170
|
+
tests/ir/test_ir_schema.py
|
|
171
|
+
tests/ir/test_ir_transforms.py
|
|
172
|
+
tests/ui/__init__.py
|
|
173
|
+
tests/ui/test_byte_and_related.py
|
|
174
|
+
tests/ui/test_ir_adapter.py
|
|
175
|
+
tests/ui/fixtures/basic_widgets.ui
|
|
176
|
+
tests/ui/fixtures/byte_and_related.ui
|
|
177
|
+
tests/ui/fixtures/newly_supported.ui
|
|
@@ -0,0 +1,173 @@
|
|
|
1
|
+
{
|
|
2
|
+
"files": [
|
|
3
|
+
".pre-commit-config.yaml",
|
|
4
|
+
"README.md",
|
|
5
|
+
"environment.yml",
|
|
6
|
+
"LICENSE",
|
|
7
|
+
"pyproject.toml",
|
|
8
|
+
"mkdocs.yml",
|
|
9
|
+
".gitignore",
|
|
10
|
+
"docs/arguments.md",
|
|
11
|
+
"docs/user_guide.md",
|
|
12
|
+
"docs/index.md",
|
|
13
|
+
"docs/images/pydmconverter.png",
|
|
14
|
+
"docs/reference/widgets_helpers.md",
|
|
15
|
+
"docs/reference/widgets.md",
|
|
16
|
+
"docs/reference/custom_types.md",
|
|
17
|
+
"docs/reference/pydm-converter-tool.md",
|
|
18
|
+
"docs/reference/index.md",
|
|
19
|
+
"docs/reference/edm/parser_helpers.md",
|
|
20
|
+
"docs/reference/edm/parser.md",
|
|
21
|
+
"docs/reference/edm/menumux.md",
|
|
22
|
+
"docs/reference/edm/converter.md",
|
|
23
|
+
"docs/reference/edm/converter_helpers.md",
|
|
24
|
+
"tests/test_react.py",
|
|
25
|
+
"tests/test_headless_import.py",
|
|
26
|
+
"tests/__init__.py",
|
|
27
|
+
"tests/test_widgets_helpers.py",
|
|
28
|
+
"tests/test_widgets.py",
|
|
29
|
+
"tests/test_sites.py",
|
|
30
|
+
"tests/test_options_model.py",
|
|
31
|
+
"tests/test_main.py",
|
|
32
|
+
"tests/ir/test_ir_transforms.py",
|
|
33
|
+
"tests/ir/test_ir_fox.py",
|
|
34
|
+
"tests/ir/test_ir_ids.py",
|
|
35
|
+
"tests/ir/__init__.py",
|
|
36
|
+
"tests/ir/test_ir_model.py",
|
|
37
|
+
"tests/ir/test_ir_builder.py",
|
|
38
|
+
"tests/ir/conftest.py",
|
|
39
|
+
"tests/ir/test_ir_registry.py",
|
|
40
|
+
"tests/ir/test_ir_emit.py",
|
|
41
|
+
"tests/ir/test_ir_schema.py",
|
|
42
|
+
"tests/ui/__init__.py",
|
|
43
|
+
"tests/ui/test_ir_adapter.py",
|
|
44
|
+
"tests/ui/test_byte_and_related.py",
|
|
45
|
+
"tests/ui/fixtures/byte_and_related.ui",
|
|
46
|
+
"tests/ui/fixtures/basic_widgets.ui",
|
|
47
|
+
"tests/ui/fixtures/newly_supported.ui",
|
|
48
|
+
"tests/edm/test_converter_helpers.py",
|
|
49
|
+
"tests/edm/test_ir_adapter.py",
|
|
50
|
+
"tests/edm/test_parser_helpers.py",
|
|
51
|
+
"tests/edm/test_integration_combined.py",
|
|
52
|
+
"tests/edm/test_parser.py",
|
|
53
|
+
"tests/edm/test_converter.py",
|
|
54
|
+
"tests/edm/test_byte_and_related.py",
|
|
55
|
+
"tests/edm/test_graphics_widgets.py",
|
|
56
|
+
"tests/edm/test_control_widgets.py",
|
|
57
|
+
"tests/edm/test_colors.py",
|
|
58
|
+
"tests/edm/test_visibility_rules.py",
|
|
59
|
+
"tests/edm/fixtures/graphics_arc.edl",
|
|
60
|
+
"tests/edm/fixtures/textdsp.edl",
|
|
61
|
+
"tests/edm/fixtures/graphics_rect.edl",
|
|
62
|
+
"tests/edm/fixtures/unknown.edl",
|
|
63
|
+
"tests/edm/fixtures/exit_button.edl",
|
|
64
|
+
"tests/edm/fixtures/basic_widgets.edl",
|
|
65
|
+
"tests/edm/fixtures/integration_combined.edl",
|
|
66
|
+
"tests/edm/fixtures/visibility.edl",
|
|
67
|
+
"tests/edm/fixtures/shell_cmd.edl",
|
|
68
|
+
"tests/edm/fixtures/colors.list",
|
|
69
|
+
"tests/edm/fixtures/graphics_bars.edl",
|
|
70
|
+
"tests/edm/fixtures/mmv_multiline.edl",
|
|
71
|
+
"tests/edm/fixtures/misc_buttons.edl",
|
|
72
|
+
"tests/edm/fixtures/colors.edl",
|
|
73
|
+
"tests/edm/fixtures/graphics_line.edl",
|
|
74
|
+
"tests/edm/fixtures/radio.edl",
|
|
75
|
+
"tests/edm/fixtures/indicator.edl",
|
|
76
|
+
"tests/edm/fixtures/byte_and_related.edl",
|
|
77
|
+
"tests/edm/fixtures/png.edl",
|
|
78
|
+
"tests/edm/fixtures/integration_combined.screen.json",
|
|
79
|
+
"tests/edm/fixtures/graphics_circle.edl",
|
|
80
|
+
"tests/edm/fixtures/meter.edl",
|
|
81
|
+
"tests/edm/fixtures/graphics_group.edl",
|
|
82
|
+
"app/resources/file_minus.png",
|
|
83
|
+
"app/resources/folder_search.png",
|
|
84
|
+
"app/resources/play_circle_outline.png",
|
|
85
|
+
"app/resources/settings.png",
|
|
86
|
+
"app/resources/file_plus.png",
|
|
87
|
+
"app/resources/file_x.png",
|
|
88
|
+
"app/resources/folder_plus.png",
|
|
89
|
+
"app/src/view/output_select_dialog.py",
|
|
90
|
+
"app/src/view/main_window.ui",
|
|
91
|
+
"app/src/view/__init__.py",
|
|
92
|
+
"app/src/view/main_window.py",
|
|
93
|
+
"app/src/view/file_select_widget.py",
|
|
94
|
+
"app/src/view/options_window.py",
|
|
95
|
+
"app/src/model/__init__.py",
|
|
96
|
+
"app/src/model/app_model.py",
|
|
97
|
+
"app/src/model/options_model.py",
|
|
98
|
+
"pydmconverter/react.py",
|
|
99
|
+
"pydmconverter/widgets.py",
|
|
100
|
+
"pydmconverter/__init__.py",
|
|
101
|
+
"pydmconverter/exceptions.py",
|
|
102
|
+
"pydmconverter/launch_gui.sh",
|
|
103
|
+
"pydmconverter/widgets_helpers.py",
|
|
104
|
+
"pydmconverter/custom_types.py",
|
|
105
|
+
"pydmconverter/__main__.py",
|
|
106
|
+
"pydmconverter/ir/model.py",
|
|
107
|
+
"pydmconverter/ir/__init__.py",
|
|
108
|
+
"pydmconverter/ir/source.py",
|
|
109
|
+
"pydmconverter/ir/schema.py",
|
|
110
|
+
"pydmconverter/ir/fox.py",
|
|
111
|
+
"pydmconverter/ir/emit.py",
|
|
112
|
+
"pydmconverter/ir/transforms.py",
|
|
113
|
+
"pydmconverter/ir/ids.py",
|
|
114
|
+
"pydmconverter/ir/builder.py",
|
|
115
|
+
"pydmconverter/ir/macros.py",
|
|
116
|
+
"pydmconverter/ir/registry.py",
|
|
117
|
+
"pydmconverter/ir/base.py",
|
|
118
|
+
"pydmconverter/ir/data/screen-ir.schema.json",
|
|
119
|
+
"pydmconverter/ir/data/VENDORED_SCHEMA.md",
|
|
120
|
+
"pydmconverter/ir/data/widget-registry/qwidget-container.json",
|
|
121
|
+
"pydmconverter/ir/data/widget-registry/rectangle.json",
|
|
122
|
+
"pydmconverter/ir/data/widget-registry/pv-byte-led.json",
|
|
123
|
+
"pydmconverter/ir/data/widget-registry/pv-label.json",
|
|
124
|
+
"pydmconverter/ir/data/widget-registry/pv-button.json",
|
|
125
|
+
"pydmconverter/ir/data/widget-registry/regular-button.json",
|
|
126
|
+
"pydmconverter/ir/data/widget-registry/pv-progress-bar.json",
|
|
127
|
+
"pydmconverter/ir/data/widget-registry/text-label.json",
|
|
128
|
+
"pydmconverter/ir/data/widget-registry/pv-slider.json",
|
|
129
|
+
"pydmconverter/ir/data/widget-registry/tabs.json",
|
|
130
|
+
"pydmconverter/ir/data/widget-registry/ellipse.json",
|
|
131
|
+
"pydmconverter/ir/data/widget-registry/pv-checkbox.json",
|
|
132
|
+
"pydmconverter/ir/data/widget-registry/group-box.json",
|
|
133
|
+
"pydmconverter/ir/data/widget-registry/image-view.json",
|
|
134
|
+
"pydmconverter/ir/data/widget-registry/group.json",
|
|
135
|
+
"pydmconverter/ir/data/widget-registry/pv-enum-combobox.json",
|
|
136
|
+
"pydmconverter/ir/data/widget-registry/line.json",
|
|
137
|
+
"pydmconverter/ir/data/widget-registry/pv-text-input.json",
|
|
138
|
+
"pydmconverter/ir/data/widget-registry/.beaver-snapshot-sha",
|
|
139
|
+
"pydmconverter/ir/data/widget-registry/scroll-area.json",
|
|
140
|
+
"pydmconverter/ir/data/widget-registry/absolute-canvas.json",
|
|
141
|
+
"pydmconverter/ir/data/widget-registry/frame.json",
|
|
142
|
+
"pydmconverter/ir/data/widget-registry/pv-meter.json",
|
|
143
|
+
"pydmconverter/ir/data/widget-registry/arc.json",
|
|
144
|
+
"pydmconverter/ir/data/widget-registry/embedded-display.json",
|
|
145
|
+
"pydmconverter/ir/data/widget-registry/waveform-plot.json",
|
|
146
|
+
"pydmconverter/ir/data/widget-registry/shell-command-button.json",
|
|
147
|
+
"pydmconverter/ir/data/widget-registry/related-display-button.json",
|
|
148
|
+
"pydmconverter/ir/data/widget-registry/pv-radio-group.json",
|
|
149
|
+
"pydmconverter/ir/data/widget-registry/pv-led.json",
|
|
150
|
+
"pydmconverter/ui/__init__.py",
|
|
151
|
+
"pydmconverter/ui/ir_adapter.py",
|
|
152
|
+
"pydmconverter/sites/__init__.py",
|
|
153
|
+
"pydmconverter/sites/slac.py",
|
|
154
|
+
"pydmconverter/edm/__init__.py",
|
|
155
|
+
"pydmconverter/edm/ir_adapter.py",
|
|
156
|
+
"pydmconverter/edm/converter_helpers.py",
|
|
157
|
+
"pydmconverter/edm/menumux.py",
|
|
158
|
+
"pydmconverter/edm/parser.py",
|
|
159
|
+
"pydmconverter/edm/converter.py",
|
|
160
|
+
"pydmconverter/edm/edm_qt.py",
|
|
161
|
+
"pydmconverter/edm/parser_helpers.py",
|
|
162
|
+
"examples/prosilica.edl",
|
|
163
|
+
"examples/TEM_mapping.edl",
|
|
164
|
+
"examples/all_bsy0_main.edl",
|
|
165
|
+
"examples/all_bsy0_main_with_groups.edl",
|
|
166
|
+
".github/ISSUE_TEMPLATE/feature-request.yml",
|
|
167
|
+
".github/ISSUE_TEMPLATE/bug-report.yml",
|
|
168
|
+
".github/workflows/pypi_release.yml",
|
|
169
|
+
".github/workflows/tests.yml",
|
|
170
|
+
".github/workflows/lint.yml",
|
|
171
|
+
".github/workflows/gh-pages.yml"
|
|
172
|
+
]
|
|
173
|
+
}
|
|
@@ -13,6 +13,7 @@ class OptionsModel:
|
|
|
13
13
|
def __init__(self):
|
|
14
14
|
# General options
|
|
15
15
|
self.output_folder = None
|
|
16
|
+
self.override_existing = False
|
|
16
17
|
|
|
17
18
|
# EDM options
|
|
18
19
|
self.edm_override_def_colors = False
|
|
@@ -39,6 +40,9 @@ class OptionsModel:
|
|
|
39
40
|
output_folder = data.get("output_folder", None)
|
|
40
41
|
if output_folder is not None and os.path.exists(output_folder):
|
|
41
42
|
self.output_folder = output_folder
|
|
43
|
+
override_existing = data.get("override_existing", None)
|
|
44
|
+
if override_existing is not None:
|
|
45
|
+
self.override_existing = override_existing
|
|
42
46
|
|
|
43
47
|
# EDM options
|
|
44
48
|
edm_override_def_colors = data.get("edm_override_def_colors", None)
|
|
@@ -61,6 +65,8 @@ class OptionsModel:
|
|
|
61
65
|
# General options
|
|
62
66
|
if self.output_folder is not None:
|
|
63
67
|
data["output_folder"] = self.output_folder
|
|
68
|
+
if self.override_existing is not False:
|
|
69
|
+
data["override_existing"] = self.override_existing
|
|
64
70
|
|
|
65
71
|
# EDM options
|
|
66
72
|
if self.edm_override_def_colors is not False:
|
|
@@ -10,6 +10,7 @@ from time import sleep
|
|
|
10
10
|
from typing import List
|
|
11
11
|
from pydm import Display
|
|
12
12
|
from qtpy.QtCore import Slot, QCoreApplication
|
|
13
|
+
from qtpy.QtGui import QBrush, QColor
|
|
13
14
|
from qtpy.QtWidgets import (
|
|
14
15
|
QFileDialog,
|
|
15
16
|
QTableWidget,
|
|
@@ -27,6 +28,9 @@ import logging
|
|
|
27
28
|
logging.basicConfig(level=logging.INFO)
|
|
28
29
|
logger = logging.getLogger(__name__)
|
|
29
30
|
|
|
31
|
+
CONVERTED_ROW_COLOR = QColor(200, 230, 201)
|
|
32
|
+
FAILED_ROW_COLOR = QColor(255, 205, 210)
|
|
33
|
+
|
|
30
34
|
|
|
31
35
|
class MainWindow(Display):
|
|
32
36
|
def __init__(self, parent=None, args=None, macros=None, ui_filename=None):
|
|
@@ -174,6 +178,17 @@ class MainWindow(Display):
|
|
|
174
178
|
if conversion_status == "Converted":
|
|
175
179
|
table_widget.removeRow(i)
|
|
176
180
|
|
|
181
|
+
def set_row_status(self, row: int, status: str, color: QColor, tooltip: str = "") -> None:
|
|
182
|
+
"""Sets the status cell of a row and colors the whole row"""
|
|
183
|
+
table_widget: QTableWidget = self.ui.table_widget
|
|
184
|
+
status_item = QTableWidgetItem(status)
|
|
185
|
+
status_item.setToolTip(tooltip)
|
|
186
|
+
table_widget.setItem(row, 2, status_item)
|
|
187
|
+
for col in range(table_widget.columnCount()):
|
|
188
|
+
item = table_widget.item(row, col)
|
|
189
|
+
if item is not None:
|
|
190
|
+
item.setBackground(QBrush(color))
|
|
191
|
+
|
|
177
192
|
@Slot()
|
|
178
193
|
def on_convert_button_clicked(self) -> None:
|
|
179
194
|
table_widget: QTableWidget = self.ui.table_widget
|
|
@@ -182,12 +197,14 @@ class MainWindow(Display):
|
|
|
182
197
|
output_file = table_widget.item(row, 1).text()
|
|
183
198
|
file_type = os.path.splitext(input_file)[1].lower()
|
|
184
199
|
try:
|
|
185
|
-
pydmconverter.__main__.run(
|
|
200
|
+
pydmconverter.__main__.run(
|
|
201
|
+
input_file, output_file, file_type, override=self.options_model.override_existing
|
|
202
|
+
)
|
|
186
203
|
logger.debug(f"converted {input_file} to {output_file}")
|
|
187
|
-
|
|
204
|
+
self.set_row_status(row, "Converted", CONVERTED_ROW_COLOR)
|
|
188
205
|
except Exception as msg:
|
|
189
206
|
logger.debug(msg)
|
|
190
|
-
|
|
207
|
+
self.set_row_status(row, "Failed", FAILED_ROW_COLOR, tooltip=str(msg))
|
|
191
208
|
QCoreApplication.processEvents()
|
|
192
209
|
|
|
193
210
|
"""parser = self.app_model.parsers[file_type](input_file)
|
|
@@ -47,12 +47,20 @@ class OptionsWindow(QWidget):
|
|
|
47
47
|
self.output_folder_select = FileSelectWidget(path=self.options_model.output_folder, select_dir=False)
|
|
48
48
|
output_folder_group_layout.addWidget(self.output_folder_select)
|
|
49
49
|
|
|
50
|
+
conversion_group = QGroupBox("Conversion")
|
|
51
|
+
conversion_group_layout = QVBoxLayout()
|
|
52
|
+
conversion_group.setLayout(conversion_group_layout)
|
|
53
|
+
self.override_existing_checkbox = QCheckBox("Overwrite existing output files")
|
|
54
|
+
self.override_existing_checkbox.setChecked(self.options_model.override_existing)
|
|
55
|
+
conversion_group_layout.addWidget(self.override_existing_checkbox)
|
|
56
|
+
|
|
50
57
|
self.general_group_view = QWidget()
|
|
51
58
|
general_group_layout = QVBoxLayout()
|
|
52
59
|
self.general_group_view.setLayout(general_group_layout)
|
|
53
60
|
general_group_label = QLabel("General")
|
|
54
61
|
general_group_layout.addWidget(general_group_label)
|
|
55
62
|
general_group_layout.addWidget(output_folder_group)
|
|
63
|
+
general_group_layout.addWidget(conversion_group)
|
|
56
64
|
general_group_layout.addStretch()
|
|
57
65
|
|
|
58
66
|
edm_colors_group = QGroupBox("colors.list")
|
|
@@ -122,6 +130,7 @@ class OptionsWindow(QWidget):
|
|
|
122
130
|
else:
|
|
123
131
|
QMessageBox.critical(self, "Invalid Path", "The entered output folder path is not valid.")
|
|
124
132
|
return False
|
|
133
|
+
self.options_model.override_existing = self.override_existing_checkbox.isChecked()
|
|
125
134
|
|
|
126
135
|
# EDM options
|
|
127
136
|
colors_path = self.edm_override_file_select.get_path()
|