def get_product_developers(prid, **kwargs):
    repos = map(lambda x: store.get_project_repositories(x), store.get_product_projects(prid))
    repos = flat_sum(repos)
    devs = set([])
    for rid in repos:
        devs = set.union(devs, store.get_developers(kwargs['begin'], kwargs['end'], rid=rid))
    devs = filter(lambda x: x is not None, map(lambda x: store.get_committer_id(x[0]), devs))
    return list(store.get_developer_uris(*set(devs)))
def get_product_builds(prid, **kwargs):
    projects = store.get_product_projects(prid)
    repo_ids = flat_sum(map(lambda x: store.get_project_repositories(x), projects))
    return {}, [sum(map(lambda x: len(store.get_repo_builds(x)), repo_ids))]
 def get_developer_frame(self, uid):
     repos = self.get_all_developer_repos(uid)
     return flat_sum(self.get_representative_frame(*repos))
 def get_product_frame(self, prid):
     repos = flat_sum([self.get_project_repositories(pjid) for pjid in self.get_product_projects(prid)])
     return self.get_representative_frame(*repos)
 def get_project_frame(self, pjid):
     repos = self.get_project_repositories(pjid)
     return flat_sum(self.get_representative_frame(*repos))
 def get_product_repositories(self, prid):
     return list(set(flat_sum(map(lambda x: self.get_project_repositories(x), self.get_product_projects(prid)))))