summaryrefslogtreecommitdiffstats
path: root/pyfirstaidkit
diff options
context:
space:
mode:
authorMartin Sivak <msivak@redhat.com>2008-04-18 16:33:43 +0200
committerMartin Sivak <msivak@redhat.com>2008-04-18 16:33:43 +0200
commit4ebb2ac6dff43701d938c05f19459bb513d22151 (patch)
treeb28649ae9c60bdfb7c21346653cc5eb40722e3ac /pyfirstaidkit
parent9235738d450e77a414bf21b83f7c79eacd37da9f (diff)
downloadfirstaidkit-4ebb2ac6dff43701d938c05f19459bb513d22151.tar.gz
firstaidkit-4ebb2ac6dff43701d938c05f19459bb513d22151.tar.xz
firstaidkit-4ebb2ac6dff43701d938c05f19459bb513d22151.zip
Split the dependency system to its own file, to have better readability when new features are introduced
Diffstat (limited to 'pyfirstaidkit')
-rw-r--r--pyfirstaidkit/dependency.py68
-rw-r--r--pyfirstaidkit/interpret.py41
2 files changed, 69 insertions, 40 deletions
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"""