cocotb 1.9.2__cp311-cp311-win32.whl → 2.0.0b1__cp311-cp311-win32.whl

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 cocotb might be problematic. Click here for more details.

Files changed (155) hide show
  1. cocotb/{ANSI.py → _ANSI.py} +5 -25
  2. cocotb/__init__.py +76 -332
  3. cocotb/_base_triggers.py +513 -0
  4. cocotb/_bridge.py +187 -0
  5. cocotb/_decorators.py +515 -0
  6. cocotb/_deprecation.py +3 -3
  7. cocotb/_exceptions.py +7 -0
  8. cocotb/_extended_awaitables.py +419 -0
  9. cocotb/_gpi_triggers.py +382 -0
  10. cocotb/_init.py +295 -0
  11. cocotb/_outcomes.py +54 -0
  12. cocotb/_profiling.py +46 -0
  13. cocotb/_py_compat.py +100 -29
  14. cocotb/_scheduler.py +454 -0
  15. cocotb/_test.py +245 -0
  16. cocotb/_test_factory.py +309 -0
  17. cocotb/_test_functions.py +42 -0
  18. cocotb/_typing.py +7 -0
  19. cocotb/_utils.py +296 -0
  20. cocotb/_version.py +3 -7
  21. cocotb/_xunit_reporter.py +66 -0
  22. cocotb/clock.py +271 -108
  23. cocotb/handle.py +1342 -795
  24. cocotb/libs/cocotb.dll +0 -0
  25. cocotb/libs/cocotb.exp +0 -0
  26. cocotb/libs/cocotb.lib +0 -0
  27. cocotb/libs/cocotbfli_modelsim.dll +0 -0
  28. cocotb/libs/cocotbfli_modelsim.exp +0 -0
  29. cocotb/libs/cocotbfli_modelsim.lib +0 -0
  30. cocotb/libs/cocotbutils.dll +0 -0
  31. cocotb/libs/cocotbutils.exp +0 -0
  32. cocotb/libs/cocotbutils.lib +0 -0
  33. cocotb/libs/cocotbvhpi_aldec.dll +0 -0
  34. cocotb/libs/cocotbvhpi_aldec.exp +0 -0
  35. cocotb/libs/cocotbvhpi_aldec.lib +0 -0
  36. cocotb/libs/cocotbvhpi_modelsim.dll +0 -0
  37. cocotb/libs/cocotbvhpi_modelsim.exp +0 -0
  38. cocotb/libs/cocotbvhpi_modelsim.lib +0 -0
  39. cocotb/libs/cocotbvpi_aldec.dll +0 -0
  40. cocotb/libs/cocotbvpi_aldec.exp +0 -0
  41. cocotb/libs/cocotbvpi_aldec.lib +0 -0
  42. cocotb/libs/cocotbvpi_ghdl.dll +0 -0
  43. cocotb/libs/cocotbvpi_ghdl.exp +0 -0
  44. cocotb/libs/cocotbvpi_ghdl.lib +0 -0
  45. cocotb/libs/cocotbvpi_icarus.exp +0 -0
  46. cocotb/libs/cocotbvpi_icarus.lib +0 -0
  47. cocotb/libs/cocotbvpi_icarus.vpl +0 -0
  48. cocotb/libs/cocotbvpi_modelsim.dll +0 -0
  49. cocotb/libs/cocotbvpi_modelsim.exp +0 -0
  50. cocotb/libs/cocotbvpi_modelsim.lib +0 -0
  51. cocotb/libs/embed.dll +0 -0
  52. cocotb/libs/embed.exp +0 -0
  53. cocotb/libs/embed.lib +0 -0
  54. cocotb/libs/gpi.dll +0 -0
  55. cocotb/libs/gpi.exp +0 -0
  56. cocotb/libs/gpi.lib +0 -0
  57. cocotb/libs/gpilog.dll +0 -0
  58. cocotb/libs/gpilog.exp +0 -0
  59. cocotb/libs/gpilog.lib +0 -0
  60. cocotb/libs/pygpilog.dll +0 -0
  61. cocotb/libs/pygpilog.exp +0 -0
  62. cocotb/libs/pygpilog.lib +0 -0
  63. cocotb/{log.py → logging.py} +105 -110
  64. cocotb/queue.py +103 -57
  65. cocotb/regression.py +667 -712
  66. cocotb/result.py +17 -188
  67. cocotb/share/def/aldec.exp +0 -0
  68. cocotb/share/def/aldec.lib +0 -0
  69. cocotb/share/def/ghdl.exp +0 -0
  70. cocotb/share/def/ghdl.lib +0 -0
  71. cocotb/share/def/icarus.exp +0 -0
  72. cocotb/share/def/icarus.lib +0 -0
  73. cocotb/share/def/modelsim.def +1 -0
  74. cocotb/share/def/modelsim.exp +0 -0
  75. cocotb/share/def/modelsim.lib +0 -0
  76. cocotb/share/include/cocotb_utils.h +6 -29
  77. cocotb/share/include/embed.h +5 -28
  78. cocotb/share/include/gpi.h +137 -92
  79. cocotb/share/include/gpi_logging.h +221 -142
  80. cocotb/share/include/py_gpi_logging.h +7 -4
  81. cocotb/share/include/vpi_user_ext.h +4 -26
  82. cocotb/share/lib/verilator/verilator.cpp +59 -54
  83. cocotb/simulator.cp311-win32.exp +0 -0
  84. cocotb/simulator.cp311-win32.lib +0 -0
  85. cocotb/simulator.cp311-win32.pyd +0 -0
  86. cocotb/simulator.pyi +107 -0
  87. cocotb/task.py +434 -212
  88. cocotb/triggers.py +55 -1092
  89. cocotb/types/__init__.py +25 -47
  90. cocotb/types/_abstract_array.py +151 -0
  91. cocotb/types/_array.py +264 -0
  92. cocotb/types/_logic.py +296 -0
  93. cocotb/types/_logic_array.py +834 -0
  94. cocotb/types/{range.py → _range.py} +36 -44
  95. cocotb/types/_resolve.py +76 -0
  96. cocotb/utils.py +119 -587
  97. cocotb-2.0.0b1.dist-info/METADATA +60 -0
  98. cocotb-2.0.0b1.dist-info/RECORD +143 -0
  99. {cocotb-1.9.2.dist-info → cocotb-2.0.0b1.dist-info}/WHEEL +1 -1
  100. cocotb-2.0.0b1.dist-info/entry_points.txt +2 -0
  101. {cocotb-1.9.2.dist-info → cocotb-2.0.0b1.dist-info}/top_level.txt +1 -0
  102. cocotb_tools/__init__.py +0 -0
  103. cocotb_tools/_coverage.py +33 -0
  104. cocotb_tools/_vendor/__init__.py +3 -0
  105. cocotb_tools/check_results.py +65 -0
  106. cocotb_tools/combine_results.py +152 -0
  107. cocotb_tools/config.py +241 -0
  108. {cocotb → cocotb_tools}/ipython_support.py +29 -22
  109. cocotb_tools/makefiles/Makefile.deprecations +27 -0
  110. {cocotb/share → cocotb_tools}/makefiles/Makefile.inc +82 -54
  111. {cocotb/share → cocotb_tools}/makefiles/Makefile.sim +8 -33
  112. {cocotb/share → cocotb_tools}/makefiles/simulators/Makefile.activehdl +9 -16
  113. cocotb_tools/makefiles/simulators/Makefile.cvc +61 -0
  114. cocotb_tools/makefiles/simulators/Makefile.dsim +39 -0
  115. {cocotb/share → cocotb_tools}/makefiles/simulators/Makefile.ghdl +13 -42
  116. cocotb_tools/makefiles/simulators/Makefile.icarus +80 -0
  117. cocotb_tools/makefiles/simulators/Makefile.ius +93 -0
  118. cocotb_tools/makefiles/simulators/Makefile.modelsim +9 -0
  119. cocotb_tools/makefiles/simulators/Makefile.nvc +60 -0
  120. cocotb_tools/makefiles/simulators/Makefile.questa +29 -0
  121. cocotb/share/makefiles/simulators/Makefile.questa → cocotb_tools/makefiles/simulators/Makefile.questa-compat +26 -54
  122. cocotb_tools/makefiles/simulators/Makefile.questa-qisqrun +149 -0
  123. {cocotb/share → cocotb_tools}/makefiles/simulators/Makefile.riviera +17 -56
  124. cocotb_tools/makefiles/simulators/Makefile.vcs +65 -0
  125. {cocotb/share → cocotb_tools}/makefiles/simulators/Makefile.verilator +15 -22
  126. {cocotb/share → cocotb_tools}/makefiles/simulators/Makefile.xcelium +20 -52
  127. cocotb_tools/py.typed +0 -0
  128. {cocotb → cocotb_tools}/runner.py +794 -361
  129. cocotb/_sim_versions.py → cocotb_tools/sim_versions.py +16 -21
  130. pygpi/entry.py +34 -17
  131. pygpi/py.typed +0 -0
  132. cocotb/binary.py +0 -858
  133. cocotb/config.py +0 -289
  134. cocotb/decorators.py +0 -332
  135. cocotb/memdebug.py +0 -35
  136. cocotb/outcomes.py +0 -56
  137. cocotb/scheduler.py +0 -1099
  138. cocotb/share/makefiles/Makefile.deprecations +0 -12
  139. cocotb/share/makefiles/simulators/Makefile.cvc +0 -94
  140. cocotb/share/makefiles/simulators/Makefile.icarus +0 -111
  141. cocotb/share/makefiles/simulators/Makefile.ius +0 -125
  142. cocotb/share/makefiles/simulators/Makefile.modelsim +0 -32
  143. cocotb/share/makefiles/simulators/Makefile.nvc +0 -64
  144. cocotb/share/makefiles/simulators/Makefile.vcs +0 -98
  145. cocotb/types/array.py +0 -309
  146. cocotb/types/logic.py +0 -292
  147. cocotb/types/logic_array.py +0 -298
  148. cocotb/wavedrom.py +0 -199
  149. cocotb/xunit_reporter.py +0 -80
  150. cocotb-1.9.2.dist-info/METADATA +0 -168
  151. cocotb-1.9.2.dist-info/RECORD +0 -121
  152. cocotb-1.9.2.dist-info/entry_points.txt +0 -2
  153. /cocotb/{_vendor/__init__.py → py.typed} +0 -0
  154. {cocotb-1.9.2.dist-info → cocotb-2.0.0b1.dist-info/licenses}/LICENSE +0 -0
  155. {cocotb → cocotb_tools}/_vendor/distutils_version.py +0 -0
@@ -0,0 +1,60 @@
1
+ Metadata-Version: 2.4
2
+ Name: cocotb
3
+ Version: 2.0.0b1
4
+ Summary: cocotb is a coroutine based cosimulation library for writing VHDL and Verilog testbenches in Python.
5
+ Home-page: https://www.cocotb.org
6
+ Author: Chris Higgs, Stuart Hodgson
7
+ Maintainer: cocotb contributors
8
+ Maintainer-email: cocotb@lists.librecores.org
9
+ License: BSD-3-Clause
10
+ Project-URL: Bug Tracker, https://github.com/cocotb/cocotb/issues
11
+ Project-URL: Source Code, https://github.com/cocotb/cocotb
12
+ Project-URL: Documentation, https://docs.cocotb.org
13
+ Platform: any
14
+ Classifier: Programming Language :: Python :: 3
15
+ Classifier: Programming Language :: Python :: 3.6
16
+ Classifier: Programming Language :: Python :: 3.7
17
+ Classifier: Programming Language :: Python :: 3.8
18
+ Classifier: Programming Language :: Python :: 3.9
19
+ Classifier: Programming Language :: Python :: 3.10
20
+ Classifier: Programming Language :: Python :: 3.11
21
+ Classifier: Programming Language :: Python :: 3.12
22
+ Classifier: Programming Language :: Python :: 3.13
23
+ Classifier: Topic :: Scientific/Engineering :: Electronic Design Automation (EDA)
24
+ Classifier: Framework :: cocotb
25
+ Requires-Python: >=3.6.2
26
+ Description-Content-Type: text/markdown
27
+ License-File: LICENSE
28
+ Requires-Dist: find_libpython
29
+ Dynamic: author
30
+ Dynamic: classifier
31
+ Dynamic: description
32
+ Dynamic: description-content-type
33
+ Dynamic: home-page
34
+ Dynamic: license
35
+ Dynamic: license-file
36
+ Dynamic: maintainer
37
+ Dynamic: maintainer-email
38
+ Dynamic: platform
39
+ Dynamic: project-url
40
+ Dynamic: requires-dist
41
+ Dynamic: requires-python
42
+ Dynamic: summary
43
+
44
+ **cocotb** is a framework empowering users to write VHDL and Verilog testbenches in Python.
45
+
46
+ [![Documentation Status](https://readthedocs.org/projects/cocotb/badge/?version=development)](https://docs.cocotb.org/en/stable/)
47
+ [![CI](https://github.com/cocotb/cocotb/actions/workflows/build-test-dev.yml/badge.svg?branch=master)](https://github.com/cocotb/cocotb/actions/workflows/build-test-dev.yml)
48
+ [![PyPI](https://img.shields.io/pypi/dm/cocotb.svg?label=PyPI%20downloads)](https://pypi.org/project/cocotb/)
49
+ [![Gitpod Ready-to-Code](https://img.shields.io/badge/Gitpod-ready--to--code-blue?logo=gitpod)](https://gitpod.io/#https://github.com/cocotb/cocotb)
50
+ [![codecov](https://codecov.io/gh/cocotb/cocotb/branch/master/graph/badge.svg)](https://codecov.io/gh/cocotb/cocotb)
51
+
52
+ * Check out the [tutorial](https://docs.cocotb.org/en/stable/quickstart.html)
53
+ * Read the [docs](https://docs.cocotb.org/en/stable/)
54
+ * Find more info in the [wiki](https://github.com/cocotb/cocotb/wiki)
55
+ * Discover [useful extensions](https://github.com/cocotb/cocotb/wiki/Further-Resources#utility-libraries-and-frameworks)
56
+ * Join the discussion in the [Gitter chat room](https://gitter.im/cocotb/Lobby)
57
+ * [Ask a question](https://github.com/cocotb/cocotb/discussions)
58
+ * [Raise a bug / request an enhancement](https://github.com/cocotb/cocotb/issues/new)
59
+
60
+ **Note: The current `master` branch of the cocotb repository is expected to be released as cocotb 2.0, which contains API-breaking changes from previous 1.x releases.**
@@ -0,0 +1,143 @@
1
+ cocotb/_ANSI.py,sha256=PvJYPrQzMSIFnC4ZKfEaHnWogrMjDkS5BwKPqIT0Rt8,2017
2
+ cocotb/__init__.py,sha256=7Qfo07pLI2Vjfog3OIgGm8pRGhbDnhSiy5lBQvZpjuE,3053
3
+ cocotb/_base_triggers.py,sha256=dQwG_jUY0QFP1bnzNKWjzRvY2vceSK33fWCfMyj73YM,15986
4
+ cocotb/_bridge.py,sha256=juvD7A4gwaGIn-FeqF5cawuLq47Dn0-3s7Y68AWkltE,6296
5
+ cocotb/_decorators.py,sha256=uBpX4LSj9zeIU7s3dWpQW92CJF94eNnZjKeoTZJLzc0,17916
6
+ cocotb/_deprecation.py,sha256=wgNE4GMapfvCzf4m6_dXg2FsOUGQnjpUU8erc5chRlo,1264
7
+ cocotb/_exceptions.py,sha256=FdlfgAG7yBT9l7mfhS_223fWtWei--3vMay1vsLhiOM,257
8
+ cocotb/_extended_awaitables.py,sha256=OVbhgx_RGE0mnl-2wyy5HjZ1bLNkJjd25SFfRP6IT94,13897
9
+ cocotb/_gpi_triggers.py,sha256=WnMG1rynfqsTiFcSy2jZGlER2WrWpCeY1obmAfmA8V4,13522
10
+ cocotb/_init.py,sha256=slvzktZG_yzV1eGacCuPsPf41qwNH4Cm4Gzkwy4UtkQ,10513
11
+ cocotb/_outcomes.py,sha256=r_PRvT2Yg3RQLwaFjOkCxo1G3h_DqPMljHc_eSe6cmo,1365
12
+ cocotb/_profiling.py,sha256=yk5aBDIVTIn6bxvW5a_EKpPwIt-dFU9ti7JbvBhOyuU,1152
13
+ cocotb/_py_compat.py,sha256=C_dkYXReswez2fk-rMUO7jDDW_gXcBAxictlwKuYm5k,3590
14
+ cocotb/_scheduler.py,sha256=oa0JhuYz2ZzMBNH1SiI8DTJHizJhYY1npqfkRzGpzl8,20368
15
+ cocotb/_test.py,sha256=em0geRUt_PxGU4VCooXORMXKof6fLyvOtVhcoGbyFHw,8343
16
+ cocotb/_test_factory.py,sha256=kAuyB9Ye41SxeaUnp9naIgYrW2kxXPPZV2WG-zli7FA,11882
17
+ cocotb/_test_functions.py,sha256=nAef7y_MSGnHPL9NWnGay0WNwhknDWq5v03W0dS1xJs,1164
18
+ cocotb/_typing.py,sha256=2VQIYOlzZR8F5bmi7WK_j_NdNl_Kl7g0DM_XpQo6zrY,337
19
+ cocotb/_utils.py,sha256=EXX861K87J_Jk4pnJEhmlTazd8pOiA-vTmFRYBcyLIs,9194
20
+ cocotb/_version.py,sha256=5CNQAu1nCp0CUgqcu33hgozmS4PCEHIkimHy0PR9D3Q,97
21
+ cocotb/_xunit_reporter.py,sha256=1Su41GFrI55Tz9GSuXQHpFjao8F_RVGTbNsTnEYa4BU,2516
22
+ cocotb/clock.py,sha256=sF_vishhVxF1DUvbGf1wcuKLuxvieveGA0ODfkgUuok,11262
23
+ cocotb/handle.py,sha256=vFfEMwUVSlWBdrenEQd0MC5atS4U65HTYhKrrffRq5U,61460
24
+ cocotb/logging.py,sha256=VO0AXFE1XgRl5wxEZx3F4GNzqsDgAtYrA90uZK9StCk,9817
25
+ cocotb/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
26
+ cocotb/queue.py,sha256=i9jYA5r3ihpVF8LmZd-O7s7MMtOvJoZeNm5NzF6Ln8o,6698
27
+ cocotb/regression.py,sha256=NH6QjPBoveYxcVOq98bTXZbW-eBRcEtivv7zTLXtatU,29644
28
+ cocotb/result.py,sha256=-Np4hFX9qMJsZ8KtTAfMWOpBim_funkViV0oRc0xo3I,1203
29
+ cocotb/simulator.cp311-win32.exp,sha256=YwxHMG92a6VZhv2jK8U5goUay1AwfG5iduhpk6fQG7E,749
30
+ cocotb/simulator.cp311-win32.lib,sha256=eOq2z4eS9dQTrkmiQako44PD4cFLu1sFWbpla1HbDHc,1992
31
+ cocotb/simulator.cp311-win32.pyd,sha256=6MKtE58wX_h6kxcTe8twWGQJYCLNOevie6t21gb6aF8,33792
32
+ cocotb/simulator.cp311-win32.pyd.2.config,sha256=JGoavZmGw71REMRGu8DrBlQezZSCkQx7E3GOzGIf9_o,263
33
+ cocotb/simulator.pyi,sha256=Bk_UlfkoKKUi4XE4ZmXBN8AEPbNwQvDrcaaB_2XYIKA,3814
34
+ cocotb/task.py,sha256=OoWkVKozlbJYO4u02i30InCh_ToJAxmbePzec01-1ZU,19732
35
+ cocotb/triggers.py,sha256=_AnYLLtlcwliRvqXu3qKmlSGgu-yercYwpOFZfrZd4w,1450
36
+ cocotb/utils.py,sha256=K45_k52Y8SMkXzBqH00q7glmjhkDvkCPltViQX6yo0U,7326
37
+ cocotb/libs/cocotb.dll,sha256=8Q7JBw_OaYjtEzmSJFwJOTY_qHDNVMHNkY4zuwOsgFQ,15360
38
+ cocotb/libs/cocotb.exp,sha256=x6dL00ADz8vneQcTAdwhFd-2-viv534ouXZkXO2vhJw,1113
39
+ cocotb/libs/cocotb.lib,sha256=GpsRceHUu5TS86pQcTQ6Tghd2ELDYgS2LUorLlsUcJM,2372
40
+ cocotb/libs/cocotbfli_modelsim.dll,sha256=96P_D7SshiPkj9jnDbRUQTldnvNzR7gVKKj6mqP4KeQ,82432
41
+ cocotb/libs/cocotbfli_modelsim.exp,sha256=9mmOFRnrDjIsebcSXCKr8ItQJiS45cRJp8BBKVm-c_E,875
42
+ cocotb/libs/cocotbfli_modelsim.lib,sha256=oFSXmaKcyu0-gD4z06418qm5CrtHqa8_qEvVncwVVAM,2176
43
+ cocotb/libs/cocotbutils.dll,sha256=Tf-urvrshTIFVsc7kQw7tDHLw5a7tgl-IrlYlivu4DA,9728
44
+ cocotb/libs/cocotbutils.exp,sha256=6gWcXtLtjuQaT3-4jvq_oHJi85uxSkCxJUCfQWN4HqE,976
45
+ cocotb/libs/cocotbutils.lib,sha256=DfrY194S_np9GtKY_nqu8ZUJAa00t7CHlfskeQiXsco,2154
46
+ cocotb/libs/cocotbvhpi_aldec.dll,sha256=LO49oUqYPv41dPkCVF3Fc_0OjOddk14f7kMdw2CJmhc,80896
47
+ cocotb/libs/cocotbvhpi_aldec.exp,sha256=4x-ATZ2pylKwcIkiFX6uK5x_JFgDkdj32kLjRFfibYs,1075
48
+ cocotb/libs/cocotbvhpi_aldec.lib,sha256=QVijT5crMt-bXsJcmkAVS6otZ6cL7HHqpcYRPFgdVRw,2448
49
+ cocotb/libs/cocotbvhpi_modelsim.dll,sha256=ZI3juaPap1WUBE8FBpANLGBL3l0VhY_KePUXcZBww_g,80896
50
+ cocotb/libs/cocotbvhpi_modelsim.exp,sha256=lZk_5h8s9_HSIQaqJDziEE9AKtlR6d3Unb8JBvWot2o,1082
51
+ cocotb/libs/cocotbvhpi_modelsim.lib,sha256=UeBfKTtzsaxRVEVidT82QBG-3Lpz_kpmDuiZ8Y5DoYU,2492
52
+ cocotb/libs/cocotbvpi_aldec.dll,sha256=VS2v2VfNJnGAmqats9T5KPKn2ksoUxTK20x8E3R-_H8,72192
53
+ cocotb/libs/cocotbvpi_aldec.exp,sha256=Ytm3DkBe5qu03WxLdb9o93pm2JGyfa2mlYshAwAtcBA,1070
54
+ cocotb/libs/cocotbvpi_aldec.lib,sha256=dUExonavm0w-4i3eHobOETe_lcscsBl0Izxu1a7FyI8,2428
55
+ cocotb/libs/cocotbvpi_ghdl.dll,sha256=u42HOb3vgPvIiaQvl3elB8gqUNKN5FgS3EfHdLDN7-Q,72192
56
+ cocotb/libs/cocotbvpi_ghdl.exp,sha256=F1aFSglSL-raMWX2gf-W3XeDedw5DX4RmaUi35XoMd8,1069
57
+ cocotb/libs/cocotbvpi_ghdl.lib,sha256=oDAw12ZNa46ecI8IQZVGbSPFAEnW8AJAVhDPAU2iZbA,2412
58
+ cocotb/libs/cocotbvpi_icarus.exp,sha256=Apmp1aiklf4m66OStk08yYUb9zzvj3GkjsHhrh0ezfc,1073
59
+ cocotb/libs/cocotbvpi_icarus.lib,sha256=JX4G6sN7Y0j3y43nY8yNrkfKOo8OCTwIAWGkkMt1mA0,2442
60
+ cocotb/libs/cocotbvpi_icarus.vpl,sha256=79KjeNGB0_NJPU1DIpOTkqibX9P3Aj5rGVbVaP4LLWA,71680
61
+ cocotb/libs/cocotbvpi_modelsim.dll,sha256=A3TRofBoMU6wtxd-akRjnkkKePQY6Nal6Pzrv-kGV9s,72192
62
+ cocotb/libs/cocotbvpi_modelsim.exp,sha256=3nhcnQgU-dWbotb_jOLo4OT0naWmlJz4_hEQJgZUCVc,1077
63
+ cocotb/libs/cocotbvpi_modelsim.lib,sha256=XR_szWKxEBgW5QTFRuc1OqGj_DX532Vj5HA3JGhPuSI,2472
64
+ cocotb/libs/embed.dll,sha256=YM8P4hbrzyDrYP_XVjMuP_GXpdkziPIrePEq6qtrqHM,10752
65
+ cocotb/libs/embed.exp,sha256=aVIDMJQ3AvjX7AqKxoZTC3-ip5vShPqAqFnkxcMZAW0,1100
66
+ cocotb/libs/embed.lib,sha256=uk3_gs1Nc2IbYsdHB_8YarfZbr4xV0_KAHBn0VWA94Q,2336
67
+ cocotb/libs/gpi.dll,sha256=yfSc2GTwoRUVwB_jLMtU3l_pnHzqHEl3gWCX09yvco0,50688
68
+ cocotb/libs/gpi.exp,sha256=PVR7AR-JIiu2Uum-8frqx5vJRxk0VXpduibB99Oyoc0,18386
69
+ cocotb/libs/gpi.lib,sha256=TDx9xsud5mlLlDnga2GNeGjehNcqfDN646N97oHUc9g,30238
70
+ cocotb/libs/gpilog.dll,sha256=bhOk3hijM8EBnrVmxFDdpGvSn1ePuHI5gq9B27y8emE,15872
71
+ cocotb/libs/gpilog.exp,sha256=C0-I8poDc8kgJJjzEaLDbHMHFlpZenPVTE-e7riU0LY,2225
72
+ cocotb/libs/gpilog.lib,sha256=Vip4GSMQgCmU-JEVNDL0OVSbESBh1cPM1kGfcS7UMVQ,4206
73
+ cocotb/libs/pygpilog.dll,sha256=z8KiKVWbemGioJ4m1ZN3y7cvsBaNlgf7mo3y3n7ouBE,17408
74
+ cocotb/libs/pygpilog.exp,sha256=J1VK-i_Y3bItKxrSso5Iu0nQjyz3phF0eMEZ2nXgE_0,999
75
+ cocotb/libs/pygpilog.lib,sha256=zPXSIvDgzsyPHH9UHnfAxwMADgCgrt2gst4SIxiCuIA,2180
76
+ cocotb/share/def/.gitignore,sha256=JYPaHghbqtLFl-9QtOWaAHvoDOhVxEewSYwHgoYYgf8,46
77
+ cocotb/share/def/README.md,sha256=dptv3zHQGzMqLt3Zv4XOd5IZeGqQS7Lwcq1XCs3BcR0,380
78
+ cocotb/share/def/aldec.def,sha256=ItgxVlRaVuD20jGTN3JpkbHEO8jPfU5XjFlUqDUXzlU,991
79
+ cocotb/share/def/aldec.exp,sha256=5GAwgGopaIveaBSkBUwxYEmt9n75ZUr_aCwNa_C8dP4,7810
80
+ cocotb/share/def/aldec.lib,sha256=QnjV1eVIikjBplSjhNrJas85HW4BIoIJgvJIB0Sht2Q,13212
81
+ cocotb/share/def/ghdl.def,sha256=ETQh5VI72dWSJi_ig5m163GfLrxScYUamt5BjHjoKsY,705
82
+ cocotb/share/def/ghdl.exp,sha256=1Nqb7iQoY1YwxGaIaZai_x8DmCG3dRZGMn3xrCwiYco,5678
83
+ cocotb/share/def/ghdl.lib,sha256=LgVshEclAWisKymu_HDthsvcl-232gP6x58rPjmGass,9780
84
+ cocotb/share/def/icarus.def,sha256=VRqkgUyzR2sa916Ra56cZVIb4kzbqDlJVWIOc3389qY,698
85
+ cocotb/share/def/icarus.exp,sha256=sxRoNgUU3tYezloIfliqiKcD3s_p72L9h4HXGrXtqzQ,5672
86
+ cocotb/share/def/icarus.lib,sha256=qb2UG4EeDoOjC2oa_NkeJx6hY3X1F9NCtZlitoqhVVM,9412
87
+ cocotb/share/def/modelsim.def,sha256=HncvdEzVllbzFR21Nqcbsr-oXMWIfx3YsVi-RK4sbpk,2402
88
+ cocotb/share/def/modelsim.exp,sha256=CuF57b8G-nJkrf5TbBY0RdqsrQ21rbvAZdRbiz8Q6BA,16750
89
+ cocotb/share/def/modelsim.lib,sha256=i2UC2dvFHG3jG-JypYDHG0QtCP-nTcSPbv3cR9WnkDc,27736
90
+ cocotb/share/include/cocotb_utils.h,sha256=vmdd8RbtYRFayw13e43G21xCmtIfMXViv2Rlx5NGUTo,2477
91
+ cocotb/share/include/embed.h,sha256=zSY6XUUZbIzYH6m5i15ejot6utpsq5I2QMU_LYhbsag,894
92
+ cocotb/share/include/exports.h,sha256=RRDg9diMCUUJxdzKX0B6TGmQBNttcoVMBVCCLUUKsrA,677
93
+ cocotb/share/include/gpi.h,sha256=qLnSMOzPyR_TH_ByUY9fhacbiPKI9aLpdhL9-gR-eDw,9782
94
+ cocotb/share/include/gpi_logging.h,sha256=sBgvpiYjJfrFIKKLGh8oVMBHGGNz93rIILjA9N6VheQ,13560
95
+ cocotb/share/include/py_gpi_logging.h,sha256=kWhJemucpl6iADC63_r6HGqp3sUEZX2DD_IjO6KdLiA,722
96
+ cocotb/share/include/vhpi_user_ext.h,sha256=VLXbA-oeO83mL1vR0e4Ye0zMe5ijIaXnvT2FRFgsYDY,654
97
+ cocotb/share/include/vpi_user_ext.h,sha256=uJd-wKgKyVpoBVgagiPjND0WjciUNZaoqSa9Js_3UhU,970
98
+ cocotb/share/lib/verilator/verilator.cpp,sha256=tTTk-Fz_3r9ihrGjYCSZ0uSuwcxwsqXwhEQXvEc6kvA,6027
99
+ cocotb/types/__init__.py,sha256=fN-CRmQjQhoedzS_t3sW8Nt0q7vWRlIz04bmGh6nnU0,862
100
+ cocotb/types/_abstract_array.py,sha256=mP94zSDRKHxsZTb5nUAHEYjp43Klx-8RT3DS5r1Vm_4,4059
101
+ cocotb/types/_array.py,sha256=7Yh3-lJEEyfgbZDd8jI-akAed4y2BmDofit3O_G52ps,9975
102
+ cocotb/types/_logic.py,sha256=7mCSrgSrNxxe3oMMdyAAiodk-ujyZjIQpNGWQ8BacMI,10294
103
+ cocotb/types/_logic_array.py,sha256=AvFbRYFMxjZfdJrulFwWVbSY7_gjDdMoDc_CZVP6jgk,32266
104
+ cocotb/types/_range.py,sha256=Hed-cC9dZRHJgX9c-P3KWvGss-jyGMmot81ha0nyaZs,6170
105
+ cocotb/types/_resolve.py,sha256=bdxyDw1ViQbtjTalszemARE4s8-KQgJmvGhNrFYd448,2129
106
+ cocotb-2.0.0b1.dist-info/licenses/LICENSE,sha256=oBp8aKF9rhLjG78uW4zxmiVsjA8Viwwdyj3nSbEXpmc,1570
107
+ cocotb_tools/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
108
+ cocotb_tools/_coverage.py,sha256=cZBUbdVed99jcBA60t0U4XcLfq_8rkJVvk5Bdqlqhns,1265
109
+ cocotb_tools/check_results.py,sha256=nnn7k2jTTvDOzRmZ5Lk2fBbKvq_vEBw204FG61Rd-bw,1769
110
+ cocotb_tools/combine_results.py,sha256=_1vi7bglTlnWpsLr4IRrN779GpWN3wQDBXGLpicPbHE,5290
111
+ cocotb_tools/config.py,sha256=S86lbErlO3wsMCL34X1AZ-iLSypaLexcXwyJNLjeUDg,7924
112
+ cocotb_tools/ipython_support.py,sha256=xjEOUgRbP9vHgMDy53eA0rBbGzb4v7O-aT0_6TwKHmM,3444
113
+ cocotb_tools/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
114
+ cocotb_tools/runner.py,sha256=iyN0TJIE9cOw30FrwKsfWN2kOrEBTmd6rtzokDchy9M,69189
115
+ cocotb_tools/sim_versions.py,sha256=KwXJ93B2hARVtTwShQjdvcytNcMWle43FJ5sgtqfXyA,4007
116
+ cocotb_tools/_vendor/__init__.py,sha256=-fGisWAvaqm1aSSA9GAUNT44xDHmASVhSo1Lg46OB6I,142
117
+ cocotb_tools/_vendor/distutils_version.py,sha256=k4Zipnnw88hyoE5MLBbgcXh9iu7iYGK3K5s97wVpOFE,13185
118
+ cocotb_tools/makefiles/Makefile.deprecations,sha256=HbmEQOwkp8XiWO_-Q43KnkqGbFxmlx_aIs4DoYIls6A,886
119
+ cocotb_tools/makefiles/Makefile.inc,sha256=08dSS4N467Xcwu9rlie2qsSBn4BwIEuj9QOLuHDggOk,5677
120
+ cocotb_tools/makefiles/Makefile.sim,sha256=5AtfiB08_BPs2qn5kHJ_kILE6eyjcTq_w2V57xsstUU,3763
121
+ cocotb_tools/makefiles/simulators/Makefile.activehdl,sha256=u2_EuY-c6OH4_h9aw1TCUH04GyH9EblduUy1-xAKqSs,3068
122
+ cocotb_tools/makefiles/simulators/Makefile.cvc,sha256=B6LadqK-NUhhnh2bI3bt6zueKcmR5DFQZ7wAobpnpck,2968
123
+ cocotb_tools/makefiles/simulators/Makefile.dsim,sha256=iNwQ_9JlV8z7TaN6-mllA_PBjH4h-xltoNDBQodofg4,1519
124
+ cocotb_tools/makefiles/simulators/Makefile.ghdl,sha256=FIIOlC-4R0KNi_Xtj4gu71Blxs87VcGlmdxT0UGnHAU,3452
125
+ cocotb_tools/makefiles/simulators/Makefile.icarus,sha256=joxeAbIkzDVNCjlyHKnXMHWmyi25CitsIgeVXN0AsDo,3208
126
+ cocotb_tools/makefiles/simulators/Makefile.ius,sha256=koC6rhvuO5Lf2qET24TQIrAuFHP3CizXZJ8H6wTnz2k,3665
127
+ cocotb_tools/makefiles/simulators/Makefile.modelsim,sha256=JK9P_d1HsOO61O8Rm6qeLSPZdNQ_mQNe8nf-2f8nzk0,355
128
+ cocotb_tools/makefiles/simulators/Makefile.nvc,sha256=qJocV32rwFXTGwP6HKZjKClN0QrjfWMiUHW_ZNWV0Ac,2643
129
+ cocotb_tools/makefiles/simulators/Makefile.questa,sha256=iLdtpBOwSAdeuSBa-TCY-GtDXdEDPVgM5pgLgdKNXmY,1504
130
+ cocotb_tools/makefiles/simulators/Makefile.questa-compat,sha256=upoFF9NsQ_2bwP6_cvd66Zn3YnRYVrPLLO6FiVl6Jbw,5165
131
+ cocotb_tools/makefiles/simulators/Makefile.questa-qisqrun,sha256=aHSRmQny4EXvqH8SLD5HPAzs_NuN-CwurLlf27Rc5zo,5017
132
+ cocotb_tools/makefiles/simulators/Makefile.riviera,sha256=iqaoWq6-j_eQbL_eJY4m8tjayjMX_9L413jmUiUSiJM,5495
133
+ cocotb_tools/makefiles/simulators/Makefile.vcs,sha256=KtZL_m4OxBdm4Q93sFfmR1neW48IlAok9CBs8jwKfwI,2214
134
+ cocotb_tools/makefiles/simulators/Makefile.verilator,sha256=kgV50lZsGwrc_Fc1b5Gw9FcSYgZv0LLYa6rGO9DpyLI,2830
135
+ cocotb_tools/makefiles/simulators/Makefile.xcelium,sha256=vIKcGasyQv6wGH07MnOH3gXCZ_anC5c9azT_-5irDws,4354
136
+ pygpi/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
137
+ pygpi/entry.py,sha256=byPVFAe3A8dLlQGPvMf-wDtYUt81BGZmSOoiQLn_FnI,1735
138
+ pygpi/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
139
+ cocotb-2.0.0b1.dist-info/METADATA,sha256=zNL18tlyFczh8Hk6tvAxGpzfVX_r1q__LWdX4dHWjDA,3064
140
+ cocotb-2.0.0b1.dist-info/WHEEL,sha256=Ri8zddKrjGdgjlj1OpSsvpDnvHfnQhMQWi3E_v2pqng,97
141
+ cocotb-2.0.0b1.dist-info/entry_points.txt,sha256=LQ3GHF3csyQTVmUZ1aLtd2y5DG1GgYUHZ_xntnGO5jg,59
142
+ cocotb-2.0.0b1.dist-info/top_level.txt,sha256=1wga6LXtoeDGlL2GXjX4-w8Qt0y18HKevHn5PD7U2ZA,406
143
+ cocotb-2.0.0b1.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: setuptools (75.2.0)
2
+ Generator: setuptools (80.9.0)
3
3
  Root-Is-Purelib: false
4
4
  Tag: cp311-cp311-win32
5
5
 
@@ -0,0 +1,2 @@
1
+ [console_scripts]
2
+ cocotb-config = cocotb_tools.config:main
@@ -13,4 +13,5 @@ cocotb\libs\libgpi
13
13
  cocotb\libs\libgpilog
14
14
  cocotb\libs\libpygpilog
15
15
  cocotb\simulator
16
+ cocotb_tools
16
17
  pygpi
File without changes
@@ -0,0 +1,33 @@
1
+ # Copyright cocotb contributors
2
+ # Licensed under the Revised BSD License, see LICENSE for details.
3
+ # SPDX-License-Identifier: BSD-3-Clause
4
+ import os
5
+
6
+
7
+ def start_cocotb_library_coverage(_: object) -> None: # pragma: no cover
8
+ if "COCOTB_LIBRARY_COVERAGE" not in os.environ:
9
+ return
10
+ try:
11
+ import coverage # noqa: PLC0415
12
+ except (ImportError, ModuleNotFoundError):
13
+ raise RuntimeError(
14
+ "cocotb library coverage collection requested but coverage package not available. Install it using `pip install coverage`."
15
+ ) from None
16
+ else:
17
+ library_coverage = coverage.coverage(
18
+ data_file=".coverage.cocotb",
19
+ config_file=False,
20
+ branch=True,
21
+ source=["cocotb"],
22
+ )
23
+ library_coverage.start()
24
+
25
+ def stop_library_coverage() -> None:
26
+ library_coverage.stop()
27
+ library_coverage.save() # pragma: no cover
28
+
29
+ # This must come after `library_coverage.start()` to ensure coverage is being
30
+ # collected on the cocotb library before importing from it.
31
+ from cocotb._init import _register_shutdown_callback # noqa: PLC0415
32
+
33
+ _register_shutdown_callback(stop_library_coverage)
@@ -0,0 +1,3 @@
1
+ # Copyright cocotb contributors
2
+ # Licensed under the Revised BSD License, see LICENSE for details.
3
+ # SPDX-License-Identifier: BSD-3-Clause
@@ -0,0 +1,65 @@
1
+ # Copyright cocotb contributors
2
+ # Licensed under the Revised BSD License, see LICENSE for details.
3
+ # SPDX-License-Identifier: BSD-3-Clause
4
+ """Checks if a JUnit results file exists and whether there was failing tests."""
5
+
6
+ import argparse
7
+ import sys
8
+ from pathlib import Path
9
+ from typing import Tuple
10
+ from xml.etree import ElementTree
11
+
12
+
13
+ def get_results(results_xml_file: Path) -> Tuple[int, int]:
14
+ """Return number of tests and fails in *results_xml_file*.
15
+
16
+ Returns:
17
+ Tuple of number of tests and number of fails.
18
+
19
+ Raises:
20
+ RuntimeError: If *results_xml_file* is non-existent.
21
+ """
22
+
23
+ __tracebackhide__ = True # Hide the traceback when using PyTest.
24
+
25
+ if not results_xml_file.is_file():
26
+ raise RuntimeError(
27
+ f"ERROR: Simulation terminated abnormally. Results file {results_xml_file} not found."
28
+ )
29
+
30
+ num_tests = 0
31
+ num_failed = 0
32
+
33
+ tree = ElementTree.parse(results_xml_file)
34
+ for ts in tree.iter("testsuite"):
35
+ for tc in ts.iter("testcase"):
36
+ num_tests += 1
37
+ for _ in tc.iter("failure"):
38
+ num_failed += 1
39
+
40
+ return (num_tests, num_failed)
41
+
42
+
43
+ def _get_parser() -> argparse.ArgumentParser:
44
+ """Return the cmdline parser"""
45
+ parser = argparse.ArgumentParser(description=__doc__)
46
+ parser.add_argument(
47
+ "results_file", help="Path to XML file holding JUnit test results.", type=Path
48
+ )
49
+ return parser
50
+
51
+
52
+ def main() -> int:
53
+ parser = _get_parser()
54
+ args = parser.parse_args()
55
+
56
+ try:
57
+ (_, num_failed) = get_results(args.results_file)
58
+ except RuntimeError:
59
+ return 1
60
+ return num_failed
61
+
62
+
63
+ if __name__ == "__main__":
64
+ rc = main()
65
+ sys.exit(rc)
@@ -0,0 +1,152 @@
1
+ # Copyright cocotb contributors
2
+ # Licensed under the Revised BSD License, see LICENSE for details.
3
+ # SPDX-License-Identifier: BSD-3-Clause
4
+ #!/usr/bin/env python
5
+ """
6
+ Simple script to combine JUnit test results into a single XML file.
7
+ """
8
+
9
+ import argparse
10
+ import os
11
+ import re
12
+ import sys
13
+ from pathlib import Path
14
+ from typing import Iterable, Pattern
15
+ from xml.etree import ElementTree as ET
16
+
17
+
18
+ def _find_all(name: Pattern, path: Path) -> Iterable[Path]:
19
+ for obj in path.iterdir():
20
+ if obj.is_file() and re.match(name, obj.name):
21
+ yield obj
22
+ elif obj.is_dir():
23
+ yield from _find_all(name, obj)
24
+
25
+
26
+ def _get_parser() -> argparse.ArgumentParser:
27
+ """Return the cmdline parser"""
28
+ parser = argparse.ArgumentParser(
29
+ description=__doc__, formatter_class=argparse.ArgumentDefaultsHelpFormatter
30
+ )
31
+ parser.add_argument(
32
+ "directories",
33
+ nargs="*",
34
+ type=lambda args: [Path(arg) for arg in args],
35
+ default=[Path()],
36
+ help="Directories to search for input files.",
37
+ )
38
+ parser.add_argument(
39
+ "-i",
40
+ "--input-filename",
41
+ default=r"results.*\.xml",
42
+ help="A regular expression to match input filenames.",
43
+ )
44
+ parser.add_argument(
45
+ "-o",
46
+ "--output-file",
47
+ default="combined_results.xml",
48
+ help="Path of output XML file.",
49
+ )
50
+ parser.add_argument(
51
+ "--output-testsuites-name",
52
+ default="results",
53
+ help="Name of 'testsuites' element in output XML file.",
54
+ )
55
+ parser.add_argument(
56
+ "--verbose",
57
+ action="store_true",
58
+ help="Enables verbose output.",
59
+ )
60
+ parser.add_argument(
61
+ "--repo-root",
62
+ type=Path,
63
+ help="Specify root of cocotb repo the regression is run from (CI only).",
64
+ )
65
+ return parser
66
+
67
+
68
+ def main() -> int:
69
+ parser = _get_parser()
70
+ args = parser.parse_args()
71
+ rc = 0
72
+
73
+ result = ET.Element("testsuites", name=args.output_testsuites_name)
74
+
75
+ input_pattern = re.compile(args.input_filename)
76
+
77
+ for directory in args.directories:
78
+ if args.verbose:
79
+ print(f"Searching in {directory} for results.xml files.")
80
+ for fname in _find_all(input_pattern, directory):
81
+ if args.verbose:
82
+ print(f"Reading file {fname}.")
83
+ tree = ET.parse(fname)
84
+ for ts in tree.iter("testsuite"):
85
+ if args.verbose:
86
+ print(
87
+ "Testsuite name: {!r}, package: {!r}".format(
88
+ ts.get("name"), ts.get("package")
89
+ )
90
+ )
91
+ for existing in result:
92
+ if (existing.get("name") == ts.get("name")) and (
93
+ existing.get("package") == ts.get("package")
94
+ ):
95
+ if args.verbose:
96
+ print(
97
+ "Testsuite already exists in combined results. Extending it."
98
+ )
99
+ existing.extend(list(ts))
100
+ break
101
+ else:
102
+ if args.verbose:
103
+ print(
104
+ "Testsuite does not already exist in combined results. Adding it."
105
+ )
106
+ result.append(ts)
107
+
108
+ testsuite_count = 0
109
+ testcase_count = 0
110
+ for testsuite in result.iter("testsuite"):
111
+ testsuite_count += 1
112
+ for testcase in testsuite.iter("testcase"):
113
+ testcase_count += 1
114
+ for _ in testcase.iter("failure"):
115
+ rc = 1
116
+ print(
117
+ "Failure in testsuite: '{}' classname: '{}' testcase: '{}' with parameters '{}'".format(
118
+ testsuite.get("name"),
119
+ testcase.get("classname"),
120
+ testcase.get("name"),
121
+ testsuite.get("package"),
122
+ )
123
+ )
124
+ if (
125
+ os.getenv("GITHUB_ACTIONS") is not None
126
+ and args.repo_root is not None
127
+ ):
128
+ # Get test file relative to root of repo
129
+ file = testcase.get("file")
130
+ # if this file was output by cocotb, it has this attribute
131
+ assert file is not None
132
+ relative_file = Path(file).relative_to(args.repo_root)
133
+ print(
134
+ "::error file={},line={}::Test {}:{} failed".format(
135
+ relative_file,
136
+ testcase.get("lineno"),
137
+ testcase.get("classname"),
138
+ testcase.get("name"),
139
+ )
140
+ )
141
+
142
+ print(f"Ran a total of {testsuite_count} TestSuites and {testcase_count} TestCases")
143
+
144
+ if args.verbose:
145
+ print(f"Writing combined results to {args.output_file}")
146
+ ET.ElementTree(result).write(args.output_file, encoding="UTF-8")
147
+ return rc
148
+
149
+
150
+ if __name__ == "__main__":
151
+ rc = main()
152
+ sys.exit(rc)