crosshair-tool 0.0.97


pip install crosshair-tool

  Latest version

Released: Oct 01, 2025

Project Links

Meta
Author: Phillip Schanely
Requires Python: >=3.8

Classifiers

Development Status
  • 3 - Alpha

Intended Audience
  • Developers

Operating System
  • OS Independent

Programming Language
  • Python :: 3
  • Python :: 3.8
  • Python :: 3.9
  • Python :: 3.10
  • Python :: 3.11
  • Python :: 3.12
  • Python :: 3.13
  • Python :: Implementation :: CPython

Topic
  • Software Development :: Quality Assurance
  • Software Development :: Testing

CrossHair

Join the chat on Discord Check status Downloads

An analysis tool for Python that blurs the line between testing and type systems.

THE LATEST NEWS: Python's most popular property-based testing tool, Hypothesis, now supports running CrossHair as an optional backend!

If you have a function with type annotations and add a contract in a supported syntax, CrossHair will attempt to find counterexamples for you:

Animated GIF demonstrating the verification of a python function

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; a Python approach was first described in this paper. However, to my knowledge, CrossHair is the most complete implementation: it can use symbolic reasoning for the built-in types, user-defined classes, and much of the standard library.

Try CrossHair right now, in your browser, at crosshair-web.org!

CrossHair has IDE integrations for VS Code, PyCharm, and more.

Finally, CrossHair can do more than check contracts. It can also generate unit tests and find behavioral differences between functions.

Want to help? Sign up for email or RSS updates. Star ⭐️ the repository. There are other ways to help too.

Documentation

0.0.97 Oct 01, 2025
0.0.96 Sep 23, 2025
0.0.95 Aug 01, 2025
0.0.94 Jul 16, 2025
0.0.93 Jun 13, 2025
0.0.92 Jun 03, 2025
0.0.91 Jun 03, 2025
0.0.90 Jun 02, 2025
0.0.89 Jun 02, 2025
0.0.88 May 29, 2025
0.0.87 May 28, 2025
0.0.86 Apr 09, 2025
0.0.85 Mar 31, 2025
0.0.84 Mar 22, 2025
0.0.83 Mar 15, 2025
0.0.82 Jan 23, 2025
0.0.81 Jan 02, 2025
0.0.80 Dec 23, 2024
0.0.79 Dec 13, 2024
0.0.78 Nov 14, 2024
0.0.77 Nov 05, 2024
0.0.76 Oct 18, 2024
0.0.75 Oct 18, 2024
0.0.74 Oct 08, 2024
0.0.73 Sep 30, 2024
0.0.72 Sep 23, 2024
0.0.71 Sep 03, 2024
0.0.70 Aug 24, 2024
0.0.69 Aug 24, 2024
0.0.68 Aug 20, 2024
0.0.67 Aug 14, 2024
0.0.66 Aug 08, 2024
0.0.65 Aug 02, 2024
0.0.64 Jul 23, 2024
0.0.63 Jul 22, 2024
0.0.62 Jul 19, 2024
0.0.61 Jul 14, 2024
0.0.60 Jul 08, 2024
0.0.59 Jul 06, 2024
0.0.58 Jul 01, 2024
0.0.57 Jun 28, 2024
0.0.56 Jun 28, 2024
0.0.55 Jun 19, 2024
0.0.54 Mar 24, 2024
0.0.53 Mar 20, 2024
0.0.52 Mar 19, 2024
0.0.51 Mar 15, 2024
0.0.50 Mar 08, 2024
0.0.49 Feb 28, 2024
0.0.48 Feb 19, 2024
0.0.47 Jan 13, 2024
0.0.46 Dec 20, 2023
0.0.45 Nov 10, 2023
0.0.44 Nov 01, 2023
0.0.43 Oct 26, 2023
0.0.42 Oct 06, 2023
0.0.41 Oct 03, 2023
0.0.40 Sep 10, 2023
0.0.39 Jul 26, 2023
0.0.38 May 03, 2023
0.0.37 Feb 02, 2023
0.0.36 Dec 20, 2022
0.0.35 Dec 11, 2022
0.0.34 Nov 14, 2022
0.0.33 Nov 11, 2022
0.0.32 Oct 14, 2022
0.0.31 Sep 29, 2022
0.0.30 Sep 28, 2022
0.0.29 Sep 12, 2022
0.0.28 Jul 15, 2022
0.0.27 Jul 13, 2022
0.0.26 Jun 22, 2022
0.0.25 Jun 09, 2022
0.0.24 May 25, 2022
0.0.23 May 17, 2022
0.0.22 Mar 16, 2022
0.0.21 Jan 22, 2022
0.0.20 Dec 22, 2021
0.0.19 Oct 25, 2021
0.0.18 Oct 12, 2021
0.0.17 Aug 27, 2021
0.0.16 Aug 09, 2021
0.0.15 Jul 15, 2021
0.0.14 Jul 13, 2021
0.0.13 May 03, 2021
0.0.12 Apr 26, 2021
0.0.11 Mar 12, 2021
0.0.10 Feb 15, 2021
0.0.9 Jan 16, 2021
0.0.8 Nov 27, 2020
0.0.7 Jul 07, 2020
0.0.6 Jul 02, 2020
0.0.5 Apr 13, 2020
0.0.4 Apr 12, 2020
0.0.3 Mar 01, 2020
0.0.2 Feb 19, 2020
0.0.1 Feb 09, 2020

Wheel compatibility matrix

Platform CPython 3.8 CPython 3.9 CPython 3.10 CPython 3.11 CPython 3.12 CPython 3.13 CPython 3.14
macosx_10_13_universal2
macosx_10_13_x86_64
macosx_10_9_universal2
macosx_10_9_x86_64
macosx_11_0_arm64
manylinux1_x86_64
manylinux_2_28_x86_64
manylinux_2_5_x86_64
musllinux_1_2_x86_64
win32
win_amd64

Files in release

crosshair_tool-0.0.97-cp310-cp310-macosx_10_9_universal2.whl (522.4KiB)
crosshair_tool-0.0.97-cp310-cp310-macosx_10_9_x86_64.whl (514.6KiB)
crosshair_tool-0.0.97-cp310-cp310-macosx_11_0_arm64.whl (515.4KiB)
crosshair_tool-0.0.97-cp310-cp310-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl (537.3KiB)
crosshair_tool-0.0.97-cp310-cp310-musllinux_1_2_x86_64.whl (537.4KiB)
crosshair_tool-0.0.97-cp310-cp310-win32.whl (517.6KiB)
crosshair_tool-0.0.97-cp310-cp310-win_amd64.whl (518.5KiB)
crosshair_tool-0.0.97-cp311-cp311-macosx_10_9_universal2.whl (522.5KiB)
crosshair_tool-0.0.97-cp311-cp311-macosx_10_9_x86_64.whl (514.7KiB)
crosshair_tool-0.0.97-cp311-cp311-macosx_11_0_arm64.whl (515.4KiB)
crosshair_tool-0.0.97-cp311-cp311-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl (537.7KiB)
crosshair_tool-0.0.97-cp311-cp311-musllinux_1_2_x86_64.whl (537.7KiB)
crosshair_tool-0.0.97-cp311-cp311-win32.whl (517.6KiB)
crosshair_tool-0.0.97-cp311-cp311-win_amd64.whl (518.6KiB)
crosshair_tool-0.0.97-cp312-cp312-macosx_10_13_universal2.whl (526.3KiB)
crosshair_tool-0.0.97-cp312-cp312-macosx_10_13_x86_64.whl (517.1KiB)
crosshair_tool-0.0.97-cp312-cp312-macosx_11_0_arm64.whl (517.7KiB)
crosshair_tool-0.0.97-cp312-cp312-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl (547.4KiB)
crosshair_tool-0.0.97-cp312-cp312-musllinux_1_2_x86_64.whl (546.5KiB)
crosshair_tool-0.0.97-cp312-cp312-win32.whl (519.2KiB)
crosshair_tool-0.0.97-cp312-cp312-win_amd64.whl (520.3KiB)
crosshair_tool-0.0.97-cp313-cp313-macosx_10_13_universal2.whl (534.7KiB)
crosshair_tool-0.0.97-cp313-cp313-macosx_10_13_x86_64.whl (520.7KiB)
crosshair_tool-0.0.97-cp313-cp313-macosx_11_0_arm64.whl (521.4KiB)
crosshair_tool-0.0.97-cp313-cp313-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl (554.0KiB)
crosshair_tool-0.0.97-cp313-cp313-musllinux_1_2_x86_64.whl (553.0KiB)
crosshair_tool-0.0.97-cp313-cp313-win32.whl (519.3KiB)
crosshair_tool-0.0.97-cp313-cp313-win_amd64.whl (520.4KiB)
crosshair_tool-0.0.97-cp314-cp314-macosx_10_13_universal2.whl (532.6KiB)
crosshair_tool-0.0.97-cp314-cp314-macosx_10_13_x86_64.whl (519.7KiB)
crosshair_tool-0.0.97-cp314-cp314-macosx_11_0_arm64.whl (520.3KiB)
crosshair_tool-0.0.97-cp314-cp314-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl (589.7KiB)
crosshair_tool-0.0.97-cp314-cp314-musllinux_1_2_x86_64.whl (587.9KiB)
crosshair_tool-0.0.97-cp314-cp314-win32.whl (518.1KiB)
crosshair_tool-0.0.97-cp314-cp314-win_amd64.whl (519.1KiB)
crosshair_tool-0.0.97-cp38-cp38-macosx_10_9_universal2.whl (522.2KiB)
crosshair_tool-0.0.97-cp38-cp38-macosx_10_9_x86_64.whl (514.5KiB)
crosshair_tool-0.0.97-cp38-cp38-macosx_11_0_arm64.whl (515.2KiB)
crosshair_tool-0.0.97-cp38-cp38-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl (538.1KiB)
crosshair_tool-0.0.97-cp38-cp38-musllinux_1_2_x86_64.whl (537.5KiB)
crosshair_tool-0.0.97-cp38-cp38-win32.whl (517.4KiB)
crosshair_tool-0.0.97-cp38-cp38-win_amd64.whl (518.4KiB)
crosshair_tool-0.0.97-cp39-cp39-macosx_10_9_universal2.whl (522.3KiB)
crosshair_tool-0.0.97-cp39-cp39-macosx_10_9_x86_64.whl (514.6KiB)
crosshair_tool-0.0.97-cp39-cp39-macosx_11_0_arm64.whl (515.4KiB)
crosshair_tool-0.0.97-cp39-cp39-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl (536.7KiB)
crosshair_tool-0.0.97-cp39-cp39-musllinux_1_2_x86_64.whl (536.7KiB)
crosshair_tool-0.0.97-cp39-cp39-win32.whl (517.6KiB)
crosshair_tool-0.0.97-cp39-cp39-win_amd64.whl (518.5KiB)
crosshair_tool-0.0.97.tar.gz (461.8KiB)