great_expectations is a free, open source machine learning infrastructure project written in Python and released under Apache-2.0. It has 11,797 GitHub stars, 1,850 forks and 42 open issues, and was last pushed 4 hours ago. On this registry it ranks #17 of 57 tracked projects in Machine Learning Infrastructure, with 5 head-to-head comparisons available. It gained 1 stars over the last 3 tracked days.

What is great_expectations?

What it is

Great Expectations, referred to in its own documentation as GX Core, is an open-source Python library for validating and documenting the quality of data. It lives in the Python data ecosystem and is published under the Apache-2.0 license. The project has been in development for roughly nine years and carries about 11,794 stars with 1,848 forks, which places it among the longer-running tools in the data quality space. Its central concept is the Expectation: an expressive, extensible unit test written against a dataset rather than against application code.

The concrete problem it solves is the absence of a shared, testable definition of what "correct" data looks like. Expectations give a team a common language to express those rules, so that data quality checks can be written once, reused, and understood by analysts and engineers alike. Because GX Core automatically generates documentation for each set of validation results, the institutional knowledge about a dataset's expected shape, ranges, and values stays recorded instead of living in the heads of the people who built the pipeline.

Key capabilities

  • Expectations expressed as unit tests for data, written in an extensible Python syntax.
  • A shared vocabulary for data quality that lets team members author and read the same tests.
  • Automatic generation of documentation from each set of validation results.
  • A Data Context object created through gx.get_context() that anchors the working configuration.
  • Support for Python 3.10 through 3.13, with experimental support for 3.14 and later behind the GX_PYTHON_EXPERIMENTAL environment variable.
  • A published compatibility reference covering supported data sources and other integrations.
  • Data profiling and exploratory data analysis workflows, as reflected in the project's topic list.

Who uses it and how

  • Data teams running data quality deployments, which the README describes as a proven track record worldwide.
  • Analytics and data engineering groups that want data profiling and EDA checks attached to pipelines.
  • Teams that treat data validation as a testing discipline, in the same spirit as unit tests in application code.
  • Organizations that need durable documentation of validation results so knowledge about a dataset survives staff changes.
  • Users following the featured case studies on the project site to see how other data teams apply GX Core.

Getting started

The README recommends installing inside a Python virtual environment and running pip install great_expectations from an empty base directory

project readme (upstream, from github) — read inline

Python Versions PyPI PyPI Downloads Build Status pre-commit.ci Status DOI Twitter Follow Slack Status Contributors Ruff

About GX Core

GX Core combines the collective wisdom of thousands of community members with a proven track record in data quality deployments worldwide, wrapped into a super-simple package for data teams.

Its powerful technical tools start with Expectations: expressive and extensible unit tests for your data. Expectations foster collaboration by giving teams a common language to express data quality tests in an intuitive way. You can automatically generate documentation for each set of validation results, making it easy for everyone to stay on the same page. This not only simplifies your data quality processes, but helps preserve your organization’s institutional knowledge about its data.

Learn more about how data teams are using GX Core in our featured case studies.

Integration support policy

GX Core supports Python 3.10 through 3.13. Experimental support for Python 3.14 and later can be enabled by setting a GX_PYTHON_EXPERIMENTAL environment variable when installing great_expectations.

For data sources and other integrations that GX supports, see the compatibility reference for additional information.

Get started

GX recommends deploying GX Core within a virtual environment. For more information about getting started with GX Core, see Introduction to GX Core.

  1. Run the following command in an empty base directory inside a Python virtual environment to install GX Core:

    pip install great_expectations
    
  2. Run the following command to import the great_expectations module and create a Data Context:

    import great_expectations as gx
    
    context = gx.get_context()
    

Get support from GX and the community

They are listed in the order in which GX is prioritizing the support issues:

  1. Issues and PRs in the GX GitHub repository
  2. Questions posted to the GX Core Discourse forum
  3. Questions posted to the GX Slack community channel

Contribute

We truly value the contributions of our community and always welcome pull requests. PRs are encouraged for both bug fixes and new features. For feature requests, we ask that you first open an issue for discussion to ensure the feature fits within the vision for GX Core and to align on the approach so that your time and effort are well spent. Thank you for being a crucial part of GX Core!

See CONTRIBUTING.md for details on how to propose a change, claim an issue, and submit a pull request.

Code of conduct

Everyone interacting in GX Core project codebases, Discourse forums, Slack channels, and email communications is expected to adhere to the GX Community Code of Conduct.

Frequently asked questions

Is great_expectations free to use?

great_expectations is open source under the Apache-2.0 licence. There is no licence fee and no seat count — you can self-host it or, where the project offers one, pay a vendor for a managed version instead.

What does great_expectations do?

Always know what to expect from your data.

What is great_expectations written in?

great_expectations is primarily written in Python. Its source is publicly available at https://github.com/fivetran/great_expectations, and it has 11,797 GitHub stars.