diff options
-rw-r--r-- | doc/Changelog | 2 | ||||
-rw-r--r-- | geneticone/backend/flags.py | 24 | ||||
-rw-r--r-- | geneticone/helper.py | 23 |
3 files changed, 32 insertions, 17 deletions
diff --git a/doc/Changelog b/doc/Changelog index c63b429..8edcee9 100644 --- a/doc/Changelog +++ b/doc/Changelog @@ -2,7 +2,7 @@ - bug fixing (again ;D) - added "oneshot" - redesign -- added "update world" - ability +- added "update world" - ability (w/o newuse) - handled installed packages which are not in portage anymore - allowed to reload portage diff --git a/geneticone/backend/flags.py b/geneticone/backend/flags.py index cb26935..95d4ee5 100644 --- a/geneticone/backend/flags.py +++ b/geneticone/backend/flags.py @@ -55,7 +55,7 @@ def get_data(pkg, path): @type path: string @returns: a list of tuples in the form (file,line,criterion,list_of_flags) - @rtype: list""" + @rtype: (string,string,string,string[])[]""" flags = [] @@ -132,6 +132,7 @@ def invert_use_flag (flag): @returns: inverted flag @rtype: string """ + if flag[0] == "-": return flag[1:] else: @@ -196,8 +197,7 @@ def set_use_flag (pkg, flag): if not added: path = USE_PATH if USE_PATH_IS_DIR: - path = os.path.join(USE_PATH,generate_path(cpv, CONFIG["usefile"])) - + path = os.path.join(USE_PATH, generate_path(cpv, CONFIG["usefile"])) try: newUseFlags[cpv].remove((path, -1, invFlag, False)) except ValueError: # not in UseFlags @@ -208,8 +208,10 @@ def set_use_flag (pkg, flag): def remove_new_use_flags (cpv): """Removes all new use-flags for a specific package. + @param cpv: the package for which to remove the flags @type cpv: string (cpv) or L{backend.Package}-object""" + if isinstance(cpv, package.Package): cpv = cpv.get_cpv() @@ -220,10 +222,11 @@ def remove_new_use_flags (cpv): def get_new_use_flags (cpv): """Gets all the new use-flags for a specific package. - @param cpv: the package for which to remove the flags + + @param cpv: the package from which to get the flags @type cpv: string (cpv) or L{backend.Package}-object @returns: list of flags - @rtype: list""" + @rtype: string[]""" if isinstance(cpv, package.Package): cpv = cpv.get_cpv() @@ -279,8 +282,9 @@ def write_use_flags (): i = 1 while i < line: # stop at the given line lines.append(f.readline()) - i = i+1 + i++ l = f.readline().split(" ") + # delete or insert if delete: remove(flag,l) @@ -293,6 +297,7 @@ def write_use_flags (): file_cache[file] = lines f.close() + else: # in cache l = file_cache[file][line-1].split(" ") if delete: @@ -335,6 +340,13 @@ new_masked = {} new_unmasked = {} def set_masked (pkg, masked = True): + """Sets the masking status of the package. + + @param cpv: the package from which to get the flags + @type cpv: string (cpv) or L{backend.Package}-object + @param masked: if True: mask it; if False: unmask it + @type masked: boolean""" + global new_masked, newunmasked if not isinstance(pkg, package.Package): diff --git a/geneticone/helper.py b/geneticone/helper.py index a1acf42..780893e 100644 --- a/geneticone/helper.py +++ b/geneticone/helper.py @@ -9,24 +9,28 @@ # # Written by Necoro d.M. <necoro@necoro.net> et.al. -import traceback, textwrap, os.path +import traceback, os.path DEBUG = True def set_debug (d): + """Sets the global DEBUG variable. Do not set it by your own - always use this function. + + @param d: True to enable debugging; False otherwise + @type d: boolean""" + global DEBUG DEBUG = d def debug(*args, **kwargs): """Prints a debug message including filename and lineno. A variable number of positional arguments are allowed. - If lineno(obj0, obj1, obj2) is called, the text part of the output - looks like the output from print obj0, obj1, obj2 . - The optional keyword "wrap" causes the message to be line-wrapped. The - argument to "wrap" should be "1" or "True". "name" is another optional - keyword parameter. - (This function is adapted from Edward Jones as published under: http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/279155)""" + If debug(obj0, obj1, obj2) is called, the text part of the output + looks like the output from print obj0, obj1, obj2. + + If you pass the optional keyword-argument "name", it is used for the function-name instead of the original one.""" + if not DEBUG : return @@ -41,15 +45,14 @@ def debug(*args, **kwargs): text = 'In %s (%s:%s): %s' % (kwargs["name"], a, b, text) else: text = 'In %s (%s:%s): %s' % (c, a, b, text) - #if wrap: - # text = textwrap.fill(text) text = "***DEBUG*** %s ***DEBUG***" % text print text def am_i_root (): - """Returns True if the current user is root, False otherwise.""" + """Returns True if the current user is root, False otherwise. + @rtype: boolean""" if os.getuid() == 0: return True else: |