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.
Yes the title bar is hidden, if you two finger swipe down it will close it
Hi again ;). Okay, I suppose se the app is intended to be used as a standalone app (to be launched by a home screen link). For the usage from within pythonista it would seem more natural to present the app as a panel and not full screen (like pythonistas own help is being presented). Something like:
Instead of (
PyDoc.py, line 117):
Although the editor theming doesn't seem to work on your ui. That the HTML won't change its color is obvious, but even the navigation bar stays white for me (I am using the dark pythonista scheme).
@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.
@shaun-h, I am not sure why but I didn't see this project. Well, maybe I did and forgot due to old age :). But I love how polished it is, including the Installation process. I do have Dash, but I do see myself using this. For me as a reference tool, I would run it in a panel, I made the small change to do that. Seems to me it would be nice to add the presentation style to your settings so people are not changing your code. A come across a few small issues, but rather than write them here, I will add them to the issues in your repo, I assume this is the preferred way. One thing I will mention here as it has a broader context. It would be nice to see projects like this to have a built source validation. Meaning in the settings somewhere you could click a button, and say for the version you have installed , a hash is calculated for your source files and compared to say the repo for that version. Hmmm, something like that. Not thinking so much about security here, but more for accidental edits, or after sometime you forgotten you edited something. Not sure if Github has anything built in like this when you do a version release. Just seems to me it would be useful. Along with the same idea, having a reinstall feature. I haven't done an update yet or looked at the update code. But I assume that your check for update feature allows you to also Install the update. Meaning the ability to do a reinstall is built in.
Anyway, really nice job. If I ever do anything of substance I will be looking at this project as an example of the way to delivery it. Sure pip is also a valid way, but maybe not so well suited for smaller apps/utilities.
Rather than reinvent the wheel, you could always install it via git, then use git status to see if you changed some files, and git reset to reset --hard filename to reset anything you changed.
@JonB, yeah fair enough...Being at the lower end(bottom) in experience with the whole eco system shapes my opinions and suggestions. But my idea was at least this would be done as a Lib so people did not have to re-invent the wheel each time. Maybe that wasn't clearly conveyed. But it was meaning that we had some libs that we could all use to standardise some of these common deployment requirements.
@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.
@shaun-h, sounds great. Sorry, I didn't make report on github yet. I will try and get it done today. But again thank you for the effort. Some nice polished solutions turning up from members. Black Mamba also being really well done. Not to say people cant do it, but there is a big leap from a helper script to a functional app with all settings, version checks etc. I must admit, I have only used it on my iPad as I almost never use my phone (If it wasn't for SMS verification/auth I wouldn't own a phone). My point being, I haven't seen how you handle the interface for the smaller screens. But I think i will get my Pythonista up to date on my phone and give it a go.
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.