This is an automated email from the ASF dual-hosted git repository.
github-bot pushed a commit to branch asf-site
in repository https://gitbox.apache.org/repos/asf/hamilton.git
The following commit(s) were added to refs/heads/asf-site by this push:
new 4c5e2d6f Deploy documentation from
06d1275a3195cb97867e6c2893a899f9ed9fc6dd
4c5e2d6f is described below
commit 4c5e2d6fd766ef663ac8e835285aa2f77c2a8bfc
Author: GitHub Actions <[email protected]>
AuthorDate: Sat Mar 7 07:13:39 2026 +0000
Deploy documentation from 06d1275a3195cb97867e6c2893a899f9ed9fc6dd
---
.../_sources/concepts/function-modifiers.rst.txt | 3 +-
.../how-tos/run-data-quality-checks.rst.txt | 7 ++
.../reference/decorators/check_output.rst.txt | 11 ++
content/_static/Hamilton.pdf | Bin 10967954 -> 10976877
bytes
content/concepts/function-modifiers/index.html | 3 +-
content/genindex/index.html | 42 +++++--
content/how-tos/index.html | 5 +-
content/how-tos/run-data-quality-checks/index.html | 30 ++++-
content/llms-full.txt | 21 +++-
content/objects.inv | Bin 7775 -> 7857 bytes
.../reference/decorators/check_output/index.html | 134 +++++++++++++++++++++
content/reference/decorators/index.html | 2 +
content/searchindex.js | 2 +-
13 files changed, 243 insertions(+), 17 deletions(-)
diff --git a/content/_sources/concepts/function-modifiers.rst.txt
b/content/_sources/concepts/function-modifiers.rst.txt
index 6bbed9eb..7e63c297 100644
--- a/content/_sources/concepts/function-modifiers.rst.txt
+++ b/content/_sources/concepts/function-modifiers.rst.txt
@@ -161,7 +161,8 @@ The next snippet checks if the returned Series is of type
``np.int32``, which is
- To see all available validators, go to the file
``hamilton/data_quality/default_validators.py`` and view the variable
``AVAILABLE_DEFAULT_VALIDATORS``.
-- The function modifier ``@check_output_custom`` allows you to define your own
validator. Validators inherit the ``base.BaseDefaultValidator`` class and are
essentially standardized Hamilton node definitions (instead of functions). See
``hamilton/data_quality/default_validators.py`` or reach out on `Slack
<https://join.slack.com/t/hamilton-opensource/shared_invite/zt-2niepkra8-DGKGf_tTYhXuJWBTXtIs4g>`_
for help!
+- The function modifier ``@check_output_custom`` allows you to define your own
validator. Validators inherit the ``base.DataValidator`` class (or
``base.BaseDefaultValidator`` for use with ``@check_output``) and are
essentially standardized Hamilton node definitions (instead of functions). See
``hamilton/data_quality/default_validators.py`` or reach out on `Slack
<https://join.slack.com/t/hamilton-opensource/shared_invite/zt-2niepkra8-DGKGf_tTYhXuJWBTXtIs4g>`_
for help!
+- For async validation logic (e.g., async database or API calls), inherit from
``base.AsyncDataValidator`` or ``base.AsyncBaseDefaultValidator`` instead.
These define ``async def validate()`` and work with ``AsyncDriver``. You can
mix sync and async validators in a single ``@check_output_custom`` call.
- Note: ``@check_output_custom`` decorators cannot be stacked, but they
instead can take multiple validators.
.. note::
diff --git a/content/_sources/how-tos/run-data-quality-checks.rst.txt
b/content/_sources/how-tos/run-data-quality-checks.rst.txt
index c85f56b7..361476ea 100644
--- a/content/_sources/how-tos/run-data-quality-checks.rst.txt
+++ b/content/_sources/how-tos/run-data-quality-checks.rst.txt
@@ -10,3 +10,10 @@ The goal of this is to show how to use runtime data quality
checks in a larger,
1. `Data quality with hamilton
<https://github.com/apache/hamilton/tree/main/examples/data_quality/simple>`_
2. `Data quality with pandera
<https://github.com/apache/hamilton/tree/main/examples/data_quality/pandera>`_
+
+Async validators
+~~~~~~~~~~~~~~~~
+
+For validation logic that requires async operations (e.g., async database
queries or API calls), use ``AsyncDataValidator`` or
``AsyncBaseDefaultValidator`` from ``hamilton.data_quality.base``. These define
``async def validate()`` and work with ``AsyncDriver``. You can mix sync and
async validators in a single ``@check_output_custom`` call.
+
+See the :doc:`check_output reference <../reference/decorators/check_output>`
and `data quality writeup
<https://github.com/apache/hamilton/blob/main/writeups/data_quality.md>`_ for
details and examples.
diff --git a/content/_sources/reference/decorators/check_output.rst.txt
b/content/_sources/reference/decorators/check_output.rst.txt
index 919d207e..1a27c3fd 100644
--- a/content/_sources/reference/decorators/check_output.rst.txt
+++ b/content/_sources/reference/decorators/check_output.rst.txt
@@ -24,6 +24,11 @@ of the series, and one that checks whether the data is in a
certain range.
Note that you can also specify custom decorators using the
``@check_output_custom`` decorator.
+For async validation (e.g., async database or API calls), use
``AsyncDataValidator`` or ``AsyncBaseDefaultValidator``
+from ``hamilton.data_quality.base`` as your base class instead of the sync
variants. These define
+``async def validate()`` and work with ``AsyncDriver``. You can mix sync and
async validators in a single
+``@check_output_custom`` call — each gets the appropriate wrapper type
automatically.
+
See `data_quality
<https://github.com/apache/hamilton/blob/main/data\_quality.md>`_ for more
information on
available validators and how to build custom ones.
@@ -42,6 +47,12 @@ Note we also have a plugins that allow for validation with
the pandera and pydan
.. autoclass:: hamilton.function_modifiers.check_output_custom
:special-members: __init__
+.. autoclass:: hamilton.data_quality.base.AsyncDataValidator
+ :members: validate, applies_to, description, name
+
+.. autoclass:: hamilton.data_quality.base.AsyncBaseDefaultValidator
+ :members: validate, applies_to, description, arg, name
+
.. autoclass:: hamilton.plugins.h_pandera.check_output
:special-members: __init__
diff --git a/content/_static/Hamilton.pdf b/content/_static/Hamilton.pdf
index dba4dd6a..a615a666 100644
Binary files a/content/_static/Hamilton.pdf and b/content/_static/Hamilton.pdf
differ
diff --git a/content/concepts/function-modifiers/index.html
b/content/concepts/function-modifiers/index.html
index c8d0a4b3..aa738ffe 100644
--- a/content/concepts/function-modifiers/index.html
+++ b/content/concepts/function-modifiers/index.html
@@ -637,7 +637,8 @@
<img alt="../../_images/check_output.png" src="../../_images/check_output.png"
/>
<ul class="simple">
<li><p>To see all available validators, go to the file <code class="docutils
literal notranslate"><span
class="pre">hamilton/data_quality/default_validators.py</span></code> and view
the variable <code class="docutils literal notranslate"><span
class="pre">AVAILABLE_DEFAULT_VALIDATORS</span></code>.</p></li>
-<li><p>The function modifier <code class="docutils literal notranslate"><span
class="pre">@check_output_custom</span></code> allows you to define your
own validator. Validators inherit the <code class="docutils literal
notranslate"><span class="pre">base.BaseDefaultValidator</span></code> class
and are essentially standardized Hamilton node definitions (instead of
functions). See <code class="docutils literal notranslate"><span
class="pre">hamilton/data_quality/default_validators.py< [...]
+<li><p>The function modifier <code class="docutils literal notranslate"><span
class="pre">@check_output_custom</span></code> allows you to define your
own validator. Validators inherit the <code class="docutils literal
notranslate"><span class="pre">base.DataValidator</span></code> class (or <code
class="docutils literal notranslate"><span
class="pre">base.BaseDefaultValidator</span></code> for use with <code
class="docutils literal notranslate"><span class="pre">@check_output</s
[...]
+<li><p>For async validation logic (e.g., async database or API calls), inherit
from <code class="docutils literal notranslate"><span
class="pre">base.AsyncDataValidator</span></code> or <code class="docutils
literal notranslate"><span
class="pre">base.AsyncBaseDefaultValidator</span></code> instead. These define
<code class="docutils literal notranslate"><span class="pre">async</span> <span
class="pre">def</span> <span class="pre">validate()</span></code> and work with
<code class="docut [...]
<li><p>Note: <code class="docutils literal notranslate"><span
class="pre">@check_output_custom</span></code> decorators cannot be
stacked, but they instead can take multiple validators.</p></li>
</ul>
<div class="admonition note">
diff --git a/content/genindex/index.html b/content/genindex/index.html
index 7da95701..46ae0c6f 100644
--- a/content/genindex/index.html
+++ b/content/genindex/index.html
@@ -645,16 +645,26 @@
<li><a
href="../reference/io/adapter-documentation/#hamilton.io.data_adapters.DataSaver.applicable_types">(hamilton.io.data_adapters.DataSaver
class method)</a>
</li>
</ul></li>
- </ul></td>
- <td style="width: 33%; vertical-align: top;"><ul>
- <li><a
href="../reference/io/adapter-documentation/#hamilton.io.data_adapters.AdapterCommon.applies_to">applies_to()
(hamilton.io.data_adapters.AdapterCommon class method)</a>
+ <li><a
href="../reference/decorators/check_output/#hamilton.data_quality.base.AsyncBaseDefaultValidator.applies_to">applies_to()
(hamilton.data_quality.base.AsyncBaseDefaultValidator class method)</a>
<ul>
+ <li><a
href="../reference/decorators/check_output/#hamilton.data_quality.base.AsyncDataValidator.applies_to">(hamilton.data_quality.base.AsyncDataValidator
method)</a>
+</li>
+ <li><a
href="../reference/io/adapter-documentation/#hamilton.io.data_adapters.AdapterCommon.applies_to">(hamilton.io.data_adapters.AdapterCommon
class method)</a>
+</li>
<li><a
href="../reference/io/adapter-documentation/#hamilton.io.data_adapters.DataLoader.applies_to">(hamilton.io.data_adapters.DataLoader
class method)</a>
</li>
<li><a
href="../reference/io/adapter-documentation/#hamilton.io.data_adapters.DataSaver.applies_to">(hamilton.io.data_adapters.DataSaver
class method)</a>
</li>
</ul></li>
+ </ul></td>
+ <td style="width: 33%; vertical-align: top;"><ul>
+ <li><a
href="../reference/decorators/check_output/#hamilton.data_quality.base.AsyncBaseDefaultValidator.arg">arg()
(hamilton.data_quality.base.AsyncBaseDefaultValidator class method)</a>
+</li>
+ <li><a
href="../reference/decorators/check_output/#hamilton.data_quality.base.AsyncBaseDefaultValidator">AsyncBaseDefaultValidator
(class in hamilton.data_quality.base)</a>
+</li>
+ <li><a
href="../reference/decorators/check_output/#hamilton.data_quality.base.AsyncDataValidator">AsyncDataValidator
(class in hamilton.data_quality.base)</a>
+</li>
<li><a
href="../reference/lifecycle-hooks/DDOGTracer/#hamilton.plugins.h_ddog.AsyncDDOGTracer">AsyncDDOGTracer
(class in hamilton.plugins.h_ddog)</a>
</li>
<li><a
href="../reference/drivers/AsyncDriver/#hamilton.async_driver.AsyncDriver">AsyncDriver
(class in hamilton.async_driver)</a>
@@ -899,6 +909,12 @@
<li><a
href="../reference/caching/stores/#hamilton.caching.stores.memory.InMemoryResultStore.delete_all">(hamilton.caching.stores.memory.InMemoryResultStore
method)</a>
</li>
<li><a
href="../reference/caching/stores/#hamilton.caching.stores.sqlite.SQLiteMetadataStore.delete_all">(hamilton.caching.stores.sqlite.SQLiteMetadataStore
method)</a>
+</li>
+ </ul></li>
+ <li><a
href="../reference/decorators/check_output/#hamilton.data_quality.base.AsyncBaseDefaultValidator.description">description()
(hamilton.data_quality.base.AsyncBaseDefaultValidator method)</a>
+
+ <ul>
+ <li><a
href="../reference/decorators/check_output/#hamilton.data_quality.base.AsyncDataValidator.description">(hamilton.data_quality.base.AsyncDataValidator
method)</a>
</li>
</ul></li>
<li><a
href="../reference/result-builders/Generic/#hamilton.base.DictResult">DictResult
(class in hamilton.base)</a>
@@ -1389,20 +1405,24 @@
<h2>N</h2>
<table style="width: 100%" class="indextable genindextable"><tr>
<td style="width: 33%; vertical-align: top;"><ul>
- <li><a
href="../reference/io/adapter-documentation/#hamilton.io.data_adapters.AdapterCommon.name">name()
(hamilton.io.data_adapters.AdapterCommon class method)</a>
+ <li><a
href="../reference/decorators/check_output/#hamilton.data_quality.base.AsyncBaseDefaultValidator.name">name()
(hamilton.data_quality.base.AsyncBaseDefaultValidator class method)</a>
<ul>
+ <li><a
href="../reference/decorators/check_output/#hamilton.data_quality.base.AsyncDataValidator.name">(hamilton.data_quality.base.AsyncDataValidator
class method)</a>
+</li>
+ <li><a
href="../reference/io/adapter-documentation/#hamilton.io.data_adapters.AdapterCommon.name">(hamilton.io.data_adapters.AdapterCommon
class method)</a>
+</li>
<li><a
href="../reference/io/adapter-documentation/#hamilton.io.data_adapters.DataLoader.name">(hamilton.io.data_adapters.DataLoader
class method)</a>
</li>
<li><a
href="../reference/io/adapter-documentation/#hamilton.io.data_adapters.DataSaver.name">(hamilton.io.data_adapters.DataSaver
class method)</a>
</li>
</ul></li>
<li><a
href="../reference/lifecycle-hooks/Narwhals/#hamilton.plugins.h_narwhals.NarwhalsAdapter">NarwhalsAdapter
(class in hamilton.plugins.h_narwhals)</a>
-</li>
- <li><a
href="../reference/lifecycle-hooks/Narwhals/#hamilton.plugins.h_narwhals.NarwhalsDataFrameResultBuilder">NarwhalsDataFrameResultBuilder
(class in hamilton.plugins.h_narwhals)</a>
</li>
</ul></td>
<td style="width: 33%; vertical-align: top;"><ul>
+ <li><a
href="../reference/lifecycle-hooks/Narwhals/#hamilton.plugins.h_narwhals.NarwhalsDataFrameResultBuilder">NarwhalsDataFrameResultBuilder
(class in hamilton.plugins.h_narwhals)</a>
+</li>
<li><a
href="../reference/lifecycle-hooks/NodeExecutionHook/#hamilton.lifecycle.api.NodeExecutionHook">NodeExecutionHook
(class in hamilton.lifecycle.api)</a>
</li>
<li><a
href="../reference/lifecycle-hooks/NodeExecutionMethod/#hamilton.lifecycle.api.NodeExecutionMethod">NodeExecutionMethod
(class in hamilton.lifecycle.api)</a>
@@ -1885,9 +1905,13 @@
<h2>V</h2>
<table style="width: 100%" class="indextable genindextable"><tr>
<td style="width: 33%; vertical-align: top;"><ul>
- <li><a
href="../reference/drivers/Driver/#hamilton.driver.DefaultGraphExecutor.validate">validate()
(hamilton.driver.DefaultGraphExecutor method)</a>
+ <li><a
href="../reference/decorators/check_output/#hamilton.data_quality.base.AsyncBaseDefaultValidator.validate">validate()
(hamilton.data_quality.base.AsyncBaseDefaultValidator method)</a>
<ul>
+ <li><a
href="../reference/decorators/check_output/#hamilton.data_quality.base.AsyncDataValidator.validate">(hamilton.data_quality.base.AsyncDataValidator
method)</a>
+</li>
+ <li><a
href="../reference/drivers/Driver/#hamilton.driver.DefaultGraphExecutor.validate">(hamilton.driver.DefaultGraphExecutor
method)</a>
+</li>
<li><a
href="../reference/drivers/Driver/#hamilton.driver.TaskBasedGraphExecutor.validate">(hamilton.driver.TaskBasedGraphExecutor
method)</a>
</li>
<li><a
href="../reference/decorators/dataloader/#hamilton.function_modifiers.dataloader.validate">(hamilton.function_modifiers.dataloader
method)</a>
@@ -1905,10 +1929,10 @@
<li><a
href="../reference/lifecycle-hooks/NoEdgeAndInputTypeChecking/#hamilton.lifecycle.default.NoEdgeAndInputTypeChecking.validate_input">(hamilton.lifecycle.default.NoEdgeAndInputTypeChecking
method)</a>
</li>
</ul></li>
- <li><a
href="../reference/drivers/Driver/#hamilton.driver.Driver.validate_inputs">validate_inputs()
(hamilton.driver.Driver static method)</a>
-</li>
</ul></td>
<td style="width: 33%; vertical-align: top;"><ul>
+ <li><a
href="../reference/drivers/Driver/#hamilton.driver.Driver.validate_inputs">validate_inputs()
(hamilton.driver.Driver static method)</a>
+</li>
<li><a
href="../reference/drivers/Driver/#hamilton.driver.Driver.validate_materialization">validate_materialization()
(hamilton.driver.Driver method)</a>
</li>
<li><a
href="../reference/lifecycle-hooks/StaticValidator/#hamilton.lifecycle.api.StaticValidator.validate_node">validate_node()
(hamilton.lifecycle.api.StaticValidator method)</a>
diff --git a/content/how-tos/index.html b/content/how-tos/index.html
index 4a0b05e4..9f514220 100644
--- a/content/how-tos/index.html
+++ b/content/how-tos/index.html
@@ -594,7 +594,10 @@ directory. If there’s an example you want but don’t see,
reach out or open a
</li>
<li class="toctree-l1"><a class="reference internal" href="ml-training/">Model
training</a></li>
<li class="toctree-l1"><a class="reference internal" href="llm-workflows/">LLM
workflows</a></li>
-<li class="toctree-l1"><a class="reference internal"
href="run-data-quality-checks/">Data quality</a></li>
+<li class="toctree-l1"><a class="reference internal"
href="run-data-quality-checks/">Data quality</a><ul>
+<li class="toctree-l2"><a class="reference internal"
href="run-data-quality-checks/#async-validators">Async validators</a></li>
+</ul>
+</li>
<li class="toctree-l1"><a class="reference internal"
href="use-hamilton-for-lineage/">Lineage + Apache Hamilton</a><ul>
<li class="toctree-l2"><a class="reference internal"
href="use-hamilton-for-lineage/#common-problems-and-therefore-questions">Common
Problems (and therefore questions)</a></li>
<li class="toctree-l2"><a class="reference internal"
href="use-hamilton-for-lineage/#what-is-lineage">What is “Lineage”?</a></li>
diff --git a/content/how-tos/run-data-quality-checks/index.html
b/content/how-tos/run-data-quality-checks/index.html
index 6edaeeac..8f1000f5 100644
--- a/content/how-tos/run-data-quality-checks/index.html
+++ b/content/how-tos/run-data-quality-checks/index.html
@@ -186,7 +186,7 @@
<svg class="theme-icon-when-light"><use href="#svg-sun"></use></svg>
</button>
</div>
- <label class="toc-overlay-icon toc-header-icon no-toc" for="__toc">
+ <label class="toc-overlay-icon toc-header-icon" for="__toc">
<span class="icon"><svg><use href="#svg-toc"></use></svg></span>
</label>
</div>
@@ -497,7 +497,7 @@
<svg class="theme-icon-when-light"><use
href="#svg-sun"></use></svg>
</button>
</div>
- <label class="toc-overlay-icon toc-content-icon no-toc" for="__toc">
+ <label class="toc-overlay-icon toc-content-icon" for="__toc">
<span class="icon"><svg><use href="#svg-toc"></use></svg></span>
</label>
</div>
@@ -512,6 +512,11 @@ The goal of this is to show how to use runtime data
quality checks in a larger,
<li><p><a class="reference external"
href="https://github.com/apache/hamilton/tree/main/examples/data_quality/simple">Data
quality with hamilton</a></p></li>
<li><p><a class="reference external"
href="https://github.com/apache/hamilton/tree/main/examples/data_quality/pandera">Data
quality with pandera</a></p></li>
</ol>
+<section id="async-validators">
+<h2>Async validators<a class="headerlink" href="#async-validators" title="Link
to this heading">¶</a></h2>
+<p>For validation logic that requires async operations (e.g., async database
queries or API calls), use <code class="docutils literal notranslate"><span
class="pre">AsyncDataValidator</span></code> or <code class="docutils literal
notranslate"><span class="pre">AsyncBaseDefaultValidator</span></code> from
<code class="docutils literal notranslate"><span
class="pre">hamilton.data_quality.base</span></code>. These define <code
class="docutils literal notranslate"><span class="pre">async</s [...]
+<p>See the <a class="reference internal"
href="../../reference/decorators/check_output/"><span class="doc">check_output
reference</span></a> and <a class="reference external"
href="https://github.com/apache/hamilton/blob/main/writeups/data_quality.md">data
quality writeup</a> for details and examples.</p>
+</section>
</section>
</article>
@@ -570,8 +575,27 @@ The goal of this is to show how to use runtime data
quality checks in a larger,
</footer>
</div>
- <aside class="toc-drawer no-toc">
+ <aside class="toc-drawer">
+
+ <div class="toc-sticky toc-scroll">
+ <div class="toc-title-container">
+ <span class="toc-title">
+ On this page
+ </span>
+ </div>
+ <div class="toc-tree-container">
+ <div class="toc-tree">
+ <ul>
+<li><a class="reference internal" href="#">Data quality</a><ul>
+<li><a class="reference internal" href="#async-validators">Async
validators</a></li>
+</ul>
+</li>
+</ul>
+
+ </div>
+ </div>
+ </div>
</aside>
diff --git a/content/llms-full.txt b/content/llms-full.txt
index de6f6e6c..a70b2ecb 100644
--- a/content/llms-full.txt
+++ b/content/llms-full.txt
@@ -2331,7 +2331,8 @@ The next snippet checks if the returned Series is of type
``np.int32``, which is
.. image:: ./_function-modifiers/check_output.png
- To see all available validators, go to the file
``hamilton/data_quality/default_validators.py`` and view the variable
``AVAILABLE_DEFAULT_VALIDATORS``.
-- The function modifier ``@check_output_custom`` allows you to define your own
validator. Validators inherit the ``base.BaseDefaultValidator`` class and are
essentially standardized Hamilton node definitions (instead of functions). See
``hamilton/data_quality/default_validators.py`` or reach out on `Slack
<https://join.slack.com/t/hamilton-opensource/shared_invite/zt-2niepkra8-DGKGf_tTYhXuJWBTXtIs4g>`_
for help!
+- The function modifier ``@check_output_custom`` allows you to define your own
validator. Validators inherit the ``base.DataValidator`` class (or
``base.BaseDefaultValidator`` for use with ``@check_output``) and are
essentially standardized Hamilton node definitions (instead of functions). See
``hamilton/data_quality/default_validators.py`` or reach out on `Slack
<https://join.slack.com/t/hamilton-opensource/shared_invite/zt-2niepkra8-DGKGf_tTYhXuJWBTXtIs4g>`_
for help!
+- For async validation logic (e.g., async database or API calls), inherit from
``base.AsyncDataValidator`` or ``base.AsyncBaseDefaultValidator`` instead.
These define ``async def validate()`` and work with ``AsyncDriver``. You can
mix sync and async validators in a single ``@check_output_custom`` call.
- Note: ``@check_output_custom`` decorators cannot be stacked, but they
instead can take multiple validators.
.. note::
@@ -8627,6 +8628,13 @@ The goal of this is to show how to use runtime data
quality checks in a larger,
1. `Data quality with hamilton
<https://github.com/apache/hamilton/tree/main/examples/data_quality/simple>`_
2. `Data quality with pandera
<https://github.com/apache/hamilton/tree/main/examples/data_quality/pandera>`_
+Async validators
+~~~~~~~~~~~~~~~~
+
+For validation logic that requires async operations (e.g., async database
queries or API calls), use ``AsyncDataValidator`` or
``AsyncBaseDefaultValidator`` from ``hamilton.data_quality.base``. These define
``async def validate()`` and work with ``AsyncDriver``. You can mix sync and
async validators in a single ``@check_output_custom`` call.
+
+See the :doc:`check_output reference <../reference/decorators/check_output>`
and `data quality writeup
<https://github.com/apache/hamilton/blob/main/writeups/data_quality.md>`_ for
details and examples.
+
=====================
Scaling computation
@@ -12149,6 +12157,11 @@ of the series, and one that checks whether the data is
in a certain range.
Note that you can also specify custom decorators using the
``@check_output_custom`` decorator.
+For async validation (e.g., async database or API calls), use
``AsyncDataValidator`` or ``AsyncBaseDefaultValidator``
+from ``hamilton.data_quality.base`` as your base class instead of the sync
variants. These define
+``async def validate()`` and work with ``AsyncDriver``. You can mix sync and
async validators in a single
+``@check_output_custom`` call — each gets the appropriate wrapper type
automatically.
+
See `data_quality
<https://github.com/apache/hamilton/blob/main/data\_quality.md>`_ for more
information on
available validators and how to build custom ones.
@@ -12167,6 +12180,12 @@ Note we also have a plugins that allow for validation
with the pandera and pydan
.. autoclass:: hamilton.function_modifiers.check_output_custom
:special-members: __init__
+.. autoclass:: hamilton.data_quality.base.AsyncDataValidator
+ :members: validate, applies_to, description, name
+
+.. autoclass:: hamilton.data_quality.base.AsyncBaseDefaultValidator
+ :members: validate, applies_to, description, arg, name
+
.. autoclass:: hamilton.plugins.h_pandera.check_output
:special-members: __init__
diff --git a/content/objects.inv b/content/objects.inv
index 0041ef0d..c092003d 100644
Binary files a/content/objects.inv and b/content/objects.inv differ
diff --git a/content/reference/decorators/check_output/index.html
b/content/reference/decorators/check_output/index.html
index 817c6aee..78d6f841 100644
--- a/content/reference/decorators/check_output/index.html
+++ b/content/reference/decorators/check_output/index.html
@@ -522,6 +522,10 @@
tell it to add the default validator to the list. The above thus creates two
validators, one that checks the datatype
of the series, and one that checks whether the data is in a certain range.</p>
<p>Note that you can also specify custom decorators using the <code
class="docutils literal notranslate"><span
class="pre">@check_output_custom</span></code> decorator.</p>
+<p>For async validation (e.g., async database or API calls), use <code
class="docutils literal notranslate"><span
class="pre">AsyncDataValidator</span></code> or <code class="docutils literal
notranslate"><span class="pre">AsyncBaseDefaultValidator</span></code>
+from <code class="docutils literal notranslate"><span
class="pre">hamilton.data_quality.base</span></code> as your base class instead
of the sync variants. These define
+<code class="docutils literal notranslate"><span class="pre">async</span>
<span class="pre">def</span> <span class="pre">validate()</span></code> and
work with <code class="docutils literal notranslate"><span
class="pre">AsyncDriver</span></code>. You can mix sync and async validators in
a single
+<code class="docutils literal notranslate"><span
class="pre">@check_output_custom</span></code> call — each gets the
appropriate wrapper type automatically.</p>
<p>See <a class="reference external"
href="https://github.com/apache/hamilton/blob/main/data_quality.md">data_quality</a>
for more information on
available validators and how to build custom ones.</p>
<p>Note we also have a plugins that allow for validation with the pandera and
pydantic libraries. There are two ways to access these:</p>
@@ -615,6 +619,121 @@ TODO – enable construction of custom validators using
check_output.custom(*val
</dd></dl>
+<dl class="py class">
+<dt class="sig sig-object py"
id="hamilton.data_quality.base.AsyncDataValidator">
+<span class="property"><span class="k"><span
class="pre">class</span></span><span class="w"> </span></span><span
class="sig-prename descclassname"><span
class="pre">hamilton.data_quality.base.</span></span><span class="sig-name
descname"><span class="pre">AsyncDataValidator</span></span><span
class="sig-paren">(</span><em class="sig-param"><span class="n"><span
class="pre">importance</span></span><span class="p"><span
class="pre">:</span></span><span class="w"> </span><span class="n"><sp [...]
+<dd><p>Base class for an async data quality operator. Use this when validation
requires async operations
+(e.g. async database queries, async API calls). Must be used with
AsyncDriver.</p>
+<dl class="py method">
+<dt class="sig sig-object py"
id="hamilton.data_quality.base.AsyncDataValidator.applies_to">
+<span class="property"><span class="k"><span
class="pre">abstractmethod</span></span><span class="w"> </span></span><span
class="sig-name descname"><span class="pre">applies_to</span></span><span
class="sig-paren">(</span><em class="sig-param"><span class="n"><span
class="pre">datatype</span></span><span class="p"><span
class="pre">:</span></span><span class="w"> </span><span class="n"><span
class="pre">type</span><span class="p"><span class="pre">[</span></span><span
class="pre">type</s [...]
+<dd><p>Whether or not this data validator can apply to the specified
dataset</p>
+<dl class="field-list simple">
+<dt class="field-odd">Parameters<span class="colon">:</span></dt>
+<dd class="field-odd"><p><strong>datatype</strong></p>
+</dd>
+<dt class="field-even">Returns<span class="colon">:</span></dt>
+<dd class="field-even"><p>True if it can be run on the specified type, false
otherwise</p>
+</dd>
+</dl>
+</dd></dl>
+
+<dl class="py method">
+<dt class="sig sig-object py"
id="hamilton.data_quality.base.AsyncDataValidator.description">
+<span class="property"><span class="k"><span
class="pre">abstractmethod</span></span><span class="w"> </span></span><span
class="sig-name descname"><span class="pre">description</span></span><span
class="sig-paren">(</span><span class="sig-paren">)</span> <span
class="sig-return"><span class="sig-return-icon">→</span> <span
class="sig-return-typehint"><span class="pre">str</span></span></span><a
class="headerlink"
href="#hamilton.data_quality.base.AsyncDataValidator.description" t [...]
+<dd><p>Gives a description of this validator. E.G.
+<cite>Checks whether the entire dataset lies between 0 and 1.</cite>
+Note it should be able to access internal state (E.G. constructor arguments).
+:return: The description of the validator as a string</p>
+</dd></dl>
+
+<dl class="py method">
+<dt class="sig sig-object py"
id="hamilton.data_quality.base.AsyncDataValidator.name">
+<span class="property"><span class="k"><span
class="pre">abstractmethod</span></span><span class="w"> </span><span
class="k"><span class="pre">classmethod</span></span><span class="w">
</span></span><span class="sig-name descname"><span
class="pre">name</span></span><span class="sig-paren">(</span><span
class="sig-paren">)</span> <span class="sig-return"><span
class="sig-return-icon">→</span> <span class="sig-return-typehint"><span
class="pre">str</span></span></span><a class="hea [...]
+<dd><p>Returns the name for this validator.</p>
+</dd></dl>
+
+<dl class="py method">
+<dt class="sig sig-object py"
id="hamilton.data_quality.base.AsyncDataValidator.validate">
+<span class="property"><span class="k"><span
class="pre">abstractmethod</span></span><span class="w"> </span><span
class="k"><span class="pre">async</span></span><span class="w">
</span></span><span class="sig-name descname"><span
class="pre">validate</span></span><span class="sig-paren">(</span><em
class="sig-param"><span class="n"><span class="pre">dataset</span></span><span
class="p"><span class="pre">:</span></span><span class="w"> </span><span
class="n"><span class="pre">Any</span>< [...]
+<dd><p>Asynchronously performs the validation.</p>
+<dl class="field-list simple">
+<dt class="field-odd">Parameters<span class="colon">:</span></dt>
+<dd class="field-odd"><p><strong>dataset</strong> – dataset to validate</p>
+</dd>
+<dt class="field-even">Returns<span class="colon">:</span></dt>
+<dd class="field-even"><p>The result of validation</p>
+</dd>
+</dl>
+</dd></dl>
+
+</dd></dl>
+
+<dl class="py class">
+<dt class="sig sig-object py"
id="hamilton.data_quality.base.AsyncBaseDefaultValidator">
+<span class="property"><span class="k"><span
class="pre">class</span></span><span class="w"> </span></span><span
class="sig-prename descclassname"><span
class="pre">hamilton.data_quality.base.</span></span><span class="sig-name
descname"><span class="pre">AsyncBaseDefaultValidator</span></span><span
class="sig-paren">(</span><em class="sig-param"><span class="n"><span
class="pre">importance</span></span><span class="p"><span
class="pre">:</span></span><span class="w"> </span><span class= [...]
+<dd><p>Base class for an async default validator.
+Async variant of BaseDefaultValidator for validators that require async
operations.
+Must be used with AsyncDriver.</p>
+<dl class="py method">
+<dt class="sig sig-object py"
id="hamilton.data_quality.base.AsyncBaseDefaultValidator.applies_to">
+<span class="property"><span class="k"><span
class="pre">abstractmethod</span></span><span class="w"> </span><span
class="k"><span class="pre">classmethod</span></span><span class="w">
</span></span><span class="sig-name descname"><span
class="pre">applies_to</span></span><span class="sig-paren">(</span><em
class="sig-param"><span class="n"><span class="pre">datatype</span></span><span
class="p"><span class="pre">:</span></span><span class="w"> </span><span
class="n"><span class="pre">ty [...]
+<dd><p>Whether or not this data validator can apply to the specified
dataset</p>
+<dl class="field-list simple">
+<dt class="field-odd">Parameters<span class="colon">:</span></dt>
+<dd class="field-odd"><p><strong>datatype</strong></p>
+</dd>
+<dt class="field-even">Returns<span class="colon">:</span></dt>
+<dd class="field-even"><p>True if it can be run on the specified type, false
otherwise</p>
+</dd>
+</dl>
+</dd></dl>
+
+<dl class="py method">
+<dt class="sig sig-object py"
id="hamilton.data_quality.base.AsyncBaseDefaultValidator.arg">
+<span class="property"><span class="k"><span
class="pre">abstractmethod</span></span><span class="w"> </span><span
class="k"><span class="pre">classmethod</span></span><span class="w">
</span></span><span class="sig-name descname"><span
class="pre">arg</span></span><span class="sig-paren">(</span><span
class="sig-paren">)</span> <span class="sig-return"><span
class="sig-return-icon">→</span> <span class="sig-return-typehint"><span
class="pre">str</span></span></span><a class="head [...]
+<dd><p>Yields a string that represents this validator’s argument.
+@check_output() will be passed a series of kwargs, each one of which will
correspond to
+one of these default validators. Note that we have the limitation of allowing
just a single
+argument.</p>
+<dl class="field-list simple">
+<dt class="field-odd">Returns<span class="colon">:</span></dt>
+<dd class="field-odd"><p>The argument that this needs.</p>
+</dd>
+</dl>
+</dd></dl>
+
+<dl class="py method">
+<dt class="sig sig-object py"
id="hamilton.data_quality.base.AsyncBaseDefaultValidator.description">
+<span class="property"><span class="k"><span
class="pre">abstractmethod</span></span><span class="w"> </span></span><span
class="sig-name descname"><span class="pre">description</span></span><span
class="sig-paren">(</span><span class="sig-paren">)</span> <span
class="sig-return"><span class="sig-return-icon">→</span> <span
class="sig-return-typehint"><span class="pre">str</span></span></span><a
class="headerlink"
href="#hamilton.data_quality.base.AsyncBaseDefaultValidator.descrip [...]
+<dd><p>Gives a description of this validator. E.G.
+<cite>Checks whether the entire dataset lies between 0 and 1.</cite>
+Note it should be able to access internal state (E.G. constructor arguments).
+:return: The description of the validator as a string</p>
+</dd></dl>
+
+<dl class="py method">
+<dt class="sig sig-object py"
id="hamilton.data_quality.base.AsyncBaseDefaultValidator.name">
+<span class="property"><span class="k"><span
class="pre">classmethod</span></span><span class="w"> </span></span><span
class="sig-name descname"><span class="pre">name</span></span><span
class="sig-paren">(</span><span class="sig-paren">)</span> <span
class="sig-return"><span class="sig-return-icon">→</span> <span
class="sig-return-typehint"><span class="pre">str</span></span></span><a
class="headerlink"
href="#hamilton.data_quality.base.AsyncBaseDefaultValidator.name" title="Link
[...]
+<dd><p>Returns the name for this validator.</p>
+</dd></dl>
+
+<dl class="py method">
+<dt class="sig sig-object py"
id="hamilton.data_quality.base.AsyncBaseDefaultValidator.validate">
+<span class="property"><span class="k"><span
class="pre">abstractmethod</span></span><span class="w"> </span><span
class="k"><span class="pre">async</span></span><span class="w">
</span></span><span class="sig-name descname"><span
class="pre">validate</span></span><span class="sig-paren">(</span><em
class="sig-param"><span class="n"><span class="pre">data</span></span><span
class="p"><span class="pre">:</span></span><span class="w"> </span><span
class="n"><span class="pre">Any</span></sp [...]
+<dd><p>Actually performs the validation. Note when you</p>
+<dl class="field-list simple">
+<dt class="field-odd">Parameters<span class="colon">:</span></dt>
+<dd class="field-odd"><p><strong>dataset</strong> – dataset to validate</p>
+</dd>
+<dt class="field-even">Returns<span class="colon">:</span></dt>
+<dd class="field-even"><p>The result of validation</p>
+</dd>
+</dl>
+</dd></dl>
+
+</dd></dl>
+
<dl class="py class">
<dt class="sig sig-object py" id="hamilton.plugins.h_pandera.check_output">
<span class="property"><span class="k"><span
class="pre">class</span></span><span class="w"> </span></span><span
class="sig-prename descclassname"><span
class="pre">hamilton.plugins.h_pandera.</span></span><span class="sig-name
descname"><span class="pre">check_output</span></span><span
class="sig-paren">(</span><em class="sig-param"><span class="n"><span
class="pre">importance</span></span><span class="p"><span
class="pre">:</span></span><span class="w"> </span><span class="n"><span cla
[...]
@@ -833,6 +952,21 @@ following function will <em>fail</em> validation:</p>
<li><a class="reference internal"
href="#hamilton.function_modifiers.check_output_custom.__init__"><code
class="docutils literal notranslate"><span
class="pre">check_output_custom.__init__()</span></code></a></li>
</ul>
</li>
+<li><a class="reference internal"
href="#hamilton.data_quality.base.AsyncDataValidator"><code class="docutils
literal notranslate"><span class="pre">AsyncDataValidator</span></code></a><ul>
+<li><a class="reference internal"
href="#hamilton.data_quality.base.AsyncDataValidator.applies_to"><code
class="docutils literal notranslate"><span
class="pre">AsyncDataValidator.applies_to()</span></code></a></li>
+<li><a class="reference internal"
href="#hamilton.data_quality.base.AsyncDataValidator.description"><code
class="docutils literal notranslate"><span
class="pre">AsyncDataValidator.description()</span></code></a></li>
+<li><a class="reference internal"
href="#hamilton.data_quality.base.AsyncDataValidator.name"><code
class="docutils literal notranslate"><span
class="pre">AsyncDataValidator.name()</span></code></a></li>
+<li><a class="reference internal"
href="#hamilton.data_quality.base.AsyncDataValidator.validate"><code
class="docutils literal notranslate"><span
class="pre">AsyncDataValidator.validate()</span></code></a></li>
+</ul>
+</li>
+<li><a class="reference internal"
href="#hamilton.data_quality.base.AsyncBaseDefaultValidator"><code
class="docutils literal notranslate"><span
class="pre">AsyncBaseDefaultValidator</span></code></a><ul>
+<li><a class="reference internal"
href="#hamilton.data_quality.base.AsyncBaseDefaultValidator.applies_to"><code
class="docutils literal notranslate"><span
class="pre">AsyncBaseDefaultValidator.applies_to()</span></code></a></li>
+<li><a class="reference internal"
href="#hamilton.data_quality.base.AsyncBaseDefaultValidator.arg"><code
class="docutils literal notranslate"><span
class="pre">AsyncBaseDefaultValidator.arg()</span></code></a></li>
+<li><a class="reference internal"
href="#hamilton.data_quality.base.AsyncBaseDefaultValidator.description"><code
class="docutils literal notranslate"><span
class="pre">AsyncBaseDefaultValidator.description()</span></code></a></li>
+<li><a class="reference internal"
href="#hamilton.data_quality.base.AsyncBaseDefaultValidator.name"><code
class="docutils literal notranslate"><span
class="pre">AsyncBaseDefaultValidator.name()</span></code></a></li>
+<li><a class="reference internal"
href="#hamilton.data_quality.base.AsyncBaseDefaultValidator.validate"><code
class="docutils literal notranslate"><span
class="pre">AsyncBaseDefaultValidator.validate()</span></code></a></li>
+</ul>
+</li>
<li><a class="reference internal"
href="#hamilton.plugins.h_pandera.check_output"><code class="docutils literal
notranslate"><span class="pre">check_output</span></code></a><ul>
<li><a class="reference internal"
href="#hamilton.plugins.h_pandera.check_output.__init__"><code class="docutils
literal notranslate"><span
class="pre">check_output.__init__()</span></code></a></li>
</ul>
diff --git a/content/reference/decorators/index.html
b/content/reference/decorators/index.html
index 875f3c29..a186c485 100644
--- a/content/reference/decorators/index.html
+++ b/content/reference/decorators/index.html
@@ -517,6 +517,8 @@ or via a <a class="reference external"
href="https://github.com/apache/hamilton/
<li class="toctree-l1"><a class="reference internal"
href="check_output/">check_output*</a><ul>
<li class="toctree-l2"><a class="reference internal"
href="check_output/#hamilton.function_modifiers.check_output"><code
class="docutils literal notranslate"><span
class="pre">check_output</span></code></a></li>
<li class="toctree-l2"><a class="reference internal"
href="check_output/#hamilton.function_modifiers.check_output_custom"><code
class="docutils literal notranslate"><span
class="pre">check_output_custom</span></code></a></li>
+<li class="toctree-l2"><a class="reference internal"
href="check_output/#hamilton.data_quality.base.AsyncDataValidator"><code
class="docutils literal notranslate"><span
class="pre">AsyncDataValidator</span></code></a></li>
+<li class="toctree-l2"><a class="reference internal"
href="check_output/#hamilton.data_quality.base.AsyncBaseDefaultValidator"><code
class="docutils literal notranslate"><span
class="pre">AsyncBaseDefaultValidator</span></code></a></li>
<li class="toctree-l2"><a class="reference internal"
href="check_output/#hamilton.plugins.h_pandera.check_output"><code
class="docutils literal notranslate"><span
class="pre">check_output</span></code></a></li>
<li class="toctree-l2"><a class="reference internal"
href="check_output/#hamilton.plugins.h_pydantic.check_output"><code
class="docutils literal notranslate"><span
class="pre">check_output</span></code></a></li>
</ul>
diff --git a/content/searchindex.js b/content/searchindex.js
index 103a9d0e..a93b7acc 100644
--- a/content/searchindex.js
+++ b/content/searchindex.js
@@ -1 +1 @@
-Search.setIndex({"alltitles":{".with_cache() to specify caching
behavior":[[42,"with-cache-to-specify-caching-behavior"]],"1 - Dynamically
create modules within your
notebook":[[55,"dynamically-create-modules-within-your-notebook"]],"1. Define
steps":[[5,"define-steps"]],"1. Hard to read UI and data
flows.":[[63,"hard-to-read-ui-and-data-flows"]],"1. Importing the
extension":[[44,"importing-the-extension"]],"1.
Programmatically":[[44,"programmatically"]],"1. Test your FastAPI application
[...]
\ No newline at end of file
+Search.setIndex({"alltitles":{".with_cache() to specify caching
behavior":[[42,"with-cache-to-specify-caching-behavior"]],"1 - Dynamically
create modules within your
notebook":[[55,"dynamically-create-modules-within-your-notebook"]],"1. Define
steps":[[5,"define-steps"]],"1. Hard to read UI and data
flows.":[[63,"hard-to-read-ui-and-data-flows"]],"1. Importing the
extension":[[44,"importing-the-extension"]],"1.
Programmatically":[[44,"programmatically"]],"1. Test your FastAPI application
[...]
\ No newline at end of file