Skip to content

Releases: tusharsadhwani/zxpy

1.6.3

21 Feb 11:26
13adcc0
Compare
Choose a tag to compare

What's Changed

Full Changelog: 1.6.2...1.6.3

1.6.2

06 Aug 11:59
Compare
Choose a tag to compare

What's Changed

Full Changelog: 1.6.1...1.6.2

1.6.1

08 May 20:26
Compare
Choose a tag to compare
  • Fix bug in interactive mode invocation: zxpy by itself wouldn't work before this.

Interactive mode

07 Mar 20:10
Compare
Choose a tag to compare

Added interactive mode option: zxpy -i myfile.py.

Full Changelog: 1.5.2...1.6.0

Bugfixes

19 Oct 15:10
Compare
Choose a tag to compare

What's Changed

  • Break Multiline REPL Statements by @udasitharani in #40

New Contributors

  • @udasitharani made their first contribution in #40

Full Changelog: 1.5.1...1.5.2

Fix MacOS tests

18 Oct 19:03
Compare
Choose a tag to compare
  • use read1() instead of select polling, to simplify some logic
  • remove the use of echo -n, as that is linux-specific

Python3.10 support

11 Oct 06:24
Compare
Choose a tag to compare

Adds Python3.10 support

Faster output and no deadlocks

29 Sep 18:01
Compare
Choose a tag to compare
  • Use the select module to do non-blocking reads from the shell process, instead of reading 1 byte at a time. Leads to significantly faster output for large streams, without any blocking.
  • Use process.communicate() to read stdout and stderr without causing deadlock due to buffer overflow.

Misc. bugfixes

28 Sep 19:23
Compare
Choose a tag to compare
  • Ensure the package actually works in Python 3.6+
  • Make sure that ~'...' raises an error if the process exits with a non-zero return code
  • Fix an edge case in supported syntax: [a, b, c] = ~'...'

Add support for raw shell-strings

03 Aug 14:21
Compare
Choose a tag to compare

Now you can pass whole commands as variables inside f-strings, without quoting.

Take this piece of code:

>>> cmd = 'uname -a'
>>> ~f'{cmd}'
/bin/sh: 1: uname -a: not found 

This is because uname -a was quoted into 'uname -a' to avoid shell injection.

To avoid this, support for :raw format_spec as added:

>>> cmd = 'uname -a'
>>> ~f'{cmd:raw}'
Linux pop-os 5.11.0 [...] x86_64 GNU/Linux

Note that this shouldn't be used with external data, or this will expose you to shell injection.