in src/mozanalysis/config.py [0:0]
def get_segment(self, segment_slug: str, app_name: str) -> Segment:
"""Load a segment definition for the given app.
Returns a :class:`mozanalysis.segments.Segment` instance.
"""
segment_definition = self.configs.get_segment_definition(segment_slug, app_name)
if segment_definition is None:
if self.check_configs_for_app(app_name):
raise SegmentNotFound(
f"Could not find definition for segment {segment_slug} in application {app_name}" # noqa:E501
)
else:
raise ApplicationNotFound(
f"Could not find application {app_name}, so segment {segment_slug} could not be resolved" # noqa:E501
)
return Segment(
name=segment_definition.name,
data_source=self.get_segment_data_source(
segment_definition.data_source.name, app_name
),
select_expr=self.configs.get_env()
.from_string(segment_definition.select_expression)
.render(),
friendly_name=segment_definition.friendly_name,
description=segment_definition.description,
app_name=app_name,
)