Skip to main content

Python toolkit for Tezos

Project description

PyTezos

Twitter Monthly downloads GitHub stars Python Version
Binder License: MIT Latest release GitHub issues GitHub pull requests

  • RPC query engine
  • Cryptography
  • Building and parsing operations
  • Smart contract interaction
  • Local forging/packing & vice versa
  • Working with Michelson AST

PyTezos CLI

  • Generating contract parameter/storage schema
  • Activating and revealing accounts
  • Deploying contracts (+ GitHub integration)

Michelson REPL

  • Builtin interpreter (reimplemented)
  • Set of extra helpers (stack visualization, blockchain context mocking)

Michelson Jupyter kernel

  • Custom interpreter with runtime type checker
  • Syntax highlighting, autocomplete with Tab
  • In-place docstrings with Shift+Tab
  • Macros support
  • Verbose execution logging
  • Debug helpers

Michelson integration testing framework

  • Writing integration tests using unittest package
  • Simulating contract execution using remote intepreter (via RPC) or builtin one

Installation

Make sure you have Python 3.8 to 3.12 installed and set as default in the system.

You also need to install cryptographic packages before installing the library/building the project:

Linux

Ubuntu, Debian and other apt-based distributions

$ sudo apt install libsodium-dev libgmp-dev pkg-config

Arch Linux

$ sudo pacman -Syu --needed libsodium gmp

MacOS

Homebrew needs to be installed.

$ brew install libsodium gmp pkg-config

M1 (ARM)

In case libsodium or gmp cannot find either include or lib paths, try explicitly set environment vars:

export CFLAGS="-I/opt/homebrew/Cellar/gmp/6.2.1_1/include/ -L/opt/homebrew/Cellar/gmp/6.2.1_1/lib/"
export DYLD_LIBRARY_PATH=/opt/homebrew/lib/
pip3 install --user pytezos

For running tests you might also need to export LD_LIBRARY_PATH:

export LD_LIBRARY_PATH=/opt/homebrew/lib/

Windows

The recommended way is to use WSL and then follow the instructions for Linux, but if you feel lucky you can try to install natively:

  1. Install MinGW from https://osdn.net/projects/mingw/
  2. Make sure C:\MinGW\bin is added to your PATH
  3. Download the latest libsodium-X.Y.Z-msvc.zip from https://download.libsodium.org/libsodium/releases/.
  4. Extract the Win64/Release/v143/dynamic/libsodium.dll from the zip file
  5. Copy libsodium.dll to C:\Windows\System32\libsodium.dll

From PyPi

$ pip install wheel setuptools pkginfo cryptography
$ pip install pytezos

Google Colab

>>> !apt install libsodium-dev libgmp-dev
>>> !pip install pytezos

Docker container

Verified & minified images for CI/CD https://hub.docker.com/r/bakingbad/pytezos/tags

$ # 1. Use image from registry
$ docker pull bakingbad/pytezos
$ # or build it yourself
$ docker build . -t pytezos
$ # 2. Use included docker-compose.yml
$ docker-compose up -d notebook

Building from sources

Requirements:

  • Python 3.8 to 3.12
  • libsodium, coincurve, gmp
  • make
$ # prepare environment
$ make install
# # run full CI with tests
$ make all

Quick start

Read quick start guide
Learn how to enable Jupyter with Michelson

API reference

Check out a complete API reference

Inline documentation

If you are working in Jupyter/Google Colab or any other interactive console, you can display documentation for a particular class/method:

>>> from pytezos import pytezos
>>> pytezos

Publications

Contact

Credits

  • The project was initially started by Arthur Breitman, now it's maintained by Baking Bad team.
  • Baking Bad is supported by Tezos Foundation
  • Michelson test set from the Tezos repo is used to ensure the interpreter workability
  • Michelson structured documentation by Nomadic Labs is used for inline help

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

nobi_pytezos-0.1.2.tar.gz (166.5 kB view details)

Uploaded Source

Built Distribution

nobi_pytezos-0.1.2-py3-none-any.whl (210.0 kB view details)

Uploaded Python 3

File details

Details for the file nobi_pytezos-0.1.2.tar.gz.

File metadata

  • Download URL: nobi_pytezos-0.1.2.tar.gz
  • Upload date:
  • Size: 166.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.8.19

File hashes

Hashes for nobi_pytezos-0.1.2.tar.gz
Algorithm Hash digest
SHA256 748cee69ead6b37c1cea9e8b13f13d478d80c45d88b78fd665f06dda171422a8
MD5 867cfcfe9a6746c43055150e123cd7c9
BLAKE2b-256 e9b02d68d35e74efdc12cd7278e7157cb7191854cacd07e16b3ea30133f32e2b

See more details on using hashes here.

File details

Details for the file nobi_pytezos-0.1.2-py3-none-any.whl.

File metadata

  • Download URL: nobi_pytezos-0.1.2-py3-none-any.whl
  • Upload date:
  • Size: 210.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.8.19

File hashes

Hashes for nobi_pytezos-0.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 bb5913c095b3f1f178a6d3fc92072df59f0357a2c9962043758a85658dc353a5
MD5 ee3f8126cfc34981f9df9719d9bb0b32
BLAKE2b-256 e9e4b7af71d6647c05474ec93678e188e70c8b075d0b99fc50e34fd121054d64

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