X-python

Latest version: v1.5.1

Safety actively analyzes 621420 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 1 of 3

1.5.1

* Add Python 3.11 support
* Start using branches to support running on older Pythons
* Use newer xdis
* Revise tests to work more along the lines of decompilers and xdis. This also lets us share test code.
* Add Administrative merge code in support of new branches
* Many bug fixes
* Start to Modernize style, lint, use "black" and "isort"

Some work to allow continuing on Python 3.12 and beyond
* Remove use of nose/nosetest
* Add pyproject.toml

1.5.0

* Better PyPy 3.6-3.8 opcode coverages,
* Better 3.9 opcode coverage
* Start handling Python 3.10
* Add bytecode files and testing for the above.

1.4.0

* Use newer xdis which supports 3.10. We don't have 3.10 opcode interpretation yet though.
This was a lot of upheaval since we can no longer use floats to represent python versions:
3.1 == 3.10 in floating point. As xdis uses, we use tuples now.
* Improve fake `version_info` for PyPy.
* Start pypy37 and pypy38 bytecodes, although this is not finished yet. You interpret other bytecode from PyPy though.
* Tweak `FORMAT_VALUE` and improve assembly display

1.3.6

* Handle Python 3.7 - 3.9 better
* fake sys.version, sys.version_info, and sys.hexversion in cross interpreting
* Handle PyPy 3.5 and other PyPy's better
* Fix bug in reporting line number
* Fix bug in Python 2.{4,5} MAKE_CLOSURE
* Improve ofrmating on IMPORT_NAME on 2.6 and later
* Type check VM arguments more

1.3.5

Note: a lot of stdlib tests have become broken. This is probably ood because it reflects that we are honestly interpreting more and
not running interpreter code as builtin Python functions (e.g. eval and exec used to work this way.)

* Start interpreter assisted breakpoints.
* Fill out interpreter inspect more
* exec <bytes> is the same as exec <str>
* make version pydoc frendly
* propagate interpreter-caught exceptions more properly

1.3.4

Small changes.

* `run_eval()` renamed to `eval_frame()` to better match the way CPython does it
* `exec()`, and `eval()` builtins go through `compile` and `eval_frame()` so they get interpreted
* It is okay when `exec()` and `eval()` which call `eval_frame()` leave data on the stack (?)
* `__module__` property set properly on `eval_frame()`
* `pretty_event_flags()` will show VM tracing event flags nicley. This helps [trepan-xpy](https://pypi.org/project/trepanxpy/)
* `__qualname__` and `__name__` are set differently and properly in `MAKE_FUNCTION` in 3.4+
* More tests and expanded coverage
* Work progress in getting 3.6+ `GET_AWAITABLE` done, but more work is needed.

Page 1 of 3

© 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.