From 4ebb2ac6dff43701d938c05f19459bb513d22151 Mon Sep 17 00:00:00 2001 From: Martin Sivak Date: Fri, 18 Apr 2008 16:33:43 +0200 Subject: Split the dependency system to its own file, to have better readability when new features are introduced --- pyfirstaidkit/dependency.py | 68 +++++++++++++++++++++++++++++++++++++++++++++ pyfirstaidkit/interpret.py | 41 +-------------------------- 2 files changed, 69 insertions(+), 40 deletions(-) create mode 100644 pyfirstaidkit/dependency.py (limited to 'pyfirstaidkit') diff --git a/pyfirstaidkit/dependency.py b/pyfirstaidkit/dependency.py new file mode 100644 index 0000000..2871e21 --- /dev/null +++ b/pyfirstaidkit/dependency.py @@ -0,0 +1,68 @@ +# File name: dependency.py +# Date: 2008/04/18 +# Author: Martin Sivak +# +# Copyright (C) Red Hat 2008 +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License as +# published by the Free Software Foundation; either version 2 of the +# License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# in a file called COPYING along with this program; if not, write to +# the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA +# 02139, USA. + +import logging +import copy +from errors import * + +Logger=logging.getLogger("firstaidkit") + +class RunDependencies(object): + """Encapsulate flags used to control the dependencies between plugins""" + def __init__(self): + self._provide = set() + self._known = set() + + def provide(self, id, setactionflag = True): + """Add flag""" + Logger.info("Setting dependency flag %s", id) + self._provide.add(id) + if setactionflag: self._provide.add(id+"?") #Action flags denote activity happening on some regular flag + + def unprovide(self, id, setactionflag = True): + """Remove flag""" + Logger.info("Resetting dependency flag %s", id) + try: + self._provide.remove(id) + except KeyError: #not there + pass + if setactionflag: self._provide.add(id+"?") + + donotprovide = unprovide #alias + failed = unprovide #alias + + def require(self, id): + """Return True if flag is present, otherwise false""" + return id in self._provide + + def introduce(self, s): + """Notifies the system about dependency names used in the plugins, so we can list them in help""" + self._known = self._known.union(s) + + def known(self): + """Returns list of known flags""" + return list(self._known) + + def valid(self): + """Returns list of valid/provided flags""" + return list(self._provide) + + diff --git a/pyfirstaidkit/interpret.py b/pyfirstaidkit/interpret.py index 5217939..be54035 100644 --- a/pyfirstaidkit/interpret.py +++ b/pyfirstaidkit/interpret.py @@ -22,49 +22,10 @@ import logging import copy from errors import * from utils import FileBackupStore +from dependency import RunDependencies Logger=logging.getLogger("firstaidkit") -class RunDependencies(object): - """Encapsulate flags used to control the dependencies between plugins""" - def __init__(self): - self._provide = set() - self._known = set() - - def provide(self, id, setactionflag = True): - """Add flag""" - Logger.info("Setting dependency flag %s", id) - self._provide.add(id) - if setactionflag: self._provide.add(id+"?") #Action flags denote activity happening on some regular flag - - def unprovide(self, id, setactionflag = True): - """Remove flag""" - Logger.info("Resetting dependency flag %s", id) - try: - self._provide.remove(id) - except KeyError: #not there - pass - if setactionflag: self._provide.add(id+"?") - - donotprovide = unprovide #alias - failed = unprovide #alias - - def require(self, id): - """Return True if flag is present, otherwise false""" - return id in self._provide - - def introduce(self, s): - """Notifies the system about dependency names used in the plugins, so we can list them in help""" - self._known = self._known.union(s) - - def known(self): - """Returns list of known flags""" - return list(self._known) - - def valid(self): - """Returns list of valid/provided flags""" - return list(self._provide) - class Tasker: """The main interpret of tasks described in Config object""" -- cgit