diff options
author | Ralph Bean <ralph.bean@gmail.com> | 2011-04-12 18:15:58 -0400 |
---|---|---|
committer | Ralph Bean <ralph.bean@gmail.com> | 2011-04-12 18:18:16 -0400 |
commit | a549f749323b56679f3bba657a045078207e18c3 (patch) | |
tree | d2ee40caad78b4fff2870323a794a4d64d3d640a /leafymiracle/populate.py | |
parent | 340a0886d9aaa3e83c3317580aa3234c84bf3909 (diff) | |
download | leafymiracle-a549f749323b56679f3bba657a045078207e18c3.tar.gz leafymiracle-a549f749323b56679f3bba657a045078207e18c3.tar.xz leafymiracle-a549f749323b56679f3bba657a045078207e18c3.zip |
basic model and scraping for dependencies.
Diffstat (limited to 'leafymiracle/populate.py')
-rw-r--r-- | leafymiracle/populate.py | 19 |
1 files changed, 18 insertions, 1 deletions
diff --git a/leafymiracle/populate.py b/leafymiracle/populate.py index 9f78fc5..cb3c7d4 100644 --- a/leafymiracle/populate.py +++ b/leafymiracle/populate.py @@ -19,7 +19,8 @@ from kitchen.text.converters import to_unicode from models import Root, Category, Group, Package, DBSession, initialize_sql -def populate(comps='comps-f16'): + +def populate(comps='comps-f16', do_dependencies=True): from yum.comps import Comps session = DBSession() @@ -58,6 +59,22 @@ def populate(comps='comps-f16'): session.flush() + if do_dependencies: + yumobj = yum.YumBase() + yumobj.setCacheDir() + for package in session.query(Package).all(): + deps = yumobj.pkgSack.searchNevra(name=package.name)[0] + deps_d = pkg.findDeps([pkg]) + deps = [tup[0] for tup in deps_d[deps_d.keys()[0]].keys()] + + for dep in deps: + dep_as_package = session.query(Package)\ + .filter_by(name=dep).one() + if dep_as_package not in package.dependencies: + package.dependencies.append(dep_as_package) + + + session.commit() def build_comps(): |