in mozilla_schema_generator/glean_ping.py [0:0]
def get_dependencies(self):
# Get all of the library dependencies for the application that
# are also known about in the repositories file.
# The dependencies are specified using library names, but we need to
# map those back to the name of the repository in the repository file.
try:
dependencies = self._get_json(
self.dependencies_url_template.format(self.repo_name)
)
except HTTPError:
logging.info(f"For {self.repo_name}, using default Glean dependencies")
return self.default_dependencies
dependency_library_names = list(dependencies.keys())
repos = GleanPing._get_json(GleanPing.repos_url)
repos_by_dependency_name = {}
for repo in repos:
for library_name in repo.get("library_names", []):
repos_by_dependency_name[library_name] = repo["name"]
dependencies = []
for name in dependency_library_names:
if name in repos_by_dependency_name:
dependencies.append(repos_by_dependency_name[name])
if len(dependencies) == 0:
logging.info(f"For {self.repo_name}, using default Glean dependencies")
return self.default_dependencies
logging.info(f"For {self.repo_name}, found Glean dependencies: {dependencies}")
return dependencies