in olddocs/gen_edot_col_components/tools.py [0:0]
def get_otel_components(url):
elastic_agent_go_mod = fetch_url_content(url)
lines = elastic_agent_go_mod.splitlines()
components_type = ['receiver', 'connector', 'processor', 'exporter', 'extension', 'provider']
otel_deps = [line for line in lines if (not line.endswith('// indirect') and ("=>" not in line) and (any(f'/{comp}/' in line for comp in components_type)))]
otel_components = list(map(dep_to_component, otel_deps))
components_grouped = defaultdict(list)
for comp in otel_components:
for substring in components_type:
if f'/{substring}/' in comp['dep']:
components_grouped[f'{substring.capitalize()}s'].append(comp)
break # Assumes each string matches only one group
components_grouped = dict(components_grouped)
for key, group in components_grouped.items():
components_grouped[key] = sorted(group, key=lambda comp: comp['name'])
return components_grouped