golf-mcp 0.1.19__py3-none-any.whl → 0.2.0__py3-none-any.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 golf-mcp might be problematic. Click here for more details.

Files changed (123) hide show
  1. golf/__init__.py +9 -1
  2. golf/_endpoints.py +6 -0
  3. golf/_endpoints_fallback.py +10 -0
  4. golf/auth/__init__.py +188 -84
  5. golf/auth/api_key.py +6 -14
  6. golf/auth/factory.py +333 -0
  7. golf/auth/helpers.py +12 -42
  8. golf/auth/providers.py +396 -0
  9. golf/auth/registry.py +256 -0
  10. golf/cli/branding.py +192 -0
  11. golf/cli/main.py +28 -69
  12. golf/commands/__init__.py +2 -0
  13. golf/commands/build.py +4 -7
  14. golf/commands/init.py +30 -53
  15. golf/commands/run.py +50 -20
  16. golf/core/builder.py +356 -412
  17. golf/core/builder_auth.py +63 -144
  18. golf/core/builder_telemetry.py +26 -3
  19. golf/core/config.py +38 -59
  20. golf/core/parser.py +132 -139
  21. golf/core/platform.py +12 -10
  22. golf/core/telemetry.py +11 -19
  23. golf/core/transformer.py +38 -15
  24. golf/examples/__pycache__/__init__.cpython-311.pyc +0 -0
  25. golf/examples/basic/.coverage +0 -0
  26. golf/examples/basic/.env.example +8 -4
  27. golf/examples/basic/README.md +117 -45
  28. golf/examples/basic/__pycache__/auth.cpython-311.pyc +0 -0
  29. golf/examples/basic/auth.py +76 -0
  30. golf/examples/basic/golf.json +2 -5
  31. golf/examples/basic/htmlcov/.gitignore +2 -0
  32. golf/examples/basic/htmlcov/class_index.html +547 -0
  33. golf/examples/basic/htmlcov/coverage_html_cb_6fb7b396.js +733 -0
  34. golf/examples/basic/htmlcov/favicon_32_cb_58284776.png +0 -0
  35. golf/examples/basic/htmlcov/function_index.html +2091 -0
  36. golf/examples/basic/htmlcov/index.html +349 -0
  37. golf/examples/basic/htmlcov/keybd_closed_cb_ce680311.png +0 -0
  38. golf/examples/basic/htmlcov/status.json +1 -0
  39. golf/examples/basic/htmlcov/style_cb_8e611ae1.css +337 -0
  40. golf/examples/basic/htmlcov/z_1c9a91c0e91c8496___init___py.html +323 -0
  41. golf/examples/basic/htmlcov/z_1c9a91c0e91c8496_api_key_py.html +170 -0
  42. golf/examples/basic/htmlcov/z_1c9a91c0e91c8496_factory_py.html +430 -0
  43. golf/examples/basic/htmlcov/z_1c9a91c0e91c8496_helpers_py.html +288 -0
  44. golf/examples/basic/htmlcov/z_1c9a91c0e91c8496_providers_py.html +493 -0
  45. golf/examples/basic/htmlcov/z_1c9a91c0e91c8496_registry_py.html +353 -0
  46. golf/examples/basic/htmlcov/z_3ec3b3f490dc0950___init___py.html +120 -0
  47. golf/examples/basic/htmlcov/z_3ec3b3f490dc0950_instrumentation_py.html +1535 -0
  48. golf/examples/basic/htmlcov/z_4b8b9dd4ccccc5db___init___py.html +98 -0
  49. golf/examples/basic/htmlcov/z_4b8b9dd4ccccc5db_branding_py.html +289 -0
  50. golf/examples/basic/htmlcov/z_4b8b9dd4ccccc5db_main_py.html +476 -0
  51. golf/examples/basic/htmlcov/z_5a6c4e6bcc86fb2f___init___py.html +97 -0
  52. golf/examples/basic/htmlcov/z_6cadab9ec0df475d___init___py.html +102 -0
  53. golf/examples/basic/htmlcov/z_6cadab9ec0df475d_build_py.html +178 -0
  54. golf/examples/basic/htmlcov/z_6cadab9ec0df475d_init_py.html +387 -0
  55. golf/examples/basic/htmlcov/z_6cadab9ec0df475d_run_py.html +222 -0
  56. golf/examples/basic/htmlcov/z_6fcdee0582ba84e4___init___py.html +106 -0
  57. golf/examples/basic/htmlcov/z_6fcdee0582ba84e4__endpoints_fallback_py.html +107 -0
  58. golf/examples/basic/htmlcov/z_7ba499ed22986217___init___py.html +98 -0
  59. golf/examples/basic/htmlcov/z_7ba499ed22986217_builder_auth_py.html +306 -0
  60. golf/examples/basic/htmlcov/z_7ba499ed22986217_builder_metrics_py.html +329 -0
  61. golf/examples/basic/htmlcov/z_7ba499ed22986217_builder_py.html +1471 -0
  62. golf/examples/basic/htmlcov/z_7ba499ed22986217_builder_telemetry_py.html +186 -0
  63. golf/examples/basic/htmlcov/z_7ba499ed22986217_config_py.html +315 -0
  64. golf/examples/basic/htmlcov/z_7ba499ed22986217_parser_py.html +1149 -0
  65. golf/examples/basic/htmlcov/z_7ba499ed22986217_platform_py.html +279 -0
  66. golf/examples/basic/htmlcov/z_7ba499ed22986217_telemetry_py.html +589 -0
  67. golf/examples/basic/htmlcov/z_7ba499ed22986217_transformer_py.html +286 -0
  68. golf/examples/basic/htmlcov/z_7d7da37693a43688___init___py.html +107 -0
  69. golf/examples/basic/htmlcov/z_7d7da37693a43688_collector_py.html +417 -0
  70. golf/examples/basic/htmlcov/z_7d7da37693a43688_registry_py.html +109 -0
  71. golf/examples/basic/htmlcov/z_abe733142b40ad4e___init___py.html +109 -0
  72. golf/examples/basic/htmlcov/z_abe733142b40ad4e_context_py.html +150 -0
  73. golf/examples/basic/htmlcov/z_abe733142b40ad4e_elicitation_py.html +267 -0
  74. golf/examples/basic/htmlcov/z_abe733142b40ad4e_sampling_py.html +318 -0
  75. golf/examples/basic/prompts/__pycache__/welcome.cpython-311.pyc +0 -0
  76. golf/examples/basic/prompts/welcome.py +3 -5
  77. golf/examples/basic/resources/__pycache__/current_time.cpython-311.pyc +0 -0
  78. golf/examples/basic/resources/__pycache__/info.cpython-311.pyc +0 -0
  79. golf/examples/basic/resources/current_time.py +5 -13
  80. golf/examples/basic/resources/weather/__pycache__/common.cpython-311.pyc +0 -0
  81. golf/examples/basic/resources/weather/__pycache__/current.cpython-311.pyc +0 -0
  82. golf/examples/basic/resources/weather/__pycache__/forecast.cpython-311.pyc +0 -0
  83. golf/examples/basic/resources/weather/city.py +46 -0
  84. golf/examples/basic/resources/weather/common.py +4 -11
  85. golf/examples/basic/resources/weather/current.py +5 -5
  86. golf/examples/basic/resources/weather/forecast.py +5 -5
  87. golf/examples/basic/tools/__pycache__/calculator.cpython-311.pyc +0 -0
  88. golf/examples/basic/tools/calculator.py +94 -0
  89. golf/examples/basic/tools/say/__pycache__/hello.cpython-311.pyc +0 -0
  90. golf/examples/basic/tools/say/hello.py +65 -0
  91. golf/metrics/collector.py +100 -19
  92. golf/telemetry/__init__.py +4 -0
  93. golf/telemetry/instrumentation.py +496 -174
  94. golf/utilities/__init__.py +12 -0
  95. golf/utilities/context.py +53 -0
  96. golf/utilities/elicitation.py +170 -0
  97. golf/utilities/sampling.py +221 -0
  98. {golf_mcp-0.1.19.dist-info → golf_mcp-0.2.0.dist-info}/METADATA +56 -110
  99. golf_mcp-0.2.0.dist-info/RECORD +110 -0
  100. golf/auth/oauth.py +0 -861
  101. golf/auth/provider.py +0 -115
  102. golf/examples/api_key/.env +0 -2
  103. golf/examples/api_key/.env.example +0 -1
  104. golf/examples/api_key/README.md +0 -84
  105. golf/examples/api_key/golf.json +0 -8
  106. golf/examples/api_key/pre_build.py +0 -11
  107. golf/examples/api_key/tools/issues/create.py +0 -93
  108. golf/examples/api_key/tools/issues/list.py +0 -92
  109. golf/examples/api_key/tools/repos/list.py +0 -111
  110. golf/examples/api_key/tools/search/code.py +0 -106
  111. golf/examples/api_key/tools/users/get.py +0 -82
  112. golf/examples/basic/.env +0 -5
  113. golf/examples/basic/pre_build.py +0 -28
  114. golf/examples/basic/tools/github_user.py +0 -65
  115. golf/examples/basic/tools/hello.py +0 -34
  116. golf/examples/basic/tools/payments/charge.py +0 -70
  117. golf/examples/basic/tools/payments/common.py +0 -36
  118. golf/examples/basic/tools/payments/refund.py +0 -61
  119. golf_mcp-0.1.19.dist-info/RECORD +0 -60
  120. {golf_mcp-0.1.19.dist-info → golf_mcp-0.2.0.dist-info}/WHEEL +0 -0
  121. {golf_mcp-0.1.19.dist-info → golf_mcp-0.2.0.dist-info}/entry_points.txt +0 -0
  122. {golf_mcp-0.1.19.dist-info → golf_mcp-0.2.0.dist-info}/licenses/LICENSE +0 -0
  123. {golf_mcp-0.1.19.dist-info → golf_mcp-0.2.0.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,2091 @@
1
+ <!DOCTYPE html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
5
+ <title>Coverage report</title>
6
+ <link rel="icon" sizes="32x32" href="favicon_32_cb_58284776.png">
7
+ <link rel="stylesheet" href="style_cb_8e611ae1.css" type="text/css">
8
+ <script src="coverage_html_cb_6fb7b396.js" defer></script>
9
+ </head>
10
+ <body class="indexfile">
11
+ <header>
12
+ <div class="content">
13
+ <h1>Coverage report:
14
+ <span class="pc_cov">10%</span>
15
+ </h1>
16
+ <aside id="help_panel_wrapper">
17
+ <input id="help_panel_state" type="checkbox">
18
+ <label for="help_panel_state">
19
+ <img id="keyboard_icon" src="keybd_closed_cb_ce680311.png" alt="Show/hide keyboard shortcuts">
20
+ </label>
21
+ <div id="help_panel">
22
+ <p class="legend">Shortcuts on this page</p>
23
+ <div class="keyhelp">
24
+ <p>
25
+ <kbd>f</kbd>
26
+ <kbd>n</kbd>
27
+ <kbd>s</kbd>
28
+ <kbd>m</kbd>
29
+ <kbd>x</kbd>
30
+ <kbd>c</kbd>
31
+ &nbsp; change column sorting
32
+ </p>
33
+ <p>
34
+ <kbd>[</kbd>
35
+ <kbd>]</kbd>
36
+ &nbsp; prev/next file
37
+ </p>
38
+ <p>
39
+ <kbd>?</kbd> &nbsp; show/hide this help
40
+ </p>
41
+ </div>
42
+ </div>
43
+ </aside>
44
+ <form id="filter_container">
45
+ <input id="filter" type="text" value="" placeholder="filter...">
46
+ <div>
47
+ <input id="hide100" type="checkbox" >
48
+ <label for="hide100">hide covered</label>
49
+ </div>
50
+ </form>
51
+ <h2>
52
+ <a class="button" href="index.html">Files</a>
53
+ <a class="button current">Functions</a>
54
+ <a class="button" href="class_index.html">Classes</a>
55
+ </h2>
56
+ <p class="text">
57
+ <a class="nav" href="https://coverage.readthedocs.io/en/7.6.12">coverage.py v7.6.12</a>,
58
+ created at 2025-08-16 18:46 +0200
59
+ </p>
60
+ </div>
61
+ </header>
62
+ <main id="index">
63
+ <table class="index" data-sortable>
64
+ <thead>
65
+ <tr class="tablehead" title="Click to sort">
66
+ <th id="file" class="name left" aria-sort="none" data-shortcut="f">File<span class="arrows"></span></th>
67
+ <th id="region" class="name left" aria-sort="none" data-default-sort-order="ascending" data-shortcut="n">function<span class="arrows"></span></th>
68
+ <th id="statements" aria-sort="none" data-default-sort-order="descending" data-shortcut="s">statements<span class="arrows"></span></th>
69
+ <th id="missing" aria-sort="none" data-default-sort-order="descending" data-shortcut="m">missing<span class="arrows"></span></th>
70
+ <th id="excluded" aria-sort="none" data-default-sort-order="descending" data-shortcut="x">excluded<span class="arrows"></span></th>
71
+ <th id="coverage" class="right" aria-sort="none" data-shortcut="c">coverage<span class="arrows"></span></th>
72
+ </tr>
73
+ </thead>
74
+ <tbody>
75
+ <tr class="region">
76
+ <td class="name left"><a href="z_6fcdee0582ba84e4___init___py.html">/Users/antonigmitruk/golf/src/golf/__init__.py</a></td>
77
+ <td class="name left"><a href="z_6fcdee0582ba84e4___init___py.html"><data value=''><span class='no-noun'>(no function)</span></data></a></td>
78
+ <td>5</td>
79
+ <td>0</td>
80
+ <td>0</td>
81
+ <td class="right" data-ratio="5 5">100%</td>
82
+ </tr>
83
+ <tr class="region">
84
+ <td class="name left"><a href="z_6fcdee0582ba84e4__endpoints_fallback_py.html">/Users/antonigmitruk/golf/src/golf/_endpoints_fallback.py</a></td>
85
+ <td class="name left"><a href="z_6fcdee0582ba84e4__endpoints_fallback_py.html"><data value=''><span class='no-noun'>(no function)</span></data></a></td>
86
+ <td>3</td>
87
+ <td>0</td>
88
+ <td>0</td>
89
+ <td class="right" data-ratio="3 3">100%</td>
90
+ </tr>
91
+ <tr class="region">
92
+ <td class="name left"><a href="z_1c9a91c0e91c8496___init___py.html#t80">/Users/antonigmitruk/golf/src/golf/auth/__init__.py</a></td>
93
+ <td class="name left"><a href="z_1c9a91c0e91c8496___init___py.html#t80"><data value='configure_auth'>configure_auth</data></a></td>
94
+ <td>1</td>
95
+ <td>1</td>
96
+ <td>0</td>
97
+ <td class="right" data-ratio="0 1">0%</td>
98
+ </tr>
99
+ <tr class="region">
100
+ <td class="name left"><a href="z_1c9a91c0e91c8496___init___py.html#t134">/Users/antonigmitruk/golf/src/golf/auth/__init__.py</a></td>
101
+ <td class="name left"><a href="z_1c9a91c0e91c8496___init___py.html#t134"><data value='configure_jwt_auth'>configure_jwt_auth</data></a></td>
102
+ <td>2</td>
103
+ <td>2</td>
104
+ <td>0</td>
105
+ <td class="right" data-ratio="0 2">0%</td>
106
+ </tr>
107
+ <tr class="region">
108
+ <td class="name left"><a href="z_1c9a91c0e91c8496___init___py.html#t165">/Users/antonigmitruk/golf/src/golf/auth/__init__.py</a></td>
109
+ <td class="name left"><a href="z_1c9a91c0e91c8496___init___py.html#t165"><data value='configure_dev_auth'>configure_dev_auth</data></a></td>
110
+ <td>4</td>
111
+ <td>4</td>
112
+ <td>0</td>
113
+ <td class="right" data-ratio="0 4">0%</td>
114
+ </tr>
115
+ <tr class="region">
116
+ <td class="name left"><a href="z_1c9a91c0e91c8496___init___py.html#t194">/Users/antonigmitruk/golf/src/golf/auth/__init__.py</a></td>
117
+ <td class="name left"><a href="z_1c9a91c0e91c8496___init___py.html#t194"><data value='get_auth_config'>get_auth_config</data></a></td>
118
+ <td>1</td>
119
+ <td>1</td>
120
+ <td>0</td>
121
+ <td class="right" data-ratio="0 1">0%</td>
122
+ </tr>
123
+ <tr class="region">
124
+ <td class="name left"><a href="z_1c9a91c0e91c8496___init___py.html#t203">/Users/antonigmitruk/golf/src/golf/auth/__init__.py</a></td>
125
+ <td class="name left"><a href="z_1c9a91c0e91c8496___init___py.html#t203"><data value='is_auth_configured'>is_auth_configured</data></a></td>
126
+ <td>1</td>
127
+ <td>1</td>
128
+ <td>0</td>
129
+ <td class="right" data-ratio="0 1">0%</td>
130
+ </tr>
131
+ <tr class="region">
132
+ <td class="name left"><a href="z_1c9a91c0e91c8496___init___py.html#t216">/Users/antonigmitruk/golf/src/golf/auth/__init__.py</a></td>
133
+ <td class="name left"><a href="z_1c9a91c0e91c8496___init___py.html#t216"><data value='create_auth_provider_from_config'>create_auth_provider_from_config</data></a></td>
134
+ <td>4</td>
135
+ <td>4</td>
136
+ <td>0</td>
137
+ <td class="right" data-ratio="0 4">0%</td>
138
+ </tr>
139
+ <tr class="region">
140
+ <td class="name left"><a href="z_1c9a91c0e91c8496___init___py.html">/Users/antonigmitruk/golf/src/golf/auth/__init__.py</a></td>
141
+ <td class="name left"><a href="z_1c9a91c0e91c8496___init___py.html"><data value=''><span class='no-noun'>(no function)</span></data></a></td>
142
+ <td>14</td>
143
+ <td>14</td>
144
+ <td>0</td>
145
+ <td class="right" data-ratio="0 14">0%</td>
146
+ </tr>
147
+ <tr class="region">
148
+ <td class="name left"><a href="z_1c9a91c0e91c8496_api_key_py.html#t26">/Users/antonigmitruk/golf/src/golf/auth/api_key.py</a></td>
149
+ <td class="name left"><a href="z_1c9a91c0e91c8496_api_key_py.html#t26"><data value='configure_api_key'>configure_api_key</data></a></td>
150
+ <td>1</td>
151
+ <td>1</td>
152
+ <td>0</td>
153
+ <td class="right" data-ratio="0 1">0%</td>
154
+ </tr>
155
+ <tr class="region">
156
+ <td class="name left"><a href="z_1c9a91c0e91c8496_api_key_py.html#t58">/Users/antonigmitruk/golf/src/golf/auth/api_key.py</a></td>
157
+ <td class="name left"><a href="z_1c9a91c0e91c8496_api_key_py.html#t58"><data value='get_api_key_config'>get_api_key_config</data></a></td>
158
+ <td>1</td>
159
+ <td>1</td>
160
+ <td>0</td>
161
+ <td class="right" data-ratio="0 1">0%</td>
162
+ </tr>
163
+ <tr class="region">
164
+ <td class="name left"><a href="z_1c9a91c0e91c8496_api_key_py.html#t67">/Users/antonigmitruk/golf/src/golf/auth/api_key.py</a></td>
165
+ <td class="name left"><a href="z_1c9a91c0e91c8496_api_key_py.html#t67"><data value='is_api_key_configured'>is_api_key_configured</data></a></td>
166
+ <td>1</td>
167
+ <td>1</td>
168
+ <td>0</td>
169
+ <td class="right" data-ratio="0 1">0%</td>
170
+ </tr>
171
+ <tr class="region">
172
+ <td class="name left"><a href="z_1c9a91c0e91c8496_api_key_py.html">/Users/antonigmitruk/golf/src/golf/auth/api_key.py</a></td>
173
+ <td class="name left"><a href="z_1c9a91c0e91c8496_api_key_py.html"><data value=''><span class='no-noun'>(no function)</span></data></a></td>
174
+ <td>9</td>
175
+ <td>9</td>
176
+ <td>0</td>
177
+ <td class="right" data-ratio="0 9">0%</td>
178
+ </tr>
179
+ <tr class="region">
180
+ <td class="name left"><a href="z_1c9a91c0e91c8496_factory_py.html#t27">/Users/antonigmitruk/golf/src/golf/auth/factory.py</a></td>
181
+ <td class="name left"><a href="z_1c9a91c0e91c8496_factory_py.html#t27"><data value='create_auth_provider'>create_auth_provider</data></a></td>
182
+ <td>12</td>
183
+ <td>12</td>
184
+ <td>0</td>
185
+ <td class="right" data-ratio="0 12">0%</td>
186
+ </tr>
187
+ <tr class="region">
188
+ <td class="name left"><a href="z_1c9a91c0e91c8496_factory_py.html#t62">/Users/antonigmitruk/golf/src/golf/auth/factory.py</a></td>
189
+ <td class="name left"><a href="z_1c9a91c0e91c8496_factory_py.html#t62"><data value='create_jwt_provider'>_create_jwt_provider</data></a></td>
190
+ <td>31</td>
191
+ <td>31</td>
192
+ <td>0</td>
193
+ <td class="right" data-ratio="0 31">0%</td>
194
+ </tr>
195
+ <tr class="region">
196
+ <td class="name left"><a href="z_1c9a91c0e91c8496_factory_py.html#t115">/Users/antonigmitruk/golf/src/golf/auth/factory.py</a></td>
197
+ <td class="name left"><a href="z_1c9a91c0e91c8496_factory_py.html#t115"><data value='create_static_provider'>_create_static_provider</data></a></td>
198
+ <td>7</td>
199
+ <td>7</td>
200
+ <td>0</td>
201
+ <td class="right" data-ratio="0 7">0%</td>
202
+ </tr>
203
+ <tr class="region">
204
+ <td class="name left"><a href="z_1c9a91c0e91c8496_factory_py.html#t131">/Users/antonigmitruk/golf/src/golf/auth/factory.py</a></td>
205
+ <td class="name left"><a href="z_1c9a91c0e91c8496_factory_py.html#t131"><data value='create_oauth_server_provider'>_create_oauth_server_provider</data></a></td>
206
+ <td>34</td>
207
+ <td>34</td>
208
+ <td>0</td>
209
+ <td class="right" data-ratio="0 34">0%</td>
210
+ </tr>
211
+ <tr class="region">
212
+ <td class="name left"><a href="z_1c9a91c0e91c8496_factory_py.html#t211">/Users/antonigmitruk/golf/src/golf/auth/factory.py</a></td>
213
+ <td class="name left"><a href="z_1c9a91c0e91c8496_factory_py.html#t211"><data value='create_remote_provider'>_create_remote_provider</data></a></td>
214
+ <td>18</td>
215
+ <td>18</td>
216
+ <td>0</td>
217
+ <td class="right" data-ratio="0 18">0%</td>
218
+ </tr>
219
+ <tr class="region">
220
+ <td class="name left"><a href="z_1c9a91c0e91c8496_factory_py.html#t248">/Users/antonigmitruk/golf/src/golf/auth/factory.py</a></td>
221
+ <td class="name left"><a href="z_1c9a91c0e91c8496_factory_py.html#t248"><data value='create_simple_jwt_provider'>create_simple_jwt_provider</data></a></td>
222
+ <td>2</td>
223
+ <td>2</td>
224
+ <td>0</td>
225
+ <td class="right" data-ratio="0 2">0%</td>
226
+ </tr>
227
+ <tr class="region">
228
+ <td class="name left"><a href="z_1c9a91c0e91c8496_factory_py.html#t281">/Users/antonigmitruk/golf/src/golf/auth/factory.py</a></td>
229
+ <td class="name left"><a href="z_1c9a91c0e91c8496_factory_py.html#t281"><data value='create_dev_token_provider'>create_dev_token_provider</data></a></td>
230
+ <td>4</td>
231
+ <td>4</td>
232
+ <td>0</td>
233
+ <td class="right" data-ratio="0 4">0%</td>
234
+ </tr>
235
+ <tr class="region">
236
+ <td class="name left"><a href="z_1c9a91c0e91c8496_factory_py.html#t314">/Users/antonigmitruk/golf/src/golf/auth/factory.py</a></td>
237
+ <td class="name left"><a href="z_1c9a91c0e91c8496_factory_py.html#t314"><data value='register_builtin_providers'>register_builtin_providers</data></a></td>
238
+ <td>5</td>
239
+ <td>5</td>
240
+ <td>0</td>
241
+ <td class="right" data-ratio="0 5">0%</td>
242
+ </tr>
243
+ <tr class="region">
244
+ <td class="name left"><a href="z_1c9a91c0e91c8496_factory_py.html">/Users/antonigmitruk/golf/src/golf/auth/factory.py</a></td>
245
+ <td class="name left"><a href="z_1c9a91c0e91c8496_factory_py.html"><data value=''><span class='no-noun'>(no function)</span></data></a></td>
246
+ <td>18</td>
247
+ <td>18</td>
248
+ <td>0</td>
249
+ <td class="right" data-ratio="0 18">0%</td>
250
+ </tr>
251
+ <tr class="region">
252
+ <td class="name left"><a href="z_1c9a91c0e91c8496_helpers_py.html#t12">/Users/antonigmitruk/golf/src/golf/auth/helpers.py</a></td>
253
+ <td class="name left"><a href="z_1c9a91c0e91c8496_helpers_py.html#t12"><data value='get_provider_token'>get_provider_token</data></a></td>
254
+ <td>1</td>
255
+ <td>1</td>
256
+ <td>0</td>
257
+ <td class="right" data-ratio="0 1">0%</td>
258
+ </tr>
259
+ <tr class="region">
260
+ <td class="name left"><a href="z_1c9a91c0e91c8496_helpers_py.html#t24">/Users/antonigmitruk/golf/src/golf/auth/helpers.py</a></td>
261
+ <td class="name left"><a href="z_1c9a91c0e91c8496_helpers_py.html#t24"><data value='extract_token_from_header'>extract_token_from_header</data></a></td>
262
+ <td>6</td>
263
+ <td>6</td>
264
+ <td>0</td>
265
+ <td class="right" data-ratio="0 6">0%</td>
266
+ </tr>
267
+ <tr class="region">
268
+ <td class="name left"><a href="z_1c9a91c0e91c8496_helpers_py.html#t43">/Users/antonigmitruk/golf/src/golf/auth/helpers.py</a></td>
269
+ <td class="name left"><a href="z_1c9a91c0e91c8496_helpers_py.html#t43"><data value='set_api_key'>set_api_key</data></a></td>
270
+ <td>1</td>
271
+ <td>1</td>
272
+ <td>0</td>
273
+ <td class="right" data-ratio="0 1">0%</td>
274
+ </tr>
275
+ <tr class="region">
276
+ <td class="name left"><a href="z_1c9a91c0e91c8496_helpers_py.html#t54">/Users/antonigmitruk/golf/src/golf/auth/helpers.py</a></td>
277
+ <td class="name left"><a href="z_1c9a91c0e91c8496_helpers_py.html#t54"><data value='get_api_key'>get_api_key</data></a></td>
278
+ <td>29</td>
279
+ <td>29</td>
280
+ <td>0</td>
281
+ <td class="right" data-ratio="0 29">0%</td>
282
+ </tr>
283
+ <tr class="region">
284
+ <td class="name left"><a href="z_1c9a91c0e91c8496_helpers_py.html#t126">/Users/antonigmitruk/golf/src/golf/auth/helpers.py</a></td>
285
+ <td class="name left"><a href="z_1c9a91c0e91c8496_helpers_py.html#t126"><data value='get_api_key_from_request'>get_api_key_from_request</data></a></td>
286
+ <td>3</td>
287
+ <td>3</td>
288
+ <td>0</td>
289
+ <td class="right" data-ratio="0 3">0%</td>
290
+ </tr>
291
+ <tr class="region">
292
+ <td class="name left"><a href="z_1c9a91c0e91c8496_helpers_py.html#t145">/Users/antonigmitruk/golf/src/golf/auth/helpers.py</a></td>
293
+ <td class="name left"><a href="z_1c9a91c0e91c8496_helpers_py.html#t145"><data value='debug_api_key_context'>debug_api_key_context</data></a></td>
294
+ <td>22</td>
295
+ <td>22</td>
296
+ <td>0</td>
297
+ <td class="right" data-ratio="0 22">0%</td>
298
+ </tr>
299
+ <tr class="region">
300
+ <td class="name left"><a href="z_1c9a91c0e91c8496_helpers_py.html">/Users/antonigmitruk/golf/src/golf/auth/helpers.py</a></td>
301
+ <td class="name left"><a href="z_1c9a91c0e91c8496_helpers_py.html"><data value=''><span class='no-noun'>(no function)</span></data></a></td>
302
+ <td>10</td>
303
+ <td>10</td>
304
+ <td>0</td>
305
+ <td class="right" data-ratio="0 10">0%</td>
306
+ </tr>
307
+ <tr class="region">
308
+ <td class="name left"><a href="z_1c9a91c0e91c8496_providers_py.html#t47">/Users/antonigmitruk/golf/src/golf/auth/providers.py</a></td>
309
+ <td class="name left"><a href="z_1c9a91c0e91c8496_providers_py.html#t47"><data value='validate_jwt_config'>JWTAuthConfig.validate_jwt_config</data></a></td>
310
+ <td>15</td>
311
+ <td>15</td>
312
+ <td>0</td>
313
+ <td class="right" data-ratio="0 15">0%</td>
314
+ </tr>
315
+ <tr class="region">
316
+ <td class="name left"><a href="z_1c9a91c0e91c8496_providers_py.html#t141">/Users/antonigmitruk/golf/src/golf/auth/providers.py</a></td>
317
+ <td class="name left"><a href="z_1c9a91c0e91c8496_providers_py.html#t141"><data value='validate_base_url'>OAuthServerConfig.validate_base_url</data></a></td>
318
+ <td>21</td>
319
+ <td>21</td>
320
+ <td>0</td>
321
+ <td class="right" data-ratio="0 21">0%</td>
322
+ </tr>
323
+ <tr class="region">
324
+ <td class="name left"><a href="z_1c9a91c0e91c8496_providers_py.html#t186">/Users/antonigmitruk/golf/src/golf/auth/providers.py</a></td>
325
+ <td class="name left"><a href="z_1c9a91c0e91c8496_providers_py.html#t186"><data value='validate_optional_urls'>OAuthServerConfig.validate_optional_urls</data></a></td>
326
+ <td>21</td>
327
+ <td>21</td>
328
+ <td>0</td>
329
+ <td class="right" data-ratio="0 21">0%</td>
330
+ </tr>
331
+ <tr class="region">
332
+ <td class="name left"><a href="z_1c9a91c0e91c8496_providers_py.html#t229">/Users/antonigmitruk/golf/src/golf/auth/providers.py</a></td>
333
+ <td class="name left"><a href="z_1c9a91c0e91c8496_providers_py.html#t229"><data value='validate_scopes'>OAuthServerConfig.validate_scopes</data></a></td>
334
+ <td>17</td>
335
+ <td>17</td>
336
+ <td>0</td>
337
+ <td class="right" data-ratio="0 17">0%</td>
338
+ </tr>
339
+ <tr class="region">
340
+ <td class="name left"><a href="z_1c9a91c0e91c8496_providers_py.html#t268">/Users/antonigmitruk/golf/src/golf/auth/providers.py</a></td>
341
+ <td class="name left"><a href="z_1c9a91c0e91c8496_providers_py.html#t268"><data value='validate_oauth_server_config'>OAuthServerConfig.validate_oauth_server_config</data></a></td>
342
+ <td>9</td>
343
+ <td>9</td>
344
+ <td>0</td>
345
+ <td class="right" data-ratio="0 9">0%</td>
346
+ </tr>
347
+ <tr class="region">
348
+ <td class="name left"><a href="z_1c9a91c0e91c8496_providers_py.html#t317">/Users/antonigmitruk/golf/src/golf/auth/providers.py</a></td>
349
+ <td class="name left"><a href="z_1c9a91c0e91c8496_providers_py.html#t317"><data value='validate_authorization_servers'>RemoteAuthConfig.validate_authorization_servers</data></a></td>
350
+ <td>17</td>
351
+ <td>17</td>
352
+ <td>0</td>
353
+ <td class="right" data-ratio="0 17">0%</td>
354
+ </tr>
355
+ <tr class="region">
356
+ <td class="name left"><a href="z_1c9a91c0e91c8496_providers_py.html#t348">/Users/antonigmitruk/golf/src/golf/auth/providers.py</a></td>
357
+ <td class="name left"><a href="z_1c9a91c0e91c8496_providers_py.html#t348"><data value='validate_resource_server_url'>RemoteAuthConfig.validate_resource_server_url</data></a></td>
358
+ <td>12</td>
359
+ <td>12</td>
360
+ <td>0</td>
361
+ <td class="right" data-ratio="0 12">0%</td>
362
+ </tr>
363
+ <tr class="region">
364
+ <td class="name left"><a href="z_1c9a91c0e91c8496_providers_py.html#t366">/Users/antonigmitruk/golf/src/golf/auth/providers.py</a></td>
365
+ <td class="name left"><a href="z_1c9a91c0e91c8496_providers_py.html#t366"><data value='validate_token_verifier_compatibility'>RemoteAuthConfig.validate_token_verifier_compatibility</data></a></td>
366
+ <td>8</td>
367
+ <td>8</td>
368
+ <td>0</td>
369
+ <td class="right" data-ratio="0 8">0%</td>
370
+ </tr>
371
+ <tr class="region">
372
+ <td class="name left"><a href="z_1c9a91c0e91c8496_providers_py.html">/Users/antonigmitruk/golf/src/golf/auth/providers.py</a></td>
373
+ <td class="name left"><a href="z_1c9a91c0e91c8496_providers_py.html"><data value=''><span class='no-noun'>(no function)</span></data></a></td>
374
+ <td>59</td>
375
+ <td>59</td>
376
+ <td>0</td>
377
+ <td class="right" data-ratio="0 59">0%</td>
378
+ </tr>
379
+ <tr class="region">
380
+ <td class="name left"><a href="z_1c9a91c0e91c8496_registry_py.html#t23">/Users/antonigmitruk/golf/src/golf/auth/registry.py</a></td>
381
+ <td class="name left"><a href="z_1c9a91c0e91c8496_registry_py.html#t23"><data value='call__'>AuthProviderFactory.__call__</data></a></td>
382
+ <td>1</td>
383
+ <td>1</td>
384
+ <td>0</td>
385
+ <td class="right" data-ratio="0 1">0%</td>
386
+ </tr>
387
+ <tr class="region">
388
+ <td class="name left"><a href="z_1c9a91c0e91c8496_registry_py.html#t48">/Users/antonigmitruk/golf/src/golf/auth/registry.py</a></td>
389
+ <td class="name left"><a href="z_1c9a91c0e91c8496_registry_py.html#t48"><data value='provider_type'>BaseProviderPlugin.provider_type</data></a></td>
390
+ <td>1</td>
391
+ <td>1</td>
392
+ <td>0</td>
393
+ <td class="right" data-ratio="0 1">0%</td>
394
+ </tr>
395
+ <tr class="region">
396
+ <td class="name left"><a href="z_1c9a91c0e91c8496_registry_py.html#t54">/Users/antonigmitruk/golf/src/golf/auth/registry.py</a></td>
397
+ <td class="name left"><a href="z_1c9a91c0e91c8496_registry_py.html#t54"><data value='config_class'>BaseProviderPlugin.config_class</data></a></td>
398
+ <td>1</td>
399
+ <td>1</td>
400
+ <td>0</td>
401
+ <td class="right" data-ratio="0 1">0%</td>
402
+ </tr>
403
+ <tr class="region">
404
+ <td class="name left"><a href="z_1c9a91c0e91c8496_registry_py.html#t59">/Users/antonigmitruk/golf/src/golf/auth/registry.py</a></td>
405
+ <td class="name left"><a href="z_1c9a91c0e91c8496_registry_py.html#t59"><data value='create_provider'>BaseProviderPlugin.create_provider</data></a></td>
406
+ <td>1</td>
407
+ <td>1</td>
408
+ <td>0</td>
409
+ <td class="right" data-ratio="0 1">0%</td>
410
+ </tr>
411
+ <tr class="region">
412
+ <td class="name left"><a href="z_1c9a91c0e91c8496_registry_py.html#t70">/Users/antonigmitruk/golf/src/golf/auth/registry.py</a></td>
413
+ <td class="name left"><a href="z_1c9a91c0e91c8496_registry_py.html#t70"><data value='validate_config'>BaseProviderPlugin.validate_config</data></a></td>
414
+ <td>2</td>
415
+ <td>2</td>
416
+ <td>0</td>
417
+ <td class="right" data-ratio="0 2">0%</td>
418
+ </tr>
419
+ <tr class="region">
420
+ <td class="name left"><a href="z_1c9a91c0e91c8496_registry_py.html#t96">/Users/antonigmitruk/golf/src/golf/auth/registry.py</a></td>
421
+ <td class="name left"><a href="z_1c9a91c0e91c8496_registry_py.html#t96"><data value='init__'>AuthProviderRegistry.__init__</data></a></td>
422
+ <td>2</td>
423
+ <td>2</td>
424
+ <td>0</td>
425
+ <td class="right" data-ratio="0 2">0%</td>
426
+ </tr>
427
+ <tr class="region">
428
+ <td class="name left"><a href="z_1c9a91c0e91c8496_registry_py.html#t100">/Users/antonigmitruk/golf/src/golf/auth/registry.py</a></td>
429
+ <td class="name left"><a href="z_1c9a91c0e91c8496_registry_py.html#t100"><data value='register_factory'>AuthProviderRegistry.register_factory</data></a></td>
430
+ <td>3</td>
431
+ <td>3</td>
432
+ <td>0</td>
433
+ <td class="right" data-ratio="0 3">0%</td>
434
+ </tr>
435
+ <tr class="region">
436
+ <td class="name left"><a href="z_1c9a91c0e91c8496_registry_py.html#t115">/Users/antonigmitruk/golf/src/golf/auth/registry.py</a></td>
437
+ <td class="name left"><a href="z_1c9a91c0e91c8496_registry_py.html#t115"><data value='register_plugin'>AuthProviderRegistry.register_plugin</data></a></td>
438
+ <td>4</td>
439
+ <td>4</td>
440
+ <td>0</td>
441
+ <td class="right" data-ratio="0 4">0%</td>
442
+ </tr>
443
+ <tr class="region">
444
+ <td class="name left"><a href="z_1c9a91c0e91c8496_registry_py.html#t130">/Users/antonigmitruk/golf/src/golf/auth/registry.py</a></td>
445
+ <td class="name left"><a href="z_1c9a91c0e91c8496_registry_py.html#t130"><data value='unregister'>AuthProviderRegistry.unregister</data></a></td>
446
+ <td>5</td>
447
+ <td>5</td>
448
+ <td>0</td>
449
+ <td class="right" data-ratio="0 5">0%</td>
450
+ </tr>
451
+ <tr class="region">
452
+ <td class="name left"><a href="z_1c9a91c0e91c8496_registry_py.html#t146">/Users/antonigmitruk/golf/src/golf/auth/registry.py</a></td>
453
+ <td class="name left"><a href="z_1c9a91c0e91c8496_registry_py.html#t146"><data value='get_factory'>AuthProviderRegistry.get_factory</data></a></td>
454
+ <td>7</td>
455
+ <td>7</td>
456
+ <td>0</td>
457
+ <td class="right" data-ratio="0 7">0%</td>
458
+ </tr>
459
+ <tr class="region">
460
+ <td class="name left"><a href="z_1c9a91c0e91c8496_registry_py.html#t167">/Users/antonigmitruk/golf/src/golf/auth/registry.py</a></td>
461
+ <td class="name left"><a href="z_1c9a91c0e91c8496_registry_py.html#t167"><data value='plugin_factory'>AuthProviderRegistry.get_factory.plugin_factory</data></a></td>
462
+ <td>2</td>
463
+ <td>2</td>
464
+ <td>0</td>
465
+ <td class="right" data-ratio="0 2">0%</td>
466
+ </tr>
467
+ <tr class="region">
468
+ <td class="name left"><a href="z_1c9a91c0e91c8496_registry_py.html#t175">/Users/antonigmitruk/golf/src/golf/auth/registry.py</a></td>
469
+ <td class="name left"><a href="z_1c9a91c0e91c8496_registry_py.html#t175"><data value='create_provider'>AuthProviderRegistry.create_provider</data></a></td>
470
+ <td>5</td>
471
+ <td>5</td>
472
+ <td>0</td>
473
+ <td class="right" data-ratio="0 5">0%</td>
474
+ </tr>
475
+ <tr class="region">
476
+ <td class="name left"><a href="z_1c9a91c0e91c8496_registry_py.html#t195">/Users/antonigmitruk/golf/src/golf/auth/registry.py</a></td>
477
+ <td class="name left"><a href="z_1c9a91c0e91c8496_registry_py.html#t195"><data value='list_providers'>AuthProviderRegistry.list_providers</data></a></td>
478
+ <td>1</td>
479
+ <td>1</td>
480
+ <td>0</td>
481
+ <td class="right" data-ratio="0 1">0%</td>
482
+ </tr>
483
+ <tr class="region">
484
+ <td class="name left"><a href="z_1c9a91c0e91c8496_registry_py.html#t203">/Users/antonigmitruk/golf/src/golf/auth/registry.py</a></td>
485
+ <td class="name left"><a href="z_1c9a91c0e91c8496_registry_py.html#t203"><data value='is_registered'>AuthProviderRegistry.is_registered</data></a></td>
486
+ <td>1</td>
487
+ <td>1</td>
488
+ <td>0</td>
489
+ <td class="right" data-ratio="0 1">0%</td>
490
+ </tr>
491
+ <tr class="region">
492
+ <td class="name left"><a href="z_1c9a91c0e91c8496_registry_py.html#t219">/Users/antonigmitruk/golf/src/golf/auth/registry.py</a></td>
493
+ <td class="name left"><a href="z_1c9a91c0e91c8496_registry_py.html#t219"><data value='get_provider_registry'>get_provider_registry</data></a></td>
494
+ <td>1</td>
495
+ <td>1</td>
496
+ <td>0</td>
497
+ <td class="right" data-ratio="0 1">0%</td>
498
+ </tr>
499
+ <tr class="region">
500
+ <td class="name left"><a href="z_1c9a91c0e91c8496_registry_py.html#t228">/Users/antonigmitruk/golf/src/golf/auth/registry.py</a></td>
501
+ <td class="name left"><a href="z_1c9a91c0e91c8496_registry_py.html#t228"><data value='register_provider_factory'>register_provider_factory</data></a></td>
502
+ <td>1</td>
503
+ <td>1</td>
504
+ <td>0</td>
505
+ <td class="right" data-ratio="0 1">0%</td>
506
+ </tr>
507
+ <tr class="region">
508
+ <td class="name left"><a href="z_1c9a91c0e91c8496_registry_py.html#t238">/Users/antonigmitruk/golf/src/golf/auth/registry.py</a></td>
509
+ <td class="name left"><a href="z_1c9a91c0e91c8496_registry_py.html#t238"><data value='register_provider_plugin'>register_provider_plugin</data></a></td>
510
+ <td>1</td>
511
+ <td>1</td>
512
+ <td>0</td>
513
+ <td class="right" data-ratio="0 1">0%</td>
514
+ </tr>
515
+ <tr class="region">
516
+ <td class="name left"><a href="z_1c9a91c0e91c8496_registry_py.html#t247">/Users/antonigmitruk/golf/src/golf/auth/registry.py</a></td>
517
+ <td class="name left"><a href="z_1c9a91c0e91c8496_registry_py.html#t247"><data value='create_auth_provider_from_registry'>create_auth_provider_from_registry</data></a></td>
518
+ <td>1</td>
519
+ <td>1</td>
520
+ <td>0</td>
521
+ <td class="right" data-ratio="0 1">0%</td>
522
+ </tr>
523
+ <tr class="region">
524
+ <td class="name left"><a href="z_1c9a91c0e91c8496_registry_py.html">/Users/antonigmitruk/golf/src/golf/auth/registry.py</a></td>
525
+ <td class="name left"><a href="z_1c9a91c0e91c8496_registry_py.html"><data value=''><span class='no-noun'>(no function)</span></data></a></td>
526
+ <td>31</td>
527
+ <td>31</td>
528
+ <td>0</td>
529
+ <td class="right" data-ratio="0 31">0%</td>
530
+ </tr>
531
+ <tr class="region">
532
+ <td class="name left"><a href="z_4b8b9dd4ccccc5db___init___py.html">/Users/antonigmitruk/golf/src/golf/cli/__init__.py</a></td>
533
+ <td class="name left"><a href="z_4b8b9dd4ccccc5db___init___py.html"><data value=''><span class='no-noun'>(no function)</span></data></a></td>
534
+ <td>0</td>
535
+ <td>0</td>
536
+ <td>0</td>
537
+ <td class="right" data-ratio="0 0">100%</td>
538
+ </tr>
539
+ <tr class="region">
540
+ <td class="name left"><a href="z_4b8b9dd4ccccc5db_branding_py.html#t42">/Users/antonigmitruk/golf/src/golf/cli/branding.py</a></td>
541
+ <td class="name left"><a href="z_4b8b9dd4ccccc5db_branding_py.html#t42"><data value='create_welcome_banner'>create_welcome_banner</data></a></td>
542
+ <td>18</td>
543
+ <td>18</td>
544
+ <td>0</td>
545
+ <td class="right" data-ratio="0 18">0%</td>
546
+ </tr>
547
+ <tr class="region">
548
+ <td class="name left"><a href="z_4b8b9dd4ccccc5db_branding_py.html#t88">/Users/antonigmitruk/golf/src/golf/cli/branding.py</a></td>
549
+ <td class="name left"><a href="z_4b8b9dd4ccccc5db_branding_py.html#t88"><data value='create_command_header'>create_command_header</data></a></td>
550
+ <td>9</td>
551
+ <td>9</td>
552
+ <td>0</td>
553
+ <td class="right" data-ratio="0 9">0%</td>
554
+ </tr>
555
+ <tr class="region">
556
+ <td class="name left"><a href="z_4b8b9dd4ccccc5db_branding_py.html#t110">/Users/antonigmitruk/golf/src/golf/cli/branding.py</a></td>
557
+ <td class="name left"><a href="z_4b8b9dd4ccccc5db_branding_py.html#t110"><data value='create_success_message'>create_success_message</data></a></td>
558
+ <td>8</td>
559
+ <td>8</td>
560
+ <td>0</td>
561
+ <td class="right" data-ratio="0 8">0%</td>
562
+ </tr>
563
+ <tr class="region">
564
+ <td class="name left"><a href="z_4b8b9dd4ccccc5db_branding_py.html#t130">/Users/antonigmitruk/golf/src/golf/cli/branding.py</a></td>
565
+ <td class="name left"><a href="z_4b8b9dd4ccccc5db_branding_py.html#t130"><data value='create_info_panel'>create_info_panel</data></a></td>
566
+ <td>10</td>
567
+ <td>10</td>
568
+ <td>0</td>
569
+ <td class="right" data-ratio="0 10">0%</td>
570
+ </tr>
571
+ <tr class="region">
572
+ <td class="name left"><a href="z_4b8b9dd4ccccc5db_branding_py.html#t152">/Users/antonigmitruk/golf/src/golf/cli/branding.py</a></td>
573
+ <td class="name left"><a href="z_4b8b9dd4ccccc5db_branding_py.html#t152"><data value='get_status_text'>get_status_text</data></a></td>
574
+ <td>17</td>
575
+ <td>17</td>
576
+ <td>0</td>
577
+ <td class="right" data-ratio="0 17">0%</td>
578
+ </tr>
579
+ <tr class="region">
580
+ <td class="name left"><a href="z_4b8b9dd4ccccc5db_branding_py.html#t176">/Users/antonigmitruk/golf/src/golf/cli/branding.py</a></td>
581
+ <td class="name left"><a href="z_4b8b9dd4ccccc5db_branding_py.html#t176"><data value='create_build_header'>create_build_header</data></a></td>
582
+ <td>6</td>
583
+ <td>6</td>
584
+ <td>0</td>
585
+ <td class="right" data-ratio="0 6">0%</td>
586
+ </tr>
587
+ <tr class="region">
588
+ <td class="name left"><a href="z_4b8b9dd4ccccc5db_branding_py.html">/Users/antonigmitruk/golf/src/golf/cli/branding.py</a></td>
589
+ <td class="name left"><a href="z_4b8b9dd4ccccc5db_branding_py.html"><data value=''><span class='no-noun'>(no function)</span></data></a></td>
590
+ <td>17</td>
591
+ <td>17</td>
592
+ <td>0</td>
593
+ <td class="right" data-ratio="0 17">0%</td>
594
+ </tr>
595
+ <tr class="region">
596
+ <td class="name left"><a href="z_4b8b9dd4ccccc5db_main_py.html#t35">/Users/antonigmitruk/golf/src/golf/cli/main.py</a></td>
597
+ <td class="name left"><a href="z_4b8b9dd4ccccc5db_main_py.html#t35"><data value='version_callback'>_version_callback</data></a></td>
598
+ <td>3</td>
599
+ <td>3</td>
600
+ <td>0</td>
601
+ <td class="right" data-ratio="0 3">0%</td>
602
+ </tr>
603
+ <tr class="region">
604
+ <td class="name left"><a href="z_4b8b9dd4ccccc5db_main_py.html#t43">/Users/antonigmitruk/golf/src/golf/cli/main.py</a></td>
605
+ <td class="name left"><a href="z_4b8b9dd4ccccc5db_main_py.html#t43"><data value='callback'>callback</data></a></td>
606
+ <td>8</td>
607
+ <td>8</td>
608
+ <td>0</td>
609
+ <td class="right" data-ratio="0 8">0%</td>
610
+ </tr>
611
+ <tr class="region">
612
+ <td class="name left"><a href="z_4b8b9dd4ccccc5db_main_py.html#t82">/Users/antonigmitruk/golf/src/golf/cli/main.py</a></td>
613
+ <td class="name left"><a href="z_4b8b9dd4ccccc5db_main_py.html#t82"><data value='init'>init</data></a></td>
614
+ <td>7</td>
615
+ <td>7</td>
616
+ <td>0</td>
617
+ <td class="right" data-ratio="0 7">0%</td>
618
+ </tr>
619
+ <tr class="region">
620
+ <td class="name left"><a href="z_4b8b9dd4ccccc5db_main_py.html#t113">/Users/antonigmitruk/golf/src/golf/cli/main.py</a></td>
621
+ <td class="name left"><a href="z_4b8b9dd4ccccc5db_main_py.html#t113"><data value='build_dev'>build_dev</data></a></td>
622
+ <td>15</td>
623
+ <td>15</td>
624
+ <td>0</td>
625
+ <td class="right" data-ratio="0 15">0%</td>
626
+ </tr>
627
+ <tr class="region">
628
+ <td class="name left"><a href="z_4b8b9dd4ccccc5db_main_py.html#t165">/Users/antonigmitruk/golf/src/golf/cli/main.py</a></td>
629
+ <td class="name left"><a href="z_4b8b9dd4ccccc5db_main_py.html#t165"><data value='build_prod'>build_prod</data></a></td>
630
+ <td>15</td>
631
+ <td>15</td>
632
+ <td>0</td>
633
+ <td class="right" data-ratio="0 15">0%</td>
634
+ </tr>
635
+ <tr class="region">
636
+ <td class="name left"><a href="z_4b8b9dd4ccccc5db_main_py.html#t220">/Users/antonigmitruk/golf/src/golf/cli/main.py</a></td>
637
+ <td class="name left"><a href="z_4b8b9dd4ccccc5db_main_py.html#t220"><data value='run'>run</data></a></td>
638
+ <td>36</td>
639
+ <td>36</td>
640
+ <td>0</td>
641
+ <td class="right" data-ratio="0 36">0%</td>
642
+ </tr>
643
+ <tr class="region">
644
+ <td class="name left"><a href="z_4b8b9dd4ccccc5db_main_py.html#t353">/Users/antonigmitruk/golf/src/golf/cli/main.py</a></td>
645
+ <td class="name left"><a href="z_4b8b9dd4ccccc5db_main_py.html#t353"><data value='telemetry'>telemetry</data></a></td>
646
+ <td>8</td>
647
+ <td>8</td>
648
+ <td>0</td>
649
+ <td class="right" data-ratio="0 8">0%</td>
650
+ </tr>
651
+ <tr class="region">
652
+ <td class="name left"><a href="z_4b8b9dd4ccccc5db_main_py.html">/Users/antonigmitruk/golf/src/golf/cli/main.py</a></td>
653
+ <td class="name left"><a href="z_4b8b9dd4ccccc5db_main_py.html"><data value=''><span class='no-noun'>(no function)</span></data></a></td>
654
+ <td>32</td>
655
+ <td>32</td>
656
+ <td>0</td>
657
+ <td class="right" data-ratio="0 32">0%</td>
658
+ </tr>
659
+ <tr class="region">
660
+ <td class="name left"><a href="z_6cadab9ec0df475d___init___py.html">/Users/antonigmitruk/golf/src/golf/commands/__init__.py</a></td>
661
+ <td class="name left"><a href="z_6cadab9ec0df475d___init___py.html"><data value=''><span class='no-noun'>(no function)</span></data></a></td>
662
+ <td>2</td>
663
+ <td>2</td>
664
+ <td>0</td>
665
+ <td class="right" data-ratio="0 2">0%</td>
666
+ </tr>
667
+ <tr class="region">
668
+ <td class="name left"><a href="z_6cadab9ec0df475d_build_py.html#t18">/Users/antonigmitruk/golf/src/golf/commands/build.py</a></td>
669
+ <td class="name left"><a href="z_6cadab9ec0df475d_build_py.html#t18"><data value='build_project'>build_project</data></a></td>
670
+ <td>1</td>
671
+ <td>1</td>
672
+ <td>0</td>
673
+ <td class="right" data-ratio="0 1">0%</td>
674
+ </tr>
675
+ <tr class="region">
676
+ <td class="name left"><a href="z_6cadab9ec0df475d_build_py.html">/Users/antonigmitruk/golf/src/golf/commands/build.py</a></td>
677
+ <td class="name left"><a href="z_6cadab9ec0df475d_build_py.html"><data value=''><span class='no-noun'>(no function)</span></data></a></td>
678
+ <td>16</td>
679
+ <td>16</td>
680
+ <td>0</td>
681
+ <td class="right" data-ratio="0 16">0%</td>
682
+ </tr>
683
+ <tr class="region">
684
+ <td class="name left"><a href="z_6cadab9ec0df475d_init_py.html#t27">/Users/antonigmitruk/golf/src/golf/commands/init.py</a></td>
685
+ <td class="name left"><a href="z_6cadab9ec0df475d_init_py.html#t27"><data value='initialize_project'>initialize_project</data></a></td>
686
+ <td>34</td>
687
+ <td>34</td>
688
+ <td>0</td>
689
+ <td class="right" data-ratio="0 34">0%</td>
690
+ </tr>
691
+ <tr class="region">
692
+ <td class="name left"><a href="z_6cadab9ec0df475d_init_py.html#t121">/Users/antonigmitruk/golf/src/golf/commands/init.py</a></td>
693
+ <td class="name left"><a href="z_6cadab9ec0df475d_init_py.html#t121"><data value='copy_template'>_copy_template</data></a></td>
694
+ <td>52</td>
695
+ <td>52</td>
696
+ <td>0</td>
697
+ <td class="right" data-ratio="0 52">0%</td>
698
+ </tr>
699
+ <tr class="region">
700
+ <td class="name left"><a href="z_6cadab9ec0df475d_init_py.html#t200">/Users/antonigmitruk/golf/src/golf/commands/init.py</a></td>
701
+ <td class="name left"><a href="z_6cadab9ec0df475d_init_py.html#t200"><data value='prompt_for_telemetry_consent'>_prompt_for_telemetry_consent</data></a></td>
702
+ <td>33</td>
703
+ <td>33</td>
704
+ <td>0</td>
705
+ <td class="right" data-ratio="0 33">0%</td>
706
+ </tr>
707
+ <tr class="region">
708
+ <td class="name left"><a href="z_6cadab9ec0df475d_init_py.html#t249">/Users/antonigmitruk/golf/src/golf/commands/init.py</a></td>
709
+ <td class="name left"><a href="z_6cadab9ec0df475d_init_py.html#t249"><data value='is_text_file'>_is_text_file</data></a></td>
710
+ <td>11</td>
711
+ <td>11</td>
712
+ <td>0</td>
713
+ <td class="right" data-ratio="0 11">0%</td>
714
+ </tr>
715
+ <tr class="region">
716
+ <td class="name left"><a href="z_6cadab9ec0df475d_init_py.html">/Users/antonigmitruk/golf/src/golf/commands/init.py</a></td>
717
+ <td class="name left"><a href="z_6cadab9ec0df475d_init_py.html"><data value=''><span class='no-noun'>(no function)</span></data></a></td>
718
+ <td>12</td>
719
+ <td>12</td>
720
+ <td>0</td>
721
+ <td class="right" data-ratio="0 12">0%</td>
722
+ </tr>
723
+ <tr class="region">
724
+ <td class="name left"><a href="z_6cadab9ec0df475d_run_py.html#t19">/Users/antonigmitruk/golf/src/golf/commands/run.py</a></td>
725
+ <td class="name left"><a href="z_6cadab9ec0df475d_run_py.html#t19"><data value='run_server'>run_server</data></a></td>
726
+ <td>53</td>
727
+ <td>53</td>
728
+ <td>0</td>
729
+ <td class="right" data-ratio="0 53">0%</td>
730
+ </tr>
731
+ <tr class="region">
732
+ <td class="name left"><a href="z_6cadab9ec0df475d_run_py.html">/Users/antonigmitruk/golf/src/golf/commands/run.py</a></td>
733
+ <td class="name left"><a href="z_6cadab9ec0df475d_run_py.html"><data value=''><span class='no-noun'>(no function)</span></data></a></td>
734
+ <td>12</td>
735
+ <td>12</td>
736
+ <td>0</td>
737
+ <td class="right" data-ratio="0 12">0%</td>
738
+ </tr>
739
+ <tr class="region">
740
+ <td class="name left"><a href="z_7ba499ed22986217___init___py.html">/Users/antonigmitruk/golf/src/golf/core/__init__.py</a></td>
741
+ <td class="name left"><a href="z_7ba499ed22986217___init___py.html"><data value=''><span class='no-noun'>(no function)</span></data></a></td>
742
+ <td>0</td>
743
+ <td>0</td>
744
+ <td>0</td>
745
+ <td class="right" data-ratio="0 0">100%</td>
746
+ </tr>
747
+ <tr class="region">
748
+ <td class="name left"><a href="z_7ba499ed22986217_builder_py.html#t34">/Users/antonigmitruk/golf/src/golf/core/builder.py</a></td>
749
+ <td class="name left"><a href="z_7ba499ed22986217_builder_py.html#t34"><data value='init__'>ManifestBuilder.__init__</data></a></td>
750
+ <td>4</td>
751
+ <td>4</td>
752
+ <td>0</td>
753
+ <td class="right" data-ratio="0 4">0%</td>
754
+ </tr>
755
+ <tr class="region">
756
+ <td class="name left"><a href="z_7ba499ed22986217_builder_py.html#t52">/Users/antonigmitruk/golf/src/golf/core/builder.py</a></td>
757
+ <td class="name left"><a href="z_7ba499ed22986217_builder_py.html#t52"><data value='build'>ManifestBuilder.build</data></a></td>
758
+ <td>5</td>
759
+ <td>5</td>
760
+ <td>0</td>
761
+ <td class="right" data-ratio="0 5">0%</td>
762
+ </tr>
763
+ <tr class="region">
764
+ <td class="name left"><a href="z_7ba499ed22986217_builder_py.html#t68">/Users/antonigmitruk/golf/src/golf/core/builder.py</a></td>
765
+ <td class="name left"><a href="z_7ba499ed22986217_builder_py.html#t68"><data value='process_tools'>ManifestBuilder._process_tools</data></a></td>
766
+ <td>13</td>
767
+ <td>13</td>
768
+ <td>0</td>
769
+ <td class="right" data-ratio="0 13">0%</td>
770
+ </tr>
771
+ <tr class="region">
772
+ <td class="name left"><a href="z_7ba499ed22986217_builder_py.html#t107">/Users/antonigmitruk/golf/src/golf/core/builder.py</a></td>
773
+ <td class="name left"><a href="z_7ba499ed22986217_builder_py.html#t107"><data value='process_resources'>ManifestBuilder._process_resources</data></a></td>
774
+ <td>6</td>
775
+ <td>6</td>
776
+ <td>0</td>
777
+ <td class="right" data-ratio="0 6">0%</td>
778
+ </tr>
779
+ <tr class="region">
780
+ <td class="name left"><a href="z_7ba499ed22986217_builder_py.html#t124">/Users/antonigmitruk/golf/src/golf/core/builder.py</a></td>
781
+ <td class="name left"><a href="z_7ba499ed22986217_builder_py.html#t124"><data value='process_prompts'>ManifestBuilder._process_prompts</data></a></td>
782
+ <td>8</td>
783
+ <td>8</td>
784
+ <td>0</td>
785
+ <td class="right" data-ratio="0 8">0%</td>
786
+ </tr>
787
+ <tr class="region">
788
+ <td class="name left"><a href="z_7ba499ed22986217_builder_py.html#t148">/Users/antonigmitruk/golf/src/golf/core/builder.py</a></td>
789
+ <td class="name left"><a href="z_7ba499ed22986217_builder_py.html#t148"><data value='save_manifest'>ManifestBuilder.save_manifest</data></a></td>
790
+ <td>9</td>
791
+ <td>9</td>
792
+ <td>0</td>
793
+ <td class="right" data-ratio="0 9">0%</td>
794
+ </tr>
795
+ <tr class="region">
796
+ <td class="name left"><a href="z_7ba499ed22986217_builder_py.html#t174">/Users/antonigmitruk/golf/src/golf/core/builder.py</a></td>
797
+ <td class="name left"><a href="z_7ba499ed22986217_builder_py.html#t174"><data value='build_manifest'>build_manifest</data></a></td>
798
+ <td>2</td>
799
+ <td>2</td>
800
+ <td>0</td>
801
+ <td class="right" data-ratio="0 2">0%</td>
802
+ </tr>
803
+ <tr class="region">
804
+ <td class="name left"><a href="z_7ba499ed22986217_builder_py.html#t189">/Users/antonigmitruk/golf/src/golf/core/builder.py</a></td>
805
+ <td class="name left"><a href="z_7ba499ed22986217_builder_py.html#t189"><data value='compute_manifest_diff'>compute_manifest_diff</data></a></td>
806
+ <td>30</td>
807
+ <td>30</td>
808
+ <td>0</td>
809
+ <td class="right" data-ratio="0 30">0%</td>
810
+ </tr>
811
+ <tr class="region">
812
+ <td class="name left"><a href="z_7ba499ed22986217_builder_py.html#t206">/Users/antonigmitruk/golf/src/golf/core/builder.py</a></td>
813
+ <td class="name left"><a href="z_7ba499ed22986217_builder_py.html#t206"><data value='extract_names'>compute_manifest_diff.extract_names</data></a></td>
814
+ <td>1</td>
815
+ <td>1</td>
816
+ <td>0</td>
817
+ <td class="right" data-ratio="0 1">0%</td>
818
+ </tr>
819
+ <tr class="region">
820
+ <td class="name left"><a href="z_7ba499ed22986217_builder_py.html#t263">/Users/antonigmitruk/golf/src/golf/core/builder.py</a></td>
821
+ <td class="name left"><a href="z_7ba499ed22986217_builder_py.html#t263"><data value='has_changes'>has_changes</data></a></td>
822
+ <td>5</td>
823
+ <td>5</td>
824
+ <td>0</td>
825
+ <td class="right" data-ratio="0 5">0%</td>
826
+ </tr>
827
+ <tr class="region">
828
+ <td class="name left"><a href="z_7ba499ed22986217_builder_py.html#t283">/Users/antonigmitruk/golf/src/golf/core/builder.py</a></td>
829
+ <td class="name left"><a href="z_7ba499ed22986217_builder_py.html#t283"><data value='init__'>CodeGenerator.__init__</data></a></td>
830
+ <td>9</td>
831
+ <td>9</td>
832
+ <td>0</td>
833
+ <td class="right" data-ratio="0 9">0%</td>
834
+ </tr>
835
+ <tr class="region">
836
+ <td class="name left"><a href="z_7ba499ed22986217_builder_py.html#t310">/Users/antonigmitruk/golf/src/golf/core/builder.py</a></td>
837
+ <td class="name left"><a href="z_7ba499ed22986217_builder_py.html#t310"><data value='generate'>CodeGenerator.generate</data></a></td>
838
+ <td>18</td>
839
+ <td>18</td>
840
+ <td>0</td>
841
+ <td class="right" data-ratio="0 18">0%</td>
842
+ </tr>
843
+ <tr class="region">
844
+ <td class="name left"><a href="z_7ba499ed22986217_builder_py.html#t350">/Users/antonigmitruk/golf/src/golf/core/builder.py</a></td>
845
+ <td class="name left"><a href="z_7ba499ed22986217_builder_py.html#t350"><data value='create_directory_structure'>CodeGenerator._create_directory_structure</data></a></td>
846
+ <td>4</td>
847
+ <td>4</td>
848
+ <td>0</td>
849
+ <td class="right" data-ratio="0 4">0%</td>
850
+ </tr>
851
+ <tr class="region">
852
+ <td class="name left"><a href="z_7ba499ed22986217_builder_py.html#t366">/Users/antonigmitruk/golf/src/golf/core/builder.py</a></td>
853
+ <td class="name left"><a href="z_7ba499ed22986217_builder_py.html#t366"><data value='process_shared_files'>CodeGenerator._process_shared_files</data></a></td>
854
+ <td>14</td>
855
+ <td>14</td>
856
+ <td>0</td>
857
+ <td class="right" data-ratio="0 14">0%</td>
858
+ </tr>
859
+ <tr class="region">
860
+ <td class="name left"><a href="z_7ba499ed22986217_builder_py.html#t403">/Users/antonigmitruk/golf/src/golf/core/builder.py</a></td>
861
+ <td class="name left"><a href="z_7ba499ed22986217_builder_py.html#t403"><data value='generate_tools'>CodeGenerator._generate_tools</data></a></td>
862
+ <td>14</td>
863
+ <td>14</td>
864
+ <td>0</td>
865
+ <td class="right" data-ratio="0 14">0%</td>
866
+ </tr>
867
+ <tr class="region">
868
+ <td class="name left"><a href="z_7ba499ed22986217_builder_py.html#t427">/Users/antonigmitruk/golf/src/golf/core/builder.py</a></td>
869
+ <td class="name left"><a href="z_7ba499ed22986217_builder_py.html#t427"><data value='generate_resources'>CodeGenerator._generate_resources</data></a></td>
870
+ <td>14</td>
871
+ <td>14</td>
872
+ <td>0</td>
873
+ <td class="right" data-ratio="0 14">0%</td>
874
+ </tr>
875
+ <tr class="region">
876
+ <td class="name left"><a href="z_7ba499ed22986217_builder_py.html#t451">/Users/antonigmitruk/golf/src/golf/core/builder.py</a></td>
877
+ <td class="name left"><a href="z_7ba499ed22986217_builder_py.html#t451"><data value='generate_prompts'>CodeGenerator._generate_prompts</data></a></td>
878
+ <td>14</td>
879
+ <td>14</td>
880
+ <td>0</td>
881
+ <td class="right" data-ratio="0 14">0%</td>
882
+ </tr>
883
+ <tr class="region">
884
+ <td class="name left"><a href="z_7ba499ed22986217_builder_py.html#t475">/Users/antonigmitruk/golf/src/golf/core/builder.py</a></td>
885
+ <td class="name left"><a href="z_7ba499ed22986217_builder_py.html#t475"><data value='get_transport_config'>CodeGenerator._get_transport_config</data></a></td>
886
+ <td>7</td>
887
+ <td>7</td>
888
+ <td>0</td>
889
+ <td class="right" data-ratio="0 7">0%</td>
890
+ </tr>
891
+ <tr class="region">
892
+ <td class="name left"><a href="z_7ba499ed22986217_builder_py.html#t498">/Users/antonigmitruk/golf/src/golf/core/builder.py</a></td>
893
+ <td class="name left"><a href="z_7ba499ed22986217_builder_py.html#t498"><data value='generate_server'>CodeGenerator._generate_server</data></a></td>
894
+ <td>199</td>
895
+ <td>199</td>
896
+ <td>0</td>
897
+ <td class="right" data-ratio="0 199">0%</td>
898
+ </tr>
899
+ <tr class="region">
900
+ <td class="name left"><a href="z_7ba499ed22986217_builder_py.html#t1007">/Users/antonigmitruk/golf/src/golf/core/builder.py</a></td>
901
+ <td class="name left"><a href="z_7ba499ed22986217_builder_py.html#t1007"><data value='build_project'>build_project</data></a></td>
902
+ <td>145</td>
903
+ <td>145</td>
904
+ <td>0</td>
905
+ <td class="right" data-ratio="0 145">0%</td>
906
+ </tr>
907
+ <tr class="region">
908
+ <td class="name left"><a href="z_7ba499ed22986217_builder_py.html#t1317">/Users/antonigmitruk/golf/src/golf/core/builder.py</a></td>
909
+ <td class="name left"><a href="z_7ba499ed22986217_builder_py.html#t1317"><data value='build_import_map'>build_import_map</data></a></td>
910
+ <td>28</td>
911
+ <td>28</td>
912
+ <td>0</td>
913
+ <td class="right" data-ratio="0 28">0%</td>
914
+ </tr>
915
+ <tr class="region">
916
+ <td class="name left"><a href="z_7ba499ed22986217_builder_py.html">/Users/antonigmitruk/golf/src/golf/core/builder.py</a></td>
917
+ <td class="name left"><a href="z_7ba499ed22986217_builder_py.html"><data value=''><span class='no-noun'>(no function)</span></data></a></td>
918
+ <td>39</td>
919
+ <td>39</td>
920
+ <td>0</td>
921
+ <td class="right" data-ratio="0 39">0%</td>
922
+ </tr>
923
+ <tr class="region">
924
+ <td class="name left"><a href="z_7ba499ed22986217_builder_auth_py.html#t13">/Users/antonigmitruk/golf/src/golf/core/builder_auth.py</a></td>
925
+ <td class="name left"><a href="z_7ba499ed22986217_builder_auth_py.html#t13"><data value='generate_auth_code'>generate_auth_code</data></a></td>
926
+ <td>13</td>
927
+ <td>13</td>
928
+ <td>0</td>
929
+ <td class="right" data-ratio="0 13">0%</td>
930
+ </tr>
931
+ <tr class="region">
932
+ <td class="name left"><a href="z_7ba499ed22986217_builder_auth_py.html#t85">/Users/antonigmitruk/golf/src/golf/core/builder_auth.py</a></td>
933
+ <td class="name left"><a href="z_7ba499ed22986217_builder_auth_py.html#t85"><data value='generate_api_key_auth_components'>generate_api_key_auth_components</data></a></td>
934
+ <td>7</td>
935
+ <td>7</td>
936
+ <td>0</td>
937
+ <td class="right" data-ratio="0 7">0%</td>
938
+ </tr>
939
+ <tr class="region">
940
+ <td class="name left"><a href="z_7ba499ed22986217_builder_auth_py.html#t182">/Users/antonigmitruk/golf/src/golf/core/builder_auth.py</a></td>
941
+ <td class="name left"><a href="z_7ba499ed22986217_builder_auth_py.html#t182"><data value='generate_auth_routes'>generate_auth_routes</data></a></td>
942
+ <td>6</td>
943
+ <td>6</td>
944
+ <td>0</td>
945
+ <td class="right" data-ratio="0 6">0%</td>
946
+ </tr>
947
+ <tr class="region">
948
+ <td class="name left"><a href="z_7ba499ed22986217_builder_auth_py.html">/Users/antonigmitruk/golf/src/golf/core/builder_auth.py</a></td>
949
+ <td class="name left"><a href="z_7ba499ed22986217_builder_auth_py.html"><data value=''><span class='no-noun'>(no function)</span></data></a></td>
950
+ <td>6</td>
951
+ <td>6</td>
952
+ <td>0</td>
953
+ <td class="right" data-ratio="0 6">0%</td>
954
+ </tr>
955
+ <tr class="region">
956
+ <td class="name left"><a href="z_7ba499ed22986217_builder_metrics_py.html#t8">/Users/antonigmitruk/golf/src/golf/core/builder_metrics.py</a></td>
957
+ <td class="name left"><a href="z_7ba499ed22986217_builder_metrics_py.html#t8"><data value='generate_metrics_imports'>generate_metrics_imports</data></a></td>
958
+ <td>1</td>
959
+ <td>1</td>
960
+ <td>0</td>
961
+ <td class="right" data-ratio="0 1">0%</td>
962
+ </tr>
963
+ <tr class="region">
964
+ <td class="name left"><a href="z_7ba499ed22986217_builder_metrics_py.html#t25">/Users/antonigmitruk/golf/src/golf/core/builder_metrics.py</a></td>
965
+ <td class="name left"><a href="z_7ba499ed22986217_builder_metrics_py.html#t25"><data value='generate_metrics_initialization'>generate_metrics_initialization</data></a></td>
966
+ <td>1</td>
967
+ <td>1</td>
968
+ <td>0</td>
969
+ <td class="right" data-ratio="0 1">0%</td>
970
+ </tr>
971
+ <tr class="region">
972
+ <td class="name left"><a href="z_7ba499ed22986217_builder_metrics_py.html#t41">/Users/antonigmitruk/golf/src/golf/core/builder_metrics.py</a></td>
973
+ <td class="name left"><a href="z_7ba499ed22986217_builder_metrics_py.html#t41"><data value='generate_metrics_route'>generate_metrics_route</data></a></td>
974
+ <td>1</td>
975
+ <td>1</td>
976
+ <td>0</td>
977
+ <td class="right" data-ratio="0 1">0%</td>
978
+ </tr>
979
+ <tr class="region">
980
+ <td class="name left"><a href="z_7ba499ed22986217_builder_metrics_py.html#t62">/Users/antonigmitruk/golf/src/golf/core/builder_metrics.py</a></td>
981
+ <td class="name left"><a href="z_7ba499ed22986217_builder_metrics_py.html#t62"><data value='get_metrics_dependencies'>get_metrics_dependencies</data></a></td>
982
+ <td>1</td>
983
+ <td>1</td>
984
+ <td>0</td>
985
+ <td class="right" data-ratio="0 1">0%</td>
986
+ </tr>
987
+ <tr class="region">
988
+ <td class="name left"><a href="z_7ba499ed22986217_builder_metrics_py.html#t73">/Users/antonigmitruk/golf/src/golf/core/builder_metrics.py</a></td>
989
+ <td class="name left"><a href="z_7ba499ed22986217_builder_metrics_py.html#t73"><data value='generate_metrics_instrumentation'>generate_metrics_instrumentation</data></a></td>
990
+ <td>1</td>
991
+ <td>1</td>
992
+ <td>0</td>
993
+ <td class="right" data-ratio="0 1">0%</td>
994
+ </tr>
995
+ <tr class="region">
996
+ <td class="name left"><a href="z_7ba499ed22986217_builder_metrics_py.html#t194">/Users/antonigmitruk/golf/src/golf/core/builder_metrics.py</a></td>
997
+ <td class="name left"><a href="z_7ba499ed22986217_builder_metrics_py.html#t194"><data value='generate_session_tracking'>generate_session_tracking</data></a></td>
998
+ <td>1</td>
999
+ <td>1</td>
1000
+ <td>0</td>
1001
+ <td class="right" data-ratio="0 1">0%</td>
1002
+ </tr>
1003
+ <tr class="region">
1004
+ <td class="name left"><a href="z_7ba499ed22986217_builder_metrics_py.html">/Users/antonigmitruk/golf/src/golf/core/builder_metrics.py</a></td>
1005
+ <td class="name left"><a href="z_7ba499ed22986217_builder_metrics_py.html"><data value=''><span class='no-noun'>(no function)</span></data></a></td>
1006
+ <td>6</td>
1007
+ <td>6</td>
1008
+ <td>0</td>
1009
+ <td class="right" data-ratio="0 6">0%</td>
1010
+ </tr>
1011
+ <tr class="region">
1012
+ <td class="name left"><a href="z_7ba499ed22986217_builder_telemetry_py.html#t8">/Users/antonigmitruk/golf/src/golf/core/builder_telemetry.py</a></td>
1013
+ <td class="name left"><a href="z_7ba499ed22986217_builder_telemetry_py.html#t8"><data value='generate_telemetry_imports'>generate_telemetry_imports</data></a></td>
1014
+ <td>1</td>
1015
+ <td>1</td>
1016
+ <td>0</td>
1017
+ <td class="right" data-ratio="0 1">0%</td>
1018
+ </tr>
1019
+ <tr class="region">
1020
+ <td class="name left"><a href="z_7ba499ed22986217_builder_telemetry_py.html#t25">/Users/antonigmitruk/golf/src/golf/core/builder_telemetry.py</a></td>
1021
+ <td class="name left"><a href="z_7ba499ed22986217_builder_telemetry_py.html#t25"><data value='generate_component_registration_with_telemetry'>generate_component_registration_with_telemetry</data></a></td>
1022
+ <td>12</td>
1023
+ <td>12</td>
1024
+ <td>0</td>
1025
+ <td class="right" data-ratio="0 12">0%</td>
1026
+ </tr>
1027
+ <tr class="region">
1028
+ <td class="name left"><a href="z_7ba499ed22986217_builder_telemetry_py.html#t78">/Users/antonigmitruk/golf/src/golf/core/builder_telemetry.py</a></td>
1029
+ <td class="name left"><a href="z_7ba499ed22986217_builder_telemetry_py.html#t78"><data value='get_otel_dependencies'>get_otel_dependencies</data></a></td>
1030
+ <td>1</td>
1031
+ <td>1</td>
1032
+ <td>0</td>
1033
+ <td class="right" data-ratio="0 1">0%</td>
1034
+ </tr>
1035
+ <tr class="region">
1036
+ <td class="name left"><a href="z_7ba499ed22986217_builder_telemetry_py.html">/Users/antonigmitruk/golf/src/golf/core/builder_telemetry.py</a></td>
1037
+ <td class="name left"><a href="z_7ba499ed22986217_builder_telemetry_py.html"><data value=''><span class='no-noun'>(no function)</span></data></a></td>
1038
+ <td>3</td>
1039
+ <td>3</td>
1040
+ <td>0</td>
1041
+ <td class="right" data-ratio="0 3">0%</td>
1042
+ </tr>
1043
+ <tr class="region">
1044
+ <td class="name left"><a href="z_7ba499ed22986217_config_py.html#t24">/Users/antonigmitruk/golf/src/golf/core/config.py</a></td>
1045
+ <td class="name left"><a href="z_7ba499ed22986217_config_py.html#t24"><data value='validate_provider'>AuthConfig.validate_provider</data></a></td>
1046
+ <td>4</td>
1047
+ <td>4</td>
1048
+ <td>0</td>
1049
+ <td class="right" data-ratio="0 4">0%</td>
1050
+ </tr>
1051
+ <tr class="region">
1052
+ <td class="name left"><a href="z_7ba499ed22986217_config_py.html#t101">/Users/antonigmitruk/golf/src/golf/core/config.py</a></td>
1053
+ <td class="name left"><a href="z_7ba499ed22986217_config_py.html#t101"><data value='find_config_path'>find_config_path</data></a></td>
1054
+ <td>13</td>
1055
+ <td>13</td>
1056
+ <td>0</td>
1057
+ <td class="right" data-ratio="0 13">0%</td>
1058
+ </tr>
1059
+ <tr class="region">
1060
+ <td class="name left"><a href="z_7ba499ed22986217_config_py.html#t134">/Users/antonigmitruk/golf/src/golf/core/config.py</a></td>
1061
+ <td class="name left"><a href="z_7ba499ed22986217_config_py.html#t134"><data value='find_project_root'>find_project_root</data></a></td>
1062
+ <td>4</td>
1063
+ <td>4</td>
1064
+ <td>0</td>
1065
+ <td class="right" data-ratio="0 4">0%</td>
1066
+ </tr>
1067
+ <tr class="region">
1068
+ <td class="name left"><a href="z_7ba499ed22986217_config_py.html#t154">/Users/antonigmitruk/golf/src/golf/core/config.py</a></td>
1069
+ <td class="name left"><a href="z_7ba499ed22986217_config_py.html#t154"><data value='load_settings'>load_settings</data></a></td>
1070
+ <td>16</td>
1071
+ <td>16</td>
1072
+ <td>0</td>
1073
+ <td class="right" data-ratio="0 16">0%</td>
1074
+ </tr>
1075
+ <tr class="region">
1076
+ <td class="name left"><a href="z_7ba499ed22986217_config_py.html#t196">/Users/antonigmitruk/golf/src/golf/core/config.py</a></td>
1077
+ <td class="name left"><a href="z_7ba499ed22986217_config_py.html#t196"><data value='load_json_settings'>_load_json_settings</data></a></td>
1078
+ <td>14</td>
1079
+ <td>14</td>
1080
+ <td>0</td>
1081
+ <td class="right" data-ratio="0 14">0%</td>
1082
+ </tr>
1083
+ <tr class="region">
1084
+ <td class="name left"><a href="z_7ba499ed22986217_config_py.html">/Users/antonigmitruk/golf/src/golf/core/config.py</a></td>
1085
+ <td class="name left"><a href="z_7ba499ed22986217_config_py.html"><data value=''><span class='no-noun'>(no function)</span></data></a></td>
1086
+ <td>45</td>
1087
+ <td>45</td>
1088
+ <td>0</td>
1089
+ <td class="right" data-ratio="0 45">0%</td>
1090
+ </tr>
1091
+ <tr class="region">
1092
+ <td class="name left"><a href="z_7ba499ed22986217_parser_py.html#t46">/Users/antonigmitruk/golf/src/golf/core/parser.py</a></td>
1093
+ <td class="name left"><a href="z_7ba499ed22986217_parser_py.html#t46"><data value='init__'>AstParser.__init__</data></a></td>
1094
+ <td>2</td>
1095
+ <td>0</td>
1096
+ <td>0</td>
1097
+ <td class="right" data-ratio="2 2">100%</td>
1098
+ </tr>
1099
+ <tr class="region">
1100
+ <td class="name left"><a href="z_7ba499ed22986217_parser_py.html#t55">/Users/antonigmitruk/golf/src/golf/core/parser.py</a></td>
1101
+ <td class="name left"><a href="z_7ba499ed22986217_parser_py.html#t55"><data value='parse_directory'>AstParser.parse_directory</data></a></td>
1102
+ <td>11</td>
1103
+ <td>3</td>
1104
+ <td>0</td>
1105
+ <td class="right" data-ratio="8 11">73%</td>
1106
+ </tr>
1107
+ <tr class="region">
1108
+ <td class="name left"><a href="z_7ba499ed22986217_parser_py.html#t73">/Users/antonigmitruk/golf/src/golf/core/parser.py</a></td>
1109
+ <td class="name left"><a href="z_7ba499ed22986217_parser_py.html#t73"><data value='parse_file'>AstParser.parse_file</data></a></td>
1110
+ <td>61</td>
1111
+ <td>6</td>
1112
+ <td>0</td>
1113
+ <td class="right" data-ratio="55 61">90%</td>
1114
+ </tr>
1115
+ <tr class="region">
1116
+ <td class="name left"><a href="z_7ba499ed22986217_parser_py.html#t184">/Users/antonigmitruk/golf/src/golf/core/parser.py</a></td>
1117
+ <td class="name left"><a href="z_7ba499ed22986217_parser_py.html#t184"><data value='process_entry_function'>AstParser._process_entry_function</data></a></td>
1118
+ <td>11</td>
1119
+ <td>2</td>
1120
+ <td>0</td>
1121
+ <td class="right" data-ratio="9 11">82%</td>
1122
+ </tr>
1123
+ <tr class="region">
1124
+ <td class="name left"><a href="z_7ba499ed22986217_parser_py.html#t213">/Users/antonigmitruk/golf/src/golf/core/parser.py</a></td>
1125
+ <td class="name left"><a href="z_7ba499ed22986217_parser_py.html#t213"><data value='extract_schemas_at_runtime'>AstParser._extract_schemas_at_runtime</data></a></td>
1126
+ <td>22</td>
1127
+ <td>3</td>
1128
+ <td>0</td>
1129
+ <td class="right" data-ratio="19 22">86%</td>
1130
+ </tr>
1131
+ <tr class="region">
1132
+ <td class="name left"><a href="z_7ba499ed22986217_parser_py.html#t257">/Users/antonigmitruk/golf/src/golf/core/parser.py</a></td>
1133
+ <td class="name left"><a href="z_7ba499ed22986217_parser_py.html#t257"><data value='extract_input_schema'>AstParser._extract_input_schema</data></a></td>
1134
+ <td>25</td>
1135
+ <td>4</td>
1136
+ <td>0</td>
1137
+ <td class="right" data-ratio="21 25">84%</td>
1138
+ </tr>
1139
+ <tr class="region">
1140
+ <td class="name left"><a href="z_7ba499ed22986217_parser_py.html#t304">/Users/antonigmitruk/golf/src/golf/core/parser.py</a></td>
1141
+ <td class="name left"><a href="z_7ba499ed22986217_parser_py.html#t304"><data value='extract_output_schema'>AstParser._extract_output_schema</data></a></td>
1142
+ <td>12</td>
1143
+ <td>4</td>
1144
+ <td>0</td>
1145
+ <td class="right" data-ratio="8 12">67%</td>
1146
+ </tr>
1147
+ <tr class="region">
1148
+ <td class="name left"><a href="z_7ba499ed22986217_parser_py.html#t327">/Users/antonigmitruk/golf/src/golf/core/parser.py</a></td>
1149
+ <td class="name left"><a href="z_7ba499ed22986217_parser_py.html#t327"><data value='extract_pydantic_model_schema'>AstParser._extract_pydantic_model_schema</data></a></td>
1150
+ <td>26</td>
1151
+ <td>7</td>
1152
+ <td>0</td>
1153
+ <td class="right" data-ratio="19 26">73%</td>
1154
+ </tr>
1155
+ <tr class="region">
1156
+ <td class="name left"><a href="z_7ba499ed22986217_parser_py.html#t372">/Users/antonigmitruk/golf/src/golf/core/parser.py</a></td>
1157
+ <td class="name left"><a href="z_7ba499ed22986217_parser_py.html#t372"><data value='clean_schema'>AstParser._clean_schema</data></a></td>
1158
+ <td>4</td>
1159
+ <td>0</td>
1160
+ <td>0</td>
1161
+ <td class="right" data-ratio="4 4">100%</td>
1162
+ </tr>
1163
+ <tr class="region">
1164
+ <td class="name left"><a href="z_7ba499ed22986217_parser_py.html#t376">/Users/antonigmitruk/golf/src/golf/core/parser.py</a></td>
1165
+ <td class="name left"><a href="z_7ba499ed22986217_parser_py.html#t376"><data value='clean_object'>AstParser._clean_schema.clean_object</data></a></td>
1166
+ <td>34</td>
1167
+ <td>13</td>
1168
+ <td>0</td>
1169
+ <td class="right" data-ratio="21 34">62%</td>
1170
+ </tr>
1171
+ <tr class="region">
1172
+ <td class="name left"><a href="z_7ba499ed22986217_parser_py.html#t419">/Users/antonigmitruk/golf/src/golf/core/parser.py</a></td>
1173
+ <td class="name left"><a href="z_7ba499ed22986217_parser_py.html#t419"><data value='extract_param_schema_from_hint'>AstParser._extract_param_schema_from_hint</data></a></td>
1174
+ <td>17</td>
1175
+ <td>1</td>
1176
+ <td>0</td>
1177
+ <td class="right" data-ratio="16 17">94%</td>
1178
+ </tr>
1179
+ <tr class="region">
1180
+ <td class="name left"><a href="z_7ba499ed22986217_parser_py.html#t451">/Users/antonigmitruk/golf/src/golf/core/parser.py</a></td>
1181
+ <td class="name left"><a href="z_7ba499ed22986217_parser_py.html#t451"><data value='type_to_schema'>AstParser._type_to_schema</data></a></td>
1182
+ <td>35</td>
1183
+ <td>21</td>
1184
+ <td>0</td>
1185
+ <td class="right" data-ratio="14 35">40%</td>
1186
+ </tr>
1187
+ <tr class="region">
1188
+ <td class="name left"><a href="z_7ba499ed22986217_parser_py.html#t509">/Users/antonigmitruk/golf/src/golf/core/parser.py</a></td>
1189
+ <td class="name left"><a href="z_7ba499ed22986217_parser_py.html#t509"><data value='process_tool'>AstParser._process_tool</data></a></td>
1190
+ <td>27</td>
1191
+ <td>0</td>
1192
+ <td>0</td>
1193
+ <td class="right" data-ratio="27 27">100%</td>
1194
+ </tr>
1195
+ <tr class="region">
1196
+ <td class="name left"><a href="z_7ba499ed22986217_parser_py.html#t550">/Users/antonigmitruk/golf/src/golf/core/parser.py</a></td>
1197
+ <td class="name left"><a href="z_7ba499ed22986217_parser_py.html#t550"><data value='process_resource'>AstParser._process_resource</data></a></td>
1198
+ <td>10</td>
1199
+ <td>0</td>
1200
+ <td>0</td>
1201
+ <td class="right" data-ratio="10 10">100%</td>
1202
+ </tr>
1203
+ <tr class="region">
1204
+ <td class="name left"><a href="z_7ba499ed22986217_parser_py.html#t570">/Users/antonigmitruk/golf/src/golf/core/parser.py</a></td>
1205
+ <td class="name left"><a href="z_7ba499ed22986217_parser_py.html#t570"><data value='process_prompt'>AstParser._process_prompt</data></a></td>
1206
+ <td>1</td>
1207
+ <td>0</td>
1208
+ <td>0</td>
1209
+ <td class="right" data-ratio="1 1">100%</td>
1210
+ </tr>
1211
+ <tr class="region">
1212
+ <td class="name left"><a href="z_7ba499ed22986217_parser_py.html#t574">/Users/antonigmitruk/golf/src/golf/core/parser.py</a></td>
1213
+ <td class="name left"><a href="z_7ba499ed22986217_parser_py.html#t574"><data value='derive_component_name'>AstParser._derive_component_name</data></a></td>
1214
+ <td>14</td>
1215
+ <td>1</td>
1216
+ <td>0</td>
1217
+ <td class="right" data-ratio="13 14">93%</td>
1218
+ </tr>
1219
+ <tr class="region">
1220
+ <td class="name left"><a href="z_7ba499ed22986217_parser_py.html#t607">/Users/antonigmitruk/golf/src/golf/core/parser.py</a></td>
1221
+ <td class="name left"><a href="z_7ba499ed22986217_parser_py.html#t607"><data value='extract_pydantic_schema_from_ast'>AstParser._extract_pydantic_schema_from_ast</data></a></td>
1222
+ <td>56</td>
1223
+ <td>23</td>
1224
+ <td>0</td>
1225
+ <td class="right" data-ratio="33 56">59%</td>
1226
+ </tr>
1227
+ <tr class="region">
1228
+ <td class="name left"><a href="z_7ba499ed22986217_parser_py.html#t715">/Users/antonigmitruk/golf/src/golf/core/parser.py</a></td>
1229
+ <td class="name left"><a href="z_7ba499ed22986217_parser_py.html#t715"><data value='type_hint_to_json_type'>AstParser._type_hint_to_json_type</data></a></td>
1230
+ <td>34</td>
1231
+ <td>29</td>
1232
+ <td>0</td>
1233
+ <td class="right" data-ratio="5 34">15%</td>
1234
+ </tr>
1235
+ <tr class="region">
1236
+ <td class="name left"><a href="z_7ba499ed22986217_parser_py.html#t780">/Users/antonigmitruk/golf/src/golf/core/parser.py</a></td>
1237
+ <td class="name left"><a href="z_7ba499ed22986217_parser_py.html#t780"><data value='extract_dict_from_ast'>AstParser._extract_dict_from_ast</data></a></td>
1238
+ <td>19</td>
1239
+ <td>7</td>
1240
+ <td>0</td>
1241
+ <td class="right" data-ratio="12 19">63%</td>
1242
+ </tr>
1243
+ <tr class="region">
1244
+ <td class="name left"><a href="z_7ba499ed22986217_parser_py.html#t816">/Users/antonigmitruk/golf/src/golf/core/parser.py</a></td>
1245
+ <td class="name left"><a href="z_7ba499ed22986217_parser_py.html#t816"><data value='extract_complex_type_schema'>AstParser._extract_complex_type_schema</data></a></td>
1246
+ <td>20</td>
1247
+ <td>20</td>
1248
+ <td>0</td>
1249
+ <td class="right" data-ratio="0 20">0%</td>
1250
+ </tr>
1251
+ <tr class="region">
1252
+ <td class="name left"><a href="z_7ba499ed22986217_parser_py.html#t850">/Users/antonigmitruk/golf/src/golf/core/parser.py</a></td>
1253
+ <td class="name left"><a href="z_7ba499ed22986217_parser_py.html#t850"><data value='handle_union_type'>AstParser._handle_union_type</data></a></td>
1254
+ <td>7</td>
1255
+ <td>7</td>
1256
+ <td>0</td>
1257
+ <td class="right" data-ratio="0 7">0%</td>
1258
+ </tr>
1259
+ <tr class="region">
1260
+ <td class="name left"><a href="z_7ba499ed22986217_parser_py.html#t865">/Users/antonigmitruk/golf/src/golf/core/parser.py</a></td>
1261
+ <td class="name left"><a href="z_7ba499ed22986217_parser_py.html#t865"><data value='handle_optional_type'>AstParser._handle_optional_type</data></a></td>
1262
+ <td>7</td>
1263
+ <td>7</td>
1264
+ <td>0</td>
1265
+ <td class="right" data-ratio="0 7">0%</td>
1266
+ </tr>
1267
+ <tr class="region">
1268
+ <td class="name left"><a href="z_7ba499ed22986217_parser_py.html#t876">/Users/antonigmitruk/golf/src/golf/core/parser.py</a></td>
1269
+ <td class="name left"><a href="z_7ba499ed22986217_parser_py.html#t876"><data value='is_parameter_required'>AstParser._is_parameter_required</data></a></td>
1270
+ <td>7</td>
1271
+ <td>7</td>
1272
+ <td>0</td>
1273
+ <td class="right" data-ratio="0 7">0%</td>
1274
+ </tr>
1275
+ <tr class="region">
1276
+ <td class="name left"><a href="z_7ba499ed22986217_parser_py.html#t894">/Users/antonigmitruk/golf/src/golf/core/parser.py</a></td>
1277
+ <td class="name left"><a href="z_7ba499ed22986217_parser_py.html#t894"><data value='extract_return_type_schema'>AstParser._extract_return_type_schema</data></a></td>
1278
+ <td>8</td>
1279
+ <td>8</td>
1280
+ <td>0</td>
1281
+ <td class="right" data-ratio="0 8">0%</td>
1282
+ </tr>
1283
+ <tr class="region">
1284
+ <td class="name left"><a href="z_7ba499ed22986217_parser_py.html#t913">/Users/antonigmitruk/golf/src/golf/core/parser.py</a></td>
1285
+ <td class="name left"><a href="z_7ba499ed22986217_parser_py.html#t913"><data value='find_class_schema'>AstParser._find_class_schema</data></a></td>
1286
+ <td>6</td>
1287
+ <td>6</td>
1288
+ <td>0</td>
1289
+ <td class="right" data-ratio="0 6">0%</td>
1290
+ </tr>
1291
+ <tr class="region">
1292
+ <td class="name left"><a href="z_7ba499ed22986217_parser_py.html#t925">/Users/antonigmitruk/golf/src/golf/core/parser.py</a></td>
1293
+ <td class="name left"><a href="z_7ba499ed22986217_parser_py.html#t925"><data value='parse_project'>parse_project</data></a></td>
1294
+ <td>14</td>
1295
+ <td>0</td>
1296
+ <td>0</td>
1297
+ <td class="right" data-ratio="14 14">100%</td>
1298
+ </tr>
1299
+ <tr class="region">
1300
+ <td class="name left"><a href="z_7ba499ed22986217_parser_py.html#t957">/Users/antonigmitruk/golf/src/golf/core/parser.py</a></td>
1301
+ <td class="name left"><a href="z_7ba499ed22986217_parser_py.html#t957"><data value='parse_common_files'>parse_common_files</data></a></td>
1302
+ <td>11</td>
1303
+ <td>11</td>
1304
+ <td>0</td>
1305
+ <td class="right" data-ratio="0 11">0%</td>
1306
+ </tr>
1307
+ <tr class="region">
1308
+ <td class="name left"><a href="z_7ba499ed22986217_parser_py.html#t987">/Users/antonigmitruk/golf/src/golf/core/parser.py</a></td>
1309
+ <td class="name left"><a href="z_7ba499ed22986217_parser_py.html#t987"><data value='is_golf_component_file'>_is_golf_component_file</data></a></td>
1310
+ <td>13</td>
1311
+ <td>13</td>
1312
+ <td>0</td>
1313
+ <td class="right" data-ratio="0 13">0%</td>
1314
+ </tr>
1315
+ <tr class="region">
1316
+ <td class="name left"><a href="z_7ba499ed22986217_parser_py.html#t1018">/Users/antonigmitruk/golf/src/golf/core/parser.py</a></td>
1317
+ <td class="name left"><a href="z_7ba499ed22986217_parser_py.html#t1018"><data value='parse_shared_files'>parse_shared_files</data></a></td>
1318
+ <td>14</td>
1319
+ <td>14</td>
1320
+ <td>0</td>
1321
+ <td class="right" data-ratio="0 14">0%</td>
1322
+ </tr>
1323
+ <tr class="region">
1324
+ <td class="name left"><a href="z_7ba499ed22986217_parser_py.html">/Users/antonigmitruk/golf/src/golf/core/parser.py</a></td>
1325
+ <td class="name left"><a href="z_7ba499ed22986217_parser_py.html"><data value=''><span class='no-noun'>(no function)</span></data></a></td>
1326
+ <td>57</td>
1327
+ <td>0</td>
1328
+ <td>0</td>
1329
+ <td class="right" data-ratio="57 57">100%</td>
1330
+ </tr>
1331
+ <tr class="region">
1332
+ <td class="name left"><a href="z_7ba499ed22986217_platform_py.html#t26">/Users/antonigmitruk/golf/src/golf/core/platform.py</a></td>
1333
+ <td class="name left"><a href="z_7ba499ed22986217_platform_py.html#t26"><data value='register_project_with_platform'>register_project_with_platform</data></a></td>
1334
+ <td>27</td>
1335
+ <td>27</td>
1336
+ <td>0</td>
1337
+ <td class="right" data-ratio="0 27">0%</td>
1338
+ </tr>
1339
+ <tr class="region">
1340
+ <td class="name left"><a href="z_7ba499ed22986217_platform_py.html#t105">/Users/antonigmitruk/golf/src/golf/core/platform.py</a></td>
1341
+ <td class="name left"><a href="z_7ba499ed22986217_platform_py.html#t105"><data value='build_component_list'>_build_component_list</data></a></td>
1342
+ <td>25</td>
1343
+ <td>25</td>
1344
+ <td>0</td>
1345
+ <td class="right" data-ratio="0 25">0%</td>
1346
+ </tr>
1347
+ <tr class="region">
1348
+ <td class="name left"><a href="z_7ba499ed22986217_platform_py.html#t166">/Users/antonigmitruk/golf/src/golf/core/platform.py</a></td>
1349
+ <td class="name left"><a href="z_7ba499ed22986217_platform_py.html#t166"><data value='get_component_counts'>_get_component_counts</data></a></td>
1350
+ <td>1</td>
1351
+ <td>1</td>
1352
+ <td>0</td>
1353
+ <td class="right" data-ratio="0 1">0%</td>
1354
+ </tr>
1355
+ <tr class="region">
1356
+ <td class="name left"><a href="z_7ba499ed22986217_platform_py.html">/Users/antonigmitruk/golf/src/golf/core/platform.py</a></td>
1357
+ <td class="name left"><a href="z_7ba499ed22986217_platform_py.html"><data value=''><span class='no-noun'>(no function)</span></data></a></td>
1358
+ <td>17</td>
1359
+ <td>17</td>
1360
+ <td>0</td>
1361
+ <td class="right" data-ratio="0 17">0%</td>
1362
+ </tr>
1363
+ <tr class="region">
1364
+ <td class="name left"><a href="z_7ba499ed22986217_telemetry_py.html#t31">/Users/antonigmitruk/golf/src/golf/core/telemetry.py</a></td>
1365
+ <td class="name left"><a href="z_7ba499ed22986217_telemetry_py.html#t31"><data value='is_test_mode'>_is_test_mode</data></a></td>
1366
+ <td>1</td>
1367
+ <td>1</td>
1368
+ <td>0</td>
1369
+ <td class="right" data-ratio="0 1">0%</td>
1370
+ </tr>
1371
+ <tr class="region">
1372
+ <td class="name left"><a href="z_7ba499ed22986217_telemetry_py.html#t36">/Users/antonigmitruk/golf/src/golf/core/telemetry.py</a></td>
1373
+ <td class="name left"><a href="z_7ba499ed22986217_telemetry_py.html#t36"><data value='ensure_posthog_disabled_in_test_mode'>_ensure_posthog_disabled_in_test_mode</data></a></td>
1374
+ <td>2</td>
1375
+ <td>2</td>
1376
+ <td>0</td>
1377
+ <td class="right" data-ratio="0 2">0%</td>
1378
+ </tr>
1379
+ <tr class="region">
1380
+ <td class="name left"><a href="z_7ba499ed22986217_telemetry_py.html#t42">/Users/antonigmitruk/golf/src/golf/core/telemetry.py</a></td>
1381
+ <td class="name left"><a href="z_7ba499ed22986217_telemetry_py.html#t42"><data value='get_telemetry_config_path'>get_telemetry_config_path</data></a></td>
1382
+ <td>1</td>
1383
+ <td>1</td>
1384
+ <td>0</td>
1385
+ <td class="right" data-ratio="0 1">0%</td>
1386
+ </tr>
1387
+ <tr class="region">
1388
+ <td class="name left"><a href="z_7ba499ed22986217_telemetry_py.html#t47">/Users/antonigmitruk/golf/src/golf/core/telemetry.py</a></td>
1389
+ <td class="name left"><a href="z_7ba499ed22986217_telemetry_py.html#t47"><data value='save_telemetry_preference'>save_telemetry_preference</data></a></td>
1390
+ <td>8</td>
1391
+ <td>8</td>
1392
+ <td>0</td>
1393
+ <td class="right" data-ratio="0 8">0%</td>
1394
+ </tr>
1395
+ <tr class="region">
1396
+ <td class="name left"><a href="z_7ba499ed22986217_telemetry_py.html#t62">/Users/antonigmitruk/golf/src/golf/core/telemetry.py</a></td>
1397
+ <td class="name left"><a href="z_7ba499ed22986217_telemetry_py.html#t62"><data value='load_telemetry_preference'>load_telemetry_preference</data></a></td>
1398
+ <td>9</td>
1399
+ <td>9</td>
1400
+ <td>0</td>
1401
+ <td class="right" data-ratio="0 9">0%</td>
1402
+ </tr>
1403
+ <tr class="region">
1404
+ <td class="name left"><a href="z_7ba499ed22986217_telemetry_py.html#t77">/Users/antonigmitruk/golf/src/golf/core/telemetry.py</a></td>
1405
+ <td class="name left"><a href="z_7ba499ed22986217_telemetry_py.html#t77"><data value='is_telemetry_enabled'>is_telemetry_enabled</data></a></td>
1406
+ <td>18</td>
1407
+ <td>18</td>
1408
+ <td>0</td>
1409
+ <td class="right" data-ratio="0 18">0%</td>
1410
+ </tr>
1411
+ <tr class="region">
1412
+ <td class="name left"><a href="z_7ba499ed22986217_telemetry_py.html#t117">/Users/antonigmitruk/golf/src/golf/core/telemetry.py</a></td>
1413
+ <td class="name left"><a href="z_7ba499ed22986217_telemetry_py.html#t117"><data value='set_telemetry_enabled'>set_telemetry_enabled</data></a></td>
1414
+ <td>3</td>
1415
+ <td>3</td>
1416
+ <td>0</td>
1417
+ <td class="right" data-ratio="0 3">0%</td>
1418
+ </tr>
1419
+ <tr class="region">
1420
+ <td class="name left"><a href="z_7ba499ed22986217_telemetry_py.html#t131">/Users/antonigmitruk/golf/src/golf/core/telemetry.py</a></td>
1421
+ <td class="name left"><a href="z_7ba499ed22986217_telemetry_py.html#t131"><data value='get_anonymous_id'>get_anonymous_id</data></a></td>
1422
+ <td>22</td>
1423
+ <td>22</td>
1424
+ <td>0</td>
1425
+ <td class="right" data-ratio="0 22">0%</td>
1426
+ </tr>
1427
+ <tr class="region">
1428
+ <td class="name left"><a href="z_7ba499ed22986217_telemetry_py.html#t183">/Users/antonigmitruk/golf/src/golf/core/telemetry.py</a></td>
1429
+ <td class="name left"><a href="z_7ba499ed22986217_telemetry_py.html#t183"><data value='initialize_telemetry'>initialize_telemetry</data></a></td>
1430
+ <td>15</td>
1431
+ <td>15</td>
1432
+ <td>0</td>
1433
+ <td class="right" data-ratio="0 15">0%</td>
1434
+ </tr>
1435
+ <tr class="region">
1436
+ <td class="name left"><a href="z_7ba499ed22986217_telemetry_py.html#t220">/Users/antonigmitruk/golf/src/golf/core/telemetry.py</a></td>
1437
+ <td class="name left"><a href="z_7ba499ed22986217_telemetry_py.html#t220"><data value='track_event'>track_event</data></a></td>
1438
+ <td>24</td>
1439
+ <td>24</td>
1440
+ <td>0</td>
1441
+ <td class="right" data-ratio="0 24">0%</td>
1442
+ </tr>
1443
+ <tr class="region">
1444
+ <td class="name left"><a href="z_7ba499ed22986217_telemetry_py.html#t318">/Users/antonigmitruk/golf/src/golf/core/telemetry.py</a></td>
1445
+ <td class="name left"><a href="z_7ba499ed22986217_telemetry_py.html#t318"><data value='track_command'>track_command</data></a></td>
1446
+ <td>8</td>
1447
+ <td>8</td>
1448
+ <td>0</td>
1449
+ <td class="right" data-ratio="0 8">0%</td>
1450
+ </tr>
1451
+ <tr class="region">
1452
+ <td class="name left"><a href="z_7ba499ed22986217_telemetry_py.html#t347">/Users/antonigmitruk/golf/src/golf/core/telemetry.py</a></td>
1453
+ <td class="name left"><a href="z_7ba499ed22986217_telemetry_py.html#t347"><data value='track_detailed_error'>track_detailed_error</data></a></td>
1454
+ <td>34</td>
1455
+ <td>34</td>
1456
+ <td>0</td>
1457
+ <td class="right" data-ratio="0 34">0%</td>
1458
+ </tr>
1459
+ <tr class="region">
1460
+ <td class="name left"><a href="z_7ba499ed22986217_telemetry_py.html#t436">/Users/antonigmitruk/golf/src/golf/core/telemetry.py</a></td>
1461
+ <td class="name left"><a href="z_7ba499ed22986217_telemetry_py.html#t436"><data value='sanitize_error_message'>_sanitize_error_message</data></a></td>
1462
+ <td>12</td>
1463
+ <td>12</td>
1464
+ <td>0</td>
1465
+ <td class="right" data-ratio="0 12">0%</td>
1466
+ </tr>
1467
+ <tr class="region">
1468
+ <td class="name left"><a href="z_7ba499ed22986217_telemetry_py.html#t471">/Users/antonigmitruk/golf/src/golf/core/telemetry.py</a></td>
1469
+ <td class="name left"><a href="z_7ba499ed22986217_telemetry_py.html#t471"><data value='flush'>flush</data></a></td>
1470
+ <td>6</td>
1471
+ <td>6</td>
1472
+ <td>0</td>
1473
+ <td class="right" data-ratio="0 6">0%</td>
1474
+ </tr>
1475
+ <tr class="region">
1476
+ <td class="name left"><a href="z_7ba499ed22986217_telemetry_py.html#t483">/Users/antonigmitruk/golf/src/golf/core/telemetry.py</a></td>
1477
+ <td class="name left"><a href="z_7ba499ed22986217_telemetry_py.html#t483"><data value='shutdown'>shutdown</data></a></td>
1478
+ <td>6</td>
1479
+ <td>6</td>
1480
+ <td>0</td>
1481
+ <td class="right" data-ratio="0 6">0%</td>
1482
+ </tr>
1483
+ <tr class="region">
1484
+ <td class="name left"><a href="z_7ba499ed22986217_telemetry_py.html">/Users/antonigmitruk/golf/src/golf/core/telemetry.py</a></td>
1485
+ <td class="name left"><a href="z_7ba499ed22986217_telemetry_py.html"><data value=''><span class='no-noun'>(no function)</span></data></a></td>
1486
+ <td>32</td>
1487
+ <td>32</td>
1488
+ <td>0</td>
1489
+ <td class="right" data-ratio="0 32">0%</td>
1490
+ </tr>
1491
+ <tr class="region">
1492
+ <td class="name left"><a href="z_7ba499ed22986217_transformer_py.html#t17">/Users/antonigmitruk/golf/src/golf/core/transformer.py</a></td>
1493
+ <td class="name left"><a href="z_7ba499ed22986217_transformer_py.html#t17"><data value='init__'>ImportTransformer.__init__</data></a></td>
1494
+ <td>4</td>
1495
+ <td>4</td>
1496
+ <td>0</td>
1497
+ <td class="right" data-ratio="0 4">0%</td>
1498
+ </tr>
1499
+ <tr class="region">
1500
+ <td class="name left"><a href="z_7ba499ed22986217_transformer_py.html#t37">/Users/antonigmitruk/golf/src/golf/core/transformer.py</a></td>
1501
+ <td class="name left"><a href="z_7ba499ed22986217_transformer_py.html#t37"><data value='visit_Import'>ImportTransformer.visit_Import</data></a></td>
1502
+ <td>1</td>
1503
+ <td>1</td>
1504
+ <td>0</td>
1505
+ <td class="right" data-ratio="0 1">0%</td>
1506
+ </tr>
1507
+ <tr class="region">
1508
+ <td class="name left"><a href="z_7ba499ed22986217_transformer_py.html#t41">/Users/antonigmitruk/golf/src/golf/core/transformer.py</a></td>
1509
+ <td class="name left"><a href="z_7ba499ed22986217_transformer_py.html#t41"><data value='visit_ImportFrom'>ImportTransformer.visit_ImportFrom</data></a></td>
1510
+ <td>28</td>
1511
+ <td>28</td>
1512
+ <td>0</td>
1513
+ <td class="right" data-ratio="0 28">0%</td>
1514
+ </tr>
1515
+ <tr class="region">
1516
+ <td class="name left"><a href="z_7ba499ed22986217_transformer_py.html#t95">/Users/antonigmitruk/golf/src/golf/core/transformer.py</a></td>
1517
+ <td class="name left"><a href="z_7ba499ed22986217_transformer_py.html#t95"><data value='transform_component'>transform_component</data></a></td>
1518
+ <td>36</td>
1519
+ <td>36</td>
1520
+ <td>0</td>
1521
+ <td class="right" data-ratio="0 36">0%</td>
1522
+ </tr>
1523
+ <tr class="region">
1524
+ <td class="name left"><a href="z_7ba499ed22986217_transformer_py.html">/Users/antonigmitruk/golf/src/golf/core/transformer.py</a></td>
1525
+ <td class="name left"><a href="z_7ba499ed22986217_transformer_py.html"><data value=''><span class='no-noun'>(no function)</span></data></a></td>
1526
+ <td>9</td>
1527
+ <td>9</td>
1528
+ <td>0</td>
1529
+ <td class="right" data-ratio="0 9">0%</td>
1530
+ </tr>
1531
+ <tr class="region">
1532
+ <td class="name left"><a href="z_5a6c4e6bcc86fb2f___init___py.html">/Users/antonigmitruk/golf/src/golf/examples/__init__.py</a></td>
1533
+ <td class="name left"><a href="z_5a6c4e6bcc86fb2f___init___py.html"><data value=''><span class='no-noun'>(no function)</span></data></a></td>
1534
+ <td>0</td>
1535
+ <td>0</td>
1536
+ <td>0</td>
1537
+ <td class="right" data-ratio="0 0">100%</td>
1538
+ </tr>
1539
+ <tr class="region">
1540
+ <td class="name left"><a href="z_7d7da37693a43688___init___py.html">/Users/antonigmitruk/golf/src/golf/metrics/__init__.py</a></td>
1541
+ <td class="name left"><a href="z_7d7da37693a43688___init___py.html"><data value=''><span class='no-noun'>(no function)</span></data></a></td>
1542
+ <td>3</td>
1543
+ <td>3</td>
1544
+ <td>0</td>
1545
+ <td class="right" data-ratio="0 3">0%</td>
1546
+ </tr>
1547
+ <tr class="region">
1548
+ <td class="name left"><a href="z_7d7da37693a43688_collector_py.html#t12">/Users/antonigmitruk/golf/src/golf/metrics/collector.py</a></td>
1549
+ <td class="name left"><a href="z_7d7da37693a43688_collector_py.html#t12"><data value='init__'>MetricsCollector.__init__</data></a></td>
1550
+ <td>4</td>
1551
+ <td>4</td>
1552
+ <td>0</td>
1553
+ <td class="right" data-ratio="0 4">0%</td>
1554
+ </tr>
1555
+ <tr class="region">
1556
+ <td class="name left"><a href="z_7d7da37693a43688_collector_py.html#t24">/Users/antonigmitruk/golf/src/golf/metrics/collector.py</a></td>
1557
+ <td class="name left"><a href="z_7d7da37693a43688_collector_py.html#t24"><data value='init_prometheus_metrics'>MetricsCollector._init_prometheus_metrics</data></a></td>
1558
+ <td>19</td>
1559
+ <td>19</td>
1560
+ <td>0</td>
1561
+ <td class="right" data-ratio="0 19">0%</td>
1562
+ </tr>
1563
+ <tr class="region">
1564
+ <td class="name left"><a href="z_7d7da37693a43688_collector_py.html#t122">/Users/antonigmitruk/golf/src/golf/metrics/collector.py</a></td>
1565
+ <td class="name left"><a href="z_7d7da37693a43688_collector_py.html#t122"><data value='increment_tool_execution'>MetricsCollector.increment_tool_execution</data></a></td>
1566
+ <td>3</td>
1567
+ <td>3</td>
1568
+ <td>0</td>
1569
+ <td class="right" data-ratio="0 3">0%</td>
1570
+ </tr>
1571
+ <tr class="region">
1572
+ <td class="name left"><a href="z_7d7da37693a43688_collector_py.html#t134">/Users/antonigmitruk/golf/src/golf/metrics/collector.py</a></td>
1573
+ <td class="name left"><a href="z_7d7da37693a43688_collector_py.html#t134"><data value='record_tool_duration'>MetricsCollector.record_tool_duration</data></a></td>
1574
+ <td>3</td>
1575
+ <td>3</td>
1576
+ <td>0</td>
1577
+ <td class="right" data-ratio="0 3">0%</td>
1578
+ </tr>
1579
+ <tr class="region">
1580
+ <td class="name left"><a href="z_7d7da37693a43688_collector_py.html#t146">/Users/antonigmitruk/golf/src/golf/metrics/collector.py</a></td>
1581
+ <td class="name left"><a href="z_7d7da37693a43688_collector_py.html#t146"><data value='increment_http_request'>MetricsCollector.increment_http_request</data></a></td>
1582
+ <td>3</td>
1583
+ <td>3</td>
1584
+ <td>0</td>
1585
+ <td class="right" data-ratio="0 3">0%</td>
1586
+ </tr>
1587
+ <tr class="region">
1588
+ <td class="name left"><a href="z_7d7da37693a43688_collector_py.html#t159">/Users/antonigmitruk/golf/src/golf/metrics/collector.py</a></td>
1589
+ <td class="name left"><a href="z_7d7da37693a43688_collector_py.html#t159"><data value='record_http_duration'>MetricsCollector.record_http_duration</data></a></td>
1590
+ <td>3</td>
1591
+ <td>3</td>
1592
+ <td>0</td>
1593
+ <td class="right" data-ratio="0 3">0%</td>
1594
+ </tr>
1595
+ <tr class="region">
1596
+ <td class="name left"><a href="z_7d7da37693a43688_collector_py.html#t172">/Users/antonigmitruk/golf/src/golf/metrics/collector.py</a></td>
1597
+ <td class="name left"><a href="z_7d7da37693a43688_collector_py.html#t172"><data value='increment_resource_read'>MetricsCollector.increment_resource_read</data></a></td>
1598
+ <td>3</td>
1599
+ <td>3</td>
1600
+ <td>0</td>
1601
+ <td class="right" data-ratio="0 3">0%</td>
1602
+ </tr>
1603
+ <tr class="region">
1604
+ <td class="name left"><a href="z_7d7da37693a43688_collector_py.html#t183">/Users/antonigmitruk/golf/src/golf/metrics/collector.py</a></td>
1605
+ <td class="name left"><a href="z_7d7da37693a43688_collector_py.html#t183"><data value='increment_prompt_generation'>MetricsCollector.increment_prompt_generation</data></a></td>
1606
+ <td>3</td>
1607
+ <td>3</td>
1608
+ <td>0</td>
1609
+ <td class="right" data-ratio="0 3">0%</td>
1610
+ </tr>
1611
+ <tr class="region">
1612
+ <td class="name left"><a href="z_7d7da37693a43688_collector_py.html#t194">/Users/antonigmitruk/golf/src/golf/metrics/collector.py</a></td>
1613
+ <td class="name left"><a href="z_7d7da37693a43688_collector_py.html#t194"><data value='increment_error'>MetricsCollector.increment_error</data></a></td>
1614
+ <td>3</td>
1615
+ <td>3</td>
1616
+ <td>0</td>
1617
+ <td class="right" data-ratio="0 3">0%</td>
1618
+ </tr>
1619
+ <tr class="region">
1620
+ <td class="name left"><a href="z_7d7da37693a43688_collector_py.html#t207">/Users/antonigmitruk/golf/src/golf/metrics/collector.py</a></td>
1621
+ <td class="name left"><a href="z_7d7da37693a43688_collector_py.html#t207"><data value='increment_session'>MetricsCollector.increment_session</data></a></td>
1622
+ <td>3</td>
1623
+ <td>3</td>
1624
+ <td>0</td>
1625
+ <td class="right" data-ratio="0 3">0%</td>
1626
+ </tr>
1627
+ <tr class="region">
1628
+ <td class="name left"><a href="z_7d7da37693a43688_collector_py.html#t214">/Users/antonigmitruk/golf/src/golf/metrics/collector.py</a></td>
1629
+ <td class="name left"><a href="z_7d7da37693a43688_collector_py.html#t214"><data value='record_session_duration'>MetricsCollector.record_session_duration</data></a></td>
1630
+ <td>3</td>
1631
+ <td>3</td>
1632
+ <td>0</td>
1633
+ <td class="right" data-ratio="0 3">0%</td>
1634
+ </tr>
1635
+ <tr class="region">
1636
+ <td class="name left"><a href="z_7d7da37693a43688_collector_py.html#t225">/Users/antonigmitruk/golf/src/golf/metrics/collector.py</a></td>
1637
+ <td class="name left"><a href="z_7d7da37693a43688_collector_py.html#t225"><data value='set_uptime'>MetricsCollector.set_uptime</data></a></td>
1638
+ <td>3</td>
1639
+ <td>3</td>
1640
+ <td>0</td>
1641
+ <td class="right" data-ratio="0 3">0%</td>
1642
+ </tr>
1643
+ <tr class="region">
1644
+ <td class="name left"><a href="z_7d7da37693a43688_collector_py.html#t236">/Users/antonigmitruk/golf/src/golf/metrics/collector.py</a></td>
1645
+ <td class="name left"><a href="z_7d7da37693a43688_collector_py.html#t236"><data value='increment_sampling'>MetricsCollector.increment_sampling</data></a></td>
1646
+ <td>3</td>
1647
+ <td>3</td>
1648
+ <td>0</td>
1649
+ <td class="right" data-ratio="0 3">0%</td>
1650
+ </tr>
1651
+ <tr class="region">
1652
+ <td class="name left"><a href="z_7d7da37693a43688_collector_py.html#t248">/Users/antonigmitruk/golf/src/golf/metrics/collector.py</a></td>
1653
+ <td class="name left"><a href="z_7d7da37693a43688_collector_py.html#t248"><data value='record_sampling_duration'>MetricsCollector.record_sampling_duration</data></a></td>
1654
+ <td>3</td>
1655
+ <td>3</td>
1656
+ <td>0</td>
1657
+ <td class="right" data-ratio="0 3">0%</td>
1658
+ </tr>
1659
+ <tr class="region">
1660
+ <td class="name left"><a href="z_7d7da37693a43688_collector_py.html#t260">/Users/antonigmitruk/golf/src/golf/metrics/collector.py</a></td>
1661
+ <td class="name left"><a href="z_7d7da37693a43688_collector_py.html#t260"><data value='record_sampling_tokens'>MetricsCollector.record_sampling_tokens</data></a></td>
1662
+ <td>3</td>
1663
+ <td>3</td>
1664
+ <td>0</td>
1665
+ <td class="right" data-ratio="0 3">0%</td>
1666
+ </tr>
1667
+ <tr class="region">
1668
+ <td class="name left"><a href="z_7d7da37693a43688_collector_py.html#t272">/Users/antonigmitruk/golf/src/golf/metrics/collector.py</a></td>
1669
+ <td class="name left"><a href="z_7d7da37693a43688_collector_py.html#t272"><data value='increment_elicitation'>MetricsCollector.increment_elicitation</data></a></td>
1670
+ <td>3</td>
1671
+ <td>3</td>
1672
+ <td>0</td>
1673
+ <td class="right" data-ratio="0 3">0%</td>
1674
+ </tr>
1675
+ <tr class="region">
1676
+ <td class="name left"><a href="z_7d7da37693a43688_collector_py.html#t284">/Users/antonigmitruk/golf/src/golf/metrics/collector.py</a></td>
1677
+ <td class="name left"><a href="z_7d7da37693a43688_collector_py.html#t284"><data value='record_elicitation_duration'>MetricsCollector.record_elicitation_duration</data></a></td>
1678
+ <td>3</td>
1679
+ <td>3</td>
1680
+ <td>0</td>
1681
+ <td class="right" data-ratio="0 3">0%</td>
1682
+ </tr>
1683
+ <tr class="region">
1684
+ <td class="name left"><a href="z_7d7da37693a43688_collector_py.html#t297">/Users/antonigmitruk/golf/src/golf/metrics/collector.py</a></td>
1685
+ <td class="name left"><a href="z_7d7da37693a43688_collector_py.html#t297"><data value='init_metrics_collector'>init_metrics_collector</data></a></td>
1686
+ <td>2</td>
1687
+ <td>2</td>
1688
+ <td>0</td>
1689
+ <td class="right" data-ratio="0 2">0%</td>
1690
+ </tr>
1691
+ <tr class="region">
1692
+ <td class="name left"><a href="z_7d7da37693a43688_collector_py.html#t311">/Users/antonigmitruk/golf/src/golf/metrics/collector.py</a></td>
1693
+ <td class="name left"><a href="z_7d7da37693a43688_collector_py.html#t311"><data value='get_metrics_collector'>get_metrics_collector</data></a></td>
1694
+ <td>3</td>
1695
+ <td>3</td>
1696
+ <td>0</td>
1697
+ <td class="right" data-ratio="0 3">0%</td>
1698
+ </tr>
1699
+ <tr class="region">
1700
+ <td class="name left"><a href="z_7d7da37693a43688_collector_py.html">/Users/antonigmitruk/golf/src/golf/metrics/collector.py</a></td>
1701
+ <td class="name left"><a href="z_7d7da37693a43688_collector_py.html"><data value=''><span class='no-noun'>(no function)</span></data></a></td>
1702
+ <td>22</td>
1703
+ <td>22</td>
1704
+ <td>0</td>
1705
+ <td class="right" data-ratio="0 22">0%</td>
1706
+ </tr>
1707
+ <tr class="region">
1708
+ <td class="name left"><a href="z_7d7da37693a43688_registry_py.html#t6">/Users/antonigmitruk/golf/src/golf/metrics/registry.py</a></td>
1709
+ <td class="name left"><a href="z_7d7da37693a43688_registry_py.html#t6"><data value='init_metrics'>init_metrics</data></a></td>
1710
+ <td>1</td>
1711
+ <td>1</td>
1712
+ <td>0</td>
1713
+ <td class="right" data-ratio="0 1">0%</td>
1714
+ </tr>
1715
+ <tr class="region">
1716
+ <td class="name left"><a href="z_7d7da37693a43688_registry_py.html">/Users/antonigmitruk/golf/src/golf/metrics/registry.py</a></td>
1717
+ <td class="name left"><a href="z_7d7da37693a43688_registry_py.html"><data value=''><span class='no-noun'>(no function)</span></data></a></td>
1718
+ <td>2</td>
1719
+ <td>2</td>
1720
+ <td>0</td>
1721
+ <td class="right" data-ratio="0 2">0%</td>
1722
+ </tr>
1723
+ <tr class="region">
1724
+ <td class="name left"><a href="z_3ec3b3f490dc0950___init___py.html">/Users/antonigmitruk/golf/src/golf/telemetry/__init__.py</a></td>
1725
+ <td class="name left"><a href="z_3ec3b3f490dc0950___init___py.html"><data value=''><span class='no-noun'>(no function)</span></data></a></td>
1726
+ <td>2</td>
1727
+ <td>2</td>
1728
+ <td>0</td>
1729
+ <td class="right" data-ratio="0 2">0%</td>
1730
+ </tr>
1731
+ <tr class="region">
1732
+ <td class="name left"><a href="z_3ec3b3f490dc0950_instrumentation_py.html#t40">/Users/antonigmitruk/golf/src/golf/telemetry/instrumentation.py</a></td>
1733
+ <td class="name left"><a href="z_3ec3b3f490dc0950_instrumentation_py.html#t40"><data value='safe_serialize'>_safe_serialize</data></a></td>
1734
+ <td>12</td>
1735
+ <td>12</td>
1736
+ <td>0</td>
1737
+ <td class="right" data-ratio="0 12">0%</td>
1738
+ </tr>
1739
+ <tr class="region">
1740
+ <td class="name left"><a href="z_3ec3b3f490dc0950_instrumentation_py.html#t59">/Users/antonigmitruk/golf/src/golf/telemetry/instrumentation.py</a></td>
1741
+ <td class="name left"><a href="z_3ec3b3f490dc0950_instrumentation_py.html#t59"><data value='set_detailed_tracing'>set_detailed_tracing</data></a></td>
1742
+ <td>1</td>
1743
+ <td>1</td>
1744
+ <td>0</td>
1745
+ <td class="right" data-ratio="0 1">0%</td>
1746
+ </tr>
1747
+ <tr class="region">
1748
+ <td class="name left"><a href="z_3ec3b3f490dc0950_instrumentation_py.html#t65">/Users/antonigmitruk/golf/src/golf/telemetry/instrumentation.py</a></td>
1749
+ <td class="name left"><a href="z_3ec3b3f490dc0950_instrumentation_py.html#t65"><data value='init_telemetry'>init_telemetry</data></a></td>
1750
+ <td>58</td>
1751
+ <td>58</td>
1752
+ <td>0</td>
1753
+ <td class="right" data-ratio="0 58">0%</td>
1754
+ </tr>
1755
+ <tr class="region">
1756
+ <td class="name left"><a href="z_3ec3b3f490dc0950_instrumentation_py.html#t185">/Users/antonigmitruk/golf/src/golf/telemetry/instrumentation.py</a></td>
1757
+ <td class="name left"><a href="z_3ec3b3f490dc0950_instrumentation_py.html#t185"><data value='get_tracer'>get_tracer</data></a></td>
1758
+ <td>5</td>
1759
+ <td>5</td>
1760
+ <td>0</td>
1761
+ <td class="right" data-ratio="0 5">0%</td>
1762
+ </tr>
1763
+ <tr class="region">
1764
+ <td class="name left"><a href="z_3ec3b3f490dc0950_instrumentation_py.html#t198">/Users/antonigmitruk/golf/src/golf/telemetry/instrumentation.py</a></td>
1765
+ <td class="name left"><a href="z_3ec3b3f490dc0950_instrumentation_py.html#t198"><data value='instrument_tool'>instrument_tool</data></a></td>
1766
+ <td>10</td>
1767
+ <td>10</td>
1768
+ <td>0</td>
1769
+ <td class="right" data-ratio="0 10">0%</td>
1770
+ </tr>
1771
+ <tr class="region">
1772
+ <td class="name left"><a href="z_3ec3b3f490dc0950_instrumentation_py.html#t209">/Users/antonigmitruk/golf/src/golf/telemetry/instrumentation.py</a></td>
1773
+ <td class="name left"><a href="z_3ec3b3f490dc0950_instrumentation_py.html#t209"><data value='async_wrapper'>instrument_tool.async_wrapper</data></a></td>
1774
+ <td>61</td>
1775
+ <td>61</td>
1776
+ <td>0</td>
1777
+ <td class="right" data-ratio="0 61">0%</td>
1778
+ </tr>
1779
+ <tr class="region">
1780
+ <td class="name left"><a href="z_3ec3b3f490dc0950_instrumentation_py.html#t327">/Users/antonigmitruk/golf/src/golf/telemetry/instrumentation.py</a></td>
1781
+ <td class="name left"><a href="z_3ec3b3f490dc0950_instrumentation_py.html#t327"><data value='sync_wrapper'>instrument_tool.sync_wrapper</data></a></td>
1782
+ <td>55</td>
1783
+ <td>55</td>
1784
+ <td>0</td>
1785
+ <td class="right" data-ratio="0 55">0%</td>
1786
+ </tr>
1787
+ <tr class="region">
1788
+ <td class="name left"><a href="z_3ec3b3f490dc0950_instrumentation_py.html#t443">/Users/antonigmitruk/golf/src/golf/telemetry/instrumentation.py</a></td>
1789
+ <td class="name left"><a href="z_3ec3b3f490dc0950_instrumentation_py.html#t443"><data value='instrument_resource'>instrument_resource</data></a></td>
1790
+ <td>11</td>
1791
+ <td>11</td>
1792
+ <td>0</td>
1793
+ <td class="right" data-ratio="0 11">0%</td>
1794
+ </tr>
1795
+ <tr class="region">
1796
+ <td class="name left"><a href="z_3ec3b3f490dc0950_instrumentation_py.html#t457">/Users/antonigmitruk/golf/src/golf/telemetry/instrumentation.py</a></td>
1797
+ <td class="name left"><a href="z_3ec3b3f490dc0950_instrumentation_py.html#t457"><data value='async_wrapper'>instrument_resource.async_wrapper</data></a></td>
1798
+ <td>42</td>
1799
+ <td>42</td>
1800
+ <td>0</td>
1801
+ <td class="right" data-ratio="0 42">0%</td>
1802
+ </tr>
1803
+ <tr class="region">
1804
+ <td class="name left"><a href="z_3ec3b3f490dc0950_instrumentation_py.html#t537">/Users/antonigmitruk/golf/src/golf/telemetry/instrumentation.py</a></td>
1805
+ <td class="name left"><a href="z_3ec3b3f490dc0950_instrumentation_py.html#t537"><data value='sync_wrapper'>instrument_resource.sync_wrapper</data></a></td>
1806
+ <td>42</td>
1807
+ <td>42</td>
1808
+ <td>0</td>
1809
+ <td class="right" data-ratio="0 42">0%</td>
1810
+ </tr>
1811
+ <tr class="region">
1812
+ <td class="name left"><a href="z_3ec3b3f490dc0950_instrumentation_py.html#t622">/Users/antonigmitruk/golf/src/golf/telemetry/instrumentation.py</a></td>
1813
+ <td class="name left"><a href="z_3ec3b3f490dc0950_instrumentation_py.html#t622"><data value='instrument_elicitation'>instrument_elicitation</data></a></td>
1814
+ <td>10</td>
1815
+ <td>10</td>
1816
+ <td>0</td>
1817
+ <td class="right" data-ratio="0 10">0%</td>
1818
+ </tr>
1819
+ <tr class="region">
1820
+ <td class="name left"><a href="z_3ec3b3f490dc0950_instrumentation_py.html#t633">/Users/antonigmitruk/golf/src/golf/telemetry/instrumentation.py</a></td>
1821
+ <td class="name left"><a href="z_3ec3b3f490dc0950_instrumentation_py.html#t633"><data value='async_wrapper'>instrument_elicitation.async_wrapper</data></a></td>
1822
+ <td>59</td>
1823
+ <td>59</td>
1824
+ <td>0</td>
1825
+ <td class="right" data-ratio="0 59">0%</td>
1826
+ </tr>
1827
+ <tr class="region">
1828
+ <td class="name left"><a href="z_3ec3b3f490dc0950_instrumentation_py.html#t733">/Users/antonigmitruk/golf/src/golf/telemetry/instrumentation.py</a></td>
1829
+ <td class="name left"><a href="z_3ec3b3f490dc0950_instrumentation_py.html#t733"><data value='sync_wrapper'>instrument_elicitation.sync_wrapper</data></a></td>
1830
+ <td>37</td>
1831
+ <td>37</td>
1832
+ <td>0</td>
1833
+ <td class="right" data-ratio="0 37">0%</td>
1834
+ </tr>
1835
+ <tr class="region">
1836
+ <td class="name left"><a href="z_3ec3b3f490dc0950_instrumentation_py.html#t808">/Users/antonigmitruk/golf/src/golf/telemetry/instrumentation.py</a></td>
1837
+ <td class="name left"><a href="z_3ec3b3f490dc0950_instrumentation_py.html#t808"><data value='instrument_sampling'>instrument_sampling</data></a></td>
1838
+ <td>10</td>
1839
+ <td>10</td>
1840
+ <td>0</td>
1841
+ <td class="right" data-ratio="0 10">0%</td>
1842
+ </tr>
1843
+ <tr class="region">
1844
+ <td class="name left"><a href="z_3ec3b3f490dc0950_instrumentation_py.html#t819">/Users/antonigmitruk/golf/src/golf/telemetry/instrumentation.py</a></td>
1845
+ <td class="name left"><a href="z_3ec3b3f490dc0950_instrumentation_py.html#t819"><data value='async_wrapper'>instrument_sampling.async_wrapper</data></a></td>
1846
+ <td>68</td>
1847
+ <td>68</td>
1848
+ <td>0</td>
1849
+ <td class="right" data-ratio="0 68">0%</td>
1850
+ </tr>
1851
+ <tr class="region">
1852
+ <td class="name left"><a href="z_3ec3b3f490dc0950_instrumentation_py.html#t929">/Users/antonigmitruk/golf/src/golf/telemetry/instrumentation.py</a></td>
1853
+ <td class="name left"><a href="z_3ec3b3f490dc0950_instrumentation_py.html#t929"><data value='sync_wrapper'>instrument_sampling.sync_wrapper</data></a></td>
1854
+ <td>25</td>
1855
+ <td>25</td>
1856
+ <td>0</td>
1857
+ <td class="right" data-ratio="0 25">0%</td>
1858
+ </tr>
1859
+ <tr class="region">
1860
+ <td class="name left"><a href="z_3ec3b3f490dc0950_instrumentation_py.html#t986">/Users/antonigmitruk/golf/src/golf/telemetry/instrumentation.py</a></td>
1861
+ <td class="name left"><a href="z_3ec3b3f490dc0950_instrumentation_py.html#t986"><data value='instrument_prompt'>instrument_prompt</data></a></td>
1862
+ <td>10</td>
1863
+ <td>10</td>
1864
+ <td>0</td>
1865
+ <td class="right" data-ratio="0 10">0%</td>
1866
+ </tr>
1867
+ <tr class="region">
1868
+ <td class="name left"><a href="z_3ec3b3f490dc0950_instrumentation_py.html#t997">/Users/antonigmitruk/golf/src/golf/telemetry/instrumentation.py</a></td>
1869
+ <td class="name left"><a href="z_3ec3b3f490dc0950_instrumentation_py.html#t997"><data value='async_wrapper'>instrument_prompt.async_wrapper</data></a></td>
1870
+ <td>44</td>
1871
+ <td>44</td>
1872
+ <td>0</td>
1873
+ <td class="right" data-ratio="0 44">0%</td>
1874
+ </tr>
1875
+ <tr class="region">
1876
+ <td class="name left"><a href="z_3ec3b3f490dc0950_instrumentation_py.html#t1084">/Users/antonigmitruk/golf/src/golf/telemetry/instrumentation.py</a></td>
1877
+ <td class="name left"><a href="z_3ec3b3f490dc0950_instrumentation_py.html#t1084"><data value='sync_wrapper'>instrument_prompt.sync_wrapper</data></a></td>
1878
+ <td>44</td>
1879
+ <td>44</td>
1880
+ <td>0</td>
1881
+ <td class="right" data-ratio="0 44">0%</td>
1882
+ </tr>
1883
+ <tr class="region">
1884
+ <td class="name left"><a href="z_3ec3b3f490dc0950_instrumentation_py.html#t1180">/Users/antonigmitruk/golf/src/golf/telemetry/instrumentation.py</a></td>
1885
+ <td class="name left"><a href="z_3ec3b3f490dc0950_instrumentation_py.html#t1180"><data value='init__'>BoundedSessionTracker.__init__</data></a></td>
1886
+ <td>4</td>
1887
+ <td>4</td>
1888
+ <td>0</td>
1889
+ <td class="right" data-ratio="0 4">0%</td>
1890
+ </tr>
1891
+ <tr class="region">
1892
+ <td class="name left"><a href="z_3ec3b3f490dc0950_instrumentation_py.html#t1186">/Users/antonigmitruk/golf/src/golf/telemetry/instrumentation.py</a></td>
1893
+ <td class="name left"><a href="z_3ec3b3f490dc0950_instrumentation_py.html#t1186"><data value='track_session'>BoundedSessionTracker.track_session</data></a></td>
1894
+ <td>11</td>
1895
+ <td>11</td>
1896
+ <td>0</td>
1897
+ <td class="right" data-ratio="0 11">0%</td>
1898
+ </tr>
1899
+ <tr class="region">
1900
+ <td class="name left"><a href="z_3ec3b3f490dc0950_instrumentation_py.html#t1210">/Users/antonigmitruk/golf/src/golf/telemetry/instrumentation.py</a></td>
1901
+ <td class="name left"><a href="z_3ec3b3f490dc0950_instrumentation_py.html#t1210"><data value='cleanup_expired'>BoundedSessionTracker._cleanup_expired</data></a></td>
1902
+ <td>3</td>
1903
+ <td>3</td>
1904
+ <td>0</td>
1905
+ <td class="right" data-ratio="0 3">0%</td>
1906
+ </tr>
1907
+ <tr class="region">
1908
+ <td class="name left"><a href="z_3ec3b3f490dc0950_instrumentation_py.html#t1216">/Users/antonigmitruk/golf/src/golf/telemetry/instrumentation.py</a></td>
1909
+ <td class="name left"><a href="z_3ec3b3f490dc0950_instrumentation_py.html#t1216"><data value='get_active_session_count'>BoundedSessionTracker.get_active_session_count</data></a></td>
1910
+ <td>1</td>
1911
+ <td>1</td>
1912
+ <td>0</td>
1913
+ <td class="right" data-ratio="0 1">0%</td>
1914
+ </tr>
1915
+ <tr class="region">
1916
+ <td class="name left"><a href="z_3ec3b3f490dc0950_instrumentation_py.html#t1221">/Users/antonigmitruk/golf/src/golf/telemetry/instrumentation.py</a></td>
1917
+ <td class="name left"><a href="z_3ec3b3f490dc0950_instrumentation_py.html#t1221"><data value='init__'>SessionTracingMiddleware.__init__</data></a></td>
1918
+ <td>2</td>
1919
+ <td>2</td>
1920
+ <td>0</td>
1921
+ <td class="right" data-ratio="0 2">0%</td>
1922
+ </tr>
1923
+ <tr class="region">
1924
+ <td class="name left"><a href="z_3ec3b3f490dc0950_instrumentation_py.html#t1226">/Users/antonigmitruk/golf/src/golf/telemetry/instrumentation.py</a></td>
1925
+ <td class="name left"><a href="z_3ec3b3f490dc0950_instrumentation_py.html#t1226"><data value='dispatch'>SessionTracingMiddleware.dispatch</data></a></td>
1926
+ <td>81</td>
1927
+ <td>81</td>
1928
+ <td>0</td>
1929
+ <td class="right" data-ratio="0 81">0%</td>
1930
+ </tr>
1931
+ <tr class="region">
1932
+ <td class="name left"><a href="z_3ec3b3f490dc0950_instrumentation_py.html#t1386">/Users/antonigmitruk/golf/src/golf/telemetry/instrumentation.py</a></td>
1933
+ <td class="name left"><a href="z_3ec3b3f490dc0950_instrumentation_py.html#t1386"><data value='telemetry_lifespan'>telemetry_lifespan</data></a></td>
1934
+ <td>24</td>
1935
+ <td>24</td>
1936
+ <td>0</td>
1937
+ <td class="right" data-ratio="0 24">0%</td>
1938
+ </tr>
1939
+ <tr class="region">
1940
+ <td class="name left"><a href="z_3ec3b3f490dc0950_instrumentation_py.html#t1416">/Users/antonigmitruk/golf/src/golf/telemetry/instrumentation.py</a></td>
1941
+ <td class="name left"><a href="z_3ec3b3f490dc0950_instrumentation_py.html#t1416"><data value='traced_handle_request'>telemetry_lifespan.traced_handle_request</data></a></td>
1942
+ <td>4</td>
1943
+ <td>4</td>
1944
+ <td>0</td>
1945
+ <td class="right" data-ratio="0 4">0%</td>
1946
+ </tr>
1947
+ <tr class="region">
1948
+ <td class="name left"><a href="z_3ec3b3f490dc0950_instrumentation_py.html">/Users/antonigmitruk/golf/src/golf/telemetry/instrumentation.py</a></td>
1949
+ <td class="name left"><a href="z_3ec3b3f490dc0950_instrumentation_py.html"><data value=''><span class='no-noun'>(no function)</span></data></a></td>
1950
+ <td>45</td>
1951
+ <td>45</td>
1952
+ <td>0</td>
1953
+ <td class="right" data-ratio="0 45">0%</td>
1954
+ </tr>
1955
+ <tr class="region">
1956
+ <td class="name left"><a href="z_abe733142b40ad4e___init___py.html">/Users/antonigmitruk/golf/src/golf/utilities/__init__.py</a></td>
1957
+ <td class="name left"><a href="z_abe733142b40ad4e___init___py.html"><data value=''><span class='no-noun'>(no function)</span></data></a></td>
1958
+ <td>4</td>
1959
+ <td>4</td>
1960
+ <td>0</td>
1961
+ <td class="right" data-ratio="0 4">0%</td>
1962
+ </tr>
1963
+ <tr class="region">
1964
+ <td class="name left"><a href="z_abe733142b40ad4e_context_py.html#t13">/Users/antonigmitruk/golf/src/golf/utilities/context.py</a></td>
1965
+ <td class="name left"><a href="z_abe733142b40ad4e_context_py.html#t13"><data value='get_current_context'>get_current_context</data></a></td>
1966
+ <td>8</td>
1967
+ <td>8</td>
1968
+ <td>0</td>
1969
+ <td class="right" data-ratio="0 8">0%</td>
1970
+ </tr>
1971
+ <tr class="region">
1972
+ <td class="name left"><a href="z_abe733142b40ad4e_context_py.html">/Users/antonigmitruk/golf/src/golf/utilities/context.py</a></td>
1973
+ <td class="name left"><a href="z_abe733142b40ad4e_context_py.html"><data value=''><span class='no-noun'>(no function)</span></data></a></td>
1974
+ <td>4</td>
1975
+ <td>4</td>
1976
+ <td>0</td>
1977
+ <td class="right" data-ratio="0 4">0%</td>
1978
+ </tr>
1979
+ <tr class="region">
1980
+ <td class="name left"><a href="z_abe733142b40ad4e_elicitation_py.html#t28">/Users/antonigmitruk/golf/src/golf/utilities/elicitation.py</a></td>
1981
+ <td class="name left"><a href="z_abe733142b40ad4e_elicitation_py.html#t28"><data value='elicit'>elicit</data></a></td>
1982
+ <td>1</td>
1983
+ <td>1</td>
1984
+ <td>0</td>
1985
+ <td class="right" data-ratio="0 1">0%</td>
1986
+ </tr>
1987
+ <tr class="region">
1988
+ <td class="name left"><a href="z_abe733142b40ad4e_elicitation_py.html#t37">/Users/antonigmitruk/golf/src/golf/utilities/elicitation.py</a></td>
1989
+ <td class="name left"><a href="z_abe733142b40ad4e_elicitation_py.html#t37"><data value='elicit'>elicit</data></a></td>
1990
+ <td>1</td>
1991
+ <td>1</td>
1992
+ <td>0</td>
1993
+ <td class="right" data-ratio="0 1">0%</td>
1994
+ </tr>
1995
+ <tr class="region">
1996
+ <td class="name left"><a href="z_abe733142b40ad4e_elicitation_py.html#t46">/Users/antonigmitruk/golf/src/golf/utilities/elicitation.py</a></td>
1997
+ <td class="name left"><a href="z_abe733142b40ad4e_elicitation_py.html#t46"><data value='elicit'>elicit</data></a></td>
1998
+ <td>1</td>
1999
+ <td>1</td>
2000
+ <td>0</td>
2001
+ <td class="right" data-ratio="0 1">0%</td>
2002
+ </tr>
2003
+ <tr class="region">
2004
+ <td class="name left"><a href="z_abe733142b40ad4e_elicitation_py.html#t54">/Users/antonigmitruk/golf/src/golf/utilities/elicitation.py</a></td>
2005
+ <td class="name left"><a href="z_abe733142b40ad4e_elicitation_py.html#t54"><data value='elicit'>elicit</data></a></td>
2006
+ <td>16</td>
2007
+ <td>16</td>
2008
+ <td>0</td>
2009
+ <td class="right" data-ratio="0 16">0%</td>
2010
+ </tr>
2011
+ <tr class="region">
2012
+ <td class="name left"><a href="z_abe733142b40ad4e_elicitation_py.html#t129">/Users/antonigmitruk/golf/src/golf/utilities/elicitation.py</a></td>
2013
+ <td class="name left"><a href="z_abe733142b40ad4e_elicitation_py.html#t129"><data value='elicit_confirmation'>elicit_confirmation</data></a></td>
2014
+ <td>7</td>
2015
+ <td>7</td>
2016
+ <td>0</td>
2017
+ <td class="right" data-ratio="0 7">0%</td>
2018
+ </tr>
2019
+ <tr class="region">
2020
+ <td class="name left"><a href="z_abe733142b40ad4e_elicitation_py.html">/Users/antonigmitruk/golf/src/golf/utilities/elicitation.py</a></td>
2021
+ <td class="name left"><a href="z_abe733142b40ad4e_elicitation_py.html"><data value=''><span class='no-noun'>(no function)</span></data></a></td>
2022
+ <td>21</td>
2023
+ <td>21</td>
2024
+ <td>0</td>
2025
+ <td class="right" data-ratio="0 21">0%</td>
2026
+ </tr>
2027
+ <tr class="region">
2028
+ <td class="name left"><a href="z_abe733142b40ad4e_sampling_py.html#t25">/Users/antonigmitruk/golf/src/golf/utilities/sampling.py</a></td>
2029
+ <td class="name left"><a href="z_abe733142b40ad4e_sampling_py.html#t25"><data value='sample'>sample</data></a></td>
2030
+ <td>14</td>
2031
+ <td>14</td>
2032
+ <td>0</td>
2033
+ <td class="right" data-ratio="0 14">0%</td>
2034
+ </tr>
2035
+ <tr class="region">
2036
+ <td class="name left"><a href="z_abe733142b40ad4e_sampling_py.html#t115">/Users/antonigmitruk/golf/src/golf/utilities/sampling.py</a></td>
2037
+ <td class="name left"><a href="z_abe733142b40ad4e_sampling_py.html#t115"><data value='sample_structured'>sample_structured</data></a></td>
2038
+ <td>4</td>
2039
+ <td>4</td>
2040
+ <td>0</td>
2041
+ <td class="right" data-ratio="0 4">0%</td>
2042
+ </tr>
2043
+ <tr class="region">
2044
+ <td class="name left"><a href="z_abe733142b40ad4e_sampling_py.html#t165">/Users/antonigmitruk/golf/src/golf/utilities/sampling.py</a></td>
2045
+ <td class="name left"><a href="z_abe733142b40ad4e_sampling_py.html#t165"><data value='sample_with_context'>sample_with_context</data></a></td>
2046
+ <td>5</td>
2047
+ <td>5</td>
2048
+ <td>0</td>
2049
+ <td class="right" data-ratio="0 5">0%</td>
2050
+ </tr>
2051
+ <tr class="region">
2052
+ <td class="name left"><a href="z_abe733142b40ad4e_sampling_py.html">/Users/antonigmitruk/golf/src/golf/utilities/sampling.py</a></td>
2053
+ <td class="name left"><a href="z_abe733142b40ad4e_sampling_py.html"><data value=''><span class='no-noun'>(no function)</span></data></a></td>
2054
+ <td>16</td>
2055
+ <td>16</td>
2056
+ <td>0</td>
2057
+ <td class="right" data-ratio="0 16">0%</td>
2058
+ </tr>
2059
+ </tbody>
2060
+ <tfoot>
2061
+ <tr class="total">
2062
+ <td class="name left">Total</td>
2063
+ <td class="name left">&nbsp;</td>
2064
+ <td>3598</td>
2065
+ <td>3222</td>
2066
+ <td>0</td>
2067
+ <td class="right" data-ratio="376 3598">10%</td>
2068
+ </tr>
2069
+ </tfoot>
2070
+ </table>
2071
+ <p id="no_rows">
2072
+ No items found using the specified filter.
2073
+ </p>
2074
+ </main>
2075
+ <footer>
2076
+ <div class="content">
2077
+ <p>
2078
+ <a class="nav" href="https://coverage.readthedocs.io/en/7.6.12">coverage.py v7.6.12</a>,
2079
+ created at 2025-08-16 18:46 +0200
2080
+ </p>
2081
+ </div>
2082
+ <aside class="hidden">
2083
+ <a id="prevFileLink" class="nav" href=""></a>
2084
+ <a id="nextFileLink" class="nav" href=""></a>
2085
+ <button type="button" class="button_prev_file" data-shortcut="["></button>
2086
+ <button type="button" class="button_next_file" data-shortcut="]"></button>
2087
+ <button type="button" class="button_show_hide_help" data-shortcut="?"></button>
2088
+ </aside>
2089
+ </footer>
2090
+ </body>
2091
+ </html>