PyDMConverter 0.0.0__tar.gz → 1.0.2__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (79) hide show
  1. {pydmconverter-0.0.0 → pydmconverter-1.0.2}/PKG-INFO +1 -1
  2. {pydmconverter-0.0.0 → pydmconverter-1.0.2}/PyDMConverter.egg-info/PKG-INFO +1 -1
  3. {pydmconverter-0.0.0 → pydmconverter-1.0.2}/PyDMConverter.egg-info/SOURCES.txt +2 -1
  4. {pydmconverter-0.0.0 → pydmconverter-1.0.2}/PyDMConverter.egg-info/top_level.txt +1 -0
  5. pydmconverter-1.0.2/docs/user_guide.md +73 -0
  6. {pydmconverter-0.0.0 → pydmconverter-1.0.2}/pydmconverter/__main__.py +10 -2
  7. {pydmconverter-0.0.0 → pydmconverter-1.0.2}/pydmconverter/edm/converter.py +2 -0
  8. {pydmconverter-0.0.0 → pydmconverter-1.0.2}/pydmconverter/edm/converter_helpers.py +468 -55
  9. {pydmconverter-0.0.0 → pydmconverter-1.0.2}/pydmconverter/edm/parser.py +2 -1
  10. {pydmconverter-0.0.0 → pydmconverter-1.0.2}/pydmconverter/edm/parser_helpers.py +25 -3
  11. pydmconverter-1.0.2/pydmconverter/launch_gui.sh +32 -0
  12. {pydmconverter-0.0.0 → pydmconverter-1.0.2}/pydmconverter/widgets.py +107 -32
  13. {pydmconverter-0.0.0 → pydmconverter-1.0.2}/pydmconverter/widgets_helpers.py +51 -4
  14. {pydmconverter-0.0.0 → pydmconverter-1.0.2}/pyproject.toml +6 -1
  15. pydmconverter-1.0.2/tests/edm/test_converter.py +223 -0
  16. pydmconverter-1.0.2/tests/edm/test_converter_helpers.py +85 -0
  17. {pydmconverter-0.0.0 → pydmconverter-1.0.2}/tests/edm/test_parser.py +14 -4
  18. {pydmconverter-0.0.0 → pydmconverter-1.0.2}/tests/edm/test_parser_helpers.py +24 -24
  19. pydmconverter-1.0.2/tests/test_main.py +283 -0
  20. {pydmconverter-0.0.0 → pydmconverter-1.0.2}/tests/test_widgets.py +19 -8
  21. {pydmconverter-0.0.0 → pydmconverter-1.0.2}/tests/test_widgets_helpers.py +12 -7
  22. pydmconverter-0.0.0/docs/user_guide.md +0 -43
  23. pydmconverter-0.0.0/launch_gui.sh +0 -26
  24. pydmconverter-0.0.0/tests/edm/test_converter.py +0 -0
  25. pydmconverter-0.0.0/tests/edm/test_converter_helpers.py +0 -0
  26. {pydmconverter-0.0.0 → pydmconverter-1.0.2}/.github/ISSUE_TEMPLATE/bug-report.yml +0 -0
  27. {pydmconverter-0.0.0 → pydmconverter-1.0.2}/.github/ISSUE_TEMPLATE/feature-request.yml +0 -0
  28. {pydmconverter-0.0.0 → pydmconverter-1.0.2}/.github/workflows/gh-pages.yml +0 -0
  29. {pydmconverter-0.0.0 → pydmconverter-1.0.2}/.github/workflows/lint.yml +0 -0
  30. {pydmconverter-0.0.0 → pydmconverter-1.0.2}/.github/workflows/pypi_release.yml +0 -0
  31. {pydmconverter-0.0.0 → pydmconverter-1.0.2}/.github/workflows/tests.yml +0 -0
  32. {pydmconverter-0.0.0 → pydmconverter-1.0.2}/.gitignore +0 -0
  33. {pydmconverter-0.0.0 → pydmconverter-1.0.2}/.pre-commit-config.yaml +0 -0
  34. {pydmconverter-0.0.0 → pydmconverter-1.0.2}/LICENSE +0 -0
  35. {pydmconverter-0.0.0 → pydmconverter-1.0.2}/PyDMConverter.egg-info/dependency_links.txt +0 -0
  36. {pydmconverter-0.0.0 → pydmconverter-1.0.2}/PyDMConverter.egg-info/entry_points.txt +0 -0
  37. {pydmconverter-0.0.0 → pydmconverter-1.0.2}/PyDMConverter.egg-info/requires.txt +0 -0
  38. {pydmconverter-0.0.0 → pydmconverter-1.0.2}/README.md +0 -0
  39. {pydmconverter-0.0.0 → pydmconverter-1.0.2}/app/resources/file_minus.png +0 -0
  40. {pydmconverter-0.0.0 → pydmconverter-1.0.2}/app/resources/file_plus.png +0 -0
  41. {pydmconverter-0.0.0 → pydmconverter-1.0.2}/app/resources/file_x.png +0 -0
  42. {pydmconverter-0.0.0 → pydmconverter-1.0.2}/app/resources/folder_plus.png +0 -0
  43. {pydmconverter-0.0.0 → pydmconverter-1.0.2}/app/resources/folder_search.png +0 -0
  44. {pydmconverter-0.0.0 → pydmconverter-1.0.2}/app/resources/play_circle_outline.png +0 -0
  45. {pydmconverter-0.0.0 → pydmconverter-1.0.2}/app/resources/settings.png +0 -0
  46. {pydmconverter-0.0.0 → pydmconverter-1.0.2}/app/src/model/__init__.py +0 -0
  47. {pydmconverter-0.0.0 → pydmconverter-1.0.2}/app/src/model/app_model.py +0 -0
  48. {pydmconverter-0.0.0 → pydmconverter-1.0.2}/app/src/model/options_model.py +0 -0
  49. {pydmconverter-0.0.0 → pydmconverter-1.0.2}/app/src/view/__init__.py +0 -0
  50. {pydmconverter-0.0.0 → pydmconverter-1.0.2}/app/src/view/file_select_widget.py +0 -0
  51. {pydmconverter-0.0.0 → pydmconverter-1.0.2}/app/src/view/main_window.py +0 -0
  52. {pydmconverter-0.0.0 → pydmconverter-1.0.2}/app/src/view/main_window.ui +0 -0
  53. {pydmconverter-0.0.0 → pydmconverter-1.0.2}/app/src/view/options_window.py +0 -0
  54. {pydmconverter-0.0.0 → pydmconverter-1.0.2}/app/src/view/output_select_dialog.py +0 -0
  55. {pydmconverter-0.0.0 → pydmconverter-1.0.2}/docs/arguments.md +0 -0
  56. {pydmconverter-0.0.0 → pydmconverter-1.0.2}/docs/images/pydmconverter.png +0 -0
  57. {pydmconverter-0.0.0 → pydmconverter-1.0.2}/docs/index.md +0 -0
  58. {pydmconverter-0.0.0 → pydmconverter-1.0.2}/docs/reference/custom_types.md +0 -0
  59. {pydmconverter-0.0.0 → pydmconverter-1.0.2}/docs/reference/edm/converter.md +0 -0
  60. {pydmconverter-0.0.0 → pydmconverter-1.0.2}/docs/reference/edm/converter_helpers.md +0 -0
  61. {pydmconverter-0.0.0 → pydmconverter-1.0.2}/docs/reference/edm/menumux.md +0 -0
  62. {pydmconverter-0.0.0 → pydmconverter-1.0.2}/docs/reference/edm/parser.md +0 -0
  63. {pydmconverter-0.0.0 → pydmconverter-1.0.2}/docs/reference/edm/parser_helpers.md +0 -0
  64. {pydmconverter-0.0.0 → pydmconverter-1.0.2}/docs/reference/index.md +0 -0
  65. {pydmconverter-0.0.0 → pydmconverter-1.0.2}/docs/reference/pydm-converter-tool.md +0 -0
  66. {pydmconverter-0.0.0 → pydmconverter-1.0.2}/docs/reference/widgets.md +0 -0
  67. {pydmconverter-0.0.0 → pydmconverter-1.0.2}/docs/reference/widgets_helpers.md +0 -0
  68. {pydmconverter-0.0.0 → pydmconverter-1.0.2}/environment.yml +0 -0
  69. {pydmconverter-0.0.0 → pydmconverter-1.0.2}/examples/TEM_mapping.edl +0 -0
  70. {pydmconverter-0.0.0 → pydmconverter-1.0.2}/examples/all_bsy0_main.edl +0 -0
  71. {pydmconverter-0.0.0 → pydmconverter-1.0.2}/examples/all_bsy0_main_with_groups.edl +0 -0
  72. {pydmconverter-0.0.0 → pydmconverter-1.0.2}/examples/prosilica.edl +0 -0
  73. {pydmconverter-0.0.0 → pydmconverter-1.0.2}/mkdocs.yml +0 -0
  74. {pydmconverter-0.0.0 → pydmconverter-1.0.2}/pydmconverter/__init__.py +0 -0
  75. {pydmconverter-0.0.0 → pydmconverter-1.0.2}/pydmconverter/custom_types.py +0 -0
  76. {pydmconverter-0.0.0 → pydmconverter-1.0.2}/pydmconverter/edm/__init__.py +0 -0
  77. {pydmconverter-0.0.0 → pydmconverter-1.0.2}/pydmconverter/edm/menumux.py +0 -0
  78. {pydmconverter-0.0.0 → pydmconverter-1.0.2}/setup.cfg +0 -0
  79. {pydmconverter-0.0.0 → pydmconverter-1.0.2}/tests/__init__.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: PyDMConverter
3
- Version: 0.0.0
3
+ Version: 1.0.2
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>
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: PyDMConverter
3
- Version: 0.0.0
3
+ Version: 1.0.2
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>
@@ -3,7 +3,6 @@
3
3
  LICENSE
4
4
  README.md
5
5
  environment.yml
6
- launch_gui.sh
7
6
  mkdocs.yml
8
7
  pyproject.toml
9
8
  .github/ISSUE_TEMPLATE/bug-report.yml
@@ -55,6 +54,7 @@ examples/prosilica.edl
55
54
  pydmconverter/__init__.py
56
55
  pydmconverter/__main__.py
57
56
  pydmconverter/custom_types.py
57
+ pydmconverter/launch_gui.sh
58
58
  pydmconverter/widgets.py
59
59
  pydmconverter/widgets_helpers.py
60
60
  pydmconverter/edm/__init__.py
@@ -64,6 +64,7 @@ pydmconverter/edm/menumux.py
64
64
  pydmconverter/edm/parser.py
65
65
  pydmconverter/edm/parser_helpers.py
66
66
  tests/__init__.py
67
+ tests/test_main.py
67
68
  tests/test_widgets.py
68
69
  tests/test_widgets_helpers.py
69
70
  tests/edm/test_converter.py
@@ -0,0 +1,73 @@
1
+ #Installation
2
+
3
+ ##Prerequisites
4
+
5
+ ## Installation Methods
6
+
7
+ ### Option 1: Install from PyPI (Recommended)
8
+ The easiest way to install the converter is directly from PyPI:
9
+ ``` bash
10
+ pip install PyDMConverter
11
+ ```
12
+
13
+ ### Option 2: Install from Source
14
+ If you need the latest development version or want to contribute:
15
+
16
+ #### Clone the Repository
17
+ ``` bash
18
+ git clone https://github.com/slaclab/pydm-converter-tool.git
19
+ cd pydm-converter-tool
20
+ ```
21
+
22
+ #### Set up Environment
23
+ Using `conda`:
24
+ ``` bash
25
+ conda env create -f environment.yml
26
+ conda activate pydm
27
+ ```
28
+
29
+ Or using pip:
30
+ ``` bash
31
+ pip install -e .
32
+ ```
33
+
34
+ # How to Run the Converter
35
+
36
+ The converter can be run in two ways: via the command line interface (CLI) or through the graphical user interface (GUI).
37
+
38
+ ## Launch the GUI
39
+
40
+ To launch the graphical interface:
41
+ ``` bash
42
+ pydmconverter
43
+ ```
44
+
45
+ This will open the PyDM Converter GUI where you can:
46
+ - Select files or folders to convert
47
+
48
+ ## Command Line Interface
49
+
50
+ The CLI provides two main ways to run the converter: on individual files and entire folders. Users can include additional arguments described on the [Arguments] page.
51
+
52
+ [Arguments]: arguments.md
53
+
54
+ ## For individual files
55
+ When using the converter on a single file, the command line is:
56
+ ``` bash
57
+ pydmconverter '/path/old_file.edl' 'new_file_name.ui' `
58
+ ```
59
+ ## For an entire folder
60
+ When converting an entire folder, the command line is:
61
+ ``` bash
62
+ pydmconverter '/path_to_old_directory' '/new_file_location' 'old_file_type'
63
+ ```
64
+
65
+ ## Examples
66
+ To convert EDM file called "file.edl" to PYDM file called "file.ui" :
67
+ ``` bash
68
+ pydmconverter /afs/slac/g/lcls/edm/file.edl file.ui`
69
+ ```
70
+ To convert EDM files in a folder called "edm" to PYDM file in the current folder :
71
+ ``` bash
72
+ pydmconverter /afs/slac/g/lcls/edm . .edl`
73
+ ```
@@ -17,8 +17,16 @@ def run_gui() -> None:
17
17
  """
18
18
  launch the PyDMConverter gui
19
19
  """
20
- # subprocess.run(["pydm", "--hide-nav-bar", "--hide-menu-bar", "view/main_window.py"])
21
- subprocess.run(["bash", "launch_gui.sh"], check=True)
20
+ # Get the directory where this package is installed
21
+ package_dir = Path(__file__).parent
22
+ launch_script = package_dir / "launch_gui.sh"
23
+
24
+ if not launch_script.exists():
25
+ raise FileNotFoundError(
26
+ f"launch_gui.sh not found at {launch_script}. Please ensure the package was installed correctly."
27
+ )
28
+
29
+ subprocess.run(["bash", str(launch_script)], check=True)
22
30
 
23
31
 
24
32
  def run(input_file, output_file, input_file_type=".edl", override=False, scrollable=False):
@@ -13,6 +13,7 @@ CUSTOM_WIDGET_DEFINITIONS = {
13
13
  "PyDMDrawingEllipse": {"extends": "QWidget", "header": "pydm.widgets.drawing", "container": ""},
14
14
  "PyDMDrawingLine": {"extends": "QWidget", "header": "pydm.widgets.drawing", "container": ""},
15
15
  "PyDMDrawingPolyline": {"extends": "QWidget", "header": "pydm.widgets.drawing", "container": ""},
16
+ "PyDMDrawingIrregularPolygon": {"extends": "QWidget", "header": "pydm.widgets.drawing", "container": ""},
16
17
  "PyDMLabel": {"extends": "QLabel", "header": "pydm.widgets.label", "container": ""},
17
18
  "PyDMEnumComboBox": {"extends": "QComboBox", "header": "pydm.widgets.enum_combo_box", "container": ""},
18
19
  "PyDMPushButton": {"extends": "QPushButton", "header": "pydm.widgets.pushbutton", "container": ""},
@@ -40,6 +41,7 @@ CUSTOM_WIDGET_DEFINITIONS = {
40
41
  "PyDMByteIndicator": {"extends": "QWidget", "header": "pydm.widgets.byte", "container": ""},
41
42
  "PyDMLineEdit": {"extends": "QLineEdit", "header": "pydm.widgets.line_edit", "container": ""},
42
43
  "PyDMDrawingArc": {"extends": "QWidget", "header": "pydm.widgets.drawing", "container": ""},
44
+ "PyDMDrawingPie": {"extends": "QWidget", "header": "pydm.widgets.drawing", "container": ""},
43
45
  "PyDMWaveformPlot": {"extends": "QWidget", "header": "pydm.widgets.waveformplot", "container": ""},
44
46
  "PyDMScaleIndicator": {"extends": "QWidget", "header": "pydm.widgets.scale", "container": ""},
45
47
  "PyDMShellCommand": {"extends": "QPushButton", "header": "pydm.widgets.shell_command", "container": ""},