Changeset 426

Show
Ignore:
Timestamp:
05/20/07 03:44:34 (2 years ago)
Author:
athomas
Message:

cly:

  • cly.extra contains some useful functions, including quickstart() (also
    exposed as cly.quickstart()).
  • Import cly.everything to import all CLY symbols.
Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • cly/trunk/cly/__init__.py

    r425 r426  
    3333import re 
    3434import posixpath 
    35 import pydoc 
    3635import string 
    37 import console 
    3836 
    3937__author__ = 'Alec Thomas <alec@swapoff.org>' 
     
    4745Help LazyHelp HelpParser Context Parser 
    4846 
    49 static_candidates 
     47quickstart 
    5048""".split() 
    5149 
     
    456454 
    457455 
     456def annotate(*args, **kwargs): 
     457    def apply_annotation(function): 
     458        function.cly_args = args 
     459        function.cly_kwargs = kwargs 
     460        return function 
     461    return apply_annotation 
     462 
     463 
    458464class Group(Node): 
    459465    """Group all children together at this location. 
     
    779785          <two> Two 
    780786        """ 
     787        import cly.console as console 
     788 
    781789        if not self.help: 
    782790            return 
     
    959967 
    960968 
    961 def static_candidates(*candidates): 
    962     """Convenience function to provide candidates matching a prefix. 
    963  
    964     Returns a callable that can be used directly with ``Node.candidates=``. 
    965  
    966     >>> static_candidates('foo', 'bar')(None, 'f') 
    967     ['foo '] 
    968     >>> parser = Parser(Grammar(node=Node('Test', candidates=static_candidates('foo', 'fuzz', 'bar')))) 
    969     >>> list(parser.parse('f').candidates()) 
    970     ['foo ', 'fuzz '] 
    971     """ 
    972     def cull_candidates(context, text): 
    973         return filter(None, [c + ' ' for c in candidates if c.startswith(text)]) 
    974     return cull_candidates 
     969def quickstart(*grammar_or_callables, **interact_args): 
     970    """Start an interactive session from a grammar, or from inspecting a set of 
     971    callables.""" 
     972    from cly.extra import quickstart 
     973    quickstart(*grammar_or_callables, **interact_args) 
    975974 
    976975 
  • cly/trunk/cly/test.py

    r413 r426  
    1010import doctest 
    1111 
     12 
    1213def suite(): 
    1314    import cly 
    1415    import cly.interactive 
    15     import cly.variables 
     16    import cly.types 
    1617    import cly.console 
     18    import cly.extra 
    1719 
    1820    suite = unittest.TestSuite() 
    1921    suite.addTest(doctest.DocTestSuite(cly)) 
    2022    suite.addTest(doctest.DocTestSuite(cly.interactive)) 
    21     suite.addTest(doctest.DocTestSuite(cly.variables)) 
     23    suite.addTest(doctest.DocTestSuite(cly.types)) 
    2224    suite.addTest(doctest.DocTestSuite(cly.console)) 
     25    suite.addTest(doctest.DocTestSuite(cly.extra)) 
    2326 
    2427    return suite 
    2528 
     29 
    2630if __name__ == '__main__': 
    2731    unittest.main(defaultTest='suite')