From: "Brian Dolbec" <brian.dolbec@gmail.com>
To: gentoo-commits@lists.gentoo.org
Subject: [gentoo-commits] proj/gentoolkit:gentoolkit commit in: pym/gentoolkit/, pym/gentoolkit/enalyze/
Date: Wed, 1 Aug 2012 03:26:32 +0000 (UTC) [thread overview]
Message-ID: <1343791498.58b14f6f6ee39ffbb1eb5ffdce6e04e911a22d5d.dol-sen@gentoo> (raw)
commit: 58b14f6f6ee39ffbb1eb5ffdce6e04e911a22d5d
Author: Brian Dolbec <dolsen <AT> gentoo <DOT> org>
AuthorDate: Wed Aug 1 03:23:14 2012 +0000
Commit: Brian Dolbec <brian.dolbec <AT> gmail <DOT> com>
CommitDate: Wed Aug 1 03:24:58 2012 +0000
URL: http://git.overlays.gentoo.org/gitweb/?p=proj/gentoolkit.git;a=commit;h=58b14f6f
replace all use of dbapi's PORTDB, VARDB, BINDB assigned variables with the actuall portage calls to take advantage of all 3 being lazyloaded. The assignemt in dbapi causes all 3 to be loaded, slowing down runs that do not need all 3
---
pym/gentoolkit/dependencies.py | 5 ++---
pym/gentoolkit/enalyze/analyze.py | 13 ++++++-------
pym/gentoolkit/enalyze/lib.py | 7 +++----
pym/gentoolkit/enalyze/rebuild.py | 15 +++++++--------
pym/gentoolkit/flag.py | 22 ++++++++++------------
pym/gentoolkit/helpers.py | 21 +++++++++++----------
pym/gentoolkit/package.py | 25 ++++++++++++-------------
pym/gentoolkit/query.py | 15 +++++++--------
8 files changed, 58 insertions(+), 65 deletions(-)
diff --git a/pym/gentoolkit/dependencies.py b/pym/gentoolkit/dependencies.py
index 0396952..84e3672 100644
--- a/pym/gentoolkit/dependencies.py
+++ b/pym/gentoolkit/dependencies.py
@@ -20,7 +20,6 @@ from gentoolkit import errors
from gentoolkit.atom import Atom
from gentoolkit.cpv import CPV
from gentoolkit.helpers import uniqify
-from gentoolkit.dbapi import PORTDB, VARDB
from gentoolkit.query import Query
# =======
@@ -69,10 +68,10 @@ class Dependencies(Query):
# Try to use the Portage tree first, since emerge only uses the tree
# when calculating dependencies
try:
- result = PORTDB.aux_get(self.cpv, envvars)
+ result = portage.db[portage.root]["porttree"].dbapi.aux_get(self.cpv, envvars)
except KeyError:
try:
- result = VARDB.aux_get(self.cpv, envvars)
+ result = portage.db[portage.root]["vartree"].dbapi.aux_get(self.cpv, envvars)
except KeyError:
return []
return result
diff --git a/pym/gentoolkit/enalyze/analyze.py b/pym/gentoolkit/enalyze/analyze.py
index 2ba028f..7033422 100644
--- a/pym/gentoolkit/enalyze/analyze.py
+++ b/pym/gentoolkit/enalyze/analyze.py
@@ -13,7 +13,6 @@ from __future__ import print_function
import sys
import gentoolkit
-from gentoolkit.dbapi import PORTDB, VARDB
from gentoolkit.module_base import ModuleBase
from gentoolkit import pprinter as pp
from gentoolkit.flag import get_installed_use, get_flags
@@ -56,7 +55,7 @@ def gather_flags_info(
@rtype dict. {flag:{"+":[cat/pkg-ver,...], "-":[cat/pkg-ver,...], "unset":[]}
"""
if cpvs is None:
- cpvs = VARDB.cpv_all()
+ cpvs = portage.db[portage.root]["vartree"].dbapi.cpv_all()
# pass them in to override for tests
flags = FlagAnalyzer(system_flags,
filter_defaults=False,
@@ -115,7 +114,7 @@ def gather_keywords_info(
@rtype dict. {keyword:{"stable":[cat/pkg-ver,...], "testing":[cat/pkg-ver,...]}
"""
if cpvs is None:
- cpvs = VARDB.cpv_all()
+ cpvs = portage.db[portage.root]["vartree"].dbapi.cpv_all()
keyword_users = {}
for cpv in cpvs:
if cpv.startswith("virtual"):
@@ -264,7 +263,7 @@ class Analyse(ModuleBase):
self.options["verbose"],
system_use)
if self.options["verbose"]:
- cpvs = VARDB.cpv_all()
+ cpvs = portage.db[portage.root]["vartree"].dbapi.cpv_all()
#cpvs = get_installed_cpvs()
#print "Total number of installed ebuilds =", len(cpvs)
flag_users = gather_flags_info(cpvs, system_use,
@@ -324,7 +323,7 @@ class Analyse(ModuleBase):
"keywords",
self.options["verbose"],
system_keywords)
- self.analyser = KeywordAnalyser( arch, system_keywords, VARDB)
+ self.analyser = KeywordAnalyser( arch, system_keywords, portage.db[portage.root]["vartree"].dbapi)
#self.analyser.set_order(portage.settings["USE"].split())
# only for testing
test_use = portage.settings["USE"].split()
@@ -337,7 +336,7 @@ class Analyse(ModuleBase):
# /end testing
if self.options["verbose"]:
- cpvs = VARDB.cpv_all()
+ cpvs = portage.db[portage.root]["vartree"].dbapi.cpv_all()
#print "Total number of installed ebuilds =", len(cpvs)
keyword_users = gather_keywords_info(
cpvs=cpvs,
@@ -398,7 +397,7 @@ class Analyse(ModuleBase):
"""
system_use = portage.settings["USE"].split()
if self.options["verbose"]:
- cpvs = VARDB.cpv_all()
+ cpvs = portage.db[portage.root]["vartree"].dbapi.cpv_all()
key_width = 45
else:
cpvs = get_installed_cpvs()
diff --git a/pym/gentoolkit/enalyze/lib.py b/pym/gentoolkit/enalyze/lib.py
index 9dc28a3..de306f0 100644
--- a/pym/gentoolkit/enalyze/lib.py
+++ b/pym/gentoolkit/enalyze/lib.py
@@ -10,7 +10,6 @@
import sys
-from gentoolkit.dbapi import PORTDB, VARDB
from gentoolkit import errors
from gentoolkit.keyword import reduce_keywords
from gentoolkit.flag import (reduce_flags, get_flags, get_all_cpv_use,
@@ -158,7 +157,7 @@ class KeywordAnalyser(object):
@param arch: the system ARCH setting
@type accept_keywords: list
@param accept_keywords: eg. ['x86', '~x86']
- @type get_aux: function, defaults to: VARDB.aux_get
+ @type get_aux: function, defaults to: portage.db[portage.root]["vartree"].dbapi.aux_get
@param vardb: vardb class of functions, needed=aux_get()
to return => KEYWORDS & USE flags for a cpv
= aux_get(cpv, ["KEYWORDS", "USE"])
@@ -170,7 +169,7 @@ class KeywordAnalyser(object):
parse_range = list(range(len(normal_order)))
- def __init__(self, arch, accept_keywords, vardb=VARDB):
+ def __init__(self, arch, accept_keywords, vardb=portage.db[portage.root]["vartree"].dbapi):
self.arch = arch
self.accept_keywords = accept_keywords
self.vardb = vardb
@@ -356,6 +355,6 @@ class KeywordAnalyser(object):
self.parse_order = self.normal_order
self.keyword = self.arch
#print "SET_ORDER() completed: prefix =", self.prefix, ", keyword =", \
- # self.keyword, "parse order =",self.parse_order
+ # self.keyword, "parse order =",self.parse_order
#print
diff --git a/pym/gentoolkit/enalyze/rebuild.py b/pym/gentoolkit/enalyze/rebuild.py
index d0e1813..cd1a08a 100644
--- a/pym/gentoolkit/enalyze/rebuild.py
+++ b/pym/gentoolkit/enalyze/rebuild.py
@@ -17,7 +17,6 @@ import os
import sys
import gentoolkit
-from gentoolkit.dbapi import PORTDB, VARDB
from gentoolkit.module_base import ModuleBase
from gentoolkit import pprinter as pp
from gentoolkit.enalyze.lib import (get_installed_use, get_flags, FlagAnalyzer,
@@ -55,7 +54,7 @@ def cpv_all_diff_use(
@rtype dict. {cpv:['flag1', '-flag2',...]}
"""
if cpvs is None:
- cpvs = VARDB.cpv_all()
+ cpvs = portage.db[portage.root]["vartree"].dbapi.cpv_all()
cpvs.sort()
data = {}
cp_counts = {}
@@ -69,7 +68,7 @@ def cpv_all_diff_use(
for cpv in cpvs:
plus, minus, unset = flags.analyse_cpv(cpv)
atom = Atom("="+cpv)
- atom.slot = VARDB.aux_get(atom.cpv, ["SLOT"])[0]
+ atom.slot = portage.db[portage.root]["vartree"].dbapi.aux_get(atom.cpv, ["SLOT"])[0]
for flag in minus:
plus.add("-"+flag)
if len(plus):
@@ -104,7 +103,7 @@ def cpv_all_diff_keywords(
"testing":[cat/pkg-ver,...]}
"""
if cpvs is None:
- cpvs = VARDB.cpv_all()
+ cpvs = portage.db[portage.root]["vartree"].dbapi.cpv_all()
keyword_users = {}
cp_counts = {}
for cpv in cpvs:
@@ -125,13 +124,13 @@ def cpv_all_diff_keywords(
cp_counts[atom.cp] = 0
if key in ["~"]:
atom.keyword = keyword
- atom.slot = VARDB.aux_get(atom.cpv, ["SLOT"])[0]
+ atom.slot = portage.db[portage.root]["vartree"].dbapi.aux_get(atom.cpv, ["SLOT"])[0]
keyword_users[atom.cp].append(atom)
cp_counts[atom.cp] += 1
elif key in ["-"]:
#print "adding cpv to missing:", cpv
atom.keyword = "**"
- atom.slot = VARDB.aux_get(atom.cpv, ["SLOT"])[0]
+ atom.slot = portage.db[portage.root]["vartree"].dbapi.aux_get(atom.cpv, ["SLOT"])[0]
keyword_users[atom.cp].append(atom)
cp_counts[atom.cp] += 1
return keyword_users, cp_counts
@@ -283,7 +282,7 @@ class Rebuild(ModuleBase):
if self.options["verbose"] or self.options["prefix"]:
print("Current system ARCH =", arch)
print("Current system ACCEPT_KEYWORDS =", system_keywords)
- self.analyser = KeywordAnalyser( arch, system_keywords, VARDB)
+ self.analyser = KeywordAnalyser( arch, system_keywords, portage.db[portage.root]["vartree"].dbapi)
#self.analyser.set_order(portage.settings["USE"].split())
# only for testing
test_use = portage.settings["USE"].split()
@@ -295,7 +294,7 @@ class Rebuild(ModuleBase):
self.analyser.set_order(test_use)
# /end testing
- cpvs = VARDB.cpv_all()
+ cpvs = portage.db[portage.root]["vartree"].dbapi.cpv_all()
#print "Total number of installed ebuilds =", len(cpvs)
pkgs, cp_counts = cpv_all_diff_keywords(
cpvs=cpvs,
diff --git a/pym/gentoolkit/flag.py b/pym/gentoolkit/flag.py
index 0377a81..9983ba7 100644
--- a/pym/gentoolkit/flag.py
+++ b/pym/gentoolkit/flag.py
@@ -22,8 +22,6 @@ __all__ = (
import sys
-from gentoolkit.dbapi import PORTDB, VARDB
-
import portage
@@ -38,7 +36,7 @@ def get_iuse(cpv):
"""
try:
# aux_get might return dupes, so run them through set() to remove them
- return list(set(PORTDB.aux_get(cpv, ["IUSE"])[0].split()))
+ return list(set(portage.db[portage.root]["porttree"].dbapi.aux_get(cpv, ["IUSE"])[0].split()))
except:
return []
@@ -54,7 +52,7 @@ def get_installed_use(cpv, use="USE"):
@rtype list
@returns [] or the list of IUSE flags
"""
- return VARDB.aux_get(cpv,[use])[0].split()
+ return portage.db[portage.root]["vartree"].dbapi.aux_get(cpv,[use])[0].split()
def reduce_flag(flag):
@@ -144,20 +142,20 @@ def get_all_cpv_use(cpv):
@return use, use_expand_hidden, usemask, useforce
"""
use = None
- PORTDB.settings.unlock()
+ portage.db[portage.root]["porttree"].dbapi.settings.unlock()
try:
- PORTDB.settings.setcpv(cpv, mydb=portage.portdb)
+ portage.db[portage.root]["porttree"].dbapi.settings.setcpv(cpv, mydb=portage.portdb)
use = portage.settings['PORTAGE_USE'].split()
use_expand_hidden = portage.settings["USE_EXPAND_HIDDEN"].split()
- usemask = list(PORTDB.settings.usemask)
- useforce = list(PORTDB.settings.useforce)
+ usemask = list(portage.db[portage.root]["porttree"].dbapi.settings.usemask)
+ useforce = list(portage.db[portage.root]["porttree"].dbapi.settings.useforce)
except KeyError:
- PORTDB.settings.reset()
- PORTDB.settings.lock()
+ portage.db[portage.root]["porttree"].dbapi.settings.reset()
+ portage.db[portage.root]["porttree"].dbapi.settings.lock()
return [], [], [], []
# reset cpv filter
- PORTDB.settings.reset()
- PORTDB.settings.lock()
+ portage.db[portage.root]["porttree"].dbapi.settings.reset()
+ portage.db[portage.root]["porttree"].dbapi.settings.lock()
return use, use_expand_hidden, usemask, useforce
diff --git a/pym/gentoolkit/helpers.py b/pym/gentoolkit/helpers.py
index a0b29ab..e7a27ab 100644
--- a/pym/gentoolkit/helpers.py
+++ b/pym/gentoolkit/helpers.py
@@ -32,11 +32,12 @@ import codecs
from functools import partial
from itertools import chain
+import portage
+
from gentoolkit import pprinter as pp
from gentoolkit import errors
from gentoolkit.atom import Atom
from gentoolkit.cpv import CPV
-from gentoolkit.dbapi import BINDB, PORTDB, VARDB
from gentoolkit.versionmatch import VersionMatch
# This has to be imported below to stop circular import.
#from gentoolkit.package import Package
@@ -387,11 +388,11 @@ def get_cpvs(predicate=None, include_installed=True):
"""
if predicate:
- all_cps = iter(x for x in PORTDB.cp_all() if predicate(x))
+ all_cps = iter(x for x in portage.db[portage.root]["porttree"].dbapi.cp_all() if predicate(x))
else:
- all_cps = PORTDB.cp_all()
+ all_cps = portage.db[portage.root]["porttree"].dbapi.cp_all()
- all_cpvs = chain.from_iterable(PORTDB.cp_list(x) for x in all_cps)
+ all_cpvs = chain.from_iterable(portage.db[portage.root]["porttree"].dbapi.cp_list(x) for x in all_cps)
all_installed_cpvs = set(get_installed_cpvs(predicate))
if include_installed:
@@ -423,11 +424,11 @@ def get_installed_cpvs(predicate=None):
"""
if predicate:
- installed_cps = iter(x for x in VARDB.cp_all() if predicate(x))
+ installed_cps = iter(x for x in portage.db[portage.root]["vartree"].dbapi.cp_all() if predicate(x))
else:
- installed_cps = VARDB.cp_all()
+ installed_cps = portage.db[portage.root]["vartree"].dbapi.cp_all()
- for cpv in chain.from_iterable(VARDB.cp_list(x) for x in installed_cps):
+ for cpv in chain.from_iterable(portage.db[portage.root]["vartree"].dbapi.cp_list(x) for x in installed_cps):
yield cpv
@@ -442,11 +443,11 @@ def get_bintree_cpvs(predicate=None):
"""
if predicate:
- installed_cps = iter(x for x in BINDB.cp_all() if predicate(x))
+ installed_cps = iter(x for x in portage.db[portage.root]["bintree"].dbapi.cp_all() if predicate(x))
else:
- installed_cps = BINDB.cp_all()
+ installed_cps = portage.db[portage.root]["bintree"].dbapi.cp_all()
- for cpv in chain.from_iterable(BINDB.cp_list(x) for x in installed_cps):
+ for cpv in chain.from_iterable(portage.db[portage.root]["bintree"].dbapi.cp_list(x) for x in installed_cps):
yield cpv
diff --git a/pym/gentoolkit/package.py b/pym/gentoolkit/package.py
index cbb7131..f066783 100644
--- a/pym/gentoolkit/package.py
+++ b/pym/gentoolkit/package.py
@@ -37,7 +37,7 @@ __all__ = (
FORMAT_TMPL_VARS = (
'$location', '$mask', '$mask2', '$cp', '$cpv', '$category', '$name',
'$version', '$revision', '$fullversion', '$slot', '$repo', '$keywords'
-)
+)
# =======
# Imports
@@ -52,7 +52,6 @@ from portage.util import LazyItemsDict
import gentoolkit.pprinter as pp
from gentoolkit import errors
from gentoolkit.cpv import CPV
-from gentoolkit.dbapi import PORTDB, VARDB
from gentoolkit.keyword import determine_keyword
from gentoolkit.flag import get_flags
from gentoolkit.eprefix import EPREFIX
@@ -199,23 +198,23 @@ class Package(CPV):
envvars = (envvars,)
if prefer_vdb:
try:
- result = VARDB.aux_get(self.cpv, envvars)
+ result = portage.db[portage.root]["vartree"].dbapi.aux_get(self.cpv, envvars)
except KeyError:
try:
if not fallback:
raise KeyError
- result = PORTDB.aux_get(self.cpv, envvars)
+ result = portage.db[portage.root]["porttree"].dbapi.aux_get(self.cpv, envvars)
except KeyError:
err = "aux_get returned unexpected results"
raise errors.GentoolkitFatalError(err)
else:
try:
- result = PORTDB.aux_get(self.cpv, envvars)
+ result = portage.db[portage.root]["porttree"].dbapi.aux_get(self.cpv, envvars)
except KeyError:
try:
if not fallback:
raise KeyError
- result = VARDB.aux_get(self.cpv, envvars)
+ result = portage.db[portage.root]["vartree"].dbapi.aux_get(self.cpv, envvars)
except KeyError:
err = "aux_get returned unexpected results"
raise errors.GentoolkitFatalError(err)
@@ -227,7 +226,7 @@ class Package(CPV):
def exists(self):
"""Return True if package exists in the Portage tree, else False"""
- return bool(PORTDB.cpv_exists(self.cpv))
+ return bool(portage.db[portage.root]["porttree"].dbapi.cpv_exists(self.cpv))
def settings(self, key):
"""Returns the value of the given key for this package (useful
@@ -258,7 +257,7 @@ class Package(CPV):
try:
result = portage.getmaskingstatus(self.cpv,
settings=self._settings,
- portdb=PORTDB)
+ portdb=portage.db[portage.root]["porttree"].dbapi)
except KeyError:
# getmaskingstatus doesn't support packages without ebuilds in the
# Portage tree.
@@ -277,7 +276,7 @@ class Package(CPV):
try:
result = portage.getmaskingreason(self.cpv,
settings=self._settings,
- portdb=PORTDB,
+ portdb=portage.db[portage.root]["porttree"].dbapi,
return_location=True)
if result is None:
result = tuple()
@@ -299,8 +298,8 @@ class Package(CPV):
"""
if in_vartree:
- return VARDB.findname(self.cpv)
- return PORTDB.findname(self.cpv)
+ return portage.db[portage.root]["vartree"].dbapi.findname(self.cpv)
+ return portage.db[portage.root]["porttree"].dbapi.findname(self.cpv)
def package_path(self, in_vartree=False):
"""Return the path to where the ebuilds and other files reside."""
@@ -387,7 +386,7 @@ class Package(CPV):
def is_overlay(self):
"""Returns True if the package is in an overlay."""
- ebuild, tree = PORTDB.findname2(self.cpv)
+ ebuild, tree = portage.db[portage.root]["porttree"].dbapi.findname2(self.cpv)
if not ebuild:
return None
if self._portdir_path is None:
@@ -400,7 +399,7 @@ class Package(CPV):
@note: We blindly assume that the package actually exists on disk.
"""
- unmasked = PORTDB.xmatch("match-visible", self.cpv)
+ unmasked = portage.db[portage.root]["porttree"].dbapi.xmatch("match-visible", self.cpv)
return self.cpv not in unmasked
diff --git a/pym/gentoolkit/query.py b/pym/gentoolkit/query.py
index 9ad9017..cd8efcc 100644
--- a/pym/gentoolkit/query.py
+++ b/pym/gentoolkit/query.py
@@ -29,7 +29,6 @@ from gentoolkit import helpers
from gentoolkit import pprinter as pp
from gentoolkit.atom import Atom
from gentoolkit.cpv import CPV
-from gentoolkit.dbapi import PORTDB, VARDB
from gentoolkit.package import Package
from gentoolkit.sets import get_set_atoms, SETPREFIX
@@ -189,11 +188,11 @@ class Query(CPV):
try:
if include_masked:
- matches = PORTDB.xmatch("match-all", self.query)
+ matches = portage.db[portage.root]["porttree"].dbapi.xmatch("match-all", self.query)
else:
- matches = PORTDB.match(self.query)
+ matches = portage.db[portage.root]["porttree"].dbapi.match(self.query)
if in_installed:
- matches.extend(VARDB.match(self.query))
+ matches.extend(portage.db[portage.root]["vartree"].dbapi.match(self.query))
except portage.exception.InvalidAtom as err:
message = "query.py: find(), query=%s, InvalidAtom=%s" %(
self.query, str(err))
@@ -205,12 +204,12 @@ class Query(CPV):
"""Return a list of Package objects that matched the search key."""
try:
- matches = VARDB.match(self.query)
+ matches = portage.db[portage.root]["vartree"].dbapi.match(self.query)
# catch the ambiguous package Exception
except portage.exception.AmbiguousPackageName as err:
matches = []
for pkgkey in err.args[0]:
- matches.extend(VARDB.match(pkgkey))
+ matches.extend(portage.db[portage.root]["vartree"].dbapi.match(pkgkey))
except portage.exception.InvalidAtom as err:
raise errors.GentoolkitInvalidAtom(err)
@@ -231,7 +230,7 @@ class Query(CPV):
best = keyworded = masked = None
try:
- best = PORTDB.xmatch("bestmatch-visible", self.query)
+ best = portage.db[portage.root]["porttree"].dbapi.xmatch("bestmatch-visible", self.query)
except portage.exception.InvalidAtom as err:
message = "query.py: find_best(), bestmatch-visible, " + \
"query=%s, InvalidAtom=%s" %(self.query, str(err))
@@ -241,7 +240,7 @@ class Query(CPV):
if not (include_keyworded or include_masked):
return None
try:
- matches = PORTDB.xmatch("match-all", self.query)
+ matches = portage.db[portage.root]["porttree"].dbapi.xmatch("match-all", self.query)
except portage.exception.InvalidAtom as err:
message = "query.py: find_best(), match-all, query=%s, InvalidAtom=%s" %(
self.query, str(err))
next reply other threads:[~2012-08-01 3:26 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-08-01 3:26 Brian Dolbec [this message]
-- strict thread matches above, loose matches on Subject: below --
2012-06-29 2:40 [gentoo-commits] proj/gentoolkit:gentoolkit commit in: pym/gentoolkit/, pym/gentoolkit/enalyze/ Brian Dolbec
2012-06-07 7:59 Brian Dolbec
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1343791498.58b14f6f6ee39ffbb1eb5ffdce6e04e911a22d5d.dol-sen@gentoo \
--to=brian.dolbec@gmail.com \
--cc=gentoo-commits@lists.gentoo.org \
--cc=gentoo-dev@lists.gentoo.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox