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.
Black Mamba - releases
-
@zrzka Thanks,it's work.
can add cmd+up cmd+down to page up and page down?
-
-
Black Mamba 0.0.25 released:
blackmamba.script
introduced and it does contain following scriptsaction_quickly.py
,analyze.py
,clear_annotations.py
,close_all_tabs_except_current_one.py
,
drag_provider.py
,jump_to_definition.py
,jump_to_line.py
,new_file.py
,new_tab.py
,
open_quickly.py
,outline_quickly.py
,run_quickly.py
,run_unit_tests.py
,search_dash.py
,
toggle_comments.py
- These scripts can be used in the wrench icon (action)
- These scripts are binded to keyboard shortcuts, whenever you run it via wrench icon
or via keyboard shortcut, same script is executed - It's still required to call
blackmamba.main
from within
~/Documents/site-packages-3/pythonista_startup.py
file to properly configure it
(even without external keyboard)
- Drag Provider uses Pythonista title bar instead of custom title to allow users to close the
the dialog without external keyboard - Unit tests (
tester.py
) moved fromblackmamba.experimental
toblackmamba
ide.run_script
andide.run_action
has new args nameddelay
, which defaults toNone
- Run Quickly & Action Quickly runs scripts with 1.0s delay and that's because
both these actions are binded to scripts in the new script folder and if there's no
delay, nothing happens if these scripts are Python 3 (basically it runs script from script,
which doesn't ended yet) - Fixed #20 (Pythonista appex error)
- Allow to run
main
- Do not check compatibility, updates
- Do not register keyboard shortcuts
- Allow to run
blackmamba.system.Pythonista
decorator has new argappex
- Defaults to
None
appex=True
- run decorated function if it's running as application extensionappex=False
- run decorated function if it's not running as application extensionappex=None
- run in both case, just don't check
- Defaults to
blackmamba.key_command.register_key_command
is decorated withPythonista(appex=False)
to avoid shortcut registration if it's running as application extension- Page Up (
Ctrl Up
) and Page Down (Ctrl Down
)
-
BTW if you've got beta version of Working Copy (build 3.0.9.16), you can use drag provider script to drag file or the folder to the Working Copy. Works flawlessly now and this version was already submitted to the app store. Will be available along with iOS 11 release. This is the only way how I commit & push now. See demonstration video.
-
Black Mamba 0.0.26 released:
- Jump to definition fixes
- Jedi - ignore definitions if there's no path & line number
blackmamba.project
trashed (replaced with Jedi, thanks to @JonB)- Jump to definition shortcut synced with Xcode (
Control Command J
) - Find usages added (
script/find_usages.py
&Control Command U
) - Show documentation (
script/show_documentation.py
&Control Command ?
)- Displayed as
success
annotation on the current line - You can clear annotation with
Cmd Shift K
(already there)
- Displayed as
- All these three featues does
jedi
now. Jedi is not thread safe and
because I had not lot of time to investigate how and when is the Jedi
used by Pythonista, I decided to disable these three features by
default. To enable them, just setgeneral.jedi
toTrue
when
passing configuration to themain
.
BTW this
.
notation is a shortcut for documentation and you have to pass
it as dictionary:config = { 'general': { 'jedi': True } } blackmamba.main(config)
-
Black Mamba 0.0.27 released:
- Drag provider trashed (
Cmd E
) - Drag & Drop introduced (
Cmd E
)- Allows bidirectional drag & drop of files & folders & repos
- List of ignored folders is configurable via
drag_and_drop.ignored_folders
, check config.py for default values - Can be used as wrench menu icon (
script/drag_and_drop.py
)
There's one limitation (will be fixed). Whenever you drop folder from Working Copy, UI isn't updated and you have to close Drag & Drop window and open it again to see this folder.
Here's demonstration video of Drag & Drop.
P.S. I did test this with latest Working Copy. You can drag file & folder from Pythoista, you can drag file & folder & repo from Working Copy. No more missed files in my commits :)
- Drag provider trashed (
-
Black Mamba 1.0.0 released:
- Development status changed to
5 - Production/Stable
- Fixed programming language classifier (Python 3.6)
- Detailed documentation available at blackmamba.readthedocs.io
- Contains About, User Guide, Reference, Contribution, Development and FAQ
- If you're just Black Mamba user, read User Guide
- If you'd like to use Black Mamba functions, read Reference
- Dialogs
- Keyboard shortcut to close dialogs (
Ctrl [
) replaced withCmd .
(Apple one) - Default width is 80% of window width (max 700)
- Default height is 80% of window height
- Keyboard shortcut to close dialogs (
- Open, run, action, ... dialogs
- Properly sorted items (by lowercased file names)
- Filtering works on folders too
bl __init
matches any file where full path does containbl
and__init
- Folders up to
~/Documents
are not matched, only subfolders of~/Documents
- Drag & Drop
- New way how a folder / file is provided
- Works with Kaleidoscope for example
- Still compatible with Working Copy
- All opened files are listed in the dialog
- Open Quickly
- If file is already opened, tab with file is selected
- Find usages
- It actually did show definitions instead of usages, fixed
- Some other bugfixes I can't recall now
And 1.0.1:
- Fixed unit tests annotations
And 1.0.2:
- Fixed Black Mamba for stable Pythonista version (Python 3.5)
Here's the gallery if you'd like to know what is this all about. Gallery is included in latest docs, not stable ones. Will be included in stable docs when the next version will be released.
- Development status changed to
-
Black Mamba 1.1.0 released:
- Dropped PyPI packaging
- Black Mamba provides own / updated modules to provide new functionality
- This is not compatible with
pip
at all, thus this installation method is no longer supported - Latest Black Mamba release in PyPI is 1.0.2
- Find usages contains symbol name in the dialog title
- Jump to definition contains symbol name in the dialog title
- Show documentation contains symbol name in the dialog title
tab.open_file
has newline
argument- Jump to definition, Find usages utilizes
tab.open_file
instead ofeditor
's one
- Jump to definition, Find usages utilizes
- Analyze script does use bundled
flake8
,mccabe
, ...- See documentation to check how to configure it
- First pass defaults are
['--select=E901,E999,F821,F822,F823']
- Second pass defaults are
['--max-complexity=10', '--max-line-length=127']
- Open quickly, ... filter is case insensitive
P.S. This bundled
flake8
, ... means that you can analyze your code even with f-strings likef'Hallo {sender.title}'
, etc. - Dropped PyPI packaging
-
Is it possible for the users who do not have external keyboard to use the sidebar menu (see the link below) for running your scripts?
https://forum.omz-software.com/topic/3543/share-in-work-side-bar-replacement -
Black Mamba 1.2.0 released:
.uikit.overlay
introduced which allows Black Mamba to display information as overlays- Overlays are Pythonista app overlays (visible in editor, console, ...)
.ide.theme
introduced to get some theme functionality- Show documentation script leverages new overlays
- Overlay can be closed via
Ctrl W
shortcut - Overlay can be moved (title bar)
- Overlay can be resized (drag bottom left/right corner)
- Script is configurable, see docs
- See screenshot (reuse disabled)
- Overlay can be closed via
P.S. If you don't see a new screenshot in the gallery (one with overlays), just force reload the page / image.
@enceladus please, use another topic for questions (see first post). Thanks. I don't know what the sidebar menu is, but I also don't see a reason why it wouldn't be possible. Just run them in the same way as Black Mamba does.
-
Black Mamba 1.2.1 released:
- Bundled packages links and licenses
ide.run_script
respectsdelay
argument (did contain hardcoded value)- Analyze script documentation mentions
flake8
- Drag & Drop script
- Children nodes are lazy-loaded (faster)
- Dropped folder reloads ...
- Target row if not expanded (to display triangle)
- Children nodes (dropped folder appears if it didn't exist before drop)
- Show documentation
- Do not show picker / docstring if symbol was found, but it has no docstring
-
Black Mamba 1.2.2 released:
- Bundled
lib/pep8
removed, unused - Fixed
get_actions
(exception when user has no custom actions) - Pythonista 3.1.1 (311013)
- Compatibility check with 311013
- Shortcuts
Cmd W
,Ctrl Tab
,Ctrl Shift Tab
no longer work (1) - Shortcuts
Cmd 1..9
,Cmd Shift ]
,Cmd Shift [
,Cmd Shift W
still work
(1) Pythonista 311013 provides these shortcuts natively. Unfortunately, they do not work. Also these shortcuts are provided elsewhere in the responder chain, so, even if I register them via the Black Mamba, responder chain catches them sooner then Black Mamba and they do not work.
All these shortcuts do work prior to 311013. If you have 311013 installed, you can use
Cmd Q
to close tab (temporary) andCmd Shift ]
/Cmd Shift [
to show next / previous tab.P.S. User documentation is not updated (for
Cmd Q
), because it's a temporary workaround. I do expect that these shortcuts (Cmd W
, ...) will be fixed in the Pythonista and thenCmd Q
will be removed. - Bundled
-
Black Mamba 1.3.0 released:
- Pythonista 3.1.1 (311014)
- Compatibility check with 311014
- Shortcuts
Cmd W
,Ctrl [Shift] Tab
work
- Trashed
Cmd Q
shortcut (workaround for 311013) - Open Quickly supports File System Provider bookmarks
- You can search / open files added to Pythonista via
Open...
(External files) - These files are added as bookmarks (iOS terminology)
- If cell subtitle starts with
Documents
, it's a file from~/Documents
- If cell subtitle starts with
Bookmark
, it's a file from FSP
- You can search / open files added to Pythonista via
- Pythonista 3.1.1 (311014)
-
Blackmamba 1.3.2 released:
- Fixed exception when there's empty tab opened (#30)
- Open quickly selects proper tab when the file is already opened
and empty tab exists as well - Compatibility check with 311015
Cmd-Shift-]
,Cmd-Shift-[
registered only in Pythonista < 311015- These shortcuts are natively supported
- flake8-3.5.0, pyflakes-1.6.0
- Bare exception check
- Ambigious identifier check
-
Black Mamba 1.4.0 released:
- Fixed keyboard shortcut selector name generator
- Bundle
refactoring
introduced (includesrope
) - Refactoring functions introduced
- It's an EXPERIMENT. You should use version control system to avoid loosing data.
Cmd Option O
- Organize importsCmd Option E
- Expand star importsCmd Option R
- Rename identifier- Can be used as scripts as well, see
script/refactoring
folder - Preview dialog can be closed with
Cmd .
/Esc
, confirmed withEnter
- Scroll back to initial cursor location if analyzer didn't find an issue, ugly, but better than end of the file
NOTE: As mentioned, refactoring is an experiment. It does use
rope
internally, but it seems that therope
is unable to cope with built-ins, etc. (in case of expand star imports). Rename and organize imports works. Here's the screenshot if you'd like to check it. Use with caution. -
Black Mamba 1.4.1 released:
- Compatibility check with 3.1.1 (311016)
- Bundle
refactoring
enhanced withfuture
,libfuturize
,libpasteurize
modules script/refactoring/futurize.py
introduced (see Python Future)- Equivalent of
futurize -1 --all-imports -n -w --add-suffix 3 $editor.get_path()
(Stage 1 only) - When futurizer ends, editor text is replaced with content of the
.py3
and.py3
is trashed - You can run futurizer script with
Cmd Option F
- Equivalent of
- Improved updates check
- Console is not cluttered with local / latest release info (installer prints this)
- Update
check()
doesn't ask if update should (not) be installer (installer also asks) - If there's new update available, installer is executed, you will still be asked (just once, not twice)
- Script
new_file.py
modified- File opened
- Asks for a file name (empty &
Enter
-> Cancel) - New file path is currently opened file dirname + entered file name
- If file doesn't exist, new file is created and opened
- If file exists, file is opened
- Asks for a file name (empty &
- No file opened
- Same behavior as now
- New tab created and New File... button tap emulated
- File opened
- Installer
- Replaced
ModuleNotFoundError
(Python 3.6) withImportError
(Python 3.5)
- Replaced
-
Black Mamba 1.5.0 released:
- Documentation with new theme, rewritten, restructured
- GitHub release
1.5.0 (2018-01-11)
- Pass
-p no:cacheprovider
to fix operation not permitted for.cache
directory (run unit tests script) - Documentation cleanup and rewrite to Markdown, which is easily editable in Pythonista compared to reST
blackmamba.framework.security
introducedblackmamba.uikit.keyboard
- Camel case enum constant deprecated, will be removed in 2.0.0
- Use UPPER_CASED versions, camel case still exists as aliases
with bundle()
always unloadspkg_resources.*
causing issues- Launch Pythonista, run Black Mamba Analyze - works vs
- Launch Pythonista, run Pythonista unit tests, run Black Mamba Analyze - fails, because of
pkg_resources
-
@zrzka
Black Mamba short-cut can't work on Pythonista V3.4