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.
Bug list for beta release 160037
-
@Webmaster4o: Intentional or not I'm having difficulty understanding the value of this. The tiny view of the file on the right adds no useful functionality to the UI. It just takes away functionality from the file list window. The iPhone screen is small as it is. Squeezing it even more is a pain, especially for no benefit. It may mean something on the iPad but it looks like a bug on the iPhone. It is bad enough on the iPhone 6 plus. It must be even worse on smaller iPhones like the regular iPhone 6. The edit window gets a whole screen. The console and doc screens get to be full width but for some reason the file list has to be narrower? With no useful functionality in exchange? Makes no sense.
-
Not sure if this is a bug or just not well documented. in the latest beta, wait_modal seems to stop any ui.in_background from getting executed until after the view is closed.
-
@ccc said:
grab the name [ ... ] and navigate there in stash.
Means type the following into stash:
cd /var/mobile/Containers/Bundle/Application/C370CA19-1410-4DA3-975F-CBA563809E66/Pythonista.app/Frameworks/PythonistaKit.framework/pylib/site-packages/ ls
😋
I had no idea about this! Thx! -
I love the the possibilities offered by obcj_util. While exploring these, I ran into an error.
I managed to end up with an ObjCInstanceMethod without method attribute, which (not surprisingly) makes Pythonista exit when called
>>> f = ObjCClass('UIDevice').currentDevice().batteryMonitoringEnabled >>> f.encoding 'B0@0:0' >>> f.method Traceback (most recent call last): File "<string>", line 1, in <module> AttributeError: 'ObjCInstanceMethod' object has no attribute 'method' >>> f() Bye bye
I believe this is causes by the final if statement in ObjCInstanceMethod._ _ init _ _ in objc_util, which neither assigns self.method nor raises an exception in case self.encoding is True-ish.
I guess this should be something likeif method: self.method = method if not self.encoding: self.encoding = method_getTypeEncoding(method) else: raise AttributeError('No method found for selector "%s"' % (self.sel_name))
Alternatively, ObjCInstanceMethod._ _ call _ _ could check.
My details: iOS 9.1, iPad Air 2, Pythonista Beta 160036
-
@Olaf Thanks, looking into it now. The problem seems to be that
batteryMonitoringEnabled
is a property, and uses a custom selector name (isBatteryMonitoringEnabled
). -
Yes, @omz, you're right on
...
batteryMonitoringEnabled
is a property, and uses a custom selector name (isBatteryMonitoringEnabled
).I found this isn't unique to battery. The same happens for property
AVCaptureDevice.connected
that needs translation into methodisConnected
. I noticed it happens to boolean properties, as e.g.AVCaptureDevice.localizedName
works fine.
Hope this helps -
import ui ui.SegmentedControl().subviews
/Users/ole/Development/xcode/Pythonista/python/Objects/tupleobject.c:54: bad argument to internal function
-
- image_quad from arguments are incorrectly scaled. (workaround seems to be to multiply by 2, though i suspect this may depend on device)
- ui editor does not save the view when switching focus to console. This leads to confusion when loading/presenting a view from the console( why the $!?& is the button action i added not getting called?). It does seem to save when switching to a different file tab. Seems like whenever console input gets focus, play is pushed, or an action run, any dirty files should be written to disk first.
-
I've mentioned this before in a different thread, but the "replace" text input dialog in the find/replace has a few problems. First, it has no default text as find does.
Second, if you compare the keyboard to the keyboard in the "find" dialog, there are 2 differences. In replace, autocapitalize is on, and dark keyboard themes are not respected. The opposite is true in the find box.
-
Bug in the
scene
module:The documentation for
SpriteNode
states, that a node without texture is rendered as a rectangle with the color of the color attribute. However creating aSpriteNode
like this creates an error:node = SpriteNode(texture=None,position=(10,10),color='blue') TypeError: Expected Texture or image name.
-
@Moe a workaround: omit the texture argument if you don't want a texture.
-
BUG:
ui.TableView
does not respect eitherframe
orflex
attributes. Meaning, it never resizes if you do it programmatically. I haven't tried it another way. A work-around for those wondering:table = ui.TableView() table_pntr = ObjCInstance(table) table_pntr.frame = CGRect(CGPoint(0,0), CGSize(500,500))
Also, can we get a
PhysicsNode
in thescene
module? -
blmacbeth, the issue seems to be that these are not accepted in the constructor. However, setting .frame and .flex attributes after you create the TableView works fine.
import ui v=ui.View(frame=([0,0,200,200])) t1=ui.TableView() t1.frame=(0,0,200,200) t1.flex='w' t2=ui.TableView() t2.frame=(0,250,300,300) v.add_subview(t1) v.add_subview(t2) v.present('panel')
-
I have noticed that sys.lath no longer contains . or Documents.
I thought in 160032 this was changed to- Changed the order of
sys.path
once more, so that files in the main documents folder can't shadow standard library modules anymore. Imports from the current directory should also work again.
which I think had documents and '.' just at the end...
- Changed the order of
-
@JonB The directory of the current script is still in
sys.path
, just as an absolute path instead of.
. I don't remember the details right now, but there were some subtle problems with having.
insys.path
.I think Documents used to be in the import path, but I don't really think it should be there. That's what site-packages is for.
-
There's still that bug in syntax highlighting where if you have multiple same-line imports (
import ui, os
) only the first module will be correctly highlighted. -
@omz
Oh, I see, the starting path of a script is added to sys.path as an absolute path, but not in the interactive console, and not when using chdir. That leads to a confusing situation where imports work when running a script, but not when pasting the same line by line.There is something else strange happening with
from . import xxx
package imports, but not sure if it is related. Gittle imports did not workfrom . import path
(complained about path, perhaps there is a conflicting path.py?). Strangley this woed wh gittle was in site-packages, but not whn it was in stash/lib ( and that path was on sys.path). I will need to experimt with this a bit. -
The current beta expires in 21 hours.
-
13 hours now... Getting down to the wire
While it would be interesting to see what happens when the beta expires. I really prefer not to find out 😰 -
I've found the best way to contact @omz directly is through Twitter. The new beta is "processing" https://twitter.com/1defenestrator/status/670962735560134656