You're Invited: Meet the Socket team at BSidesSF and RSAC - April 27 - May 1.RSVP
Socket
Sign inDemoInstall
Socket

meta

Package Overview
Dependencies
Maintainers
2
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

meta

Byte-code and ast programming tools

1.0.2
PyPI
Maintainers
2

Meta

A Pure Python module containing a framework to manipulate and analyze python abstract syntax trees and bytecode.

Example

This shows how to take python source to a code object and back again from within python:

.. code-block:: python

import meta, ast
source = '''
a = 1
b = 2
c = (a ** b)
'''

mod = ast.parse(source, '<nofile>', 'exec')
code = compile(mod, '<nofile>', 'exec')

mod2 = meta.decompile(code)
source2 = meta.dump_python_source(mod2)

assert source == source2

This shows the depyc script. The script compiles itself, and then the compiled script extracts itself:

.. code-block:: bash

DEPYC_FILE=`python -c"import meta.scripts.depyc; print meta.scripts.depyc.__file__"`
depyc $DEPYC_FILE --pyc > depycX.pyc
python -m depycX depycX.pyc --python > depycX.py
echo depycX.py

Notes

  • Meta is python3 compliant (mostly)

Bugs

  • The decompliler does not yet support complex list/set/dict - comprehensions

Testing

.. code-block:: bash

python -m unittest discover meta

test

Versioning

From the version 1.0.0, Meta follows Semantic Versioning <http://semver.org/spec/v1.0.0.html>_. The version X.Y.Z indicates:

  • X is the major version (backward-incompatible),
  • Y is the minor version (backward-compatible), and
  • Z is the patch version (backward-compatible bug fix).

Prior to version 1.0.0, custom versioning scheme was used.

FAQs

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts