peakrdl-python 0.9.3__tar.gz → 0.9.4__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 (148) hide show
  1. {peakrdl_python-0.9.3 → peakrdl_python-0.9.4}/.github/workflows/action.yaml +5 -7
  2. {peakrdl_python-0.9.3 → peakrdl_python-0.9.4}/PKG-INFO +2 -5
  3. {peakrdl_python-0.9.3 → peakrdl_python-0.9.4}/pyproject.toml +1 -4
  4. {peakrdl_python-0.9.3 → peakrdl_python-0.9.4}/src/peakrdl_python/__about__.py +1 -1
  5. {peakrdl_python-0.9.3 → peakrdl_python-0.9.4}/src/peakrdl_python/lib/async_memory.py +37 -56
  6. {peakrdl_python-0.9.3 → peakrdl_python-0.9.4}/src/peakrdl_python/lib/async_register_and_field.py +54 -88
  7. {peakrdl_python-0.9.3 → peakrdl_python-0.9.4}/src/peakrdl_python/lib/callbacks.py +86 -107
  8. {peakrdl_python-0.9.3 → peakrdl_python-0.9.4}/src/peakrdl_python/lib/memory.py +34 -54
  9. {peakrdl_python-0.9.3 → peakrdl_python-0.9.4}/src/peakrdl_python/lib/register_and_field.py +46 -75
  10. peakrdl_python-0.9.4/src/peakrdl_python/sim_lib/_callbacks.py +79 -0
  11. {peakrdl_python-0.9.3 → peakrdl_python-0.9.4}/src/peakrdl_python/sim_lib/memory.py +2 -8
  12. {peakrdl_python-0.9.3 → peakrdl_python-0.9.4}/src/peakrdl_python/sim_lib/register.py +4 -14
  13. {peakrdl_python-0.9.3 → peakrdl_python-0.9.4}/src/peakrdl_python/systemrdl_node_utility_functions.py +9 -19
  14. {peakrdl_python-0.9.3 → peakrdl_python-0.9.4}/src/peakrdl_python/templates/addrmap_simulation_tb.py.jinja +2 -6
  15. {peakrdl_python-0.9.3 → peakrdl_python-0.9.4}/src/peakrdl_python/templates/addrmap_tb.py.jinja +2 -6
  16. {peakrdl_python-0.9.3 → peakrdl_python-0.9.4}/src/peakrdl_python.egg-info/PKG-INFO +2 -5
  17. {peakrdl_python-0.9.3 → peakrdl_python-0.9.4}/src/peakrdl_python.egg-info/requires.txt +0 -3
  18. {peakrdl_python-0.9.3 → peakrdl_python-0.9.4}/tests/testcases/name_clash.rdl +2 -0
  19. peakrdl_python-0.9.3/src/peakrdl_python/sim_lib/_callbacks.py +0 -95
  20. {peakrdl_python-0.9.3 → peakrdl_python-0.9.4}/.gitignore +0 -0
  21. {peakrdl_python-0.9.3 → peakrdl_python-0.9.4}/.readthedocs.yaml +0 -0
  22. {peakrdl_python-0.9.3 → peakrdl_python-0.9.4}/LICENSE +0 -0
  23. {peakrdl_python-0.9.3 → peakrdl_python-0.9.4}/MANIFEST.in +0 -0
  24. {peakrdl_python-0.9.3 → peakrdl_python-0.9.4}/README.md +0 -0
  25. {peakrdl_python-0.9.3 → peakrdl_python-0.9.4}/docs/api.rst +0 -0
  26. {peakrdl_python-0.9.3 → peakrdl_python-0.9.4}/docs/api_components.rst +0 -0
  27. {peakrdl_python-0.9.3 → peakrdl_python-0.9.4}/docs/command_line.rst +0 -0
  28. {peakrdl_python-0.9.3 → peakrdl_python-0.9.4}/docs/conf.py +0 -0
  29. {peakrdl_python-0.9.3 → peakrdl_python-0.9.4}/docs/customisation.rst +0 -0
  30. {peakrdl_python-0.9.3 → peakrdl_python-0.9.4}/docs/design_decisions.rst +0 -0
  31. {peakrdl_python-0.9.3 → peakrdl_python-0.9.4}/docs/design_tools.rst +0 -0
  32. {peakrdl_python-0.9.3 → peakrdl_python-0.9.4}/docs/generated_package.rst +0 -0
  33. {peakrdl_python-0.9.3 → peakrdl_python-0.9.4}/docs/genindex.rst +0 -0
  34. {peakrdl_python-0.9.3 → peakrdl_python-0.9.4}/docs/index.rst +0 -0
  35. {peakrdl_python-0.9.3 → peakrdl_python-0.9.4}/docs/installation.rst +0 -0
  36. {peakrdl_python-0.9.3 → peakrdl_python-0.9.4}/docs/requirements.txt +0 -0
  37. {peakrdl_python-0.9.3 → peakrdl_python-0.9.4}/example/array_access/array_access.rdl +0 -0
  38. {peakrdl_python-0.9.3 → peakrdl_python-0.9.4}/example/array_access/demo_array_access.py +0 -0
  39. {peakrdl_python-0.9.3 → peakrdl_python-0.9.4}/example/enumerated_fields/demo_enumerated_fields.py +0 -0
  40. {peakrdl_python-0.9.3 → peakrdl_python-0.9.4}/example/enumerated_fields/enumerated_fields.rdl +0 -0
  41. {peakrdl_python-0.9.3 → peakrdl_python-0.9.4}/example/optimised_access/demo_optimised_access.py +0 -0
  42. {peakrdl_python-0.9.3 → peakrdl_python-0.9.4}/example/optimised_access/demo_optimised_array_access.py +0 -0
  43. {peakrdl_python-0.9.3 → peakrdl_python-0.9.4}/example/optimised_access/optimised_access.rdl +0 -0
  44. {peakrdl_python-0.9.3 → peakrdl_python-0.9.4}/example/optimised_access/optimised_array_access.rdl +0 -0
  45. {peakrdl_python-0.9.3 → peakrdl_python-0.9.4}/example/overridden_names/demo_over_ridden_names.py +0 -0
  46. {peakrdl_python-0.9.3 → peakrdl_python-0.9.4}/example/overridden_names/overridden_names.rdl +0 -0
  47. {peakrdl_python-0.9.3 → peakrdl_python-0.9.4}/example/simulating_callbacks/chip_with_a_GPIO.rdl +0 -0
  48. {peakrdl_python-0.9.3 → peakrdl_python-0.9.4}/example/simulating_callbacks/flashing_the_LED.py +0 -0
  49. {peakrdl_python-0.9.3 → peakrdl_python-0.9.4}/example/tranversing_address_map/chip_with_registers.rdl +0 -0
  50. {peakrdl_python-0.9.3 → peakrdl_python-0.9.4}/example/tranversing_address_map/dumping_register_state_to_json_file.py +0 -0
  51. {peakrdl_python-0.9.3 → peakrdl_python-0.9.4}/example/tranversing_address_map/reg_dump.json +0 -0
  52. {peakrdl_python-0.9.3 → peakrdl_python-0.9.4}/example/tranversing_address_map/reseting_registers.py +0 -0
  53. {peakrdl_python-0.9.3 → peakrdl_python-0.9.4}/example/tranversing_address_map/writing_register_state_from_json_file.py +0 -0
  54. {peakrdl_python-0.9.3 → peakrdl_python-0.9.4}/example/user_defined_properties/demo_user_defined_properties.py +0 -0
  55. {peakrdl_python-0.9.3 → peakrdl_python-0.9.4}/example/user_defined_properties/user_defined_properties.rdl +0 -0
  56. {peakrdl_python-0.9.3 → peakrdl_python-0.9.4}/example/why_ral/__init__.py +0 -0
  57. {peakrdl_python-0.9.3 → peakrdl_python-0.9.4}/example/why_ral/gpio.rdl +0 -0
  58. {peakrdl_python-0.9.3 → peakrdl_python-0.9.4}/example/why_ral/with_hal.py +0 -0
  59. {peakrdl_python-0.9.3 → peakrdl_python-0.9.4}/example/why_ral/with_ral.py +0 -0
  60. {peakrdl_python-0.9.3 → peakrdl_python-0.9.4}/example/why_ral/without_ral.py +0 -0
  61. {peakrdl_python-0.9.3 → peakrdl_python-0.9.4}/generate_and_test.py +0 -0
  62. {peakrdl_python-0.9.3 → peakrdl_python-0.9.4}/generate_testcases.py +0 -0
  63. {peakrdl_python-0.9.3 → peakrdl_python-0.9.4}/setup.cfg +0 -0
  64. {peakrdl_python-0.9.3 → peakrdl_python-0.9.4}/src/peakrdl_python/.coveragerc +0 -0
  65. {peakrdl_python-0.9.3 → peakrdl_python-0.9.4}/src/peakrdl_python/__init__.py +0 -0
  66. {peakrdl_python-0.9.3 → peakrdl_python-0.9.4}/src/peakrdl_python/__peakrdl__.py +0 -0
  67. {peakrdl_python-0.9.3 → peakrdl_python-0.9.4}/src/peakrdl_python/_node_walkers.py +0 -0
  68. {peakrdl_python-0.9.3 → peakrdl_python-0.9.4}/src/peakrdl_python/compiler_udp.py +0 -0
  69. {peakrdl_python-0.9.3 → peakrdl_python-0.9.4}/src/peakrdl_python/exporter.py +0 -0
  70. {peakrdl_python-0.9.3 → peakrdl_python-0.9.4}/src/peakrdl_python/lib/__init__.py +0 -0
  71. {peakrdl_python-0.9.3 → peakrdl_python-0.9.4}/src/peakrdl_python/lib/base.py +0 -0
  72. {peakrdl_python-0.9.3 → peakrdl_python-0.9.4}/src/peakrdl_python/lib/base_field.py +0 -0
  73. {peakrdl_python-0.9.3 → peakrdl_python-0.9.4}/src/peakrdl_python/lib/base_register.py +0 -0
  74. {peakrdl_python-0.9.3 → peakrdl_python-0.9.4}/src/peakrdl_python/lib/utility_functions.py +0 -0
  75. {peakrdl_python-0.9.3 → peakrdl_python-0.9.4}/src/peakrdl_python/safe_name_utility.py +0 -0
  76. {peakrdl_python-0.9.3 → peakrdl_python-0.9.4}/src/peakrdl_python/sim_lib/__init__.py +0 -0
  77. {peakrdl_python-0.9.3 → peakrdl_python-0.9.4}/src/peakrdl_python/sim_lib/base.py +0 -0
  78. {peakrdl_python-0.9.3 → peakrdl_python-0.9.4}/src/peakrdl_python/sim_lib/dummy_callbacks.py +0 -0
  79. {peakrdl_python-0.9.3 → peakrdl_python-0.9.4}/src/peakrdl_python/sim_lib/field.py +0 -0
  80. {peakrdl_python-0.9.3 → peakrdl_python-0.9.4}/src/peakrdl_python/sim_lib/simulator.py +0 -0
  81. {peakrdl_python-0.9.3 → peakrdl_python-0.9.4}/src/peakrdl_python/templates/__init__.py +0 -0
  82. {peakrdl_python-0.9.3 → peakrdl_python-0.9.4}/src/peakrdl_python/templates/addrmap.py.jinja +0 -0
  83. {peakrdl_python-0.9.3 → peakrdl_python-0.9.4}/src/peakrdl_python/templates/addrmap_field.py.jinja +0 -0
  84. {peakrdl_python-0.9.3 → peakrdl_python-0.9.4}/src/peakrdl_python/templates/addrmap_memory.py.jinja +0 -0
  85. {peakrdl_python-0.9.3 → peakrdl_python-0.9.4}/src/peakrdl_python/templates/addrmap_register.py.jinja +0 -0
  86. {peakrdl_python-0.9.3 → peakrdl_python-0.9.4}/src/peakrdl_python/templates/addrmap_simulation.py.jinja +0 -0
  87. {peakrdl_python-0.9.3 → peakrdl_python-0.9.4}/src/peakrdl_python/templates/addrmap_udp_property.py.jinja +0 -0
  88. {peakrdl_python-0.9.3 → peakrdl_python-0.9.4}/src/peakrdl_python/templates/baseclass_simulation_tb.py.jinja +0 -0
  89. {peakrdl_python-0.9.3 → peakrdl_python-0.9.4}/src/peakrdl_python/templates/baseclass_tb.py.jinja +0 -0
  90. {peakrdl_python-0.9.3 → peakrdl_python-0.9.4}/src/peakrdl_python/templates/example.py.jinja +0 -0
  91. {peakrdl_python-0.9.3 → peakrdl_python-0.9.4}/src/peakrdl_python/templates/header.py.jinja +0 -0
  92. {peakrdl_python-0.9.3 → peakrdl_python-0.9.4}/src/peakrdl_python/templates/header_tb.py.jinja +0 -0
  93. {peakrdl_python-0.9.3 → peakrdl_python-0.9.4}/src/peakrdl_python/templates/reg_definitions.py.jinja +0 -0
  94. {peakrdl_python-0.9.3 → peakrdl_python-0.9.4}/src/peakrdl_python/templates/sim_addrmap.py.jinja +0 -0
  95. {peakrdl_python-0.9.3 → peakrdl_python-0.9.4}/src/peakrdl_python.egg-info/SOURCES.txt +0 -0
  96. {peakrdl_python-0.9.3 → peakrdl_python-0.9.4}/src/peakrdl_python.egg-info/dependency_links.txt +0 -0
  97. {peakrdl_python-0.9.3 → peakrdl_python-0.9.4}/src/peakrdl_python.egg-info/entry_points.txt +0 -0
  98. {peakrdl_python-0.9.3 → peakrdl_python-0.9.4}/src/peakrdl_python.egg-info/top_level.txt +0 -0
  99. {peakrdl_python-0.9.3 → peakrdl_python-0.9.4}/tests/.mypy.ini +0 -0
  100. {peakrdl_python-0.9.3 → peakrdl_python-0.9.4}/tests/alternative_templates/header.py.jinja +0 -0
  101. {peakrdl_python-0.9.3 → peakrdl_python-0.9.4}/tests/alternative_templates/header_tb.py.jinja +0 -0
  102. {peakrdl_python-0.9.3 → peakrdl_python-0.9.4}/tests/alternative_templates_dynamic/header.py.jinja +0 -0
  103. {peakrdl_python-0.9.3 → peakrdl_python-0.9.4}/tests/alternative_templates_dynamic/header_tb.py.jinja +0 -0
  104. {peakrdl_python-0.9.3 → peakrdl_python-0.9.4}/tests/alternative_templates_dynamic_toml/header_check.py +0 -0
  105. {peakrdl_python-0.9.3 → peakrdl_python-0.9.4}/tests/alternative_templates_dynamic_toml/peakrdl.toml +0 -0
  106. {peakrdl_python-0.9.3 → peakrdl_python-0.9.4}/tests/alternative_templates_toml/header_check.py +0 -0
  107. {peakrdl_python-0.9.3 → peakrdl_python-0.9.4}/tests/alternative_templates_toml/peakrdl.toml +0 -0
  108. {peakrdl_python-0.9.3 → peakrdl_python-0.9.4}/tests/pylint.rc +0 -0
  109. {peakrdl_python-0.9.3 → peakrdl_python-0.9.4}/tests/testcases/RDLFormatCode_example.rdl +0 -0
  110. {peakrdl_python-0.9.3 → peakrdl_python-0.9.4}/tests/testcases/addr_map.rdl +0 -0
  111. {peakrdl_python-0.9.3 → peakrdl_python-0.9.4}/tests/testcases/all_register_access_types.rdl +0 -0
  112. {peakrdl_python-0.9.3 → peakrdl_python-0.9.4}/tests/testcases/basic.rdl +0 -0
  113. {peakrdl_python-0.9.3 → peakrdl_python-0.9.4}/tests/testcases/block_a.xml +0 -0
  114. {peakrdl_python-0.9.3 → peakrdl_python-0.9.4}/tests/testcases/block_b.xml +0 -0
  115. {peakrdl_python-0.9.3 → peakrdl_python-0.9.4}/tests/testcases/different_array_types.rdl +0 -0
  116. {peakrdl_python-0.9.3 → peakrdl_python-0.9.4}/tests/testcases/enum_example.rdl +0 -0
  117. {peakrdl_python-0.9.3 → peakrdl_python-0.9.4}/tests/testcases/example_issue_106.rdl +0 -0
  118. {peakrdl_python-0.9.3 → peakrdl_python-0.9.4}/tests/testcases/extended_memories.rdl +0 -0
  119. {peakrdl_python-0.9.3 → peakrdl_python-0.9.4}/tests/testcases/extended_sizes_registers_array.rdl +0 -0
  120. {peakrdl_python-0.9.3 → peakrdl_python-0.9.4}/tests/testcases/field_scope.rdl +0 -0
  121. {peakrdl_python-0.9.3 → peakrdl_python-0.9.4}/tests/testcases/field_with_overridden_reset.rdl +0 -0
  122. {peakrdl_python-0.9.3 → peakrdl_python-0.9.4}/tests/testcases/fields_with_HW_write.rdl +0 -0
  123. {peakrdl_python-0.9.3 → peakrdl_python-0.9.4}/tests/testcases/fields_with_reset_values.rdl +0 -0
  124. {peakrdl_python-0.9.3 → peakrdl_python-0.9.4}/tests/testcases/hidden_property.rdl +0 -0
  125. {peakrdl_python-0.9.3 → peakrdl_python-0.9.4}/tests/testcases/memories.rdl +0 -0
  126. {peakrdl_python-0.9.3 → peakrdl_python-0.9.4}/tests/testcases/memories_with_registers.rdl +0 -0
  127. {peakrdl_python-0.9.3 → peakrdl_python-0.9.4}/tests/testcases/msb0_and_lsb0.rdl +0 -0
  128. {peakrdl_python-0.9.3 → peakrdl_python-0.9.4}/tests/testcases/multi_block.rdl +0 -0
  129. {peakrdl_python-0.9.3 → peakrdl_python-0.9.4}/tests/testcases/multifile.rdl +0 -0
  130. {peakrdl_python-0.9.3 → peakrdl_python-0.9.4}/tests/testcases/overridden_python_name.rdl +0 -0
  131. {peakrdl_python-0.9.3 → peakrdl_python-0.9.4}/tests/testcases/parametrised_readonly_and_readwrite.rdl +0 -0
  132. {peakrdl_python-0.9.3 → peakrdl_python-0.9.4}/tests/testcases/regfile_and_arrays.rdl +0 -0
  133. {peakrdl_python-0.9.3 → peakrdl_python-0.9.4}/tests/testcases/reserved_elements.rdl +0 -0
  134. {peakrdl_python-0.9.3 → peakrdl_python-0.9.4}/tests/testcases/same_but_different_enum.rdl +0 -0
  135. {peakrdl_python-0.9.3 → peakrdl_python-0.9.4}/tests/testcases/signals_definitions_at_various_levels.rdl +0 -0
  136. {peakrdl_python-0.9.3 → peakrdl_python-0.9.4}/tests/testcases/simple.rdl +0 -0
  137. {peakrdl_python-0.9.3 → peakrdl_python-0.9.4}/tests/testcases/simple.xml +0 -0
  138. {peakrdl_python-0.9.3 → peakrdl_python-0.9.4}/tests/testcases/simulator_test.rdl +0 -0
  139. {peakrdl_python-0.9.3 → peakrdl_python-0.9.4}/tests/testcases/sizes_registers.rdl +0 -0
  140. {peakrdl_python-0.9.3 → peakrdl_python-0.9.4}/tests/testcases/sizes_registers_array.rdl +0 -0
  141. {peakrdl_python-0.9.3 → peakrdl_python-0.9.4}/tests/testcases/user_defined_properties.rdl +0 -0
  142. {peakrdl_python-0.9.3 → peakrdl_python-0.9.4}/tests/testcases/write_only_enum_with_undefined_reset.rdl +0 -0
  143. {peakrdl_python-0.9.3 → peakrdl_python-0.9.4}/tests/unit_tests/__init__.py +0 -0
  144. {peakrdl_python-0.9.3 → peakrdl_python-0.9.4}/tests/unit_tests/simple_components.py +0 -0
  145. {peakrdl_python-0.9.3 → peakrdl_python-0.9.4}/tests/unit_tests/test_array_indexing.py +0 -0
  146. {peakrdl_python-0.9.3 → peakrdl_python-0.9.4}/tests/unit_tests/test_export.py +0 -0
  147. {peakrdl_python-0.9.3 → peakrdl_python-0.9.4}/tests/unit_tests/test_optimised_reg_array.py +0 -0
  148. {peakrdl_python-0.9.3 → peakrdl_python-0.9.4}/tests/unit_tests/test_reg.py +0 -0
@@ -71,7 +71,7 @@ jobs:
71
71
  runs-on: ubuntu-latest
72
72
  strategy:
73
73
  matrix:
74
- python-version: [ 3.7, 3.8, 3.9, "3.10", "3.11", "3.12", "3.13" ]
74
+ python-version: [ 3.9, "3.10", "3.11", "3.12", "3.13" ]
75
75
 
76
76
  steps:
77
77
  - uses: actions/checkout@v4
@@ -101,7 +101,7 @@ jobs:
101
101
  runs-on: ubuntu-latest
102
102
  strategy:
103
103
  matrix:
104
- python-version: [ 3.7, 3.8, 3.9, "3.10", "3.11", "3.12", "3.13" ]
104
+ python-version: [ 3.9, "3.10", "3.11", "3.12", "3.13" ]
105
105
 
106
106
  steps:
107
107
  - uses: actions/checkout@v4
@@ -150,7 +150,7 @@ jobs:
150
150
  runs-on: ubuntu-latest
151
151
  strategy:
152
152
  matrix:
153
- python-version: [ 3.7, 3.8, 3.9, "3.10", "3.11", "3.12", "3.13" ]
153
+ python-version: [ 3.9, "3.10", "3.11", "3.12", "3.13" ]
154
154
 
155
155
  steps:
156
156
  - uses: actions/checkout@v4
@@ -252,7 +252,7 @@ jobs:
252
252
  runs-on: ubuntu-latest
253
253
  strategy:
254
254
  matrix:
255
- python-version: [3.7, 3.8, 3.9, "3.10", "3.11", "3.12", "3.13"]
255
+ python-version: [3.9, "3.10", "3.11", "3.12", "3.13"]
256
256
 
257
257
  steps:
258
258
  - uses: actions/checkout@v4
@@ -291,9 +291,7 @@ jobs:
291
291
  runs-on: ubuntu-latest
292
292
  strategy:
293
293
  matrix:
294
- # reduced matrix because the autoformatter was having issues with python 3.8 so we will
295
- # limit this to modern versions of python only
296
- python-version: [3.8, 3.9, "3.10", "3.11", "3.12", "3.13"]
294
+ python-version: [3.9, "3.10", "3.11", "3.12", "3.13"]
297
295
 
298
296
  steps:
299
297
  - uses: actions/checkout@v4
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: peakrdl-python
3
- Version: 0.9.3
3
+ Version: 0.9.4
4
4
  Summary: Generate Python Register Access Layer (RAL) from SystemRDL
5
5
  Author: Keith Brady
6
6
  License: GNU GENERAL PUBLIC LICENSE
@@ -686,8 +686,6 @@ Keywords: SystemRDL,PeakRDL,CSR,compiler,tool,registers,generator,Python
686
686
  Classifier: Development Status :: 4 - Beta
687
687
  Classifier: Programming Language :: Python
688
688
  Classifier: Programming Language :: Python :: 3
689
- Classifier: Programming Language :: Python :: 3.7
690
- Classifier: Programming Language :: Python :: 3.8
691
689
  Classifier: Programming Language :: Python :: 3.9
692
690
  Classifier: Programming Language :: Python :: 3.10
693
691
  Classifier: Programming Language :: Python :: 3.11
@@ -698,12 +696,11 @@ Classifier: Intended Audience :: Developers
698
696
  Classifier: License :: OSI Approved :: GNU General Public License v3 (GPLv3)
699
697
  Classifier: Operating System :: OS Independent
700
698
  Classifier: Topic :: Scientific/Engineering :: Electronic Design Automation (EDA)
701
- Requires-Python: >=3.7
699
+ Requires-Python: >=3.9
702
700
  Description-Content-Type: text/markdown
703
701
  License-File: LICENSE
704
702
  Requires-Dist: systemrdl-compiler>=1.25.0
705
703
  Requires-Dist: jinja2
706
- Requires-Dist: asynctest; python_version < "3.8"
707
704
  Requires-Dist: typing-extensions; python_version < "3.11"
708
705
  Provides-Extra: dev
709
706
  Requires-Dist: mypy; extra == "dev"
@@ -5,11 +5,10 @@ build-backend = "setuptools.build_meta"
5
5
  [project]
6
6
  name = "peakrdl-python"
7
7
  dynamic = ["version"]
8
- requires-python = ">=3.7"
8
+ requires-python = ">=3.9"
9
9
  dependencies = [
10
10
  "systemrdl-compiler>=1.25.0",
11
11
  "jinja2",
12
- "asynctest;python_version<'3.8'",
13
12
  "typing-extensions;python_version<'3.11'"
14
13
  ]
15
14
 
@@ -27,8 +26,6 @@ classifiers = [
27
26
  "Development Status :: 4 - Beta",
28
27
  "Programming Language :: Python",
29
28
  "Programming Language :: Python :: 3",
30
- "Programming Language :: Python :: 3.7",
31
- "Programming Language :: Python :: 3.8",
32
29
  "Programming Language :: Python :: 3.9",
33
30
  "Programming Language :: Python :: 3.10",
34
31
  "Programming Language :: Python :: 3.11",
@@ -17,4 +17,4 @@ along with this program. If not, see <https://www.gnu.org/licenses/>.
17
17
 
18
18
  Variables that describes the peakrdl-python Package
19
19
  """
20
- __version__ = "0.9.3"
20
+ __version__ = "0.9.4"
@@ -177,14 +177,12 @@ class _MemoryAsyncReadOnly(AsyncMemory, ABC):
177
177
  read_callback = self._callbacks.read_callback
178
178
 
179
179
  if read_block_callback is not None:
180
- # python 3.7 doesn't have the callback defined as protocol so mypy doesn't recognise
181
- # the arguments in the call back functions
182
180
  addr = self.address_lookup(entry=start_entry)
183
181
  data_read = \
184
- await read_block_callback(addr=addr, # type: ignore[call-arg]
185
- width=self.width, # type: ignore[call-arg]
186
- accesswidth=self.width, # type: ignore[call-arg]
187
- length=number_entries) # type: ignore[call-arg]
182
+ await read_block_callback(addr=addr,
183
+ width=self.width,
184
+ accesswidth=self.width,
185
+ length=number_entries)
188
186
 
189
187
  if isinstance(self._callbacks, AsyncCallbackSet):
190
188
  if not isinstance(data_read, List):
@@ -204,11 +202,10 @@ class _MemoryAsyncReadOnly(AsyncMemory, ABC):
204
202
 
205
203
  for entry in range(number_entries):
206
204
  entry_address = self.address_lookup(entry=start_entry+entry)
207
- # python 3.7 doesn't have the callback defined as protocol so mypy doesn't
208
- # recognise the arguments in the call back functions
209
- data_entry = await read_callback(addr=entry_address, # type: ignore[call-arg]
210
- width=self.width, # type: ignore[call-arg]
211
- accesswidth=self.width) # type: ignore[call-arg]
205
+
206
+ data_entry = await read_callback(addr=entry_address,
207
+ width=self.width,
208
+ accesswidth=self.width)
212
209
 
213
210
  data_read[entry] = data_entry
214
211
 
@@ -248,14 +245,12 @@ class _MemoryAsyncReadOnly(AsyncMemory, ABC):
248
245
  read_callback = self._callbacks.read_callback
249
246
 
250
247
  if read_block_callback is not None:
251
- # python 3.7 doesn't have the callback defined as protocol so mypy doesn't recognise
252
- # the arguments in the call back functions
253
248
  addr = self.address_lookup(entry=start_entry)
254
249
  data_read = \
255
- await read_block_callback(addr=addr, # type: ignore[call-arg]
256
- width=self.width, # type: ignore[call-arg]
257
- accesswidth=self.width, # type: ignore[call-arg]
258
- length=number_entries) # type: ignore[call-arg]
250
+ await read_block_callback(addr=addr,
251
+ width=self.width,
252
+ accesswidth=self.width,
253
+ length=number_entries)
259
254
 
260
255
  if isinstance(self._callbacks, AsyncCallbackSet):
261
256
  if not isinstance(data_read, List):
@@ -275,11 +270,9 @@ class _MemoryAsyncReadOnly(AsyncMemory, ABC):
275
270
 
276
271
  for entry in range(number_entries):
277
272
  entry_address = self.address_lookup(entry=start_entry + entry)
278
- # python 3.7 doesn't have the callback defined as protocol so mypy doesn't
279
- # recognise the arguments in the call back functions
280
- data_entry = await read_callback(addr=entry_address, # type: ignore[call-arg]
281
- width=self.width, # type: ignore[call-arg]
282
- accesswidth=self.width) # type: ignore[call-arg]
273
+ data_entry = await read_callback(addr=entry_address,
274
+ width=self.width,
275
+ accesswidth=self.width)
283
276
 
284
277
  data_read_block[entry] = data_entry
285
278
 
@@ -428,53 +421,41 @@ class _MemoryAsyncWriteOnly(AsyncMemory, ABC):
428
421
  f'but got {len(data):d}')
429
422
 
430
423
  if self._callbacks.write_block_callback is not None:
431
- # python 3.7 doesn't have the callback defined as protocol so mypy doesn't recognise
432
- # the arguments in the call back functions
424
+
433
425
  addr = self.address_lookup(entry=start_entry)
434
426
  if isinstance(self._callbacks, AsyncCallbackSet):
435
427
  if isinstance(data, Array):
436
- # pylint: disable=line-too-long
437
- await self._callbacks.write_block_callback(addr=addr, # type: ignore[call-arg]
438
- width=self.width, # type: ignore[call-arg]
439
- accesswidth=self.width, # type: ignore[call-arg]
440
- data=data.tolist()) # type: ignore[call-arg]
441
- # pylint: enable=line-too-long
428
+ await self._callbacks.write_block_callback(addr=addr,
429
+ width=self.width,
430
+ accesswidth=self.width,
431
+ data=data.tolist())
442
432
  else:
443
- # pylint: disable=line-too-long
444
- await self._callbacks.write_block_callback(addr=addr, # type: ignore[call-arg]
445
- width=self.width, # type: ignore[call-arg]
446
- accesswidth=self.width, # type: ignore[call-arg]
447
- data=data) # type: ignore[call-arg]
448
- # pylint: enable=line-too-long
433
+ await self._callbacks.write_block_callback(addr=addr,
434
+ width=self.width,
435
+ accesswidth=self.width,
436
+ data=data)
449
437
  if isinstance(self._callbacks, AsyncCallbackSetLegacy):
450
438
  if isinstance(data, list):
451
439
  # need to convert the data to an array before calling
452
- # pylint: disable=line-too-long
453
- await self._callbacks.write_block_callback(addr=addr, # type: ignore[call-arg]
454
- width=self.width, # type: ignore[call-arg]
455
- accesswidth=self.width, # type: ignore[call-arg]
456
- data=Array(self.array_typecode, data)) # type: ignore[call-arg]
457
- # pylint: enable=line-too-long
440
+ await self._callbacks.write_block_callback(
441
+ addr=addr,
442
+ width=self.width,
443
+ accesswidth=self.width,
444
+ data=Array(self.array_typecode, data))
458
445
  else:
459
- # pylint: disable=line-too-long
460
- await self._callbacks.write_block_callback(addr=addr, # type: ignore[call-arg]
461
- width=self.width, # type: ignore[call-arg]
462
- accesswidth=self.width, # type: ignore[call-arg]
463
- data=data) # type: ignore[call-arg]
464
- # pylint: enable=line-too-long
446
+ await self._callbacks.write_block_callback(addr=addr,
447
+ width=self.width,
448
+ accesswidth=self.width,
449
+ data=data)
465
450
 
466
451
  elif self._callbacks.write_callback is not None:
467
452
  # there is not write_block_callback defined so we must used individual write
468
453
  for entry_index, entry_data in enumerate(data):
469
454
  entry_address = self.address_lookup(entry=start_entry+entry_index)
470
- # python 3.7 doesn't have the callback defined as protocol so mypy doesn't
471
- # recognise the arguments in the call back functions
472
- # pylint: disable=line-too-long
473
- await self._callbacks.write_callback(addr=entry_address, # type: ignore[call-arg]
474
- width=self.width, # type: ignore[call-arg]
475
- accesswidth=self.width, # type: ignore[call-arg]
476
- data=entry_data) # type: ignore[call-arg]
477
- # pylint: enable=line-too-long
455
+ await self._callbacks.write_callback(addr=entry_address,
456
+ width=self.width,
457
+ accesswidth=self.width,
458
+ data=entry_data)
478
459
 
479
460
  else:
480
461
  raise RuntimeError('No suitable callback')
@@ -178,20 +178,17 @@ class RegAsyncReadOnly(AsyncReg, ABC):
178
178
  # pylint: enable=duplicate-code
179
179
 
180
180
  if read_callback is not None:
181
- # python 3.7 doesn't have the callback defined as protocol so mypy doesn't recognise
182
- # the arguments in the call back functions
183
- return await read_callback(addr=self.address, # type: ignore[call-arg]
184
- width=self.width, # type: ignore[call-arg]
185
- accesswidth=self.accesswidth) # type: ignore[call-arg]
181
+
182
+ return await read_callback(addr=self.address,
183
+ width=self.width,
184
+ accesswidth=self.accesswidth)
186
185
 
187
186
  if read_block_callback is not None:
188
- # python 3.7 doesn't have the callback defined as protocol so mypy doesn't recognise
189
- # the arguments in the call back functions
190
187
  array_read_result = \
191
- await read_block_callback(addr=self.address, # type: ignore[call-arg]
192
- width=self.width, # type: ignore[call-arg]
193
- accesswidth=self.accesswidth, # type: ignore[call-arg]
194
- length=1) # type: ignore[call-arg]
188
+ await read_block_callback(addr=self.address,
189
+ width=self.width,
190
+ accesswidth=self.accesswidth,
191
+ length=1)
195
192
  return array_read_result[0]
196
193
 
197
194
  raise RuntimeError('This function does not have a useable callback')
@@ -272,35 +269,26 @@ class RegAsyncWriteOnly(AsyncReg, ABC):
272
269
  # pylint: enable=duplicate-code
273
270
 
274
271
  if self._callbacks.write_callback is not None:
275
- # python 3.7 doesn't have the callback defined as protocol so mypy doesn't recognise
276
- # the arguments in the call back functions
277
- # pylint: disable=line-too-long
278
- await self._callbacks.write_callback(addr=self.address, # type: ignore[call-arg]
279
- width=self.width, # type: ignore[call-arg]
280
- accesswidth=self.accesswidth, # type: ignore[call-arg]
281
- data=data) # type: ignore[call-arg]
282
- # pylint: enable=line-too-long
272
+
273
+ await self._callbacks.write_callback(addr=self.address,
274
+ width=self.width,
275
+ accesswidth=self.accesswidth,
276
+ data=data)
283
277
 
284
278
  elif self._callbacks.write_block_callback is not None:
285
- # python 3.7 doesn't have the callback defined as protocol so mypy doesn't recognise
286
- # the arguments in the call back functions
287
- # pylint: disable-next=duplicate-code
279
+
288
280
  if isinstance(self._callbacks, AsyncCallbackSetLegacy):
289
281
  data_as_array = Array(get_array_typecode(self.width), [data])
290
- # pylint: disable=line-too-long
291
- await self._callbacks.write_block_callback(addr=self.address, # type: ignore[call-arg]
292
- width=self.width, # type: ignore[call-arg]
293
- accesswidth=self.accesswidth, # type: ignore[call-arg]
294
- data=data_as_array) # type: ignore[call-arg]
295
- # pylint: enable=line-too-long
282
+ await self._callbacks.write_block_callback(addr=self.address,
283
+ width=self.width,
284
+ accesswidth=self.accesswidth,
285
+ data=data_as_array)
296
286
 
297
287
  if isinstance(self._callbacks, AsyncCallbackSet):
298
- # pylint: disable=line-too-long
299
- await self._callbacks.write_block_callback(addr=self.address, # type: ignore[call-arg]
300
- width=self.width, # type: ignore[call-arg]
301
- accesswidth=self.accesswidth, # type: ignore[call-arg]
302
- data=[data]) # type: ignore[call-arg]
303
- # pylint: enable=line-too-long
288
+ await self._callbacks.write_block_callback(addr=self.address,
289
+ width=self.width,
290
+ accesswidth=self.accesswidth,
291
+ data=[data])
304
292
 
305
293
  else:
306
294
  # pylint: disable-next=duplicate-code
@@ -567,15 +555,11 @@ class AsyncRegArray(BaseRegArray, ABC):
567
555
  read_callback = self._callbacks.read_callback
568
556
 
569
557
  if read_block_callback is not None:
570
- # python 3.7 doesn't have the callback defined as protocol so mypy doesn't recognise
571
- # the arguments in the call back functions
572
- # pylint: disable=line-too-long
573
- data_read = \
574
- await read_block_callback(addr=self.address, # type: ignore[call-arg]
575
- width=self.width, # type: ignore[call-arg]
576
- accesswidth=self.accesswidth, # type: ignore[call-arg]
577
- length=self.__number_cache_entries) # type: ignore[call-arg]
578
- # pylint: enable=line-too-long
558
+
559
+ data_read = await read_block_callback(addr=self.address,
560
+ width=self.width,
561
+ accesswidth=self.accesswidth,
562
+ length=self.__number_cache_entries)
579
563
 
580
564
  if not isinstance(data_read, Array):
581
565
  raise TypeError('The read block callback is expected to return an array')
@@ -590,13 +574,9 @@ class AsyncRegArray(BaseRegArray, ABC):
590
574
  raise RuntimeError('This address array has not be initialised')
591
575
 
592
576
  for entry, address in enumerate(self.__register_address_array):
593
- # python 3.7 doesn't have the callback defined as protocol so mypy doesn't
594
- # recognise the arguments in the call back functions
595
- # pylint: disable=line-too-long
596
- data_entry = await read_callback(addr=address, # type: ignore[call-arg]
597
- width=self.width, # type: ignore[call-arg]
598
- accesswidth=self.accesswidth) # type: ignore[call-arg]
599
- # pylint: enable=line-too-long
577
+ data_entry = await read_callback(addr=address,
578
+ width=self.width,
579
+ accesswidth=self.accesswidth)
600
580
 
601
581
  data_array[entry] = data_entry
602
582
 
@@ -615,12 +595,10 @@ class AsyncRegArray(BaseRegArray, ABC):
615
595
  write_callback = self._callbacks.write_callback
616
596
 
617
597
  if write_block_callback is not None:
618
- # python 3.7 doesn't have the callback defined as protocol so mypy doesn't recognise
619
- # the arguments in the call back functions
620
- await write_block_callback(addr=self.address, # type: ignore[call-arg]
621
- width=self.width, # type: ignore[call-arg]
622
- accesswidth=self.width, # type: ignore[call-arg]
623
- data=data) # type: ignore[call-arg]
598
+ await write_block_callback(addr=self.address,
599
+ width=self.width,
600
+ accesswidth=self.width,
601
+ data=data)
624
602
 
625
603
  elif write_callback is not None:
626
604
  # there is not write_block_callback defined so we must used individual write
@@ -630,12 +608,10 @@ class AsyncRegArray(BaseRegArray, ABC):
630
608
 
631
609
  for entry_index, entry_data in enumerate(data):
632
610
  entry_address = self.__register_address_array[entry_index]
633
- # python 3.7 doesn't have the callback defined as protocol so mypy doesn't
634
- # recognise the arguments in the call back functions
635
- await write_callback(addr=entry_address, # type: ignore[call-arg]
636
- width=self.width, # type: ignore[call-arg]
637
- accesswidth=self.accesswidth, # type: ignore[call-arg]
638
- data=entry_data) # type: ignore[call-arg]
611
+ await write_callback(addr=entry_address,
612
+ width=self.width,
613
+ accesswidth=self.accesswidth,
614
+ data=entry_data)
639
615
 
640
616
  else:
641
617
  raise RuntimeError('No suitable callback')
@@ -656,15 +632,12 @@ class AsyncRegArray(BaseRegArray, ABC):
656
632
  read_callback = self._callbacks.read_callback
657
633
 
658
634
  if read_block_callback is not None:
659
- # python 3.7 doesn't have the callback defined as protocol so mypy doesn't recognise
660
- # the arguments in the call back functions
661
- # pylint: disable=line-too-long
662
635
  data_read = \
663
- await read_block_callback(addr=self.address, # type: ignore[call-arg]
664
- width=self.width, # type: ignore[call-arg]
665
- accesswidth=self.accesswidth, # type: ignore[call-arg]
666
- length=self.__number_cache_entries) # type: ignore[call-arg]
667
- # pylint: enable=line-too-long
636
+ await read_block_callback(addr=self.address,
637
+ width=self.width,
638
+ accesswidth=self.accesswidth,
639
+ length=self.__number_cache_entries)
640
+
668
641
 
669
642
  if not isinstance(data_read, List):
670
643
  raise TypeError('The read block callback is expected to return an array')
@@ -679,11 +652,9 @@ class AsyncRegArray(BaseRegArray, ABC):
679
652
  raise RuntimeError('This address array has not be initialised')
680
653
 
681
654
  for entry, address in enumerate(self.__register_address_array):
682
- # python 3.7 doesn't have the callback defined as protocol so mypy doesn't
683
- # recognise the arguments in the call back functions
684
- data = await read_callback(addr=address, # type: ignore[call-arg]
685
- width=self.width, # type: ignore[call-arg]
686
- accesswidth=self.accesswidth) # type: ignore[call-arg]
655
+ data = await read_callback(addr=address,
656
+ width=self.width,
657
+ accesswidth=self.accesswidth)
687
658
 
688
659
  data_list[entry] = data
689
660
 
@@ -702,13 +673,10 @@ class AsyncRegArray(BaseRegArray, ABC):
702
673
  write_callback = self._callbacks.write_callback
703
674
 
704
675
  if write_block_callback is not None:
705
- # python 3.7 doesn't have the callback defined as protocol so mypy doesn't recognise
706
- # the arguments in the call back functions
707
- await write_block_callback(addr=self.address, # type: ignore[call-arg]
708
- width=self.width, # type: ignore[call-arg]
709
- accesswidth=self.width, # type: ignore[call-arg]
710
- data=data) # type: ignore[call-arg]
711
-
676
+ await write_block_callback(addr=self.address,
677
+ width=self.width,
678
+ accesswidth=self.width,
679
+ data=data)
712
680
  elif write_callback is not None:
713
681
  # there is not write_block_callback defined so we must used individual write
714
682
 
@@ -717,12 +685,10 @@ class AsyncRegArray(BaseRegArray, ABC):
717
685
 
718
686
  for entry_index, entry_data in enumerate(data):
719
687
  entry_address = self.__register_address_array[entry_index]
720
- # python 3.7 doesn't have the callback defined as protocol so mypy doesn't
721
- # recognise the arguments in the call back functions
722
- await write_callback(addr=entry_address, # type: ignore[call-arg]
723
- width=self.width, # type: ignore[call-arg]
724
- accesswidth=self.accesswidth, # type: ignore[call-arg]
725
- data=entry_data) # type: ignore[call-arg]
688
+ await write_callback(addr=entry_address,
689
+ width=self.width,
690
+ accesswidth=self.accesswidth,
691
+ data=entry_data)
726
692
 
727
693
  else:
728
694
  raise RuntimeError('No suitable callback')