cocotb 1.9.2__cp312-cp312-win32.whl → 2.0.0rc2__cp312-cp312-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 (161) hide show
  1. cocotb/_ANSI.py +65 -0
  2. cocotb/__init__.py +81 -327
  3. cocotb/_base_triggers.py +515 -0
  4. cocotb/_bridge.py +186 -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 +385 -0
  10. cocotb/_init.py +301 -0
  11. cocotb/_outcomes.py +54 -0
  12. cocotb/_profiling.py +46 -0
  13. cocotb/_py_compat.py +114 -29
  14. cocotb/_scheduler.py +448 -0
  15. cocotb/_test.py +248 -0
  16. cocotb/_test_factory.py +312 -0
  17. cocotb/_test_functions.py +42 -0
  18. cocotb/_typing.py +7 -0
  19. cocotb/_utils.py +274 -0
  20. cocotb/_version.py +3 -7
  21. cocotb/_xunit_reporter.py +66 -0
  22. cocotb/clock.py +353 -108
  23. cocotb/debug.py +24 -0
  24. cocotb/handle.py +1370 -793
  25. cocotb/libs/cocotb.dll +0 -0
  26. cocotb/libs/cocotb.exp +0 -0
  27. cocotb/libs/cocotb.lib +0 -0
  28. cocotb/libs/cocotbfli_modelsim.dll +0 -0
  29. cocotb/libs/cocotbfli_modelsim.exp +0 -0
  30. cocotb/libs/cocotbfli_modelsim.lib +0 -0
  31. cocotb/libs/cocotbutils.dll +0 -0
  32. cocotb/libs/cocotbutils.exp +0 -0
  33. cocotb/libs/cocotbutils.lib +0 -0
  34. cocotb/libs/cocotbvhpi_aldec.dll +0 -0
  35. cocotb/libs/cocotbvhpi_aldec.exp +0 -0
  36. cocotb/libs/cocotbvhpi_aldec.lib +0 -0
  37. cocotb/libs/cocotbvhpi_modelsim.dll +0 -0
  38. cocotb/libs/cocotbvhpi_modelsim.exp +0 -0
  39. cocotb/libs/cocotbvhpi_modelsim.lib +0 -0
  40. cocotb/libs/cocotbvpi_aldec.dll +0 -0
  41. cocotb/libs/cocotbvpi_aldec.exp +0 -0
  42. cocotb/libs/cocotbvpi_aldec.lib +0 -0
  43. cocotb/libs/cocotbvpi_ghdl.dll +0 -0
  44. cocotb/libs/cocotbvpi_ghdl.exp +0 -0
  45. cocotb/libs/cocotbvpi_ghdl.lib +0 -0
  46. cocotb/libs/cocotbvpi_icarus.exp +0 -0
  47. cocotb/libs/cocotbvpi_icarus.lib +0 -0
  48. cocotb/libs/cocotbvpi_icarus.vpl +0 -0
  49. cocotb/libs/cocotbvpi_modelsim.dll +0 -0
  50. cocotb/libs/cocotbvpi_modelsim.exp +0 -0
  51. cocotb/libs/cocotbvpi_modelsim.lib +0 -0
  52. cocotb/libs/embed.dll +0 -0
  53. cocotb/libs/embed.exp +0 -0
  54. cocotb/libs/embed.lib +0 -0
  55. cocotb/libs/gpi.dll +0 -0
  56. cocotb/libs/gpi.exp +0 -0
  57. cocotb/libs/gpi.lib +0 -0
  58. cocotb/libs/gpilog.dll +0 -0
  59. cocotb/libs/gpilog.exp +0 -0
  60. cocotb/libs/gpilog.lib +0 -0
  61. cocotb/libs/pygpilog.dll +0 -0
  62. cocotb/libs/pygpilog.exp +0 -0
  63. cocotb/libs/pygpilog.lib +0 -0
  64. cocotb/logging.py +424 -0
  65. cocotb/queue.py +103 -57
  66. cocotb/regression.py +680 -717
  67. cocotb/result.py +17 -188
  68. cocotb/share/def/aldec.exp +0 -0
  69. cocotb/share/def/aldec.lib +0 -0
  70. cocotb/share/def/ghdl.exp +0 -0
  71. cocotb/share/def/ghdl.lib +0 -0
  72. cocotb/share/def/icarus.exp +0 -0
  73. cocotb/share/def/icarus.lib +0 -0
  74. cocotb/share/def/modelsim.def +1 -0
  75. cocotb/share/def/modelsim.exp +0 -0
  76. cocotb/share/def/modelsim.lib +0 -0
  77. cocotb/share/include/cocotb_utils.h +9 -32
  78. cocotb/share/include/embed.h +7 -30
  79. cocotb/share/include/gpi.h +331 -137
  80. cocotb/share/include/gpi_logging.h +221 -142
  81. cocotb/share/include/py_gpi_logging.h +8 -5
  82. cocotb/share/include/vpi_user_ext.h +4 -26
  83. cocotb/share/lib/verilator/verilator.cpp +80 -67
  84. cocotb/simtime.py +230 -0
  85. cocotb/simulator.cp312-win32.exp +0 -0
  86. cocotb/simulator.cp312-win32.lib +0 -0
  87. cocotb/simulator.cp312-win32.pyd +0 -0
  88. cocotb/simulator.pyi +107 -0
  89. cocotb/task.py +478 -213
  90. cocotb/triggers.py +55 -1092
  91. cocotb/types/__init__.py +28 -47
  92. cocotb/types/_abstract_array.py +151 -0
  93. cocotb/types/_array.py +295 -0
  94. cocotb/types/_indexing.py +17 -0
  95. cocotb/types/_logic.py +333 -0
  96. cocotb/types/_logic_array.py +868 -0
  97. cocotb/types/{range.py → _range.py} +47 -48
  98. cocotb/types/_resolve.py +76 -0
  99. cocotb/utils.py +58 -646
  100. cocotb-2.0.0rc2.dist-info/METADATA +60 -0
  101. cocotb-2.0.0rc2.dist-info/RECORD +146 -0
  102. {cocotb-1.9.2.dist-info → cocotb-2.0.0rc2.dist-info}/WHEEL +1 -1
  103. cocotb-2.0.0rc2.dist-info/entry_points.txt +2 -0
  104. {cocotb-1.9.2.dist-info → cocotb-2.0.0rc2.dist-info/licenses}/LICENSE +1 -0
  105. {cocotb-1.9.2.dist-info → cocotb-2.0.0rc2.dist-info}/top_level.txt +1 -0
  106. cocotb_tools/__init__.py +0 -0
  107. cocotb_tools/_coverage.py +33 -0
  108. cocotb_tools/_vendor/__init__.py +3 -0
  109. cocotb_tools/check_results.py +65 -0
  110. cocotb_tools/combine_results.py +152 -0
  111. cocotb_tools/config.py +241 -0
  112. {cocotb → cocotb_tools}/ipython_support.py +29 -22
  113. cocotb_tools/makefiles/Makefile.deprecations +27 -0
  114. {cocotb/share → cocotb_tools}/makefiles/Makefile.inc +77 -55
  115. {cocotb/share → cocotb_tools}/makefiles/Makefile.sim +16 -33
  116. {cocotb/share → cocotb_tools}/makefiles/simulators/Makefile.activehdl +9 -16
  117. cocotb_tools/makefiles/simulators/Makefile.cvc +61 -0
  118. cocotb_tools/makefiles/simulators/Makefile.dsim +39 -0
  119. {cocotb/share → cocotb_tools}/makefiles/simulators/Makefile.ghdl +13 -42
  120. cocotb_tools/makefiles/simulators/Makefile.icarus +80 -0
  121. cocotb_tools/makefiles/simulators/Makefile.ius +93 -0
  122. cocotb_tools/makefiles/simulators/Makefile.modelsim +9 -0
  123. cocotb_tools/makefiles/simulators/Makefile.nvc +60 -0
  124. cocotb_tools/makefiles/simulators/Makefile.questa +29 -0
  125. cocotb/share/makefiles/simulators/Makefile.questa → cocotb_tools/makefiles/simulators/Makefile.questa-compat +26 -54
  126. cocotb_tools/makefiles/simulators/Makefile.questa-qisqrun +149 -0
  127. {cocotb/share → cocotb_tools}/makefiles/simulators/Makefile.riviera +17 -56
  128. cocotb_tools/makefiles/simulators/Makefile.vcs +65 -0
  129. {cocotb/share → cocotb_tools}/makefiles/simulators/Makefile.verilator +15 -22
  130. {cocotb/share → cocotb_tools}/makefiles/simulators/Makefile.xcelium +20 -52
  131. cocotb_tools/py.typed +0 -0
  132. cocotb_tools/runner.py +1868 -0
  133. cocotb/_sim_versions.py → cocotb_tools/sim_versions.py +16 -21
  134. pygpi/entry.py +34 -18
  135. pygpi/py.typed +0 -0
  136. cocotb/ANSI.py +0 -92
  137. cocotb/binary.py +0 -858
  138. cocotb/config.py +0 -289
  139. cocotb/decorators.py +0 -332
  140. cocotb/log.py +0 -303
  141. cocotb/memdebug.py +0 -35
  142. cocotb/outcomes.py +0 -56
  143. cocotb/runner.py +0 -1400
  144. cocotb/scheduler.py +0 -1099
  145. cocotb/share/makefiles/Makefile.deprecations +0 -12
  146. cocotb/share/makefiles/simulators/Makefile.cvc +0 -94
  147. cocotb/share/makefiles/simulators/Makefile.icarus +0 -111
  148. cocotb/share/makefiles/simulators/Makefile.ius +0 -125
  149. cocotb/share/makefiles/simulators/Makefile.modelsim +0 -32
  150. cocotb/share/makefiles/simulators/Makefile.nvc +0 -64
  151. cocotb/share/makefiles/simulators/Makefile.vcs +0 -98
  152. cocotb/types/array.py +0 -309
  153. cocotb/types/logic.py +0 -292
  154. cocotb/types/logic_array.py +0 -298
  155. cocotb/wavedrom.py +0 -199
  156. cocotb/xunit_reporter.py +0 -80
  157. cocotb-1.9.2.dist-info/METADATA +0 -168
  158. cocotb-1.9.2.dist-info/RECORD +0 -121
  159. cocotb-1.9.2.dist-info/entry_points.txt +0 -2
  160. /cocotb/{_vendor/__init__.py → py.typed} +0 -0
  161. {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.0rc2
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,146 @@
1
+ cocotb/_ANSI.py,sha256=LIywDKSZXT5TuKq24YO4_c0lF-02wJYbQ50Ko_T4PJY,2272
2
+ cocotb/__init__.py,sha256=ytXW8EBeHwDddWwPArzeq8tNWy1tRShpU1UEte3_NgQ,3254
3
+ cocotb/_base_triggers.py,sha256=SNaN-K-wzLJjq5IFTlyvCkzZ9ExwqoXJg7YOvWAz_e0,16083
4
+ cocotb/_bridge.py,sha256=BAw73PpnTa-CCFkGt9Z9BM3AefdmzLWV8jCLYIOz-lw,6196
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=7WQrkh-Ad6DV1qXNOVi8Ic50MJiGrrrqcYqKjMWd34w,13908
9
+ cocotb/_gpi_triggers.py,sha256=G9xHsfKer0PLAOq-zQcesjf7PEBAfEb2S79ZJxgXaRo,13567
10
+ cocotb/_init.py,sha256=V3WT9OtdqE5Ng9Z-ahaFDmbgPR4jQ5qxU59LNZ-lSTc,10681
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=av_8OUaDUpMIuf6weE-gYxgmNqiA1z4ry7brzGl5fuY,3880
14
+ cocotb/_scheduler.py,sha256=O7eMLk967Y4POenXLITgPcw2TpWXX542qIskiyXlr3c,20351
15
+ cocotb/_test.py,sha256=A1XkTUB8OrkPOOLE3igX8Pt_vCmHq1Xmmix_L4E4l8k,8439
16
+ cocotb/_test_factory.py,sha256=EEuZAWWMcwFqaEp0XqiYvRUxSZbjuRu1IZNjp6N702I,11927
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=DPeKRP7PARMJiBOEvHv-HcJbwSIAIo7DqnmqDnAuzm4,8481
20
+ cocotb/_version.py,sha256=8b5YwveFmhXomHhjDgTw28Qkz6vsEjAuoL7UkoZD3lU,98
21
+ cocotb/_xunit_reporter.py,sha256=1Su41GFrI55Tz9GSuXQHpFjao8F_RVGTbNsTnEYa4BU,2516
22
+ cocotb/clock.py,sha256=gTmxt6LcDyZ1lS5dX9gW4WL5XjpG8S19_dDovciLdTo,14335
23
+ cocotb/debug.py,sha256=OsvxKAf5lCTw0W50_8wPqwfMN9KbQT9Ep2MAGtjf6NM,816
24
+ cocotb/handle.py,sha256=1_RgF8yx2q1Y44JhtWq4OBK9tp_bBpZGfamWIBk5AsI,62849
25
+ cocotb/logging.py,sha256=Y5pQbP3MVwJabIp9VMKI5jD93xD5PUWlj4cwCQjuE8g,14247
26
+ cocotb/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
27
+ cocotb/queue.py,sha256=i9jYA5r3ihpVF8LmZd-O7s7MMtOvJoZeNm5NzF6Ln8o,6698
28
+ cocotb/regression.py,sha256=llXaAHZCcMS_gqr4O7FFPfwmWSF-rrHbB44TDaYWyog,29786
29
+ cocotb/result.py,sha256=-Np4hFX9qMJsZ8KtTAfMWOpBim_funkViV0oRc0xo3I,1203
30
+ cocotb/simtime.py,sha256=wHg07UBDwiCbVqS9CjzTP3-Zvh0FKvLBntvIveTCrc8,6668
31
+ cocotb/simulator.cp312-win32.exp,sha256=bcE_4kEJ1f9yCBhldjehwttDygrZ1Qu8dpMwyABxfok,749
32
+ cocotb/simulator.cp312-win32.lib,sha256=Bs4xwWXvw-Jl26aNOve3XXIW5Z0ZIOup3wjxIzHt2ss,1992
33
+ cocotb/simulator.cp312-win32.pyd,sha256=jlMVDh1FbeaeOWhnFVyZc-y8d-XFLVD-cGJm0umOEZ8,33792
34
+ cocotb/simulator.cp312-win32.pyd.2.config,sha256=JGoavZmGw71REMRGu8DrBlQezZSCkQx7E3GOzGIf9_o,263
35
+ cocotb/simulator.pyi,sha256=Bk_UlfkoKKUi4XE4ZmXBN8AEPbNwQvDrcaaB_2XYIKA,3814
36
+ cocotb/task.py,sha256=opsqjgaUMwxdWOK7IVAjZJwt1BJfXksWAblLz8ojrNE,21076
37
+ cocotb/triggers.py,sha256=_AnYLLtlcwliRvqXu3qKmlSGgu-yercYwpOFZfrZd4w,1450
38
+ cocotb/utils.py,sha256=hDN5jlImp8fAyBHZQXQfvKMViQKiUZqHTc1_nzETiNk,3491
39
+ cocotb/libs/cocotb.dll,sha256=KaSt3o1vb-Zbi7D6UBdN2fU2M-VAzw3X0dxxlB5RyR8,15360
40
+ cocotb/libs/cocotb.exp,sha256=phb0-wRqaaa5DKQCY1XVKf51oxxuFfxoKx6Ueoq2QIc,1113
41
+ cocotb/libs/cocotb.lib,sha256=WZEmuOm4okiJ164TUbyrsv8ZLC9Zjk_tDSGd1mPWqYw,2372
42
+ cocotb/libs/cocotbfli_modelsim.dll,sha256=qgLPnAEqpXiz2LJ68VkKunlvvy6ggs9IBI51dTeYxeo,82432
43
+ cocotb/libs/cocotbfli_modelsim.exp,sha256=VzDjebgSB4bsx0_Qklb5JN3MYujrI7zdid-CK2psolY,875
44
+ cocotb/libs/cocotbfli_modelsim.lib,sha256=nZaczewE_6R8DIpWmH-xGjZU7RjeyfhrWqDQc22bxls,2176
45
+ cocotb/libs/cocotbutils.dll,sha256=PRKLhsRwS_kC8x5dz_bALXertM3ZG0nBrOqBlnpuGMM,9728
46
+ cocotb/libs/cocotbutils.exp,sha256=6aXsqAxh0DK4gIA1Z37QnLTtPQ7L56uSIuzPvqB3wxs,976
47
+ cocotb/libs/cocotbutils.lib,sha256=ffsEqjx9uAOaE50t8bML3hEAQhMtIucxpyxyl_RoTmU,2154
48
+ cocotb/libs/cocotbvhpi_aldec.dll,sha256=a2sXc_QsXlrm4AbBsISDmNCcKWYIcPxF7CcnHQsNwXk,80896
49
+ cocotb/libs/cocotbvhpi_aldec.exp,sha256=DhcHXfYXIOpf7pxWubsne17JW03_yaWBDOQIYGga4r8,1075
50
+ cocotb/libs/cocotbvhpi_aldec.lib,sha256=OLJxZBwL8dRmZKdhbIU2I3lbNGX-jNX2yFplRTkSKy0,2448
51
+ cocotb/libs/cocotbvhpi_modelsim.dll,sha256=S3PIvIk8BhA_83v-3n9Z2DBvlnNLSblunx0olm6N_Mc,80896
52
+ cocotb/libs/cocotbvhpi_modelsim.exp,sha256=5Mnlu0cX8sz18L8kIkAmvUrilJ5Ea1e4gU0knCC4qU4,1082
53
+ cocotb/libs/cocotbvhpi_modelsim.lib,sha256=XLbtTImWjHbnC8PM5X_U0K_DeNCR17uw_CQyWV7tfmc,2492
54
+ cocotb/libs/cocotbvpi_aldec.dll,sha256=uM3u_XKeDZhacTuGnCjS7wsOcuvKCsAIFjBSkYABrYM,72192
55
+ cocotb/libs/cocotbvpi_aldec.exp,sha256=iQvBTcRc2xSB9J9xR1v8-AT3h-6e9W8aE94qaru4uKI,1070
56
+ cocotb/libs/cocotbvpi_aldec.lib,sha256=fG2PzXPRR_QK0pxqALh1LHDWEoWkO1nTlLXT3Na9QQE,2428
57
+ cocotb/libs/cocotbvpi_ghdl.dll,sha256=d2GlDEJbGjEv339WE_IHn9oC23bCOjccyTewSASwGug,72192
58
+ cocotb/libs/cocotbvpi_ghdl.exp,sha256=f3A8EBNZ5JkQJ-Uv5-c5evwNCAo-KsPLKEm8Xjl7Eg8,1069
59
+ cocotb/libs/cocotbvpi_ghdl.lib,sha256=viFoIURkFec0F8Ne-zc7SBzGqEQbwU_kcJ2man9Sdek,2412
60
+ cocotb/libs/cocotbvpi_icarus.exp,sha256=TZL9L5AC01MpZ25xuKmUhr7NyMj6kG-ZSBTYO5rbiZg,1073
61
+ cocotb/libs/cocotbvpi_icarus.lib,sha256=UY5GFXxu84Vmn3MpiKRt-ZsBKxkv5_H-u_s6HoS6aWo,2442
62
+ cocotb/libs/cocotbvpi_icarus.vpl,sha256=bbHpYhaZdplJXtSuLGTCL9k3ehL9Om7hf_P3xVl5cPM,71680
63
+ cocotb/libs/cocotbvpi_modelsim.dll,sha256=YkACkjDa34GZchDzZlWYpz4Qiy_mVXJJzwETwYt9Z5U,72192
64
+ cocotb/libs/cocotbvpi_modelsim.exp,sha256=lTkTMgPZkAW3Yi__-LkIBwGA9uSBDZMegJJTbxvv7t4,1077
65
+ cocotb/libs/cocotbvpi_modelsim.lib,sha256=MzgjtCw0_PlcnnMxA7LxPUzRYe0cXShq3THcoAoxNNE,2472
66
+ cocotb/libs/embed.dll,sha256=GefD-QA-Lq73YsTtvyc8N_vV2UB0oeaVolS3HSzGmJM,10752
67
+ cocotb/libs/embed.exp,sha256=EgzKfS6bL03iN1wcnVNCT3GtvT8nvzl9GvUmKnVF98Q,1100
68
+ cocotb/libs/embed.lib,sha256=tksz2vxjfYtYXEgs_4zQCm9DtnlUc2cPh5uDv2VQDRM,2336
69
+ cocotb/libs/gpi.dll,sha256=_ady0fp6HYaYrRIRB51C8IguVqyic9pf4lLJ2ijIANY,50688
70
+ cocotb/libs/gpi.exp,sha256=-CaYrilHN5CJNthARbk-J2ibBAQoD8i6ouoolaHVP2Y,18386
71
+ cocotb/libs/gpi.lib,sha256=q5c6eEF8Nt2dKlwcLqMYNyoE-EkEaMb8DRZfyxNFzrg,30238
72
+ cocotb/libs/gpilog.dll,sha256=HuCNGDKFNPPINLFETu8BmGuvOFkJpPGBDHimtKM89lc,15872
73
+ cocotb/libs/gpilog.exp,sha256=GNVtd2UneScheadk6uj0uv7pVdFvXzerrj8RkE95Cl8,2225
74
+ cocotb/libs/gpilog.lib,sha256=CknuQ4dRlZIKMSEf8ouBnNkOWTVxW1Ib08r1UMj1hBQ,4206
75
+ cocotb/libs/pygpilog.dll,sha256=aK62SBBG_rnGgecaY3Cdcab6ENxlDRrOJ_TVELTurYk,17920
76
+ cocotb/libs/pygpilog.exp,sha256=kgxiHn-c3FSp-Zd_W-ECUoLzhFLzPInbCfENr2X7pfo,999
77
+ cocotb/libs/pygpilog.lib,sha256=BNSKcMVAYwyNKlw2KXMymFluKBdUXkUBhfvQLvuJ5zI,2180
78
+ cocotb/share/def/.gitignore,sha256=JYPaHghbqtLFl-9QtOWaAHvoDOhVxEewSYwHgoYYgf8,46
79
+ cocotb/share/def/README.md,sha256=dptv3zHQGzMqLt3Zv4XOd5IZeGqQS7Lwcq1XCs3BcR0,380
80
+ cocotb/share/def/aldec.def,sha256=ItgxVlRaVuD20jGTN3JpkbHEO8jPfU5XjFlUqDUXzlU,991
81
+ cocotb/share/def/aldec.exp,sha256=PzkAbEc5IKyDNO8gxtSr2XSvuYinIYOHz7CNr9tZ09M,7810
82
+ cocotb/share/def/aldec.lib,sha256=z6xlNNQT3AUz3ltaN6DkXm31Scj-t0J6W87CfZEJhr8,13212
83
+ cocotb/share/def/ghdl.def,sha256=ETQh5VI72dWSJi_ig5m163GfLrxScYUamt5BjHjoKsY,705
84
+ cocotb/share/def/ghdl.exp,sha256=IMc9xSmORjp_sSr56ir32HDYjmcL1U-FfC45YaSA1jo,5678
85
+ cocotb/share/def/ghdl.lib,sha256=ZEr-8MMoRXy4t-pVE8KNlaO_teCecelOhWES_c6lbmw,9780
86
+ cocotb/share/def/icarus.def,sha256=VRqkgUyzR2sa916Ra56cZVIb4kzbqDlJVWIOc3389qY,698
87
+ cocotb/share/def/icarus.exp,sha256=wo4Wj4MITo2tmYU2mMj3ZDJZ2qfdB2VJK2ebVyfMe0c,5672
88
+ cocotb/share/def/icarus.lib,sha256=e63-8l6iQ6L6w1U3S16c8eBAO6HJDo3PgOrEW-M829s,9412
89
+ cocotb/share/def/modelsim.def,sha256=HncvdEzVllbzFR21Nqcbsr-oXMWIfx3YsVi-RK4sbpk,2402
90
+ cocotb/share/def/modelsim.exp,sha256=3d5qtuJW6GX-p4jrZTM-vouytRiOfsL8HXyeCb34XMo,16750
91
+ cocotb/share/def/modelsim.lib,sha256=99tIqVWYXzWqSYoQd8hsXlHGlJwcCW0Yp1hDWkMJbHw,27736
92
+ cocotb/share/include/cocotb_utils.h,sha256=6lHffujs9KVTMMMu08r-ClbaZeyRUHHK-S1QnwH54Lg,2477
93
+ cocotb/share/include/embed.h,sha256=I5PXIcyNRQH3I6A81trsGJ-ksGDQt3tvJsrzht5ux_U,894
94
+ cocotb/share/include/exports.h,sha256=RRDg9diMCUUJxdzKX0B6TGmQBNttcoVMBVCCLUUKsrA,677
95
+ cocotb/share/include/gpi.h,sha256=g3wIG_jtdVvIchXTE50wiAkqvYE4AuL-LzXswRV066w,15576
96
+ cocotb/share/include/gpi_logging.h,sha256=sBgvpiYjJfrFIKKLGh8oVMBHGGNz93rIILjA9N6VheQ,13560
97
+ cocotb/share/include/py_gpi_logging.h,sha256=24ZP1aRMNz4HRLpX6Mt3f-pkvEKK-EFZ1cKUaqA548w,722
98
+ cocotb/share/include/vhpi_user_ext.h,sha256=VLXbA-oeO83mL1vR0e4Ye0zMe5ijIaXnvT2FRFgsYDY,654
99
+ cocotb/share/include/vpi_user_ext.h,sha256=uJd-wKgKyVpoBVgagiPjND0WjciUNZaoqSa9Js_3UhU,970
100
+ cocotb/share/lib/verilator/verilator.cpp,sha256=LsFSuJdrZGenJVDOA-UFDBsukInK3gYVmUgNskhKGs8,6284
101
+ cocotb/types/__init__.py,sha256=B7pA3EAY6q1tnK60NcDcAJTYXT41N8_mPS5fz2vG0dc,957
102
+ cocotb/types/_abstract_array.py,sha256=mP94zSDRKHxsZTb5nUAHEYjp43Klx-8RT3DS5r1Vm_4,4059
103
+ cocotb/types/_array.py,sha256=Pql7dtXc9NQXN1OMddLuZG_t5SThgaToejKYOnGC1NI,11171
104
+ cocotb/types/_indexing.py,sha256=OHxwlnEVNEc0JOO7XQr6DZNfPBJTeTjYno8Y60OiCIk,543
105
+ cocotb/types/_logic.py,sha256=wWJsoCzENu3tbJKEil4FjMryjpiJr-owkYMfH9NQ-tU,11365
106
+ cocotb/types/_logic_array.py,sha256=7y3lQBE0_YbpBzw5AV2o7vbZr3heRDZJfmSV_hyASHY,33629
107
+ cocotb/types/_range.py,sha256=hfUuB7vIqg9SHVucjqwwVozW20-gCYJGUaKeNGoJXrU,6421
108
+ cocotb/types/_resolve.py,sha256=bdxyDw1ViQbtjTalszemARE4s8-KQgJmvGhNrFYd448,2129
109
+ cocotb-2.0.0rc2.dist-info/licenses/LICENSE,sha256=8mwxMGzbfTp55fmZ9K18_4yuclcePI7u1fPvmxa9LVo,1601
110
+ cocotb_tools/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
111
+ cocotb_tools/_coverage.py,sha256=cZBUbdVed99jcBA60t0U4XcLfq_8rkJVvk5Bdqlqhns,1265
112
+ cocotb_tools/check_results.py,sha256=nnn7k2jTTvDOzRmZ5Lk2fBbKvq_vEBw204FG61Rd-bw,1769
113
+ cocotb_tools/combine_results.py,sha256=_1vi7bglTlnWpsLr4IRrN779GpWN3wQDBXGLpicPbHE,5290
114
+ cocotb_tools/config.py,sha256=UEuv72qTQBfDYY3J3-FEc87zMe4MZOPG2fwFK5h3Ct8,7945
115
+ cocotb_tools/ipython_support.py,sha256=xjEOUgRbP9vHgMDy53eA0rBbGzb4v7O-aT0_6TwKHmM,3444
116
+ cocotb_tools/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
117
+ cocotb_tools/runner.py,sha256=uNVkLEp3-BR-nvK54RPfihVBnKVOfqIjO0cAwsypgDs,70355
118
+ cocotb_tools/sim_versions.py,sha256=KwXJ93B2hARVtTwShQjdvcytNcMWle43FJ5sgtqfXyA,4007
119
+ cocotb_tools/_vendor/__init__.py,sha256=-fGisWAvaqm1aSSA9GAUNT44xDHmASVhSo1Lg46OB6I,142
120
+ cocotb_tools/_vendor/distutils_version.py,sha256=k4Zipnnw88hyoE5MLBbgcXh9iu7iYGK3K5s97wVpOFE,13185
121
+ cocotb_tools/makefiles/Makefile.deprecations,sha256=HbmEQOwkp8XiWO_-Q43KnkqGbFxmlx_aIs4DoYIls6A,886
122
+ cocotb_tools/makefiles/Makefile.inc,sha256=PFf0Phe6P1q-2ovz0dGl6EAJI0OKqQADfiOv6P3Obww,5446
123
+ cocotb_tools/makefiles/Makefile.sim,sha256=exzBV6KRE8Xt9nuefvmhSRWqEh6V1pGrEDD5hl7HEt4,4171
124
+ cocotb_tools/makefiles/simulators/Makefile.activehdl,sha256=u2_EuY-c6OH4_h9aw1TCUH04GyH9EblduUy1-xAKqSs,3068
125
+ cocotb_tools/makefiles/simulators/Makefile.cvc,sha256=B6LadqK-NUhhnh2bI3bt6zueKcmR5DFQZ7wAobpnpck,2968
126
+ cocotb_tools/makefiles/simulators/Makefile.dsim,sha256=iNwQ_9JlV8z7TaN6-mllA_PBjH4h-xltoNDBQodofg4,1519
127
+ cocotb_tools/makefiles/simulators/Makefile.ghdl,sha256=FIIOlC-4R0KNi_Xtj4gu71Blxs87VcGlmdxT0UGnHAU,3452
128
+ cocotb_tools/makefiles/simulators/Makefile.icarus,sha256=joxeAbIkzDVNCjlyHKnXMHWmyi25CitsIgeVXN0AsDo,3208
129
+ cocotb_tools/makefiles/simulators/Makefile.ius,sha256=koC6rhvuO5Lf2qET24TQIrAuFHP3CizXZJ8H6wTnz2k,3665
130
+ cocotb_tools/makefiles/simulators/Makefile.modelsim,sha256=JK9P_d1HsOO61O8Rm6qeLSPZdNQ_mQNe8nf-2f8nzk0,355
131
+ cocotb_tools/makefiles/simulators/Makefile.nvc,sha256=qJocV32rwFXTGwP6HKZjKClN0QrjfWMiUHW_ZNWV0Ac,2643
132
+ cocotb_tools/makefiles/simulators/Makefile.questa,sha256=iLdtpBOwSAdeuSBa-TCY-GtDXdEDPVgM5pgLgdKNXmY,1504
133
+ cocotb_tools/makefiles/simulators/Makefile.questa-compat,sha256=upoFF9NsQ_2bwP6_cvd66Zn3YnRYVrPLLO6FiVl6Jbw,5165
134
+ cocotb_tools/makefiles/simulators/Makefile.questa-qisqrun,sha256=aHSRmQny4EXvqH8SLD5HPAzs_NuN-CwurLlf27Rc5zo,5017
135
+ cocotb_tools/makefiles/simulators/Makefile.riviera,sha256=iqaoWq6-j_eQbL_eJY4m8tjayjMX_9L413jmUiUSiJM,5495
136
+ cocotb_tools/makefiles/simulators/Makefile.vcs,sha256=xSxfmsPruSu4wvy_IydNIXdh74ewjM_McZs8AFGtmuY,2219
137
+ cocotb_tools/makefiles/simulators/Makefile.verilator,sha256=kgV50lZsGwrc_Fc1b5Gw9FcSYgZv0LLYa6rGO9DpyLI,2830
138
+ cocotb_tools/makefiles/simulators/Makefile.xcelium,sha256=vIKcGasyQv6wGH07MnOH3gXCZ_anC5c9azT_-5irDws,4354
139
+ pygpi/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
140
+ pygpi/entry.py,sha256=dvFSzT1MeGZOThD5r3gRFU-g2fDL4sUETsHu4unyL2U,1644
141
+ pygpi/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
142
+ cocotb-2.0.0rc2.dist-info/METADATA,sha256=EyJKsXmPLqlAmkJGh1Np4jPJR4HhUFV3Fv9r1CjDUws,3065
143
+ cocotb-2.0.0rc2.dist-info/WHEEL,sha256=LwxTQZ0gyDP_uaeNCLm-ZIktY9hv6x0e22Q-hgFd-po,97
144
+ cocotb-2.0.0rc2.dist-info/entry_points.txt,sha256=LQ3GHF3csyQTVmUZ1aLtd2y5DG1GgYUHZ_xntnGO5jg,59
145
+ cocotb-2.0.0rc2.dist-info/top_level.txt,sha256=1wga6LXtoeDGlL2GXjX4-w8Qt0y18HKevHn5PD7U2ZA,406
146
+ cocotb-2.0.0rc2.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: cp312-cp312-win32
5
5
 
@@ -0,0 +1,2 @@
1
+ [console_scripts]
2
+ cocotb-config = cocotb_tools.config:main
@@ -1,3 +1,4 @@
1
+ Copyright cocotb contributors
1
2
  Copyright (c) 2013 Potential Ventures Ltd
2
3
  Copyright (c) 2013 SolarFlare Communications Inc
3
4
  All rights reserved.
@@ -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)