Ask Your Question
2

Can I alias a sage command?

asked 2015-08-31 20:42:56 +0100

rexroni gravatar image

updated 2015-08-31 21:19:07 +0100

If I type alias, I get a list of aliases, but they all look very "bashy", and not like sage commands. Can I set an alias for a sage command? Like alias 'meh'='load("meh.sage")'?

I have looked on this site, the "SAGE for newbies" document I found by Ted Kosan, doc.sagemath.org, and the general web, and I haven't found any documentation on aliases in sage.

When I run that, I get the following output:

sage: alias 'meh'='load("meh.sage")'
---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
<ipython-input-118-7d3257e61ed9> in <module>()
----> 1 get_ipython().magic(u'alias \'meh\'=\'load("meh.sage")\'')

/usr/lib/sagemath/local/lib/python2.7/site-packages/IPython/core/interactiveshell.pyc in magic(self, arg_s)
   2302         magic_name, _, magic_arg_s = arg_s.partition(' ')
   2303         magic_name = magic_name.lstrip(prefilter.ESC_MAGIC)
-> 2304         return self.run_line_magic(magic_name, magic_arg_s)
   2305 
   2306     #-------------------------------------------------------------------------

/usr/lib/sagemath/local/lib/python2.7/site-packages/IPython/core/interactiveshell.pyc in run_line_magic(self, magic_name, line)
   2223                 kwargs['local_ns'] = sys._getframe(stack_depth).f_locals
   2224             with self.builtin_trap:
-> 2225                 result = fn(*args,**kwargs)
   2226             return result
   2227 

/usr/lib/sagemath/local/lib/python2.7/site-packages/IPython/core/magics/osm.pyc in alias(self, parameter_s)

/usr/lib/sagemath/local/lib/python2.7/site-packages/IPython/core/magic.pyc in <lambda>(f, *a, **k)
    191     # but it's overkill for just that one bit of state.
    192     def magic_deco(arg):
--> 193         call = lambda f, *a, **k: f(*a, **k)
    194 
    195         if callable(arg):

/usr/lib/sagemath/local/lib/python2.7/site-packages/IPython/core/magics/osm.pyc in alias(self, parameter_s)
    117         # Now try to define a new one
    118         try:
--> 119             alias,cmd = par.split(None, 1)
    120         except TypeError:
    121             print(oinspect.getdoc(self.alias))

ValueError: need more than 1 value to unpack
edit retag flag offensive close merge delete

3 Answers

Sort by ยป oldest newest most voted
3

answered 2015-09-11 05:59:10 +0100

nbruin gravatar image

"alias" is an IPython feature. The sage command line is IPython with some customizations. See http://ipython.org/ipython-doc/2/inte... for documentation.

edit flag offensive delete link more

Comments

Ah, thank you. That was the second half of the answer I was looking for. When I have 15 rep someday I'll come back and upvote your comment.

rexroni gravatar imagerexroni ( 2015-09-13 17:07:34 +0100 )edit
3

answered 2015-08-31 21:51:28 +0100

eric_g gravatar image

Hi,

The easiest way is to define a Python function:

sage: def meh():
....:     load("meh.sage")
....:     
sage: meh()  # executes load("meh.sage")

Best wishes,

Eric.

edit flag offensive delete link more

Comments

Ok, I did know about that, but I figured there must be a way to use the aliases, since aliases exist. Any insight into the aliasing then, if it isn't useful for sage commands?

rexroni gravatar imagerexroni ( 2015-09-02 19:42:08 +0100 )edit
-2

answered 2018-12-17 09:18:25 +0100

florin gravatar image

Sorry, I'm missing some syntax. I tried

def LP():
    alias 'LP'='MixedIntegerLinearProgram'
    load("LP.sage")

gets the error

File "<ipython-input-4-fc93b025772b>", line 2
    alias 'LP'='MixedIntegerLinearProgram'
             ^
SyntaxError: invalid syntax
edit flag offensive delete link more

Comments

As explained by @nbruin, alias is not a proper Python command, so you cannot use it while defining a Python function with def. In your case, some correct syntax similar to what you wrote would be

def LP():
    lp = 'MixedIntegerLinearProgram'
    load(lp + '.sage')
eric_g gravatar imageeric_g ( 2018-12-18 02:23:26 +0100 )edit

Your Answer

Please start posting anonymously - your entry will be published after you log in or create a new account.

Add Answer

Question Tools

1 follower

Stats

Asked: 2015-08-31 20:42:56 +0100

Seen: 1,090 times

Last updated: Dec 17 '18