codegreen 0.4.7__tar.gz → 0.4.9__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 (297) hide show
  1. codegreen-0.4.9/MANIFEST.in +17 -0
  2. {codegreen-0.4.7/codegreen.egg-info → codegreen-0.4.9}/PKG-INFO +44 -6
  3. {codegreen-0.4.7 → codegreen-0.4.9}/README.md +31 -5
  4. {codegreen-0.4.7 → codegreen-0.4.9}/codegreen/__init__.py +4 -2
  5. codegreen-0.4.9/codegreen/analysis/cfg/callgraph.py +554 -0
  6. codegreen-0.4.9/codegreen/analysis/cfg/energy_flow.py +32 -0
  7. codegreen-0.4.9/codegreen/analysis/efg/__init__.py +67 -0
  8. codegreen-0.4.9/codegreen/analysis/efg/adapter.py +53 -0
  9. codegreen-0.4.9/codegreen/analysis/efg/example/Sample.java +12 -0
  10. codegreen-0.4.9/codegreen/analysis/efg/example/__init__.py +1 -0
  11. codegreen-0.4.9/codegreen/analysis/efg/example/demo.py +28 -0
  12. codegreen-0.4.9/codegreen/analysis/efg/graph.py +300 -0
  13. codegreen-0.4.9/codegreen/analysis/efg/heuristics.py +137 -0
  14. codegreen-0.4.9/codegreen/analysis/efg/paths.py +128 -0
  15. codegreen-0.4.9/codegreen/analysis/efg/serialize.py +144 -0
  16. codegreen-0.4.9/codegreen/analysis/efg/types.py +76 -0
  17. codegreen-0.4.9/codegreen/analysis/sampling.py +157 -0
  18. codegreen-0.4.9/codegreen/analysis/timeline.py +235 -0
  19. {codegreen-0.4.7 → codegreen-0.4.9}/codegreen/cli/cli.py +659 -133
  20. codegreen-0.4.9/codegreen/cli/entrypoint.py +59 -0
  21. codegreen-0.4.9/codegreen/config.json +262 -0
  22. {codegreen-0.4.7 → codegreen-0.4.9}/codegreen/instrumentation/ast_processor.py +158 -23
  23. codegreen-0.4.9/codegreen/instrumentation/brace_normaliser.py +121 -0
  24. {codegreen-0.4.7 → codegreen-0.4.9}/codegreen/instrumentation/bridge_instrument.py +6 -4
  25. {codegreen-0.4.7 → codegreen-0.4.9}/codegreen/instrumentation/configs/c.json +15 -1
  26. {codegreen-0.4.7 → codegreen-0.4.9}/codegreen/instrumentation/configs/cpp.json +9 -8
  27. {codegreen-0.4.7 → codegreen-0.4.9}/codegreen/instrumentation/configs/java.json +12 -5
  28. {codegreen-0.4.7 → codegreen-0.4.9}/codegreen/instrumentation/configs/javascript.json +10 -3
  29. {codegreen-0.4.7 → codegreen-0.4.9}/codegreen/instrumentation/configs/python.json +18 -9
  30. {codegreen-0.4.7 → codegreen-0.4.9}/codegreen/instrumentation/language_configs.py +2 -1
  31. {codegreen-0.4.7 → codegreen-0.4.9}/codegreen/instrumentation/language_engine.py +384 -130
  32. {codegreen-0.4.7 → codegreen-0.4.9}/codegreen/instrumentation/language_runtimes/cpp/codegreen/runtime.hpp +15 -0
  33. codegreen-0.4.9/codegreen/instrumentation/language_runtimes/java/codegreen/runtime/CodeGreenStandaloneRuntime.java +284 -0
  34. codegreen-0.4.9/codegreen/instrumentation/language_runtimes/python/codegreen_otlp_sink.py +293 -0
  35. codegreen-0.4.9/codegreen/instrumentation/language_runtimes/python/codegreen_prometheus_sink.py +303 -0
  36. codegreen-0.4.9/codegreen/instrumentation/language_runtimes/python/codegreen_runtime.py +2566 -0
  37. codegreen-0.4.9/codegreen/measurement/CMakeLists.txt +105 -0
  38. codegreen-0.4.9/codegreen/measurement/include/adapters/language_adapter.hpp +58 -0
  39. codegreen-0.4.9/codegreen/measurement/include/adapters/python_bridge_adapter.hpp +31 -0
  40. codegreen-0.4.9/codegreen/measurement/include/config.hpp +106 -0
  41. codegreen-0.4.9/codegreen/measurement/include/energy_code_mapper.hpp +201 -0
  42. codegreen-0.4.9/codegreen/measurement/include/energy_storage.hpp +113 -0
  43. codegreen-0.4.9/codegreen/measurement/include/measurement.hpp +40 -0
  44. codegreen-0.4.9/codegreen/measurement/include/measurement_engine.hpp +120 -0
  45. codegreen-0.4.9/codegreen/measurement/include/measurement_session.hpp +43 -0
  46. codegreen-0.4.9/codegreen/measurement/include/nemb/accuracy_validator.hpp +122 -0
  47. codegreen-0.4.9/codegreen/measurement/include/nemb/codegreen_energy.hpp +457 -0
  48. codegreen-0.4.9/codegreen/measurement/include/nemb/config_loader.hpp +93 -0
  49. codegreen-0.4.9/codegreen/measurement/include/nemb/core/energy_provider.hpp +191 -0
  50. codegreen-0.4.9/codegreen/measurement/include/nemb/core/measurement_coordinator.hpp +286 -0
  51. codegreen-0.4.9/codegreen/measurement/include/nemb/drivers/amd_gpu_provider.hpp +290 -0
  52. codegreen-0.4.9/codegreen/measurement/include/nemb/drivers/amd_rapl_provider.hpp +7 -0
  53. codegreen-0.4.9/codegreen/measurement/include/nemb/drivers/arm_energy_provider.hpp +7 -0
  54. codegreen-0.4.9/codegreen/measurement/include/nemb/drivers/darwin_ioreport_provider.hpp +72 -0
  55. codegreen-0.4.9/codegreen/measurement/include/nemb/drivers/darwin_kpc_provider.hpp +50 -0
  56. codegreen-0.4.9/codegreen/measurement/include/nemb/drivers/intel_rapl_provider.hpp +204 -0
  57. codegreen-0.4.9/codegreen/measurement/include/nemb/drivers/nvidia_gpu_provider.hpp +301 -0
  58. codegreen-0.4.9/codegreen/measurement/include/nemb/drivers/windows_emi_provider.hpp +55 -0
  59. codegreen-0.4.9/codegreen/measurement/include/nemb/hal/counter_manager.hpp +384 -0
  60. codegreen-0.4.9/codegreen/measurement/include/nemb/utils/non_blocking_file_reader.hpp +62 -0
  61. codegreen-0.4.9/codegreen/measurement/include/nemb/utils/precision_timer.hpp +249 -0
  62. codegreen-0.4.9/codegreen/measurement/src/energy_code_mapper.cpp +880 -0
  63. codegreen-0.4.9/codegreen/measurement/src/nemb/accuracy_validator.cpp +581 -0
  64. codegreen-0.4.9/codegreen/measurement/src/nemb/codegreen_energy.cpp +683 -0
  65. codegreen-0.4.9/codegreen/measurement/src/nemb/config_loader.cpp +313 -0
  66. codegreen-0.4.9/codegreen/measurement/src/nemb/core/energy_provider.cpp +91 -0
  67. codegreen-0.4.9/codegreen/measurement/src/nemb/core/measurement_coordinator.cpp +528 -0
  68. codegreen-0.4.9/codegreen/measurement/src/nemb/drivers/amd_gpu_provider.cpp +620 -0
  69. codegreen-0.4.9/codegreen/measurement/src/nemb/drivers/amd_rapl_provider.cpp +141 -0
  70. codegreen-0.4.9/codegreen/measurement/src/nemb/drivers/arm_energy_provider.cpp +100 -0
  71. codegreen-0.4.9/codegreen/measurement/src/nemb/drivers/darwin_ioreport_provider.cpp +292 -0
  72. codegreen-0.4.9/codegreen/measurement/src/nemb/drivers/darwin_kpc_provider.cpp +250 -0
  73. codegreen-0.4.9/codegreen/measurement/src/nemb/drivers/intel_rapl_provider.cpp +546 -0
  74. codegreen-0.4.9/codegreen/measurement/src/nemb/drivers/nvidia_gpu_provider.cpp +612 -0
  75. codegreen-0.4.9/codegreen/measurement/src/nemb/drivers/windows_emi_provider.cpp +253 -0
  76. codegreen-0.4.9/codegreen/measurement/src/nemb/hal/counter_manager.cpp +415 -0
  77. codegreen-0.4.9/codegreen/measurement/src/nemb/utils/non_blocking_file_reader.cpp +118 -0
  78. codegreen-0.4.9/codegreen/measurement/src/nemb/utils/precision_timer.cpp +432 -0
  79. codegreen-0.4.9/codegreen/measurement/tests/nemb_validation_test.cpp +383 -0
  80. codegreen-0.4.9/codegreen/measurement/tests/rapl_provider_test.cpp +411 -0
  81. {codegreen-0.4.7 → codegreen-0.4.9/codegreen.egg-info}/PKG-INFO +44 -6
  82. codegreen-0.4.9/codegreen.egg-info/SOURCES.txt +144 -0
  83. {codegreen-0.4.7 → codegreen-0.4.9}/codegreen.egg-info/requires.txt +15 -0
  84. codegreen-0.4.7/codegreen/config.json → codegreen-0.4.9/config/codegreen.json +16 -40
  85. {codegreen-0.4.7 → codegreen-0.4.9}/pyproject.toml +20 -4
  86. {codegreen-0.4.7 → codegreen-0.4.9}/setup.py +9 -43
  87. codegreen-0.4.9/tests/test_callgraph_python.py +63 -0
  88. codegreen-0.4.9/tests/test_efg.py +890 -0
  89. codegreen-0.4.9/tests/test_examples.py +90 -0
  90. codegreen-0.4.9/tests/test_hotspot_taxonomy.py +126 -0
  91. codegreen-0.4.9/tests/test_instrumentation.py +1094 -0
  92. codegreen-0.4.9/tests/test_instrumentation_braces.py +241 -0
  93. codegreen-0.4.9/tests/test_report_audit.py +1765 -0
  94. codegreen-0.4.9/tests/test_sampling.py +72 -0
  95. codegreen-0.4.9/tests/test_timeline.py +98 -0
  96. codegreen-0.4.7/MANIFEST.in +0 -17
  97. codegreen-0.4.7/codegreen/analysis/cfg/callgraph.py +0 -185
  98. codegreen-0.4.7/codegreen/analysis/cfg/energy_flow.py +0 -725
  99. codegreen-0.4.7/codegreen/cli/entrypoint.py +0 -29
  100. codegreen-0.4.7/codegreen/instrumentation/language_runtimes/java/codegreen/runtime/CodeGreenStandaloneRuntime.java +0 -44
  101. codegreen-0.4.7/codegreen/instrumentation/language_runtimes/python/codegreen_runtime.py +0 -1204
  102. codegreen-0.4.7/codegreen.egg-info/SOURCES.txt +0 -219
  103. codegreen-0.4.7/tests/test_instrumentation.py +0 -345
  104. codegreen-0.4.7/tests/test_report_audit.py +0 -512
  105. codegreen-0.4.7/third_party/Programming-Language-Benchmarks/bench/algorithm/binarytrees/2.c +0 -161
  106. codegreen-0.4.7/third_party/Programming-Language-Benchmarks/bench/algorithm/helloworld/1.c +0 -10
  107. codegreen-0.4.7/third_party/Programming-Language-Benchmarks/bench/algorithm/knucleotide/1.c +0 -345
  108. codegreen-0.4.7/third_party/Programming-Language-Benchmarks/bench/algorithm/mandelbrot/1-ffi.c +0 -160
  109. codegreen-0.4.7/third_party/Programming-Language-Benchmarks/bench/algorithm/mandelbrot/1-mffi.c +0 -160
  110. codegreen-0.4.7/third_party/Programming-Language-Benchmarks/bench/algorithm/nbody/2.c +0 -150
  111. codegreen-0.4.7/third_party/Programming-Language-Benchmarks/bench/algorithm/nbody/5.c +0 -151
  112. codegreen-0.4.7/third_party/Programming-Language-Benchmarks/bench/algorithm/nbody/8-i.c +0 -200
  113. codegreen-0.4.7/third_party/Programming-Language-Benchmarks/bench/algorithm/nsieve/1.c +0 -34
  114. codegreen-0.4.7/third_party/Programming-Language-Benchmarks/bench/algorithm/spectral-norm/3.c +0 -72
  115. codegreen-0.4.7/third_party/Programming-Language-Benchmarks/bench/algorithm/spectral-norm/4.c +0 -231
  116. codegreen-0.4.7/third_party/Programming-Language-Benchmarks/bench/algorithm/spectral-norm/5-im.c +0 -88
  117. codegreen-0.4.7/third_party/Programming-Language-Benchmarks/bench/algorithm/spectral-norm/6-im.c +0 -197
  118. codegreen-0.4.7/third_party/nvim-treesitter/tests/indent/c/aligned_indent.c +0 -7
  119. codegreen-0.4.7/third_party/nvim-treesitter/tests/indent/c/array.c +0 -14
  120. codegreen-0.4.7/third_party/nvim-treesitter/tests/indent/c/comment.c +0 -8
  121. codegreen-0.4.7/third_party/nvim-treesitter/tests/indent/c/compound_lit.c +0 -10
  122. codegreen-0.4.7/third_party/nvim-treesitter/tests/indent/c/cond.c +0 -10
  123. codegreen-0.4.7/third_party/nvim-treesitter/tests/indent/c/enum.c +0 -5
  124. codegreen-0.4.7/third_party/nvim-treesitter/tests/indent/c/expr.c +0 -12
  125. codegreen-0.4.7/third_party/nvim-treesitter/tests/indent/c/func.c +0 -33
  126. codegreen-0.4.7/third_party/nvim-treesitter/tests/indent/c/if_else.c +0 -59
  127. codegreen-0.4.7/third_party/nvim-treesitter/tests/indent/c/issue-1568.c +0 -6
  128. codegreen-0.4.7/third_party/nvim-treesitter/tests/indent/c/issue-2086.c +0 -3
  129. codegreen-0.4.7/third_party/nvim-treesitter/tests/indent/c/issue-4079.c +0 -7
  130. codegreen-0.4.7/third_party/nvim-treesitter/tests/indent/c/issue-4117.c +0 -6
  131. codegreen-0.4.7/third_party/nvim-treesitter/tests/indent/c/issue-4525.c +0 -23
  132. codegreen-0.4.7/third_party/nvim-treesitter/tests/indent/c/label.c +0 -7
  133. codegreen-0.4.7/third_party/nvim-treesitter/tests/indent/c/loop.c +0 -16
  134. codegreen-0.4.7/third_party/nvim-treesitter/tests/indent/c/no_braces.c +0 -13
  135. codegreen-0.4.7/third_party/nvim-treesitter/tests/indent/c/preproc_cond.c +0 -10
  136. codegreen-0.4.7/third_party/nvim-treesitter/tests/indent/c/preproc_func.c +0 -9
  137. codegreen-0.4.7/third_party/nvim-treesitter/tests/indent/c/string.c +0 -5
  138. codegreen-0.4.7/third_party/nvim-treesitter/tests/indent/c/struct.c +0 -11
  139. codegreen-0.4.7/third_party/nvim-treesitter/tests/indent/c/switch.c +0 -16
  140. codegreen-0.4.7/third_party/nvim-treesitter/tests/indent/c/ternary.c +0 -6
  141. codegreen-0.4.7/third_party/nvim-treesitter/tests/indent/c/unfinished_comment.c +0 -2
  142. codegreen-0.4.7/third_party/nvim-treesitter/tests/query/highlights/c/enums-as-constants.c +0 -21
  143. codegreen-0.4.7/third_party/tree-sitter/crates/cli/src/templates/PARSER_NAME.h +0 -16
  144. codegreen-0.4.7/third_party/tree-sitter/crates/cli/src/templates/py-binding.c +0 -35
  145. codegreen-0.4.7/third_party/tree-sitter/crates/generate/src/templates/alloc.h +0 -54
  146. codegreen-0.4.7/third_party/tree-sitter/crates/generate/src/templates/array.h +0 -291
  147. codegreen-0.4.7/third_party/tree-sitter/crates/highlight/include/tree_sitter/highlight.h +0 -83
  148. codegreen-0.4.7/third_party/tree-sitter/crates/tags/include/tree_sitter/tags.h +0 -98
  149. codegreen-0.4.7/third_party/tree-sitter/lib/CMakeLists.txt +0 -95
  150. codegreen-0.4.7/third_party/tree-sitter/lib/binding_web/lib/tree-sitter.c +0 -987
  151. codegreen-0.4.7/third_party/tree-sitter/lib/include/tree_sitter/api.h +0 -1481
  152. codegreen-0.4.7/third_party/tree-sitter/lib/src/alloc.c +0 -48
  153. codegreen-0.4.7/third_party/tree-sitter/lib/src/alloc.h +0 -41
  154. codegreen-0.4.7/third_party/tree-sitter/lib/src/array.h +0 -291
  155. codegreen-0.4.7/third_party/tree-sitter/lib/src/atomic.h +0 -68
  156. codegreen-0.4.7/third_party/tree-sitter/lib/src/clock.h +0 -146
  157. codegreen-0.4.7/third_party/tree-sitter/lib/src/error_costs.h +0 -11
  158. codegreen-0.4.7/third_party/tree-sitter/lib/src/get_changed_ranges.c +0 -523
  159. codegreen-0.4.7/third_party/tree-sitter/lib/src/get_changed_ranges.h +0 -36
  160. codegreen-0.4.7/third_party/tree-sitter/lib/src/host.h +0 -21
  161. codegreen-0.4.7/third_party/tree-sitter/lib/src/language.c +0 -293
  162. codegreen-0.4.7/third_party/tree-sitter/lib/src/language.h +0 -293
  163. codegreen-0.4.7/third_party/tree-sitter/lib/src/length.h +0 -52
  164. codegreen-0.4.7/third_party/tree-sitter/lib/src/lexer.c +0 -483
  165. codegreen-0.4.7/third_party/tree-sitter/lib/src/lexer.h +0 -54
  166. codegreen-0.4.7/third_party/tree-sitter/lib/src/lib.c +0 -12
  167. codegreen-0.4.7/third_party/tree-sitter/lib/src/node.c +0 -875
  168. codegreen-0.4.7/third_party/tree-sitter/lib/src/parser.c +0 -2293
  169. codegreen-0.4.7/third_party/tree-sitter/lib/src/parser.h +0 -286
  170. codegreen-0.4.7/third_party/tree-sitter/lib/src/point.h +0 -48
  171. codegreen-0.4.7/third_party/tree-sitter/lib/src/portable/endian.h +0 -241
  172. codegreen-0.4.7/third_party/tree-sitter/lib/src/query.c +0 -4349
  173. codegreen-0.4.7/third_party/tree-sitter/lib/src/reduce_action.h +0 -34
  174. codegreen-0.4.7/third_party/tree-sitter/lib/src/reusable_node.h +0 -95
  175. codegreen-0.4.7/third_party/tree-sitter/lib/src/stack.c +0 -912
  176. codegreen-0.4.7/third_party/tree-sitter/lib/src/stack.h +0 -133
  177. codegreen-0.4.7/third_party/tree-sitter/lib/src/subtree.c +0 -1034
  178. codegreen-0.4.7/third_party/tree-sitter/lib/src/subtree.h +0 -399
  179. codegreen-0.4.7/third_party/tree-sitter/lib/src/tree.c +0 -170
  180. codegreen-0.4.7/third_party/tree-sitter/lib/src/tree.h +0 -31
  181. codegreen-0.4.7/third_party/tree-sitter/lib/src/tree_cursor.c +0 -716
  182. codegreen-0.4.7/third_party/tree-sitter/lib/src/tree_cursor.h +0 -48
  183. codegreen-0.4.7/third_party/tree-sitter/lib/src/ts_assert.h +0 -11
  184. codegreen-0.4.7/third_party/tree-sitter/lib/src/unicode/ptypes.h +0 -1
  185. codegreen-0.4.7/third_party/tree-sitter/lib/src/unicode/umachine.h +0 -448
  186. codegreen-0.4.7/third_party/tree-sitter/lib/src/unicode/urename.h +0 -1
  187. codegreen-0.4.7/third_party/tree-sitter/lib/src/unicode/utf.h +0 -1
  188. codegreen-0.4.7/third_party/tree-sitter/lib/src/unicode/utf16.h +0 -733
  189. codegreen-0.4.7/third_party/tree-sitter/lib/src/unicode/utf8.h +0 -881
  190. codegreen-0.4.7/third_party/tree-sitter/lib/src/unicode.h +0 -75
  191. codegreen-0.4.7/third_party/tree-sitter/lib/src/wasm/stdlib.c +0 -113
  192. codegreen-0.4.7/third_party/tree-sitter/lib/src/wasm/wasm-stdlib.h +0 -1314
  193. codegreen-0.4.7/third_party/tree-sitter/lib/src/wasm_store.c +0 -1936
  194. codegreen-0.4.7/third_party/tree-sitter/lib/src/wasm_store.h +0 -31
  195. codegreen-0.4.7/third_party/tree-sitter/test/fixtures/test_grammars/depends_on_column/scanner.c +0 -40
  196. codegreen-0.4.7/third_party/tree-sitter/test/fixtures/test_grammars/epsilon_external_extra_tokens/scanner.c +0 -33
  197. codegreen-0.4.7/third_party/tree-sitter/test/fixtures/test_grammars/epsilon_external_tokens/scanner.c +0 -33
  198. codegreen-0.4.7/third_party/tree-sitter/test/fixtures/test_grammars/external_and_internal_anonymous_tokens/scanner.c +0 -66
  199. codegreen-0.4.7/third_party/tree-sitter/test/fixtures/test_grammars/external_and_internal_tokens/scanner.c +0 -64
  200. codegreen-0.4.7/third_party/tree-sitter/test/fixtures/test_grammars/external_extra_tokens/scanner.c +0 -44
  201. codegreen-0.4.7/third_party/tree-sitter/test/fixtures/test_grammars/external_tokens/scanner.c +0 -121
  202. codegreen-0.4.7/third_party/tree-sitter/test/fixtures/test_grammars/external_unicode_column_alignment/scanner.c +0 -87
  203. codegreen-0.4.7/third_party/tree-sitter/test/fixtures/test_grammars/get_col_eof/scanner.c +0 -34
  204. codegreen-0.4.7/third_party/tree-sitter/test/fixtures/test_grammars/get_col_should_hang_not_crash/scanner.c +0 -17
  205. codegreen-0.4.7/third_party/tree-sitter/test/fixtures/test_grammars/inverted_external_token/scanner.c +0 -49
  206. codegreen-0.4.7/third_party/tree-sitter/test/fixtures/test_grammars/uses_current_column/scanner.c +0 -135
  207. codegreen-0.4.7/third_party/tree-sitter-c/CMakeLists.txt +0 -63
  208. codegreen-0.4.7/third_party/tree-sitter-c/bindings/c/tree_sitter/tree-sitter-c.h +0 -16
  209. codegreen-0.4.7/third_party/tree-sitter-c/bindings/python/tree_sitter_c/binding.c +0 -35
  210. codegreen-0.4.7/third_party/tree-sitter-c/bindings/swift/TreeSitterC/c.h +0 -16
  211. codegreen-0.4.7/third_party/tree-sitter-c/examples/cluster.c +0 -5446
  212. codegreen-0.4.7/third_party/tree-sitter-c/examples/malloc.c +0 -532
  213. codegreen-0.4.7/third_party/tree-sitter-c/examples/parser.c +0 -1283
  214. codegreen-0.4.7/third_party/tree-sitter-c/src/parser.c +0 -118872
  215. codegreen-0.4.7/third_party/tree-sitter-c/src/tree_sitter/alloc.h +0 -54
  216. codegreen-0.4.7/third_party/tree-sitter-c/src/tree_sitter/array.h +0 -291
  217. codegreen-0.4.7/third_party/tree-sitter-c/src/tree_sitter/parser.h +0 -286
  218. codegreen-0.4.7/third_party/tree-sitter-c/test/highlight/keywords.c +0 -6
  219. codegreen-0.4.7/third_party/tree-sitter-c/test/highlight/names.c +0 -33
  220. codegreen-0.4.7/third_party/tree-sitter-cpp/CMakeLists.txt +0 -58
  221. codegreen-0.4.7/third_party/tree-sitter-cpp/bindings/c/tree-sitter-cpp.h +0 -16
  222. codegreen-0.4.7/third_party/tree-sitter-cpp/bindings/python/tree_sitter_cpp/binding.c +0 -27
  223. codegreen-0.4.7/third_party/tree-sitter-cpp/bindings/swift/TreeSitterCPP/cpp.h +0 -16
  224. codegreen-0.4.7/third_party/tree-sitter-cpp/examples/marker-index.h +0 -131
  225. codegreen-0.4.7/third_party/tree-sitter-cpp/src/parser.c +0 -554548
  226. codegreen-0.4.7/third_party/tree-sitter-cpp/src/scanner.c +0 -148
  227. codegreen-0.4.7/third_party/tree-sitter-cpp/src/tree_sitter/alloc.h +0 -54
  228. codegreen-0.4.7/third_party/tree-sitter-cpp/src/tree_sitter/array.h +0 -291
  229. codegreen-0.4.7/third_party/tree-sitter-cpp/src/tree_sitter/parser.h +0 -286
  230. codegreen-0.4.7/third_party/tree-sitter-java/CMakeLists.txt +0 -58
  231. codegreen-0.4.7/third_party/tree-sitter-java/bindings/c/tree-sitter-java.h +0 -16
  232. codegreen-0.4.7/third_party/tree-sitter-java/bindings/python/tree_sitter_java/binding.c +0 -27
  233. codegreen-0.4.7/third_party/tree-sitter-java/bindings/swift/TreeSitterJava/java.h +0 -16
  234. codegreen-0.4.7/third_party/tree-sitter-java/src/parser.c +0 -76760
  235. codegreen-0.4.7/third_party/tree-sitter-java/src/tree_sitter/alloc.h +0 -54
  236. codegreen-0.4.7/third_party/tree-sitter-java/src/tree_sitter/array.h +0 -291
  237. codegreen-0.4.7/third_party/tree-sitter-java/src/tree_sitter/parser.h +0 -266
  238. codegreen-0.4.7/third_party/tree-sitter-python/CMakeLists.txt +0 -60
  239. codegreen-0.4.7/third_party/tree-sitter-python/bindings/c/tree-sitter-python.h +0 -16
  240. codegreen-0.4.7/third_party/tree-sitter-python/bindings/python/tree_sitter_python/binding.c +0 -27
  241. codegreen-0.4.7/third_party/tree-sitter-python/bindings/swift/TreeSitterPython/python.h +0 -16
  242. codegreen-0.4.7/third_party/tree-sitter-python/src/parser.c +0 -130198
  243. codegreen-0.4.7/third_party/tree-sitter-python/src/scanner.c +0 -436
  244. codegreen-0.4.7/third_party/tree-sitter-python/src/tree_sitter/alloc.h +0 -54
  245. codegreen-0.4.7/third_party/tree-sitter-python/src/tree_sitter/array.h +0 -291
  246. codegreen-0.4.7/third_party/tree-sitter-python/src/tree_sitter/parser.h +0 -266
  247. {codegreen-0.4.7 → codegreen-0.4.9}/CMakeLists.txt +0 -0
  248. {codegreen-0.4.7 → codegreen-0.4.9}/LICENSE +0 -0
  249. {codegreen-0.4.7 → codegreen-0.4.9}/benchmark/__init__.py +0 -0
  250. {codegreen-0.4.7 → codegreen-0.4.9}/benchmark/__main__.py +0 -0
  251. {codegreen-0.4.7 → codegreen-0.4.9}/benchmark/_workload_gpt2.py +0 -0
  252. {codegreen-0.4.7 → codegreen-0.4.9}/benchmark/_workload_gpt2_session.py +0 -0
  253. {codegreen-0.4.7 → codegreen-0.4.9}/benchmark/_workload_gpt2_session_staged.py +0 -0
  254. {codegreen-0.4.7 → codegreen-0.4.9}/benchmark/cg_modes_compare.py +0 -0
  255. {codegreen-0.4.7 → codegreen-0.4.9}/benchmark/compilers.py +0 -0
  256. {codegreen-0.4.7 → codegreen-0.4.9}/benchmark/config.py +0 -0
  257. {codegreen-0.4.7 → codegreen-0.4.9}/benchmark/harness.py +0 -0
  258. {codegreen-0.4.7 → codegreen-0.4.9}/benchmark/profilers.py +0 -0
  259. {codegreen-0.4.7 → codegreen-0.4.9}/benchmark/results.py +0 -0
  260. {codegreen-0.4.7 → codegreen-0.4.9}/benchmark/suites/__init__.py +0 -0
  261. {codegreen-0.4.7 → codegreen-0.4.9}/benchmark/suites/base.py +0 -0
  262. {codegreen-0.4.7 → codegreen-0.4.9}/benchmark/suites/benchmarksgame.py +0 -0
  263. {codegreen-0.4.7 → codegreen-0.4.9}/benchmark/suites/dacapo.py +0 -0
  264. {codegreen-0.4.7 → codegreen-0.4.9}/benchmark/suites/perfopt.py +0 -0
  265. {codegreen-0.4.7 → codegreen-0.4.9}/benchmark/suites/renaissance.py +0 -0
  266. {codegreen-0.4.7 → codegreen-0.4.9}/benchmark/validation/__init__.py +0 -0
  267. {codegreen-0.4.7 → codegreen-0.4.9}/benchmark/validation/analysis.py +0 -0
  268. {codegreen-0.4.7 → codegreen-0.4.9}/benchmark/validation/experiments.py +0 -0
  269. {codegreen-0.4.7 → codegreen-0.4.9}/benchmark/validation/reporting.py +0 -0
  270. {codegreen-0.4.7 → codegreen-0.4.9}/codegreen/analysis/__init__.py +0 -0
  271. {codegreen-0.4.7 → codegreen-0.4.9}/codegreen/analysis/_ts_java.py +0 -0
  272. {codegreen-0.4.7 → codegreen-0.4.9}/codegreen/analysis/cfg/__init__.py +0 -0
  273. {codegreen-0.4.7 → codegreen-0.4.9}/codegreen/analysis/cfg/builder.py +0 -0
  274. {codegreen-0.4.7 → codegreen-0.4.9}/codegreen/analysis/cfg/dataflow.py +0 -0
  275. {codegreen-0.4.7 → codegreen-0.4.9}/codegreen/analysis/cfg/features.py +0 -0
  276. {codegreen-0.4.7 → codegreen-0.4.9}/codegreen/analysis/cfg/pdg.py +0 -0
  277. {codegreen-0.4.7 → codegreen-0.4.9}/codegreen/analysis/cfg/types.py +0 -0
  278. {codegreen-0.4.7 → codegreen-0.4.9}/codegreen/analysis/cfg/visualization.py +0 -0
  279. {codegreen-0.4.7 → codegreen-0.4.9}/codegreen/analyzer/__init__.py +0 -0
  280. {codegreen-0.4.7 → codegreen-0.4.9}/codegreen/analyzer/plot.py +0 -0
  281. {codegreen-0.4.7 → codegreen-0.4.9}/codegreen/cli/__init__.py +0 -0
  282. {codegreen-0.4.7 → codegreen-0.4.9}/codegreen/instrumentation/__init__.py +0 -0
  283. {codegreen-0.4.7 → codegreen-0.4.9}/codegreen/instrumentation/bridge_analyze.py +0 -0
  284. {codegreen-0.4.7 → codegreen-0.4.9}/codegreen/instrumentation/config.py +0 -0
  285. {codegreen-0.4.7 → codegreen-0.4.9}/codegreen/instrumentation/configs/TEMPLATE.json +0 -0
  286. {codegreen-0.4.7 → codegreen-0.4.9}/codegreen/instrumentation/engine.py +0 -0
  287. {codegreen-0.4.7 → codegreen-0.4.9}/codegreen/instrumentation/language_runtimes/c/codegreen_runtime.h +0 -0
  288. {codegreen-0.4.7 → codegreen-0.4.9}/codegreen/instrumentation/language_runtimes/java/codegreen/runtime/CodeGreenRuntime.java +0 -0
  289. {codegreen-0.4.7 → codegreen-0.4.9}/codegreen/utils/__init__.py +0 -0
  290. {codegreen-0.4.7 → codegreen-0.4.9}/codegreen/utils/binary.py +0 -0
  291. {codegreen-0.4.7 → codegreen-0.4.9}/codegreen/utils/platform.py +0 -0
  292. {codegreen-0.4.7 → codegreen-0.4.9}/codegreen.egg-info/dependency_links.txt +0 -0
  293. {codegreen-0.4.7 → codegreen-0.4.9}/codegreen.egg-info/entry_points.txt +0 -0
  294. {codegreen-0.4.7 → codegreen-0.4.9}/codegreen.egg-info/not-zip-safe +0 -0
  295. {codegreen-0.4.7 → codegreen-0.4.9}/codegreen.egg-info/top_level.txt +0 -0
  296. {codegreen-0.4.7 → codegreen-0.4.9}/requirements.txt +0 -0
  297. {codegreen-0.4.7 → codegreen-0.4.9}/setup.cfg +0 -0
@@ -0,0 +1,17 @@
1
+ include README.md LICENSE requirements.txt pyproject.toml CMakeLists.txt setup.py
2
+ include config/codegreen.json
3
+
4
+ recursive-include codegreen/measurement CMakeLists.txt *.cpp *.c *.h *.hpp
5
+ recursive-include codegreen/instrumentation/language_runtimes *.py *.h *.hpp *.java
6
+ recursive-include codegreen/instrumentation/configs *.json
7
+ include codegreen/config.json
8
+
9
+ global-exclude *.pyc
10
+ global-exclude __pycache__
11
+ global-exclude *.so
12
+ global-exclude *.dylib
13
+ global-exclude *.dll
14
+ global-exclude *.jar
15
+ global-exclude *.class
16
+ global-exclude .DS_Store
17
+ global-exclude *.o
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: codegreen
3
- Version: 0.4.7
3
+ Version: 0.4.9
4
4
  Summary: Know the true energy cost of your code
5
5
  Author-email: Saurabhsingh Rajput <saurabh@dal.ca>
6
6
  Maintainer-email: Saurabhsingh Rajput <saurabh@dal.ca>
@@ -413,6 +413,7 @@ Requires-Dist: packaging>=21.0
413
413
  Requires-Dist: markdown-it-py<4.0.0,>=3.0.0
414
414
  Requires-Dist: tree-sitter<0.26,>=0.21
415
415
  Requires-Dist: tree-sitter-language-pack<1.0,>=0.7
416
+ Requires-Dist: tree-sitter-java<0.24,>=0.23
416
417
  Provides-Extra: dev
417
418
  Requires-Dist: pytest>=7.0.0; extra == "dev"
418
419
  Requires-Dist: pytest-cov>=4.0.0; extra == "dev"
@@ -429,6 +430,17 @@ Provides-Extra: viz
429
430
  Requires-Dist: matplotlib>=3.5.0; extra == "viz"
430
431
  Requires-Dist: pandas>=1.4.0; extra == "viz"
431
432
  Requires-Dist: plotly>=5.10.0; extra == "viz"
433
+ Provides-Extra: otlp
434
+ Requires-Dist: opentelemetry-api>=1.20.0; extra == "otlp"
435
+ Requires-Dist: opentelemetry-sdk>=1.20.0; extra == "otlp"
436
+ Requires-Dist: opentelemetry-exporter-otlp-proto-grpc>=1.20.0; extra == "otlp"
437
+ Provides-Extra: prometheus
438
+ Requires-Dist: prometheus-client>=0.20.0; extra == "prometheus"
439
+ Provides-Extra: all
440
+ Requires-Dist: opentelemetry-api>=1.20.0; extra == "all"
441
+ Requires-Dist: opentelemetry-sdk>=1.20.0; extra == "all"
442
+ Requires-Dist: opentelemetry-exporter-otlp-proto-grpc>=1.20.0; extra == "all"
443
+ Requires-Dist: prometheus-client>=0.20.0; extra == "all"
432
444
  Dynamic: license-file
433
445
 
434
446
  <p align="center">
@@ -436,7 +448,12 @@ Dynamic: license-file
436
448
  <img src="docs/website/docs/assets/codegreen_logo_white.svg#gh-dark-mode-only" width="200" alt="CodeGreen Logo">
437
449
  </p>
438
450
 
439
- [![DOI](https://zenodo.org/badge/942273936.svg)](https://doi.org/10.5281/zenodo.18371771)
451
+ [![PyPI](https://img.shields.io/pypi/v/codegreen)](https://pypi.org/project/codegreen/)
452
+ [![PyPI Downloads](https://static.pepy.tech/personalized-badge/codegreen?period=total&units=NONE&left_color=GREY&right_color=GREEN&left_text=downloads)](https://pepy.tech/projects/codegreen)
453
+ [![GitHub stars](https://img.shields.io/github/stars/SMART-Dal/codegreen)](https://github.com/SMART-Dal/codegreen/stargazers)
454
+ [![License](https://img.shields.io/badge/license-MPL%202.0-blue)](LICENSE)
455
+ [![Platform](https://img.shields.io/badge/platform-linux%20%7C%20macOS%20%7C%20windows-lightgrey)](https://pypi.org/project/codegreen/)
456
+ [![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.18371771.svg)](https://doi.org/10.5281/zenodo.18371771)
440
457
 
441
458
  # CodeGreen - Garage for Energy Measurement and Optimization
442
459
 
@@ -452,6 +469,8 @@ pip install codegreen
452
469
 
453
470
  Pre-built wheels available for Linux x86_64 and macOS ARM64 (Apple Silicon). Includes the native NEMB energy measurement backend.
454
471
 
472
+ Optional telemetry exporters for `codegreen monitor`: `pip install "codegreen[otlp]"` (OpenTelemetry/OTLP) or `pip install "codegreen[prometheus]"`.
473
+
455
474
  ### From source (recommended for development)
456
475
 
457
476
  ```bash
@@ -509,6 +528,23 @@ codegreen measure python script.py -g fine --json
509
528
  codegreen measure python script.py -g fine --export-plot energy.html
510
529
  ```
511
530
 
531
+ ### Project profiling, monitoring and timelines
532
+
533
+ ```bash
534
+ # Per-function hotspots for a whole project (build once, run, attribute)
535
+ codegreen project python ./src -r "python main.py" -s "**/*.py"
536
+
537
+ # GPU work attributed to the launching function (torch/CUDA)
538
+ codegreen project python ./src -r "python train.py" --sync-device cuda
539
+
540
+ # Continuous host or per-PID sampling, optional OTLP / Prometheus export
541
+ codegreen monitor -d 30 -o energy.jsonl
542
+ codegreen monitor --pid 1234 --exporter prometheus --prometheus-port 9464
543
+
544
+ # Power, stacks, GC and GPU kernels on one axis for ui.perfetto.dev
545
+ codegreen timeline --nemb nemb.json --jfr run.json --out trace.json
546
+ ```
547
+
512
548
  ### Manual measurement from Python (Session API)
513
549
 
514
550
  For span-based measurement of arbitrary code regions, import `codegreen.Session` directly — no CLI, no AST instrumentation:
@@ -546,7 +582,7 @@ codegreen analyze python script.py --save-instrumented
546
582
  ### Benchmark validation (against perf RAPL ground truth)
547
583
 
548
584
  ```bash
549
- codegreen benchmark -p nbody spectralnorm -l python -r 5 --profilers codegreen perf
585
+ codegreen benchmark -p nbody -p spectralnorm -l python -r 5 --profiler codegreen --profiler perf
550
586
  ```
551
587
 
552
588
  ## Output formats
@@ -557,7 +593,7 @@ JSON (default for `--json`), CSV, Markdown table, and text summary. The JSON out
557
593
 
558
594
  Adding a new language requires only a JSON config file in `codegreen/instrumentation/configs/` plus the tree-sitter grammar. No Python code changes needed.
559
595
 
560
- Currently supported: Python, C, C++, Java. JavaScript config exists but is not yet exposed via CLI.
596
+ Currently supported: Python, C, C++, Java, JavaScript. Functions that cannot be framed safely (async, generators, coroutines, C++ `constexpr`) are reported as `skipped_functions` rather than instrumented.
561
597
 
562
598
  ## Benchmarking
563
599
 
@@ -574,11 +610,11 @@ bash scripts/generate_comparison_artifacts.sh docs/benchmarks/
574
610
 
575
611
  ## Energy Flow Graph (EFG)
576
612
 
577
- CodeGreen includes an Energy Flow Graph module (`codegreen/analysis/cfg/`) that builds energy-annotated control flow graphs from source code:
613
+ CodeGreen includes an Energy Flow Graph module (`codegreen/analysis/efg/`) that builds energy-annotated control flow graphs from source code:
578
614
 
579
615
  ```python
580
616
  from codegreen.analysis.cfg.builder import build_per_method_cfgs
581
- from codegreen.analysis.cfg.energy_flow import build_efg, efg_to_dot, efg_to_text
617
+ from codegreen.analysis.efg import build_efg, efg_to_dot, efg_to_text
582
618
 
583
619
  cfgs = build_per_method_cfgs(java_source_code)
584
620
  efg = build_efg(cfg_nodes, cfg_edges, "ClassName.method", "File.java", codegreen_data)
@@ -587,6 +623,8 @@ print(efg_to_text(efg)) # compact format for LLM prompts
587
623
 
588
624
  Features: Ball & Larus branch heuristics, SCC-based hot path computation, three-level accuracy annotations (MEASURED/ESTIMATED/INFERRED), configurable via `EFGConfig`.
589
625
 
626
+ See `codegreen/analysis/efg/README.md` for the module layout, a runnable example (`python -m codegreen.analysis.efg.example.demo`), and the current list of known issues. `codegreen.analysis.cfg.energy_flow` still resolves as a back-compat shim.
627
+
590
628
  ## Architecture
591
629
 
592
630
  - **C++ NEMB backend**: platform-aware energy measurement (RAPL on Linux, IOReport on macOS, EMI on Windows), sub-microsecond timestamping, background polling with lock-free ring buffers
@@ -3,7 +3,12 @@
3
3
  <img src="docs/website/docs/assets/codegreen_logo_white.svg#gh-dark-mode-only" width="200" alt="CodeGreen Logo">
4
4
  </p>
5
5
 
6
- [![DOI](https://zenodo.org/badge/942273936.svg)](https://doi.org/10.5281/zenodo.18371771)
6
+ [![PyPI](https://img.shields.io/pypi/v/codegreen)](https://pypi.org/project/codegreen/)
7
+ [![PyPI Downloads](https://static.pepy.tech/personalized-badge/codegreen?period=total&units=NONE&left_color=GREY&right_color=GREEN&left_text=downloads)](https://pepy.tech/projects/codegreen)
8
+ [![GitHub stars](https://img.shields.io/github/stars/SMART-Dal/codegreen)](https://github.com/SMART-Dal/codegreen/stargazers)
9
+ [![License](https://img.shields.io/badge/license-MPL%202.0-blue)](LICENSE)
10
+ [![Platform](https://img.shields.io/badge/platform-linux%20%7C%20macOS%20%7C%20windows-lightgrey)](https://pypi.org/project/codegreen/)
11
+ [![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.18371771.svg)](https://doi.org/10.5281/zenodo.18371771)
7
12
 
8
13
  # CodeGreen - Garage for Energy Measurement and Optimization
9
14
 
@@ -19,6 +24,8 @@ pip install codegreen
19
24
 
20
25
  Pre-built wheels available for Linux x86_64 and macOS ARM64 (Apple Silicon). Includes the native NEMB energy measurement backend.
21
26
 
27
+ Optional telemetry exporters for `codegreen monitor`: `pip install "codegreen[otlp]"` (OpenTelemetry/OTLP) or `pip install "codegreen[prometheus]"`.
28
+
22
29
  ### From source (recommended for development)
23
30
 
24
31
  ```bash
@@ -76,6 +83,23 @@ codegreen measure python script.py -g fine --json
76
83
  codegreen measure python script.py -g fine --export-plot energy.html
77
84
  ```
78
85
 
86
+ ### Project profiling, monitoring and timelines
87
+
88
+ ```bash
89
+ # Per-function hotspots for a whole project (build once, run, attribute)
90
+ codegreen project python ./src -r "python main.py" -s "**/*.py"
91
+
92
+ # GPU work attributed to the launching function (torch/CUDA)
93
+ codegreen project python ./src -r "python train.py" --sync-device cuda
94
+
95
+ # Continuous host or per-PID sampling, optional OTLP / Prometheus export
96
+ codegreen monitor -d 30 -o energy.jsonl
97
+ codegreen monitor --pid 1234 --exporter prometheus --prometheus-port 9464
98
+
99
+ # Power, stacks, GC and GPU kernels on one axis for ui.perfetto.dev
100
+ codegreen timeline --nemb nemb.json --jfr run.json --out trace.json
101
+ ```
102
+
79
103
  ### Manual measurement from Python (Session API)
80
104
 
81
105
  For span-based measurement of arbitrary code regions, import `codegreen.Session` directly — no CLI, no AST instrumentation:
@@ -113,7 +137,7 @@ codegreen analyze python script.py --save-instrumented
113
137
  ### Benchmark validation (against perf RAPL ground truth)
114
138
 
115
139
  ```bash
116
- codegreen benchmark -p nbody spectralnorm -l python -r 5 --profilers codegreen perf
140
+ codegreen benchmark -p nbody -p spectralnorm -l python -r 5 --profiler codegreen --profiler perf
117
141
  ```
118
142
 
119
143
  ## Output formats
@@ -124,7 +148,7 @@ JSON (default for `--json`), CSV, Markdown table, and text summary. The JSON out
124
148
 
125
149
  Adding a new language requires only a JSON config file in `codegreen/instrumentation/configs/` plus the tree-sitter grammar. No Python code changes needed.
126
150
 
127
- Currently supported: Python, C, C++, Java. JavaScript config exists but is not yet exposed via CLI.
151
+ Currently supported: Python, C, C++, Java, JavaScript. Functions that cannot be framed safely (async, generators, coroutines, C++ `constexpr`) are reported as `skipped_functions` rather than instrumented.
128
152
 
129
153
  ## Benchmarking
130
154
 
@@ -141,11 +165,11 @@ bash scripts/generate_comparison_artifacts.sh docs/benchmarks/
141
165
 
142
166
  ## Energy Flow Graph (EFG)
143
167
 
144
- CodeGreen includes an Energy Flow Graph module (`codegreen/analysis/cfg/`) that builds energy-annotated control flow graphs from source code:
168
+ CodeGreen includes an Energy Flow Graph module (`codegreen/analysis/efg/`) that builds energy-annotated control flow graphs from source code:
145
169
 
146
170
  ```python
147
171
  from codegreen.analysis.cfg.builder import build_per_method_cfgs
148
- from codegreen.analysis.cfg.energy_flow import build_efg, efg_to_dot, efg_to_text
172
+ from codegreen.analysis.efg import build_efg, efg_to_dot, efg_to_text
149
173
 
150
174
  cfgs = build_per_method_cfgs(java_source_code)
151
175
  efg = build_efg(cfg_nodes, cfg_edges, "ClassName.method", "File.java", codegreen_data)
@@ -154,6 +178,8 @@ print(efg_to_text(efg)) # compact format for LLM prompts
154
178
 
155
179
  Features: Ball & Larus branch heuristics, SCC-based hot path computation, three-level accuracy annotations (MEASURED/ESTIMATED/INFERRED), configurable via `EFGConfig`.
156
180
 
181
+ See `codegreen/analysis/efg/README.md` for the module layout, a runnable example (`python -m codegreen.analysis.efg.example.demo`), and the current list of known issues. `codegreen.analysis.cfg.energy_flow` still resolves as a back-compat shim.
182
+
157
183
  ## Architecture
158
184
 
159
185
  - **C++ NEMB backend**: platform-aware energy measurement (RAPL on Linux, IOReport on macOS, EMI on Windows), sub-microsecond timestamping, background polling with lock-free ring buffers
@@ -12,7 +12,7 @@ try:
12
12
  from importlib.metadata import version as _pkg_version
13
13
  __version__ = _pkg_version("codegreen")
14
14
  except Exception:
15
- __version__ = "0.4.7" # fallback for dev/editable installs
15
+ __version__ = "0.4.9" # fallback for dev/editable installs
16
16
  __author__ = "Saurabhsingh Rajput"
17
17
  __email__ = "saurabh@dal.ca"
18
18
  __description__ = "Know the true energy cost of your code"
@@ -29,7 +29,7 @@ if _install_dir not in _sys.path:
29
29
  # instrumenter, or analyzer) does NOT pull in the runtime module and register
30
30
  # its atexit hook. The runtime is loaded only when a user actually accesses
31
31
  # Session / TaskResult / task.
32
- _LAZY_RUNTIME_ATTRS = {"Session", "TaskResult", "task"}
32
+ _LAZY_RUNTIME_ATTRS = {"Session", "TaskResult", "task", "Monitor", "annotate_request"}
33
33
 
34
34
 
35
35
  def __getattr__(name):
@@ -45,6 +45,8 @@ __all__ = [
45
45
  "__email__",
46
46
  "__description__",
47
47
  "Session",
48
+ "Monitor",
49
+ "annotate_request",
48
50
  "TaskResult",
49
51
  "task",
50
52
  ]