omz:forum

    • Register
    • Login
    • Search
    • Recent
    • Popular

    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.


    StaSh version 0.7.0 released

    Pythonista
    python 2 python3 stash
    4
    10
    14972
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • bennr01
      bennr01 last edited by bennr01

      Hi everyone,
      some of you may have already noticed that StaSh version 0.7.0 0.7.1 was released a couple of months ago.
      It features a vast amount of changes since version 0.6.0 (including initial py3 compatibility).
      Please note that a forced update is required. Update by using selfupdate -f. Pythonista must be restarted after an update in order to allow the changes to become effective.

      A changelog is included at the end of this post.
      If you do not know what StaSh is, keep reading.

      Thanks to @ywangd for creating StaSh and allowing me to post the announcement on the forum.

      StaSh - Shell Like an Expert in Pythonista

      Inspired by shellista and its variants, StaSh is a serious attempt to implement a Bash-like shell for Pythonista.

      Since its initial release, valuable contributions and advices have been received
      constantly from the Pythonista community.
      The two most popular utilities are
      pip (authored by @briarfox)
      and git (authored by @jsbain).
      Remarkable contributions are also made by
      @dgelessus,
      @pudquick,
      @oefe,
      @cclauss,
      @georg.viehoever,
      @BBOOXX,
      @bennr01,
      @glider-gun,
      @steljas,
      @zrzka,
      @seanld,
      @zed,
      @sdushantha and
      @ywang-bom.

      StaSh stands for Pythonista Shell. While Sta may not be the best
      abbreviation for Pythonista, it forms a concise and meaningful word with the
      following Sh part. So the name StaSh was chosen to indicate it is a confined
      environment and great treasures may be found within.

      Installation

      StaSh can be easily installed via one line of python command
      (courtesy of @whitone).

      import requests as r; exec(r.get('http://bit.ly/get-stash').text)
      

      Simply copy the above line, paste into Pythonista interactive prompt and
      execute. It installs StaSh as a Python module under the site-packages
      folder (~/Documents/site-packages/stash) and copies a launching script,
      ~/Documents/launch_stash.py
      for easy access.

      StaSh works with both Pythonista 2 and 3, though not all commands support python3.

      If you have previous versions of StaSh installed (e.g. v0.4.x),
      You may need to restart Pythonista BEFORE the installation.

      If you have a GitHub tool available in Pythonista, such as
      gitview or
      gitrepo,
      you can choose to directly clone or download the
      repository.

      StaSh requires Pythonista v2.0 or Pythonista3 as the new ObjC feature is heavily used. For
      older Pythonista 1.5 compatible version, please refer to the
      v0.4 branch.

      Upgrade

      Once StaSh is installed, it can be easily updated by running the selfupdate
      command from within the shell.

      • selfupdate defaults to the master branch. To update from a different
        branch, e.g. dev, use selfupdate dev.
      • By default, selfupdate compares local and remote versions and only performs
        update if newer version is found. You can however force the update without
        version checking via selfupdate -f.
      • To check for newer version without actually install it, use selfupdate -n.
      • selfupdate manages StaSh installation folder and may delete files in the
        process. It is therefore recommended to not place your own scripts under
        $STASH_ROOT/bin. Instead, save your own scripts in~/Documents/bin or
        customise the locations with the BIN_PATH environment variable.
      • You may need to restart Pythonista after the update for changes to take full
        effects.

      selfupdate cannot be used for version 0.4.x and under. A fresh
      installation is needed.

      Version 0.7.0 requires a forced update. Please run selfupdate -f.

      Notable Features

      StaSh has a pile of features that are expected from a real shell. These
      features are what really set the difference from shellista.

      • Panel UI program that is completely event driven

        • No blocking thread, builtin interactive prompt is accessible at all time
        • Consistent look and feel as a proper PC terminal
        • Almost all scripts can be called from within StaSh, including programs
          using UI and Scene packages.
        • Attributed text (color and style) support
        • Multiple sessions are possible by opening additional Panel tabs
        • Being a pure UI program, it is possible to launch and forget. The program
          stays active indefinitely. Non-UI scripts can only run for 10 minutes
          in background. But StaSh can stay up forever (till memory runs out due to
          other Apps). You can just launch StaSh to run a few commands and leave it.
          It will still be there for you when you return later.
      • Comprehensive command line parsing and handling using
        pyparsing

        • Environmental variables, e.g echo $HOME, NAME=value
        • Aliases, e.g. alias l1='ls -1'
        • Single and double quotes behave like Bash, e.g. "*" means literal *,
          "$HOME" expands while '$HOME' does not.
        • Backslash escaping, e.g. ls My\ Script.py
        • Glob, e.g. ls ~/*.py
        • Backtick quotes for subprocess, e.g. touch `ls *.py`
        • Pipes to chain commands, e.g. find . -name "*.txt" | grep interesting
        • IO redirect (actually just Output redirect), e.g. ls *.py > py_files.txt.
          Input redirect can be achieved by using pipes.
          • It is possible to redirect to the Pythonista builtin console,
            e.g. ls > &3
        • Bang(!) to search command history, e.g. ls -1, !l. Bang commands like
          !! and !-1 also works.
      • Smart auto-completion just as expected

        • One UI button, Tab, is provided to enable command line auto-completion.
        • It is smart to complete either commands or files based on the
          cursor position
        • It also completes environment variables and aliases.
        • It also features a sub-command auto-completion system. For an example,
          type git sta and press Tab. It will auto-completes to git status .
          You can easily add your own sub-commands completion via JSON files.
      • Thread management allows multiple commands running in parallel

        • One foreground jobs and unlimited number of background jobs can run
          simultaneously.
        • A foreground job can be stopped by pressing the CC button or Ctrl-C
          on an external keyboard.
        • A background job is issued by appending an ampersand character (&)
          at the end of a normal command, e.g. httpserver &. It can be terminated
          by the kill command using its job ID.
        • A few utilities are provided for thread management.
          • jobs to list current running background jobs.
          • kill to kill a running job.
          • fg to bring background jobs to foreground
          • CZ button (Ctrl-Z) to send a foreground job to background
      • Command line history management. Three UI buttons are provided to navigate
        through the history.

      • On-screen virtual keys - an extra row of keys on top of the on-screen
        keyboard to provide control functions and easier access to symbols

        • Virtual keys for control functions including:
          • Tab - command line auto-completion
          • CC (Ctrl-C) - terminate the running job
          • CD (Ctrl-D) - end of Input
          • CU (Ctrl-U) - kill line
          • CZ (Ctrl-Z) - Send current running foreground job to background
          • KB - show/hide keyboard
          • H - display a popup window to show command history
          • Up - recall the previous command in history
          • Dn - recall the next command in history
        • Customisable virtual keys for commonly used symbols, e.g. ~/.-*|>.
          • The Symbols can be customized via the VK_SYMBOLS option in stash
            config file (default is .stash_config).
      • Swipe on the virtual key row to position cursor (similar to what Pythonista
        builtin editor offers)

      • External keyboard support

        • Tab key for auto-completion
        • Up (↑) / Down (↓) for navigating through command history
        • Ctrl-A and Ctrl-E to jump to the beginning and end of the input line,
          respectively
        • Ctrl-U to erase the input line
        • Ctrl-W to erase one word before cursor
        • Ctrl-L to clear the screen
      • You can run (almost) any regular python scripts from within StaSh

        • There is no need to customize them for the shell. If it can be executed by
          a python interpreter via python your_script.py, you can just call it from
          within StaSh by just typing your_script
        • The shell object is made available to scripts being called. This enables a
          range of complex interactions between the shell and called scripts.
          For an example, the running script can use the shell object to execute
          more commands, e.g. _stash('pwd').
      • You can give it a resource file, similar to .bashrc, to customize its
        behaviour. Like the Bash resource file, aliases, environment
        variables can be set here. The default resource file is .stashrc under
        StaSh installation root (i.e. ~/Documents/site-packages/stash).

        • The prompt is customizable with the PROMPT environment variable.
          • \w - current working directory with HOME folder abbreviated as ~
          • \W - last path component of current working directory
          • All other strings are displayed literally
          • The default setting is PROMPT='[\W]$ '
      • Easy self update to keep update with the development by running a single
        selfupdate command from within the shell.

      • The UI can be configured via configuration file to customize its font
        size and color. The default config file is .stash_config or stash.cfg
        under StaSh installation root.

      Usage

      The usage of StaSh is in principle similar to Bash. A few things to note are:

      • The search paths for executable scripts is set via an environment variable
        called BIN_PATH as PATH is used by the system. The default BIN_PATH is
        ~/Documents/bin:~/Documents/stash_extensions/bin:$STASH_ROOT/bin.

      • The executable files are either Python scripts or StaSh scripts. The type of
        script is determined by looking at the file extensions ".py" and ".sh".
        A file without extension is considered as a shell script.

        • When invoking a script, you can omit the extension, StaSh will try find the file
          with one of the extensions. For an example, StaSh interprets the command
          selfupdate and find the file selfupdate.py to execute.
        • Files without extension won't show up as an auto-completion possibility.
      • Commands can only be written in a single line. No line continuation is
        possible. However, multiple commands can be written in a single line by
        separating them with semicolons, e.g. ls -1 > file_list; cat file_list.

      • There are many Python scripts provided along with StaSh.
        These scripts range from performing
        regular shell tasks to advanced utilities like ssh and git. Note the
        scripts are by no means complete when compared to a real Linux shell. The
        collection will be gradually expanded should the need arise. It is
        also expected and appreciated that the community would come up with more
        scripts. The pip command may also install new commands.

        • alias.py - Define or print aliases
        • cat.py - Print contents of file
        • cd.py - Change current directory
        • clear.py - Clear console
        • cowsay.py - configurable speaking cow
        • cp.py - Copy file
        • crypt.py - File encryption using AES in CBC mode
        • curl.py - Transfer from an URL
        • cut.py - Cut out selection portions of each line of a file
        • dropbox_setup.py - Configure dropbox accounts for other commands
        • du.py - Summarize disk usage of the set of FILEs, recursively for directories
        • easy_config.py - UI for configuring stash
        • echo.py - Output text to console
        • edit.py - Open any text type files in Pythonista editor
        • find.py - Powerful file searching tool
        • fg.py - Bring a background job to foreground
        • ftpserver.py - A simple FTP server
        • gci.py - Interface to Python's built-in garbage collector
        • gh.py - GitHub interface
        • git.py - Git client ported from shellista
        • grep.py - search contents of file(s)
        • head.py - Display first lines of a file
        • httpserver.py - A simple HTTP server with upload function (ripped from
          https://gist.github.com/UniIsland/3346170)
        • jobs.py - List all jobs that are currently running
        • kill.py - Terminate a running job
        • latte.py - package manager
        • ls.py - List files
        • mail.py - Send emails with optional file attachment
        • man.py - Show help message (docstring) of a given command
        • mc.py - Easily work with multiple filesystems (e.g. local and FTP)
          synchronously.
        • md5sum.py - Print or check MD5 checksums
        • mkdir.py - Create directory
        • monkeylord.py - Manage monkey patches with the goal to make Pythonista more viable
        • more.py - Display output one screen page at a time
        • mount.py - Mount filesystems
        • mv.py - Move file
        • openin.py - Show the open in dialog to open a file in external apps.
        • pbcopy.py - Copy to iOS clipboard
        • pbpaste.py - Paste from iOS clipboard
        • ping.py - Ping remote hosts
        • pip.py - Search, download, install, update and uninstall pure Python
          packages from PyPI.
        • printenv.py - List environment variables
        • printhex.py - Print hexadecimal dump of the given file
        • pwd.py - Print current directory
        • python.py - Run python scripts or modules
        • python3.py - Run python3 scripts or modules
        • quicklook.py - iOS quick look for files of known types
        • rm.py - delete (remove) file
        • rmdir.py - delete (remove) directories
        • scp.py - Copy files from/to remote servers.
        • selfupdate.py - Update StaSh from its GitHub repo
        • sha1sum.py - Print of check SHA1 checksums
        • sha256sum.py - Print of check SHA256 checksums
        • sort.py - Sort a list, also see unique
        • source.py - Evaluate a script in the current environment
        • ssh.py - SSH client to either execute a command or spawn an interactive
          session on remote servers. pyte is
          used for terminal emulation and gives the command the feel of a
          full-fledged SSH client.
        • ssh-keygen.py - Generate RSA/DSA SSH Keys.
        • stashconf.py - Change StaSh configuration on the fly
        • tail.py - Print last lines of a FILE.
        • tar.py - Manipulate archive files
        • touch.py - Update timestamp of the given file or create it if not exist
        • totd.py - Print a random tip
        • umount.py - Unmount filesystems
        • uniq.py - Remove duplicates from list, also see sort
        • unzip.py - Unzip file, also see zip
        • version.py - Show StaSh installation and version information
        • wc.py - Line, word, character counting
        • webviewer.py - Open a url in the webbrowser
        • wget.py - get data from the net
        • whatis.py - Show a description for some of the commands
        • which.py - Find the exact path to a command script
        • wol.py- Wake on LAN using MAC address for launching a sleeping system
        • xargs.py - Command constructing and executing utility
        • zip.py - Zip file, also see unzip

      Acknowledgements

      • Pythonista is a wonderful piece of
        software.
      • StaSh is inspired by
        shellista
        and its variants, including
        ShellistaExt and
        ShellistaUI.
      • The UI part of StaSh has its root from ShellistaUI.
      • Many of the command scripts, e.g. ls.py, cp.py, mv.py, are taken from
        ShellistaExt with some modifications.

      Known Issues

      • Pickled objects are not restored correctly and generate AttributeError as
        if the class definition cannot be found.
      • Some commands may still not fully support python3.

      Contributing

      • Check any open issues or open a new issue to start discussions about your
        ideas of features and/or bugs
      • Fork the repository, make changes, and send pull requests
        • Please send pull requests to the dev branch instead of master

      Change Log

      Version 0.7.0 - 2018-05-04

      • New Features
        • Python 3 compatibility
          • StaSh now supports python 3, though some commands still need to be ported.
        • StaSh now shows a short tip on startup
        • pip now supports wheels and commandline scripts and has been improved greatly.
        • the python command now has an interactive console
        • man can now also show help for other topics, e.g. man monkeypatching
        • the monkeylord command helps improving desktop compatibility by providing monkeypatches for various modules and functions (e.g. subprocess)
        • easy_config.py allows you to easily configure your StaSh using a UI.
        • access other filesystems using the mount, umount and mc commands.
        • StaSh can now run commands specified in sys.argv, allowing command execution using the pythonista URL schema.
        • And many more improvements and bugfixes everywhere.
      • Command Scripts
        • cowsay.py
        • dropbox_setup.py
        • easy_config.py
        • ftpserver.py
        • gci.py
        • gh.py
        • head.py
        • latte.py
        • mc.py
        • monkeylord.py
        • more.py
        • mount.py
        • ping.py
        • python3.py
        • rmdir.py
        • tail.py
        • totd.py
        • umount.py
        • webviewer.py
        • whatis.py

      Version 0.6.0 - 2016-02-08

      • New Features

        • New thread management system enables multiple jobs running at once.
          • One foreground jobs and unlimited number of background jobs.
        • sys.stdin, sys.stdout and sys.stderr are now replaced system
          wide to allow IO dispatch based on running threads.
      • Improvements

        • Runtime state is now managed by threads for simplicity and readability.
        • Environment persistent level is now explicitly required by caller.
          No more magic top level thread.
      • Command Scripts

        • New scripts
          • jobs.py
          • kill.py
          • fg.py
          • curl.py

      Version 0.5.x - 2016-01-11

      • New Features

        • Attributed text (color and style) support
          • Default font size is now 14 on iPad (increased from 12)
        • True external keyboard support
        • Killable threads
        • StaSh is now installed as a Python module under ~/Documents/site-packages/stash
          • Also adds a launch script as ~/Documents/launch_stash.py for easy access
      • Improvements

        • Largely redesigned the logic of user/script IO handling (modelled after pyte)
        • Better scrolling
      • Command Scripts

        • New scripts
          • du.py - Summarize disk usage recursively
          • Replace selfupdate.sh with selfupdate.py to enable more sophisticated
            installation functions.

      Version 0.4.x

      • Improvements

        • Added launch_stash.py to run StaSh in a way that can survive through
          "global variable clearing" in Pythonista.
      • Command Scripts

        • New scripts
          • wol.py - Wake computer on LAN
        • Changed scripts
          • pbcopy.py - renamed from copy.py to avoid name conflict and to be consistent with the OSX tool.
          • pbpaste.py - renamed from paste.py.
      • Bug Fixes

        • sys.path is now correctly restored at command scripts exit.
        • Change directory no longer crashes when accessing folders inaccessible.

      Version 0.4.1 - 2015-03-06

      • New Features

        • StaSh now provides localized input history for running scripts.
        • New py_pdb config option to enable dropping into pdb when a runing
          script errors out. This makes it convenient to debug Python scripts
          inside StaSh.
        • Added ipython style (up-key) history search
      • Improvements

        • Started overhaul of the git command.
          • It now takes a more modular approach to separate complex sub-command
            into its own module.
          • branch, merge, reset, fetch sub-commands significantly
            improved.
          • Updated dependancies on latest dulwich release.
        • Press CC (Control-C) while script is waiting for user input no longer
          breaks sub-sequent user input.
        • Better docstring for scripts
        • Various bug fixes
      • Command Scripts

        • New scripts
          • stashconf.py - Change StaSh configuration on the fly
          • telnet.py - Simple telnet client
        • Changed scripts
          • pcsm.py - Removed. The scope of the design has been broadened to
            target all pythonista scripts. The script will be back when it is
            ready for the design change (under a different name). In the mean
            time, psiclient is a
            proof-of-concept client for Pythonista Script Index.

      Version 0.4.0 - 2015-01-29

      • New Features

        • New UI design with unified Input/Output areas
          • No more screen flashing when scrolling. Smooth scroll at all time
          • Support device rotation at any direction
          • Manipulate cursor position with ease
          • Consistent look and feel as a proper PC terminal
        • External keyboard support
          • Tab completion works flawlessly
          • Navigate through command history with ⌘ (cmd) + up (↑) / down (↓)
        • Swipe gesture on virtual key buttons
          • Similar to what Pythonista builtin editor offers, you can now swipe
            left/right on the extra virtual key row to position cursor with
            better control and precision
        • More virtual keys
          • Show/hide on-screen keyboard with the KB button.
          • Kill line easily with the CU (Ctrl-U) button
      • Improvements

        • Auto-completion now takes account of cursor position and completes the
          corresponding word fragment
        • You can now navigate back to the unfinished line when browsing through
          command history
        • Single Gist file installation just got better. Now it requires no
          additional steps
          . Simply run the script and the full stack of files
          will be installed.
      • Command Scripts

        • New scripts
          • crypt.py - File encryption using AES in CBC mode
        • Changed scripts
          • pcsm.py - scsm is renamed to pcsm (Pythonista Command
            Script Manager) to clearly state that the scripts are NOT StaSh
            specific. The Index
            repo
            is
            also renamed to Pythonista Command Script Index.
      • Various bug fixes

      Version 0.3.0 - 2015-01-25

      • New Features

        • The main _stash object is now callable. It is now more convenient for a
          Python script to issue Shell commands via the callable, e.g.
          _stash('ls'), _stash('pwd')
        • Sub-command auto-completion system configurable via a JSON file (currently
          supports pip and git)
        • Comments (both full line and trailing) are now allowed in shell scripts
        • All arguments are now by default converted from unicode type to str
          type with utf-8 encoding before passing them to external scripts. The
          change is to recognise that Python 2.x and its libraries are not fully
          unicode compliant. This behavior can be turned off in config file.
        • Added a config option, py_traceback, to display full Python exception
          trace stack for command scripts.
        • A lib folder is added for storing shared modules so command scripts do
          not have to include them separately.
          • These modules are stored as attributes of the main _stash object.
      • Improvements

        • Runtime now emulates sub-shell environment even more correctly.
        • Unit tests added with Travis CI support.
        • Documentation updates
      • Bug Fixes

        • Multi-statements separated by semicolon in a single line should now work
          correctly in all cases
        • White-spaces are now correctly recognized within double quotes
        • Shell scripts now correctly works with pipes
        • Various other bug fixes
      • Command Scripts

        • New scripts
          • pip.py - A pare-down client for PyPI that does search,
            install, remove, update, list, versions.
            • Only works for pure Python packages that do not require
              compilation
            • No dependency handling at this stage but will report failure if
              installed package failed to import (that may be caused by
              dependency)
          • git.py - Basic git client ported from shellista
            • Requires customized
              dulwich
              and gittle
              modules.
            • If the above modules are not installed, they will be automatically
              installed the first time git runs. However, if they exist
              already, please make sure the above customized versions are in
              use.
          • scsm.py - StaSh Command Script Manager (initial attempt to build
            an index and a client for command scripts that perform list,
            install, remove and info)
            • It is really in a test phase and open to all suggestions.
            • Check out the Index
              repo
              for
              how to register new command scripts
          • tar.py - Manipulate archive files (tar, gzip, bzip2 format)
          • find.py - Search file/directory recursively in a file hierarchy
          • xargs.py - Construct argument lists and execute
            • This command enables some quite powerful operations. A few
              examples are as follows:
              • Delete all tmp files: find . -n "tmp*" | xargs rm
              • Find all Python files and archive them: find ~/Documents -n "*.py" | xargs tar -zcvf scripts.tar.gz
              • Rename all log files to log.old: find . -n "*.log" | xargs -n 1 -I {} mv {} {}.log
          • mail.py - Send emails with optional file attachment
          • cut.py - Cut out selection portions of each line of a file
          • wc.py - Line, word and character count
          • md5sum.py - Print or check MD5 checksums
          • sha1sum.py - Print of check SHA1 checksums
          • sha256sum.py - Print of check SHA256 checksums
          • zip.py - Package and compress files and directories
        • Changed scripts
          • clear.py now replaces cls.py to be consisent with the Linux counterpart
          • cat.py - now usable on binary files
          • selfupdate.sh - now removes test related files.
          • unzip.py - now takes a -t option to show file contents
          • printenv.py - now ignores special environment variables, e.g. $1

      Version 0.2.0 - 2014-12-31

      • New Features

        • Added virtual keys for commonly used symbols, e.g. ~/.-*|>
          • The keys can be customized with VK_SYMBOLS option in .stash_config
        • Shell scripts can now access arguments via special environment variables
          ($0, $1, ..., $#, $@)
        • Exit status is now available as $?
        • Background jobs are now allowed by appending an ampersand at the end of a
          command, e.g. httpserver &.
          • Background jobs are executed in Pythonista main thread and can be
            terminated by tap the close button on the interactive prompt panel.
            This enables a script to perform housekeeping tasks recieving the
            KeyboardInterrupt exception. An example is the httpserver command.
            It releases the binding port when terminated and allows subsequent
            calls to the same command without restarting Pythonista.
      • Improvements

        • Parser is redesigned and optimized. It should be more efficient and
          faithful to Bash in some edge cases.
        • Runtime is optimized to make clear sub-shell emulation, especially on
          variable and environment passing between shells of different levels.
          • Multi-line shell scripts are now executed in a single thread for
            improved efficiency
        • Auto-completion enhanced
        • Command line history management enhanced
      • Command Scripts

        • New scripts
          • ssh.py - SSH client to either execute a command or spawn an
            interactive session on remote servers.
            pyte is used for terminal
            emulation and gives the command the feel of a full-fledged SSH client.
          • scp.py - Copy files from/to remote servers.
          • ssh-keygen.py - Generate RSA/DSA SSH Keys.
          • man.py - Show help message (docstring) of a given command
          • httpserver.py - A simple HTTP server with upload function
            (ripped from https://gist.github.com/UniIsland/3346170)
          • edit.py - Open any text type files in Pythonista editor
          • openin.py - Show the open in dialog to open a file in external apps.
          • quicklook.py - iOS quick look for files of known types
          • touch.py - Update timestamp of the given file or create it if not exist
          • source.py - Evaluate a script in the current environment
          • python.py - run python scripts or modules
          • which.py - Find the exact path to a command script
          • printhex.py - Print hexadecimal dump of the given file
          • version.py - Show StaSh installation and version information
        • Changed scripts
          • env.py - Replaced by printenv.py (env is now an alias to printenv)
          • bh.py - Removed. /dev/null is accessible in StaSh
          • selfupdate.sh - The GitHub branch to retrieve can now be customized
            via environment variable SELFUPDATE_BRANCH (default is master)
      • Various bug fixes

      Version 0.1.0 - 2014-12-10

      • initial release

      Links

      • Main StaSh forum thread
      • Pythonista 3 update thread
      • GitHub repo
      victordomingos 1 Reply Last reply Reply Quote 4
      • bennr01
        bennr01 last edited by

        If you are interested, here are some statistics about the amount of changes (in the dev-branch):

        • Its been 2 years since version 0.6.15. During this time, 14 Contributors have made ~252 commits and changed 209 files (Comparsion).
        • Since version 0.6.0, 14 Contributors have made ~407 commits and changed 227 files (Comparsion).

        Also, if you are experiencing problems with py3, you should check out the dev branch, which contains more improvements. To do this, run selfupdate -f dev and then restart pythonista.

        1 Reply Last reply Reply Quote 1
        • ccc
          ccc last edited by

          This is awesome work!!! Thanks to all involved.

          StaSh now supports python 3, though some commands still need to be ported.

          Is there a list somewhere of those commands that still need to be ported?

          bennr01 1 Reply Last reply Reply Quote 1
          • victordomingos
            victordomingos last edited by

            Very nice. This is such an important tool, that I believe it deserves more integration with Pythonista, like for instance some button to install it directly from the app’s settings.

            1 Reply Last reply Reply Quote 0
            • bennr01
              bennr01 @ccc last edited by

              @ccc said:

              StaSh now supports python 3, though some commands still need to be ported.

              Is there a list somewhere of those commands that still need to be ported?

              There is no list, but most of the large commands (ssh, scp, git (i think @JonB is already working on it), gh, mc, monkeylord, mount, ...) as well some of the less used commands (printhex, sqlite, xargs, ...) have not been completely tested and may not work at all.
              I can, however, guarantee that cowsay works perfectly.
              Jokes aside, there is also a py3 todo list for known bugs, but it only contains known problems.

              1 Reply Last reply Reply Quote 0
              • victordomingos
                victordomingos @bennr01 last edited by

                @bennr01 In the Github ywangd/stash repository, there is no 0.7.0 release. Is there a new official repo?

                bennr01 1 Reply Last reply Reply Quote 0
                • bennr01
                  bennr01 @victordomingos last edited by

                  @victordomingos said:

                  @bennr01 In the Github ywangd/stash repository, there is no 0.7.0 release. Is there a new official repo?

                  No, we are still using @ywangd's repository.
                  The code in the repo should by now be version 0.7.1, but I do not have permission to create a release.
                  It seems like there is also no 0.6.0 release.
                  Well, since most people will use selfupdate -f to update, i do not think there will be any real problems.

                  1 Reply Last reply Reply Quote 0
                  • gary.yang
                    gary.yang last edited by

                    0.7.1,for python 3.6 pip doesn't work,how could i use it

                    bennr01 1 Reply Last reply Reply Quote 0
                    • bennr01
                      bennr01 @gary.yang last edited by

                      @gary.yang What exactly is not working? Do you get an error message or does it install something in a wrong way? There is a known bug where all subpackages are installed in site-packages-3 instead of their parent package (see here for details).

                      1 Reply Last reply Reply Quote 0
                      • gary.yang
                        gary.yang last edited by

                        @bennr01 oh, i have made a mistake for only typing pip ,i'm sorry
                        it does work

                        1 Reply Last reply Reply Quote 0
                        • First post
                          Last post
                        Powered by NodeBB Forums | Contributors