Metadata-Version: 1.1
Name: pythx
Version: 1.6.1
Summary: A Python library for the MythX platform
Home-page: https://github.com/dmuhs/pythx
Author: Dominik Muhs
Author-email: dominik.muhs@consensys.net
License: MIT license
Description: =====
        PythX
        =====
        
        
        .. image:: https://img.shields.io/pypi/v/pythx.svg
                :target: https://pypi.org/project/pythx/
        
        .. image:: https://travis-ci.org/dmuhs/pythx.svg?branch=master
                :target: https://travis-ci.org/dmuhs/pythx
        
        .. image:: https://readthedocs.org/projects/pythx/badge/?version=latest
                :target: https://pythx.readthedocs.io/en/latest/?badge=latest
        
        .. image:: https://pyup.io/repos/github/dmuhs/pythx/shield.svg
                :target: https://pyup.io/repos/github/dmuhs/pythx/
        
        .. image:: https://coveralls.io/repos/github/dmuhs/pythx/badge.svg?branch=master
                :target: https://coveralls.io/github/dmuhs/pythx?branch=master
        
        
        PythX is a library for the MythX_ smart contract security analysis platform.
        
        .. contents:: Table of Contents
        
        
        What is MythX?
        --------------
        MythX is a security analysis API that allows anyone to create purpose-built
        security tools for smart contract developers. Tools built on MythX integrate
        seamlessly into the development environments and continuous integration
        pipelines used throughout the Ethereum ecosystem.
        
        
        Installation
        ------------
        PythX runs on Python 3.6+ and PyPy3.
        
        To get started, simply run
        
        .. code-block:: console
        
            $ pip3 install pythx
        
        Alternatively, clone the repository and run
        
        .. code-block:: console
        
            $ pip3 install .
        
        Or directly through Python's :code:`setuptools`:
        
        .. code-block:: console
        
            $ python3 setup.py install
        
        Example
        -------
        PythX aims to provide an easy-to-use interface to the official MythX_ API.
        Its goal is to turbocharge tool development and make it easy to deal with
        even complex use cases.
        
        .. code-block:: python3
        
            from pythx import Client
        
        
            c = Client(api_key="...")
        
            # submit bytecode, source files, their AST and more!
            resp = c.analyze(bytecode="0xfe")
        
            # wait for the analysis to finish
            while not c.analysis_ready(resp.uuid):
                time.sleep(1)
        
            # have all your security report data at your fingertips
            for issue in c.report(resp.uuid):
                print(issue.swc_title or "Undefined", "-", issue.description_short)
        
            # Output:
            # Assert Violation - A reachable exception has been detected.
            # Undefined - MythX API trial mode.
        
        
        The PythX CLI has now become the MythX CLI!
        -------------------------------------------
        
        Originally, the PythX CLI was a proof of concept to display to interested
        developers what can be done using the library. The interest in the CLI grew
        so large that a lot of developers contacted me and asked for support and
        new features.
        
        This is the PSA that **I will no longer maintain the PythX CLI**. But wait!
        There's more!
        
        Because a PoC is not exactly what you would call future-proof and maintainable
        software, I have decided to do a complete revamp. It is called `mythx-cli` and
        incorporates all feature requests I have gotten so far. Check it out
        `here <https://github.com/dmuhs/mythx-cli/>`_ and let me know what you think!
        
        Enjoy! :)
        
        .. _MythX: https://mythx.io/
        
        
        =======
        History
        =======
        
        1.3.1 [2019-10-04]
        ------------------
        
        - Update pytest from 5.1.2 to 5.2.0
        - Update `mythx-models` to 1.4.0
        
        1.3.0 [2019-09-20]
        ------------------
        
        - Remove the PythX CLI PoC
        - Add PSA about deprecation and link to new `mythx-cli` repository
        
        1.2.6 [2019-09-19]
        ------------------
        
        - Update twine from 1.14.0 to 1.15.0
        - Bump `mythx-models` to 1.3.5
        
        1.2.5 [2019-09-15]
        ------------------
        
        - Update twine from 1.13.0 to 1.14.0
        - Clean up dependencies
        - Bump `mythx-models` to 1.3.3
        
        1.2.4 [2019-09-06]
        ------------------
        
        - Bump `mythx-models` to 1.3.2
        - Add support to fetch analysis result input by UUID
        
        1.2.3 [2019-09-05]
        ------------------
        
        - Add an auth check override to handle situations where only the access token is given
        
        1.2.2 [2019-08-30]
        ------------------
        
        - Update `mythx-models` to 1.3.1
        
        1.2.1 [2019-08-29]
        ------------------
        
        - Update `mythx-models` to 1.3.0
        
        1.2.0 [2019-08-26]
        ------------------
        
        - Add `mythx-models <https://github.com/dmuhs/mythx-models>`_ integration
        
        1.1.8 [2019-06-05]
        ------------------
        
        - Add debug flag to CLI
        - Add support for the `clientToolName` response field
        - Add support for the new source list format validation
        - Update the bumpversion expression to support black formatting
        
        1.1.7 [2019-04-20]
        ------------------
        
        - Add main docstring description
        
        
        1.1.6 [2019-04-19]
        ------------------
        
        - Add :code:`mainSource` support to CLI
        - Fix bug where submission object was malformed ("AST" -> "ast")
        - Upgrade pytest dependency
        
        
        1.1.5 [2019-04-16]
        ------------------
        
        - Add middleware to disable analysis cache
        - Add CLI support to analyze compiled Truffle projects
        - Fix bug where reports were not completely shown
        - Update the authentication data format
        - Add support for the mainSource field
        - Add shortcut to inject middlewares in Client
        
        
        1.1.4 [2019-03-28]
        ------------------
        
        - Fix issue in schema detection
        - Upgrade Sphinx dependency
        
        
        1.1.3 [2019-03-25]
        ------------------
        
        - Initial release!
        - 100% branch coverage achieved
        - 100% doc coverage achieved
        - Examples provided in repo readme
        - Automatic PyPI deployment on version tag change
        
Keywords: pythx
Platform: UNKNOWN
Classifier: Development Status :: 4 - Beta
Classifier: License :: OSI Approved :: MIT License
Classifier: Natural Language :: English
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: Education
Classifier: Intended Audience :: Information Technology
Classifier: Topic :: Security
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Classifier: Topic :: Software Development :: Quality Assurance
Classifier: Topic :: Utilities
Classifier: Typing :: Typed
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.6
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: Implementation :: PyPy
