pytezos


Namepytezos JSON
Version 3.11.3 PyPI version JSON
download
home_pagehttps://pytezos.org
SummaryPython toolkit for Tezos
upload_time2024-02-23 15:45:02
maintainerMichael Zaikin
docs_urlNone
authorMichael Zaikin
requires_python>=3.8.1,<3.12
licenseMIT
keywords tezos blockchain sdk michelson repl cryptocurrencies smart-contracts jupyter ipython docker crypto
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # PyTezos

[![PyPI version](https://badge.fury.io/py/pytezos.svg?)](https://badge.fury.io/py/pytezos)
[![Tests](https://github.com/baking-bad/pytezos/workflows/Tests/badge.svg?)](https://github.com/baking-bad/pytezos/actions?query=workflow%3ATests)
[![Docker images](https://github.com/baking-bad/pytezos/workflows/Dockerhub/badge.svg?)](https://hub.docker.com/r/bakingbad/pytezos)
[![Made With](https://img.shields.io/badge/made%20with-python-blue.svg?)](ttps://www.python.org)
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
[![Binder](https://mybinder.org/badge_logo.svg)](https://mybinder.org/v2/gh/baking-bad/pytezos/master?filepath=michelson_quickstart.ipynb)


* 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.11 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
```shell
$ sudo apt install libsodium-dev libsecp256k1-dev libgmp-dev pkg-config
```

##### Arch Linux
```shell
$ sudo pacman -Syu --needed libsodium libsecp256k1 gmp
```
#### MacOS

[Homebrew](https://brew.sh/) needs to be installed.
```shell
$ brew tap cuber/homebrew-libsecp256k1
$ brew install libsodium libsecp256k1 gmp pkg-config
```

##### M1 (ARM)

In case `secp256k1` or `gmp` cannot find either include or lib paths, try explicitly set environment vars:
```
CFLAGS="-I/opt/homebrew/Cellar/gmp/6.2.1_1/include/ -L/opt/homebrew/Cellar/gmp/6.2.1_1/lib/" LIB_DIR="/opt/homebrew/Cellar/libsecp256k1/0.1/lib" INCLUDE_DIR=/opt/homebrew/Cellar/libsecp256k1/0.1/include 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/](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/](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

```shell
$ pip install wheel setuptools pkginfo cryptography
$ pip install pytezos
```

### [Google Colab](https://colab.research.google.com)

`````python
>>> !apt install libsodium-dev libsecp256k1-dev libgmp-dev
>>> !pip install pytezos
`````

### Docker container
Verified & minified images for CI/CD https://hub.docker.com/r/bakingbad/pytezos/tags
```shell
$ # 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+
* libsodium, libsecp256k1, gmp
* make

```shell
$ # prepare environment
$ make install
# # run full CI with tests
$ make
```

## Quick start
Read [quick start guide](https://pytezos.org/quick_start.html)  
Learn how to [enable Jupyter with Michelson](./src/michelson_kernel/README.md)

## API reference
Check out a complete [API reference](https://pytezos.org/contents.html)

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

```python
>>> from pytezos import pytezos
>>> pytezos
```

### Publications

* Pytezos 2.0 release with embedded docs and smart contract interaction engine  
https://medium.com/coinmonks/high-level-interface-for-michelson-contracts-and-not-only-7264db76d7ae

* Materials from TQuorum:Berlin workshop - building an app on top of PyTezos and ConseilPy  
https://medium.com/coinmonks/atomic-tips-berlin-workshop-materials-c5c8ee3f46aa

* Materials from the EETH hackathon - setting up a local development infrastructure, deploying and interacting with a contract  
https://medium.com/tezoscommons/preparing-for-the-tezos-hackathon-with-baking-bad-45f2d5fca519

* Introducing integration testing engine  
https://medium.com/tezoscommons/testing-michelson-contracts-with-pytezos-513718499e93

### Contact
* Telegram chat: [@baking_bad_chat](https://t.me/baking_bad_chat)
* Slack channel: [#baking-bad](https://tezos-dev.slack.com/archives/CV5NX7F2L)

## 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

            

Raw data

            {
    "_id": null,
    "home_page": "https://pytezos.org",
    "name": "pytezos",
    "maintainer": "Michael Zaikin",
    "docs_url": null,
    "requires_python": ">=3.8.1,<3.12",
    "maintainer_email": "mz@baking-bad.org",
    "keywords": "tezos,blockchain,sdk,michelson,repl,cryptocurrencies,smart-contracts,jupyter,ipython,docker,crypto",
    "author": "Michael Zaikin",
    "author_email": "mz@baking-bad.org",
    "download_url": "https://files.pythonhosted.org/packages/f4/7e/2681b0932d857c670eb39c658eca40f7052081e2cca05dd5efdab3014e53/pytezos-3.11.3.tar.gz",
    "platform": null,
    "description": "# PyTezos\n\n[![PyPI version](https://badge.fury.io/py/pytezos.svg?)](https://badge.fury.io/py/pytezos)\n[![Tests](https://github.com/baking-bad/pytezos/workflows/Tests/badge.svg?)](https://github.com/baking-bad/pytezos/actions?query=workflow%3ATests)\n[![Docker images](https://github.com/baking-bad/pytezos/workflows/Dockerhub/badge.svg?)](https://hub.docker.com/r/bakingbad/pytezos)\n[![Made With](https://img.shields.io/badge/made%20with-python-blue.svg?)](ttps://www.python.org)\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)\n[![Binder](https://mybinder.org/badge_logo.svg)](https://mybinder.org/v2/gh/baking-bad/pytezos/master?filepath=michelson_quickstart.ipynb)\n\n\n* RPC query engine\n* Cryptography\n* Building and parsing operations\n* Smart contract interaction\n* Local forging/packing & vice versa\n* Working with Michelson AST\n\n#### PyTezos CLI\n* Generating contract parameter/storage schema\n* Activating and revealing accounts\n* Deploying contracts (+ GitHub integration)\n\n#### Michelson REPL\n* Builtin interpreter (reimplemented)\n* Set of extra helpers (stack visualization, blockchain context mocking)\n\n#### Michelson Jupyter kernel\n* Custom interpreter with runtime type checker\n* Syntax highlighting, autocomplete with `Tab`\n* In-place docstrings with `Shift+Tab`\n* Macros support\n* Verbose execution logging\n* Debug helpers\n\n#### Michelson integration testing framework\n* Writing integration tests using `unittest` package\n* Simulating contract execution using remote intepreter (via RPC) or builtin one\n\n\n## Installation\n\nMake sure you have Python 3.8 to 3.11 installed and set as default in the system.  \n\nYou also need to install cryptographic packages before installing the library/building the project:\n\n#### Linux\n\n##### Ubuntu, Debian and other apt-based distributions\n```shell\n$ sudo apt install libsodium-dev libsecp256k1-dev libgmp-dev pkg-config\n```\n\n##### Arch Linux\n```shell\n$ sudo pacman -Syu --needed libsodium libsecp256k1 gmp\n```\n#### MacOS\n\n[Homebrew](https://brew.sh/) needs to be installed.\n```shell\n$ brew tap cuber/homebrew-libsecp256k1\n$ brew install libsodium libsecp256k1 gmp pkg-config\n```\n\n##### M1 (ARM)\n\nIn case `secp256k1` or `gmp` cannot find either include or lib paths, try explicitly set environment vars:\n```\nCFLAGS=\"-I/opt/homebrew/Cellar/gmp/6.2.1_1/include/ -L/opt/homebrew/Cellar/gmp/6.2.1_1/lib/\" LIB_DIR=\"/opt/homebrew/Cellar/libsecp256k1/0.1/lib\" INCLUDE_DIR=/opt/homebrew/Cellar/libsecp256k1/0.1/include pip3 install --user pytezos\n```\n\nFor running tests you might also need to export `LD_LIBRARY_PATH`:\n```\nexport LD_LIBRARY_PATH=/opt/homebrew/lib/\n```\n\n#### Windows\n\nThe recommended way is to use WSL and then follow the instructions for Linux,\nbut if you feel lucky you can try to install natively:\n\n1. Install MinGW from [https://osdn.net/projects/mingw/](https://osdn.net/projects/mingw/)\n2. Make sure `C:\\MinGW\\bin` is added to your `PATH`\n3. Download the latest libsodium-X.Y.Z-msvc.zip from [https://download.libsodium.org/libsodium/releases/](https://download.libsodium.org/libsodium/releases/).\n4. Extract the Win64/Release/v143/dynamic/libsodium.dll from the zip file\n5. Copy libsodium.dll to C:\\Windows\\System32\\libsodium.dll\n\n### From PyPi\n\n```shell\n$ pip install wheel setuptools pkginfo cryptography\n$ pip install pytezos\n```\n\n### [Google Colab](https://colab.research.google.com)\n\n`````python\n>>> !apt install libsodium-dev libsecp256k1-dev libgmp-dev\n>>> !pip install pytezos\n`````\n\n### Docker container\nVerified & minified images for CI/CD https://hub.docker.com/r/bakingbad/pytezos/tags\n```shell\n$ # 1. Use image from registry\n$ docker pull bakingbad/pytezos\n$ # or build it yourself\n$ docker build . -t pytezos\n$ # 2. Use included docker-compose.yml\n$ docker-compose up -d notebook\n```\n\n### Building from sources\n\nRequirements:\n* Python 3.8+\n* libsodium, libsecp256k1, gmp\n* make\n\n```shell\n$ # prepare environment\n$ make install\n# # run full CI with tests\n$ make\n```\n\n## Quick start\nRead [quick start guide](https://pytezos.org/quick_start.html)  \nLearn how to [enable Jupyter with Michelson](./src/michelson_kernel/README.md)\n\n## API reference\nCheck out a complete [API reference](https://pytezos.org/contents.html)\n\n### Inline documentation\nIf you are working in Jupyter/Google Colab or any other interactive console, \nyou can display documentation for a particular class/method:\n\n```python\n>>> from pytezos import pytezos\n>>> pytezos\n```\n\n### Publications\n\n* Pytezos 2.0 release with embedded docs and smart contract interaction engine  \nhttps://medium.com/coinmonks/high-level-interface-for-michelson-contracts-and-not-only-7264db76d7ae\n\n* Materials from TQuorum:Berlin workshop - building an app on top of PyTezos and ConseilPy  \nhttps://medium.com/coinmonks/atomic-tips-berlin-workshop-materials-c5c8ee3f46aa\n\n* Materials from the EETH hackathon - setting up a local development infrastructure, deploying and interacting with a contract  \nhttps://medium.com/tezoscommons/preparing-for-the-tezos-hackathon-with-baking-bad-45f2d5fca519\n\n* Introducing integration testing engine  \nhttps://medium.com/tezoscommons/testing-michelson-contracts-with-pytezos-513718499e93\n\n### Contact\n* Telegram chat: [@baking_bad_chat](https://t.me/baking_bad_chat)\n* Slack channel: [#baking-bad](https://tezos-dev.slack.com/archives/CV5NX7F2L)\n\n## Credits\n* The project was initially started by Arthur Breitman, now it's maintained by Baking Bad team.\n* Baking Bad is supported by Tezos Foundation\n* Michelson test set from the Tezos repo is used to ensure the interpreter workability\n* Michelson structured documentation by Nomadic Labs is used for inline help\n",
    "bugtrack_url": null,
    "license": "MIT",
    "summary": "Python toolkit for Tezos",
    "version": "3.11.3",
    "project_urls": {
        "Homepage": "https://pytezos.org",
        "Repository": "https://github.com/baking-bad/pytezos"
    },
    "split_keywords": [
        "tezos",
        "blockchain",
        "sdk",
        "michelson",
        "repl",
        "cryptocurrencies",
        "smart-contracts",
        "jupyter",
        "ipython",
        "docker",
        "crypto"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "d54a611ffee112e9c685e5738a209e500880e956965a3e51c587f03578a3a806",
                "md5": "d63f33d1077920d06f9d17435e4c56f1",
                "sha256": "b5f1d73d09b7f85026068b845b0bf8b3f55dfe7fe34d25fdec329dbf00c30558"
            },
            "downloads": -1,
            "filename": "pytezos-3.11.3-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "d63f33d1077920d06f9d17435e4c56f1",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.8.1,<3.12",
            "size": 207738,
            "upload_time": "2024-02-23T15:45:00",
            "upload_time_iso_8601": "2024-02-23T15:45:00.704935Z",
            "url": "https://files.pythonhosted.org/packages/d5/4a/611ffee112e9c685e5738a209e500880e956965a3e51c587f03578a3a806/pytezos-3.11.3-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "f47e2681b0932d857c670eb39c658eca40f7052081e2cca05dd5efdab3014e53",
                "md5": "b76e7ce38983a97e2f7980f109cf07f7",
                "sha256": "aa7b97f2879d35d2c0606131ff15b55462c3068b5288715f47219080ab69c554"
            },
            "downloads": -1,
            "filename": "pytezos-3.11.3.tar.gz",
            "has_sig": false,
            "md5_digest": "b76e7ce38983a97e2f7980f109cf07f7",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.8.1,<3.12",
            "size": 164117,
            "upload_time": "2024-02-23T15:45:02",
            "upload_time_iso_8601": "2024-02-23T15:45:02.972292Z",
            "url": "https://files.pythonhosted.org/packages/f4/7e/2681b0932d857c670eb39c658eca40f7052081e2cca05dd5efdab3014e53/pytezos-3.11.3.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-02-23 15:45:02",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "baking-bad",
    "github_project": "pytezos",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "requirements": [],
    "lcname": "pytezos"
}
        
Elapsed time: 0.20299s