Repository URL to install this package:
|
Version:
1.6.2+sf.2 ▾
|
pythx
/
PKG-INFO
|
|---|
Metadata-Version: 2.1
Name: pythx
Version: 1.6.2+sf.2
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
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
License-File: LICENSE
License-File: AUTHORS.rst
=====
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.
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.6.1 [2020-06-16]
------------------
- Update :code:`mythx-models` dependency to omit stale warning
1.6.0 [2020-06-16]
------------------
- Disable model json schema validation and tests
- Various dependency upgrades
1.5.7 [2020-04-27]
------------------
- Add property checking middleware and tests
- Various dependency upgrades
1.5.6 [2020-04-21]
------------------
- Various critical dependency upgrades
- Fix bug where tests failed due to a data mismatch
1.5.5 [2020-02-24]
------------------
- Allow direct injection of domain model into client analyze method
1.5.4 [2020-02-20]
------------------
- Fix various dependency conflicts
- Add better documentation to readme file
- Update middleware type hints and documentation
- Update API module type hints and documentation
- Various dependency upgrades
1.5.3 [2020-02-10]
------------------
- Handle ambiguous :code:`MYTHX_API_URL` declarations
- Various dependency upgrades
1.5.2 [2020-01-30]
------------------
- Add additional analysis/group list filter parameters
- Various dependency upgrades
1.5.1 [2020-01-29]
------------------
- Remove trial user support as it has been dropped from the API
1.5.0 [2020-01-29]
------------------
- Add pypy3 tests in Travis CI
- Add additional query param support to analysis list handler
- Add various test suite improvements
- Drop support for Python 3.5 and add support for Python 3.8
- Remove stale parameter config options
- Remove stale configuration object support
- Improve PyPI trove classifiers
- Various dependency upgrades
1.4.1 [2019-11-19]
------------------
- Extend status code range for failure check in API handler
1.4.0 [2019-11-19]
------------------
- Fix bug where empty query parameters were sent to the API
- Introduce group ID/name middleware
- Add group status support in client
- Add group creation/sealing support in client
- Add group list support in client
- Fix dependency conflict between :code:`mythx-cli` and :code:`mythx-models`
- Various dependency upgrades
1.3.2 [2019-10-04]
------------------
- Update :code:`mythx-models` to 1.4.1
1.3.1 [2019-10-04]
------------------
- Update pytest from 5.1.2 to 5.2.0
- Update :code:`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 :code:`mythx-cli` repository
1.2.6 [2019-09-19]
------------------
- Update twine from 1.14.0 to 1.15.0
- Bump :code:`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 :code:`mythx-models` to 1.3.3
1.2.4 [2019-09-06]
------------------
- Bump :code:`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 :code:`mythx-models` to 1.3.1
1.2.1 [2019-08-29]
------------------
- Update :code:`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 :code:`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