digsim-logic-simulator 0.2.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 digsim-logic-simulator might be problematic. Click here for more details.

Files changed (118) hide show
  1. {digsim-logic-simulator-0.2.0/src/digsim_logic_simulator.egg-info → digsim-logic-simulator-0.4.0}/PKG-INFO +1 -1
  2. {digsim-logic-simulator-0.2.0 → digsim-logic-simulator-0.4.0}/pyproject.toml +43 -40
  3. {digsim-logic-simulator-0.2.0 → digsim-logic-simulator-0.4.0}/src/digsim/__init__.py +1 -1
  4. {digsim-logic-simulator-0.2.0 → digsim-logic-simulator-0.4.0}/src/digsim/app/__main__.py +1 -1
  5. {digsim-logic-simulator-0.2.0 → digsim-logic-simulator-0.4.0}/src/digsim/app/gui/__init__.py +1 -1
  6. {digsim-logic-simulator-0.2.0 → digsim-logic-simulator-0.4.0}/src/digsim/app/gui/_circuit_area.py +1 -6
  7. {digsim-logic-simulator-0.2.0 → digsim-logic-simulator-0.4.0}/src/digsim/app/gui/_component_selection.py +1 -3
  8. {digsim-logic-simulator-0.2.0 → digsim-logic-simulator-0.4.0}/src/digsim/app/gui/_main_window.py +1 -3
  9. {digsim-logic-simulator-0.2.0 → digsim-logic-simulator-0.4.0}/src/digsim/app/gui/_top_bar.py +1 -4
  10. {digsim-logic-simulator-0.2.0 → digsim-logic-simulator-0.4.0}/src/digsim/app/gui/_warning_dialog.py +1 -3
  11. {digsim-logic-simulator-0.2.0 → digsim-logic-simulator-0.4.0}/src/digsim/app/gui_objects/__init__.py +1 -1
  12. {digsim-logic-simulator-0.2.0 → digsim-logic-simulator-0.4.0}/src/digsim/app/gui_objects/_bus_bit_object.py +2 -5
  13. {digsim-logic-simulator-0.2.0 → digsim-logic-simulator-0.4.0}/src/digsim/app/gui_objects/_buzzer_object.py +4 -2
  14. {digsim-logic-simulator-0.2.0 → digsim-logic-simulator-0.4.0}/src/digsim/app/gui_objects/_component_context_menu.py +2 -2
  15. {digsim-logic-simulator-0.2.0 → digsim-logic-simulator-0.4.0}/src/digsim/app/gui_objects/_component_object.py +2 -7
  16. {digsim-logic-simulator-0.2.0 → digsim-logic-simulator-0.4.0}/src/digsim/app/gui_objects/_component_port_item.py +1 -1
  17. {digsim-logic-simulator-0.2.0 → digsim-logic-simulator-0.4.0}/src/digsim/app/gui_objects/_dip_switch_object.py +2 -5
  18. {digsim-logic-simulator-0.2.0 → digsim-logic-simulator-0.4.0}/src/digsim/app/gui_objects/_gui_note_object.py +1 -1
  19. {digsim-logic-simulator-0.2.0 → digsim-logic-simulator-0.4.0}/src/digsim/app/gui_objects/_gui_object_factory.py +1 -1
  20. {digsim-logic-simulator-0.2.0 → digsim-logic-simulator-0.4.0}/src/digsim/app/gui_objects/_hexdigit_object.py +1 -1
  21. {digsim-logic-simulator-0.2.0 → digsim-logic-simulator-0.4.0}/src/digsim/app/gui_objects/_image_objects.py +2 -4
  22. {digsim-logic-simulator-0.2.0 → digsim-logic-simulator-0.4.0}/src/digsim/app/gui_objects/_label_object.py +1 -1
  23. {digsim-logic-simulator-0.2.0 → digsim-logic-simulator-0.4.0}/src/digsim/app/gui_objects/_logic_analyzer_object.py +1 -2
  24. {digsim-logic-simulator-0.2.0 → digsim-logic-simulator-0.4.0}/src/digsim/app/gui_objects/_seven_segment_object.py +2 -4
  25. {digsim-logic-simulator-0.2.0 → digsim-logic-simulator-0.4.0}/src/digsim/app/gui_objects/_shortcut_objects.py +2 -4
  26. {digsim-logic-simulator-0.2.0 → digsim-logic-simulator-0.4.0}/src/digsim/app/gui_objects/_yosys_object.py +1 -1
  27. {digsim-logic-simulator-0.2.0 → digsim-logic-simulator-0.4.0}/src/digsim/app/model/__init__.py +1 -1
  28. {digsim-logic-simulator-0.2.0 → digsim-logic-simulator-0.4.0}/src/digsim/app/model/_model.py +2 -4
  29. {digsim-logic-simulator-0.2.0 → digsim-logic-simulator-0.4.0}/src/digsim/app/model/_model_objects.py +1 -3
  30. {digsim-logic-simulator-0.2.0 → digsim-logic-simulator-0.4.0}/src/digsim/app/settings/__init__.py +1 -1
  31. {digsim-logic-simulator-0.2.0 → digsim-logic-simulator-0.4.0}/src/digsim/app/settings/_component_settings.py +1 -3
  32. {digsim-logic-simulator-0.2.0 → digsim-logic-simulator-0.4.0}/src/digsim/app/settings/_gui_settings.py +1 -3
  33. {digsim-logic-simulator-0.2.0 → digsim-logic-simulator-0.4.0}/src/digsim/app/settings/_shortcut_dialog.py +1 -3
  34. {digsim-logic-simulator-0.2.0 → digsim-logic-simulator-0.4.0}/src/digsim/circuit/__init__.py +1 -1
  35. {digsim-logic-simulator-0.2.0 → digsim-logic-simulator-0.4.0}/src/digsim/circuit/_circuit.py +1 -4
  36. {digsim-logic-simulator-0.2.0 → digsim-logic-simulator-0.4.0}/src/digsim/circuit/_waves_writer.py +1 -4
  37. {digsim-logic-simulator-0.2.0 → digsim-logic-simulator-0.4.0}/src/digsim/circuit/components/__init__.py +1 -1
  38. {digsim-logic-simulator-0.2.0 → digsim-logic-simulator-0.4.0}/src/digsim/circuit/components/_button.py +1 -1
  39. {digsim-logic-simulator-0.2.0 → digsim-logic-simulator-0.4.0}/src/digsim/circuit/components/_buzzer.py +1 -1
  40. {digsim-logic-simulator-0.2.0 → digsim-logic-simulator-0.4.0}/src/digsim/circuit/components/_clock.py +1 -1
  41. {digsim-logic-simulator-0.2.0 → digsim-logic-simulator-0.4.0}/src/digsim/circuit/components/_dip_switch.py +1 -1
  42. {digsim-logic-simulator-0.2.0 → digsim-logic-simulator-0.4.0}/src/digsim/circuit/components/_gates.py +2 -4
  43. {digsim-logic-simulator-0.2.0 → digsim-logic-simulator-0.4.0}/src/digsim/circuit/components/_hexdigit.py +1 -1
  44. {digsim-logic-simulator-0.2.0 → digsim-logic-simulator-0.4.0}/src/digsim/circuit/components/_ic.py +1 -0
  45. {digsim-logic-simulator-0.2.0 → digsim-logic-simulator-0.4.0}/src/digsim/circuit/components/_label_wire.py +1 -1
  46. {digsim-logic-simulator-0.2.0 → digsim-logic-simulator-0.4.0}/src/digsim/circuit/components/_led.py +1 -1
  47. {digsim-logic-simulator-0.2.0 → digsim-logic-simulator-0.4.0}/src/digsim/circuit/components/_logic_analyzer.py +1 -1
  48. {digsim-logic-simulator-0.2.0 → digsim-logic-simulator-0.4.0}/src/digsim/circuit/components/_on_off_switch.py +1 -1
  49. {digsim-logic-simulator-0.2.0 → digsim-logic-simulator-0.4.0}/src/digsim/circuit/components/_seven_segment.py +2 -1
  50. {digsim-logic-simulator-0.2.0 → digsim-logic-simulator-0.4.0}/src/digsim/circuit/components/_static_level.py +1 -1
  51. {digsim-logic-simulator-0.2.0 → digsim-logic-simulator-0.4.0}/src/digsim/circuit/components/_static_value.py +1 -1
  52. {digsim-logic-simulator-0.2.0 → digsim-logic-simulator-0.4.0}/src/digsim/circuit/components/_yosys_atoms.py +1 -6
  53. {digsim-logic-simulator-0.2.0 → digsim-logic-simulator-0.4.0}/src/digsim/circuit/components/_yosys_component.py +1 -4
  54. {digsim-logic-simulator-0.2.0 → digsim-logic-simulator-0.4.0}/src/digsim/circuit/components/atoms/__init__.py +1 -1
  55. {digsim-logic-simulator-0.2.0 → digsim-logic-simulator-0.4.0}/src/digsim/circuit/components/atoms/_component.py +2 -5
  56. {digsim-logic-simulator-0.2.0 → digsim-logic-simulator-0.4.0}/src/digsim/circuit/components/atoms/_port.py +2 -4
  57. {digsim-logic-simulator-0.2.0 → digsim-logic-simulator-0.4.0}/src/digsim/synth/__init__.py +1 -1
  58. {digsim-logic-simulator-0.2.0 → digsim-logic-simulator-0.4.0}/src/digsim/synth/__main__.py +1 -1
  59. {digsim-logic-simulator-0.2.0 → digsim-logic-simulator-0.4.0}/src/digsim/synth/_synthesis.py +25 -10
  60. {digsim-logic-simulator-0.2.0 → digsim-logic-simulator-0.4.0}/src/digsim/utils/__init__.py +1 -1
  61. {digsim-logic-simulator-0.2.0 → digsim-logic-simulator-0.4.0/src/digsim_logic_simulator.egg-info}/PKG-INFO +1 -1
  62. {digsim-logic-simulator-0.2.0 → digsim-logic-simulator-0.4.0}/tests/test_gates.py +12 -11
  63. {digsim-logic-simulator-0.2.0 → digsim-logic-simulator-0.4.0}/tests/test_yosys_aldff.py +2 -2
  64. {digsim-logic-simulator-0.2.0 → digsim-logic-simulator-0.4.0}/tests/test_yosys_dff.py +2 -2
  65. {digsim-logic-simulator-0.2.0 → digsim-logic-simulator-0.4.0}/tests/test_yosys_dlatch.py +2 -2
  66. {digsim-logic-simulator-0.2.0 → digsim-logic-simulator-0.4.0}/tests/test_yosys_gates.py +2 -2
  67. {digsim-logic-simulator-0.2.0 → digsim-logic-simulator-0.4.0}/tests/test_yosys_latch.py +2 -2
  68. {digsim-logic-simulator-0.2.0 → digsim-logic-simulator-0.4.0}/tests/test_yosys_netlist.py +2 -1
  69. {digsim-logic-simulator-0.2.0 → digsim-logic-simulator-0.4.0}/tests/test_yosys_sdff.py +2 -2
  70. {digsim-logic-simulator-0.2.0 → digsim-logic-simulator-0.4.0}/tests/test_yosys_sr.py +3 -5
  71. {digsim-logic-simulator-0.2.0 → digsim-logic-simulator-0.4.0}/tests/test_yosys_synth.py +9 -7
  72. {digsim-logic-simulator-0.2.0 → digsim-logic-simulator-0.4.0}/LICENSE.md +0 -0
  73. {digsim-logic-simulator-0.2.0 → digsim-logic-simulator-0.4.0}/MANIFEST.in +0 -0
  74. {digsim-logic-simulator-0.2.0 → digsim-logic-simulator-0.4.0}/README.md +0 -0
  75. {digsim-logic-simulator-0.2.0 → digsim-logic-simulator-0.4.0}/setup.cfg +0 -0
  76. {digsim-logic-simulator-0.2.0 → digsim-logic-simulator-0.4.0}/src/digsim/app/gui/_utils.py +0 -0
  77. {digsim-logic-simulator-0.2.0 → digsim-logic-simulator-0.4.0}/src/digsim/app/gui_objects/images/AND.png +0 -0
  78. {digsim-logic-simulator-0.2.0 → digsim-logic-simulator-0.4.0}/src/digsim/app/gui_objects/images/Analyzer.png +0 -0
  79. {digsim-logic-simulator-0.2.0 → digsim-logic-simulator-0.4.0}/src/digsim/app/gui_objects/images/BUF.png +0 -0
  80. {digsim-logic-simulator-0.2.0 → digsim-logic-simulator-0.4.0}/src/digsim/app/gui_objects/images/Buzzer.png +0 -0
  81. {digsim-logic-simulator-0.2.0 → digsim-logic-simulator-0.4.0}/src/digsim/app/gui_objects/images/Clock.png +0 -0
  82. {digsim-logic-simulator-0.2.0 → digsim-logic-simulator-0.4.0}/src/digsim/app/gui_objects/images/DFF.png +0 -0
  83. {digsim-logic-simulator-0.2.0 → digsim-logic-simulator-0.4.0}/src/digsim/app/gui_objects/images/DIP_SWITCH.png +0 -0
  84. {digsim-logic-simulator-0.2.0 → digsim-logic-simulator-0.4.0}/src/digsim/app/gui_objects/images/FlipFlop.png +0 -0
  85. {digsim-logic-simulator-0.2.0 → digsim-logic-simulator-0.4.0}/src/digsim/app/gui_objects/images/IC.png +0 -0
  86. {digsim-logic-simulator-0.2.0 → digsim-logic-simulator-0.4.0}/src/digsim/app/gui_objects/images/LED_OFF.png +0 -0
  87. {digsim-logic-simulator-0.2.0 → digsim-logic-simulator-0.4.0}/src/digsim/app/gui_objects/images/LED_ON.png +0 -0
  88. {digsim-logic-simulator-0.2.0 → digsim-logic-simulator-0.4.0}/src/digsim/app/gui_objects/images/MUX.png +0 -0
  89. {digsim-logic-simulator-0.2.0 → digsim-logic-simulator-0.4.0}/src/digsim/app/gui_objects/images/NAND.png +0 -0
  90. {digsim-logic-simulator-0.2.0 → digsim-logic-simulator-0.4.0}/src/digsim/app/gui_objects/images/NOR.png +0 -0
  91. {digsim-logic-simulator-0.2.0 → digsim-logic-simulator-0.4.0}/src/digsim/app/gui_objects/images/NOT.png +0 -0
  92. {digsim-logic-simulator-0.2.0 → digsim-logic-simulator-0.4.0}/src/digsim/app/gui_objects/images/ONE.png +0 -0
  93. {digsim-logic-simulator-0.2.0 → digsim-logic-simulator-0.4.0}/src/digsim/app/gui_objects/images/OR.png +0 -0
  94. {digsim-logic-simulator-0.2.0 → digsim-logic-simulator-0.4.0}/src/digsim/app/gui_objects/images/PB.png +0 -0
  95. {digsim-logic-simulator-0.2.0 → digsim-logic-simulator-0.4.0}/src/digsim/app/gui_objects/images/Switch_OFF.png +0 -0
  96. {digsim-logic-simulator-0.2.0 → digsim-logic-simulator-0.4.0}/src/digsim/app/gui_objects/images/Switch_ON.png +0 -0
  97. {digsim-logic-simulator-0.2.0 → digsim-logic-simulator-0.4.0}/src/digsim/app/gui_objects/images/XNOR.png +0 -0
  98. {digsim-logic-simulator-0.2.0 → digsim-logic-simulator-0.4.0}/src/digsim/app/gui_objects/images/XOR.png +0 -0
  99. {digsim-logic-simulator-0.2.0 → digsim-logic-simulator-0.4.0}/src/digsim/app/gui_objects/images/YOSYS.png +0 -0
  100. {digsim-logic-simulator-0.2.0 → digsim-logic-simulator-0.4.0}/src/digsim/app/gui_objects/images/ZERO.png +0 -0
  101. {digsim-logic-simulator-0.2.0 → digsim-logic-simulator-0.4.0}/src/digsim/app/images/app_icon.png +0 -0
  102. {digsim-logic-simulator-0.2.0 → digsim-logic-simulator-0.4.0}/src/digsim/app/model/_model_components.py +0 -0
  103. {digsim-logic-simulator-0.2.0 → digsim-logic-simulator-0.4.0}/src/digsim/app/model/_model_new_wire.py +0 -0
  104. {digsim-logic-simulator-0.2.0 → digsim-logic-simulator-0.4.0}/src/digsim/app/model/_model_settings.py +0 -0
  105. {digsim-logic-simulator-0.2.0 → digsim-logic-simulator-0.4.0}/src/digsim/app/model/_model_shortcuts.py +0 -0
  106. {digsim-logic-simulator-0.2.0 → digsim-logic-simulator-0.4.0}/src/digsim/circuit/components/_bus_bits.py +0 -0
  107. {digsim-logic-simulator-0.2.0 → digsim-logic-simulator-0.4.0}/src/digsim/circuit/components/_flip_flops.py +0 -0
  108. {digsim-logic-simulator-0.2.0 → digsim-logic-simulator-0.4.0}/src/digsim/circuit/components/_mem64kbyte.py +0 -0
  109. {digsim-logic-simulator-0.2.0 → digsim-logic-simulator-0.4.0}/src/digsim/circuit/components/_memstdout.py +0 -0
  110. {digsim-logic-simulator-0.2.0 → digsim-logic-simulator-0.4.0}/src/digsim/circuit/components/_note.py +0 -0
  111. {digsim-logic-simulator-0.2.0 → digsim-logic-simulator-0.4.0}/src/digsim/circuit/components/atoms/_digsim_exception.py +0 -0
  112. {digsim-logic-simulator-0.2.0 → digsim-logic-simulator-0.4.0}/src/digsim/circuit/components/ic/74162.json +0 -0
  113. {digsim-logic-simulator-0.2.0 → digsim-logic-simulator-0.4.0}/src/digsim/circuit/components/ic/7448.json +0 -0
  114. {digsim-logic-simulator-0.2.0 → digsim-logic-simulator-0.4.0}/src/digsim/utils/_yosys_netlist.py +0 -0
  115. {digsim-logic-simulator-0.2.0 → digsim-logic-simulator-0.4.0}/src/digsim_logic_simulator.egg-info/SOURCES.txt +0 -0
  116. {digsim-logic-simulator-0.2.0 → digsim-logic-simulator-0.4.0}/src/digsim_logic_simulator.egg-info/dependency_links.txt +0 -0
  117. {digsim-logic-simulator-0.2.0 → digsim-logic-simulator-0.4.0}/src/digsim_logic_simulator.egg-info/requires.txt +0 -0
  118. {digsim-logic-simulator-0.2.0 → digsim-logic-simulator-0.4.0}/src/digsim_logic_simulator.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: digsim-logic-simulator
3
- Version: 0.2.0
3
+ Version: 0.4.0
4
4
  Summary: Interactive Digital Logic Simulator
5
5
  Author-email: Fredrik Andersson <freand@gmail.com>
6
6
  Maintainer-email: Fredrik Andersson <freand@gmail.com>
@@ -5,7 +5,7 @@ build-backend = "setuptools.build_meta"
5
5
  [project]
6
6
  name = "digsim-logic-simulator"
7
7
  description = "Interactive Digital Logic Simulator"
8
- version = "0.2.0"
8
+ version = "0.4.0"
9
9
  authors = [{name = "Fredrik Andersson", email = "freand@gmail.com"}]
10
10
  maintainers = [{name = "Fredrik Andersson", email = "freand@gmail.com"}]
11
11
  readme = "README.md"
@@ -34,46 +34,49 @@ dependencies = [
34
34
 
35
35
  keywords = ["educational", "simulation", "digital"]
36
36
 
37
- [tool.black]
37
+ [tool.ruff]
38
38
  line-length = 99
39
+ target-version = "py38"
39
40
 
40
- [tool.isort]
41
- line_length = 99
42
- lines_after_imports = 2
43
- multi_line_output = 3
44
- indent = 4
45
- default_section = "FIRSTPARTY"
46
- include_trailing_comma = true
47
- known_qt = "PySide6"
48
- known_thirdparty = ["vcd", "utilities", "qtawesome"]
49
- sections = [
50
- "FUTURE",
51
- "STDLIB",
52
- "THIRDPARTY",
53
- "QT",
54
- "FIRSTPARTY",
55
- "LOCALFOLDER",
56
- ]
41
+ show-fixes = true
42
+ output-format = "full"
43
+
44
+ src = ["src"]
45
+ namespace-packages = ["src/digsim"]
46
+
47
+ [tool.ruff.lint]
48
+ # "extend" here adds to the ruff defaults, rather than replacing.
49
+ # Q = flake8-quotes, TID = flake8-tidy-imports, I = isort, FA = flake8-future-annotations
50
+ extend-select = ["Q", "TID", "I", "FA"]
51
+ # E501 = "line too long". Handled by black.
52
+ extend-ignore = ["E501"]
53
+
54
+ [tool.ruff.lint.per-file-ignores]
55
+ "__init__.py" = ["F401"]
57
56
 
58
- [tool.pylint.'MESSAGES CONTROL']
59
- max-line-length = 99
60
- disable = """
61
- no-member,
62
- invalid-name,
63
- duplicate-code,
64
- """
65
- ignored-modules = """
66
- pexpect,
67
- pytest,
68
- PySide6,
69
- qtawesome
70
- """
57
+ [tool.ruff.lint.flake8-tidy-imports]
58
+ ban-relative-imports = "parents"
59
+
60
+ [tool.ruff.lint.isort]
61
+ lines-after-imports = 2
62
+
63
+ known-third-party = [
64
+ "pexpect",
65
+ "pytest",
66
+ "pyvcd",
67
+ "qtawesome",
68
+ "yowasp-yosys",
69
+ ]
70
+ section-order = [
71
+ "future",
72
+ "standard-library",
73
+ "third-party",
74
+ "PySide6",
75
+ "pyqtgraph",
76
+ "first-party",
77
+ "local-folder",
78
+ ]
71
79
 
72
- [tool.flake8]
73
- ignore = ['W503']
74
- max-line-length = 99
75
- exclude = """
76
- build,
77
- .venv,
78
- .nox,
79
- """
80
+ [tool.ruff.lint.isort.sections]
81
+ "PySide6" = ["PySide6"]
82
+ "pyqtgraph" = ["pyqtgraph"]
@@ -1,6 +1,6 @@
1
1
  # Copyright (c) Fredrik Andersson, 2023
2
2
  # All rights reserved
3
3
 
4
- """ All classes within digsim namespace """
4
+ """All classes within digsim namespace"""
5
5
 
6
6
  from .circuit import Circuit # noqa: F401
@@ -1,7 +1,7 @@
1
1
  # Copyright (c) Fredrik Andersson, 2023
2
2
  # All rights reserved
3
3
 
4
- """ The main class module of the digsim.app namespace """
4
+ """The main class module of the digsim.app namespace"""
5
5
 
6
6
  import argparse
7
7
  import sys
@@ -1,6 +1,6 @@
1
1
  # Copyright (c) Fredrik Andersson, 2023
2
2
  # All rights reserved
3
3
 
4
- """ All classes within digsim.app.gui namespace """
4
+ """All classes within digsim.app.gui namespace"""
5
5
 
6
6
  from ._main_window import MainWindow # noqa: F401
@@ -1,12 +1,8 @@
1
- # Copyright (c) Fredrik Andersson, 2023
1
+ # Copyright (c) Fredrik Andersson, 2023-2024
2
2
  # All rights reserved
3
3
 
4
4
  """The circuit area and component widget"""
5
5
 
6
- # pylint: disable=unused-argument
7
- # pylint: disable=useless-parent-delegation
8
- # pylint: disable=too-few-public-methods
9
-
10
6
  from functools import partial
11
7
 
12
8
  from PySide6.QtCore import QPoint, QPointF, QRect, QRectF, Qt, QTimer
@@ -23,7 +19,6 @@ from digsim.app.settings import ComponentSettingsDialog
23
19
 
24
20
 
25
21
  class WirePartGraphicsItem(QGraphicsRectItem):
26
-
27
22
  """A part of a wire graphcis item"""
28
23
 
29
24
  CLOSE_TO_WIRE_MARGIN = 10
@@ -1,10 +1,8 @@
1
- # Copyright (c) Fredrik Andersson, 2023
1
+ # Copyright (c) Fredrik Andersson, 2023-2024
2
2
  # All rights reserved
3
3
 
4
4
  """Module for the component selection classes"""
5
5
 
6
- # pylint: disable=too-few-public-methods
7
-
8
6
  from functools import partial
9
7
 
10
8
  from PySide6.QtCore import QMimeData, QSize, Qt, QTimer
@@ -1,10 +1,8 @@
1
- # Copyright (c) Fredrik Andersson, 2023
1
+ # Copyright (c) Fredrik Andersson, 2023-2024
2
2
  # All rights reserved
3
3
 
4
4
  """The main window and widgets of the digsim gui application"""
5
5
 
6
- # pylint: disable=too-few-public-methods
7
-
8
6
  from PySide6.QtCore import Qt
9
7
  from PySide6.QtGui import QKeySequence, QShortcut
10
8
  from PySide6.QtWidgets import (
@@ -1,11 +1,8 @@
1
- # Copyright (c) Fredrik Andersson, 2023
1
+ # Copyright (c) Fredrik Andersson, 2023-2024
2
2
  # All rights reserved
3
3
 
4
4
  """The top bar of the main window/gui application"""
5
5
 
6
- # pylint: disable=too-few-public-methods
7
- # pylint: disable=too-many-instance-attributes
8
-
9
6
  from pathlib import Path
10
7
 
11
8
  import qtawesome as qta
@@ -1,10 +1,8 @@
1
- # Copyright (c) Fredrik Andersson, 2023
1
+ # Copyright (c) Fredrik Andersson, 2023-2024
2
2
  # All rights reserved
3
3
 
4
4
  """A warning dialog"""
5
5
 
6
- # pylint: disable=too-few-public-methods
7
-
8
6
  from PySide6.QtCore import QSize, Qt
9
7
  from PySide6.QtWidgets import (
10
8
  QDialog,
@@ -1,7 +1,7 @@
1
1
  # Copyright (c) Fredrik Andersson, 2023
2
2
  # All rights reserved
3
3
 
4
- """ All classes within digsim.app.gui_object namespace """
4
+ """All classes within digsim.app.gui_object namespace"""
5
5
 
6
6
  from ._component_object import ComponentObject # noqa: F401
7
7
  from ._gui_object_factory import get_class_by_name as class_factory # noqa: F401
@@ -1,7 +1,7 @@
1
- # Copyright (c) Fredrik Andersson, 2023
1
+ # Copyright (c) Fredrik Andersson, 2023-2024
2
2
  # All rights reserved
3
3
 
4
- """ A hexdigit component placed in the GUI """
4
+ """A hexdigit component placed in the GUI"""
5
5
 
6
6
  from PySide6.QtCore import QPoint, QSize, Qt
7
7
  from PySide6.QtGui import QPen
@@ -9,9 +9,6 @@ from PySide6.QtGui import QPen
9
9
  from ._component_object import ComponentObject
10
10
 
11
11
 
12
- # pylint: disable=too-many-arguments
13
-
14
-
15
12
  class BusBitsObject(ComponentObject):
16
13
  """The class for a bus/bit component placed in the GUI"""
17
14
 
@@ -1,7 +1,7 @@
1
1
  # Copyright (c) Fredrik Andersson, 2023
2
2
  # All rights reserved
3
3
 
4
- """ A buzzer component object """
4
+ """A buzzer component object"""
5
5
 
6
6
  from math import pi, sin
7
7
  from struct import pack
@@ -66,7 +66,7 @@ class BuzzerObject(ImageObjectWithActiveRect):
66
66
  self.audio_sink = None
67
67
  self._app_model.sig_audio_start.connect(self._audio_start)
68
68
  self._app_model.sig_audio_notify.connect(self._audio_notify)
69
-
69
+ self.device = None
70
70
  devices = QMediaDevices.audioOutputs()
71
71
  if len(devices) == 0:
72
72
  return
@@ -89,6 +89,8 @@ class BuzzerObject(ImageObjectWithActiveRect):
89
89
  self._play(component.active)
90
90
 
91
91
  def _play(self, active):
92
+ if self.device is None:
93
+ return
92
94
  if active:
93
95
  self.audio_sink = QAudioSink(self.device, self.audio_format)
94
96
  self.audio_sink.setVolume(0.1)
@@ -1,7 +1,7 @@
1
1
  # Copyright (c) Fredrik Andersson, 2023
2
2
  # All rights reserved
3
3
 
4
- """ A component context menu """
4
+ """A component context menu"""
5
5
 
6
6
  from PySide6.QtGui import QAction
7
7
  from PySide6.QtWidgets import QMenu
@@ -58,7 +58,7 @@ class ComponentContextMenu(QMenu):
58
58
  return self._menu_action.text() if self._menu_action is not None else ""
59
59
 
60
60
  def _delete(self):
61
- self._component_object.select(True)
61
+ self._component_object.setSelected(True)
62
62
  self._app_model.objects.delete_selected()
63
63
 
64
64
  def _raise(self):
@@ -1,12 +1,7 @@
1
- # Copyright (c) Fredrik Andersson, 2023
1
+ # Copyright (c) Fredrik Andersson, 2023-2024
2
2
  # All rights reserved
3
3
 
4
- """ A component placed in the GUI """
5
-
6
- # pylint: disable=unused-argument
7
- # pylint: disable=too-many-public-methods
8
- # pylint: disable=too-many-instance-attributes
9
- # pylint: disable=too-many-arguments
4
+ """A component placed in the GUI"""
10
5
 
11
6
  import abc
12
7
 
@@ -1,7 +1,7 @@
1
1
  # Copyright (c) Fredrik Andersson, 2023
2
2
  # All rights reserved
3
3
 
4
- """ A component port graphics item """
4
+ """A component port graphics item"""
5
5
 
6
6
  from PySide6.QtCore import QRect, Qt
7
7
  from PySide6.QtGui import QBrush, QPen
@@ -1,7 +1,7 @@
1
- # Copyright (c) Fredrik Andersson, 2023
1
+ # Copyright (c) Fredrik Andersson, 2023-2024
2
2
  # All rights reserved
3
3
 
4
- """ A hexdigit component placed in the GUI """
4
+ """A hexdigit component placed in the GUI"""
5
5
 
6
6
  from PySide6.QtCore import QPoint, QRect, Qt
7
7
  from PySide6.QtGui import QFont, QPen
@@ -9,9 +9,6 @@ from PySide6.QtGui import QFont, QPen
9
9
  from ._image_objects import ImageObject
10
10
 
11
11
 
12
- # pylint: disable=too-many-arguments
13
-
14
-
15
12
  class DipSwitchObject(ImageObject):
16
13
  """The class for a bus/bit component placed in the GUI"""
17
14
 
@@ -1,7 +1,7 @@
1
1
  # Copyright (c) Fredrik Andersson, 2023
2
2
  # All rights reserved
3
3
 
4
- """ A GUI note object """
4
+ """A GUI note object"""
5
5
 
6
6
  from PySide6.QtCore import QPoint, QRect, Qt
7
7
  from PySide6.QtGui import QFont, QFontMetrics, QPen
@@ -1,7 +1,7 @@
1
1
  # Copyright (c) Fredrik Andersson, 2023
2
2
  # All rights reserved
3
3
 
4
- """ A GUI component object factory module """
4
+ """A GUI component object factory module"""
5
5
 
6
6
  from digsim.circuit.components.atoms import DigsimException
7
7
 
@@ -1,7 +1,7 @@
1
1
  # Copyright (c) Fredrik Andersson, 2023
2
2
  # All rights reserved
3
3
 
4
- """ A hexdigit component placed in the GUI """
4
+ """A hexdigit component placed in the GUI"""
5
5
 
6
6
  from ._component_object import ComponentObject
7
7
  from ._seven_segment_object import SevenSegmentObject
@@ -1,9 +1,7 @@
1
- # Copyright (c) Fredrik Andersson, 2023
1
+ # Copyright (c) Fredrik Andersson, 2023-2024
2
2
  # All rights reserved
3
3
 
4
- """ A component with an image as symbol the GUI """
5
-
6
- # pylint: disable=too-many-arguments
4
+ """A component with an image as symbol the GUI"""
7
5
 
8
6
  from pathlib import Path
9
7
 
@@ -1,7 +1,7 @@
1
1
  # Copyright (c) Fredrik Andersson, 2023
2
2
  # All rights reserved
3
3
 
4
- """ A label component placed in the GUI """
4
+ """A label component placed in the GUI"""
5
5
 
6
6
  from PySide6.QtCore import QPoint, QRect, Qt
7
7
  from PySide6.QtGui import QPen, QPolygon
@@ -1,7 +1,7 @@
1
1
  # Copyright (c) Fredrik Andersson, 2023
2
2
  # All rights reserved
3
3
 
4
- """ A Logic Analyzer component placed in the GUI """
4
+ """A Logic Analyzer component placed in the GUI"""
5
5
 
6
6
  from PySide6.QtCore import QPoint, QRect, Qt
7
7
  from PySide6.QtGui import QPainterPath, QPen
@@ -23,7 +23,6 @@ class LogicAnalyzerObject(ImageObject):
23
23
  self.update_ports()
24
24
 
25
25
  def paint_component(self, painter):
26
-
27
26
  self.paint_component_base(painter)
28
27
  painter.setBrush(Qt.SolidPattern)
29
28
  painter.setBrush(Qt.black)
@@ -1,9 +1,7 @@
1
- # Copyright (c) Fredrik Andersson, 2023
1
+ # Copyright (c) Fredrik Andersson, 2023-2024
2
2
  # All rights reserved
3
3
 
4
- """ A 7-segment component placed in the GUI """
5
-
6
- # pylint: disable=too-many-arguments
4
+ """A 7-segment component placed in the GUI"""
7
5
 
8
6
  from PySide6.QtCore import QPoint, Qt
9
7
  from PySide6.QtGui import QPainterPath
@@ -1,9 +1,7 @@
1
- # Copyright (c) Fredrik Andersson, 2023
1
+ # Copyright (c) Fredrik Andersson, 2023-2024
2
2
  # All rights reserved
3
3
 
4
- """ A button component with an image as symbol the GUI """
5
-
6
- # pylint: disable=too-few-public-methods
4
+ """A button component with an image as symbol the GUI"""
7
5
 
8
6
  from functools import partial
9
7
 
@@ -1,7 +1,7 @@
1
1
  # Copyright (c) Fredrik Andersson, 2023
2
2
  # All rights reserved
3
3
 
4
- """ A yosys component with an image as symbol the GUI """
4
+ """A yosys component with an image as symbol the GUI"""
5
5
 
6
6
  from PySide6.QtGui import QAction
7
7
 
@@ -1,6 +1,6 @@
1
1
  # Copyright (c) Fredrik Andersson, 2023
2
2
  # All rights reserved
3
3
 
4
- """ All classes within digsim.app.model namespace """
4
+ """All classes within digsim.app.model namespace"""
5
5
 
6
6
  from ._model import AppModel # noqa: F401
@@ -1,9 +1,7 @@
1
- # Copyright (c) Fredrik Andersson, 2023
1
+ # Copyright (c) Fredrik Andersson, 2023-2024
2
2
  # All rights reserved
3
3
 
4
- """ An application model for a GUI simulated circuit """
5
-
6
- # pylint: disable=too-many-instance-attributes
4
+ """An application model for a GUI simulated circuit"""
7
5
 
8
6
  import json
9
7
  import queue
@@ -1,10 +1,8 @@
1
- # Copyright (c) Fredrik Andersson, 2023
1
+ # Copyright (c) Fredrik Andersson, 2023-2024
2
2
  # All rights reserved
3
3
 
4
4
  """Handle objects in the model"""
5
5
 
6
- # pylint: disable=too-many-public-methods
7
-
8
6
  from digsim.circuit import Circuit
9
7
  from digsim.circuit.components.atoms import DigsimException
10
8
 
@@ -1,7 +1,7 @@
1
1
  # Copyright (c) Fredrik Andersson, 2023
2
2
  # All rights reserved
3
3
 
4
- """ All classes within digsim.app.settings namespace """
4
+ """All classes within digsim.app.settings namespace"""
5
5
 
6
6
  from ._component_settings import ComponentSettingsDialog # noqa: F401
7
7
  from ._gui_settings import GuiSettingsDialog # noqa: F401
@@ -1,10 +1,8 @@
1
- # Copyright (c) Fredrik Andersson, 2023
1
+ # Copyright (c) Fredrik Andersson, 2023-2024
2
2
  # All rights reserved
3
3
 
4
4
  """The component settings dialog(s)"""
5
5
 
6
- # pylint: disable=too-many-branches
7
-
8
6
  import pathlib
9
7
 
10
8
  from PySide6.QtCore import Qt, Signal
@@ -1,10 +1,8 @@
1
- # Copyright (c) Fredrik Andersson, 2023
1
+ # Copyright (c) Fredrik Andersson, 2023-2024
2
2
  # All rights reserved
3
3
 
4
4
  """The GUI settings dialog"""
5
5
 
6
- # pylint: disable=too-few-public-methods
7
-
8
6
  from PySide6.QtCore import Qt
9
7
  from PySide6.QtWidgets import QCheckBox, QComboBox, QDialog, QDialogButtonBox, QGridLayout, QLabel
10
8
 
@@ -1,10 +1,8 @@
1
- # Copyright (c) Fredrik Andersson, 2023
1
+ # Copyright (c) Fredrik Andersson, 2023-2024
2
2
  # All rights reserved
3
3
 
4
4
  """The shurtcut dialog"""
5
5
 
6
- # pylint: disable=too-few-public-methods
7
-
8
6
  from PySide6.QtCore import Qt
9
7
  from PySide6.QtWidgets import QComboBox, QDialog, QDialogButtonBox, QLabel, QVBoxLayout
10
8
 
@@ -1,7 +1,7 @@
1
1
  # Copyright (c) Fredrik Andersson, 2023
2
2
  # All rights reserved
3
3
 
4
- """ All classes within digsim.circuit namespace """
4
+ """All classes within digsim.circuit namespace"""
5
5
 
6
6
  from ._circuit import Circuit # noqa: F401
7
7
  from .components import PortConnectionError # noqa: F401
@@ -1,13 +1,10 @@
1
- # Copyright (c) Fredrik Andersson, 2023
1
+ # Copyright (c) Fredrik Andersson, 2023-2024
2
2
  # All rights reserved
3
3
 
4
4
  """
5
5
  Module that handles the circuit simulation of components
6
6
  """
7
7
 
8
- # pylint: disable=too-many-public-methods
9
- # pylint: disable=too-many-arguments
10
-
11
8
  import json
12
9
  import os
13
10
 
@@ -1,13 +1,10 @@
1
- # Copyright (c) Fredrik Andersson, 2023
1
+ # Copyright (c) Fredrik Andersson, 2023-2024
2
2
  # All rights reserved
3
3
 
4
4
  """
5
5
  Module that handles the creation of vcd files
6
6
  """
7
7
 
8
- # pylint: disable=consider-using-with
9
- # pylint: disable=import-error
10
-
11
8
  from vcd import VCDWriter
12
9
 
13
10
 
@@ -1,7 +1,7 @@
1
1
  # Copyright (c) Fredrik Andersson, 2023
2
2
  # All rights reserved
3
3
 
4
- """ All classes within digsim.circuit.components namespace """
4
+ """All classes within digsim.circuit.components namespace"""
5
5
 
6
6
  from ._bus_bits import Bus2Wires, Wires2Bus # noqa: F401
7
7
  from ._button import PushButton # noqa: F401
@@ -1,7 +1,7 @@
1
1
  # Copyright (c) Fredrik Andersson, 2023
2
2
  # All rights reserved
3
3
 
4
- """ A PushButton component """
4
+ """A PushButton component"""
5
5
 
6
6
  import logging
7
7
 
@@ -1,7 +1,7 @@
1
1
  # Copyright (c) Fredrik Andersson, 2023
2
2
  # All rights reserved
3
3
 
4
- """ Module with the Buzzer component """
4
+ """Module with the Buzzer component"""
5
5
 
6
6
  from .atoms import CallbackComponent, PortIn
7
7
 
@@ -1,7 +1,7 @@
1
1
  # Copyright (c) Fredrik Andersson, 2023
2
2
  # All rights reserved
3
3
 
4
- """ Clock component module """
4
+ """Clock component module"""
5
5
 
6
6
  from .atoms import CallbackComponent, PortOutDelta, PortOutImmediate
7
7
 
@@ -1,7 +1,7 @@
1
1
  # Copyright (c) Fredrik Andersson, 2023
2
2
  # All rights reserved
3
3
 
4
- """ A Dip-switch component """
4
+ """A Dip-switch component"""
5
5
 
6
6
  from .atoms import CallbackComponent, PortOutImmediate
7
7
 
@@ -1,9 +1,7 @@
1
- # Copyright (c) Fredrik Andersson, 2023
1
+ # Copyright (c) Fredrik Andersson, 2023-2024
2
2
  # All rights reserved
3
3
 
4
- """ Module with the basic logic gates """
5
-
6
- # pylint: disable=too-many-arguments
4
+ """Module with the basic logic gates"""
7
5
 
8
6
  import math
9
7
 
@@ -1,7 +1,7 @@
1
1
  # Copyright (c) Fredrik Andersson, 2023
2
2
  # All rights reserved
3
3
 
4
- """ HexDigit component module """
4
+ """HexDigit component module"""
5
5
 
6
6
  from .atoms import CallbackComponent, PortIn
7
7