MCPcopy Create free account
hub / github.com/ipython/ipython / AliasManager

Class AliasManager

IPython/core/alias.py:192–258  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

190#-----------------------------------------------------------------------------
191
192class AliasManager(Configurable):
193
194 default_aliases = List(default_aliases()).tag(config=True)
195 user_aliases = List(default_value=[]).tag(config=True)
196 shell = Instance('IPython.core.interactiveshell.InteractiveShellABC', allow_none=True)
197
198 def __init__(self, shell=None, **kwargs):
199 super(AliasManager, self).__init__(shell=shell, **kwargs)
200 # For convenient access
201 self.linemagics = self.shell.magics_manager.magics['line']
202 self.init_aliases()
203
204 def init_aliases(self):
205 # Load default & user aliases
206 for name, cmd in self.default_aliases + self.user_aliases:
207 if cmd.startswith('ls ') and self.shell.colors == 'NoColor':
208 cmd = cmd.replace(' --color', '')
209 self.soft_define_alias(name, cmd)
210
211 @property
212 def aliases(self):
213 return [(n, func.cmd) for (n, func) in self.linemagics.items()
214 if isinstance(func, Alias)]
215
216 def soft_define_alias(self, name, cmd):
217 """Define an alias, but don't raise on an AliasError."""
218 try:
219 self.define_alias(name, cmd)
220 except AliasError as e:
221 error("Invalid alias: %s" % e)
222
223 def define_alias(self, name, cmd):
224 """Define a new alias after validating it.
225
226 This will raise an :exc:`AliasError` if there are validation
227 problems.
228 """
229 caller = Alias(shell=self.shell, name=name, cmd=cmd)
230 self.shell.magics_manager.register_function(caller, magic_kind='line',
231 magic_name=name)
232
233 def get_alias(self, name):
234 """Return an alias, or None if no alias by that name exists."""
235 aname = self.linemagics.get(name, None)
236 return aname if isinstance(aname, Alias) else None
237
238 def is_alias(self, name):
239 """Return whether or not a given name has been defined as an alias"""
240 return self.get_alias(name) is not None
241
242 def undefine_alias(self, name):
243 if self.is_alias(name):
244 del self.linemagics[name]
245 else:
246 raise ValueError('%s is not an alias' % name)
247
248 def clear_aliases(self):
249 for name, cmd in self.aliases:

Callers 1

init_aliasMethod · 0.90

Calls 1

default_aliasesFunction · 0.85

Tested by

no test coverage detected