Welcome!
This is the community forum for my apps Pythonista and Editorial.
For individual support questions, you can also send an email. If you have a very short question or just want to say hello — I'm @olemoritz on Twitter.
Python 3.x Progress Update
-
This is great news!
-
That's awesome! I'll definitely get that version as well, as I'll just switch to it asap :P
-
Great news @omz, can you share a link for beta signup?
-
@omz said:
I expect that I'll have the first beta ready within the next week or so, hopefully without some of the limitations I've listed above. I'll post a new beta signup form here when I'm ready.
-
Awesome. Now I'm going to have to change
print "something"
statements in my scripts for months to come as I run them only to find my lazy ass didn't use
print("something")
But seriously I'm glad Pythonista is moving forward as it's probably for the best. Now when will OS X ship with Python 3 out of the box???
Also @ccc any reason in particular you use this Anaconda distribution? Is that what you would recommend for everyone on OS X?
-
Awesome. Now I'm going to have to change print "something" statements in my scripts for months to come as I run them only to find my lazy ass didn't use print("something")
There will be some way to automate this.
-
There's this thing called
lib2to3
, I hear it's part of the Python standard library. Perhaps that might be useful.;)
@omz Maybe putting a
lib2to3
thing in the action menu would be useful? Like the "Convert Indentation" option, except that it runs2to3
on the file. Would probably be good to save the output to a different filename though,lib2to3
isn't perfect and doesn't always produce code that can run on Python 3 right away. -
@Tizzy -
@omz said
It will be possible to access files in Pythonista 2.x from 3.x though (and vice-versa).
He said in more detail on twitter that there would likely be a folder in the file browser for the 3.x version which simply displayed all of the files from the 2.x version. I suggested on Twitter that a dialog could be displayed for importing files from the 2.x folder, which would contain an option to automatically run the
2to3
program on the files imported. We'll see if that's something @omz chooses to implement. -
@dgelessus said:
@omz Maybe putting a lib2to3 thing in the action menu would be useful? Like the "Convert Indentation" option, except that it runs 2to3 on the file. Would probably be good to save the output to a different filename though, lib2to3 isn't perfect and doesn't always produce code that can run on Python 3 right away.
Yes, I've implemented pretty much exactly that. Right now, it doesn't make a backup, but the changes are undo-able, and it shows a diff before applying them.
-
any reason in particular you use this Anaconda distribution?
http://docs.continuum.io/anaconda/pkg-docs lists all the superpowers that Anaconda adds to Python for free. 150 pre-tested, pre-configured modules. Just the IPython/Jupyter function alone is super cool but there is soooo much more in Anaconda.
Is that what you would recommend for everyone on OS X?
Mac OS X, Windoze, Linux. Yes!
-
Great news!
Sure I will buy and will be available as beta tester! -
@ccc does the
conda
utility include fewer packages thanpip
, or do they both scan the same index ? -
@Webmaster4o You can use pip with anaconda. I use conda for updating packaged stuff and pip for anything that is not included by default.
pip list
shows packages installed by both command. -
-
Given that we are going to need to make the transition to Python 3, could I make a few feature requests for the next version of Pythonista 2 to get us started on converting our own scripts?
- Pythonista settings already has a 'Use "true" division' switch but that only applies to the console and not to scripts. Would it be possible to add another switch(s) that would be the equivalent of adding the line:
from __future__ import absolute_import, division, print_function, unicode_literals
to the top of every script systemwide? See: http://python-future.org - In type ahead, could we remove
print
but keepprint()
? - While we are at it, would it be possible to add a shebang line to the Python new file template to ease the migration of our scripts to non-Pythonista platforms? This would make new Python files begin with
#!/usr/bin/env python\n# coding: utf-8\n\nfrom __future__ import absolute_import, division, print_function, unicode_literals\n\n
- Pythonista settings already has a 'Use "true" division' switch but that only applies to the console and not to scripts. Would it be possible to add another switch(s) that would be the equivalent of adding the line:
-
Since Pythonista 2 will be kept for Python 2.7, I don't see the reason to remove the print statement.
-
@ccc I like the idea of a "future mode", will think about it. Should probably be optional though.
-
Agreed. A switch in Settings.
-
I am ready to purchase. It can't make me a worse Python programmer than I am already 😝
-
@ccc Just FYI,
unicode_literals
unfortunately doesn't always work well in Python 2. The main issue is that Python 2 allows only 8-bitstr
for identifier names, sogetattr
and such will fail withunicode_literals
enabled, unless you wrap the strings in astr
call, which is really ugly.The way I use strings in Python 2 is:
unicode
/u"..."
for normal textbytes
/b"..."
for binary datastr
/"..."
for things that are Python identifiers
This is almost fully forwards compatible with Python 3, except that you need to replace
unicode
withstr
.