Changeset 386

Show
Ignore:
Timestamp:
02/11/07 22:34:01 (2 years ago)
Author:
athomas
Message:

pyndexter:

  • Passing an indexer to the framework is now optional.
  • Automatically flush() after an update().
  • Added start of test suite.
Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • pyndexter/trunk/pyndexter/indexers/builtin.py

    r383 r386  
    232232 
    233233    def search(self, query): 
     234        query.reduce(self.framework.reduce) 
    234235        # FIXME currently simply finding the intersection of all documents 
    235236        # (AND) 
    236         query.reduce(self.framework.reduce) 
    237237        # FIXME Words without a WID can be automatically excluded from the 
    238238        # search 
    239         words = self._wids(query.as_string(and_=' ', or_=' ', not_=' ').split()) 
     239        words = self._wids(query.terms()) 
    240240        uris = None 
    241241        for word in words: 
  • pyndexter/trunk/pyndexter/__init__.py

    r384 r386  
    765765    desired, a `StateStore` object should be passed to the `Framework`.""" 
    766766 
    767     def __init__(self, indexer, mode=READWRITE, state_store=None, reduce=None, 
    768                  stemmer=None): 
     767    def __init__(self, indexer=None, mode=READWRITE, state_store=None, 
     768                 reduce=None, stemmer=None): 
    769769        """`indexer` is a URI used to construct an indexer, or an `Indexer` 
    770770        object. 
     
    792792            self.indexer = indexer 
    793793 
    794         if state_store is None
     794        if state_store is None and indexer
    795795            self.state_store = self.indexer.state_store() 
    796796        else: 
     
    799799        from pyndexter.sources.metasource import MetaSource 
    800800        self.source = MetaSource(self) 
     801 
     802    def set_indexer(self, indexer): 
     803        """Set the `Framework` `Indexer`.""" 
     804        self.indexer = indexer 
     805        if self.state_store is None: 
     806            self.state_store = indexer.state_store() 
    801807 
    802808    def add_source(self, source): 
     
    849855            for transition, uri in filter(self, context, fake_difference()): 
    850856                self.index(uri) 
     857        self.flush() 
    851858 
    852859    def index(self, document): 
     
    857864            document = self.fetch(document) 
    858865        return self.indexer.index(document) 
    859  
    860866 
    861867    def discard(self, document): 
     
    10621068    def __repr__(self): 
    10631069        return self.text 
    1064  
    1065  
    1066 if __name__ == '__main__': 
    1067     import doctest 
    1068     doctest.testmod() 
  • pyndexter/trunk/setup.py

    r374 r386  
    1515      author_email='alec@swapoff.org', 
    1616      version='0.2', 
     17      test_suite='pyndexter.test.suite', 
    1718      classifiers=['Development Status :: 3 - Alpha', 
    1819                   'Environment :: Plugins',