On Monday, April 22, 2019 at 11:03:48 AM UTC-7, slelievre wrote:
>
> Having defined
>
>     sage: x = SR.var('x', 20)
>     sage: a = [x[11], x[8], x[10], x[9]]
>
> sorting by repr or by str is disappointing:
>
>     sage: sorted(a, key=repr)
>     [x10, x11, x8, x9]
>
>     sage: sorted(a, key=str)
>     [x10, x11, x8, x9]
>
> As Dima suggests, one can
>
>     ./sage --pip install natsort 
>
> and then
>
>     sage: from natsort import natsorted 
>     sage: natsorted(a)
>     [x8, x9, x10, x11]
>
> Without any pip install, one can alternatively use `LooseVersion`:
>
>     sage: from distutils.version import LooseVersion
>
>     sage: sorted(a, key=lambda z: LooseVersion(str(z)))
>     [x8, x9, x10, x11]
>
> Note: "./sage --pip install" requires Python's OpenSSL module to be built.
> If it was not built, install OpenSSL,
>

Alternatively, you should be able to download a tar.gz file from 
https://pypi.org/project/natsort/#files, and then do

  ./sage --pip install /path/to/natsort-6.0.0.tar.gz


 

>
> - either system-wide with a package manager, for example
>   under Debian or Ubuntu do
>
>       sudo apt-get install openssl libssl-dev
>
> - or just for your Sage installation by running in a terminal
>   from the Sage root directory:
>
>     sage -i openssl
>     sage -i pyopenssl
>
> Once OpenSSL is installed by one of the above methods,
> Sage's Python needs to be rebuilt by running the following
> in a terminal from the Sage root directory
>
>     sage -f python2 && sage -f python3 && make
>
> Note also, if x and a were defined as above:
>
>     sage: x = SR.var('x', 20)
>     sage: a = [x[11], x[8], x[10], x[9]]
>
> then without any pip install or any import, one could also do:
>
>     sage: sorted(a, key=lambda z: x.index(z))
>     [x8, x9, x10, x11]
>
>

-- 
You received this message because you are subscribed to the Google Groups 
"sage-support" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-support+unsubscr...@googlegroups.com.
To post to this group, send email to sage-support@googlegroups.com.
Visit this group at https://groups.google.com/group/sage-support.
For more options, visit https://groups.google.com/d/optout.

Reply via email to