codegreen 0.4.8__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.
- codegreen-0.4.9/MANIFEST.in +17 -0
- {codegreen-0.4.8/codegreen.egg-info → codegreen-0.4.9}/PKG-INFO +44 -6
- {codegreen-0.4.8 → codegreen-0.4.9}/README.md +31 -5
- {codegreen-0.4.8 → codegreen-0.4.9}/codegreen/__init__.py +4 -2
- codegreen-0.4.9/codegreen/analysis/cfg/callgraph.py +554 -0
- codegreen-0.4.9/codegreen/analysis/cfg/energy_flow.py +32 -0
- codegreen-0.4.9/codegreen/analysis/efg/__init__.py +67 -0
- codegreen-0.4.9/codegreen/analysis/efg/adapter.py +53 -0
- codegreen-0.4.9/codegreen/analysis/efg/example/Sample.java +12 -0
- codegreen-0.4.9/codegreen/analysis/efg/example/__init__.py +1 -0
- codegreen-0.4.9/codegreen/analysis/efg/example/demo.py +28 -0
- codegreen-0.4.9/codegreen/analysis/efg/graph.py +300 -0
- codegreen-0.4.9/codegreen/analysis/efg/heuristics.py +137 -0
- codegreen-0.4.9/codegreen/analysis/efg/paths.py +128 -0
- codegreen-0.4.9/codegreen/analysis/efg/serialize.py +144 -0
- codegreen-0.4.9/codegreen/analysis/efg/types.py +76 -0
- codegreen-0.4.9/codegreen/analysis/sampling.py +157 -0
- codegreen-0.4.9/codegreen/analysis/timeline.py +235 -0
- {codegreen-0.4.8 → codegreen-0.4.9}/codegreen/cli/cli.py +652 -133
- codegreen-0.4.9/codegreen/cli/entrypoint.py +59 -0
- codegreen-0.4.9/codegreen/config.json +262 -0
- {codegreen-0.4.8 → codegreen-0.4.9}/codegreen/instrumentation/ast_processor.py +158 -23
- codegreen-0.4.9/codegreen/instrumentation/brace_normaliser.py +121 -0
- {codegreen-0.4.8 → codegreen-0.4.9}/codegreen/instrumentation/bridge_instrument.py +6 -4
- {codegreen-0.4.8 → codegreen-0.4.9}/codegreen/instrumentation/configs/c.json +15 -1
- {codegreen-0.4.8 → codegreen-0.4.9}/codegreen/instrumentation/configs/cpp.json +9 -8
- {codegreen-0.4.8 → codegreen-0.4.9}/codegreen/instrumentation/configs/java.json +12 -5
- {codegreen-0.4.8 → codegreen-0.4.9}/codegreen/instrumentation/configs/javascript.json +10 -3
- {codegreen-0.4.8 → codegreen-0.4.9}/codegreen/instrumentation/configs/python.json +18 -9
- {codegreen-0.4.8 → codegreen-0.4.9}/codegreen/instrumentation/language_configs.py +2 -1
- {codegreen-0.4.8 → codegreen-0.4.9}/codegreen/instrumentation/language_engine.py +384 -130
- {codegreen-0.4.8 → codegreen-0.4.9}/codegreen/instrumentation/language_runtimes/cpp/codegreen/runtime.hpp +15 -0
- codegreen-0.4.9/codegreen/instrumentation/language_runtimes/java/codegreen/runtime/CodeGreenStandaloneRuntime.java +284 -0
- codegreen-0.4.9/codegreen/instrumentation/language_runtimes/python/codegreen_otlp_sink.py +293 -0
- codegreen-0.4.9/codegreen/instrumentation/language_runtimes/python/codegreen_prometheus_sink.py +303 -0
- codegreen-0.4.9/codegreen/instrumentation/language_runtimes/python/codegreen_runtime.py +2566 -0
- codegreen-0.4.9/codegreen/measurement/CMakeLists.txt +105 -0
- codegreen-0.4.9/codegreen/measurement/include/adapters/language_adapter.hpp +58 -0
- codegreen-0.4.9/codegreen/measurement/include/adapters/python_bridge_adapter.hpp +31 -0
- codegreen-0.4.9/codegreen/measurement/include/config.hpp +106 -0
- codegreen-0.4.9/codegreen/measurement/include/energy_code_mapper.hpp +201 -0
- codegreen-0.4.9/codegreen/measurement/include/energy_storage.hpp +113 -0
- codegreen-0.4.9/codegreen/measurement/include/measurement.hpp +40 -0
- codegreen-0.4.9/codegreen/measurement/include/measurement_engine.hpp +120 -0
- codegreen-0.4.9/codegreen/measurement/include/measurement_session.hpp +43 -0
- codegreen-0.4.9/codegreen/measurement/include/nemb/accuracy_validator.hpp +122 -0
- codegreen-0.4.9/codegreen/measurement/include/nemb/codegreen_energy.hpp +457 -0
- codegreen-0.4.9/codegreen/measurement/include/nemb/config_loader.hpp +93 -0
- codegreen-0.4.9/codegreen/measurement/include/nemb/core/energy_provider.hpp +191 -0
- codegreen-0.4.9/codegreen/measurement/include/nemb/core/measurement_coordinator.hpp +286 -0
- codegreen-0.4.9/codegreen/measurement/include/nemb/drivers/amd_gpu_provider.hpp +290 -0
- codegreen-0.4.9/codegreen/measurement/include/nemb/drivers/amd_rapl_provider.hpp +7 -0
- codegreen-0.4.9/codegreen/measurement/include/nemb/drivers/arm_energy_provider.hpp +7 -0
- codegreen-0.4.9/codegreen/measurement/include/nemb/drivers/darwin_ioreport_provider.hpp +72 -0
- codegreen-0.4.9/codegreen/measurement/include/nemb/drivers/darwin_kpc_provider.hpp +50 -0
- codegreen-0.4.9/codegreen/measurement/include/nemb/drivers/intel_rapl_provider.hpp +204 -0
- codegreen-0.4.9/codegreen/measurement/include/nemb/drivers/nvidia_gpu_provider.hpp +301 -0
- codegreen-0.4.9/codegreen/measurement/include/nemb/drivers/windows_emi_provider.hpp +55 -0
- codegreen-0.4.9/codegreen/measurement/include/nemb/hal/counter_manager.hpp +384 -0
- codegreen-0.4.9/codegreen/measurement/include/nemb/utils/non_blocking_file_reader.hpp +62 -0
- codegreen-0.4.9/codegreen/measurement/include/nemb/utils/precision_timer.hpp +249 -0
- codegreen-0.4.9/codegreen/measurement/src/energy_code_mapper.cpp +880 -0
- codegreen-0.4.9/codegreen/measurement/src/nemb/accuracy_validator.cpp +581 -0
- codegreen-0.4.9/codegreen/measurement/src/nemb/codegreen_energy.cpp +683 -0
- codegreen-0.4.9/codegreen/measurement/src/nemb/config_loader.cpp +313 -0
- codegreen-0.4.9/codegreen/measurement/src/nemb/core/energy_provider.cpp +91 -0
- codegreen-0.4.9/codegreen/measurement/src/nemb/core/measurement_coordinator.cpp +528 -0
- codegreen-0.4.9/codegreen/measurement/src/nemb/drivers/amd_gpu_provider.cpp +620 -0
- codegreen-0.4.9/codegreen/measurement/src/nemb/drivers/amd_rapl_provider.cpp +141 -0
- codegreen-0.4.9/codegreen/measurement/src/nemb/drivers/arm_energy_provider.cpp +100 -0
- codegreen-0.4.9/codegreen/measurement/src/nemb/drivers/darwin_ioreport_provider.cpp +292 -0
- codegreen-0.4.9/codegreen/measurement/src/nemb/drivers/darwin_kpc_provider.cpp +250 -0
- codegreen-0.4.9/codegreen/measurement/src/nemb/drivers/intel_rapl_provider.cpp +546 -0
- codegreen-0.4.9/codegreen/measurement/src/nemb/drivers/nvidia_gpu_provider.cpp +612 -0
- codegreen-0.4.9/codegreen/measurement/src/nemb/drivers/windows_emi_provider.cpp +253 -0
- codegreen-0.4.9/codegreen/measurement/src/nemb/hal/counter_manager.cpp +415 -0
- codegreen-0.4.9/codegreen/measurement/src/nemb/utils/non_blocking_file_reader.cpp +118 -0
- codegreen-0.4.9/codegreen/measurement/src/nemb/utils/precision_timer.cpp +432 -0
- codegreen-0.4.9/codegreen/measurement/tests/nemb_validation_test.cpp +383 -0
- codegreen-0.4.9/codegreen/measurement/tests/rapl_provider_test.cpp +411 -0
- {codegreen-0.4.8 → codegreen-0.4.9/codegreen.egg-info}/PKG-INFO +44 -6
- codegreen-0.4.9/codegreen.egg-info/SOURCES.txt +144 -0
- {codegreen-0.4.8 → codegreen-0.4.9}/codegreen.egg-info/requires.txt +15 -0
- codegreen-0.4.8/codegreen/config.json → codegreen-0.4.9/config/codegreen.json +16 -40
- {codegreen-0.4.8 → codegreen-0.4.9}/pyproject.toml +20 -4
- {codegreen-0.4.8 → codegreen-0.4.9}/setup.py +9 -43
- codegreen-0.4.9/tests/test_callgraph_python.py +63 -0
- codegreen-0.4.9/tests/test_efg.py +890 -0
- codegreen-0.4.9/tests/test_examples.py +90 -0
- codegreen-0.4.9/tests/test_hotspot_taxonomy.py +126 -0
- codegreen-0.4.9/tests/test_instrumentation.py +1094 -0
- codegreen-0.4.9/tests/test_instrumentation_braces.py +241 -0
- codegreen-0.4.9/tests/test_report_audit.py +1765 -0
- codegreen-0.4.9/tests/test_sampling.py +72 -0
- codegreen-0.4.9/tests/test_timeline.py +98 -0
- codegreen-0.4.8/MANIFEST.in +0 -17
- codegreen-0.4.8/codegreen/analysis/cfg/callgraph.py +0 -185
- codegreen-0.4.8/codegreen/analysis/cfg/energy_flow.py +0 -725
- codegreen-0.4.8/codegreen/cli/entrypoint.py +0 -29
- codegreen-0.4.8/codegreen/instrumentation/language_runtimes/java/codegreen/runtime/CodeGreenStandaloneRuntime.java +0 -44
- codegreen-0.4.8/codegreen/instrumentation/language_runtimes/python/codegreen_runtime.py +0 -1228
- codegreen-0.4.8/codegreen.egg-info/SOURCES.txt +0 -219
- codegreen-0.4.8/tests/test_instrumentation.py +0 -345
- codegreen-0.4.8/tests/test_report_audit.py +0 -567
- codegreen-0.4.8/third_party/Programming-Language-Benchmarks/bench/algorithm/binarytrees/2.c +0 -161
- codegreen-0.4.8/third_party/Programming-Language-Benchmarks/bench/algorithm/helloworld/1.c +0 -10
- codegreen-0.4.8/third_party/Programming-Language-Benchmarks/bench/algorithm/knucleotide/1.c +0 -345
- codegreen-0.4.8/third_party/Programming-Language-Benchmarks/bench/algorithm/mandelbrot/1-ffi.c +0 -160
- codegreen-0.4.8/third_party/Programming-Language-Benchmarks/bench/algorithm/mandelbrot/1-mffi.c +0 -160
- codegreen-0.4.8/third_party/Programming-Language-Benchmarks/bench/algorithm/nbody/2.c +0 -150
- codegreen-0.4.8/third_party/Programming-Language-Benchmarks/bench/algorithm/nbody/5.c +0 -151
- codegreen-0.4.8/third_party/Programming-Language-Benchmarks/bench/algorithm/nbody/8-i.c +0 -200
- codegreen-0.4.8/third_party/Programming-Language-Benchmarks/bench/algorithm/nsieve/1.c +0 -34
- codegreen-0.4.8/third_party/Programming-Language-Benchmarks/bench/algorithm/spectral-norm/3.c +0 -72
- codegreen-0.4.8/third_party/Programming-Language-Benchmarks/bench/algorithm/spectral-norm/4.c +0 -231
- codegreen-0.4.8/third_party/Programming-Language-Benchmarks/bench/algorithm/spectral-norm/5-im.c +0 -88
- codegreen-0.4.8/third_party/Programming-Language-Benchmarks/bench/algorithm/spectral-norm/6-im.c +0 -197
- codegreen-0.4.8/third_party/nvim-treesitter/tests/indent/c/aligned_indent.c +0 -7
- codegreen-0.4.8/third_party/nvim-treesitter/tests/indent/c/array.c +0 -14
- codegreen-0.4.8/third_party/nvim-treesitter/tests/indent/c/comment.c +0 -8
- codegreen-0.4.8/third_party/nvim-treesitter/tests/indent/c/compound_lit.c +0 -10
- codegreen-0.4.8/third_party/nvim-treesitter/tests/indent/c/cond.c +0 -10
- codegreen-0.4.8/third_party/nvim-treesitter/tests/indent/c/enum.c +0 -5
- codegreen-0.4.8/third_party/nvim-treesitter/tests/indent/c/expr.c +0 -12
- codegreen-0.4.8/third_party/nvim-treesitter/tests/indent/c/func.c +0 -33
- codegreen-0.4.8/third_party/nvim-treesitter/tests/indent/c/if_else.c +0 -59
- codegreen-0.4.8/third_party/nvim-treesitter/tests/indent/c/issue-1568.c +0 -6
- codegreen-0.4.8/third_party/nvim-treesitter/tests/indent/c/issue-2086.c +0 -3
- codegreen-0.4.8/third_party/nvim-treesitter/tests/indent/c/issue-4079.c +0 -7
- codegreen-0.4.8/third_party/nvim-treesitter/tests/indent/c/issue-4117.c +0 -6
- codegreen-0.4.8/third_party/nvim-treesitter/tests/indent/c/issue-4525.c +0 -23
- codegreen-0.4.8/third_party/nvim-treesitter/tests/indent/c/label.c +0 -7
- codegreen-0.4.8/third_party/nvim-treesitter/tests/indent/c/loop.c +0 -16
- codegreen-0.4.8/third_party/nvim-treesitter/tests/indent/c/no_braces.c +0 -13
- codegreen-0.4.8/third_party/nvim-treesitter/tests/indent/c/preproc_cond.c +0 -10
- codegreen-0.4.8/third_party/nvim-treesitter/tests/indent/c/preproc_func.c +0 -9
- codegreen-0.4.8/third_party/nvim-treesitter/tests/indent/c/string.c +0 -5
- codegreen-0.4.8/third_party/nvim-treesitter/tests/indent/c/struct.c +0 -11
- codegreen-0.4.8/third_party/nvim-treesitter/tests/indent/c/switch.c +0 -16
- codegreen-0.4.8/third_party/nvim-treesitter/tests/indent/c/ternary.c +0 -6
- codegreen-0.4.8/third_party/nvim-treesitter/tests/indent/c/unfinished_comment.c +0 -2
- codegreen-0.4.8/third_party/nvim-treesitter/tests/query/highlights/c/enums-as-constants.c +0 -21
- codegreen-0.4.8/third_party/tree-sitter/crates/cli/src/templates/PARSER_NAME.h +0 -16
- codegreen-0.4.8/third_party/tree-sitter/crates/cli/src/templates/py-binding.c +0 -35
- codegreen-0.4.8/third_party/tree-sitter/crates/generate/src/templates/alloc.h +0 -54
- codegreen-0.4.8/third_party/tree-sitter/crates/generate/src/templates/array.h +0 -291
- codegreen-0.4.8/third_party/tree-sitter/crates/highlight/include/tree_sitter/highlight.h +0 -83
- codegreen-0.4.8/third_party/tree-sitter/crates/tags/include/tree_sitter/tags.h +0 -98
- codegreen-0.4.8/third_party/tree-sitter/lib/CMakeLists.txt +0 -95
- codegreen-0.4.8/third_party/tree-sitter/lib/binding_web/lib/tree-sitter.c +0 -987
- codegreen-0.4.8/third_party/tree-sitter/lib/include/tree_sitter/api.h +0 -1481
- codegreen-0.4.8/third_party/tree-sitter/lib/src/alloc.c +0 -48
- codegreen-0.4.8/third_party/tree-sitter/lib/src/alloc.h +0 -41
- codegreen-0.4.8/third_party/tree-sitter/lib/src/array.h +0 -291
- codegreen-0.4.8/third_party/tree-sitter/lib/src/atomic.h +0 -68
- codegreen-0.4.8/third_party/tree-sitter/lib/src/clock.h +0 -146
- codegreen-0.4.8/third_party/tree-sitter/lib/src/error_costs.h +0 -11
- codegreen-0.4.8/third_party/tree-sitter/lib/src/get_changed_ranges.c +0 -523
- codegreen-0.4.8/third_party/tree-sitter/lib/src/get_changed_ranges.h +0 -36
- codegreen-0.4.8/third_party/tree-sitter/lib/src/host.h +0 -21
- codegreen-0.4.8/third_party/tree-sitter/lib/src/language.c +0 -293
- codegreen-0.4.8/third_party/tree-sitter/lib/src/language.h +0 -293
- codegreen-0.4.8/third_party/tree-sitter/lib/src/length.h +0 -52
- codegreen-0.4.8/third_party/tree-sitter/lib/src/lexer.c +0 -483
- codegreen-0.4.8/third_party/tree-sitter/lib/src/lexer.h +0 -54
- codegreen-0.4.8/third_party/tree-sitter/lib/src/lib.c +0 -12
- codegreen-0.4.8/third_party/tree-sitter/lib/src/node.c +0 -875
- codegreen-0.4.8/third_party/tree-sitter/lib/src/parser.c +0 -2293
- codegreen-0.4.8/third_party/tree-sitter/lib/src/parser.h +0 -286
- codegreen-0.4.8/third_party/tree-sitter/lib/src/point.h +0 -48
- codegreen-0.4.8/third_party/tree-sitter/lib/src/portable/endian.h +0 -241
- codegreen-0.4.8/third_party/tree-sitter/lib/src/query.c +0 -4349
- codegreen-0.4.8/third_party/tree-sitter/lib/src/reduce_action.h +0 -34
- codegreen-0.4.8/third_party/tree-sitter/lib/src/reusable_node.h +0 -95
- codegreen-0.4.8/third_party/tree-sitter/lib/src/stack.c +0 -912
- codegreen-0.4.8/third_party/tree-sitter/lib/src/stack.h +0 -133
- codegreen-0.4.8/third_party/tree-sitter/lib/src/subtree.c +0 -1034
- codegreen-0.4.8/third_party/tree-sitter/lib/src/subtree.h +0 -399
- codegreen-0.4.8/third_party/tree-sitter/lib/src/tree.c +0 -170
- codegreen-0.4.8/third_party/tree-sitter/lib/src/tree.h +0 -31
- codegreen-0.4.8/third_party/tree-sitter/lib/src/tree_cursor.c +0 -716
- codegreen-0.4.8/third_party/tree-sitter/lib/src/tree_cursor.h +0 -48
- codegreen-0.4.8/third_party/tree-sitter/lib/src/ts_assert.h +0 -11
- codegreen-0.4.8/third_party/tree-sitter/lib/src/unicode/ptypes.h +0 -1
- codegreen-0.4.8/third_party/tree-sitter/lib/src/unicode/umachine.h +0 -448
- codegreen-0.4.8/third_party/tree-sitter/lib/src/unicode/urename.h +0 -1
- codegreen-0.4.8/third_party/tree-sitter/lib/src/unicode/utf.h +0 -1
- codegreen-0.4.8/third_party/tree-sitter/lib/src/unicode/utf16.h +0 -733
- codegreen-0.4.8/third_party/tree-sitter/lib/src/unicode/utf8.h +0 -881
- codegreen-0.4.8/third_party/tree-sitter/lib/src/unicode.h +0 -75
- codegreen-0.4.8/third_party/tree-sitter/lib/src/wasm/stdlib.c +0 -113
- codegreen-0.4.8/third_party/tree-sitter/lib/src/wasm/wasm-stdlib.h +0 -1314
- codegreen-0.4.8/third_party/tree-sitter/lib/src/wasm_store.c +0 -1936
- codegreen-0.4.8/third_party/tree-sitter/lib/src/wasm_store.h +0 -31
- codegreen-0.4.8/third_party/tree-sitter/test/fixtures/test_grammars/depends_on_column/scanner.c +0 -40
- codegreen-0.4.8/third_party/tree-sitter/test/fixtures/test_grammars/epsilon_external_extra_tokens/scanner.c +0 -33
- codegreen-0.4.8/third_party/tree-sitter/test/fixtures/test_grammars/epsilon_external_tokens/scanner.c +0 -33
- codegreen-0.4.8/third_party/tree-sitter/test/fixtures/test_grammars/external_and_internal_anonymous_tokens/scanner.c +0 -66
- codegreen-0.4.8/third_party/tree-sitter/test/fixtures/test_grammars/external_and_internal_tokens/scanner.c +0 -64
- codegreen-0.4.8/third_party/tree-sitter/test/fixtures/test_grammars/external_extra_tokens/scanner.c +0 -44
- codegreen-0.4.8/third_party/tree-sitter/test/fixtures/test_grammars/external_tokens/scanner.c +0 -121
- codegreen-0.4.8/third_party/tree-sitter/test/fixtures/test_grammars/external_unicode_column_alignment/scanner.c +0 -87
- codegreen-0.4.8/third_party/tree-sitter/test/fixtures/test_grammars/get_col_eof/scanner.c +0 -34
- codegreen-0.4.8/third_party/tree-sitter/test/fixtures/test_grammars/get_col_should_hang_not_crash/scanner.c +0 -17
- codegreen-0.4.8/third_party/tree-sitter/test/fixtures/test_grammars/inverted_external_token/scanner.c +0 -49
- codegreen-0.4.8/third_party/tree-sitter/test/fixtures/test_grammars/uses_current_column/scanner.c +0 -135
- codegreen-0.4.8/third_party/tree-sitter-c/CMakeLists.txt +0 -63
- codegreen-0.4.8/third_party/tree-sitter-c/bindings/c/tree_sitter/tree-sitter-c.h +0 -16
- codegreen-0.4.8/third_party/tree-sitter-c/bindings/python/tree_sitter_c/binding.c +0 -35
- codegreen-0.4.8/third_party/tree-sitter-c/bindings/swift/TreeSitterC/c.h +0 -16
- codegreen-0.4.8/third_party/tree-sitter-c/examples/cluster.c +0 -5446
- codegreen-0.4.8/third_party/tree-sitter-c/examples/malloc.c +0 -532
- codegreen-0.4.8/third_party/tree-sitter-c/examples/parser.c +0 -1283
- codegreen-0.4.8/third_party/tree-sitter-c/src/parser.c +0 -118872
- codegreen-0.4.8/third_party/tree-sitter-c/src/tree_sitter/alloc.h +0 -54
- codegreen-0.4.8/third_party/tree-sitter-c/src/tree_sitter/array.h +0 -291
- codegreen-0.4.8/third_party/tree-sitter-c/src/tree_sitter/parser.h +0 -286
- codegreen-0.4.8/third_party/tree-sitter-c/test/highlight/keywords.c +0 -6
- codegreen-0.4.8/third_party/tree-sitter-c/test/highlight/names.c +0 -33
- codegreen-0.4.8/third_party/tree-sitter-cpp/CMakeLists.txt +0 -58
- codegreen-0.4.8/third_party/tree-sitter-cpp/bindings/c/tree-sitter-cpp.h +0 -16
- codegreen-0.4.8/third_party/tree-sitter-cpp/bindings/python/tree_sitter_cpp/binding.c +0 -27
- codegreen-0.4.8/third_party/tree-sitter-cpp/bindings/swift/TreeSitterCPP/cpp.h +0 -16
- codegreen-0.4.8/third_party/tree-sitter-cpp/examples/marker-index.h +0 -131
- codegreen-0.4.8/third_party/tree-sitter-cpp/src/parser.c +0 -554548
- codegreen-0.4.8/third_party/tree-sitter-cpp/src/scanner.c +0 -148
- codegreen-0.4.8/third_party/tree-sitter-cpp/src/tree_sitter/alloc.h +0 -54
- codegreen-0.4.8/third_party/tree-sitter-cpp/src/tree_sitter/array.h +0 -291
- codegreen-0.4.8/third_party/tree-sitter-cpp/src/tree_sitter/parser.h +0 -286
- codegreen-0.4.8/third_party/tree-sitter-java/CMakeLists.txt +0 -58
- codegreen-0.4.8/third_party/tree-sitter-java/bindings/c/tree-sitter-java.h +0 -16
- codegreen-0.4.8/third_party/tree-sitter-java/bindings/python/tree_sitter_java/binding.c +0 -27
- codegreen-0.4.8/third_party/tree-sitter-java/bindings/swift/TreeSitterJava/java.h +0 -16
- codegreen-0.4.8/third_party/tree-sitter-java/src/parser.c +0 -76760
- codegreen-0.4.8/third_party/tree-sitter-java/src/tree_sitter/alloc.h +0 -54
- codegreen-0.4.8/third_party/tree-sitter-java/src/tree_sitter/array.h +0 -291
- codegreen-0.4.8/third_party/tree-sitter-java/src/tree_sitter/parser.h +0 -266
- codegreen-0.4.8/third_party/tree-sitter-python/CMakeLists.txt +0 -60
- codegreen-0.4.8/third_party/tree-sitter-python/bindings/c/tree-sitter-python.h +0 -16
- codegreen-0.4.8/third_party/tree-sitter-python/bindings/python/tree_sitter_python/binding.c +0 -27
- codegreen-0.4.8/third_party/tree-sitter-python/bindings/swift/TreeSitterPython/python.h +0 -16
- codegreen-0.4.8/third_party/tree-sitter-python/src/parser.c +0 -130198
- codegreen-0.4.8/third_party/tree-sitter-python/src/scanner.c +0 -436
- codegreen-0.4.8/third_party/tree-sitter-python/src/tree_sitter/alloc.h +0 -54
- codegreen-0.4.8/third_party/tree-sitter-python/src/tree_sitter/array.h +0 -291
- codegreen-0.4.8/third_party/tree-sitter-python/src/tree_sitter/parser.h +0 -266
- {codegreen-0.4.8 → codegreen-0.4.9}/CMakeLists.txt +0 -0
- {codegreen-0.4.8 → codegreen-0.4.9}/LICENSE +0 -0
- {codegreen-0.4.8 → codegreen-0.4.9}/benchmark/__init__.py +0 -0
- {codegreen-0.4.8 → codegreen-0.4.9}/benchmark/__main__.py +0 -0
- {codegreen-0.4.8 → codegreen-0.4.9}/benchmark/_workload_gpt2.py +0 -0
- {codegreen-0.4.8 → codegreen-0.4.9}/benchmark/_workload_gpt2_session.py +0 -0
- {codegreen-0.4.8 → codegreen-0.4.9}/benchmark/_workload_gpt2_session_staged.py +0 -0
- {codegreen-0.4.8 → codegreen-0.4.9}/benchmark/cg_modes_compare.py +0 -0
- {codegreen-0.4.8 → codegreen-0.4.9}/benchmark/compilers.py +0 -0
- {codegreen-0.4.8 → codegreen-0.4.9}/benchmark/config.py +0 -0
- {codegreen-0.4.8 → codegreen-0.4.9}/benchmark/harness.py +0 -0
- {codegreen-0.4.8 → codegreen-0.4.9}/benchmark/profilers.py +0 -0
- {codegreen-0.4.8 → codegreen-0.4.9}/benchmark/results.py +0 -0
- {codegreen-0.4.8 → codegreen-0.4.9}/benchmark/suites/__init__.py +0 -0
- {codegreen-0.4.8 → codegreen-0.4.9}/benchmark/suites/base.py +0 -0
- {codegreen-0.4.8 → codegreen-0.4.9}/benchmark/suites/benchmarksgame.py +0 -0
- {codegreen-0.4.8 → codegreen-0.4.9}/benchmark/suites/dacapo.py +0 -0
- {codegreen-0.4.8 → codegreen-0.4.9}/benchmark/suites/perfopt.py +0 -0
- {codegreen-0.4.8 → codegreen-0.4.9}/benchmark/suites/renaissance.py +0 -0
- {codegreen-0.4.8 → codegreen-0.4.9}/benchmark/validation/__init__.py +0 -0
- {codegreen-0.4.8 → codegreen-0.4.9}/benchmark/validation/analysis.py +0 -0
- {codegreen-0.4.8 → codegreen-0.4.9}/benchmark/validation/experiments.py +0 -0
- {codegreen-0.4.8 → codegreen-0.4.9}/benchmark/validation/reporting.py +0 -0
- {codegreen-0.4.8 → codegreen-0.4.9}/codegreen/analysis/__init__.py +0 -0
- {codegreen-0.4.8 → codegreen-0.4.9}/codegreen/analysis/_ts_java.py +0 -0
- {codegreen-0.4.8 → codegreen-0.4.9}/codegreen/analysis/cfg/__init__.py +0 -0
- {codegreen-0.4.8 → codegreen-0.4.9}/codegreen/analysis/cfg/builder.py +0 -0
- {codegreen-0.4.8 → codegreen-0.4.9}/codegreen/analysis/cfg/dataflow.py +0 -0
- {codegreen-0.4.8 → codegreen-0.4.9}/codegreen/analysis/cfg/features.py +0 -0
- {codegreen-0.4.8 → codegreen-0.4.9}/codegreen/analysis/cfg/pdg.py +0 -0
- {codegreen-0.4.8 → codegreen-0.4.9}/codegreen/analysis/cfg/types.py +0 -0
- {codegreen-0.4.8 → codegreen-0.4.9}/codegreen/analysis/cfg/visualization.py +0 -0
- {codegreen-0.4.8 → codegreen-0.4.9}/codegreen/analyzer/__init__.py +0 -0
- {codegreen-0.4.8 → codegreen-0.4.9}/codegreen/analyzer/plot.py +0 -0
- {codegreen-0.4.8 → codegreen-0.4.9}/codegreen/cli/__init__.py +0 -0
- {codegreen-0.4.8 → codegreen-0.4.9}/codegreen/instrumentation/__init__.py +0 -0
- {codegreen-0.4.8 → codegreen-0.4.9}/codegreen/instrumentation/bridge_analyze.py +0 -0
- {codegreen-0.4.8 → codegreen-0.4.9}/codegreen/instrumentation/config.py +0 -0
- {codegreen-0.4.8 → codegreen-0.4.9}/codegreen/instrumentation/configs/TEMPLATE.json +0 -0
- {codegreen-0.4.8 → codegreen-0.4.9}/codegreen/instrumentation/engine.py +0 -0
- {codegreen-0.4.8 → codegreen-0.4.9}/codegreen/instrumentation/language_runtimes/c/codegreen_runtime.h +0 -0
- {codegreen-0.4.8 → codegreen-0.4.9}/codegreen/instrumentation/language_runtimes/java/codegreen/runtime/CodeGreenRuntime.java +0 -0
- {codegreen-0.4.8 → codegreen-0.4.9}/codegreen/utils/__init__.py +0 -0
- {codegreen-0.4.8 → codegreen-0.4.9}/codegreen/utils/binary.py +0 -0
- {codegreen-0.4.8 → codegreen-0.4.9}/codegreen/utils/platform.py +0 -0
- {codegreen-0.4.8 → codegreen-0.4.9}/codegreen.egg-info/dependency_links.txt +0 -0
- {codegreen-0.4.8 → codegreen-0.4.9}/codegreen.egg-info/entry_points.txt +0 -0
- {codegreen-0.4.8 → codegreen-0.4.9}/codegreen.egg-info/not-zip-safe +0 -0
- {codegreen-0.4.8 → codegreen-0.4.9}/codegreen.egg-info/top_level.txt +0 -0
- {codegreen-0.4.8 → codegreen-0.4.9}/requirements.txt +0 -0
- {codegreen-0.4.8 → 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.
|
|
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
|
-
[](https://pypi.org/project/codegreen/)
|
|
452
|
+
[](https://pepy.tech/projects/codegreen)
|
|
453
|
+
[](https://github.com/SMART-Dal/codegreen/stargazers)
|
|
454
|
+
[](LICENSE)
|
|
455
|
+
[](https://pypi.org/project/codegreen/)
|
|
456
|
+
[](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 --
|
|
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
|
|
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/
|
|
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.
|
|
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
|
-
[](https://pypi.org/project/codegreen/)
|
|
7
|
+
[](https://pepy.tech/projects/codegreen)
|
|
8
|
+
[](https://github.com/SMART-Dal/codegreen/stargazers)
|
|
9
|
+
[](LICENSE)
|
|
10
|
+
[](https://pypi.org/project/codegreen/)
|
|
11
|
+
[](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 --
|
|
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
|
|
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/
|
|
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.
|
|
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.
|
|
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
|
]
|