{ "info": { "author": "Meheret Tesfaye", "author_email": "meherett@zoho.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 3 - Alpha", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7", "Topic :: Software Development :: Build Tools" ], "description": "\n\n[![Build Status](https://travis-ci.com/meherett/cobra.svg?token=zWs2UgQUy4zmDh4gtGYH&branch=master)](https://travis-ci.com/meherett/cobra)\n![PyPI - Python Version](https://img.shields.io/pypi/pyversions/py-cobra.svg)\n![PyPI License](https://img.shields.io/pypi/l/py-cobra.svg?color=black)\n![PyPI Version](https://img.shields.io/pypi/v/py-cobra.svg)\n[![Coverage Status](https://coveralls.io/repos/github/cobraframework/py-cobra/badge.svg?branch=master)](https://coveralls.io/github/cobraframework/py-cobra?branch=master)\n\n---\n\nA fast, flexible and simple development environment framework for Ethereum smart contract, testing and \ndeployment on Ethereum virtual machine(EVM).\n\nWith cobra you can get built-in smart contract compilation, linking, deployment, binary management, \nautomated contract testing with Unittest and PyTest frameworks, scriptable deployment & migrations framework \nand network management for deploying to many public & private networks like [INFURA](https://infura.io) or \n[Ganache CLI](https://github.com/trufflesuite/ganache-cli).\n\n## Dependency\n\nThis library requires the `solc` executable to be present.\n\nOnly versions `>=0.4.2` are supported and tested though this library may work\nwith other versions.\n\n* [solc](http://solidity.readthedocs.io/en/latest/installing-solidity.html): Ethereum solidity compiler.\n* [ganache-cli](https://github.com/trufflesuite/ganache-cli): A command-line version of Ethereum blockchain server.\n* [pip](https://pypi.org/project/pip/): To install packages from the Python Package Index and other indexes.\n* [python3](https://www.python.org/downloads/release/python-368/): version 3.6 or greater.\n\n## Installation\nPIP to install cobra globally. For Linux sudo may be required.\n```\n$ pip install py-cobra\n```\n\n## Development\nWe welcome pull requests. To get started, just fork this repo, clone it locally, and run:\n```\n$ pip install -e . -r requirements.txt\n```\n\n## Quick Usage\n\nInitialize project structure \n\nA default set of contract and tests, run the following command: \n\n```\n$ cobra init\n```\n\nGet help:\n\n```\n$ cobra --help\n```\n\nFrom there, you can run `cobra compile`, `cobra deploy/migrate` and `cobra test --unittest/--pytest` \nto compile your contracts, deploy those contracts to the network, and run their associated unit tests.\n\n\n
\nadvanced cobra.yaml\n\n```yaml\ncompile:\n solidity_path: \"./contracts\" # global\n artifact_path: \"./build/contracts\"\n contracts: [\n contract: {\n solidity: \"Contract.sol\",\n solidity_path: \"./contracts/libs\", # detail\n import_remappings: [\n \"=/path/folder/contracts/\"\n ],\n allow_paths: [\n \"/path/folder/contracts/\"\n ]\n }\n ]\n\ndeploy:\n artifact_path: \"./build/contracts/\"\n contracts: [\n contract: {\n artifact: \"Contract.json\",\n links: [\"Contract.json\"]\n }\n ]\n\ntest:\n artifact_path: \"./build/contracts/\"\n test_paths: [\"./tests\"]\n contracts: [\n contract: {\n artifact: \"Contract.json\",\n links: [\"Contract.json\"]\n }\n ]\n\nnetwork:\n development: {\n url: \"https://ropsten.infura.io/...\",\n host: \"localhost\",\n port: 8545,\n hdwallet: {\n mnemonic: \"decide adjust legend nation type same task aim rigid lucky guilt close\", # or\n seed: \"decide adjust legend nation type same task aim rigid lucky guilt close\",\n password: \"meherett\",\n private: \"5f8935bb3b61b312ba1114cbf6f1ea30102383f2b043a1b213aa482132d25049\",\n gas: 3000000,\n gas_price: 1000000\n },\n protocol: \"HTTP\", # HTTP, HTTPS, WS(WebSocket) and ICP\n account: {\n address: \"0x6a373a75c388ac2d160f1d2b6d9ada34f29831cd\",\n gas: 3000000,\n gas_price: 1000000\n }\n }\n```\n
\n\n## Testing\nTests are still under development.\n\nYou can run the tests with:\n\n```\n$ pytest tests\n```\n\nOr use `tox` to run the complete suite against the full set of build targets, or pytest to run specific \ntests against a specific version of Python.\n\n## Meta\n\nMeheret Tesfaye \u2013 [@meherett](https://github.com/meherett) \u2013 meherett@zoho.com\n\nDistributed under the MIT license. See ``LICENSE`` for more information.\n\n[https://github.com/meherett](https://github.com/meherett)\n\n## License\n\nThis project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details\n\n\n\n", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/cobraframework/cobra", "keywords": "cobra", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "py-cobra", "package_url": "https://pypi.org/project/py-cobra/", "platform": "", "project_url": "https://pypi.org/project/py-cobra/", "project_urls": { "Homepage": "https://github.com/cobraframework/cobra" }, "release_url": "https://pypi.org/project/py-cobra/0.1.0/", "requires_dist": [ "colorama (==0.4.1)", "websockets (==6.0)", "cryptography (==2.5)", "cobra-hdwallet (==0.3.1)", "eth-abi (==1.2.2)", "eth-keyfile (==0.5.1)", "eth-tester (==0.1.0b33)", "eth-typing (==1.3.0)", "eth-utils (==1.4.1)", "py-evm (==0.2.0a33)", "py-solc (==3.2.0)", "pycryptodome (==3.7.3)", "pysha3 (==1.0.2)", "pytest (==3.10.1)", "pytest-console-scripts (==0.1.9)", "pytest-cobra (==1.0.1)", "PyYAML (==3.13)", "pytest-cov (==2.7.1)", "requests (==2.21.0)" ], "requires_python": ">=3.6,<4", "summary": "A fast, flexible and simple development environment framework for Ethereum smart contract, testing and deployment on Ethereum virtual machine(EVM). https://cobraframework.github.io", "version": "0.1.0" }, "last_serial": 5527225, "releases": { "0.0.0.dev1": [ { "comment_text": "", "digests": { "md5": "6f2347910e3c4873086a032965fa3cbd", "sha256": "12008e598411ff9d4670a2c80517885a5684451cf06f26fa84582a5660ceb365" }, "downloads": -1, "filename": "py_cobra-0.0.0.dev1-py3-none-any.whl", "has_sig": false, "md5_digest": "6f2347910e3c4873086a032965fa3cbd", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6,<3.8", "size": 1681, "upload_time": "2019-05-27T06:35:48", "url": "https://files.pythonhosted.org/packages/7f/cb/9ddb450024cb80c6fb87c858ffba5a7353728fef60342325bd74677de8db/py_cobra-0.0.0.dev1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "f9ffe9c9b7d4e19f9bd86ee193e0d938", "sha256": "9197781acd64fcee990a16907583c9fbe81048053c9f64622980de79f4dbc6c0" }, "downloads": -1, "filename": "py-cobra-0.0.0.dev1.tar.gz", "has_sig": false, "md5_digest": "f9ffe9c9b7d4e19f9bd86ee193e0d938", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6,<3.8", "size": 1359, "upload_time": "2019-05-27T06:35:50", "url": "https://files.pythonhosted.org/packages/6c/e4/a4c07e089a9b16b38765b7390786ac05dc598e48f25f5af951ebd4dc8cd7/py-cobra-0.0.0.dev1.tar.gz" } ], "0.1.0": [ { "comment_text": "", "digests": { "md5": "f8412fe008d2577ca5b62e9b92489c66", "sha256": "76e5c67a05d410618adf1154b4c17dba8666e8a9c345f462170e029c8ad9e505" }, "downloads": -1, "filename": "py_cobra-0.1.0-py3-none-any.whl", "has_sig": false, "md5_digest": "f8412fe008d2577ca5b62e9b92489c66", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6,<4", "size": 29309, "upload_time": "2019-07-13T15:45:07", "url": "https://files.pythonhosted.org/packages/f8/46/aaf0bbdd70d618507132a0ce37bf8ff7524b772286278376daa3f59545a8/py_cobra-0.1.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "7b074f66b2128f9ceb68f84bcd6a348b", "sha256": "610c44ee9ece7d56a42a4486eeba387e4bcafd81655d31a4d9f435a8c8e8e387" }, "downloads": -1, "filename": "py-cobra-0.1.0.tar.gz", "has_sig": false, "md5_digest": "7b074f66b2128f9ceb68f84bcd6a348b", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6,<4", "size": 23117, "upload_time": "2019-07-13T15:45:10", "url": "https://files.pythonhosted.org/packages/97/5e/5c8d0a1635678a65b133d534ab6d70976e83faf1827a6cec96319d3d4f37/py-cobra-0.1.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "f8412fe008d2577ca5b62e9b92489c66", "sha256": "76e5c67a05d410618adf1154b4c17dba8666e8a9c345f462170e029c8ad9e505" }, "downloads": -1, "filename": "py_cobra-0.1.0-py3-none-any.whl", "has_sig": false, "md5_digest": "f8412fe008d2577ca5b62e9b92489c66", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6,<4", "size": 29309, "upload_time": "2019-07-13T15:45:07", "url": "https://files.pythonhosted.org/packages/f8/46/aaf0bbdd70d618507132a0ce37bf8ff7524b772286278376daa3f59545a8/py_cobra-0.1.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "7b074f66b2128f9ceb68f84bcd6a348b", "sha256": "610c44ee9ece7d56a42a4486eeba387e4bcafd81655d31a4d9f435a8c8e8e387" }, "downloads": -1, "filename": "py-cobra-0.1.0.tar.gz", "has_sig": false, "md5_digest": "7b074f66b2128f9ceb68f84bcd6a348b", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6,<4", "size": 23117, "upload_time": "2019-07-13T15:45:10", "url": "https://files.pythonhosted.org/packages/97/5e/5c8d0a1635678a65b133d534ab6d70976e83faf1827a6cec96319d3d4f37/py-cobra-0.1.0.tar.gz" } ] }