Wish list for next release
I think it would be great, if v.present('sheet') could have a factor param. And if the factor == 1.0 or more it is full screen on the device.
Long winded example below
It's not so evident why this is good. But often you have the chicken an egg syndrome with 'sheet' and 'full_screen'. For me it's very difficult to handle these cases elegantly. I can do it, just it does not feel right.
Maybe I am dreaming, but I don't think so. So hard to explain. But if no comments then i know I am being stupid again.
# coding: utf-8 import ui class AnyCustomClass(ui.View): def __init__(self, *args , **kwargs): ui.View.__init__(self, *args, **kwargs) if __name__ == '__main__': _factor = .50 f = (0,0, ui.get_screen_size() * _factor, ui.get_screen_size() * _factor ) v = ui.View(frame = f, bg_color = 'green') acc = AnyCustomClass(frame = (f)) v.add_subview(acc) v.present('sheet')```
v.present("sheet")on an iPhone is already the same as
v.present("fullscreen"). Though that might be different on iPhone 6+ and such. Or are you writing something that fits in a panel on an iPad Pro, but not on normal iPads?
@dgelessus , I just think the below is convenient. Could be improved upon I am sure. I think the .present() is pretty important in the scheme of things.
I realize the below is not compelling, but would be nice to have more built into ui.View.present() I think
import ui class SomeCustomClass(ui.View): def __init__(self, *args, **kwargs): ui.View.__init__(self, *args, **kwargs) def show(self, modal = True, factor = 1.0, *args, **kwargs): m_bar = 0 if kwargs.get('hide_title_bar', None): if kwargs['hide_title_bar']: m_bar = 44 if factor <= 1.0 and factor > 0: f = (0,0, ui.get_screen_size() * factor , (ui.get_screen_size()-m_bar) * factor) self.frame = f self.present(*args, **kwargs) if modal: self.wait_modal() if __name__ == '__main__': scc = SomeCustomClass(bg_color = 'white') scc.show(modal = True , style = 'sheet', factor = .5) print 'fell through...'
Code import options (may be here already but I haven't found it), Dropbox etc.
Would be amazing if you could put a scp browser or integration with one such as Transmit.
@alijnclarke This is unfortunately impossible as it violates one of Apple's policies. Apps are not allowed to download executable code. This means Transmit can download code, since it has no capability to execute it, but Pythonista cannot.
@Webmaster4o that makes sense, I knew that Apple didn't allow the downloading of code but never thought it would apply in a case such as this (I thought it was worded around silent / background downloading).
Looks like its tonight's project is a Dropbox to pythonista downloader!
Even better @Webmaster4o, may still have a look at making it myself though, just for learning
Maybe add UIFileSharingEnabled.
I cannot add any ways to import code from external sources. Apple doesn't allow it, and yes, that includes things like iTunes file sharing.
Really.. Dang Apple. I guess I will just stick with using my file server for upload and download.
@chibill I made a little extension script that can execute Python code inside an apple note or a .py file inside an apple note not very robust but let me know if that's something you're interested in. @omz feel free to delete this if potentially damaging
It's getting late but I will still write.
As far as I can see you can not subclass ui.Rect or ui.scene.Rect. I just Think it would be nice if you could.
Just for the ui part of it, everything is revolving around rects and other primitive's. To use ui.Rect as a base class to extend it would be nice in my opinion. Food for thought.
Ok, today is songkran in thailand. Believe it or not, it's the worlds biggest water fight. Were I live it goes on for 7 days. It's different all around the country.
But more importantly, I would be great to subclass from ui.Rect 😱
@omz, btw ui.Rect, while its imported it's not recognized by the editor.
@omz Have to say, this is an amazing application and i want to invest more time into building custom tools and extensions!!
A few requests, much easier said than done, but would be greatly appreciated!!!
a today widget would be amazing:
- to launch scripts - like the share menu (easy access to scripts)
- running and display output of a script on the today screen itself .. like a multiline row cell per script (eg. custom metrics or feed)
- incredible would be display multiple pyui scripts on the today widget.
- iphone 6/5s line numbers
- custom themes (i saw an unofficial editor, official would be nice)
a today widget would be amazing
to launch scripts - like the share menu (easy access to scripts)
There are launcher apps with today widgets that allow you to launch URLs. You could use one of those with the pythonista:// URL scheme, so I don't really see a need to add that to Pythonista itself (a hypothetical Pythonista widget would do exactly the same as these apps).
running and display output of a script on the today screen itself .. like a multiline row cell per script (eg. custom metrics or feed)
I've experimented a little with that a while ago, but today widgets just don't get enough RAM to be all that useful for scripting.
iphone 6/5s line numbers
Line numbers are already available as an option on iPhone 6 (not on 5s, I find the screen too small for line numbers, I might change my mind though).
speech.is_speaking()– I just noticed that this is undocumented.
As for the modules, these are all popular requests. SciPy is unfortunately very hard to port, so I can't promise anything there. Pandas is more likely to happen (again, no promises!).
bg_color and background_color. It might be a good time to retire one of these. On the surface it seems ok, but can become a pain when when looking through **kwargs etc to see what is being set
M2Crypto and more crypto support
A built in script in the wrench menu to print to the screen and copy to the clipboard a forum friendly list of device/Pythonista info. Just see many times when some is trying to help someone here, they need more info, Pythonista Version , device etc...
Speaking of forum-friendly, a way to view and copy a traceback in plain text form. The debugger is nice, but it cuts off long error messages and there's no way to copy the traceback (AFAICT).
ui.parse_color To have an optional param alpha. Seems to me you normally would use this when you want access to the alpha setting when you have a css color name eg. 'teal'. Maybe there is a trick I don't know about, but becomes a multi step process because it's a tuple.
Small thing, but every little bit helps.
I also think that ui.parse_color could be repeated in the documentation in different sections. It's out on a island as far as documentation goes.