Show More
@@ -38,7 +38,7 b' from IPython.utils.warn import error, warn' | |||
|
38 | 38 | |
|
39 | 39 | # A dict we'll use for each class that has magics, used as temporary storage to |
|
40 | 40 | # pass information between the @line/cell_magic method decorators and the |
|
41 |
# @ |
|
|
41 | # @magics_class class decorator, because the method decorators have no | |
|
42 | 42 | # access to the class when they run. See for more details: |
|
43 | 43 | # http://stackoverflow.com/questions/2366713/can-a-python-decorator-of-an-instance-method-access-the-class |
|
44 | 44 | |
@@ -82,7 +82,7 b' def needs_local_scope(func):' | |||
|
82 | 82 | # Class and method decorators for registering magics |
|
83 | 83 | #----------------------------------------------------------------------------- |
|
84 | 84 | |
|
85 |
def |
|
|
85 | def magics_class(cls): | |
|
86 | 86 | cls.registered = True |
|
87 | 87 | cls.magics = dict(line = magics['line'], |
|
88 | 88 | cell = magics['cell']) |
@@ -294,7 +294,7 b' class Magics(object):' | |||
|
294 | 294 | - Use the method decorators `@line_magic` and `@cell_magic` to decorate |
|
295 | 295 | individual methods as magic functions, AND |
|
296 | 296 | |
|
297 |
- Use the class decorator `@ |
|
|
297 | - Use the class decorator `@magics_class` to ensure that the magic | |
|
298 | 298 | methods are properly registered at the instance level upon instance |
|
299 | 299 | initialization. |
|
300 | 300 | |
@@ -312,7 +312,7 b' class Magics(object):' | |||
|
312 | 312 | def __init__(self, shell): |
|
313 | 313 | if not(self.__class__.registered): |
|
314 | 314 | raise ValueError('Magics subclass without registration - ' |
|
315 |
'did you forget to apply @ |
|
|
315 | 'did you forget to apply @magics_class?') | |
|
316 | 316 | self.shell = shell |
|
317 | 317 | self.options_table = {} |
|
318 | 318 | # The method decorators are run when the instance doesn't exist yet, so |
@@ -12,7 +12,7 b'' | |||
|
12 | 12 | # Imports |
|
13 | 13 | #----------------------------------------------------------------------------- |
|
14 | 14 | |
|
15 |
from ..magic import Magics, |
|
|
15 | from ..magic import Magics, magics_class | |
|
16 | 16 | from .auto import AutoMagics |
|
17 | 17 | from .basic import BasicMagics |
|
18 | 18 | from .code import CodeMagics, MacroToEdit |
@@ -30,7 +30,7 b' from .pylab import PylabMagics' | |||
|
30 | 30 | # Magic implementation classes |
|
31 | 31 | #----------------------------------------------------------------------------- |
|
32 | 32 | |
|
33 | @register_magics | |
|
33 | @magics_class | |
|
34 | 34 | class UserMagics(Magics): |
|
35 | 35 | """Placeholder for user-defined magics to be added at runtime. |
|
36 | 36 |
@@ -13,7 +13,7 b'' | |||
|
13 | 13 | #----------------------------------------------------------------------------- |
|
14 | 14 | |
|
15 | 15 | # Our own packages |
|
16 |
from IPython.core.magic import Bunch, Magics, |
|
|
16 | from IPython.core.magic import Bunch, Magics, magics_class, line_magic | |
|
17 | 17 | from IPython.testing.skipdoctest import skip_doctest |
|
18 | 18 | from IPython.utils.warn import error |
|
19 | 19 | |
@@ -21,7 +21,7 b' from IPython.utils.warn import error' | |||
|
21 | 21 | # Magic implementation classes |
|
22 | 22 | #----------------------------------------------------------------------------- |
|
23 | 23 | |
|
24 | @register_magics | |
|
24 | @magics_class | |
|
25 | 25 | class AutoMagics(Magics): |
|
26 | 26 | """Magics that control various autoX behaviors.""" |
|
27 | 27 |
@@ -20,7 +20,7 b' from pprint import pformat' | |||
|
20 | 20 | |
|
21 | 21 | # Our own packages |
|
22 | 22 | from IPython.core.error import UsageError |
|
23 |
from IPython.core.magic import Magics, |
|
|
23 | from IPython.core.magic import Magics, magics_class, line_magic | |
|
24 | 24 | from IPython.core.prefilter import ESC_MAGIC |
|
25 | 25 | from IPython.utils.text import format_screen |
|
26 | 26 | from IPython.core import magic_arguments, page |
@@ -33,7 +33,7 b' from IPython.utils.warn import warn, error' | |||
|
33 | 33 | # Magics class implementation |
|
34 | 34 | #----------------------------------------------------------------------------- |
|
35 | 35 | |
|
36 | @register_magics | |
|
36 | @magics_class | |
|
37 | 37 | class BasicMagics(Magics): |
|
38 | 38 | """Magics that provide central IPython functionality. |
|
39 | 39 |
@@ -23,7 +23,7 b' from urllib2 import urlopen' | |||
|
23 | 23 | # Our own packages |
|
24 | 24 | from IPython.core.error import TryNext |
|
25 | 25 | from IPython.core.macro import Macro |
|
26 |
from IPython.core.magic import Magics, |
|
|
26 | from IPython.core.magic import Magics, magics_class, line_magic | |
|
27 | 27 | from IPython.testing.skipdoctest import skip_doctest |
|
28 | 28 | from IPython.utils import openpy |
|
29 | 29 | from IPython.utils import py3compat |
@@ -39,7 +39,7 b' from IPython.utils.warn import warn' | |||
|
39 | 39 | class MacroToEdit(ValueError): pass |
|
40 | 40 | |
|
41 | 41 | |
|
42 | @register_magics | |
|
42 | @magics_class | |
|
43 | 43 | class CodeMagics(Magics): |
|
44 | 44 | """Magics related to code management (loading, saving, editing, ...).""" |
|
45 | 45 |
@@ -17,14 +17,14 b' import re' | |||
|
17 | 17 | |
|
18 | 18 | # Our own packages |
|
19 | 19 | from IPython.core.error import UsageError |
|
20 |
from IPython.core.magic import Magics, |
|
|
20 | from IPython.core.magic import Magics, magics_class, line_magic | |
|
21 | 21 | from IPython.utils.warn import error |
|
22 | 22 | |
|
23 | 23 | #----------------------------------------------------------------------------- |
|
24 | 24 | # Magic implementation classes |
|
25 | 25 | #----------------------------------------------------------------------------- |
|
26 | 26 | |
|
27 | @register_magics | |
|
27 | @magics_class | |
|
28 | 28 | class ConfigMagics(Magics): |
|
29 | 29 | |
|
30 | 30 | def __init__(self, shell): |
@@ -13,13 +13,13 b'' | |||
|
13 | 13 | #----------------------------------------------------------------------------- |
|
14 | 14 | |
|
15 | 15 | # Our own packages |
|
16 |
from IPython.core.magic import Magics, |
|
|
16 | from IPython.core.magic import Magics, magics_class, line_magic | |
|
17 | 17 | |
|
18 | 18 | #----------------------------------------------------------------------------- |
|
19 | 19 | # Magic implementation classes |
|
20 | 20 | #----------------------------------------------------------------------------- |
|
21 | 21 | |
|
22 | @register_magics | |
|
22 | @magics_class | |
|
23 | 23 | class DeprecatedMagics(Magics): |
|
24 | 24 | """Magics slated for later removal.""" |
|
25 | 25 |
@@ -36,7 +36,7 b' from IPython.core import debugger, oinspect' | |||
|
36 | 36 | from IPython.core import page |
|
37 | 37 | from IPython.core.error import UsageError |
|
38 | 38 | from IPython.core.macro import Macro |
|
39 |
from IPython.core.magic import (Magics, |
|
|
39 | from IPython.core.magic import (Magics, magics_class, line_magic, | |
|
40 | 40 | on_off, needs_local_scope) |
|
41 | 41 | from IPython.testing.skipdoctest import skip_doctest |
|
42 | 42 | from IPython.utils import py3compat |
@@ -50,7 +50,7 b' from IPython.utils.warn import warn, error' | |||
|
50 | 50 | # Magic implementation classes |
|
51 | 51 | #----------------------------------------------------------------------------- |
|
52 | 52 | |
|
53 | @register_magics | |
|
53 | @magics_class | |
|
54 | 54 | class ExecutionMagics(Magics): |
|
55 | 55 | """Magics related to code execution, debugging, profiling, etc. |
|
56 | 56 |
@@ -16,13 +16,13 b'' | |||
|
16 | 16 | import os |
|
17 | 17 | |
|
18 | 18 | # Our own packages |
|
19 |
from IPython.core.magic import Magics, |
|
|
19 | from IPython.core.magic import Magics, magics_class, line_magic | |
|
20 | 20 | |
|
21 | 21 | #----------------------------------------------------------------------------- |
|
22 | 22 | # Magic implementation classes |
|
23 | 23 | #----------------------------------------------------------------------------- |
|
24 | 24 | |
|
25 | @register_magics | |
|
25 | @magics_class | |
|
26 | 26 | class ExtensionMagics(Magics): |
|
27 | 27 | """Magics to manage the IPython extensions system.""" |
|
28 | 28 |
@@ -19,7 +19,7 b' from io import open as io_open' | |||
|
19 | 19 | |
|
20 | 20 | # Our own packages |
|
21 | 21 | from IPython.core.error import StdinNotImplementedError |
|
22 |
from IPython.core.magic import Magics, |
|
|
22 | from IPython.core.magic import Magics, magics_class, line_magic | |
|
23 | 23 | from IPython.testing.skipdoctest import skip_doctest |
|
24 | 24 | from IPython.utils import io |
|
25 | 25 | |
@@ -27,7 +27,7 b' from IPython.utils import io' | |||
|
27 | 27 | # Magics class implementation |
|
28 | 28 | #----------------------------------------------------------------------------- |
|
29 | 29 | |
|
30 | @register_magics | |
|
30 | @magics_class | |
|
31 | 31 | class HistoryMagics(Magics): |
|
32 | 32 | |
|
33 | 33 | @skip_doctest |
@@ -17,14 +17,14 b' import os' | |||
|
17 | 17 | import sys |
|
18 | 18 | |
|
19 | 19 | # Our own packages |
|
20 |
from IPython.core.magic import Magics, |
|
|
20 | from IPython.core.magic import Magics, magics_class, line_magic | |
|
21 | 21 | from IPython.utils.warn import warn |
|
22 | 22 | |
|
23 | 23 | #----------------------------------------------------------------------------- |
|
24 | 24 | # Magic implementation classes |
|
25 | 25 | #----------------------------------------------------------------------------- |
|
26 | 26 | |
|
27 | @register_magics | |
|
27 | @magics_class | |
|
28 | 28 | class LoggingMagics(Magics): |
|
29 | 29 | """Magics related to all logging machinery.""" |
|
30 | 30 |
@@ -20,7 +20,7 b' import sys' | |||
|
20 | 20 | # Our own packages |
|
21 | 21 | from IPython.core import page |
|
22 | 22 | from IPython.core.error import StdinNotImplementedError |
|
23 |
from IPython.core.magic import Magics, |
|
|
23 | from IPython.core.magic import Magics, magics_class, line_magic | |
|
24 | 24 | from IPython.testing.skipdoctest import skip_doctest |
|
25 | 25 | from IPython.utils.encoding import DEFAULT_ENCODING |
|
26 | 26 | from IPython.utils.path import get_py_filename |
@@ -29,7 +29,7 b' from IPython.utils.path import get_py_filename' | |||
|
29 | 29 | # Magic implementation classes |
|
30 | 30 | #----------------------------------------------------------------------------- |
|
31 | 31 | |
|
32 | @register_magics | |
|
32 | @magics_class | |
|
33 | 33 | class NamespaceMagics(Magics): |
|
34 | 34 | """Magics to manage various aspects of the user's namespace. |
|
35 | 35 |
@@ -25,7 +25,7 b' from pprint import pformat' | |||
|
25 | 25 | from IPython.core import oinspect |
|
26 | 26 | from IPython.core import page |
|
27 | 27 | from IPython.core.error import UsageError |
|
28 |
from IPython.core.magic import (Magics, compress_dhist, |
|
|
28 | from IPython.core.magic import (Magics, compress_dhist, magics_class, | |
|
29 | 29 | line_magic) |
|
30 | 30 | from IPython.testing.skipdoctest import skip_doctest |
|
31 | 31 | from IPython.utils.io import file_read, nlprint |
@@ -35,7 +35,7 b' from IPython.utils.terminal import set_term_title' | |||
|
35 | 35 | #----------------------------------------------------------------------------- |
|
36 | 36 | # Magic implementation classes |
|
37 | 37 | #----------------------------------------------------------------------------- |
|
38 | @register_magics | |
|
38 | @magics_class | |
|
39 | 39 | class OSMagics(Magics): |
|
40 | 40 | """Magics to interact with the underlying OS (shell-type functionality). |
|
41 | 41 | """ |
@@ -14,14 +14,14 b'' | |||
|
14 | 14 | |
|
15 | 15 | # Our own packages |
|
16 | 16 | from IPython.config.application import Application |
|
17 |
from IPython.core.magic import Magics, |
|
|
17 | from IPython.core.magic import Magics, magics_class, line_magic | |
|
18 | 18 | from IPython.testing.skipdoctest import skip_doctest |
|
19 | 19 | |
|
20 | 20 | #----------------------------------------------------------------------------- |
|
21 | 21 | # Magic implementation classes |
|
22 | 22 | #----------------------------------------------------------------------------- |
|
23 | 23 | |
|
24 | @register_magics | |
|
24 | @magics_class | |
|
25 | 25 | class PylabMagics(Magics): |
|
26 | 26 | """Magics related to matplotlib's pylab support""" |
|
27 | 27 |
@@ -29,7 +29,7 b' from IPython.utils.tempdir import TemporaryDirectory' | |||
|
29 | 29 | # Test functions begin |
|
30 | 30 | #----------------------------------------------------------------------------- |
|
31 | 31 | |
|
32 |
@magic. |
|
|
32 | @magic.magics_class | |
|
33 | 33 | class DummyMagics(magic.Magics): pass |
|
34 | 34 | |
|
35 | 35 | def test_rehashx(): |
@@ -406,10 +406,10 b' def superreload(module, reload=reload, old_objects={}):' | |||
|
406 | 406 | #------------------------------------------------------------------------------ |
|
407 | 407 | |
|
408 | 408 | from IPython.core.hooks import TryNext |
|
409 |
from IPython.core.magic import Magics, |
|
|
409 | from IPython.core.magic import Magics, magics_class, line_magic | |
|
410 | 410 | from IPython.core.plugin import Plugin |
|
411 | 411 | |
|
412 | @register_magics | |
|
412 | @magics_class | |
|
413 | 413 | class AutoreloadMagics(Magics): |
|
414 | 414 | def __init__(self, *a, **kw): |
|
415 | 415 | super(AutoreloadMagics, self).__init__(*a, **kw) |
@@ -37,7 +37,7 b' Usage' | |||
|
37 | 37 | import ast |
|
38 | 38 | import re |
|
39 | 39 | |
|
40 |
from IPython.core.magic import Magics, |
|
|
40 | from IPython.core.magic import Magics, magics_class, line_magic | |
|
41 | 41 | from IPython.testing.skipdoctest import skip_doctest |
|
42 | 42 | |
|
43 | 43 | #----------------------------------------------------------------------------- |
@@ -49,7 +49,7 b' Use activate() on a DirectView object to activate it for magics.' | |||
|
49 | 49 | """ |
|
50 | 50 | |
|
51 | 51 | |
|
52 | @register_magics | |
|
52 | @magics_class | |
|
53 | 53 | class ParallelMagics(Magics): |
|
54 | 54 | """A set of magics useful when controlling a parallel IPython cluster. |
|
55 | 55 | """ |
@@ -14,7 +14,7 b' import inspect, os, sys, textwrap' | |||
|
14 | 14 | |
|
15 | 15 | from IPython.core.error import UsageError |
|
16 | 16 | from IPython.core.fakemodule import FakeModule |
|
17 |
from IPython.core.magic import Magics, |
|
|
17 | from IPython.core.magic import Magics, magics_class, line_magic | |
|
18 | 18 | from IPython.core.plugin import Plugin |
|
19 | 19 | from IPython.testing.skipdoctest import skip_doctest |
|
20 | 20 | from IPython.utils.traitlets import Bool, Instance |
@@ -53,7 +53,7 b' def restore_data(ip):' | |||
|
53 | 53 | restore_dhist(ip) |
|
54 | 54 | |
|
55 | 55 | |
|
56 | @register_magics | |
|
56 | @magics_class | |
|
57 | 57 | class StoreMagics(Magics): |
|
58 | 58 | """Lightweight persistence for python variables. |
|
59 | 59 |
@@ -29,7 +29,7 b' from contextlib import nested' | |||
|
29 | 29 | import warnings |
|
30 | 30 | |
|
31 | 31 | from IPython.core import ultratb |
|
32 |
from IPython.core.magic import Magics, |
|
|
32 | from IPython.core.magic import Magics, magics_class, line_magic | |
|
33 | 33 | from IPython.frontend.terminal.interactiveshell import TerminalInteractiveShell |
|
34 | 34 | from IPython.frontend.terminal.ipapp import load_default_config |
|
35 | 35 | |
@@ -42,7 +42,7 b' from IPython.utils.io import ask_yes_no' | |||
|
42 | 42 | #----------------------------------------------------------------------------- |
|
43 | 43 | |
|
44 | 44 | # This is an additional magic that is exposed in embedded shells. |
|
45 | @register_magics | |
|
45 | @magics_class | |
|
46 | 46 | class EmbeddedMagics(Magics): |
|
47 | 47 | |
|
48 | 48 | @line_magic |
@@ -25,7 +25,7 b' from contextlib import nested' | |||
|
25 | 25 | from IPython.core.error import TryNext, UsageError |
|
26 | 26 | from IPython.core.usage import interactive_usage, default_banner |
|
27 | 27 | from IPython.core.interactiveshell import InteractiveShell, InteractiveShellABC |
|
28 |
from IPython.core.magic import Magics, |
|
|
28 | from IPython.core.magic import Magics, magics_class, line_magic | |
|
29 | 29 | from IPython.testing.skipdoctest import skip_doctest |
|
30 | 30 | from IPython.utils.encoding import get_stream_enc |
|
31 | 31 | from IPython.utils import py3compat |
@@ -120,7 +120,7 b" def rerun_pasted(shell, name='pasted_block'):" | |||
|
120 | 120 | # Terminal-specific magics |
|
121 | 121 | #------------------------------------------------------------------------ |
|
122 | 122 | |
|
123 | @register_magics | |
|
123 | @magics_class | |
|
124 | 124 | class TerminalMagics(Magics): |
|
125 | 125 | |
|
126 | 126 | @line_magic |
General Comments 0
You need to be logged in to leave comments.
Login now