Metadata-Version: 2.1
Name: crosshair-tool
Version: 0.0.10
Summary: Analyze Python code for correctness using symbolic execution.
Home-page: https://github.com/pschanely/CrossHair
Author: Phillip Schanely
Author-email: pschanely+vE7F@gmail.com
License: MIT
Description: <img src="https://raw.githubusercontent.com/pschanely/CrossHair/master/doc/source/logo.png" width="5%" align="left">
        
        # CrossHair
        
        [![Join the chat at https://gitter.im/Cross_Hair/Lobby](https://badges.gitter.im/Cross_Hair/Lobby.svg)](https://gitter.im/Cross_Hair/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
        [![codecov](https://codecov.io/gh/pschanely/CrossHair/branch/master/graph/badge.svg)](https://codecov.io/gh/pschanely/CrossHair)
        [![Check status](https://github.com/pschanely/CrossHair/workflows/Check/badge.svg)](https://github.com/pschanely/CrossHair/actions?query=workflow%3ACheck)
        
        An analysis tool for Python that blurs the line between testing and 
        type systems.
        
        > **_THE LATEST NEWS:_**  CrossHair is growing new commands that are unrelated
        to contracts; compare the behavior of two functions with the
        [diffbehavior](https://crosshair.readthedocs.io/en/latest/diff_behavior.html) command!
        
        If you have a function with
        [type annotations](https://www.python.org/dev/peps/pep-0484/) and add a
        contract
        [in a supported syntax](https://crosshair.readthedocs.io/en/latest/kinds_of_contracts.html),
        CrossHair will attempt to find counterexamples for you:
        
        ![Animated GIF demonstrating the verification of a python function](https://raw.githubusercontent.com/pschanely/CrossHair/master/doc/source/duplicate_list.gif)
        
        CrossHair works by repeatedly calling your functions with symbolic inputs.
        It uses an [SMT solver] (a kind of theorem prover) to explore viable 
        execution paths and find counterexamples for you.
        This is not a new idea; an approach for Python was first described in
        [this paper].
        However, to my knowledge, CrossHair is the most complete implementation of 
        the idea: it supports symbolic lists, dictionaries, sets, and custom mutable 
        objects.
        
        [SMT solver]: https://en.wikipedia.org/wiki/Satisfiability_modulo_theories
        [this paper]: https://hoheinzollern.files.wordpress.com/2008/04/seer1.pdf
        
        Try CrossHair right now, in your browser, at [crosshair-web.org]!
        
        [crosshair-web.org]: https://crosshair-web.org
        
        > **_NOTE:_**  CrossHair is in an experimental state right now.
        > You can help though - keep reading!
        
        ## Documentation
         
        The documentation is available at: [https://crosshair.readthedocs.io/]. 
Platform: UNKNOWN
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: Implementation :: CPython
Classifier: Topic :: Software Development :: Quality Assurance
Classifier: Topic :: Software Development :: Testing
Requires-Python: >=3.7
Description-Content-Type: text/markdown
Provides-Extra: dev
