peakrdl-python 0.9.2__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 (149) hide show
  1. {peakrdl_python-0.9.2 → peakrdl_python-0.9.4}/.github/workflows/action.yaml +5 -7
  2. {peakrdl_python-0.9.2 → peakrdl_python-0.9.4}/PKG-INFO +2 -5
  3. {peakrdl_python-0.9.2 → peakrdl_python-0.9.4}/pyproject.toml +1 -4
  4. {peakrdl_python-0.9.2 → peakrdl_python-0.9.4}/src/peakrdl_python/__about__.py +1 -1
  5. {peakrdl_python-0.9.2 → peakrdl_python-0.9.4}/src/peakrdl_python/lib/__init__.py +41 -41
  6. {peakrdl_python-0.9.2 → peakrdl_python-0.9.4}/src/peakrdl_python/lib/async_memory.py +40 -60
  7. peakrdl_python-0.9.2/src/peakrdl_python/lib/async_register.py → peakrdl_python-0.9.4/src/peakrdl_python/lib/async_register_and_field.py +291 -99
  8. {peakrdl_python-0.9.2 → peakrdl_python-0.9.4}/src/peakrdl_python/lib/base.py +6 -6
  9. peakrdl_python-0.9.4/src/peakrdl_python/lib/base_field.py +473 -0
  10. peakrdl_python-0.9.4/src/peakrdl_python/lib/base_register.py +229 -0
  11. {peakrdl_python-0.9.2 → peakrdl_python-0.9.4}/src/peakrdl_python/lib/callbacks.py +86 -107
  12. {peakrdl_python-0.9.2 → peakrdl_python-0.9.4}/src/peakrdl_python/lib/memory.py +37 -57
  13. peakrdl_python-0.9.2/src/peakrdl_python/lib/register.py → peakrdl_python-0.9.4/src/peakrdl_python/lib/register_and_field.py +278 -291
  14. peakrdl_python-0.9.4/src/peakrdl_python/sim_lib/_callbacks.py +79 -0
  15. {peakrdl_python-0.9.2 → peakrdl_python-0.9.4}/src/peakrdl_python/sim_lib/memory.py +2 -8
  16. {peakrdl_python-0.9.2 → peakrdl_python-0.9.4}/src/peakrdl_python/sim_lib/register.py +4 -14
  17. {peakrdl_python-0.9.2 → peakrdl_python-0.9.4}/src/peakrdl_python/systemrdl_node_utility_functions.py +9 -19
  18. {peakrdl_python-0.9.2 → peakrdl_python-0.9.4}/src/peakrdl_python/templates/addrmap_register.py.jinja +1 -26
  19. {peakrdl_python-0.9.2 → peakrdl_python-0.9.4}/src/peakrdl_python/templates/addrmap_simulation_tb.py.jinja +2 -6
  20. {peakrdl_python-0.9.2 → peakrdl_python-0.9.4}/src/peakrdl_python/templates/addrmap_tb.py.jinja +2 -6
  21. {peakrdl_python-0.9.2 → peakrdl_python-0.9.4}/src/peakrdl_python.egg-info/PKG-INFO +2 -5
  22. {peakrdl_python-0.9.2 → peakrdl_python-0.9.4}/src/peakrdl_python.egg-info/SOURCES.txt +4 -3
  23. {peakrdl_python-0.9.2 → peakrdl_python-0.9.4}/src/peakrdl_python.egg-info/requires.txt +0 -3
  24. {peakrdl_python-0.9.2 → peakrdl_python-0.9.4}/tests/testcases/name_clash.rdl +2 -0
  25. peakrdl_python-0.9.2/src/peakrdl_python/lib/fields.py +0 -892
  26. peakrdl_python-0.9.2/src/peakrdl_python/sim_lib/_callbacks.py +0 -95
  27. {peakrdl_python-0.9.2 → peakrdl_python-0.9.4}/.gitignore +0 -0
  28. {peakrdl_python-0.9.2 → peakrdl_python-0.9.4}/.readthedocs.yaml +0 -0
  29. {peakrdl_python-0.9.2 → peakrdl_python-0.9.4}/LICENSE +0 -0
  30. {peakrdl_python-0.9.2 → peakrdl_python-0.9.4}/MANIFEST.in +0 -0
  31. {peakrdl_python-0.9.2 → peakrdl_python-0.9.4}/README.md +0 -0
  32. {peakrdl_python-0.9.2 → peakrdl_python-0.9.4}/docs/api.rst +0 -0
  33. {peakrdl_python-0.9.2 → peakrdl_python-0.9.4}/docs/api_components.rst +0 -0
  34. {peakrdl_python-0.9.2 → peakrdl_python-0.9.4}/docs/command_line.rst +0 -0
  35. {peakrdl_python-0.9.2 → peakrdl_python-0.9.4}/docs/conf.py +0 -0
  36. {peakrdl_python-0.9.2 → peakrdl_python-0.9.4}/docs/customisation.rst +0 -0
  37. {peakrdl_python-0.9.2 → peakrdl_python-0.9.4}/docs/design_decisions.rst +0 -0
  38. {peakrdl_python-0.9.2 → peakrdl_python-0.9.4}/docs/design_tools.rst +0 -0
  39. {peakrdl_python-0.9.2 → peakrdl_python-0.9.4}/docs/generated_package.rst +0 -0
  40. {peakrdl_python-0.9.2 → peakrdl_python-0.9.4}/docs/genindex.rst +0 -0
  41. {peakrdl_python-0.9.2 → peakrdl_python-0.9.4}/docs/index.rst +0 -0
  42. {peakrdl_python-0.9.2 → peakrdl_python-0.9.4}/docs/installation.rst +0 -0
  43. {peakrdl_python-0.9.2 → peakrdl_python-0.9.4}/docs/requirements.txt +0 -0
  44. {peakrdl_python-0.9.2 → peakrdl_python-0.9.4}/example/array_access/array_access.rdl +0 -0
  45. {peakrdl_python-0.9.2 → peakrdl_python-0.9.4}/example/array_access/demo_array_access.py +0 -0
  46. {peakrdl_python-0.9.2 → peakrdl_python-0.9.4}/example/enumerated_fields/demo_enumerated_fields.py +0 -0
  47. {peakrdl_python-0.9.2 → peakrdl_python-0.9.4}/example/enumerated_fields/enumerated_fields.rdl +0 -0
  48. {peakrdl_python-0.9.2 → peakrdl_python-0.9.4}/example/optimised_access/demo_optimised_access.py +0 -0
  49. {peakrdl_python-0.9.2 → peakrdl_python-0.9.4}/example/optimised_access/demo_optimised_array_access.py +0 -0
  50. {peakrdl_python-0.9.2 → peakrdl_python-0.9.4}/example/optimised_access/optimised_access.rdl +0 -0
  51. {peakrdl_python-0.9.2 → peakrdl_python-0.9.4}/example/optimised_access/optimised_array_access.rdl +0 -0
  52. {peakrdl_python-0.9.2 → peakrdl_python-0.9.4}/example/overridden_names/demo_over_ridden_names.py +0 -0
  53. {peakrdl_python-0.9.2 → peakrdl_python-0.9.4}/example/overridden_names/overridden_names.rdl +0 -0
  54. {peakrdl_python-0.9.2 → peakrdl_python-0.9.4}/example/simulating_callbacks/chip_with_a_GPIO.rdl +0 -0
  55. {peakrdl_python-0.9.2 → peakrdl_python-0.9.4}/example/simulating_callbacks/flashing_the_LED.py +0 -0
  56. {peakrdl_python-0.9.2 → peakrdl_python-0.9.4}/example/tranversing_address_map/chip_with_registers.rdl +0 -0
  57. {peakrdl_python-0.9.2 → peakrdl_python-0.9.4}/example/tranversing_address_map/dumping_register_state_to_json_file.py +0 -0
  58. {peakrdl_python-0.9.2 → peakrdl_python-0.9.4}/example/tranversing_address_map/reg_dump.json +0 -0
  59. {peakrdl_python-0.9.2 → peakrdl_python-0.9.4}/example/tranversing_address_map/reseting_registers.py +0 -0
  60. {peakrdl_python-0.9.2 → peakrdl_python-0.9.4}/example/tranversing_address_map/writing_register_state_from_json_file.py +0 -0
  61. {peakrdl_python-0.9.2 → peakrdl_python-0.9.4}/example/user_defined_properties/demo_user_defined_properties.py +0 -0
  62. {peakrdl_python-0.9.2 → peakrdl_python-0.9.4}/example/user_defined_properties/user_defined_properties.rdl +0 -0
  63. {peakrdl_python-0.9.2 → peakrdl_python-0.9.4}/example/why_ral/__init__.py +0 -0
  64. {peakrdl_python-0.9.2 → peakrdl_python-0.9.4}/example/why_ral/gpio.rdl +0 -0
  65. {peakrdl_python-0.9.2 → peakrdl_python-0.9.4}/example/why_ral/with_hal.py +0 -0
  66. {peakrdl_python-0.9.2 → peakrdl_python-0.9.4}/example/why_ral/with_ral.py +0 -0
  67. {peakrdl_python-0.9.2 → peakrdl_python-0.9.4}/example/why_ral/without_ral.py +0 -0
  68. {peakrdl_python-0.9.2 → peakrdl_python-0.9.4}/generate_and_test.py +0 -0
  69. {peakrdl_python-0.9.2 → peakrdl_python-0.9.4}/generate_testcases.py +0 -0
  70. {peakrdl_python-0.9.2 → peakrdl_python-0.9.4}/setup.cfg +0 -0
  71. {peakrdl_python-0.9.2 → peakrdl_python-0.9.4}/src/peakrdl_python/.coveragerc +0 -0
  72. {peakrdl_python-0.9.2 → peakrdl_python-0.9.4}/src/peakrdl_python/__init__.py +0 -0
  73. {peakrdl_python-0.9.2 → peakrdl_python-0.9.4}/src/peakrdl_python/__peakrdl__.py +0 -0
  74. {peakrdl_python-0.9.2 → peakrdl_python-0.9.4}/src/peakrdl_python/_node_walkers.py +0 -0
  75. {peakrdl_python-0.9.2 → peakrdl_python-0.9.4}/src/peakrdl_python/compiler_udp.py +0 -0
  76. {peakrdl_python-0.9.2 → peakrdl_python-0.9.4}/src/peakrdl_python/exporter.py +0 -0
  77. {peakrdl_python-0.9.2 → peakrdl_python-0.9.4}/src/peakrdl_python/lib/utility_functions.py +0 -0
  78. {peakrdl_python-0.9.2 → peakrdl_python-0.9.4}/src/peakrdl_python/safe_name_utility.py +0 -0
  79. {peakrdl_python-0.9.2 → peakrdl_python-0.9.4}/src/peakrdl_python/sim_lib/__init__.py +0 -0
  80. {peakrdl_python-0.9.2 → peakrdl_python-0.9.4}/src/peakrdl_python/sim_lib/base.py +0 -0
  81. {peakrdl_python-0.9.2 → peakrdl_python-0.9.4}/src/peakrdl_python/sim_lib/dummy_callbacks.py +0 -0
  82. {peakrdl_python-0.9.2 → peakrdl_python-0.9.4}/src/peakrdl_python/sim_lib/field.py +0 -0
  83. {peakrdl_python-0.9.2 → peakrdl_python-0.9.4}/src/peakrdl_python/sim_lib/simulator.py +0 -0
  84. {peakrdl_python-0.9.2 → peakrdl_python-0.9.4}/src/peakrdl_python/templates/__init__.py +0 -0
  85. {peakrdl_python-0.9.2 → peakrdl_python-0.9.4}/src/peakrdl_python/templates/addrmap.py.jinja +0 -0
  86. {peakrdl_python-0.9.2 → peakrdl_python-0.9.4}/src/peakrdl_python/templates/addrmap_field.py.jinja +0 -0
  87. {peakrdl_python-0.9.2 → peakrdl_python-0.9.4}/src/peakrdl_python/templates/addrmap_memory.py.jinja +0 -0
  88. {peakrdl_python-0.9.2 → peakrdl_python-0.9.4}/src/peakrdl_python/templates/addrmap_simulation.py.jinja +0 -0
  89. {peakrdl_python-0.9.2 → peakrdl_python-0.9.4}/src/peakrdl_python/templates/addrmap_udp_property.py.jinja +0 -0
  90. {peakrdl_python-0.9.2 → peakrdl_python-0.9.4}/src/peakrdl_python/templates/baseclass_simulation_tb.py.jinja +0 -0
  91. {peakrdl_python-0.9.2 → peakrdl_python-0.9.4}/src/peakrdl_python/templates/baseclass_tb.py.jinja +0 -0
  92. {peakrdl_python-0.9.2 → peakrdl_python-0.9.4}/src/peakrdl_python/templates/example.py.jinja +0 -0
  93. {peakrdl_python-0.9.2 → peakrdl_python-0.9.4}/src/peakrdl_python/templates/header.py.jinja +0 -0
  94. {peakrdl_python-0.9.2 → peakrdl_python-0.9.4}/src/peakrdl_python/templates/header_tb.py.jinja +0 -0
  95. {peakrdl_python-0.9.2 → peakrdl_python-0.9.4}/src/peakrdl_python/templates/reg_definitions.py.jinja +0 -0
  96. {peakrdl_python-0.9.2 → peakrdl_python-0.9.4}/src/peakrdl_python/templates/sim_addrmap.py.jinja +0 -0
  97. {peakrdl_python-0.9.2 → peakrdl_python-0.9.4}/src/peakrdl_python.egg-info/dependency_links.txt +0 -0
  98. {peakrdl_python-0.9.2 → peakrdl_python-0.9.4}/src/peakrdl_python.egg-info/entry_points.txt +0 -0
  99. {peakrdl_python-0.9.2 → peakrdl_python-0.9.4}/src/peakrdl_python.egg-info/top_level.txt +0 -0
  100. {peakrdl_python-0.9.2 → peakrdl_python-0.9.4}/tests/.mypy.ini +0 -0
  101. {peakrdl_python-0.9.2 → peakrdl_python-0.9.4}/tests/alternative_templates/header.py.jinja +0 -0
  102. {peakrdl_python-0.9.2 → peakrdl_python-0.9.4}/tests/alternative_templates/header_tb.py.jinja +0 -0
  103. {peakrdl_python-0.9.2 → peakrdl_python-0.9.4}/tests/alternative_templates_dynamic/header.py.jinja +0 -0
  104. {peakrdl_python-0.9.2 → peakrdl_python-0.9.4}/tests/alternative_templates_dynamic/header_tb.py.jinja +0 -0
  105. {peakrdl_python-0.9.2 → peakrdl_python-0.9.4}/tests/alternative_templates_dynamic_toml/header_check.py +0 -0
  106. {peakrdl_python-0.9.2 → peakrdl_python-0.9.4}/tests/alternative_templates_dynamic_toml/peakrdl.toml +0 -0
  107. {peakrdl_python-0.9.2 → peakrdl_python-0.9.4}/tests/alternative_templates_toml/header_check.py +0 -0
  108. {peakrdl_python-0.9.2 → peakrdl_python-0.9.4}/tests/alternative_templates_toml/peakrdl.toml +0 -0
  109. {peakrdl_python-0.9.2 → peakrdl_python-0.9.4}/tests/pylint.rc +0 -0
  110. {peakrdl_python-0.9.2 → peakrdl_python-0.9.4}/tests/testcases/RDLFormatCode_example.rdl +0 -0
  111. {peakrdl_python-0.9.2 → peakrdl_python-0.9.4}/tests/testcases/addr_map.rdl +0 -0
  112. {peakrdl_python-0.9.2 → peakrdl_python-0.9.4}/tests/testcases/all_register_access_types.rdl +0 -0
  113. {peakrdl_python-0.9.2 → peakrdl_python-0.9.4}/tests/testcases/basic.rdl +0 -0
  114. {peakrdl_python-0.9.2 → peakrdl_python-0.9.4}/tests/testcases/block_a.xml +0 -0
  115. {peakrdl_python-0.9.2 → peakrdl_python-0.9.4}/tests/testcases/block_b.xml +0 -0
  116. {peakrdl_python-0.9.2 → peakrdl_python-0.9.4}/tests/testcases/different_array_types.rdl +0 -0
  117. {peakrdl_python-0.9.2 → peakrdl_python-0.9.4}/tests/testcases/enum_example.rdl +0 -0
  118. {peakrdl_python-0.9.2 → peakrdl_python-0.9.4}/tests/testcases/example_issue_106.rdl +0 -0
  119. {peakrdl_python-0.9.2 → peakrdl_python-0.9.4}/tests/testcases/extended_memories.rdl +0 -0
  120. {peakrdl_python-0.9.2 → peakrdl_python-0.9.4}/tests/testcases/extended_sizes_registers_array.rdl +0 -0
  121. {peakrdl_python-0.9.2 → peakrdl_python-0.9.4}/tests/testcases/field_scope.rdl +0 -0
  122. {peakrdl_python-0.9.2 → peakrdl_python-0.9.4}/tests/testcases/field_with_overridden_reset.rdl +0 -0
  123. {peakrdl_python-0.9.2 → peakrdl_python-0.9.4}/tests/testcases/fields_with_HW_write.rdl +0 -0
  124. {peakrdl_python-0.9.2 → peakrdl_python-0.9.4}/tests/testcases/fields_with_reset_values.rdl +0 -0
  125. {peakrdl_python-0.9.2 → peakrdl_python-0.9.4}/tests/testcases/hidden_property.rdl +0 -0
  126. {peakrdl_python-0.9.2 → peakrdl_python-0.9.4}/tests/testcases/memories.rdl +0 -0
  127. {peakrdl_python-0.9.2 → peakrdl_python-0.9.4}/tests/testcases/memories_with_registers.rdl +0 -0
  128. {peakrdl_python-0.9.2 → peakrdl_python-0.9.4}/tests/testcases/msb0_and_lsb0.rdl +0 -0
  129. {peakrdl_python-0.9.2 → peakrdl_python-0.9.4}/tests/testcases/multi_block.rdl +0 -0
  130. {peakrdl_python-0.9.2 → peakrdl_python-0.9.4}/tests/testcases/multifile.rdl +0 -0
  131. {peakrdl_python-0.9.2 → peakrdl_python-0.9.4}/tests/testcases/overridden_python_name.rdl +0 -0
  132. {peakrdl_python-0.9.2 → peakrdl_python-0.9.4}/tests/testcases/parametrised_readonly_and_readwrite.rdl +0 -0
  133. {peakrdl_python-0.9.2 → peakrdl_python-0.9.4}/tests/testcases/regfile_and_arrays.rdl +0 -0
  134. {peakrdl_python-0.9.2 → peakrdl_python-0.9.4}/tests/testcases/reserved_elements.rdl +0 -0
  135. {peakrdl_python-0.9.2 → peakrdl_python-0.9.4}/tests/testcases/same_but_different_enum.rdl +0 -0
  136. {peakrdl_python-0.9.2 → peakrdl_python-0.9.4}/tests/testcases/signals_definitions_at_various_levels.rdl +0 -0
  137. {peakrdl_python-0.9.2 → peakrdl_python-0.9.4}/tests/testcases/simple.rdl +0 -0
  138. {peakrdl_python-0.9.2 → peakrdl_python-0.9.4}/tests/testcases/simple.xml +0 -0
  139. {peakrdl_python-0.9.2 → peakrdl_python-0.9.4}/tests/testcases/simulator_test.rdl +0 -0
  140. {peakrdl_python-0.9.2 → peakrdl_python-0.9.4}/tests/testcases/sizes_registers.rdl +0 -0
  141. {peakrdl_python-0.9.2 → peakrdl_python-0.9.4}/tests/testcases/sizes_registers_array.rdl +0 -0
  142. {peakrdl_python-0.9.2 → peakrdl_python-0.9.4}/tests/testcases/user_defined_properties.rdl +0 -0
  143. {peakrdl_python-0.9.2 → peakrdl_python-0.9.4}/tests/testcases/write_only_enum_with_undefined_reset.rdl +0 -0
  144. {peakrdl_python-0.9.2 → peakrdl_python-0.9.4}/tests/unit_tests/__init__.py +0 -0
  145. {peakrdl_python-0.9.2 → peakrdl_python-0.9.4}/tests/unit_tests/simple_components.py +0 -0
  146. {peakrdl_python-0.9.2 → peakrdl_python-0.9.4}/tests/unit_tests/test_array_indexing.py +0 -0
  147. {peakrdl_python-0.9.2 → peakrdl_python-0.9.4}/tests/unit_tests/test_export.py +0 -0
  148. {peakrdl_python-0.9.2 → peakrdl_python-0.9.4}/tests/unit_tests/test_optimised_reg_array.py +0 -0
  149. {peakrdl_python-0.9.2 → 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.2
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.2"
20
+ __version__ = "0.9.4"
@@ -37,52 +37,52 @@ from .base import AsyncRegFile
37
37
  from .base import AsyncAddressMapArray
38
38
  from .base import AsyncRegFileArray
39
39
 
40
- from .register import Reg
41
- from .register import RegArray
42
- from .register import RegisterWriteVerifyError
40
+ from .register_and_field import Reg
41
+ from .register_and_field import RegArray
42
+ from .register_and_field import RegisterWriteVerifyError
43
43
 
44
- from .register import RegReadOnly
45
- from .register import RegWriteOnly
46
- from .register import RegReadWrite
47
- from .register import WritableRegister
48
- from .register import ReadableRegister
44
+ from .register_and_field import RegReadOnly
45
+ from .register_and_field import RegWriteOnly
46
+ from .register_and_field import RegReadWrite
47
+ from .register_and_field import WritableRegister
48
+ from .register_and_field import ReadableRegister
49
49
 
50
- from .register import RegReadOnlyArray
51
- from .register import RegWriteOnlyArray
52
- from .register import RegReadWriteArray
53
- from .register import ReadableRegisterArray
54
- from .register import WriteableRegisterArray
50
+ from .register_and_field import RegReadOnlyArray
51
+ from .register_and_field import RegWriteOnlyArray
52
+ from .register_and_field import RegReadWriteArray
53
+ from .register_and_field import ReadableRegisterArray
54
+ from .register_and_field import WriteableRegisterArray
55
55
 
56
- from .async_register import AsyncReg
57
- from .async_register import AsyncRegArray
58
- from .async_register import RegAsyncReadOnly
59
- from .async_register import RegAsyncWriteOnly
60
- from .async_register import RegAsyncReadWrite
61
- from .async_register import ReadableAsyncRegister
62
- from .async_register import WritableAsyncRegister
63
- from .async_register import RegAsyncReadOnlyArray
64
- from .async_register import RegAsyncWriteOnlyArray
65
- from .async_register import RegAsyncReadWriteArray
66
- from .async_register import ReadableAsyncRegisterArray
67
- from .async_register import WriteableAsyncRegisterArray
56
+ from .async_register_and_field import AsyncReg
57
+ from .async_register_and_field import AsyncRegArray
58
+ from .async_register_and_field import RegAsyncReadOnly
59
+ from .async_register_and_field import RegAsyncWriteOnly
60
+ from .async_register_and_field import RegAsyncReadWrite
61
+ from .async_register_and_field import ReadableAsyncRegister
62
+ from .async_register_and_field import WritableAsyncRegister
63
+ from .async_register_and_field import RegAsyncReadOnlyArray
64
+ from .async_register_and_field import RegAsyncWriteOnlyArray
65
+ from .async_register_and_field import RegAsyncReadWriteArray
66
+ from .async_register_and_field import ReadableAsyncRegisterArray
67
+ from .async_register_and_field import WriteableAsyncRegisterArray
68
68
 
69
- from .fields import FieldSizeProps
70
- from .fields import FieldMiscProps
71
- from .fields import FieldReadOnly
72
- from .fields import FieldWriteOnly
73
- from .fields import FieldReadWrite
74
- from .fields import Field
75
- from .fields import FieldEnumReadOnly
76
- from .fields import FieldEnumWriteOnly
77
- from .fields import FieldEnumReadWrite
78
- from .fields import FieldEnum
69
+ from .base_field import FieldSizeProps
70
+ from .base_field import FieldMiscProps
71
+ from .register_and_field import FieldReadOnly
72
+ from .register_and_field import FieldWriteOnly
73
+ from .register_and_field import FieldReadWrite
74
+ from .base_field import Field
75
+ from .register_and_field import FieldEnumReadOnly
76
+ from .register_and_field import FieldEnumWriteOnly
77
+ from .register_and_field import FieldEnumReadWrite
78
+ from .base_field import FieldEnum
79
79
 
80
- from .fields import FieldAsyncReadOnly
81
- from .fields import FieldAsyncWriteOnly
82
- from .fields import FieldAsyncReadWrite
83
- from .fields import FieldEnumAsyncReadOnly
84
- from .fields import FieldEnumAsyncWriteOnly
85
- from .fields import FieldEnumAsyncReadWrite
80
+ from .async_register_and_field import FieldAsyncReadOnly
81
+ from .async_register_and_field import FieldAsyncWriteOnly
82
+ from .async_register_and_field import FieldAsyncReadWrite
83
+ from .async_register_and_field import FieldEnumAsyncReadOnly
84
+ from .async_register_and_field import FieldEnumAsyncWriteOnly
85
+ from .async_register_and_field import FieldEnumAsyncReadWrite
86
86
 
87
87
  from .memory import MemoryReadOnly, MemoryReadOnlyLegacy
88
88
  from .memory import MemoryWriteOnly, MemoryWriteOnlyLegacy
@@ -40,10 +40,9 @@ else:
40
40
 
41
41
 
42
42
  if TYPE_CHECKING:
43
- from .async_register import AsyncReg, AsyncRegArray
44
- from .async_register import ReadableAsyncRegister, WritableAsyncRegister
45
- from .async_register import ReadableAsyncRegisterArray, WriteableAsyncRegisterArray
46
-
43
+ from .async_register_and_field import AsyncReg, AsyncRegArray
44
+ from .async_register_and_field import ReadableAsyncRegister, WritableAsyncRegister
45
+ from .async_register_and_field import ReadableAsyncRegisterArray, WriteableAsyncRegisterArray
47
46
  # pylint: disable=duplicate-code
48
47
 
49
48
 
@@ -178,14 +177,12 @@ class _MemoryAsyncReadOnly(AsyncMemory, ABC):
178
177
  read_callback = self._callbacks.read_callback
179
178
 
180
179
  if read_block_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
180
  addr = self.address_lookup(entry=start_entry)
184
181
  data_read = \
185
- await read_block_callback(addr=addr, # type: ignore[call-arg]
186
- width=self.width, # type: ignore[call-arg]
187
- accesswidth=self.width, # type: ignore[call-arg]
188
- 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)
189
186
 
190
187
  if isinstance(self._callbacks, AsyncCallbackSet):
191
188
  if not isinstance(data_read, List):
@@ -205,11 +202,10 @@ class _MemoryAsyncReadOnly(AsyncMemory, ABC):
205
202
 
206
203
  for entry in range(number_entries):
207
204
  entry_address = self.address_lookup(entry=start_entry+entry)
208
- # python 3.7 doesn't have the callback defined as protocol so mypy doesn't
209
- # recognise the arguments in the call back functions
210
- data_entry = await read_callback(addr=entry_address, # type: ignore[call-arg]
211
- width=self.width, # type: ignore[call-arg]
212
- 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)
213
209
 
214
210
  data_read[entry] = data_entry
215
211
 
@@ -249,14 +245,12 @@ class _MemoryAsyncReadOnly(AsyncMemory, ABC):
249
245
  read_callback = self._callbacks.read_callback
250
246
 
251
247
  if read_block_callback is not None:
252
- # python 3.7 doesn't have the callback defined as protocol so mypy doesn't recognise
253
- # the arguments in the call back functions
254
248
  addr = self.address_lookup(entry=start_entry)
255
249
  data_read = \
256
- await read_block_callback(addr=addr, # type: ignore[call-arg]
257
- width=self.width, # type: ignore[call-arg]
258
- accesswidth=self.width, # type: ignore[call-arg]
259
- 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)
260
254
 
261
255
  if isinstance(self._callbacks, AsyncCallbackSet):
262
256
  if not isinstance(data_read, List):
@@ -276,11 +270,9 @@ class _MemoryAsyncReadOnly(AsyncMemory, ABC):
276
270
 
277
271
  for entry in range(number_entries):
278
272
  entry_address = self.address_lookup(entry=start_entry + entry)
279
- # python 3.7 doesn't have the callback defined as protocol so mypy doesn't
280
- # recognise the arguments in the call back functions
281
- data_entry = await read_callback(addr=entry_address, # type: ignore[call-arg]
282
- width=self.width, # type: ignore[call-arg]
283
- accesswidth=self.width) # type: ignore[call-arg]
273
+ data_entry = await read_callback(addr=entry_address,
274
+ width=self.width,
275
+ accesswidth=self.width)
284
276
 
285
277
  data_read_block[entry] = data_entry
286
278
 
@@ -429,53 +421,41 @@ class _MemoryAsyncWriteOnly(AsyncMemory, ABC):
429
421
  f'but got {len(data):d}')
430
422
 
431
423
  if self._callbacks.write_block_callback is not None:
432
- # python 3.7 doesn't have the callback defined as protocol so mypy doesn't recognise
433
- # the arguments in the call back functions
424
+
434
425
  addr = self.address_lookup(entry=start_entry)
435
426
  if isinstance(self._callbacks, AsyncCallbackSet):
436
427
  if isinstance(data, Array):
437
- # pylint: disable=line-too-long
438
- await self._callbacks.write_block_callback(addr=addr, # type: ignore[call-arg]
439
- width=self.width, # type: ignore[call-arg]
440
- accesswidth=self.width, # type: ignore[call-arg]
441
- data=data.tolist()) # type: ignore[call-arg]
442
- # 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())
443
432
  else:
444
- # pylint: disable=line-too-long
445
- await self._callbacks.write_block_callback(addr=addr, # type: ignore[call-arg]
446
- width=self.width, # type: ignore[call-arg]
447
- accesswidth=self.width, # type: ignore[call-arg]
448
- data=data) # type: ignore[call-arg]
449
- # 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)
450
437
  if isinstance(self._callbacks, AsyncCallbackSetLegacy):
451
438
  if isinstance(data, list):
452
439
  # need to convert the data to an array before calling
453
- # pylint: disable=line-too-long
454
- await self._callbacks.write_block_callback(addr=addr, # type: ignore[call-arg]
455
- width=self.width, # type: ignore[call-arg]
456
- accesswidth=self.width, # type: ignore[call-arg]
457
- data=Array(self.array_typecode, data)) # type: ignore[call-arg]
458
- # 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))
459
445
  else:
460
- # pylint: disable=line-too-long
461
- await self._callbacks.write_block_callback(addr=addr, # type: ignore[call-arg]
462
- width=self.width, # type: ignore[call-arg]
463
- accesswidth=self.width, # type: ignore[call-arg]
464
- data=data) # type: ignore[call-arg]
465
- # 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)
466
450
 
467
451
  elif self._callbacks.write_callback is not None:
468
452
  # there is not write_block_callback defined so we must used individual write
469
453
  for entry_index, entry_data in enumerate(data):
470
454
  entry_address = self.address_lookup(entry=start_entry+entry_index)
471
- # python 3.7 doesn't have the callback defined as protocol so mypy doesn't
472
- # recognise the arguments in the call back functions
473
- # pylint: disable=line-too-long
474
- await self._callbacks.write_callback(addr=entry_address, # type: ignore[call-arg]
475
- width=self.width, # type: ignore[call-arg]
476
- accesswidth=self.width, # type: ignore[call-arg]
477
- data=entry_data) # type: ignore[call-arg]
478
- # 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)
479
459
 
480
460
  else:
481
461
  raise RuntimeError('No suitable callback')