Skip to main content
Join the official 2019 Python Developers SurveyStart the survey!

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.

Files for kaze-boa, version 0.5.1
Filename, size File type Python version Upload date Hashes
Filename, size kaze_boa-0.5.1-py3-none-any.whl (59.3 kB) File type Wheel Python version py3 Upload date Hashes View hashes
Filename, size kaze-boa-0.5.1.tar.gz (36.1 kB) File type Source Python version None Upload date Hashes View hashes

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN SignalFx SignalFx Supporter DigiCert DigiCert EV certificate StatusPage StatusPage Status page