Coverage for /pythoncovmergedfiles/medio/medio/usr/local/lib/python3.8/site-packages/IPython/core/autocall.py: 69%

16 statements  

« prev     ^ index     » next       coverage.py v7.4.4, created at 2024-04-20 06:09 +0000

1# encoding: utf-8 

2""" 

3Autocall capabilities for IPython.core. 

4 

5Authors: 

6 

7* Brian Granger 

8* Fernando Perez 

9* Thomas Kluyver 

10 

11Notes 

12----- 

13""" 

14 

15#----------------------------------------------------------------------------- 

16# Copyright (C) 2008-2011 The IPython Development Team 

17# 

18# Distributed under the terms of the BSD License. The full license is in 

19# the file COPYING, distributed as part of this software. 

20#----------------------------------------------------------------------------- 

21 

22#----------------------------------------------------------------------------- 

23# Imports 

24#----------------------------------------------------------------------------- 

25 

26 

27#----------------------------------------------------------------------------- 

28# Code 

29#----------------------------------------------------------------------------- 

30 

31class IPyAutocall(object): 

32 """ Instances of this class are always autocalled 

33  

34 This happens regardless of 'autocall' variable state. Use this to 

35 develop macro-like mechanisms. 

36 """ 

37 _ip = None 

38 rewrite = True 

39 def __init__(self, ip=None): 

40 self._ip = ip 

41 

42 def set_ip(self, ip): 

43 """Will be used to set _ip point to current ipython instance b/f call 

44 

45 Override this method if you don't want this to happen. 

46 

47 """ 

48 self._ip = ip 

49 

50 

51class ExitAutocall(IPyAutocall): 

52 """An autocallable object which will be added to the user namespace so that 

53 exit, exit(), quit or quit() are all valid ways to close the shell.""" 

54 rewrite = False 

55 

56 def __call__(self): 

57 self._ip.ask_exit() 

58 

59class ZMQExitAutocall(ExitAutocall): 

60 """Exit IPython. Autocallable, so it needn't be explicitly called. 

61  

62 Parameters 

63 ---------- 

64 keep_kernel : bool 

65 If True, leave the kernel alive. Otherwise, tell the kernel to exit too 

66 (default). 

67 """ 

68 def __call__(self, keep_kernel=False): 

69 self._ip.keepkernel_on_exit = keep_kernel 

70 self._ip.ask_exit()