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">&#64;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">&#64;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">&#64;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">&#64;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">&#64;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">&#64;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">&#x2192;</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">&#x2192;</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">&#x2192;</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.
+&#64;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">&#x2192;</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">&#x2192;</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


Reply via email to