Bug list for beta release 160037
None ;-). It looks great... Just ship it as v2.0!!
Seriously, nice new additions in usability and polish.
I still worry about the PIP modules being out of sync but I know that must be a can of worms for you to open.
| module | local | PyPI | | name | version | version | | ------------- | -------- | ----------- | | bottle | 0.12.5 | 0.12.9 | Upgrade? | bs4 | 4.3.2 | 4.4.1 | Upgrade? | Crypto | 2.6 | 2.6.1 | Upgrade? | ctypes | 1.1.0 | Found | Upgrade? | dateutil | 1.5-mpl | 2.2 | Upgrade? | dropbox | ????? | 3.42 | ????? | ecdsa | 0.11 | 0.13 | Upgrade? | evernote | ????? | 1.25.1 | ????? | faker | ????? | 0.0.4 | ????? | feedparser | 5.1.3 | 5.2.1 | Upgrade? | flask | 0.10.1 | 0.10.1 | | html2text | 2014.4.5 | 2015.11.4 | Upgrade? | html5lib | 0.999 | 0.9999999 | Upgrade? | httplib2 | 0.8 | 0.9.2 | Upgrade? | itsdangerous | ????? | 0.24 | ????? | jedi | 0.9.0 | 0.9.0 | | jinja2 | 2.7 | 2.8 | Upgrade? ### hasattr(markdown, 'version') | markdown | 2.2.0 | 2.6.5 | Upgrade? | markdown2 | 2.2.1 | 2.3.0 | Upgrade? | matplotlib | 1.3.1 | 1.5.0 | Upgrade? | mechanize | 0.2.5 | 0.2.5 | | midiutil | ????? | Found | ????? | mpmath | 0.18 | 0.19 | Upgrade? | numpy | 1.8.0 | 1.10.1 | Upgrade? | oauth2 | 1.5.211 | 1.9.0.post1 | Upgrade? | paramiko | 1.13.0 | 1.16.0 | Upgrade? | parsedatetime | 1.3 | 1.5 | Upgrade? ### hasattr(PIL, 'PILLOW_VERSION') | PIL | 2.9.0 | 3.0.0 | Upgrade? | pycparser | 2.10 | 2.14 | Upgrade? | pyflakes | 0.7.3 | 1.0.0 | Upgrade? | pygments | 1.6 | 2.0.2 | Upgrade? | pyparsing | 2.0.1 | 2.0.6 | Upgrade? | PyPDF2 | 1.22 | 1.25.1 | Upgrade? | pytz | 2013b | 2015.7 | Upgrade? | qrcode | ????? | 5.1 | ????? | reportlab | $Id$ | 3.2.0 | $Id$ | requests | 2.5.1 | 2.8.1 | Upgrade? | simpy | 3.0.2 | 3.0.8 | Upgrade? | six | 1.6.1 | 1.10.0 | Upgrade? | sqlalchemy | 0.9.7 | 1.0.9 | Upgrade? ### hasattr(sqlite3, 'version') | sqlite3 | 2.6.0 | 2.8.1 | Upgrade? | sympy | 0.7.4.1 | 0.7.6.1 | Upgrade? | thrift | ????? | 0.9.3 | ????? | werkzeug | 0.9.4 | 0.11.2 | Upgrade? | wsgiref | ????? | 0.1.2 | ????? | xhtml2pdf | 3.0.33 | 3.0.33 | | xmltodict | 0.8.7 | 0.9.2 | Upgrade? | yaml | 3.09 | 3.11 | Upgrade? | ------------- | -------- | ----------- |
The aifc module (part of standard library and used by sndhdr, which is how I found out) seems to be missing in the current beta
>>> import aifc ImportError: No module named aifc
Don't have an 1.5 installation around to test whether this was always the case
PS the module is documented in Pythonista
@olaf I did a little bit of research into this and it looks like the AIFC module is pure Python.
Using stash I downloaded a copy of aifc.py from the apple open source website and placed it in the users site-packages folder.
wget http://www.opensource.apple.com/source/python/python-3/python/Lib/aifc.py?txt mv aifc.py?txt ~/site-packages/aifc.py
However I couldn't give you an answer as to why it isn't in the 1.6 beta
I remember a few other pure Python stdlib modules missing from Pythonista.
xdrlibcome to mind (both were required by some other libraries that I used at some point). They worked just fine when installed by hand under
Bug with matplotlib in extensions.
I'm writing extensions in pythonista for the TapForms database. Tap Forms exports a csv format file. Everything works fine except I was having problems debugging some plot strangeness and I noticed plot_date wasn't reflecting changes in the code. For example I reverse sorted the data but still saw the original data. I plotted only the slice of the last 10 points but still saw all the data. I added debug to print the data to the console and it didn't match what was plotted. I was pulling my hair out trying to figure out what I was doing wrong when in desperation I powered down the iPhone and powered it back up. The plot was correct this time. Is there context for matplotlib I need to clear between extension calls? How could it remember the data from the last extension call and ignore new data passed in? Is it showing a stale plot image maybe? Restarting pythonista is not enough to clear the condition. Only a full power down fixes it. I could post my script but it is hard to run without the Tap Forms app and my specific database format. I would be glad to write a simpler case if someone could suggest a methodology.
I've also crashed pythonista several times while editing code. It apparently had something to do with autocomplete because it happened while trying to type a library method name. I only noticed it while editing the extension script but that might be a coincidence. I launched pythinosta about 10 times in a row trying to do the same edit over and over. I finally had to enter restructured code to work around the problem.
Are you using the beta? Or version 1.5?
In 1.5, you had to remember to manually use plt.clf() (or whatever variable you called matplotlib.pyplot). That is because pyplot is stored in the module, which does not get unloaded when you run a script. If you were plotting new data with very different xlimits, it might appear that data was not being updated, since the new data would be off the plot.
In the beta, plt.clf() is called automatically. 1.6 fixed a number of autocomplete issues as well.
Sorry I was not more clear. This is an extension script which I thought was only in the beta. And this is a thread for beta bugs. The problem happens in the recent beta. I've been running the current beta exclusively for over a year. This problem is so bizarre I'm having a tough time trying to debug it. The only symptom is that old data is plotted even though the script prints current data before calling the plot routines. I believe it only happens in extensions and is an artifact of the independent extensions context. I have only seen it there. I assume that a general matplotlib bug of this magnitude in normal scripts would have been found long since. However assumptions are dangerous so my next step will to prove that one way or the other.
Oh yes. The other symptom is that the correct data is plotted after power cycling with no change in the script.
I wonder if anyone else has tried matplotlib in an extension.
I'll also try using one or more of the clear methods at the top of the script once I figure out the difference between them.
I think I have a bug demo strategy I can create so other people can try it. I'll create an extension script that ignores incoming data. I'll code the plotted data into the script. That should be run-able from any app that supports share and not depend on my Tap Form context.
Are you importing any of your own modules? If so, try the syntax:
import my_module reload(my_module)
An example would be helpful, even if you don't share the tapform data, so we can see your plot commands, etc.
Since your script prints the new data, presumably it has loaded the new data. So, it may simply be that your plot is not first getting cleared.
I have not used matplotlib in the extension, but i could imagine you might need plt.clf to clear the existing figure. I am not sure if the extension runs the preflight script, which does this for you.
As a check of this, you could try plt.savefig before plotting new data, to see if your old data is still present. Then try plt.clf() at the start of the script, which should fix the issue.
Are you depending on anything getting reset during any import statements? Recall that imports are not guaranteed to get reimported, and you have to use reload as ccc suggests.