I can see Working Copy and access folders in it (note: I use the Working Copy test flight version), so unsure as to why but I assume you can see Working Copy in the files app.
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.
Posts made by shaun-h
-
RE: New Beta for Pythonista 3.3
-
RE: Pythonista script included in Workflow
I did a quick search on this forum and found this (I haven't tried it) https://forum.omz-software.com/topic/1491/simple-file-rename-script
Hopefully it points you in the right direction. -
RE: PyDoc - docset browser
Just wanted to share that I have added a number of features to PyDoc since I last posted about it here.
Some of these include
- stack overflow docsets.
- the ability to download different version for standard and usercontributed docsets.
- transfer docsets in via a web browser
- display the app in panel mode, the default is full screen but can be changed in the settings screen.
I am always looking for suggestions so please add them to the GitHub repo.
-
RE: Keychain & TouchID
@zrzka I am very interested in this, I think the ability to lock 'secrets' behind TouchID (and I assume FaceID) will be great, so thanks for creating this.
I haven't had a chance to have play with this but I assume that you copy keychain.py in to site-packages and it will be used instead of the built in keychain module?
To keep the compatibility layer is a great thing but I think it would be beneficial if it either has a helper method to say set_password_with_touchid(.....) or at least optional parameters to set_password etc that allowed you to set accessible and access_control this way you don't have to interact with the GenericPassword class?
-
RE: Std ios Search view with search icon - problem
If you are interested in a UISearchController, I wrote a wrapper for the native controller for PyDoc it needs a little bit of work still but it might give you a starting point. You can find it here this would be something that I would find very useful if it was in the std ui module.
-
RE: syncing Pythonista / laptop
If you haven't seen this it is Pythonista interacting with working copy in the new beta.
-
RE: syncing Pythonista / laptop
I really don't do any Python development off my iPad or iPhone really as most of the things I work on require the UI module in Pythonista. I thought I would share how I keep sync'd up.
I use git, if you are worried about commit history you could try developing on separate branch (which also has other benefits), and then submitting a pull request if you are using GitHub and squash all your commits when you are ready to merge it back in to your main branch (not that I do this but I am pretty sure it is possible).
If you have Working Copy and the new Beta of Pythonista this allows for opening from external files which makes using Working Copy a lot easier now otherwise there are scripts that help interact with working copy if you don't.
This is how I keep things sync'd up anyway, it doesn't really help with having a remote interpreter though.
-
RE: PyDoc - docset browser
@Phuket2 thank you for the kind comments, I do understand the thought about source validation. I did even consider this a while ago but though it was too hard to implement and keep track of between versions etc, so I might revisit this in the near future.
I have added the ability to reinstall, if you check for an update in app it should be there, I also added the ability to install any pre-release/stable version, that is available on GitHub.
I am currently implementing stack overflow docsets (hopefully I will put a release out in the next day or so), once that is finished I will look to adding a setting to start the app in a panel or as normal view. I did try the panel setting a while ago but I was getting errors so reverted back as I was working on other features at the time.
Thanks for all the comments and please if you have any suggestions or find any bugs I am very happy for you to put it against the repo as it will be easy to keep track of. -
RE: PyDoc - docset browser
@zipit sorry I must of missed your reply a while ago. It is intended to be a "standalone" app. I will take a look at what it looks like in panel mode and I might make that the default. No editor theming doesn't change any UI elements that are not part of the editor, I guess this is by design from @omz
If you or anyone else is interested, I have been updating this a bit lately and added some more features
- Searching (both individual and across docsets)
- I have added the ability to create themes for PyDoc currently I have only created two.
- "In App" updating, which allows for the app to download a new version based on GitHub releases, and keep the docsets you have already downloaded.
If anyone is finding it useful or has any suggestions please let me know.
-
RE: Pythonista crashing on new file creation
I am glad I am not the only one, I am using a iPad Pro and it use to be slow but now mines just crashes.
@dgelessus no I haven’t, it appears to be sheer file numbers for me. I have been working on a docset viewer like dash on Mac for Pythonista and the amount of files the docsets I am downloading contain are causing the issue I think.
-
Pythonista crashing on new file creation
I am having an issue with creating a new file or folder in pythonista by the built in UI. When I click on the + and then either new folder or empty script the UI just locks up. If I wait long enough Pythonista just crashes.
I have a feeling that this is because of the number of files and
folders I have in Pythonista.@omz I assume this a issue with the file browser that appears and it trying to build up the entire tree of files and folders before it displays. My work around currently is to use stash to create files and folders but this isn't ideal.
-
Getting a segmentation fault
Just wondering if someone can point me the right direction. I am getting a segmentation fault occasionally with the following or similar stack trace.
Fatal Python error: Segmentation fault Current thread 0x00000001b43e1b40 (most recent call first): File "/var/containers/Bundle/Application/8024D87A-9F71-447C-85F3-3D71022D2199/Pythonista3.app/Frameworks/Py3Kit.framework/pylib/weakref.py", line 341 in __init__ File "/var/containers/Bundle/Application/8024D87A-9F71-447C-85F3-3D71022D2199/Pythonista3.app/Frameworks/Py3Kit.framework/pylib/weakref.py", line 169 in __setitem__ File "/var/containers/Bundle/Application/8024D87A-9F71-447C-85F3-3D71022D2199/Pythonista3.app/Frameworks/Py3Kit.framework/pylib/site-packages/objc_util.py", line 528 in __new__ File "/var/containers/Bundle/Application/8024D87A-9F71-447C-85F3-3D71022D2199/Pythonista3.app/Frameworks/Py3Kit.framework/pylib/site-packages/objc_util.py", line 775 in __call__ File "/var/containers/Bundle/Application/8024D87A-9F71-447C-85F3-3D71022D2199/Pythonista3.app/Frameworks/Py3Kit.framework/pylib/site-packages/objc_util.py", line 729 in __call__ File "/private/var/mobile/Containers/Shared/AppGroup/FFE08DF5-27C2-4D8F-95D1-5CC3D4C18E54/Pythonista3/Documents/PyDoc/Utilities/UISearchBarWrapper.py", line 87 in __init__ File "/var/containers/Bundle/Application/8024D87A-9F71-447C-85F3-3D71022D2199/Pythonista3.app/Frameworks/Py3Kit.framework/pylib/site-packages/objc_util.py", line 1088 in new_func File "/private/var/mobile/Containers/Shared/AppGroup/FFE08DF5-27C2-4D8F-95D1-5CC3D4C18E54/Pythonista3/Documents/PyDoc/Utilities/UISearchBarWrapper.py", line 104 in get_view File "/private/var/mobile/Containers/Shared/AppGroup/FFE08DF5-27C2-4D8F-95D1-5CC3D4C18E54/Pythonista3/Documents/PyDoc/Views/DocsetIndexView.py", line 66 in get_view File "/private/var/mobile/Containers/Shared/AppGroup/FFE08DF5-27C2-4D8F-95D1-5CC3D4C18E54/Pythonista3/Documents/PyDoc/PyDoc.py", line 89 in docset_type_selected_for_viewing File "/private/var/mobile/Containers/Shared/AppGroup/FFE08DF5-27C2-4D8F-95D1-5CC3D4C18E54/Pythonista3/Documents/PyDoc/Views/DocsetView.py", line 11 in tableview_did_select Thread 0x000000016e427000 (most recent call first):
I am not sure why this is occurring but I suspect it is to do with how I am implementing a uisearchbar and adding it to a tableview, (maybe an object I'm trying to access has been garbage collected)
If anyone would like to help and needs how to create this crash, I can write up the steps provided and point you in the direction to GitHub repo.
-
AppStore rule change
I just read this article, https://www.macstories.net/linked/apples-app-store-guidelines-now-allow-executable-code-in-educational-apps-and-developer-tools/
I am wondering will we be seeing a built in way to download code in Pythonista anytime soon?
-
RE: PyDoc - docset browser
Yes the title bar is hidden, if you two finger swipe down it will close it
-
PyDoc - docset browser
I just wanted to share a project I have been working on. The project is called PyDoc and it is docset viewer.
I started working on this project when Dash for iOS was removed from the App Store. PyDoc uses docsets provided by Dash with permission.
It currently supports standard docsets, cheatsheets and user contributed docsets. I am currently implementing searching docsets so at the moment all you can do is view the docsets.
PyDoc is available from my GitHub
Please check it out and let me know if you find any issues or have any suggestions.
-
RE: Objc_tools Library
I did a quick translation of the code to run with objc_utils
from objc_util import ObjCClass, ObjCBlock, c_void_p, ns, ObjCInstance def getData(_cmd, pedometerData, error): ped = ObjCInstance(pedometerData) if not error == None: err = ObjCInstance(error) print('error===='+str(err)) else: print('Steps===='+str(ped.numberOfSteps())) print('Distance===='+str(ped.distance())) ped_block = ObjCBlock(getData, restype=None, argtypes=[c_void_p, c_void_p, c_void_p]) CMPedometer = ObjCClass('CMPedometer') NSDate = ObjCClass('NSDate') ped = CMPedometer.alloc().init() if CMPedometer.isStepCountingAvailable(): fromDate = NSDate.dateWithTimeIntervalSinceNow_(-60*60*24*2) toDate = NSDate.dateWithTimeIntervalSinceNow_(-60*60*24*1) ped.queryPedometerDataFromDate_toDate_withHandler_(ns(fromDate),ns(toDate),ped_block) else: print('Unavailable')
I hope it helps.
-
RE: Keyboard shortcuts (Physical)
@scj643 if you want to take a look how it is implemented go right ahead and add it to objc_tools library. A lot of my implementation came from @jonb
Thanks @jonb this working now.
-
RE: Keyboard shortcuts (Physical)
@JonB I am hoping you can help, the script I created a while ago that based on your keycommands script no longer works (yours doesn't either). I now get this error
AddKeyCommands.py", line 64, in addKeyCommandToPythonista
aa = getattr(CmdHHandler_obj, me.__name__).method
AttributeError: 'ObjCInstanceMethodProxy' object has no attribute 'method'I cant work out how to fix it. If you can take a look that would be fantastic.
-
RE: Tableview cell and image to stick the right of a cell
That worked thank you very much.
-
Tableview cell and image to stick the right of a cell
I am having some problems with getting an image to stick to the right hand side of a table view cell. I know I can add an image to a cell on left hand side using image_view but I would like it to be on the right as I want to use the left for icons for each cell later.
I have set the images flex to be L and it kind of works depending on whether I am in portrait or landscape it sits at different spots on the cell but never to far right if the screen.
In portrait it sits At the end of the default labels with my test data and in landscape it is about 2/3 the way along the cell.Here is the code below.
import ui class DocsetManagementView (object): def __init__(self, docsets): self.data = docsets def tableview_did_select(self, tableview, section, row): pass def tableview_number_of_sections(self, tableview): return 1 def tableview_number_of_rows(self, tableview, section): return len(self.data) def tableview_cell_for_row(self, tableview, section, row): status = self.data[row]['status'] cell = ui.TableViewCell('subtitle') cell.text_label.text = self.data[row]['name'] cell.detail_text_label.text = status iv = self.__getDetailImageViewForStatus(status, cell.height) iv.flex = 'L' cell.content_view.add_subview(iv) return cell def __getDetailImageForStatus(self, status): if status == 'online' or status == 'updateAvailable': return 'iob:ios7_cloud_download_outline_24' else: return 'iob:ios7_close_outline_24' def __getDetailImageViewForStatus(self, status, height): img = ui.Image.named(self.__getDetailImageForStatus(status)) iv = ui.ImageView() iv.image = img size = img.size ratio = size.y / size.x iv.height = height * 0.9 iv.width = iv.height * ratio return iv def get_view(docsets): w,h = ui.get_screen_size() tv = ui.TableView() tv.flex = 'WH' data = DocsetManagementView(docsets) tv.delegate = data tv.data_source = data return tv if __name__ == '__main__': view = get_view([{'name':'test','status':'online'},{'name':'test2','status':'downloaded'}]) view.present()