Show More
@@ -61,9 +61,11 b' class Style(object):' | |||||
61 | ``bg`` as the background color and ``attrs`` as the attributes. |
|
61 | ``bg`` as the background color and ``attrs`` as the attributes. | |
62 |
|
62 | |||
63 | Examples: |
|
63 | Examples: | |
64 |
|
||||
65 |
|
|
64 | >>> Style(COLOR_RED, COLOR_BLACK) | |
|
65 | <Style fg=red bg=black attrs=0> | |||
|
66 | ||||
66 |
|
|
67 | >>> Style(COLOR_YELLOW, COLOR_BLUE, A_BOLD|A_UNDERLINE) | |
|
68 | <Style fg=yellow bg=blue attrs=bold|underline> | |||
67 | """ |
|
69 | """ | |
68 | self.fg = fg |
|
70 | self.fg = fg | |
69 | self.bg = bg |
|
71 | self.bg = bg |
@@ -8,7 +8,7 b' objects imported this way starts with ``i`` to minimize collisions.' | |||||
8 | ``ipipe`` supports "pipeline expressions", which is something resembling Unix |
|
8 | ``ipipe`` supports "pipeline expressions", which is something resembling Unix | |
9 | pipes. An example is:: |
|
9 | pipes. An example is:: | |
10 |
|
10 | |||
11 |
|
|
11 | py> ienv | isort("key.lower()") | |
12 |
|
12 | |||
13 | This gives a listing of all environment variables sorted by name. |
|
13 | This gives a listing of all environment variables sorted by name. | |
14 |
|
14 | |||
@@ -49,31 +49,31 b' three extensions points (all of them optional):' | |||||
49 | makes it possible to use dictionaries and modules in pipeline expressions, |
|
49 | makes it possible to use dictionaries and modules in pipeline expressions, | |
50 | for example:: |
|
50 | for example:: | |
51 |
|
51 | |||
52 |
|
|
52 | py> import sys | |
53 |
|
|
53 | py> sys | ifilter("isinstance(value, int)") | idump | |
54 | key |value |
|
54 | key |value | |
55 | api_version| 1012 |
|
55 | api_version| 1012 | |
56 | dllhandle | 503316480 |
|
56 | dllhandle | 503316480 | |
57 | hexversion | 33817328 |
|
57 | hexversion | 33817328 | |
58 | maxint |2147483647 |
|
58 | maxint |2147483647 | |
59 | maxunicode | 65535 |
|
59 | maxunicode | 65535 | |
60 |
|
|
60 | py> sys.modules | ifilter("_.value is not None") | isort("_.key.lower()") | |
61 | ... |
|
61 | ... | |
62 |
|
62 | |||
63 | Note: The expression strings passed to ``ifilter()`` and ``isort()`` can |
|
63 | Note: The expression strings passed to ``ifilter()`` and ``isort()`` can | |
64 | refer to the object to be filtered or sorted via the variable ``_`` and to any |
|
64 | refer to the object to be filtered or sorted via the variable ``_`` and to any | |
65 | of the attributes of the object, i.e.:: |
|
65 | of the attributes of the object, i.e.:: | |
66 |
|
66 | |||
67 |
|
|
67 | py> sys.modules | ifilter("_.value is not None") | isort("_.key.lower()") | |
68 |
|
68 | |||
69 | does the same as:: |
|
69 | does the same as:: | |
70 |
|
70 | |||
71 |
|
|
71 | py> sys.modules | ifilter("value is not None") | isort("key.lower()") | |
72 |
|
72 | |||
73 | In addition to expression strings, it's possible to pass callables (taking |
|
73 | In addition to expression strings, it's possible to pass callables (taking | |
74 | the object as an argument) to ``ifilter()``, ``isort()`` and ``ieval()``:: |
|
74 | the object as an argument) to ``ifilter()``, ``isort()`` and ``ieval()``:: | |
75 |
|
75 | |||
76 |
|
|
76 | py> sys | ifilter(lambda _:isinstance(_.value, int)) \ | |
77 | ... | ieval(lambda _: (_.key, hex(_.value))) | idump |
|
77 | ... | ieval(lambda _: (_.key, hex(_.value))) | idump | |
78 | 0 |1 |
|
78 | 0 |1 | |
79 | api_version|0x3f4 |
|
79 | api_version|0x3f4 | |
@@ -123,8 +123,7 b' except ImportError:' | |||||
123 | grp = None |
|
123 | grp = None | |
124 |
|
124 | |||
125 | from IPython.external import simplegeneric |
|
125 | from IPython.external import simplegeneric | |
126 |
|
126 | from IPython.external import path | ||
127 | import path |
|
|||
128 |
|
127 | |||
129 | try: |
|
128 | try: | |
130 | from IPython import genutils, generics |
|
129 | from IPython import genutils, generics | |
@@ -1209,9 +1208,9 b' class ils(Table):' | |||||
1209 |
|
1208 | |||
1210 | Examples:: |
|
1209 | Examples:: | |
1211 |
|
1210 | |||
1212 |
|
|
1211 | py> ils | |
1213 |
|
|
1212 | py> ils("/usr/local/lib/python2.4") | |
1214 |
|
|
1213 | py> ils("~") | |
1215 | """ |
|
1214 | """ | |
1216 | def __init__(self, base=os.curdir, dirs=True, files=True): |
|
1215 | def __init__(self, base=os.curdir, dirs=True, files=True): | |
1217 | self.base = os.path.expanduser(base) |
|
1216 | self.base = os.path.expanduser(base) | |
@@ -1247,7 +1246,7 b' class iglob(Table):' | |||||
1247 |
|
1246 | |||
1248 | Examples:: |
|
1247 | Examples:: | |
1249 |
|
1248 | |||
1250 |
|
|
1249 | py> iglob("*.py") | |
1251 | """ |
|
1250 | """ | |
1252 | def __init__(self, glob): |
|
1251 | def __init__(self, glob): | |
1253 | self.glob = glob |
|
1252 | self.glob = glob | |
@@ -1272,9 +1271,9 b' class iwalk(Table):' | |||||
1272 | """ |
|
1271 | """ | |
1273 | List all files and directories in a directory and it's subdirectory:: |
|
1272 | List all files and directories in a directory and it's subdirectory:: | |
1274 |
|
1273 | |||
1275 |
|
|
1274 | py> iwalk | |
1276 |
|
|
1275 | py> iwalk("/usr/local/lib/python2.4") | |
1277 |
|
|
1276 | py> iwalk("~") | |
1278 | """ |
|
1277 | """ | |
1279 | def __init__(self, base=os.curdir, dirs=True, files=True): |
|
1278 | def __init__(self, base=os.curdir, dirs=True, files=True): | |
1280 | self.base = os.path.expanduser(base) |
|
1279 | self.base = os.path.expanduser(base) | |
@@ -1377,7 +1376,7 b' class ipwd(Table):' | |||||
1377 |
|
1376 | |||
1378 | Example:: |
|
1377 | Example:: | |
1379 |
|
1378 | |||
1380 |
|
|
1379 | py> ipwd | isort("uid") | |
1381 | """ |
|
1380 | """ | |
1382 | def __iter__(self): |
|
1381 | def __iter__(self): | |
1383 | for entry in pwd.getpwall(): |
|
1382 | for entry in pwd.getpwall(): | |
@@ -1561,7 +1560,7 b' class ienv(Table):' | |||||
1561 |
|
1560 | |||
1562 | Example:: |
|
1561 | Example:: | |
1563 |
|
1562 | |||
1564 |
|
|
1563 | py> ienv | |
1565 | """ |
|
1564 | """ | |
1566 |
|
1565 | |||
1567 | def __iter__(self): |
|
1566 | def __iter__(self): | |
@@ -1582,8 +1581,8 b' class ihist(Table):' | |||||
1582 |
|
1581 | |||
1583 | Example:: |
|
1582 | Example:: | |
1584 |
|
1583 | |||
1585 |
|
|
1584 | py> ihist | |
1586 |
|
|
1585 | py> ihist(True) (raw mode) | |
1587 | """ |
|
1586 | """ | |
1588 | def __init__(self, raw=True): |
|
1587 | def __init__(self, raw=True): | |
1589 | self.raw = raw |
|
1588 | self.raw = raw | |
@@ -1617,7 +1616,7 b' class ialias(Table):' | |||||
1617 |
|
1616 | |||
1618 | Example:: |
|
1617 | Example:: | |
1619 |
|
1618 | |||
1620 |
|
|
1619 | py> ialias | |
1621 | """ |
|
1620 | """ | |
1622 | def __iter__(self): |
|
1621 | def __iter__(self): | |
1623 | api = ipapi.get() |
|
1622 | api = ipapi.get() | |
@@ -1679,8 +1678,8 b' class ix(Table):' | |||||
1679 |
|
1678 | |||
1680 | Examples:: |
|
1679 | Examples:: | |
1681 |
|
1680 | |||
1682 |
|
|
1681 | py> ix("ps x") | |
1683 |
|
|
1682 | py> ix("find .") | ifile | |
1684 | """ |
|
1683 | """ | |
1685 | def __init__(self, cmd): |
|
1684 | def __init__(self, cmd): | |
1686 | self.cmd = cmd |
|
1685 | self.cmd = cmd | |
@@ -1718,9 +1717,9 b' class ifilter(Pipe):' | |||||
1718 |
|
1717 | |||
1719 | Examples:: |
|
1718 | Examples:: | |
1720 |
|
1719 | |||
1721 |
|
|
1720 | py> ils | ifilter("_.isfile() and size>1000") | |
1722 |
|
|
1721 | py> igrp | ifilter("len(mem)") | |
1723 |
|
|
1722 | py> sys.modules | ifilter(lambda _:_.value is not None) | |
1724 | """ |
|
1723 | """ | |
1725 |
|
1724 | |||
1726 | def __init__(self, expr, globals=None, errors="raiseifallfail"): |
|
1725 | def __init__(self, expr, globals=None, errors="raiseifallfail"): | |
@@ -1810,8 +1809,8 b' class ieval(Pipe):' | |||||
1810 |
|
1809 | |||
1811 | Examples:: |
|
1810 | Examples:: | |
1812 |
|
1811 | |||
1813 |
|
|
1812 | py> ils | ieval("_.abspath()") | |
1814 |
|
|
1813 | py> sys.path | ieval(ifile) | |
1815 | """ |
|
1814 | """ | |
1816 |
|
1815 | |||
1817 | def __init__(self, expr, globals=None, errors="raiseifallfail"): |
|
1816 | def __init__(self, expr, globals=None, errors="raiseifallfail"): | |
@@ -1882,7 +1881,7 b' class ienum(Pipe):' | |||||
1882 |
|
1881 | |||
1883 | Examples:: |
|
1882 | Examples:: | |
1884 |
|
1883 | |||
1885 |
|
|
1884 | py> xrange(20) | ieval("_,_*_") | ienum | ifilter("index % 2 == 0") | ieval("object") | |
1886 | """ |
|
1885 | """ | |
1887 | def __iter__(self): |
|
1886 | def __iter__(self): | |
1888 | fields = ("index", "object") |
|
1887 | fields = ("index", "object") | |
@@ -1896,8 +1895,8 b' class isort(Pipe):' | |||||
1896 |
|
1895 | |||
1897 | Examples:: |
|
1896 | Examples:: | |
1898 |
|
1897 | |||
1899 |
|
|
1898 | py> ils | isort("size") | |
1900 |
|
|
1899 | py> ils | isort("_.isdir(), _.lower()", reverse=True) | |
1901 | """ |
|
1900 | """ | |
1902 |
|
1901 | |||
1903 | def __init__(self, key=None, globals=None, reverse=False): |
|
1902 | def __init__(self, key=None, globals=None, reverse=False): | |
@@ -2054,8 +2053,8 b' class icap(Table):' | |||||
2054 |
|
2053 | |||
2055 | Examples:: |
|
2054 | Examples:: | |
2056 |
|
2055 | |||
2057 |
|
|
2056 | py> import time | |
2058 |
|
|
2057 | py> icap("for i in range(10): print i, time.sleep(0.1)") | |
2059 |
|
2058 | |||
2060 | """ |
|
2059 | """ | |
2061 | def __init__(self, expr, globals=None): |
|
2060 | def __init__(self, expr, globals=None): |
@@ -4,6 +4,7 b' A module to change reload() so that it acts recursively.' | |||||
4 | To enable it type: |
|
4 | To enable it type: | |
5 | >>> import __builtin__, deep_reload |
|
5 | >>> import __builtin__, deep_reload | |
6 | >>> __builtin__.reload = deep_reload.reload |
|
6 | >>> __builtin__.reload = deep_reload.reload | |
|
7 | ||||
7 | You can then disable it with: |
|
8 | You can then disable it with: | |
8 | >>> __builtin__.reload = deep_reload.original_reload |
|
9 | >>> __builtin__.reload = deep_reload.original_reload | |
9 |
|
10 |
@@ -477,11 +477,6 b' class SystemExec:' | |||||
477 |
|
477 | |||
478 | An instance can then be created as: |
|
478 | An instance can then be created as: | |
479 | >>> sysexec = SystemExec(verbose=1,debug=0,header='Calling: ') |
|
479 | >>> sysexec = SystemExec(verbose=1,debug=0,header='Calling: ') | |
480 |
|
||||
481 | And used as: |
|
|||
482 | >>> sysexec.xsys('echo "Hello Python"') |
|
|||
483 | Calling: echo "Hello Python" |
|
|||
484 | Hello Python |
|
|||
485 | """ |
|
480 | """ | |
486 |
|
481 | |||
487 | def __init__(self,verbose=0,debug=0,header='',split=0): |
|
482 | def __init__(self,verbose=0,debug=0,header='',split=0): | |
@@ -685,7 +680,7 b' def optstr2types(ostr):' | |||||
685 |
|
680 | |||
686 | #---------------------------------------------------------------------------- |
|
681 | #---------------------------------------------------------------------------- | |
687 | def read_dict(filename,type_conv=None,**opt): |
|
682 | def read_dict(filename,type_conv=None,**opt): | |
688 | """Read a dictionary of key=value pairs from an input file, optionally |
|
683 | r"""Read a dictionary of key=value pairs from an input file, optionally | |
689 | performing conversions on the resulting values. |
|
684 | performing conversions on the resulting values. | |
690 |
|
685 | |||
691 | read_dict(filename,type_conv,**opt) -> dict |
|
686 | read_dict(filename,type_conv,**opt) -> dict | |
@@ -731,20 +726,33 b' def read_dict(filename,type_conv=None,**opt):' | |||||
731 | to make a list of all appearances. |
|
726 | to make a list of all appearances. | |
732 |
|
727 | |||
733 | Example: |
|
728 | Example: | |
734 | If the input file test.ini has: |
|
|||
735 | i 3 |
|
|||
736 | x 4.5 |
|
|||
737 | y 5.5 |
|
|||
738 | s hi ho |
|
|||
739 | Then: |
|
|||
740 |
|
729 | |||
|
730 | If the input file test.ini contains (we put it in a string to keep the test | |||
|
731 | self-contained): | |||
|
732 | ||||
|
733 | >>> test_ini = '''\ | |||
|
734 | ... i 3 | |||
|
735 | ... x 4.5 | |||
|
736 | ... y 5.5 | |||
|
737 | ... s hi ho''' | |||
|
738 | ||||
|
739 | Then we can use it as follows: | |||
741 | >>> type_conv={int:'i',float:'x',None:'s'} |
|
740 | >>> type_conv={int:'i',float:'x',None:'s'} | |
742 | >>> read_dict('test.ini') |
|
741 | ||
743 | {'i': '3', 's': 'hi ho', 'x': '4.5', 'y': '5.5'} |
|
742 | >>> d = read_dict(test_ini) | |
744 | >>> read_dict('test.ini',type_conv) |
|
743 | ||
745 | {'i': 3, 's': 'hi ho', 'x': 4.5, 'y': '5.5'} |
|
744 | >>> sorted(d.items()) | |
746 | >>> read_dict('test.ini',type_conv,purge=1) |
|
745 | [('i', '3'), ('s', 'hi ho'), ('x', '4.5'), ('y', '5.5')] | |
747 | {'i': 3, 's': 'hi ho', 'x': 4.5} |
|
746 | ||
|
747 | >>> d = read_dict(test_ini,type_conv) | |||
|
748 | ||||
|
749 | >>> sorted(d.items()) | |||
|
750 | [('i', 3), ('s', 'hi ho'), ('x', 4.5), ('y', '5.5')] | |||
|
751 | ||||
|
752 | >>> d = read_dict(test_ini,type_conv,purge=True) | |||
|
753 | ||||
|
754 | >>> sorted(d.items()) | |||
|
755 | [('i', 3), ('s', 'hi ho'), ('x', 4.5)] | |||
748 | """ |
|
756 | """ | |
749 |
|
757 | |||
750 | # starting config |
|
758 | # starting config | |
@@ -762,9 +770,15 b' def read_dict(filename,type_conv=None,**opt):' | |||||
762 | raise ValueError, 'Unique keys must be given as a string, List or Tuple' |
|
770 | raise ValueError, 'Unique keys must be given as a string, List or Tuple' | |
763 |
|
771 | |||
764 | dict = {} |
|
772 | dict = {} | |
|
773 | ||||
765 | # first read in table of values as strings |
|
774 | # first read in table of values as strings | |
|
775 | if '\n' in filename: | |||
|
776 | lines = filename.splitlines() | |||
|
777 | file = None | |||
|
778 | else: | |||
766 | file = open(filename,'r') |
|
779 | file = open(filename,'r') | |
767 |
|
|
780 | lines = file.readlines() | |
|
781 | for line in lines: | |||
768 | line = line.strip() |
|
782 | line = line.strip() | |
769 | if len(line) and line[0]=='#': continue |
|
783 | if len(line) and line[0]=='#': continue | |
770 | if len(line)>0: |
|
784 | if len(line)>0: |
@@ -1007,10 +1007,17 b' class InteractiveShell(object,Magic):' | |||||
1007 |
|
1007 | |||
1008 | Simple usage example: |
|
1008 | Simple usage example: | |
1009 |
|
1009 | |||
1010 |
In [ |
|
1010 | In [7]: x = 'hello' | |
1011 |
|
1011 | |||
1012 |
In [ |
|
1012 | In [8]: x | |
1013 | Out[2]: ['x.ljust', 'x.lower', 'x.lstrip']""" |
|
1013 | Out[8]: 'hello' | |
|
1014 | ||||
|
1015 | In [9]: print x | |||
|
1016 | hello | |||
|
1017 | ||||
|
1018 | In [10]: _ip.IP.complete('x.l') | |||
|
1019 | Out[10]: ['x.ljust', 'x.lower', 'x.lstrip'] | |||
|
1020 | """ | |||
1014 |
|
1021 | |||
1015 | complete = self.Completer.complete |
|
1022 | complete = self.Completer.complete | |
1016 | state = 0 |
|
1023 | state = 0 | |
@@ -1026,6 +1033,8 b' class InteractiveShell(object,Magic):' | |||||
1026 | state += 1 |
|
1033 | state += 1 | |
1027 | outcomps = comps.keys() |
|
1034 | outcomps = comps.keys() | |
1028 | outcomps.sort() |
|
1035 | outcomps.sort() | |
|
1036 | print "T:",text,"OC:",outcomps # dbg | |||
|
1037 | #print "vars:",self.user_ns.keys() | |||
1029 | return outcomps |
|
1038 | return outcomps | |
1030 |
|
1039 | |||
1031 | def set_completer_frame(self, frame=None): |
|
1040 | def set_completer_frame(self, frame=None): | |
@@ -1636,6 +1645,7 b' want to merge them back into the new files.""" % locals()' | |||||
1636 | # previous call (which most likely existed in a separate scope). |
|
1645 | # previous call (which most likely existed in a separate scope). | |
1637 | local_varnames = local_ns.keys() |
|
1646 | local_varnames = local_ns.keys() | |
1638 | self.user_ns.update(local_ns) |
|
1647 | self.user_ns.update(local_ns) | |
|
1648 | #self.user_ns['local_ns'] = local_ns # dbg | |||
1639 |
|
1649 | |||
1640 | # Patch for global embedding to make sure that things don't overwrite |
|
1650 | # Patch for global embedding to make sure that things don't overwrite | |
1641 | # user globals accidentally. Thanks to Richard <rxe@renre-europe.com> |
|
1651 | # user globals accidentally. Thanks to Richard <rxe@renre-europe.com> | |
@@ -2361,7 +2371,6 b' want to merge them back into the new files.""" % locals()' | |||||
2361 | def handle_auto(self, line_info): |
|
2371 | def handle_auto(self, line_info): | |
2362 | """Hande lines which can be auto-executed, quoting if requested.""" |
|
2372 | """Hande lines which can be auto-executed, quoting if requested.""" | |
2363 |
|
2373 | |||
2364 | #print 'pre <%s> iFun <%s> rest <%s>' % (pre,iFun,theRest) # dbg |
|
|||
2365 | line = line_info.line |
|
2374 | line = line_info.line | |
2366 | iFun = line_info.iFun |
|
2375 | iFun = line_info.iFun | |
2367 | theRest = line_info.theRest |
|
2376 | theRest = line_info.theRest | |
@@ -2369,8 +2378,11 b' want to merge them back into the new files.""" % locals()' | |||||
2369 | continue_prompt = line_info.continue_prompt |
|
2378 | continue_prompt = line_info.continue_prompt | |
2370 | obj = line_info.ofind(self)['obj'] |
|
2379 | obj = line_info.ofind(self)['obj'] | |
2371 |
|
2380 | |||
|
2381 | #print 'pre <%s> iFun <%s> rest <%s>' % (pre,iFun,theRest) # dbg | |||
|
2382 | ||||
2372 | # This should only be active for single-line input! |
|
2383 | # This should only be active for single-line input! | |
2373 | if continue_prompt: |
|
2384 | if continue_prompt: | |
|
2385 | print 'getting out!' # dbg | |||
2374 | self.log(line,line,continue_prompt) |
|
2386 | self.log(line,line,continue_prompt) | |
2375 | return line |
|
2387 | return line | |
2376 |
|
2388 |
@@ -89,7 +89,7 b' class Struct:' | |||||
89 | accessed using the dictionary syntax. Again, an example: |
|
89 | accessed using the dictionary syntax. Again, an example: | |
90 |
|
90 | |||
91 | This doesn't work: |
|
91 | This doesn't work: | |
92 |
|
|
92 | py> s=Struct(4='hi') #doctest: +IGNORE_EXCEPTION_DETAIL | |
93 | Traceback (most recent call last): |
|
93 | Traceback (most recent call last): | |
94 | ... |
|
94 | ... | |
95 | SyntaxError: keyword can't be an expression |
|
95 | SyntaxError: keyword can't be an expression |
@@ -172,7 +172,13 b" if __name__ == '__main__':" | |||||
172 | # A comment |
|
172 | # A comment | |
173 | remote() # this means the code below only runs remotely |
|
173 | remote() # this means the code below only runs remotely | |
174 | print 'Hello remote world' |
|
174 | print 'Hello remote world' | |
175 |
x = |
|
175 | x = range(10) | |
176 | # Comments are OK |
|
176 | # Comments are OK | |
177 | # Even misindented. |
|
177 | # Even misindented. | |
178 | y = x+1 |
|
178 | y = x+1 | |
|
179 | ||||
|
180 | ||||
|
181 | with pfor('i',sequence) as pr: | |||
|
182 | print x[i] | |||
|
183 | ||||
|
184 | print pr.x + pr.y |
1 | NO CONTENT: file renamed from IPython/testing/attic/parametric.py to IPython/testing/parametric.py |
|
NO CONTENT: file renamed from IPython/testing/attic/parametric.py to IPython/testing/parametric.py |
@@ -12,6 +12,10 b' deb: plugin dtexample.py' | |||||
12 | nosetests -vs --with-ipdoctest --doctest-tests --doctest-extension=txt \ |
|
12 | nosetests -vs --with-ipdoctest --doctest-tests --doctest-extension=txt \ | |
13 | test_combo.txt |
|
13 | test_combo.txt | |
14 |
|
14 | |||
|
15 | iptest: plugin | |||
|
16 | nosetests -vs --with-ipdoctest --doctest-tests --doctest-extension=txt \ | |||
|
17 | IPython | |||
|
18 | ||||
15 | IPython_doctest_plugin.egg-info: ipdoctest.py setup.py |
|
19 | IPython_doctest_plugin.egg-info: ipdoctest.py setup.py | |
16 | python setup.py install --prefix=$(PREFIX) |
|
20 | python setup.py install --prefix=$(PREFIX) | |
17 | touch $@ |
|
21 | touch $@ |
@@ -298,9 +298,9 b' class IPDocTestParser(doctest.DocTestParser):' | |||||
298 | """Convert input IPython source into valid Python.""" |
|
298 | """Convert input IPython source into valid Python.""" | |
299 | out = [] |
|
299 | out = [] | |
300 | newline = out.append |
|
300 | newline = out.append | |
301 | for line in source.splitlines(): |
|
301 | for lnum,line in enumerate(source.splitlines()): | |
302 | #newline(_ip.IPipython.prefilter(line,True)) |
|
302 | #newline(_ip.IPipython.prefilter(line,True)) | |
303 |
newline(_ip.IP.prefilter(line, |
|
303 | newline(_ip.IP.prefilter(line,lnum>0)) | |
304 | newline('') # ensure a closing newline, needed by doctest |
|
304 | newline('') # ensure a closing newline, needed by doctest | |
305 | return '\n'.join(out) |
|
305 | return '\n'.join(out) | |
306 |
|
306 | |||
@@ -538,6 +538,20 b' class ExtensionDoctest(doctests.Doctest):' | |||||
538 | """ |
|
538 | """ | |
539 | #print 'Filename:',filename # dbg |
|
539 | #print 'Filename:',filename # dbg | |
540 |
|
540 | |||
|
541 | # temporarily hardcoded list, will move to driver later | |||
|
542 | exclude = ['IPython/external/', | |||
|
543 | 'IPython/Extensions/ipy_', | |||
|
544 | 'IPython/platutils_win32', | |||
|
545 | 'IPython/frontend/cocoa', | |||
|
546 | 'IPython_doctest_plugin', | |||
|
547 | 'IPython/Gnuplot', | |||
|
548 | 'IPython/Extensions/PhysicalQIn'] | |||
|
549 | ||||
|
550 | for fex in exclude: | |||
|
551 | if fex in filename: # substring | |||
|
552 | #print '###>>> SKIP:',filename # dbg | |||
|
553 | return False | |||
|
554 | ||||
541 | if is_extension_module(filename): |
|
555 | if is_extension_module(filename): | |
542 | return True |
|
556 | return True | |
543 | else: |
|
557 | else: |
General Comments 0
You need to be logged in to leave comments.
Login now