.. _tools: Tools ===== The ``eth_abi.tools`` module provides extra resources to users of ``eth-abi`` that are not required for typical use. It can be installed with ``pip`` as an extra requirement: .. code-block:: bash python -m pip install "eth-abi[tools]" ABI Type Strategies ------------------- The ``tools`` module provides the :meth:`~eth_abi.tools.get_abi_strategy` function. This function returns a hypothesis strategy (value generator) for any given ABI type specified by its canonical string representation: .. doctest:: >>> from eth_abi.tools import get_abi_strategy >>> uint_st = get_abi_strategy('uint8') >>> uint_st integers(min_value=0, max_value=255) >>> uint_list_st = get_abi_strategy('uint8[2]') >>> uint_list_st lists(integers(min_value=0, max_value=255), min_size=2, max_size=2) >>> fixed_st = get_abi_strategy('fixed8x1') >>> fixed_st decimals(min_value=-128, max_value=127, places=0).map(scale_by_Eneg1) >>> tuple_st = get_abi_strategy('(bool,string)') >>> tuple_st tuples(booleans(), text()) Hypothesis strategies can be used to conduct property testing on contract code. For more information on property testing, visit the `Hypothesis homepage `_ or the `Hypothesis readthedocs site `_.