Skip to main content

A Python compiler for the kaze Virtual Machine

Project description


===========================================
Python compiler for the kaze Virtual Machine
===========================================

Overview
--------

The ``kaze-boa`` compiler is a tool for compiling Python files to the
``.avm`` format for usage in the `kaze Virtual
Machine <https://github.com/kaze-project/kaze-vm/>`__ which is used to
execute contracts on the `kaze
Blockchain <https://github.com/kaze-project/kaze/>`__.

The compiler supports a subset of the Python language ( in the same way
that a *boa constrictor* is a subset of the Python snake species)

What does it currently do
^^^^^^^^^^^^^^^^^^^^^^^^^

- Compiles a subset of the Python language to the ``.avm`` format for
use in the `kaze Virtual
Machine <https://github.com/kaze-project/kaze-vm>`__
- Works for Python 3.6+
- Adds debugging map for debugging in kaze-python or other kaze debuggers


What will it do
^^^^^^^^^^^^^^^

- Compile a larger subset of the Python language

Get Help or give help
^^^^^^^^^^^^^^^^^^^^^

- Open a new
`issue <https://github.com/KAZEBLOCKCHAIN/kaze-boa/issues/new>`__ if you
encounter a problem.
- Or ping **@localhuman** on the `kaze official community
chatroom <https://discord.gg/R8v48YA>`__.
- Pull requests welcome. New features, writing tests and documentation
are all needed.

Installation
------------

Make sure you are using a Python 3.6 or greater virtual environment

Pip
^^^

::

pip install kaze-boa

Docker
^^^^^^

This project contains a Dockerfile to batch compile Python smart
contracts. Clone the repository and navigate into the docker sub
directory of the project. Run the following command to build the
container:

::

docker build -t kaze-boa .

The kaze-boa Docker container takes a directory on the host containing
python smart contracts as an input and a directory to compile the .avm
files to as an output. It can be executed like this:

::

docker run -it -v /absolute/path/input_dir:/python-contracts -v /absolute/path/output_dir:/compiled-contracts kaze-boa

The -v (volume) command maps the directories on the host to the
directories within the container.

Manual
^^^^^^

Clone the repository and navigate into the project directory. Make a
Python 3 virtual environment and activate it via:

::

python3 -m venv venv
source venv/bin/activate

or, to install Python 3.6 specifically:

::

virtualenv -p /usr/local/bin/python3.6 venv
source venv/bin/activate

Then, install the requirements:

::

pip install -r requirements.txt

Usage
-----

The compiler may be used like in the following example:

::

from boa.compiler import Compiler

Compiler.load_and_save('path/to/your/file.py')

Docs
----

You can `read the docs
here <http://kaze-boa.readthedocs.io/en/latest/>`__.

Tests
-----

All tests are located in ``boa_test/test``. Tests can be run with the following command ``python -m unittest discover boa_test``

License
-------

- Open-source `MIT <LICENSE.md>`__.
- Main author is `localhuman <https://github.com/localhuman>`__.

Donations
---------

Accepted at **ATEMNPSjRVvsXmaJW4ZYJBSVuJ6uR2mjQU**


Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

kaze-boa-0.5.1.tar.gz (36.1 kB view details)

Uploaded Source

Built Distribution

kaze_boa-0.5.1-py3-none-any.whl (59.3 kB view details)

Uploaded Python 3

File details

Details for the file kaze-boa-0.5.1.tar.gz.

File metadata

  • Download URL: kaze-boa-0.5.1.tar.gz
  • Upload date:
  • Size: 36.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.11.0 pkginfo/1.4.2 requests/2.19.1 setuptools/40.4.1 requests-toolbelt/0.8.0 tqdm/4.23.4 CPython/3.7.0

File hashes

Hashes for kaze-boa-0.5.1.tar.gz
Algorithm Hash digest
SHA256 97dce455508240e4e21b8fd40c4cc17f2c5bea2ffd964547ec9ae4317b5ffe6f
MD5 231bd628493032d08a41b36a003b007d
BLAKE2b-256 c34662adc94e81115986d18b1a02eda708e2ef07da2ce9a9c6818791308bbbcf

See more details on using hashes here.

File details

Details for the file kaze_boa-0.5.1-py3-none-any.whl.

File metadata

  • Download URL: kaze_boa-0.5.1-py3-none-any.whl
  • Upload date:
  • Size: 59.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.11.0 pkginfo/1.4.2 requests/2.19.1 setuptools/40.4.1 requests-toolbelt/0.8.0 tqdm/4.23.4 CPython/3.7.0

File hashes

Hashes for kaze_boa-0.5.1-py3-none-any.whl
Algorithm Hash digest
SHA256 1743ef11c967013125d91f71013c918d0b360150771f724872ee0c3eb35973f3
MD5 276223aac0140cf58e8c9ffed2439164
BLAKE2b-256 a2d7cbb486d184bd2b25c653879ef1420a73da0e920e1ebe01eb2fe43cc5b1ea

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page