diff --git a/config/base.py b/config/base.py index 69d06a1..69f5b2a 100644 --- a/config/base.py +++ b/config/base.py @@ -1,5 +1,5 @@ # -# Copyright (c) 2008 Helmut Merz helmutm@cy55.de +# Copyright (c) 2016 Helmut Merz helmutm@cy55.de # # 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 @@ -18,8 +18,6 @@ """ Adapters and others classes for analyzing resources. - -$Id$ """ import os @@ -33,6 +31,7 @@ from cybertools.meta.config import GlobalOptions as BaseGlobalOptions from cybertools.meta.interfaces import IOptions from cybertools.meta.namespace import Executor, ExecutionError from cybertools.typology.interfaces import IType +from loops.common import AdapterBase from loops.interfaces import ILoops, ILoopsObject, ITypeConcept, IPredicate #from loops.query import IQueryConcept from loops.expert.concept import IQueryConcept @@ -73,8 +72,8 @@ class LoopsOptions(Options): def parseContextOptions(self): def result(): - options = getattr(self.context, 'options', []) - for opt in options: + options = getattr(self.context, 'options', None) or [] + for opt in options: parts = opt.split(':', 1) key = parts[0].strip() if len(parts) == 1: @@ -128,6 +127,11 @@ class PredicateOptions(LoopsOptions): adapts(IPredicate) +class ConceptAdapterOptions(LoopsOptions): + + adapts(AdapterBase) + + class DummyOptions(Options): def __getitem__(self, key): diff --git a/config/configure.zcml b/config/configure.zcml index 0218ca4..cec2980 100644 --- a/config/configure.zcml +++ b/config/configure.zcml @@ -27,6 +27,11 @@ + + + + + diff --git a/table.py b/table.py index ece56e0..2027af8 100644 --- a/table.py +++ b/table.py @@ -142,5 +142,8 @@ class DataTableSourceList(object): for k, v in self.context.data.items()] return iter(sorted(items, key=lambda x: x[1])) + def __contains__(self, value): + return value in self.context.data + def __len__(self): return len(self.context.data)