| |
| <!doctype html> |
| <html lang="en" class="no-js"> |
| <head> |
| |
| <meta charset="utf-8"> |
| <meta name="viewport" content="width=device-width,initial-scale=1"> |
| |
| |
| |
| <link rel="canonical" href="https://py.iceberg.apache.org/reference/pyiceberg/expressions/visitors/"> |
| |
| |
| <link rel="prev" href="../parser/"> |
| |
| |
| <link rel="next" href="../../io/"> |
| |
| |
| <link rel="icon" href="../../../../assets/images/iceberg-logo-icon.png"> |
| <meta name="generator" content="mkdocs-1.6.1, mkdocs-material-9.6.21"> |
| |
| |
| |
| <title>visitors - PyIceberg</title> |
| |
| |
| |
| <link rel="stylesheet" href="../../../../assets/stylesheets/main.2a3383ac.min.css"> |
| |
| |
| <link rel="stylesheet" href="../../../../assets/stylesheets/palette.06af60db.min.css"> |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin> |
| <link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Lato:300,300i,400,400i,700,700i%7CRoboto+Mono:400,400i,700,700i&display=fallback"> |
| <style>:root{--md-text-font:"Lato";--md-code-font:"Roboto Mono"}</style> |
| |
| |
| |
| <link rel="stylesheet" href="../../../../assets/_mkdocstrings.css"> |
| |
| <script>__md_scope=new URL("../../../..",location),__md_hash=e=>[...e].reduce(((e,_)=>(e<<5)-e+_.charCodeAt(0)),0),__md_get=(e,_=localStorage,t=__md_scope)=>JSON.parse(_.getItem(t.pathname+"."+e)),__md_set=(e,_,t=localStorage,a=__md_scope)=>{try{t.setItem(a.pathname+"."+e,JSON.stringify(_))}catch(e){}}</script> |
| |
| |
| |
| |
| |
| |
| |
| <!-- Matomo --> |
| <script> |
| var _paq = window._paq = window._paq || []; |
| /* tracker methods like "setCustomDimension" should be called before "trackPageView" */ |
| _paq.push(["setDoNotTrack", true]); |
| _paq.push(["disableCookies"]); |
| _paq.push(['trackPageView']); |
| _paq.push(['enableLinkTracking']); |
| (function() { |
| var u="https://analytics.apache.org/"; |
| _paq.push(['setTrackerUrl', u+'matomo.php']); |
| _paq.push(['setSiteId', '82']); |
| var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0]; |
| g.async=true; g.src=u+'matomo.js'; s.parentNode.insertBefore(g,s); |
| })(); |
| </script> |
| <!-- End Matomo --> |
| |
| </head> |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| <body dir="ltr" data-md-color-scheme="default" data-md-color-primary="indigo" data-md-color-accent="indigo"> |
| |
| |
| <input class="md-toggle" data-md-toggle="drawer" type="checkbox" id="__drawer" autocomplete="off"> |
| <input class="md-toggle" data-md-toggle="search" type="checkbox" id="__search" autocomplete="off"> |
| <label class="md-overlay" for="__drawer"></label> |
| <div data-md-component="skip"> |
| |
| |
| <a href="#pyiceberg.expressions.visitors" class="md-skip"> |
| Skip to content |
| </a> |
| |
| </div> |
| <div data-md-component="announce"> |
| |
| </div> |
| |
| |
| |
| |
| |
| |
| <header class="md-header md-header--shadow md-header--lifted" data-md-component="header"> |
| <nav class="md-header__inner md-grid" aria-label="Header"> |
| <a href="../../../.." title="PyIceberg" class="md-header__button md-logo" aria-label="PyIceberg" data-md-component="logo"> |
| |
| <img src="../../../../assets/images/iceberg-logo-icon.png" alt="logo"> |
| |
| </a> |
| <label class="md-header__button md-icon" for="__drawer"> |
| |
| <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M3 6h18v2H3zm0 5h18v2H3zm0 5h18v2H3z"/></svg> |
| </label> |
| <div class="md-header__title" data-md-component="header-title"> |
| <div class="md-header__ellipsis"> |
| <div class="md-header__topic"> |
| <span class="md-ellipsis"> |
| PyIceberg |
| </span> |
| </div> |
| <div class="md-header__topic" data-md-component="header-topic"> |
| <span class="md-ellipsis"> |
| |
| visitors |
| |
| </span> |
| </div> |
| </div> |
| </div> |
| |
| |
| <form class="md-header__option" data-md-component="palette"> |
| |
| |
| |
| |
| <input class="md-option" data-md-color-media="" data-md-color-scheme="default" data-md-color-primary="indigo" data-md-color-accent="indigo" aria-label="Switch to dark mode" type="radio" name="__palette" id="__palette_0"> |
| |
| <label class="md-header__button md-icon" title="Switch to dark mode" for="__palette_1" hidden> |
| <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M12 8a4 4 0 0 0-4 4 4 4 0 0 0 4 4 4 4 0 0 0 4-4 4 4 0 0 0-4-4m0 10a6 6 0 0 1-6-6 6 6 0 0 1 6-6 6 6 0 0 1 6 6 6 6 0 0 1-6 6m8-9.31V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69L23.31 12z"/></svg> |
| </label> |
| |
| |
| |
| |
| |
| <input class="md-option" data-md-color-media="" data-md-color-scheme="slate" data-md-color-primary="indigo" data-md-color-accent="indigo" aria-label="Switch to light mode" type="radio" name="__palette" id="__palette_1"> |
| |
| <label class="md-header__button md-icon" title="Switch to light mode" for="__palette_0" hidden> |
| <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M12 18c-.89 0-1.74-.2-2.5-.55C11.56 16.5 13 14.42 13 12s-1.44-4.5-3.5-5.45C10.26 6.2 11.11 6 12 6a6 6 0 0 1 6 6 6 6 0 0 1-6 6m8-9.31V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69L23.31 12z"/></svg> |
| </label> |
| |
| |
| </form> |
| |
| |
| |
| <script>var palette=__md_get("__palette");if(palette&&palette.color){if("(prefers-color-scheme)"===palette.color.media){var media=matchMedia("(prefers-color-scheme: light)"),input=document.querySelector(media.matches?"[data-md-color-media='(prefers-color-scheme: light)']":"[data-md-color-media='(prefers-color-scheme: dark)']");palette.color.media=input.getAttribute("data-md-color-media"),palette.color.scheme=input.getAttribute("data-md-color-scheme"),palette.color.primary=input.getAttribute("data-md-color-primary"),palette.color.accent=input.getAttribute("data-md-color-accent")}for(var[key,value]of Object.entries(palette.color))document.body.setAttribute("data-md-color-"+key,value)}</script> |
| |
| |
| |
| |
| |
| <label class="md-header__button md-icon" for="__search"> |
| |
| <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.52 6.52 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5"/></svg> |
| </label> |
| <div class="md-search" data-md-component="search" role="dialog"> |
| <label class="md-search__overlay" for="__search"></label> |
| <div class="md-search__inner" role="search"> |
| <form class="md-search__form" name="search"> |
| <input type="text" class="md-search__input" name="query" aria-label="Search" placeholder="Search" autocapitalize="off" autocorrect="off" autocomplete="off" spellcheck="false" data-md-component="search-query" required> |
| <label class="md-search__icon md-icon" for="__search"> |
| |
| <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.52 6.52 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5"/></svg> |
| |
| <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11z"/></svg> |
| </label> |
| <nav class="md-search__options" aria-label="Search"> |
| |
| <button type="reset" class="md-search__icon md-icon" title="Clear" aria-label="Clear" tabindex="-1"> |
| |
| <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"/></svg> |
| </button> |
| </nav> |
| |
| </form> |
| <div class="md-search__output"> |
| <div class="md-search__scrollwrap" tabindex="0" data-md-scrollfix> |
| <div class="md-search-result" data-md-component="search-result"> |
| <div class="md-search-result__meta"> |
| Initializing search |
| </div> |
| <ol class="md-search-result__list" role="presentation"></ol> |
| </div> |
| </div> |
| </div> |
| </div> |
| </div> |
| |
| |
| |
| <div class="md-header__source"> |
| <a href="https://github.com/apache/iceberg-python" title="Go to repository" class="md-source" data-md-component="source"> |
| <div class="md-source__icon md-icon"> |
| |
| <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Free 7.0.1 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path d="M439.6 236.1 244 40.5c-5.4-5.5-12.8-8.5-20.4-8.5s-15 3-20.4 8.4L162.5 81l51.5 51.5c27.1-9.1 52.7 16.8 43.4 43.7l49.7 49.7c34.2-11.8 61.2 31 35.5 56.7-26.5 26.5-70.2-2.9-56-37.3L240.3 199v121.9c25.3 12.5 22.3 41.8 9.1 55-6.4 6.4-15.2 10.1-24.3 10.1s-17.8-3.6-24.3-10.1c-17.6-17.6-11.1-46.9 11.2-56v-123c-20.8-8.5-24.6-30.7-18.6-45L142.6 101 8.5 235.1C3 240.6 0 247.9 0 255.5s3 15 8.5 20.4l195.6 195.7c5.4 5.4 12.7 8.4 20.4 8.4s15-3 20.4-8.4l194.7-194.7c5.4-5.4 8.4-12.8 8.4-20.4s-3-15-8.4-20.4"/></svg> |
| </div> |
| <div class="md-source__repository"> |
| apache/iceberg-python |
| </div> |
| </a> |
| </div> |
| |
| </nav> |
| |
| |
| |
| <nav class="md-tabs" aria-label="Tabs" data-md-component="tabs"> |
| <div class="md-grid"> |
| <ul class="md-tabs__list"> |
| |
| |
| |
| |
| |
| |
| <li class="md-tabs__item"> |
| <a href="../../../.." class="md-tabs__link"> |
| |
| |
| |
| |
| |
| Getting started |
| |
| </a> |
| </li> |
| |
| |
| |
| |
| |
| |
| |
| |
| <li class="md-tabs__item"> |
| <a href="../../../../configuration/" class="md-tabs__link"> |
| |
| |
| |
| |
| |
| Configuration |
| |
| </a> |
| </li> |
| |
| |
| |
| |
| |
| |
| |
| |
| <li class="md-tabs__item"> |
| <a href="../../../../cli/" class="md-tabs__link"> |
| |
| |
| |
| |
| |
| CLI |
| |
| </a> |
| </li> |
| |
| |
| |
| |
| |
| |
| |
| |
| <li class="md-tabs__item"> |
| <a href="../../../../api/" class="md-tabs__link"> |
| |
| |
| |
| |
| |
| API |
| |
| </a> |
| </li> |
| |
| |
| |
| |
| |
| |
| |
| |
| <li class="md-tabs__item"> |
| <a href="../../../../contributing/" class="md-tabs__link"> |
| |
| |
| |
| |
| |
| Contributing |
| |
| </a> |
| </li> |
| |
| |
| |
| |
| |
| |
| |
| |
| <li class="md-tabs__item"> |
| <a href="../../../../community/" class="md-tabs__link"> |
| |
| |
| |
| |
| |
| Community |
| |
| </a> |
| </li> |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| <li class="md-tabs__item"> |
| <a href="../../../../verify-release/" class="md-tabs__link"> |
| |
| |
| |
| Releases |
| |
| </a> |
| </li> |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| <li class="md-tabs__item md-tabs__item--active"> |
| <a href="../../" class="md-tabs__link"> |
| |
| |
| |
| Code Reference |
| |
| </a> |
| </li> |
| |
| |
| |
| |
| </ul> |
| </div> |
| </nav> |
| |
| |
| </header> |
| |
| <div class="md-container" data-md-component="container"> |
| |
| |
| |
| |
| <main class="md-main" data-md-component="main"> |
| <div class="md-main__inner md-grid"> |
| |
| |
| |
| <div class="md-sidebar md-sidebar--primary" data-md-component="sidebar" data-md-type="navigation" > |
| <div class="md-sidebar__scrollwrap"> |
| <div class="md-sidebar__inner"> |
| |
| |
| |
| |
| |
| |
| <nav class="md-nav md-nav--primary md-nav--lifted" aria-label="Navigation" data-md-level="0"> |
| <label class="md-nav__title" for="__drawer"> |
| <a href="../../../.." title="PyIceberg" class="md-nav__button md-logo" aria-label="PyIceberg" data-md-component="logo"> |
| |
| <img src="../../../../assets/images/iceberg-logo-icon.png" alt="logo"> |
| |
| </a> |
| PyIceberg |
| </label> |
| |
| <div class="md-nav__source"> |
| <a href="https://github.com/apache/iceberg-python" title="Go to repository" class="md-source" data-md-component="source"> |
| <div class="md-source__icon md-icon"> |
| |
| <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Free 7.0.1 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path d="M439.6 236.1 244 40.5c-5.4-5.5-12.8-8.5-20.4-8.5s-15 3-20.4 8.4L162.5 81l51.5 51.5c27.1-9.1 52.7 16.8 43.4 43.7l49.7 49.7c34.2-11.8 61.2 31 35.5 56.7-26.5 26.5-70.2-2.9-56-37.3L240.3 199v121.9c25.3 12.5 22.3 41.8 9.1 55-6.4 6.4-15.2 10.1-24.3 10.1s-17.8-3.6-24.3-10.1c-17.6-17.6-11.1-46.9 11.2-56v-123c-20.8-8.5-24.6-30.7-18.6-45L142.6 101 8.5 235.1C3 240.6 0 247.9 0 255.5s3 15 8.5 20.4l195.6 195.7c5.4 5.4 12.7 8.4 20.4 8.4s15-3 20.4-8.4l194.7-194.7c5.4-5.4 8.4-12.8 8.4-20.4s-3-15-8.4-20.4"/></svg> |
| </div> |
| <div class="md-source__repository"> |
| apache/iceberg-python |
| </div> |
| </a> |
| </div> |
| |
| <ul class="md-nav__list" data-md-scrollfix> |
| |
| |
| |
| |
| |
| |
| |
| <li class="md-nav__item"> |
| <a href="../../../.." class="md-nav__link"> |
| |
| |
| |
| <span class="md-ellipsis"> |
| Getting started |
| |
| </span> |
| |
| |
| </a> |
| </li> |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| <li class="md-nav__item"> |
| <a href="../../../../configuration/" class="md-nav__link"> |
| |
| |
| |
| <span class="md-ellipsis"> |
| Configuration |
| |
| </span> |
| |
| |
| </a> |
| </li> |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| <li class="md-nav__item"> |
| <a href="../../../../cli/" class="md-nav__link"> |
| |
| |
| |
| <span class="md-ellipsis"> |
| CLI |
| |
| </span> |
| |
| |
| </a> |
| </li> |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| <li class="md-nav__item md-nav__item--nested"> |
| |
| |
| |
| <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_4" > |
| |
| |
| <div class="md-nav__link md-nav__container"> |
| <a href="../../../../api/" class="md-nav__link "> |
| |
| |
| |
| <span class="md-ellipsis"> |
| API |
| |
| </span> |
| |
| |
| </a> |
| |
| |
| <label class="md-nav__link " for="__nav_4" id="__nav_4_label" tabindex="0"> |
| <span class="md-nav__icon md-icon"></span> |
| </label> |
| |
| </div> |
| |
| <nav class="md-nav" data-md-level="1" aria-labelledby="__nav_4_label" aria-expanded="false"> |
| <label class="md-nav__title" for="__nav_4"> |
| <span class="md-nav__icon md-icon"></span> |
| API |
| </label> |
| <ul class="md-nav__list" data-md-scrollfix> |
| |
| |
| |
| |
| |
| |
| |
| <li class="md-nav__item"> |
| <a href="../../../../row-filter-syntax/" class="md-nav__link"> |
| |
| |
| |
| <span class="md-ellipsis"> |
| Row Filter Syntax |
| |
| </span> |
| |
| |
| </a> |
| </li> |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| <li class="md-nav__item"> |
| <a href="../../../../expression-dsl/" class="md-nav__link"> |
| |
| |
| |
| <span class="md-ellipsis"> |
| Expression DSL |
| |
| </span> |
| |
| |
| </a> |
| </li> |
| |
| |
| |
| |
| </ul> |
| </nav> |
| |
| </li> |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| <li class="md-nav__item"> |
| <a href="../../../../contributing/" class="md-nav__link"> |
| |
| |
| |
| <span class="md-ellipsis"> |
| Contributing |
| |
| </span> |
| |
| |
| </a> |
| </li> |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| <li class="md-nav__item"> |
| <a href="../../../../community/" class="md-nav__link"> |
| |
| |
| |
| <span class="md-ellipsis"> |
| Community |
| |
| </span> |
| |
| |
| </a> |
| </li> |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| <li class="md-nav__item md-nav__item--nested"> |
| |
| |
| |
| <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_7" > |
| |
| |
| <label class="md-nav__link" for="__nav_7" id="__nav_7_label" tabindex="0"> |
| |
| |
| |
| <span class="md-ellipsis"> |
| Releases |
| |
| </span> |
| |
| |
| <span class="md-nav__icon md-icon"></span> |
| </label> |
| |
| <nav class="md-nav" data-md-level="1" aria-labelledby="__nav_7_label" aria-expanded="false"> |
| <label class="md-nav__title" for="__nav_7"> |
| <span class="md-nav__icon md-icon"></span> |
| Releases |
| </label> |
| <ul class="md-nav__list" data-md-scrollfix> |
| |
| |
| |
| |
| |
| |
| |
| <li class="md-nav__item"> |
| <a href="../../../../verify-release/" class="md-nav__link"> |
| |
| |
| |
| <span class="md-ellipsis"> |
| Verify a release |
| |
| </span> |
| |
| |
| </a> |
| </li> |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| <li class="md-nav__item"> |
| <a href="../../../../how-to-release/" class="md-nav__link"> |
| |
| |
| |
| <span class="md-ellipsis"> |
| How to release |
| |
| </span> |
| |
| |
| </a> |
| </li> |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| <li class="md-nav__item"> |
| <a href="https://github.com/apache/iceberg-python/releases" class="md-nav__link"> |
| |
| |
| |
| <span class="md-ellipsis"> |
| Release Notes |
| |
| </span> |
| |
| |
| </a> |
| </li> |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| <li class="md-nav__item"> |
| <a href="../../../../nightly-build/" class="md-nav__link"> |
| |
| |
| |
| <span class="md-ellipsis"> |
| Nightly Build |
| |
| </span> |
| |
| |
| </a> |
| </li> |
| |
| |
| |
| |
| </ul> |
| </nav> |
| |
| </li> |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| <li class="md-nav__item md-nav__item--active md-nav__item--section md-nav__item--nested"> |
| |
| |
| |
| <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_8" checked> |
| |
| |
| <label class="md-nav__link" for="__nav_8" id="__nav_8_label" tabindex=""> |
| |
| |
| |
| <span class="md-ellipsis"> |
| Code Reference |
| |
| </span> |
| |
| |
| <span class="md-nav__icon md-icon"></span> |
| </label> |
| |
| <nav class="md-nav" data-md-level="1" aria-labelledby="__nav_8_label" aria-expanded="true"> |
| <label class="md-nav__title" for="__nav_8"> |
| <span class="md-nav__icon md-icon"></span> |
| Code Reference |
| </label> |
| <ul class="md-nav__list" data-md-scrollfix> |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| <li class="md-nav__item md-nav__item--active md-nav__item--nested"> |
| |
| |
| |
| <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_8_1" checked> |
| |
| |
| <div class="md-nav__link md-nav__container"> |
| <a href="../../" class="md-nav__link "> |
| |
| |
| |
| <span class="md-ellipsis"> |
| pyiceberg |
| |
| </span> |
| |
| |
| </a> |
| |
| |
| <label class="md-nav__link " for="__nav_8_1" id="__nav_8_1_label" tabindex="0"> |
| <span class="md-nav__icon md-icon"></span> |
| </label> |
| |
| </div> |
| |
| <nav class="md-nav" data-md-level="2" aria-labelledby="__nav_8_1_label" aria-expanded="true"> |
| <label class="md-nav__title" for="__nav_8_1"> |
| <span class="md-nav__icon md-icon"></span> |
| pyiceberg |
| </label> |
| <ul class="md-nav__list" data-md-scrollfix> |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| <li class="md-nav__item md-nav__item--nested"> |
| |
| |
| |
| <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_8_1_1" > |
| |
| |
| <div class="md-nav__link md-nav__container"> |
| <a href="../../avro/" class="md-nav__link "> |
| |
| |
| |
| <span class="md-ellipsis"> |
| avro |
| |
| </span> |
| |
| |
| </a> |
| |
| |
| <label class="md-nav__link " for="__nav_8_1_1" id="__nav_8_1_1_label" tabindex="0"> |
| <span class="md-nav__icon md-icon"></span> |
| </label> |
| |
| </div> |
| |
| <nav class="md-nav" data-md-level="3" aria-labelledby="__nav_8_1_1_label" aria-expanded="false"> |
| <label class="md-nav__title" for="__nav_8_1_1"> |
| <span class="md-nav__icon md-icon"></span> |
| avro |
| </label> |
| <ul class="md-nav__list" data-md-scrollfix> |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| <li class="md-nav__item md-nav__item--nested"> |
| |
| |
| |
| <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_8_1_1_1" > |
| |
| |
| <div class="md-nav__link md-nav__container"> |
| <a href="../../avro/codecs/" class="md-nav__link "> |
| |
| |
| |
| <span class="md-ellipsis"> |
| codecs |
| |
| </span> |
| |
| |
| </a> |
| |
| |
| <label class="md-nav__link " for="__nav_8_1_1_1" id="__nav_8_1_1_1_label" tabindex="0"> |
| <span class="md-nav__icon md-icon"></span> |
| </label> |
| |
| </div> |
| |
| <nav class="md-nav" data-md-level="4" aria-labelledby="__nav_8_1_1_1_label" aria-expanded="false"> |
| <label class="md-nav__title" for="__nav_8_1_1_1"> |
| <span class="md-nav__icon md-icon"></span> |
| codecs |
| </label> |
| <ul class="md-nav__list" data-md-scrollfix> |
| |
| |
| |
| |
| |
| |
| |
| <li class="md-nav__item"> |
| <a href="../../avro/codecs/bzip2/" class="md-nav__link"> |
| |
| |
| |
| <span class="md-ellipsis"> |
| bzip2 |
| |
| </span> |
| |
| |
| </a> |
| </li> |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| <li class="md-nav__item"> |
| <a href="../../avro/codecs/codec/" class="md-nav__link"> |
| |
| |
| |
| <span class="md-ellipsis"> |
| codec |
| |
| </span> |
| |
| |
| </a> |
| </li> |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| <li class="md-nav__item"> |
| <a href="../../avro/codecs/deflate/" class="md-nav__link"> |
| |
| |
| |
| <span class="md-ellipsis"> |
| deflate |
| |
| </span> |
| |
| |
| </a> |
| </li> |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| <li class="md-nav__item"> |
| <a href="../../avro/codecs/snappy_codec/" class="md-nav__link"> |
| |
| |
| |
| <span class="md-ellipsis"> |
| snappy_codec |
| |
| </span> |
| |
| |
| </a> |
| </li> |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| <li class="md-nav__item"> |
| <a href="../../avro/codecs/zstandard_codec/" class="md-nav__link"> |
| |
| |
| |
| <span class="md-ellipsis"> |
| zstandard_codec |
| |
| </span> |
| |
| |
| </a> |
| </li> |
| |
| |
| |
| |
| </ul> |
| </nav> |
| |
| </li> |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| <li class="md-nav__item"> |
| <a href="../../avro/decoder/" class="md-nav__link"> |
| |
| |
| |
| <span class="md-ellipsis"> |
| decoder |
| |
| </span> |
| |
| |
| </a> |
| </li> |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| <li class="md-nav__item"> |
| <a href="../../avro/encoder/" class="md-nav__link"> |
| |
| |
| |
| <span class="md-ellipsis"> |
| encoder |
| |
| </span> |
| |
| |
| </a> |
| </li> |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| <li class="md-nav__item"> |
| <a href="../../avro/file/" class="md-nav__link"> |
| |
| |
| |
| <span class="md-ellipsis"> |
| file |
| |
| </span> |
| |
| |
| </a> |
| </li> |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| <li class="md-nav__item"> |
| <a href="../../avro/reader/" class="md-nav__link"> |
| |
| |
| |
| <span class="md-ellipsis"> |
| reader |
| |
| </span> |
| |
| |
| </a> |
| </li> |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| <li class="md-nav__item"> |
| <a href="../../avro/resolver/" class="md-nav__link"> |
| |
| |
| |
| <span class="md-ellipsis"> |
| resolver |
| |
| </span> |
| |
| |
| </a> |
| </li> |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| <li class="md-nav__item"> |
| <a href="../../avro/writer/" class="md-nav__link"> |
| |
| |
| |
| <span class="md-ellipsis"> |
| writer |
| |
| </span> |
| |
| |
| </a> |
| </li> |
| |
| |
| |
| |
| </ul> |
| </nav> |
| |
| </li> |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| <li class="md-nav__item md-nav__item--nested"> |
| |
| |
| |
| <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_8_1_2" > |
| |
| |
| <div class="md-nav__link md-nav__container"> |
| <a href="../../catalog/" class="md-nav__link "> |
| |
| |
| |
| <span class="md-ellipsis"> |
| catalog |
| |
| </span> |
| |
| |
| </a> |
| |
| |
| <label class="md-nav__link " for="__nav_8_1_2" id="__nav_8_1_2_label" tabindex="0"> |
| <span class="md-nav__icon md-icon"></span> |
| </label> |
| |
| </div> |
| |
| <nav class="md-nav" data-md-level="3" aria-labelledby="__nav_8_1_2_label" aria-expanded="false"> |
| <label class="md-nav__title" for="__nav_8_1_2"> |
| <span class="md-nav__icon md-icon"></span> |
| catalog |
| </label> |
| <ul class="md-nav__list" data-md-scrollfix> |
| |
| |
| |
| |
| |
| |
| |
| <li class="md-nav__item"> |
| <a href="../../catalog/bigquery_metastore/" class="md-nav__link"> |
| |
| |
| |
| <span class="md-ellipsis"> |
| bigquery_metastore |
| |
| </span> |
| |
| |
| </a> |
| </li> |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| <li class="md-nav__item"> |
| <a href="../../catalog/dynamodb/" class="md-nav__link"> |
| |
| |
| |
| <span class="md-ellipsis"> |
| dynamodb |
| |
| </span> |
| |
| |
| </a> |
| </li> |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| <li class="md-nav__item"> |
| <a href="../../catalog/glue/" class="md-nav__link"> |
| |
| |
| |
| <span class="md-ellipsis"> |
| glue |
| |
| </span> |
| |
| |
| </a> |
| </li> |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| <li class="md-nav__item"> |
| <a href="../../catalog/hive/" class="md-nav__link"> |
| |
| |
| |
| <span class="md-ellipsis"> |
| hive |
| |
| </span> |
| |
| |
| </a> |
| </li> |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| <li class="md-nav__item"> |
| <a href="../../catalog/memory/" class="md-nav__link"> |
| |
| |
| |
| <span class="md-ellipsis"> |
| memory |
| |
| </span> |
| |
| |
| </a> |
| </li> |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| <li class="md-nav__item"> |
| <a href="../../catalog/noop/" class="md-nav__link"> |
| |
| |
| |
| <span class="md-ellipsis"> |
| noop |
| |
| </span> |
| |
| |
| </a> |
| </li> |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| <li class="md-nav__item md-nav__item--nested"> |
| |
| |
| |
| <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_8_1_2_7" > |
| |
| |
| <div class="md-nav__link md-nav__container"> |
| <a href="../../catalog/rest/" class="md-nav__link "> |
| |
| |
| |
| <span class="md-ellipsis"> |
| rest |
| |
| </span> |
| |
| |
| </a> |
| |
| |
| <label class="md-nav__link " for="__nav_8_1_2_7" id="__nav_8_1_2_7_label" tabindex="0"> |
| <span class="md-nav__icon md-icon"></span> |
| </label> |
| |
| </div> |
| |
| <nav class="md-nav" data-md-level="4" aria-labelledby="__nav_8_1_2_7_label" aria-expanded="false"> |
| <label class="md-nav__title" for="__nav_8_1_2_7"> |
| <span class="md-nav__icon md-icon"></span> |
| rest |
| </label> |
| <ul class="md-nav__list" data-md-scrollfix> |
| |
| |
| |
| |
| |
| |
| |
| <li class="md-nav__item"> |
| <a href="../../catalog/rest/auth/" class="md-nav__link"> |
| |
| |
| |
| <span class="md-ellipsis"> |
| auth |
| |
| </span> |
| |
| |
| </a> |
| </li> |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| <li class="md-nav__item"> |
| <a href="../../catalog/rest/response/" class="md-nav__link"> |
| |
| |
| |
| <span class="md-ellipsis"> |
| response |
| |
| </span> |
| |
| |
| </a> |
| </li> |
| |
| |
| |
| |
| </ul> |
| </nav> |
| |
| </li> |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| <li class="md-nav__item"> |
| <a href="../../catalog/sql/" class="md-nav__link"> |
| |
| |
| |
| <span class="md-ellipsis"> |
| sql |
| |
| </span> |
| |
| |
| </a> |
| </li> |
| |
| |
| |
| |
| </ul> |
| </nav> |
| |
| </li> |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| <li class="md-nav__item md-nav__item--nested"> |
| |
| |
| |
| <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_8_1_3" > |
| |
| |
| <div class="md-nav__link md-nav__container"> |
| <a href="../../cli/" class="md-nav__link "> |
| |
| |
| |
| <span class="md-ellipsis"> |
| cli |
| |
| </span> |
| |
| |
| </a> |
| |
| |
| <label class="md-nav__link " for="__nav_8_1_3" id="__nav_8_1_3_label" tabindex="0"> |
| <span class="md-nav__icon md-icon"></span> |
| </label> |
| |
| </div> |
| |
| <nav class="md-nav" data-md-level="3" aria-labelledby="__nav_8_1_3_label" aria-expanded="false"> |
| <label class="md-nav__title" for="__nav_8_1_3"> |
| <span class="md-nav__icon md-icon"></span> |
| cli |
| </label> |
| <ul class="md-nav__list" data-md-scrollfix> |
| |
| |
| |
| |
| |
| |
| |
| <li class="md-nav__item"> |
| <a href="../../cli/console/" class="md-nav__link"> |
| |
| |
| |
| <span class="md-ellipsis"> |
| console |
| |
| </span> |
| |
| |
| </a> |
| </li> |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| <li class="md-nav__item"> |
| <a href="../../cli/output/" class="md-nav__link"> |
| |
| |
| |
| <span class="md-ellipsis"> |
| output |
| |
| </span> |
| |
| |
| </a> |
| </li> |
| |
| |
| |
| |
| </ul> |
| </nav> |
| |
| </li> |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| <li class="md-nav__item"> |
| <a href="../../conversions/" class="md-nav__link"> |
| |
| |
| |
| <span class="md-ellipsis"> |
| conversions |
| |
| </span> |
| |
| |
| </a> |
| </li> |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| <li class="md-nav__item"> |
| <a href="../../exceptions/" class="md-nav__link"> |
| |
| |
| |
| <span class="md-ellipsis"> |
| exceptions |
| |
| </span> |
| |
| |
| </a> |
| </li> |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| <li class="md-nav__item md-nav__item--active md-nav__item--nested"> |
| |
| |
| |
| <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_8_1_6" checked> |
| |
| |
| <div class="md-nav__link md-nav__container"> |
| <a href="../" class="md-nav__link "> |
| |
| |
| |
| <span class="md-ellipsis"> |
| expressions |
| |
| </span> |
| |
| |
| </a> |
| |
| |
| <label class="md-nav__link " for="__nav_8_1_6" id="__nav_8_1_6_label" tabindex="0"> |
| <span class="md-nav__icon md-icon"></span> |
| </label> |
| |
| </div> |
| |
| <nav class="md-nav" data-md-level="3" aria-labelledby="__nav_8_1_6_label" aria-expanded="true"> |
| <label class="md-nav__title" for="__nav_8_1_6"> |
| <span class="md-nav__icon md-icon"></span> |
| expressions |
| </label> |
| <ul class="md-nav__list" data-md-scrollfix> |
| |
| |
| |
| |
| |
| |
| |
| <li class="md-nav__item"> |
| <a href="../literals/" class="md-nav__link"> |
| |
| |
| |
| <span class="md-ellipsis"> |
| literals |
| |
| </span> |
| |
| |
| </a> |
| </li> |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| <li class="md-nav__item"> |
| <a href="../parser/" class="md-nav__link"> |
| |
| |
| |
| <span class="md-ellipsis"> |
| parser |
| |
| </span> |
| |
| |
| </a> |
| </li> |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| <li class="md-nav__item md-nav__item--active"> |
| |
| <input class="md-nav__toggle md-toggle" type="checkbox" id="__toc"> |
| |
| |
| |
| <label class="md-nav__link md-nav__link--active" for="__toc"> |
| |
| |
| |
| <span class="md-ellipsis"> |
| visitors |
| |
| </span> |
| |
| |
| <span class="md-nav__icon md-icon"></span> |
| </label> |
| |
| <a href="./" class="md-nav__link md-nav__link--active"> |
| |
| |
| |
| <span class="md-ellipsis"> |
| visitors |
| |
| </span> |
| |
| |
| </a> |
| |
| |
| |
| <nav class="md-nav md-nav--secondary" aria-label="Table of contents"> |
| |
| |
| |
| |
| <label class="md-nav__title" for="__toc"> |
| <span class="md-nav__icon md-icon"></span> |
| Table of contents |
| </label> |
| <ul class="md-nav__list" data-md-component="toc" data-md-scrollfix> |
| |
| <li class="md-nav__item"> |
| <a href="#pyiceberg.expressions.visitors" class="md-nav__link"> |
| <span class="md-ellipsis"> |
| visitors |
| </span> |
| </a> |
| |
| </li> |
| |
| <li class="md-nav__item"> |
| <a href="#pyiceberg.expressions.visitors.BindVisitor" class="md-nav__link"> |
| <span class="md-ellipsis"> |
| BindVisitor |
| </span> |
| </a> |
| |
| </li> |
| |
| <li class="md-nav__item"> |
| <a href="#pyiceberg.expressions.visitors.BooleanExpressionVisitor" class="md-nav__link"> |
| <span class="md-ellipsis"> |
| BooleanExpressionVisitor |
| </span> |
| </a> |
| |
| <nav class="md-nav" aria-label="BooleanExpressionVisitor"> |
| <ul class="md-nav__list"> |
| |
| <li class="md-nav__item"> |
| <a href="#pyiceberg.expressions.visitors.BooleanExpressionVisitor.visit_and" class="md-nav__link"> |
| <span class="md-ellipsis"> |
| visit_and |
| </span> |
| </a> |
| |
| </li> |
| |
| <li class="md-nav__item"> |
| <a href="#pyiceberg.expressions.visitors.BooleanExpressionVisitor.visit_bound_predicate" class="md-nav__link"> |
| <span class="md-ellipsis"> |
| visit_bound_predicate |
| </span> |
| </a> |
| |
| </li> |
| |
| <li class="md-nav__item"> |
| <a href="#pyiceberg.expressions.visitors.BooleanExpressionVisitor.visit_false" class="md-nav__link"> |
| <span class="md-ellipsis"> |
| visit_false |
| </span> |
| </a> |
| |
| </li> |
| |
| <li class="md-nav__item"> |
| <a href="#pyiceberg.expressions.visitors.BooleanExpressionVisitor.visit_not" class="md-nav__link"> |
| <span class="md-ellipsis"> |
| visit_not |
| </span> |
| </a> |
| |
| </li> |
| |
| <li class="md-nav__item"> |
| <a href="#pyiceberg.expressions.visitors.BooleanExpressionVisitor.visit_or" class="md-nav__link"> |
| <span class="md-ellipsis"> |
| visit_or |
| </span> |
| </a> |
| |
| </li> |
| |
| <li class="md-nav__item"> |
| <a href="#pyiceberg.expressions.visitors.BooleanExpressionVisitor.visit_true" class="md-nav__link"> |
| <span class="md-ellipsis"> |
| visit_true |
| </span> |
| </a> |
| |
| </li> |
| |
| <li class="md-nav__item"> |
| <a href="#pyiceberg.expressions.visitors.BooleanExpressionVisitor.visit_unbound_predicate" class="md-nav__link"> |
| <span class="md-ellipsis"> |
| visit_unbound_predicate |
| </span> |
| </a> |
| |
| </li> |
| |
| </ul> |
| </nav> |
| |
| </li> |
| |
| <li class="md-nav__item"> |
| <a href="#pyiceberg.expressions.visitors.BoundBooleanExpressionVisitor" class="md-nav__link"> |
| <span class="md-ellipsis"> |
| BoundBooleanExpressionVisitor |
| </span> |
| </a> |
| |
| <nav class="md-nav" aria-label="BoundBooleanExpressionVisitor"> |
| <ul class="md-nav__list"> |
| |
| <li class="md-nav__item"> |
| <a href="#pyiceberg.expressions.visitors.BoundBooleanExpressionVisitor.visit_and" class="md-nav__link"> |
| <span class="md-ellipsis"> |
| visit_and |
| </span> |
| </a> |
| |
| </li> |
| |
| <li class="md-nav__item"> |
| <a href="#pyiceberg.expressions.visitors.BoundBooleanExpressionVisitor.visit_bound_predicate" class="md-nav__link"> |
| <span class="md-ellipsis"> |
| visit_bound_predicate |
| </span> |
| </a> |
| |
| </li> |
| |
| <li class="md-nav__item"> |
| <a href="#pyiceberg.expressions.visitors.BoundBooleanExpressionVisitor.visit_equal" class="md-nav__link"> |
| <span class="md-ellipsis"> |
| visit_equal |
| </span> |
| </a> |
| |
| </li> |
| |
| <li class="md-nav__item"> |
| <a href="#pyiceberg.expressions.visitors.BoundBooleanExpressionVisitor.visit_false" class="md-nav__link"> |
| <span class="md-ellipsis"> |
| visit_false |
| </span> |
| </a> |
| |
| </li> |
| |
| <li class="md-nav__item"> |
| <a href="#pyiceberg.expressions.visitors.BoundBooleanExpressionVisitor.visit_greater_than" class="md-nav__link"> |
| <span class="md-ellipsis"> |
| visit_greater_than |
| </span> |
| </a> |
| |
| </li> |
| |
| <li class="md-nav__item"> |
| <a href="#pyiceberg.expressions.visitors.BoundBooleanExpressionVisitor.visit_greater_than_or_equal" class="md-nav__link"> |
| <span class="md-ellipsis"> |
| visit_greater_than_or_equal |
| </span> |
| </a> |
| |
| </li> |
| |
| <li class="md-nav__item"> |
| <a href="#pyiceberg.expressions.visitors.BoundBooleanExpressionVisitor.visit_in" class="md-nav__link"> |
| <span class="md-ellipsis"> |
| visit_in |
| </span> |
| </a> |
| |
| </li> |
| |
| <li class="md-nav__item"> |
| <a href="#pyiceberg.expressions.visitors.BoundBooleanExpressionVisitor.visit_is_nan" class="md-nav__link"> |
| <span class="md-ellipsis"> |
| visit_is_nan |
| </span> |
| </a> |
| |
| </li> |
| |
| <li class="md-nav__item"> |
| <a href="#pyiceberg.expressions.visitors.BoundBooleanExpressionVisitor.visit_is_null" class="md-nav__link"> |
| <span class="md-ellipsis"> |
| visit_is_null |
| </span> |
| </a> |
| |
| </li> |
| |
| <li class="md-nav__item"> |
| <a href="#pyiceberg.expressions.visitors.BoundBooleanExpressionVisitor.visit_less_than" class="md-nav__link"> |
| <span class="md-ellipsis"> |
| visit_less_than |
| </span> |
| </a> |
| |
| </li> |
| |
| <li class="md-nav__item"> |
| <a href="#pyiceberg.expressions.visitors.BoundBooleanExpressionVisitor.visit_less_than_or_equal" class="md-nav__link"> |
| <span class="md-ellipsis"> |
| visit_less_than_or_equal |
| </span> |
| </a> |
| |
| </li> |
| |
| <li class="md-nav__item"> |
| <a href="#pyiceberg.expressions.visitors.BoundBooleanExpressionVisitor.visit_not" class="md-nav__link"> |
| <span class="md-ellipsis"> |
| visit_not |
| </span> |
| </a> |
| |
| </li> |
| |
| <li class="md-nav__item"> |
| <a href="#pyiceberg.expressions.visitors.BoundBooleanExpressionVisitor.visit_not_equal" class="md-nav__link"> |
| <span class="md-ellipsis"> |
| visit_not_equal |
| </span> |
| </a> |
| |
| </li> |
| |
| <li class="md-nav__item"> |
| <a href="#pyiceberg.expressions.visitors.BoundBooleanExpressionVisitor.visit_not_in" class="md-nav__link"> |
| <span class="md-ellipsis"> |
| visit_not_in |
| </span> |
| </a> |
| |
| </li> |
| |
| <li class="md-nav__item"> |
| <a href="#pyiceberg.expressions.visitors.BoundBooleanExpressionVisitor.visit_not_nan" class="md-nav__link"> |
| <span class="md-ellipsis"> |
| visit_not_nan |
| </span> |
| </a> |
| |
| </li> |
| |
| <li class="md-nav__item"> |
| <a href="#pyiceberg.expressions.visitors.BoundBooleanExpressionVisitor.visit_not_null" class="md-nav__link"> |
| <span class="md-ellipsis"> |
| visit_not_null |
| </span> |
| </a> |
| |
| </li> |
| |
| <li class="md-nav__item"> |
| <a href="#pyiceberg.expressions.visitors.BoundBooleanExpressionVisitor.visit_not_starts_with" class="md-nav__link"> |
| <span class="md-ellipsis"> |
| visit_not_starts_with |
| </span> |
| </a> |
| |
| </li> |
| |
| <li class="md-nav__item"> |
| <a href="#pyiceberg.expressions.visitors.BoundBooleanExpressionVisitor.visit_or" class="md-nav__link"> |
| <span class="md-ellipsis"> |
| visit_or |
| </span> |
| </a> |
| |
| </li> |
| |
| <li class="md-nav__item"> |
| <a href="#pyiceberg.expressions.visitors.BoundBooleanExpressionVisitor.visit_starts_with" class="md-nav__link"> |
| <span class="md-ellipsis"> |
| visit_starts_with |
| </span> |
| </a> |
| |
| </li> |
| |
| <li class="md-nav__item"> |
| <a href="#pyiceberg.expressions.visitors.BoundBooleanExpressionVisitor.visit_true" class="md-nav__link"> |
| <span class="md-ellipsis"> |
| visit_true |
| </span> |
| </a> |
| |
| </li> |
| |
| <li class="md-nav__item"> |
| <a href="#pyiceberg.expressions.visitors.BoundBooleanExpressionVisitor.visit_unbound_predicate" class="md-nav__link"> |
| <span class="md-ellipsis"> |
| visit_unbound_predicate |
| </span> |
| </a> |
| |
| </li> |
| |
| </ul> |
| </nav> |
| |
| </li> |
| |
| <li class="md-nav__item"> |
| <a href="#pyiceberg.expressions.visitors.ResidualVisitor" class="md-nav__link"> |
| <span class="md-ellipsis"> |
| ResidualVisitor |
| </span> |
| </a> |
| |
| <nav class="md-nav" aria-label="ResidualVisitor"> |
| <ul class="md-nav__list"> |
| |
| <li class="md-nav__item"> |
| <a href="#pyiceberg.expressions.visitors.ResidualVisitor.visit_bound_predicate" class="md-nav__link"> |
| <span class="md-ellipsis"> |
| visit_bound_predicate |
| </span> |
| </a> |
| |
| </li> |
| |
| </ul> |
| </nav> |
| |
| </li> |
| |
| <li class="md-nav__item"> |
| <a href="#pyiceberg.expressions.visitors.bind" class="md-nav__link"> |
| <span class="md-ellipsis"> |
| bind |
| </span> |
| </a> |
| |
| </li> |
| |
| <li class="md-nav__item"> |
| <a href="#pyiceberg.expressions.visitors.expression_to_plain_format" class="md-nav__link"> |
| <span class="md-ellipsis"> |
| expression_to_plain_format |
| </span> |
| </a> |
| |
| </li> |
| |
| <li class="md-nav__item"> |
| <a href="#pyiceberg.expressions.visitors.visit" class="md-nav__link"> |
| <span class="md-ellipsis"> |
| visit |
| </span> |
| </a> |
| |
| </li> |
| |
| </ul> |
| |
| </nav> |
| |
| </li> |
| |
| |
| |
| |
| </ul> |
| </nav> |
| |
| </li> |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| <li class="md-nav__item md-nav__item--nested"> |
| |
| |
| |
| <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_8_1_7" > |
| |
| |
| <div class="md-nav__link md-nav__container"> |
| <a href="../../io/" class="md-nav__link "> |
| |
| |
| |
| <span class="md-ellipsis"> |
| io |
| |
| </span> |
| |
| |
| </a> |
| |
| |
| <label class="md-nav__link " for="__nav_8_1_7" id="__nav_8_1_7_label" tabindex="0"> |
| <span class="md-nav__icon md-icon"></span> |
| </label> |
| |
| </div> |
| |
| <nav class="md-nav" data-md-level="3" aria-labelledby="__nav_8_1_7_label" aria-expanded="false"> |
| <label class="md-nav__title" for="__nav_8_1_7"> |
| <span class="md-nav__icon md-icon"></span> |
| io |
| </label> |
| <ul class="md-nav__list" data-md-scrollfix> |
| |
| |
| |
| |
| |
| |
| |
| <li class="md-nav__item"> |
| <a href="../../io/fsspec/" class="md-nav__link"> |
| |
| |
| |
| <span class="md-ellipsis"> |
| fsspec |
| |
| </span> |
| |
| |
| </a> |
| </li> |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| <li class="md-nav__item"> |
| <a href="../../io/pyarrow/" class="md-nav__link"> |
| |
| |
| |
| <span class="md-ellipsis"> |
| pyarrow |
| |
| </span> |
| |
| |
| </a> |
| </li> |
| |
| |
| |
| |
| </ul> |
| </nav> |
| |
| </li> |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| <li class="md-nav__item"> |
| <a href="../../manifest/" class="md-nav__link"> |
| |
| |
| |
| <span class="md-ellipsis"> |
| manifest |
| |
| </span> |
| |
| |
| </a> |
| </li> |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| <li class="md-nav__item"> |
| <a href="../../partitioning/" class="md-nav__link"> |
| |
| |
| |
| <span class="md-ellipsis"> |
| partitioning |
| |
| </span> |
| |
| |
| </a> |
| </li> |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| <li class="md-nav__item"> |
| <a href="../../schema/" class="md-nav__link"> |
| |
| |
| |
| <span class="md-ellipsis"> |
| schema |
| |
| </span> |
| |
| |
| </a> |
| </li> |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| <li class="md-nav__item"> |
| <a href="../../serializers/" class="md-nav__link"> |
| |
| |
| |
| <span class="md-ellipsis"> |
| serializers |
| |
| </span> |
| |
| |
| </a> |
| </li> |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| <li class="md-nav__item md-nav__item--nested"> |
| |
| |
| |
| <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_8_1_12" > |
| |
| |
| <div class="md-nav__link md-nav__container"> |
| <a href="../../table/" class="md-nav__link "> |
| |
| |
| |
| <span class="md-ellipsis"> |
| table |
| |
| </span> |
| |
| |
| </a> |
| |
| |
| <label class="md-nav__link " for="__nav_8_1_12" id="__nav_8_1_12_label" tabindex="0"> |
| <span class="md-nav__icon md-icon"></span> |
| </label> |
| |
| </div> |
| |
| <nav class="md-nav" data-md-level="3" aria-labelledby="__nav_8_1_12_label" aria-expanded="false"> |
| <label class="md-nav__title" for="__nav_8_1_12"> |
| <span class="md-nav__icon md-icon"></span> |
| table |
| </label> |
| <ul class="md-nav__list" data-md-scrollfix> |
| |
| |
| |
| |
| |
| |
| |
| <li class="md-nav__item"> |
| <a href="../../table/inspect/" class="md-nav__link"> |
| |
| |
| |
| <span class="md-ellipsis"> |
| inspect |
| |
| </span> |
| |
| |
| </a> |
| </li> |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| <li class="md-nav__item"> |
| <a href="../../table/locations/" class="md-nav__link"> |
| |
| |
| |
| <span class="md-ellipsis"> |
| locations |
| |
| </span> |
| |
| |
| </a> |
| </li> |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| <li class="md-nav__item"> |
| <a href="../../table/maintenance/" class="md-nav__link"> |
| |
| |
| |
| <span class="md-ellipsis"> |
| maintenance |
| |
| </span> |
| |
| |
| </a> |
| </li> |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| <li class="md-nav__item"> |
| <a href="../../table/metadata/" class="md-nav__link"> |
| |
| |
| |
| <span class="md-ellipsis"> |
| metadata |
| |
| </span> |
| |
| |
| </a> |
| </li> |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| <li class="md-nav__item"> |
| <a href="../../table/name_mapping/" class="md-nav__link"> |
| |
| |
| |
| <span class="md-ellipsis"> |
| name_mapping |
| |
| </span> |
| |
| |
| </a> |
| </li> |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| <li class="md-nav__item"> |
| <a href="../../table/puffin/" class="md-nav__link"> |
| |
| |
| |
| <span class="md-ellipsis"> |
| puffin |
| |
| </span> |
| |
| |
| </a> |
| </li> |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| <li class="md-nav__item"> |
| <a href="../../table/refs/" class="md-nav__link"> |
| |
| |
| |
| <span class="md-ellipsis"> |
| refs |
| |
| </span> |
| |
| |
| </a> |
| </li> |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| <li class="md-nav__item"> |
| <a href="../../table/snapshots/" class="md-nav__link"> |
| |
| |
| |
| <span class="md-ellipsis"> |
| snapshots |
| |
| </span> |
| |
| |
| </a> |
| </li> |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| <li class="md-nav__item"> |
| <a href="../../table/sorting/" class="md-nav__link"> |
| |
| |
| |
| <span class="md-ellipsis"> |
| sorting |
| |
| </span> |
| |
| |
| </a> |
| </li> |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| <li class="md-nav__item"> |
| <a href="../../table/statistics/" class="md-nav__link"> |
| |
| |
| |
| <span class="md-ellipsis"> |
| statistics |
| |
| </span> |
| |
| |
| </a> |
| </li> |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| <li class="md-nav__item md-nav__item--nested"> |
| |
| |
| |
| <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_8_1_12_11" > |
| |
| |
| <div class="md-nav__link md-nav__container"> |
| <a href="../../table/update/" class="md-nav__link "> |
| |
| |
| |
| <span class="md-ellipsis"> |
| update |
| |
| </span> |
| |
| |
| </a> |
| |
| |
| <label class="md-nav__link " for="__nav_8_1_12_11" id="__nav_8_1_12_11_label" tabindex="0"> |
| <span class="md-nav__icon md-icon"></span> |
| </label> |
| |
| </div> |
| |
| <nav class="md-nav" data-md-level="4" aria-labelledby="__nav_8_1_12_11_label" aria-expanded="false"> |
| <label class="md-nav__title" for="__nav_8_1_12_11"> |
| <span class="md-nav__icon md-icon"></span> |
| update |
| </label> |
| <ul class="md-nav__list" data-md-scrollfix> |
| |
| |
| |
| |
| |
| |
| |
| <li class="md-nav__item"> |
| <a href="../../table/update/schema/" class="md-nav__link"> |
| |
| |
| |
| <span class="md-ellipsis"> |
| schema |
| |
| </span> |
| |
| |
| </a> |
| </li> |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| <li class="md-nav__item"> |
| <a href="../../table/update/snapshot/" class="md-nav__link"> |
| |
| |
| |
| <span class="md-ellipsis"> |
| snapshot |
| |
| </span> |
| |
| |
| </a> |
| </li> |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| <li class="md-nav__item"> |
| <a href="../../table/update/sorting/" class="md-nav__link"> |
| |
| |
| |
| <span class="md-ellipsis"> |
| sorting |
| |
| </span> |
| |
| |
| </a> |
| </li> |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| <li class="md-nav__item"> |
| <a href="../../table/update/spec/" class="md-nav__link"> |
| |
| |
| |
| <span class="md-ellipsis"> |
| spec |
| |
| </span> |
| |
| |
| </a> |
| </li> |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| <li class="md-nav__item"> |
| <a href="../../table/update/statistics/" class="md-nav__link"> |
| |
| |
| |
| <span class="md-ellipsis"> |
| statistics |
| |
| </span> |
| |
| |
| </a> |
| </li> |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| <li class="md-nav__item"> |
| <a href="../../table/update/validate/" class="md-nav__link"> |
| |
| |
| |
| <span class="md-ellipsis"> |
| validate |
| |
| </span> |
| |
| |
| </a> |
| </li> |
| |
| |
| |
| |
| </ul> |
| </nav> |
| |
| </li> |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| <li class="md-nav__item"> |
| <a href="../../table/upsert_util/" class="md-nav__link"> |
| |
| |
| |
| <span class="md-ellipsis"> |
| upsert_util |
| |
| </span> |
| |
| |
| </a> |
| </li> |
| |
| |
| |
| |
| </ul> |
| </nav> |
| |
| </li> |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| <li class="md-nav__item"> |
| <a href="../../transforms/" class="md-nav__link"> |
| |
| |
| |
| <span class="md-ellipsis"> |
| transforms |
| |
| </span> |
| |
| |
| </a> |
| </li> |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| <li class="md-nav__item"> |
| <a href="../../typedef/" class="md-nav__link"> |
| |
| |
| |
| <span class="md-ellipsis"> |
| typedef |
| |
| </span> |
| |
| |
| </a> |
| </li> |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| <li class="md-nav__item"> |
| <a href="../../types/" class="md-nav__link"> |
| |
| |
| |
| <span class="md-ellipsis"> |
| types |
| |
| </span> |
| |
| |
| </a> |
| </li> |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| <li class="md-nav__item md-nav__item--nested"> |
| |
| |
| |
| <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_8_1_16" > |
| |
| |
| <div class="md-nav__link md-nav__container"> |
| <a href="../../utils/" class="md-nav__link "> |
| |
| |
| |
| <span class="md-ellipsis"> |
| utils |
| |
| </span> |
| |
| |
| </a> |
| |
| |
| <label class="md-nav__link " for="__nav_8_1_16" id="__nav_8_1_16_label" tabindex="0"> |
| <span class="md-nav__icon md-icon"></span> |
| </label> |
| |
| </div> |
| |
| <nav class="md-nav" data-md-level="3" aria-labelledby="__nav_8_1_16_label" aria-expanded="false"> |
| <label class="md-nav__title" for="__nav_8_1_16"> |
| <span class="md-nav__icon md-icon"></span> |
| utils |
| </label> |
| <ul class="md-nav__list" data-md-scrollfix> |
| |
| |
| |
| |
| |
| |
| |
| <li class="md-nav__item"> |
| <a href="../../utils/bin_packing/" class="md-nav__link"> |
| |
| |
| |
| <span class="md-ellipsis"> |
| bin_packing |
| |
| </span> |
| |
| |
| </a> |
| </li> |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| <li class="md-nav__item"> |
| <a href="../../utils/concurrent/" class="md-nav__link"> |
| |
| |
| |
| <span class="md-ellipsis"> |
| concurrent |
| |
| </span> |
| |
| |
| </a> |
| </li> |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| <li class="md-nav__item"> |
| <a href="../../utils/config/" class="md-nav__link"> |
| |
| |
| |
| <span class="md-ellipsis"> |
| config |
| |
| </span> |
| |
| |
| </a> |
| </li> |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| <li class="md-nav__item"> |
| <a href="../../utils/datetime/" class="md-nav__link"> |
| |
| |
| |
| <span class="md-ellipsis"> |
| datetime |
| |
| </span> |
| |
| |
| </a> |
| </li> |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| <li class="md-nav__item"> |
| <a href="../../utils/decimal/" class="md-nav__link"> |
| |
| |
| |
| <span class="md-ellipsis"> |
| decimal |
| |
| </span> |
| |
| |
| </a> |
| </li> |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| <li class="md-nav__item"> |
| <a href="../../utils/deprecated/" class="md-nav__link"> |
| |
| |
| |
| <span class="md-ellipsis"> |
| deprecated |
| |
| </span> |
| |
| |
| </a> |
| </li> |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| <li class="md-nav__item"> |
| <a href="../../utils/lazydict/" class="md-nav__link"> |
| |
| |
| |
| <span class="md-ellipsis"> |
| lazydict |
| |
| </span> |
| |
| |
| </a> |
| </li> |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| <li class="md-nav__item"> |
| <a href="../../utils/parsing/" class="md-nav__link"> |
| |
| |
| |
| <span class="md-ellipsis"> |
| parsing |
| |
| </span> |
| |
| |
| </a> |
| </li> |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| <li class="md-nav__item"> |
| <a href="../../utils/properties/" class="md-nav__link"> |
| |
| |
| |
| <span class="md-ellipsis"> |
| properties |
| |
| </span> |
| |
| |
| </a> |
| </li> |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| <li class="md-nav__item"> |
| <a href="../../utils/schema_conversion/" class="md-nav__link"> |
| |
| |
| |
| <span class="md-ellipsis"> |
| schema_conversion |
| |
| </span> |
| |
| |
| </a> |
| </li> |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| <li class="md-nav__item"> |
| <a href="../../utils/singleton/" class="md-nav__link"> |
| |
| |
| |
| <span class="md-ellipsis"> |
| singleton |
| |
| </span> |
| |
| |
| </a> |
| </li> |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| <li class="md-nav__item"> |
| <a href="../../utils/truncate/" class="md-nav__link"> |
| |
| |
| |
| <span class="md-ellipsis"> |
| truncate |
| |
| </span> |
| |
| |
| </a> |
| </li> |
| |
| |
| |
| |
| </ul> |
| </nav> |
| |
| </li> |
| |
| |
| |
| |
| </ul> |
| </nav> |
| |
| </li> |
| |
| |
| |
| |
| </ul> |
| </nav> |
| |
| </li> |
| |
| |
| |
| </ul> |
| </nav> |
| </div> |
| </div> |
| </div> |
| |
| |
| |
| <div class="md-sidebar md-sidebar--secondary" data-md-component="sidebar" data-md-type="toc" > |
| <div class="md-sidebar__scrollwrap"> |
| <div class="md-sidebar__inner"> |
| |
| |
| <nav class="md-nav md-nav--secondary" aria-label="Table of contents"> |
| |
| |
| |
| |
| <label class="md-nav__title" for="__toc"> |
| <span class="md-nav__icon md-icon"></span> |
| Table of contents |
| </label> |
| <ul class="md-nav__list" data-md-component="toc" data-md-scrollfix> |
| |
| <li class="md-nav__item"> |
| <a href="#pyiceberg.expressions.visitors" class="md-nav__link"> |
| <span class="md-ellipsis"> |
| visitors |
| </span> |
| </a> |
| |
| </li> |
| |
| <li class="md-nav__item"> |
| <a href="#pyiceberg.expressions.visitors.BindVisitor" class="md-nav__link"> |
| <span class="md-ellipsis"> |
| BindVisitor |
| </span> |
| </a> |
| |
| </li> |
| |
| <li class="md-nav__item"> |
| <a href="#pyiceberg.expressions.visitors.BooleanExpressionVisitor" class="md-nav__link"> |
| <span class="md-ellipsis"> |
| BooleanExpressionVisitor |
| </span> |
| </a> |
| |
| <nav class="md-nav" aria-label="BooleanExpressionVisitor"> |
| <ul class="md-nav__list"> |
| |
| <li class="md-nav__item"> |
| <a href="#pyiceberg.expressions.visitors.BooleanExpressionVisitor.visit_and" class="md-nav__link"> |
| <span class="md-ellipsis"> |
| visit_and |
| </span> |
| </a> |
| |
| </li> |
| |
| <li class="md-nav__item"> |
| <a href="#pyiceberg.expressions.visitors.BooleanExpressionVisitor.visit_bound_predicate" class="md-nav__link"> |
| <span class="md-ellipsis"> |
| visit_bound_predicate |
| </span> |
| </a> |
| |
| </li> |
| |
| <li class="md-nav__item"> |
| <a href="#pyiceberg.expressions.visitors.BooleanExpressionVisitor.visit_false" class="md-nav__link"> |
| <span class="md-ellipsis"> |
| visit_false |
| </span> |
| </a> |
| |
| </li> |
| |
| <li class="md-nav__item"> |
| <a href="#pyiceberg.expressions.visitors.BooleanExpressionVisitor.visit_not" class="md-nav__link"> |
| <span class="md-ellipsis"> |
| visit_not |
| </span> |
| </a> |
| |
| </li> |
| |
| <li class="md-nav__item"> |
| <a href="#pyiceberg.expressions.visitors.BooleanExpressionVisitor.visit_or" class="md-nav__link"> |
| <span class="md-ellipsis"> |
| visit_or |
| </span> |
| </a> |
| |
| </li> |
| |
| <li class="md-nav__item"> |
| <a href="#pyiceberg.expressions.visitors.BooleanExpressionVisitor.visit_true" class="md-nav__link"> |
| <span class="md-ellipsis"> |
| visit_true |
| </span> |
| </a> |
| |
| </li> |
| |
| <li class="md-nav__item"> |
| <a href="#pyiceberg.expressions.visitors.BooleanExpressionVisitor.visit_unbound_predicate" class="md-nav__link"> |
| <span class="md-ellipsis"> |
| visit_unbound_predicate |
| </span> |
| </a> |
| |
| </li> |
| |
| </ul> |
| </nav> |
| |
| </li> |
| |
| <li class="md-nav__item"> |
| <a href="#pyiceberg.expressions.visitors.BoundBooleanExpressionVisitor" class="md-nav__link"> |
| <span class="md-ellipsis"> |
| BoundBooleanExpressionVisitor |
| </span> |
| </a> |
| |
| <nav class="md-nav" aria-label="BoundBooleanExpressionVisitor"> |
| <ul class="md-nav__list"> |
| |
| <li class="md-nav__item"> |
| <a href="#pyiceberg.expressions.visitors.BoundBooleanExpressionVisitor.visit_and" class="md-nav__link"> |
| <span class="md-ellipsis"> |
| visit_and |
| </span> |
| </a> |
| |
| </li> |
| |
| <li class="md-nav__item"> |
| <a href="#pyiceberg.expressions.visitors.BoundBooleanExpressionVisitor.visit_bound_predicate" class="md-nav__link"> |
| <span class="md-ellipsis"> |
| visit_bound_predicate |
| </span> |
| </a> |
| |
| </li> |
| |
| <li class="md-nav__item"> |
| <a href="#pyiceberg.expressions.visitors.BoundBooleanExpressionVisitor.visit_equal" class="md-nav__link"> |
| <span class="md-ellipsis"> |
| visit_equal |
| </span> |
| </a> |
| |
| </li> |
| |
| <li class="md-nav__item"> |
| <a href="#pyiceberg.expressions.visitors.BoundBooleanExpressionVisitor.visit_false" class="md-nav__link"> |
| <span class="md-ellipsis"> |
| visit_false |
| </span> |
| </a> |
| |
| </li> |
| |
| <li class="md-nav__item"> |
| <a href="#pyiceberg.expressions.visitors.BoundBooleanExpressionVisitor.visit_greater_than" class="md-nav__link"> |
| <span class="md-ellipsis"> |
| visit_greater_than |
| </span> |
| </a> |
| |
| </li> |
| |
| <li class="md-nav__item"> |
| <a href="#pyiceberg.expressions.visitors.BoundBooleanExpressionVisitor.visit_greater_than_or_equal" class="md-nav__link"> |
| <span class="md-ellipsis"> |
| visit_greater_than_or_equal |
| </span> |
| </a> |
| |
| </li> |
| |
| <li class="md-nav__item"> |
| <a href="#pyiceberg.expressions.visitors.BoundBooleanExpressionVisitor.visit_in" class="md-nav__link"> |
| <span class="md-ellipsis"> |
| visit_in |
| </span> |
| </a> |
| |
| </li> |
| |
| <li class="md-nav__item"> |
| <a href="#pyiceberg.expressions.visitors.BoundBooleanExpressionVisitor.visit_is_nan" class="md-nav__link"> |
| <span class="md-ellipsis"> |
| visit_is_nan |
| </span> |
| </a> |
| |
| </li> |
| |
| <li class="md-nav__item"> |
| <a href="#pyiceberg.expressions.visitors.BoundBooleanExpressionVisitor.visit_is_null" class="md-nav__link"> |
| <span class="md-ellipsis"> |
| visit_is_null |
| </span> |
| </a> |
| |
| </li> |
| |
| <li class="md-nav__item"> |
| <a href="#pyiceberg.expressions.visitors.BoundBooleanExpressionVisitor.visit_less_than" class="md-nav__link"> |
| <span class="md-ellipsis"> |
| visit_less_than |
| </span> |
| </a> |
| |
| </li> |
| |
| <li class="md-nav__item"> |
| <a href="#pyiceberg.expressions.visitors.BoundBooleanExpressionVisitor.visit_less_than_or_equal" class="md-nav__link"> |
| <span class="md-ellipsis"> |
| visit_less_than_or_equal |
| </span> |
| </a> |
| |
| </li> |
| |
| <li class="md-nav__item"> |
| <a href="#pyiceberg.expressions.visitors.BoundBooleanExpressionVisitor.visit_not" class="md-nav__link"> |
| <span class="md-ellipsis"> |
| visit_not |
| </span> |
| </a> |
| |
| </li> |
| |
| <li class="md-nav__item"> |
| <a href="#pyiceberg.expressions.visitors.BoundBooleanExpressionVisitor.visit_not_equal" class="md-nav__link"> |
| <span class="md-ellipsis"> |
| visit_not_equal |
| </span> |
| </a> |
| |
| </li> |
| |
| <li class="md-nav__item"> |
| <a href="#pyiceberg.expressions.visitors.BoundBooleanExpressionVisitor.visit_not_in" class="md-nav__link"> |
| <span class="md-ellipsis"> |
| visit_not_in |
| </span> |
| </a> |
| |
| </li> |
| |
| <li class="md-nav__item"> |
| <a href="#pyiceberg.expressions.visitors.BoundBooleanExpressionVisitor.visit_not_nan" class="md-nav__link"> |
| <span class="md-ellipsis"> |
| visit_not_nan |
| </span> |
| </a> |
| |
| </li> |
| |
| <li class="md-nav__item"> |
| <a href="#pyiceberg.expressions.visitors.BoundBooleanExpressionVisitor.visit_not_null" class="md-nav__link"> |
| <span class="md-ellipsis"> |
| visit_not_null |
| </span> |
| </a> |
| |
| </li> |
| |
| <li class="md-nav__item"> |
| <a href="#pyiceberg.expressions.visitors.BoundBooleanExpressionVisitor.visit_not_starts_with" class="md-nav__link"> |
| <span class="md-ellipsis"> |
| visit_not_starts_with |
| </span> |
| </a> |
| |
| </li> |
| |
| <li class="md-nav__item"> |
| <a href="#pyiceberg.expressions.visitors.BoundBooleanExpressionVisitor.visit_or" class="md-nav__link"> |
| <span class="md-ellipsis"> |
| visit_or |
| </span> |
| </a> |
| |
| </li> |
| |
| <li class="md-nav__item"> |
| <a href="#pyiceberg.expressions.visitors.BoundBooleanExpressionVisitor.visit_starts_with" class="md-nav__link"> |
| <span class="md-ellipsis"> |
| visit_starts_with |
| </span> |
| </a> |
| |
| </li> |
| |
| <li class="md-nav__item"> |
| <a href="#pyiceberg.expressions.visitors.BoundBooleanExpressionVisitor.visit_true" class="md-nav__link"> |
| <span class="md-ellipsis"> |
| visit_true |
| </span> |
| </a> |
| |
| </li> |
| |
| <li class="md-nav__item"> |
| <a href="#pyiceberg.expressions.visitors.BoundBooleanExpressionVisitor.visit_unbound_predicate" class="md-nav__link"> |
| <span class="md-ellipsis"> |
| visit_unbound_predicate |
| </span> |
| </a> |
| |
| </li> |
| |
| </ul> |
| </nav> |
| |
| </li> |
| |
| <li class="md-nav__item"> |
| <a href="#pyiceberg.expressions.visitors.ResidualVisitor" class="md-nav__link"> |
| <span class="md-ellipsis"> |
| ResidualVisitor |
| </span> |
| </a> |
| |
| <nav class="md-nav" aria-label="ResidualVisitor"> |
| <ul class="md-nav__list"> |
| |
| <li class="md-nav__item"> |
| <a href="#pyiceberg.expressions.visitors.ResidualVisitor.visit_bound_predicate" class="md-nav__link"> |
| <span class="md-ellipsis"> |
| visit_bound_predicate |
| </span> |
| </a> |
| |
| </li> |
| |
| </ul> |
| </nav> |
| |
| </li> |
| |
| <li class="md-nav__item"> |
| <a href="#pyiceberg.expressions.visitors.bind" class="md-nav__link"> |
| <span class="md-ellipsis"> |
| bind |
| </span> |
| </a> |
| |
| </li> |
| |
| <li class="md-nav__item"> |
| <a href="#pyiceberg.expressions.visitors.expression_to_plain_format" class="md-nav__link"> |
| <span class="md-ellipsis"> |
| expression_to_plain_format |
| </span> |
| </a> |
| |
| </li> |
| |
| <li class="md-nav__item"> |
| <a href="#pyiceberg.expressions.visitors.visit" class="md-nav__link"> |
| <span class="md-ellipsis"> |
| visit |
| </span> |
| </a> |
| |
| </li> |
| |
| </ul> |
| |
| </nav> |
| </div> |
| </div> |
| </div> |
| |
| |
| |
| <div class="md-content" data-md-component="content"> |
| <article class="md-content__inner md-typeset"> |
| |
| |
| |
| |
| |
| |
| |
| |
| <h1>visitors</h1> |
| |
| <div class="doc doc-object doc-module"> |
| |
| |
| |
| <a id="pyiceberg.expressions.visitors"></a> |
| <div class="doc doc-contents first"> |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| <div class="doc doc-children"> |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| <div class="doc doc-object doc-class"> |
| |
| |
| |
| <h2 id="pyiceberg.expressions.visitors.BindVisitor" class="doc doc-heading"> |
| <code>BindVisitor</code> |
| |
| |
| <a href="#pyiceberg.expressions.visitors.BindVisitor" class="headerlink" title="Permanent link">¶</a></h2> |
| |
| |
| <div class="doc doc-contents "> |
| <p class="doc doc-class-bases"> |
| Bases: <code><a class="autorefs autorefs-internal" title="BooleanExpressionVisitor (pyiceberg.expressions.visitors.BooleanExpressionVisitor)" href="#pyiceberg.expressions.visitors.BooleanExpressionVisitor">BooleanExpressionVisitor</a>[<a class="autorefs autorefs-internal" title="BooleanExpression (pyiceberg.expressions.BooleanExpression)" href="../#pyiceberg.expressions.BooleanExpression">BooleanExpression</a>]</code></p> |
| |
| |
| <p>Rewrites a boolean expression by replacing unbound references with references to fields in a struct schema.</p> |
| |
| |
| <p><span class="doc-section-title">Parameters:</span></p> |
| <table> |
| <thead> |
| <tr> |
| <th>Name</th> |
| <th>Type</th> |
| <th>Description</th> |
| <th>Default</th> |
| </tr> |
| </thead> |
| <tbody> |
| <tr class="doc-section-item"> |
| <td> |
| <code>schema</code> |
| </td> |
| <td> |
| <code><a class="autorefs autorefs-internal" title="Schema (pyiceberg.schema.Schema)" href="../../schema/#pyiceberg.schema.Schema">Schema</a></code> |
| </td> |
| <td> |
| <div class="doc-md-description"> |
| <p>A schema to use when binding the expression.</p> |
| </div> |
| </td> |
| <td> |
| <em>required</em> |
| </td> |
| </tr> |
| <tr class="doc-section-item"> |
| <td> |
| <code>case_sensitive</code> |
| </td> |
| <td> |
| <code><span title="bool">bool</span></code> |
| </td> |
| <td> |
| <div class="doc-md-description"> |
| <p>Whether to consider case when binding a reference to a field in a schema, defaults to True.</p> |
| </div> |
| </td> |
| <td> |
| <em>required</em> |
| </td> |
| </tr> |
| </tbody> |
| </table> |
| |
| |
| <p><span class="doc-section-title">Raises:</span></p> |
| <table> |
| <thead> |
| <tr> |
| <th>Type</th> |
| <th>Description</th> |
| </tr> |
| </thead> |
| <tbody> |
| <tr class="doc-section-item"> |
| <td> |
| <code><span title="TypeError">TypeError</span></code> |
| </td> |
| <td> |
| <div class="doc-md-description"> |
| <p>In the case a predicate is already bound.</p> |
| </div> |
| </td> |
| </tr> |
| </tbody> |
| </table> |
| |
| |
| |
| |
| |
| |
| |
| |
| <details class="quote"> |
| <summary>Source code in <code>pyiceberg/expressions/visitors.py</code></summary> |
| <div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-0-217">217</a></span> |
| <span class="normal"><a href="#__codelineno-0-218">218</a></span> |
| <span class="normal"><a href="#__codelineno-0-219">219</a></span> |
| <span class="normal"><a href="#__codelineno-0-220">220</a></span> |
| <span class="normal"><a href="#__codelineno-0-221">221</a></span> |
| <span class="normal"><a href="#__codelineno-0-222">222</a></span> |
| <span class="normal"><a href="#__codelineno-0-223">223</a></span> |
| <span class="normal"><a href="#__codelineno-0-224">224</a></span> |
| <span class="normal"><a href="#__codelineno-0-225">225</a></span> |
| <span class="normal"><a href="#__codelineno-0-226">226</a></span> |
| <span class="normal"><a href="#__codelineno-0-227">227</a></span> |
| <span class="normal"><a href="#__codelineno-0-228">228</a></span> |
| <span class="normal"><a href="#__codelineno-0-229">229</a></span> |
| <span class="normal"><a href="#__codelineno-0-230">230</a></span> |
| <span class="normal"><a href="#__codelineno-0-231">231</a></span> |
| <span class="normal"><a href="#__codelineno-0-232">232</a></span> |
| <span class="normal"><a href="#__codelineno-0-233">233</a></span> |
| <span class="normal"><a href="#__codelineno-0-234">234</a></span> |
| <span class="normal"><a href="#__codelineno-0-235">235</a></span> |
| <span class="normal"><a href="#__codelineno-0-236">236</a></span> |
| <span class="normal"><a href="#__codelineno-0-237">237</a></span> |
| <span class="normal"><a href="#__codelineno-0-238">238</a></span> |
| <span class="normal"><a href="#__codelineno-0-239">239</a></span> |
| <span class="normal"><a href="#__codelineno-0-240">240</a></span> |
| <span class="normal"><a href="#__codelineno-0-241">241</a></span> |
| <span class="normal"><a href="#__codelineno-0-242">242</a></span> |
| <span class="normal"><a href="#__codelineno-0-243">243</a></span> |
| <span class="normal"><a href="#__codelineno-0-244">244</a></span> |
| <span class="normal"><a href="#__codelineno-0-245">245</a></span> |
| <span class="normal"><a href="#__codelineno-0-246">246</a></span> |
| <span class="normal"><a href="#__codelineno-0-247">247</a></span> |
| <span class="normal"><a href="#__codelineno-0-248">248</a></span> |
| <span class="normal"><a href="#__codelineno-0-249">249</a></span> |
| <span class="normal"><a href="#__codelineno-0-250">250</a></span> |
| <span class="normal"><a href="#__codelineno-0-251">251</a></span> |
| <span class="normal"><a href="#__codelineno-0-252">252</a></span> |
| <span class="normal"><a href="#__codelineno-0-253">253</a></span> |
| <span class="normal"><a href="#__codelineno-0-254">254</a></span></pre></div></td><td class="code"><div><pre><span></span><code><a id="__codelineno-0-217" name="__codelineno-0-217"></a><span class="k">class</span><span class="w"> </span><span class="nc">BindVisitor</span><span class="p">(</span><span class="n">BooleanExpressionVisitor</span><span class="p">[</span><span class="n">BooleanExpression</span><span class="p">]):</span> |
| <a id="__codelineno-0-218" name="__codelineno-0-218"></a><span class="w"> </span><span class="sd">"""Rewrites a boolean expression by replacing unbound references with references to fields in a struct schema.</span> |
| <a id="__codelineno-0-219" name="__codelineno-0-219"></a> |
| <a id="__codelineno-0-220" name="__codelineno-0-220"></a><span class="sd"> Args:</span> |
| <a id="__codelineno-0-221" name="__codelineno-0-221"></a><span class="sd"> schema (Schema): A schema to use when binding the expression.</span> |
| <a id="__codelineno-0-222" name="__codelineno-0-222"></a><span class="sd"> case_sensitive (bool): Whether to consider case when binding a reference to a field in a schema, defaults to True.</span> |
| <a id="__codelineno-0-223" name="__codelineno-0-223"></a> |
| <a id="__codelineno-0-224" name="__codelineno-0-224"></a><span class="sd"> Raises:</span> |
| <a id="__codelineno-0-225" name="__codelineno-0-225"></a><span class="sd"> TypeError: In the case a predicate is already bound.</span> |
| <a id="__codelineno-0-226" name="__codelineno-0-226"></a><span class="sd"> """</span> |
| <a id="__codelineno-0-227" name="__codelineno-0-227"></a> |
| <a id="__codelineno-0-228" name="__codelineno-0-228"></a> <span class="n">schema</span><span class="p">:</span> <span class="n">Schema</span> |
| <a id="__codelineno-0-229" name="__codelineno-0-229"></a> <span class="n">case_sensitive</span><span class="p">:</span> <span class="nb">bool</span> |
| <a id="__codelineno-0-230" name="__codelineno-0-230"></a> |
| <a id="__codelineno-0-231" name="__codelineno-0-231"></a> <span class="k">def</span><span class="w"> </span><span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">schema</span><span class="p">:</span> <span class="n">Schema</span><span class="p">,</span> <span class="n">case_sensitive</span><span class="p">:</span> <span class="nb">bool</span><span class="p">)</span> <span class="o">-></span> <span class="kc">None</span><span class="p">:</span> |
| <a id="__codelineno-0-232" name="__codelineno-0-232"></a> <span class="bp">self</span><span class="o">.</span><span class="n">schema</span> <span class="o">=</span> <span class="n">schema</span> |
| <a id="__codelineno-0-233" name="__codelineno-0-233"></a> <span class="bp">self</span><span class="o">.</span><span class="n">case_sensitive</span> <span class="o">=</span> <span class="n">case_sensitive</span> |
| <a id="__codelineno-0-234" name="__codelineno-0-234"></a> |
| <a id="__codelineno-0-235" name="__codelineno-0-235"></a> <span class="k">def</span><span class="w"> </span><span class="nf">visit_true</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="n">BooleanExpression</span><span class="p">:</span> |
| <a id="__codelineno-0-236" name="__codelineno-0-236"></a> <span class="k">return</span> <span class="n">AlwaysTrue</span><span class="p">()</span> |
| <a id="__codelineno-0-237" name="__codelineno-0-237"></a> |
| <a id="__codelineno-0-238" name="__codelineno-0-238"></a> <span class="k">def</span><span class="w"> </span><span class="nf">visit_false</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="n">BooleanExpression</span><span class="p">:</span> |
| <a id="__codelineno-0-239" name="__codelineno-0-239"></a> <span class="k">return</span> <span class="n">AlwaysFalse</span><span class="p">()</span> |
| <a id="__codelineno-0-240" name="__codelineno-0-240"></a> |
| <a id="__codelineno-0-241" name="__codelineno-0-241"></a> <span class="k">def</span><span class="w"> </span><span class="nf">visit_not</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">child_result</span><span class="p">:</span> <span class="n">BooleanExpression</span><span class="p">)</span> <span class="o">-></span> <span class="n">BooleanExpression</span><span class="p">:</span> |
| <a id="__codelineno-0-242" name="__codelineno-0-242"></a> <span class="k">return</span> <span class="n">Not</span><span class="p">(</span><span class="n">child</span><span class="o">=</span><span class="n">child_result</span><span class="p">)</span> |
| <a id="__codelineno-0-243" name="__codelineno-0-243"></a> |
| <a id="__codelineno-0-244" name="__codelineno-0-244"></a> <span class="k">def</span><span class="w"> </span><span class="nf">visit_and</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">left_result</span><span class="p">:</span> <span class="n">BooleanExpression</span><span class="p">,</span> <span class="n">right_result</span><span class="p">:</span> <span class="n">BooleanExpression</span><span class="p">)</span> <span class="o">-></span> <span class="n">BooleanExpression</span><span class="p">:</span> |
| <a id="__codelineno-0-245" name="__codelineno-0-245"></a> <span class="k">return</span> <span class="n">And</span><span class="p">(</span><span class="n">left</span><span class="o">=</span><span class="n">left_result</span><span class="p">,</span> <span class="n">right</span><span class="o">=</span><span class="n">right_result</span><span class="p">)</span> |
| <a id="__codelineno-0-246" name="__codelineno-0-246"></a> |
| <a id="__codelineno-0-247" name="__codelineno-0-247"></a> <span class="k">def</span><span class="w"> </span><span class="nf">visit_or</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">left_result</span><span class="p">:</span> <span class="n">BooleanExpression</span><span class="p">,</span> <span class="n">right_result</span><span class="p">:</span> <span class="n">BooleanExpression</span><span class="p">)</span> <span class="o">-></span> <span class="n">BooleanExpression</span><span class="p">:</span> |
| <a id="__codelineno-0-248" name="__codelineno-0-248"></a> <span class="k">return</span> <span class="n">Or</span><span class="p">(</span><span class="n">left</span><span class="o">=</span><span class="n">left_result</span><span class="p">,</span> <span class="n">right</span><span class="o">=</span><span class="n">right_result</span><span class="p">)</span> |
| <a id="__codelineno-0-249" name="__codelineno-0-249"></a> |
| <a id="__codelineno-0-250" name="__codelineno-0-250"></a> <span class="k">def</span><span class="w"> </span><span class="nf">visit_unbound_predicate</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">predicate</span><span class="p">:</span> <span class="n">UnboundPredicate</span><span class="p">[</span><span class="n">L</span><span class="p">])</span> <span class="o">-></span> <span class="n">BooleanExpression</span><span class="p">:</span> |
| <a id="__codelineno-0-251" name="__codelineno-0-251"></a> <span class="k">return</span> <span class="n">predicate</span><span class="o">.</span><span class="n">bind</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">schema</span><span class="p">,</span> <span class="n">case_sensitive</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">case_sensitive</span><span class="p">)</span> |
| <a id="__codelineno-0-252" name="__codelineno-0-252"></a> |
| <a id="__codelineno-0-253" name="__codelineno-0-253"></a> <span class="k">def</span><span class="w"> </span><span class="nf">visit_bound_predicate</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">predicate</span><span class="p">:</span> <span class="n">BoundPredicate</span><span class="p">[</span><span class="n">L</span><span class="p">])</span> <span class="o">-></span> <span class="n">BooleanExpression</span><span class="p">:</span> |
| <a id="__codelineno-0-254" name="__codelineno-0-254"></a> <span class="k">raise</span> <span class="ne">TypeError</span><span class="p">(</span><span class="sa">f</span><span class="s2">"Found already bound predicate: </span><span class="si">{</span><span class="n">predicate</span><span class="si">}</span><span class="s2">"</span><span class="p">)</span> |
| </code></pre></div></td></tr></table></div> |
| </details> |
| |
| |
| |
| <div class="doc doc-children"> |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| </div> |
| |
| </div> |
| |
| </div> |
| |
| <div class="doc doc-object doc-class"> |
| |
| |
| |
| <h2 id="pyiceberg.expressions.visitors.BooleanExpressionVisitor" class="doc doc-heading"> |
| <code>BooleanExpressionVisitor</code> |
| |
| |
| <a href="#pyiceberg.expressions.visitors.BooleanExpressionVisitor" class="headerlink" title="Permanent link">¶</a></h2> |
| |
| |
| <div class="doc doc-contents "> |
| <p class="doc doc-class-bases"> |
| Bases: <code><span title="typing.Generic">Generic</span>[<span title="pyiceberg.expressions.visitors.T">T</span>]</code>, <code><span title="abc.ABC">ABC</span></code></p> |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| <details class="quote"> |
| <summary>Source code in <code>pyiceberg/expressions/visitors.py</code></summary> |
| <div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-0-82"> 82</a></span> |
| <span class="normal"><a href="#__codelineno-0-83"> 83</a></span> |
| <span class="normal"><a href="#__codelineno-0-84"> 84</a></span> |
| <span class="normal"><a href="#__codelineno-0-85"> 85</a></span> |
| <span class="normal"><a href="#__codelineno-0-86"> 86</a></span> |
| <span class="normal"><a href="#__codelineno-0-87"> 87</a></span> |
| <span class="normal"><a href="#__codelineno-0-88"> 88</a></span> |
| <span class="normal"><a href="#__codelineno-0-89"> 89</a></span> |
| <span class="normal"><a href="#__codelineno-0-90"> 90</a></span> |
| <span class="normal"><a href="#__codelineno-0-91"> 91</a></span> |
| <span class="normal"><a href="#__codelineno-0-92"> 92</a></span> |
| <span class="normal"><a href="#__codelineno-0-93"> 93</a></span> |
| <span class="normal"><a href="#__codelineno-0-94"> 94</a></span> |
| <span class="normal"><a href="#__codelineno-0-95"> 95</a></span> |
| <span class="normal"><a href="#__codelineno-0-96"> 96</a></span> |
| <span class="normal"><a href="#__codelineno-0-97"> 97</a></span> |
| <span class="normal"><a href="#__codelineno-0-98"> 98</a></span> |
| <span class="normal"><a href="#__codelineno-0-99"> 99</a></span> |
| <span class="normal"><a href="#__codelineno-0-100">100</a></span> |
| <span class="normal"><a href="#__codelineno-0-101">101</a></span> |
| <span class="normal"><a href="#__codelineno-0-102">102</a></span> |
| <span class="normal"><a href="#__codelineno-0-103">103</a></span> |
| <span class="normal"><a href="#__codelineno-0-104">104</a></span> |
| <span class="normal"><a href="#__codelineno-0-105">105</a></span> |
| <span class="normal"><a href="#__codelineno-0-106">106</a></span> |
| <span class="normal"><a href="#__codelineno-0-107">107</a></span> |
| <span class="normal"><a href="#__codelineno-0-108">108</a></span> |
| <span class="normal"><a href="#__codelineno-0-109">109</a></span> |
| <span class="normal"><a href="#__codelineno-0-110">110</a></span> |
| <span class="normal"><a href="#__codelineno-0-111">111</a></span> |
| <span class="normal"><a href="#__codelineno-0-112">112</a></span> |
| <span class="normal"><a href="#__codelineno-0-113">113</a></span> |
| <span class="normal"><a href="#__codelineno-0-114">114</a></span> |
| <span class="normal"><a href="#__codelineno-0-115">115</a></span> |
| <span class="normal"><a href="#__codelineno-0-116">116</a></span> |
| <span class="normal"><a href="#__codelineno-0-117">117</a></span> |
| <span class="normal"><a href="#__codelineno-0-118">118</a></span> |
| <span class="normal"><a href="#__codelineno-0-119">119</a></span> |
| <span class="normal"><a href="#__codelineno-0-120">120</a></span> |
| <span class="normal"><a href="#__codelineno-0-121">121</a></span> |
| <span class="normal"><a href="#__codelineno-0-122">122</a></span> |
| <span class="normal"><a href="#__codelineno-0-123">123</a></span> |
| <span class="normal"><a href="#__codelineno-0-124">124</a></span> |
| <span class="normal"><a href="#__codelineno-0-125">125</a></span> |
| <span class="normal"><a href="#__codelineno-0-126">126</a></span> |
| <span class="normal"><a href="#__codelineno-0-127">127</a></span> |
| <span class="normal"><a href="#__codelineno-0-128">128</a></span> |
| <span class="normal"><a href="#__codelineno-0-129">129</a></span> |
| <span class="normal"><a href="#__codelineno-0-130">130</a></span> |
| <span class="normal"><a href="#__codelineno-0-131">131</a></span> |
| <span class="normal"><a href="#__codelineno-0-132">132</a></span> |
| <span class="normal"><a href="#__codelineno-0-133">133</a></span> |
| <span class="normal"><a href="#__codelineno-0-134">134</a></span> |
| <span class="normal"><a href="#__codelineno-0-135">135</a></span> |
| <span class="normal"><a href="#__codelineno-0-136">136</a></span> |
| <span class="normal"><a href="#__codelineno-0-137">137</a></span></pre></div></td><td class="code"><div><pre><span></span><code><a id="__codelineno-0-82" name="__codelineno-0-82"></a><span class="k">class</span><span class="w"> </span><span class="nc">BooleanExpressionVisitor</span><span class="p">(</span><span class="n">Generic</span><span class="p">[</span><span class="n">T</span><span class="p">],</span> <span class="n">ABC</span><span class="p">):</span> |
| <a id="__codelineno-0-83" name="__codelineno-0-83"></a> <span class="nd">@abstractmethod</span> |
| <a id="__codelineno-0-84" name="__codelineno-0-84"></a> <span class="k">def</span><span class="w"> </span><span class="nf">visit_true</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="n">T</span><span class="p">:</span> |
| <a id="__codelineno-0-85" name="__codelineno-0-85"></a><span class="w"> </span><span class="sd">"""Visit method for an AlwaysTrue boolean expression.</span> |
| <a id="__codelineno-0-86" name="__codelineno-0-86"></a> |
| <a id="__codelineno-0-87" name="__codelineno-0-87"></a><span class="sd"> Note: This visit method has no arguments since AlwaysTrue instances have no context.</span> |
| <a id="__codelineno-0-88" name="__codelineno-0-88"></a><span class="sd"> """</span> |
| <a id="__codelineno-0-89" name="__codelineno-0-89"></a> |
| <a id="__codelineno-0-90" name="__codelineno-0-90"></a> <span class="nd">@abstractmethod</span> |
| <a id="__codelineno-0-91" name="__codelineno-0-91"></a> <span class="k">def</span><span class="w"> </span><span class="nf">visit_false</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="n">T</span><span class="p">:</span> |
| <a id="__codelineno-0-92" name="__codelineno-0-92"></a><span class="w"> </span><span class="sd">"""Visit method for an AlwaysFalse boolean expression.</span> |
| <a id="__codelineno-0-93" name="__codelineno-0-93"></a> |
| <a id="__codelineno-0-94" name="__codelineno-0-94"></a><span class="sd"> Note: This visit method has no arguments since AlwaysFalse instances have no context.</span> |
| <a id="__codelineno-0-95" name="__codelineno-0-95"></a><span class="sd"> """</span> |
| <a id="__codelineno-0-96" name="__codelineno-0-96"></a> |
| <a id="__codelineno-0-97" name="__codelineno-0-97"></a> <span class="nd">@abstractmethod</span> |
| <a id="__codelineno-0-98" name="__codelineno-0-98"></a> <span class="k">def</span><span class="w"> </span><span class="nf">visit_not</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">child_result</span><span class="p">:</span> <span class="n">T</span><span class="p">)</span> <span class="o">-></span> <span class="n">T</span><span class="p">:</span> |
| <a id="__codelineno-0-99" name="__codelineno-0-99"></a><span class="w"> </span><span class="sd">"""Visit method for a Not boolean expression.</span> |
| <a id="__codelineno-0-100" name="__codelineno-0-100"></a> |
| <a id="__codelineno-0-101" name="__codelineno-0-101"></a><span class="sd"> Args:</span> |
| <a id="__codelineno-0-102" name="__codelineno-0-102"></a><span class="sd"> child_result (T): The result of visiting the child of the Not boolean expression.</span> |
| <a id="__codelineno-0-103" name="__codelineno-0-103"></a><span class="sd"> """</span> |
| <a id="__codelineno-0-104" name="__codelineno-0-104"></a> |
| <a id="__codelineno-0-105" name="__codelineno-0-105"></a> <span class="nd">@abstractmethod</span> |
| <a id="__codelineno-0-106" name="__codelineno-0-106"></a> <span class="k">def</span><span class="w"> </span><span class="nf">visit_and</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">left_result</span><span class="p">:</span> <span class="n">T</span><span class="p">,</span> <span class="n">right_result</span><span class="p">:</span> <span class="n">T</span><span class="p">)</span> <span class="o">-></span> <span class="n">T</span><span class="p">:</span> |
| <a id="__codelineno-0-107" name="__codelineno-0-107"></a><span class="w"> </span><span class="sd">"""Visit method for an And boolean expression.</span> |
| <a id="__codelineno-0-108" name="__codelineno-0-108"></a> |
| <a id="__codelineno-0-109" name="__codelineno-0-109"></a><span class="sd"> Args:</span> |
| <a id="__codelineno-0-110" name="__codelineno-0-110"></a><span class="sd"> left_result (T): The result of visiting the left side of the expression.</span> |
| <a id="__codelineno-0-111" name="__codelineno-0-111"></a><span class="sd"> right_result (T): The result of visiting the right side of the expression.</span> |
| <a id="__codelineno-0-112" name="__codelineno-0-112"></a><span class="sd"> """</span> |
| <a id="__codelineno-0-113" name="__codelineno-0-113"></a> |
| <a id="__codelineno-0-114" name="__codelineno-0-114"></a> <span class="nd">@abstractmethod</span> |
| <a id="__codelineno-0-115" name="__codelineno-0-115"></a> <span class="k">def</span><span class="w"> </span><span class="nf">visit_or</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">left_result</span><span class="p">:</span> <span class="n">T</span><span class="p">,</span> <span class="n">right_result</span><span class="p">:</span> <span class="n">T</span><span class="p">)</span> <span class="o">-></span> <span class="n">T</span><span class="p">:</span> |
| <a id="__codelineno-0-116" name="__codelineno-0-116"></a><span class="w"> </span><span class="sd">"""Visit method for an Or boolean expression.</span> |
| <a id="__codelineno-0-117" name="__codelineno-0-117"></a> |
| <a id="__codelineno-0-118" name="__codelineno-0-118"></a><span class="sd"> Args:</span> |
| <a id="__codelineno-0-119" name="__codelineno-0-119"></a><span class="sd"> left_result (T): The result of visiting the left side of the expression.</span> |
| <a id="__codelineno-0-120" name="__codelineno-0-120"></a><span class="sd"> right_result (T): The result of visiting the right side of the expression.</span> |
| <a id="__codelineno-0-121" name="__codelineno-0-121"></a><span class="sd"> """</span> |
| <a id="__codelineno-0-122" name="__codelineno-0-122"></a> |
| <a id="__codelineno-0-123" name="__codelineno-0-123"></a> <span class="nd">@abstractmethod</span> |
| <a id="__codelineno-0-124" name="__codelineno-0-124"></a> <span class="k">def</span><span class="w"> </span><span class="nf">visit_unbound_predicate</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">predicate</span><span class="p">:</span> <span class="n">UnboundPredicate</span><span class="p">[</span><span class="n">L</span><span class="p">])</span> <span class="o">-></span> <span class="n">T</span><span class="p">:</span> |
| <a id="__codelineno-0-125" name="__codelineno-0-125"></a><span class="w"> </span><span class="sd">"""Visit method for an unbound predicate in an expression tree.</span> |
| <a id="__codelineno-0-126" name="__codelineno-0-126"></a> |
| <a id="__codelineno-0-127" name="__codelineno-0-127"></a><span class="sd"> Args:</span> |
| <a id="__codelineno-0-128" name="__codelineno-0-128"></a><span class="sd"> predicate (UnboundPredicate[L): An instance of an UnboundPredicate.</span> |
| <a id="__codelineno-0-129" name="__codelineno-0-129"></a><span class="sd"> """</span> |
| <a id="__codelineno-0-130" name="__codelineno-0-130"></a> |
| <a id="__codelineno-0-131" name="__codelineno-0-131"></a> <span class="nd">@abstractmethod</span> |
| <a id="__codelineno-0-132" name="__codelineno-0-132"></a> <span class="k">def</span><span class="w"> </span><span class="nf">visit_bound_predicate</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">predicate</span><span class="p">:</span> <span class="n">BoundPredicate</span><span class="p">[</span><span class="n">L</span><span class="p">])</span> <span class="o">-></span> <span class="n">T</span><span class="p">:</span> |
| <a id="__codelineno-0-133" name="__codelineno-0-133"></a><span class="w"> </span><span class="sd">"""Visit method for a bound predicate in an expression tree.</span> |
| <a id="__codelineno-0-134" name="__codelineno-0-134"></a> |
| <a id="__codelineno-0-135" name="__codelineno-0-135"></a><span class="sd"> Args:</span> |
| <a id="__codelineno-0-136" name="__codelineno-0-136"></a><span class="sd"> predicate (BoundPredicate[L]): An instance of a BoundPredicate.</span> |
| <a id="__codelineno-0-137" name="__codelineno-0-137"></a><span class="sd"> """</span> |
| </code></pre></div></td></tr></table></div> |
| </details> |
| |
| |
| |
| <div class="doc doc-children"> |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| <div class="doc doc-object doc-function"> |
| |
| |
| <h3 id="pyiceberg.expressions.visitors.BooleanExpressionVisitor.visit_and" class="doc doc-heading"> |
| <code class="highlight language-python"><span class="n">visit_and</span><span class="p">(</span><span class="n">left_result</span><span class="p">,</span> <span class="n">right_result</span><span class="p">)</span></code> |
| |
| <span class="doc doc-labels"> |
| <small class="doc doc-label doc-label-abstractmethod"><code>abstractmethod</code></small> |
| </span> |
| |
| <a href="#pyiceberg.expressions.visitors.BooleanExpressionVisitor.visit_and" class="headerlink" title="Permanent link">¶</a></h3> |
| |
| |
| <div class="doc doc-contents "> |
| |
| <p>Visit method for an And boolean expression.</p> |
| |
| |
| <p><span class="doc-section-title">Parameters:</span></p> |
| <table> |
| <thead> |
| <tr> |
| <th>Name</th> |
| <th>Type</th> |
| <th>Description</th> |
| <th>Default</th> |
| </tr> |
| </thead> |
| <tbody> |
| <tr class="doc-section-item"> |
| <td> |
| <code>left_result</code> |
| </td> |
| <td> |
| <code><span title="pyiceberg.expressions.visitors.T">T</span></code> |
| </td> |
| <td> |
| <div class="doc-md-description"> |
| <p>The result of visiting the left side of the expression.</p> |
| </div> |
| </td> |
| <td> |
| <em>required</em> |
| </td> |
| </tr> |
| <tr class="doc-section-item"> |
| <td> |
| <code>right_result</code> |
| </td> |
| <td> |
| <code><span title="pyiceberg.expressions.visitors.T">T</span></code> |
| </td> |
| <td> |
| <div class="doc-md-description"> |
| <p>The result of visiting the right side of the expression.</p> |
| </div> |
| </td> |
| <td> |
| <em>required</em> |
| </td> |
| </tr> |
| </tbody> |
| </table> |
| |
| |
| <details class="quote"> |
| <summary>Source code in <code>pyiceberg/expressions/visitors.py</code></summary> |
| <div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-0-105">105</a></span> |
| <span class="normal"><a href="#__codelineno-0-106">106</a></span> |
| <span class="normal"><a href="#__codelineno-0-107">107</a></span> |
| <span class="normal"><a href="#__codelineno-0-108">108</a></span> |
| <span class="normal"><a href="#__codelineno-0-109">109</a></span> |
| <span class="normal"><a href="#__codelineno-0-110">110</a></span> |
| <span class="normal"><a href="#__codelineno-0-111">111</a></span> |
| <span class="normal"><a href="#__codelineno-0-112">112</a></span></pre></div></td><td class="code"><div><pre><span></span><code><a id="__codelineno-0-105" name="__codelineno-0-105"></a><span class="nd">@abstractmethod</span> |
| <a id="__codelineno-0-106" name="__codelineno-0-106"></a><span class="k">def</span><span class="w"> </span><span class="nf">visit_and</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">left_result</span><span class="p">:</span> <span class="n">T</span><span class="p">,</span> <span class="n">right_result</span><span class="p">:</span> <span class="n">T</span><span class="p">)</span> <span class="o">-></span> <span class="n">T</span><span class="p">:</span> |
| <a id="__codelineno-0-107" name="__codelineno-0-107"></a><span class="w"> </span><span class="sd">"""Visit method for an And boolean expression.</span> |
| <a id="__codelineno-0-108" name="__codelineno-0-108"></a> |
| <a id="__codelineno-0-109" name="__codelineno-0-109"></a><span class="sd"> Args:</span> |
| <a id="__codelineno-0-110" name="__codelineno-0-110"></a><span class="sd"> left_result (T): The result of visiting the left side of the expression.</span> |
| <a id="__codelineno-0-111" name="__codelineno-0-111"></a><span class="sd"> right_result (T): The result of visiting the right side of the expression.</span> |
| <a id="__codelineno-0-112" name="__codelineno-0-112"></a><span class="sd"> """</span> |
| </code></pre></div></td></tr></table></div> |
| </details> |
| </div> |
| |
| </div> |
| |
| <div class="doc doc-object doc-function"> |
| |
| |
| <h3 id="pyiceberg.expressions.visitors.BooleanExpressionVisitor.visit_bound_predicate" class="doc doc-heading"> |
| <code class="highlight language-python"><span class="n">visit_bound_predicate</span><span class="p">(</span><span class="n">predicate</span><span class="p">)</span></code> |
| |
| <span class="doc doc-labels"> |
| <small class="doc doc-label doc-label-abstractmethod"><code>abstractmethod</code></small> |
| </span> |
| |
| <a href="#pyiceberg.expressions.visitors.BooleanExpressionVisitor.visit_bound_predicate" class="headerlink" title="Permanent link">¶</a></h3> |
| |
| |
| <div class="doc doc-contents "> |
| |
| <p>Visit method for a bound predicate in an expression tree.</p> |
| |
| |
| <p><span class="doc-section-title">Parameters:</span></p> |
| <table> |
| <thead> |
| <tr> |
| <th>Name</th> |
| <th>Type</th> |
| <th>Description</th> |
| <th>Default</th> |
| </tr> |
| </thead> |
| <tbody> |
| <tr class="doc-section-item"> |
| <td> |
| <code>predicate</code> |
| </td> |
| <td> |
| <code><a class="autorefs autorefs-internal" title="BoundPredicate (pyiceberg.expressions.BoundPredicate)" href="../#pyiceberg.expressions.BoundPredicate">BoundPredicate</a>[<span title="pyiceberg.typedef.L">L</span>]</code> |
| </td> |
| <td> |
| <div class="doc-md-description"> |
| <p>An instance of a BoundPredicate.</p> |
| </div> |
| </td> |
| <td> |
| <em>required</em> |
| </td> |
| </tr> |
| </tbody> |
| </table> |
| |
| |
| <details class="quote"> |
| <summary>Source code in <code>pyiceberg/expressions/visitors.py</code></summary> |
| <div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-0-131">131</a></span> |
| <span class="normal"><a href="#__codelineno-0-132">132</a></span> |
| <span class="normal"><a href="#__codelineno-0-133">133</a></span> |
| <span class="normal"><a href="#__codelineno-0-134">134</a></span> |
| <span class="normal"><a href="#__codelineno-0-135">135</a></span> |
| <span class="normal"><a href="#__codelineno-0-136">136</a></span> |
| <span class="normal"><a href="#__codelineno-0-137">137</a></span></pre></div></td><td class="code"><div><pre><span></span><code><a id="__codelineno-0-131" name="__codelineno-0-131"></a><span class="nd">@abstractmethod</span> |
| <a id="__codelineno-0-132" name="__codelineno-0-132"></a><span class="k">def</span><span class="w"> </span><span class="nf">visit_bound_predicate</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">predicate</span><span class="p">:</span> <span class="n">BoundPredicate</span><span class="p">[</span><span class="n">L</span><span class="p">])</span> <span class="o">-></span> <span class="n">T</span><span class="p">:</span> |
| <a id="__codelineno-0-133" name="__codelineno-0-133"></a><span class="w"> </span><span class="sd">"""Visit method for a bound predicate in an expression tree.</span> |
| <a id="__codelineno-0-134" name="__codelineno-0-134"></a> |
| <a id="__codelineno-0-135" name="__codelineno-0-135"></a><span class="sd"> Args:</span> |
| <a id="__codelineno-0-136" name="__codelineno-0-136"></a><span class="sd"> predicate (BoundPredicate[L]): An instance of a BoundPredicate.</span> |
| <a id="__codelineno-0-137" name="__codelineno-0-137"></a><span class="sd"> """</span> |
| </code></pre></div></td></tr></table></div> |
| </details> |
| </div> |
| |
| </div> |
| |
| <div class="doc doc-object doc-function"> |
| |
| |
| <h3 id="pyiceberg.expressions.visitors.BooleanExpressionVisitor.visit_false" class="doc doc-heading"> |
| <code class="highlight language-python"><span class="n">visit_false</span><span class="p">()</span></code> |
| |
| <span class="doc doc-labels"> |
| <small class="doc doc-label doc-label-abstractmethod"><code>abstractmethod</code></small> |
| </span> |
| |
| <a href="#pyiceberg.expressions.visitors.BooleanExpressionVisitor.visit_false" class="headerlink" title="Permanent link">¶</a></h3> |
| |
| |
| <div class="doc doc-contents "> |
| |
| <p>Visit method for an AlwaysFalse boolean expression.</p> |
| <p>Note: This visit method has no arguments since AlwaysFalse instances have no context.</p> |
| |
| |
| <details class="quote"> |
| <summary>Source code in <code>pyiceberg/expressions/visitors.py</code></summary> |
| <div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-0-90">90</a></span> |
| <span class="normal"><a href="#__codelineno-0-91">91</a></span> |
| <span class="normal"><a href="#__codelineno-0-92">92</a></span> |
| <span class="normal"><a href="#__codelineno-0-93">93</a></span> |
| <span class="normal"><a href="#__codelineno-0-94">94</a></span> |
| <span class="normal"><a href="#__codelineno-0-95">95</a></span></pre></div></td><td class="code"><div><pre><span></span><code><a id="__codelineno-0-90" name="__codelineno-0-90"></a><span class="nd">@abstractmethod</span> |
| <a id="__codelineno-0-91" name="__codelineno-0-91"></a><span class="k">def</span><span class="w"> </span><span class="nf">visit_false</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="n">T</span><span class="p">:</span> |
| <a id="__codelineno-0-92" name="__codelineno-0-92"></a><span class="w"> </span><span class="sd">"""Visit method for an AlwaysFalse boolean expression.</span> |
| <a id="__codelineno-0-93" name="__codelineno-0-93"></a> |
| <a id="__codelineno-0-94" name="__codelineno-0-94"></a><span class="sd"> Note: This visit method has no arguments since AlwaysFalse instances have no context.</span> |
| <a id="__codelineno-0-95" name="__codelineno-0-95"></a><span class="sd"> """</span> |
| </code></pre></div></td></tr></table></div> |
| </details> |
| </div> |
| |
| </div> |
| |
| <div class="doc doc-object doc-function"> |
| |
| |
| <h3 id="pyiceberg.expressions.visitors.BooleanExpressionVisitor.visit_not" class="doc doc-heading"> |
| <code class="highlight language-python"><span class="n">visit_not</span><span class="p">(</span><span class="n">child_result</span><span class="p">)</span></code> |
| |
| <span class="doc doc-labels"> |
| <small class="doc doc-label doc-label-abstractmethod"><code>abstractmethod</code></small> |
| </span> |
| |
| <a href="#pyiceberg.expressions.visitors.BooleanExpressionVisitor.visit_not" class="headerlink" title="Permanent link">¶</a></h3> |
| |
| |
| <div class="doc doc-contents "> |
| |
| <p>Visit method for a Not boolean expression.</p> |
| |
| |
| <p><span class="doc-section-title">Parameters:</span></p> |
| <table> |
| <thead> |
| <tr> |
| <th>Name</th> |
| <th>Type</th> |
| <th>Description</th> |
| <th>Default</th> |
| </tr> |
| </thead> |
| <tbody> |
| <tr class="doc-section-item"> |
| <td> |
| <code>child_result</code> |
| </td> |
| <td> |
| <code><span title="pyiceberg.expressions.visitors.T">T</span></code> |
| </td> |
| <td> |
| <div class="doc-md-description"> |
| <p>The result of visiting the child of the Not boolean expression.</p> |
| </div> |
| </td> |
| <td> |
| <em>required</em> |
| </td> |
| </tr> |
| </tbody> |
| </table> |
| |
| |
| <details class="quote"> |
| <summary>Source code in <code>pyiceberg/expressions/visitors.py</code></summary> |
| <div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-0-97"> 97</a></span> |
| <span class="normal"><a href="#__codelineno-0-98"> 98</a></span> |
| <span class="normal"><a href="#__codelineno-0-99"> 99</a></span> |
| <span class="normal"><a href="#__codelineno-0-100">100</a></span> |
| <span class="normal"><a href="#__codelineno-0-101">101</a></span> |
| <span class="normal"><a href="#__codelineno-0-102">102</a></span> |
| <span class="normal"><a href="#__codelineno-0-103">103</a></span></pre></div></td><td class="code"><div><pre><span></span><code><a id="__codelineno-0-97" name="__codelineno-0-97"></a><span class="nd">@abstractmethod</span> |
| <a id="__codelineno-0-98" name="__codelineno-0-98"></a><span class="k">def</span><span class="w"> </span><span class="nf">visit_not</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">child_result</span><span class="p">:</span> <span class="n">T</span><span class="p">)</span> <span class="o">-></span> <span class="n">T</span><span class="p">:</span> |
| <a id="__codelineno-0-99" name="__codelineno-0-99"></a><span class="w"> </span><span class="sd">"""Visit method for a Not boolean expression.</span> |
| <a id="__codelineno-0-100" name="__codelineno-0-100"></a> |
| <a id="__codelineno-0-101" name="__codelineno-0-101"></a><span class="sd"> Args:</span> |
| <a id="__codelineno-0-102" name="__codelineno-0-102"></a><span class="sd"> child_result (T): The result of visiting the child of the Not boolean expression.</span> |
| <a id="__codelineno-0-103" name="__codelineno-0-103"></a><span class="sd"> """</span> |
| </code></pre></div></td></tr></table></div> |
| </details> |
| </div> |
| |
| </div> |
| |
| <div class="doc doc-object doc-function"> |
| |
| |
| <h3 id="pyiceberg.expressions.visitors.BooleanExpressionVisitor.visit_or" class="doc doc-heading"> |
| <code class="highlight language-python"><span class="n">visit_or</span><span class="p">(</span><span class="n">left_result</span><span class="p">,</span> <span class="n">right_result</span><span class="p">)</span></code> |
| |
| <span class="doc doc-labels"> |
| <small class="doc doc-label doc-label-abstractmethod"><code>abstractmethod</code></small> |
| </span> |
| |
| <a href="#pyiceberg.expressions.visitors.BooleanExpressionVisitor.visit_or" class="headerlink" title="Permanent link">¶</a></h3> |
| |
| |
| <div class="doc doc-contents "> |
| |
| <p>Visit method for an Or boolean expression.</p> |
| |
| |
| <p><span class="doc-section-title">Parameters:</span></p> |
| <table> |
| <thead> |
| <tr> |
| <th>Name</th> |
| <th>Type</th> |
| <th>Description</th> |
| <th>Default</th> |
| </tr> |
| </thead> |
| <tbody> |
| <tr class="doc-section-item"> |
| <td> |
| <code>left_result</code> |
| </td> |
| <td> |
| <code><span title="pyiceberg.expressions.visitors.T">T</span></code> |
| </td> |
| <td> |
| <div class="doc-md-description"> |
| <p>The result of visiting the left side of the expression.</p> |
| </div> |
| </td> |
| <td> |
| <em>required</em> |
| </td> |
| </tr> |
| <tr class="doc-section-item"> |
| <td> |
| <code>right_result</code> |
| </td> |
| <td> |
| <code><span title="pyiceberg.expressions.visitors.T">T</span></code> |
| </td> |
| <td> |
| <div class="doc-md-description"> |
| <p>The result of visiting the right side of the expression.</p> |
| </div> |
| </td> |
| <td> |
| <em>required</em> |
| </td> |
| </tr> |
| </tbody> |
| </table> |
| |
| |
| <details class="quote"> |
| <summary>Source code in <code>pyiceberg/expressions/visitors.py</code></summary> |
| <div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-0-114">114</a></span> |
| <span class="normal"><a href="#__codelineno-0-115">115</a></span> |
| <span class="normal"><a href="#__codelineno-0-116">116</a></span> |
| <span class="normal"><a href="#__codelineno-0-117">117</a></span> |
| <span class="normal"><a href="#__codelineno-0-118">118</a></span> |
| <span class="normal"><a href="#__codelineno-0-119">119</a></span> |
| <span class="normal"><a href="#__codelineno-0-120">120</a></span> |
| <span class="normal"><a href="#__codelineno-0-121">121</a></span></pre></div></td><td class="code"><div><pre><span></span><code><a id="__codelineno-0-114" name="__codelineno-0-114"></a><span class="nd">@abstractmethod</span> |
| <a id="__codelineno-0-115" name="__codelineno-0-115"></a><span class="k">def</span><span class="w"> </span><span class="nf">visit_or</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">left_result</span><span class="p">:</span> <span class="n">T</span><span class="p">,</span> <span class="n">right_result</span><span class="p">:</span> <span class="n">T</span><span class="p">)</span> <span class="o">-></span> <span class="n">T</span><span class="p">:</span> |
| <a id="__codelineno-0-116" name="__codelineno-0-116"></a><span class="w"> </span><span class="sd">"""Visit method for an Or boolean expression.</span> |
| <a id="__codelineno-0-117" name="__codelineno-0-117"></a> |
| <a id="__codelineno-0-118" name="__codelineno-0-118"></a><span class="sd"> Args:</span> |
| <a id="__codelineno-0-119" name="__codelineno-0-119"></a><span class="sd"> left_result (T): The result of visiting the left side of the expression.</span> |
| <a id="__codelineno-0-120" name="__codelineno-0-120"></a><span class="sd"> right_result (T): The result of visiting the right side of the expression.</span> |
| <a id="__codelineno-0-121" name="__codelineno-0-121"></a><span class="sd"> """</span> |
| </code></pre></div></td></tr></table></div> |
| </details> |
| </div> |
| |
| </div> |
| |
| <div class="doc doc-object doc-function"> |
| |
| |
| <h3 id="pyiceberg.expressions.visitors.BooleanExpressionVisitor.visit_true" class="doc doc-heading"> |
| <code class="highlight language-python"><span class="n">visit_true</span><span class="p">()</span></code> |
| |
| <span class="doc doc-labels"> |
| <small class="doc doc-label doc-label-abstractmethod"><code>abstractmethod</code></small> |
| </span> |
| |
| <a href="#pyiceberg.expressions.visitors.BooleanExpressionVisitor.visit_true" class="headerlink" title="Permanent link">¶</a></h3> |
| |
| |
| <div class="doc doc-contents "> |
| |
| <p>Visit method for an AlwaysTrue boolean expression.</p> |
| <p>Note: This visit method has no arguments since AlwaysTrue instances have no context.</p> |
| |
| |
| <details class="quote"> |
| <summary>Source code in <code>pyiceberg/expressions/visitors.py</code></summary> |
| <div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-0-83">83</a></span> |
| <span class="normal"><a href="#__codelineno-0-84">84</a></span> |
| <span class="normal"><a href="#__codelineno-0-85">85</a></span> |
| <span class="normal"><a href="#__codelineno-0-86">86</a></span> |
| <span class="normal"><a href="#__codelineno-0-87">87</a></span> |
| <span class="normal"><a href="#__codelineno-0-88">88</a></span></pre></div></td><td class="code"><div><pre><span></span><code><a id="__codelineno-0-83" name="__codelineno-0-83"></a><span class="nd">@abstractmethod</span> |
| <a id="__codelineno-0-84" name="__codelineno-0-84"></a><span class="k">def</span><span class="w"> </span><span class="nf">visit_true</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="n">T</span><span class="p">:</span> |
| <a id="__codelineno-0-85" name="__codelineno-0-85"></a><span class="w"> </span><span class="sd">"""Visit method for an AlwaysTrue boolean expression.</span> |
| <a id="__codelineno-0-86" name="__codelineno-0-86"></a> |
| <a id="__codelineno-0-87" name="__codelineno-0-87"></a><span class="sd"> Note: This visit method has no arguments since AlwaysTrue instances have no context.</span> |
| <a id="__codelineno-0-88" name="__codelineno-0-88"></a><span class="sd"> """</span> |
| </code></pre></div></td></tr></table></div> |
| </details> |
| </div> |
| |
| </div> |
| |
| <div class="doc doc-object doc-function"> |
| |
| |
| <h3 id="pyiceberg.expressions.visitors.BooleanExpressionVisitor.visit_unbound_predicate" class="doc doc-heading"> |
| <code class="highlight language-python"><span class="n">visit_unbound_predicate</span><span class="p">(</span><span class="n">predicate</span><span class="p">)</span></code> |
| |
| <span class="doc doc-labels"> |
| <small class="doc doc-label doc-label-abstractmethod"><code>abstractmethod</code></small> |
| </span> |
| |
| <a href="#pyiceberg.expressions.visitors.BooleanExpressionVisitor.visit_unbound_predicate" class="headerlink" title="Permanent link">¶</a></h3> |
| |
| |
| <div class="doc doc-contents "> |
| |
| <p>Visit method for an unbound predicate in an expression tree.</p> |
| |
| |
| <p><span class="doc-section-title">Parameters:</span></p> |
| <table> |
| <thead> |
| <tr> |
| <th>Name</th> |
| <th>Type</th> |
| <th>Description</th> |
| <th>Default</th> |
| </tr> |
| </thead> |
| <tbody> |
| <tr class="doc-section-item"> |
| <td> |
| <code>predicate</code> |
| </td> |
| <td> |
| <code>UnboundPredicate[L</code> |
| </td> |
| <td> |
| <div class="doc-md-description"> |
| <p>An instance of an UnboundPredicate.</p> |
| </div> |
| </td> |
| <td> |
| <em>required</em> |
| </td> |
| </tr> |
| </tbody> |
| </table> |
| |
| |
| <details class="quote"> |
| <summary>Source code in <code>pyiceberg/expressions/visitors.py</code></summary> |
| <div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-0-123">123</a></span> |
| <span class="normal"><a href="#__codelineno-0-124">124</a></span> |
| <span class="normal"><a href="#__codelineno-0-125">125</a></span> |
| <span class="normal"><a href="#__codelineno-0-126">126</a></span> |
| <span class="normal"><a href="#__codelineno-0-127">127</a></span> |
| <span class="normal"><a href="#__codelineno-0-128">128</a></span> |
| <span class="normal"><a href="#__codelineno-0-129">129</a></span></pre></div></td><td class="code"><div><pre><span></span><code><a id="__codelineno-0-123" name="__codelineno-0-123"></a><span class="nd">@abstractmethod</span> |
| <a id="__codelineno-0-124" name="__codelineno-0-124"></a><span class="k">def</span><span class="w"> </span><span class="nf">visit_unbound_predicate</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">predicate</span><span class="p">:</span> <span class="n">UnboundPredicate</span><span class="p">[</span><span class="n">L</span><span class="p">])</span> <span class="o">-></span> <span class="n">T</span><span class="p">:</span> |
| <a id="__codelineno-0-125" name="__codelineno-0-125"></a><span class="w"> </span><span class="sd">"""Visit method for an unbound predicate in an expression tree.</span> |
| <a id="__codelineno-0-126" name="__codelineno-0-126"></a> |
| <a id="__codelineno-0-127" name="__codelineno-0-127"></a><span class="sd"> Args:</span> |
| <a id="__codelineno-0-128" name="__codelineno-0-128"></a><span class="sd"> predicate (UnboundPredicate[L): An instance of an UnboundPredicate.</span> |
| <a id="__codelineno-0-129" name="__codelineno-0-129"></a><span class="sd"> """</span> |
| </code></pre></div></td></tr></table></div> |
| </details> |
| </div> |
| |
| </div> |
| |
| |
| |
| </div> |
| |
| </div> |
| |
| </div> |
| |
| <div class="doc doc-object doc-class"> |
| |
| |
| |
| <h2 id="pyiceberg.expressions.visitors.BoundBooleanExpressionVisitor" class="doc doc-heading"> |
| <code>BoundBooleanExpressionVisitor</code> |
| |
| |
| <a href="#pyiceberg.expressions.visitors.BoundBooleanExpressionVisitor" class="headerlink" title="Permanent link">¶</a></h2> |
| |
| |
| <div class="doc doc-contents "> |
| <p class="doc doc-class-bases"> |
| Bases: <code><a class="autorefs autorefs-internal" title="BooleanExpressionVisitor (pyiceberg.expressions.visitors.BooleanExpressionVisitor)" href="#pyiceberg.expressions.visitors.BooleanExpressionVisitor">BooleanExpressionVisitor</a>[<span title="pyiceberg.expressions.visitors.T">T</span>]</code>, <code><span title="abc.ABC">ABC</span></code></p> |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| <details class="quote"> |
| <summary>Source code in <code>pyiceberg/expressions/visitors.py</code></summary> |
| <div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-0-257">257</a></span> |
| <span class="normal"><a href="#__codelineno-0-258">258</a></span> |
| <span class="normal"><a href="#__codelineno-0-259">259</a></span> |
| <span class="normal"><a href="#__codelineno-0-260">260</a></span> |
| <span class="normal"><a href="#__codelineno-0-261">261</a></span> |
| <span class="normal"><a href="#__codelineno-0-262">262</a></span> |
| <span class="normal"><a href="#__codelineno-0-263">263</a></span> |
| <span class="normal"><a href="#__codelineno-0-264">264</a></span> |
| <span class="normal"><a href="#__codelineno-0-265">265</a></span> |
| <span class="normal"><a href="#__codelineno-0-266">266</a></span> |
| <span class="normal"><a href="#__codelineno-0-267">267</a></span> |
| <span class="normal"><a href="#__codelineno-0-268">268</a></span> |
| <span class="normal"><a href="#__codelineno-0-269">269</a></span> |
| <span class="normal"><a href="#__codelineno-0-270">270</a></span> |
| <span class="normal"><a href="#__codelineno-0-271">271</a></span> |
| <span class="normal"><a href="#__codelineno-0-272">272</a></span> |
| <span class="normal"><a href="#__codelineno-0-273">273</a></span> |
| <span class="normal"><a href="#__codelineno-0-274">274</a></span> |
| <span class="normal"><a href="#__codelineno-0-275">275</a></span> |
| <span class="normal"><a href="#__codelineno-0-276">276</a></span> |
| <span class="normal"><a href="#__codelineno-0-277">277</a></span> |
| <span class="normal"><a href="#__codelineno-0-278">278</a></span> |
| <span class="normal"><a href="#__codelineno-0-279">279</a></span> |
| <span class="normal"><a href="#__codelineno-0-280">280</a></span> |
| <span class="normal"><a href="#__codelineno-0-281">281</a></span> |
| <span class="normal"><a href="#__codelineno-0-282">282</a></span> |
| <span class="normal"><a href="#__codelineno-0-283">283</a></span> |
| <span class="normal"><a href="#__codelineno-0-284">284</a></span> |
| <span class="normal"><a href="#__codelineno-0-285">285</a></span> |
| <span class="normal"><a href="#__codelineno-0-286">286</a></span> |
| <span class="normal"><a href="#__codelineno-0-287">287</a></span> |
| <span class="normal"><a href="#__codelineno-0-288">288</a></span> |
| <span class="normal"><a href="#__codelineno-0-289">289</a></span> |
| <span class="normal"><a href="#__codelineno-0-290">290</a></span> |
| <span class="normal"><a href="#__codelineno-0-291">291</a></span> |
| <span class="normal"><a href="#__codelineno-0-292">292</a></span> |
| <span class="normal"><a href="#__codelineno-0-293">293</a></span> |
| <span class="normal"><a href="#__codelineno-0-294">294</a></span> |
| <span class="normal"><a href="#__codelineno-0-295">295</a></span> |
| <span class="normal"><a href="#__codelineno-0-296">296</a></span> |
| <span class="normal"><a href="#__codelineno-0-297">297</a></span> |
| <span class="normal"><a href="#__codelineno-0-298">298</a></span> |
| <span class="normal"><a href="#__codelineno-0-299">299</a></span> |
| <span class="normal"><a href="#__codelineno-0-300">300</a></span> |
| <span class="normal"><a href="#__codelineno-0-301">301</a></span> |
| <span class="normal"><a href="#__codelineno-0-302">302</a></span> |
| <span class="normal"><a href="#__codelineno-0-303">303</a></span> |
| <span class="normal"><a href="#__codelineno-0-304">304</a></span> |
| <span class="normal"><a href="#__codelineno-0-305">305</a></span> |
| <span class="normal"><a href="#__codelineno-0-306">306</a></span> |
| <span class="normal"><a href="#__codelineno-0-307">307</a></span> |
| <span class="normal"><a href="#__codelineno-0-308">308</a></span> |
| <span class="normal"><a href="#__codelineno-0-309">309</a></span> |
| <span class="normal"><a href="#__codelineno-0-310">310</a></span> |
| <span class="normal"><a href="#__codelineno-0-311">311</a></span> |
| <span class="normal"><a href="#__codelineno-0-312">312</a></span> |
| <span class="normal"><a href="#__codelineno-0-313">313</a></span> |
| <span class="normal"><a href="#__codelineno-0-314">314</a></span> |
| <span class="normal"><a href="#__codelineno-0-315">315</a></span> |
| <span class="normal"><a href="#__codelineno-0-316">316</a></span> |
| <span class="normal"><a href="#__codelineno-0-317">317</a></span> |
| <span class="normal"><a href="#__codelineno-0-318">318</a></span> |
| <span class="normal"><a href="#__codelineno-0-319">319</a></span> |
| <span class="normal"><a href="#__codelineno-0-320">320</a></span> |
| <span class="normal"><a href="#__codelineno-0-321">321</a></span> |
| <span class="normal"><a href="#__codelineno-0-322">322</a></span> |
| <span class="normal"><a href="#__codelineno-0-323">323</a></span> |
| <span class="normal"><a href="#__codelineno-0-324">324</a></span> |
| <span class="normal"><a href="#__codelineno-0-325">325</a></span> |
| <span class="normal"><a href="#__codelineno-0-326">326</a></span> |
| <span class="normal"><a href="#__codelineno-0-327">327</a></span> |
| <span class="normal"><a href="#__codelineno-0-328">328</a></span> |
| <span class="normal"><a href="#__codelineno-0-329">329</a></span> |
| <span class="normal"><a href="#__codelineno-0-330">330</a></span> |
| <span class="normal"><a href="#__codelineno-0-331">331</a></span> |
| <span class="normal"><a href="#__codelineno-0-332">332</a></span> |
| <span class="normal"><a href="#__codelineno-0-333">333</a></span> |
| <span class="normal"><a href="#__codelineno-0-334">334</a></span> |
| <span class="normal"><a href="#__codelineno-0-335">335</a></span> |
| <span class="normal"><a href="#__codelineno-0-336">336</a></span> |
| <span class="normal"><a href="#__codelineno-0-337">337</a></span> |
| <span class="normal"><a href="#__codelineno-0-338">338</a></span> |
| <span class="normal"><a href="#__codelineno-0-339">339</a></span> |
| <span class="normal"><a href="#__codelineno-0-340">340</a></span> |
| <span class="normal"><a href="#__codelineno-0-341">341</a></span> |
| <span class="normal"><a href="#__codelineno-0-342">342</a></span> |
| <span class="normal"><a href="#__codelineno-0-343">343</a></span> |
| <span class="normal"><a href="#__codelineno-0-344">344</a></span> |
| <span class="normal"><a href="#__codelineno-0-345">345</a></span> |
| <span class="normal"><a href="#__codelineno-0-346">346</a></span> |
| <span class="normal"><a href="#__codelineno-0-347">347</a></span> |
| <span class="normal"><a href="#__codelineno-0-348">348</a></span> |
| <span class="normal"><a href="#__codelineno-0-349">349</a></span> |
| <span class="normal"><a href="#__codelineno-0-350">350</a></span></pre></div></td><td class="code"><div><pre><span></span><code><a id="__codelineno-0-257" name="__codelineno-0-257"></a><span class="k">class</span><span class="w"> </span><span class="nc">BoundBooleanExpressionVisitor</span><span class="p">(</span><span class="n">BooleanExpressionVisitor</span><span class="p">[</span><span class="n">T</span><span class="p">],</span> <span class="n">ABC</span><span class="p">):</span> |
| <a id="__codelineno-0-258" name="__codelineno-0-258"></a> <span class="nd">@abstractmethod</span> |
| <a id="__codelineno-0-259" name="__codelineno-0-259"></a> <span class="k">def</span><span class="w"> </span><span class="nf">visit_in</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">term</span><span class="p">:</span> <span class="n">BoundTerm</span><span class="p">[</span><span class="n">L</span><span class="p">],</span> <span class="n">literals</span><span class="p">:</span> <span class="n">Set</span><span class="p">[</span><span class="n">L</span><span class="p">])</span> <span class="o">-></span> <span class="n">T</span><span class="p">:</span> |
| <a id="__codelineno-0-260" name="__codelineno-0-260"></a><span class="w"> </span><span class="sd">"""Visit a bound In predicate."""</span> |
| <a id="__codelineno-0-261" name="__codelineno-0-261"></a> |
| <a id="__codelineno-0-262" name="__codelineno-0-262"></a> <span class="nd">@abstractmethod</span> |
| <a id="__codelineno-0-263" name="__codelineno-0-263"></a> <span class="k">def</span><span class="w"> </span><span class="nf">visit_not_in</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">term</span><span class="p">:</span> <span class="n">BoundTerm</span><span class="p">[</span><span class="n">L</span><span class="p">],</span> <span class="n">literals</span><span class="p">:</span> <span class="n">Set</span><span class="p">[</span><span class="n">L</span><span class="p">])</span> <span class="o">-></span> <span class="n">T</span><span class="p">:</span> |
| <a id="__codelineno-0-264" name="__codelineno-0-264"></a><span class="w"> </span><span class="sd">"""Visit a bound NotIn predicate."""</span> |
| <a id="__codelineno-0-265" name="__codelineno-0-265"></a> |
| <a id="__codelineno-0-266" name="__codelineno-0-266"></a> <span class="nd">@abstractmethod</span> |
| <a id="__codelineno-0-267" name="__codelineno-0-267"></a> <span class="k">def</span><span class="w"> </span><span class="nf">visit_is_nan</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">term</span><span class="p">:</span> <span class="n">BoundTerm</span><span class="p">[</span><span class="n">L</span><span class="p">])</span> <span class="o">-></span> <span class="n">T</span><span class="p">:</span> |
| <a id="__codelineno-0-268" name="__codelineno-0-268"></a><span class="w"> </span><span class="sd">"""Visit a bound IsNan predicate."""</span> |
| <a id="__codelineno-0-269" name="__codelineno-0-269"></a> |
| <a id="__codelineno-0-270" name="__codelineno-0-270"></a> <span class="nd">@abstractmethod</span> |
| <a id="__codelineno-0-271" name="__codelineno-0-271"></a> <span class="k">def</span><span class="w"> </span><span class="nf">visit_not_nan</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">term</span><span class="p">:</span> <span class="n">BoundTerm</span><span class="p">[</span><span class="n">L</span><span class="p">])</span> <span class="o">-></span> <span class="n">T</span><span class="p">:</span> |
| <a id="__codelineno-0-272" name="__codelineno-0-272"></a><span class="w"> </span><span class="sd">"""Visit a bound NotNan predicate."""</span> |
| <a id="__codelineno-0-273" name="__codelineno-0-273"></a> |
| <a id="__codelineno-0-274" name="__codelineno-0-274"></a> <span class="nd">@abstractmethod</span> |
| <a id="__codelineno-0-275" name="__codelineno-0-275"></a> <span class="k">def</span><span class="w"> </span><span class="nf">visit_is_null</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">term</span><span class="p">:</span> <span class="n">BoundTerm</span><span class="p">[</span><span class="n">L</span><span class="p">])</span> <span class="o">-></span> <span class="n">T</span><span class="p">:</span> |
| <a id="__codelineno-0-276" name="__codelineno-0-276"></a><span class="w"> </span><span class="sd">"""Visit a bound IsNull predicate."""</span> |
| <a id="__codelineno-0-277" name="__codelineno-0-277"></a> |
| <a id="__codelineno-0-278" name="__codelineno-0-278"></a> <span class="nd">@abstractmethod</span> |
| <a id="__codelineno-0-279" name="__codelineno-0-279"></a> <span class="k">def</span><span class="w"> </span><span class="nf">visit_not_null</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">term</span><span class="p">:</span> <span class="n">BoundTerm</span><span class="p">[</span><span class="n">L</span><span class="p">])</span> <span class="o">-></span> <span class="n">T</span><span class="p">:</span> |
| <a id="__codelineno-0-280" name="__codelineno-0-280"></a><span class="w"> </span><span class="sd">"""Visit a bound NotNull predicate."""</span> |
| <a id="__codelineno-0-281" name="__codelineno-0-281"></a> |
| <a id="__codelineno-0-282" name="__codelineno-0-282"></a> <span class="nd">@abstractmethod</span> |
| <a id="__codelineno-0-283" name="__codelineno-0-283"></a> <span class="k">def</span><span class="w"> </span><span class="nf">visit_equal</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">term</span><span class="p">:</span> <span class="n">BoundTerm</span><span class="p">[</span><span class="n">L</span><span class="p">],</span> <span class="n">literal</span><span class="p">:</span> <span class="n">Literal</span><span class="p">[</span><span class="n">L</span><span class="p">])</span> <span class="o">-></span> <span class="n">T</span><span class="p">:</span> |
| <a id="__codelineno-0-284" name="__codelineno-0-284"></a><span class="w"> </span><span class="sd">"""Visit a bound Equal predicate."""</span> |
| <a id="__codelineno-0-285" name="__codelineno-0-285"></a> |
| <a id="__codelineno-0-286" name="__codelineno-0-286"></a> <span class="nd">@abstractmethod</span> |
| <a id="__codelineno-0-287" name="__codelineno-0-287"></a> <span class="k">def</span><span class="w"> </span><span class="nf">visit_not_equal</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">term</span><span class="p">:</span> <span class="n">BoundTerm</span><span class="p">[</span><span class="n">L</span><span class="p">],</span> <span class="n">literal</span><span class="p">:</span> <span class="n">Literal</span><span class="p">[</span><span class="n">L</span><span class="p">])</span> <span class="o">-></span> <span class="n">T</span><span class="p">:</span> |
| <a id="__codelineno-0-288" name="__codelineno-0-288"></a><span class="w"> </span><span class="sd">"""Visit a bound NotEqual predicate."""</span> |
| <a id="__codelineno-0-289" name="__codelineno-0-289"></a> |
| <a id="__codelineno-0-290" name="__codelineno-0-290"></a> <span class="nd">@abstractmethod</span> |
| <a id="__codelineno-0-291" name="__codelineno-0-291"></a> <span class="k">def</span><span class="w"> </span><span class="nf">visit_greater_than_or_equal</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">term</span><span class="p">:</span> <span class="n">BoundTerm</span><span class="p">[</span><span class="n">L</span><span class="p">],</span> <span class="n">literal</span><span class="p">:</span> <span class="n">Literal</span><span class="p">[</span><span class="n">L</span><span class="p">])</span> <span class="o">-></span> <span class="n">T</span><span class="p">:</span> |
| <a id="__codelineno-0-292" name="__codelineno-0-292"></a><span class="w"> </span><span class="sd">"""Visit a bound GreaterThanOrEqual predicate."""</span> |
| <a id="__codelineno-0-293" name="__codelineno-0-293"></a> |
| <a id="__codelineno-0-294" name="__codelineno-0-294"></a> <span class="nd">@abstractmethod</span> |
| <a id="__codelineno-0-295" name="__codelineno-0-295"></a> <span class="k">def</span><span class="w"> </span><span class="nf">visit_greater_than</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">term</span><span class="p">:</span> <span class="n">BoundTerm</span><span class="p">[</span><span class="n">L</span><span class="p">],</span> <span class="n">literal</span><span class="p">:</span> <span class="n">Literal</span><span class="p">[</span><span class="n">L</span><span class="p">])</span> <span class="o">-></span> <span class="n">T</span><span class="p">:</span> |
| <a id="__codelineno-0-296" name="__codelineno-0-296"></a><span class="w"> </span><span class="sd">"""Visit a bound GreaterThan predicate."""</span> |
| <a id="__codelineno-0-297" name="__codelineno-0-297"></a> |
| <a id="__codelineno-0-298" name="__codelineno-0-298"></a> <span class="nd">@abstractmethod</span> |
| <a id="__codelineno-0-299" name="__codelineno-0-299"></a> <span class="k">def</span><span class="w"> </span><span class="nf">visit_less_than</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">term</span><span class="p">:</span> <span class="n">BoundTerm</span><span class="p">[</span><span class="n">L</span><span class="p">],</span> <span class="n">literal</span><span class="p">:</span> <span class="n">Literal</span><span class="p">[</span><span class="n">L</span><span class="p">])</span> <span class="o">-></span> <span class="n">T</span><span class="p">:</span> |
| <a id="__codelineno-0-300" name="__codelineno-0-300"></a><span class="w"> </span><span class="sd">"""Visit a bound LessThan predicate."""</span> |
| <a id="__codelineno-0-301" name="__codelineno-0-301"></a> |
| <a id="__codelineno-0-302" name="__codelineno-0-302"></a> <span class="nd">@abstractmethod</span> |
| <a id="__codelineno-0-303" name="__codelineno-0-303"></a> <span class="k">def</span><span class="w"> </span><span class="nf">visit_less_than_or_equal</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">term</span><span class="p">:</span> <span class="n">BoundTerm</span><span class="p">[</span><span class="n">L</span><span class="p">],</span> <span class="n">literal</span><span class="p">:</span> <span class="n">Literal</span><span class="p">[</span><span class="n">L</span><span class="p">])</span> <span class="o">-></span> <span class="n">T</span><span class="p">:</span> |
| <a id="__codelineno-0-304" name="__codelineno-0-304"></a><span class="w"> </span><span class="sd">"""Visit a bound LessThanOrEqual predicate."""</span> |
| <a id="__codelineno-0-305" name="__codelineno-0-305"></a> |
| <a id="__codelineno-0-306" name="__codelineno-0-306"></a> <span class="nd">@abstractmethod</span> |
| <a id="__codelineno-0-307" name="__codelineno-0-307"></a> <span class="k">def</span><span class="w"> </span><span class="nf">visit_true</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="n">T</span><span class="p">:</span> |
| <a id="__codelineno-0-308" name="__codelineno-0-308"></a><span class="w"> </span><span class="sd">"""Visit a bound True predicate."""</span> |
| <a id="__codelineno-0-309" name="__codelineno-0-309"></a> |
| <a id="__codelineno-0-310" name="__codelineno-0-310"></a> <span class="nd">@abstractmethod</span> |
| <a id="__codelineno-0-311" name="__codelineno-0-311"></a> <span class="k">def</span><span class="w"> </span><span class="nf">visit_false</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="n">T</span><span class="p">:</span> |
| <a id="__codelineno-0-312" name="__codelineno-0-312"></a><span class="w"> </span><span class="sd">"""Visit a bound False predicate."""</span> |
| <a id="__codelineno-0-313" name="__codelineno-0-313"></a> |
| <a id="__codelineno-0-314" name="__codelineno-0-314"></a> <span class="nd">@abstractmethod</span> |
| <a id="__codelineno-0-315" name="__codelineno-0-315"></a> <span class="k">def</span><span class="w"> </span><span class="nf">visit_not</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">child_result</span><span class="p">:</span> <span class="n">T</span><span class="p">)</span> <span class="o">-></span> <span class="n">T</span><span class="p">:</span> |
| <a id="__codelineno-0-316" name="__codelineno-0-316"></a><span class="w"> </span><span class="sd">"""Visit a bound Not predicate."""</span> |
| <a id="__codelineno-0-317" name="__codelineno-0-317"></a> |
| <a id="__codelineno-0-318" name="__codelineno-0-318"></a> <span class="nd">@abstractmethod</span> |
| <a id="__codelineno-0-319" name="__codelineno-0-319"></a> <span class="k">def</span><span class="w"> </span><span class="nf">visit_and</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">left_result</span><span class="p">:</span> <span class="n">T</span><span class="p">,</span> <span class="n">right_result</span><span class="p">:</span> <span class="n">T</span><span class="p">)</span> <span class="o">-></span> <span class="n">T</span><span class="p">:</span> |
| <a id="__codelineno-0-320" name="__codelineno-0-320"></a><span class="w"> </span><span class="sd">"""Visit a bound And predicate."""</span> |
| <a id="__codelineno-0-321" name="__codelineno-0-321"></a> |
| <a id="__codelineno-0-322" name="__codelineno-0-322"></a> <span class="nd">@abstractmethod</span> |
| <a id="__codelineno-0-323" name="__codelineno-0-323"></a> <span class="k">def</span><span class="w"> </span><span class="nf">visit_or</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">left_result</span><span class="p">:</span> <span class="n">T</span><span class="p">,</span> <span class="n">right_result</span><span class="p">:</span> <span class="n">T</span><span class="p">)</span> <span class="o">-></span> <span class="n">T</span><span class="p">:</span> |
| <a id="__codelineno-0-324" name="__codelineno-0-324"></a><span class="w"> </span><span class="sd">"""Visit a bound Or predicate."""</span> |
| <a id="__codelineno-0-325" name="__codelineno-0-325"></a> |
| <a id="__codelineno-0-326" name="__codelineno-0-326"></a> <span class="nd">@abstractmethod</span> |
| <a id="__codelineno-0-327" name="__codelineno-0-327"></a> <span class="k">def</span><span class="w"> </span><span class="nf">visit_starts_with</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">term</span><span class="p">:</span> <span class="n">BoundTerm</span><span class="p">[</span><span class="n">L</span><span class="p">],</span> <span class="n">literal</span><span class="p">:</span> <span class="n">Literal</span><span class="p">[</span><span class="n">L</span><span class="p">])</span> <span class="o">-></span> <span class="n">T</span><span class="p">:</span> |
| <a id="__codelineno-0-328" name="__codelineno-0-328"></a><span class="w"> </span><span class="sd">"""Visit bound StartsWith predicate."""</span> |
| <a id="__codelineno-0-329" name="__codelineno-0-329"></a> |
| <a id="__codelineno-0-330" name="__codelineno-0-330"></a> <span class="nd">@abstractmethod</span> |
| <a id="__codelineno-0-331" name="__codelineno-0-331"></a> <span class="k">def</span><span class="w"> </span><span class="nf">visit_not_starts_with</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">term</span><span class="p">:</span> <span class="n">BoundTerm</span><span class="p">[</span><span class="n">L</span><span class="p">],</span> <span class="n">literal</span><span class="p">:</span> <span class="n">Literal</span><span class="p">[</span><span class="n">L</span><span class="p">])</span> <span class="o">-></span> <span class="n">T</span><span class="p">:</span> |
| <a id="__codelineno-0-332" name="__codelineno-0-332"></a><span class="w"> </span><span class="sd">"""Visit bound NotStartsWith predicate."""</span> |
| <a id="__codelineno-0-333" name="__codelineno-0-333"></a> |
| <a id="__codelineno-0-334" name="__codelineno-0-334"></a> <span class="k">def</span><span class="w"> </span><span class="nf">visit_unbound_predicate</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">predicate</span><span class="p">:</span> <span class="n">UnboundPredicate</span><span class="p">[</span><span class="n">L</span><span class="p">])</span> <span class="o">-></span> <span class="n">T</span><span class="p">:</span> |
| <a id="__codelineno-0-335" name="__codelineno-0-335"></a><span class="w"> </span><span class="sd">"""Visit an unbound predicate.</span> |
| <a id="__codelineno-0-336" name="__codelineno-0-336"></a> |
| <a id="__codelineno-0-337" name="__codelineno-0-337"></a><span class="sd"> Args:</span> |
| <a id="__codelineno-0-338" name="__codelineno-0-338"></a><span class="sd"> predicate (UnboundPredicate[L]): An unbound predicate.</span> |
| <a id="__codelineno-0-339" name="__codelineno-0-339"></a><span class="sd"> Raises:</span> |
| <a id="__codelineno-0-340" name="__codelineno-0-340"></a><span class="sd"> TypeError: This always raises since an unbound predicate is not expected in a bound boolean expression.</span> |
| <a id="__codelineno-0-341" name="__codelineno-0-341"></a><span class="sd"> """</span> |
| <a id="__codelineno-0-342" name="__codelineno-0-342"></a> <span class="k">raise</span> <span class="ne">TypeError</span><span class="p">(</span><span class="sa">f</span><span class="s2">"Not a bound predicate: </span><span class="si">{</span><span class="n">predicate</span><span class="si">}</span><span class="s2">"</span><span class="p">)</span> |
| <a id="__codelineno-0-343" name="__codelineno-0-343"></a> |
| <a id="__codelineno-0-344" name="__codelineno-0-344"></a> <span class="k">def</span><span class="w"> </span><span class="nf">visit_bound_predicate</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">predicate</span><span class="p">:</span> <span class="n">BoundPredicate</span><span class="p">[</span><span class="n">L</span><span class="p">])</span> <span class="o">-></span> <span class="n">T</span><span class="p">:</span> |
| <a id="__codelineno-0-345" name="__codelineno-0-345"></a><span class="w"> </span><span class="sd">"""Visit a bound predicate.</span> |
| <a id="__codelineno-0-346" name="__codelineno-0-346"></a> |
| <a id="__codelineno-0-347" name="__codelineno-0-347"></a><span class="sd"> Args:</span> |
| <a id="__codelineno-0-348" name="__codelineno-0-348"></a><span class="sd"> predicate (BoundPredicate[L]): A bound predicate.</span> |
| <a id="__codelineno-0-349" name="__codelineno-0-349"></a><span class="sd"> """</span> |
| <a id="__codelineno-0-350" name="__codelineno-0-350"></a> <span class="k">return</span> <span class="n">visit_bound_predicate</span><span class="p">(</span><span class="n">predicate</span><span class="p">,</span> <span class="bp">self</span><span class="p">)</span> |
| </code></pre></div></td></tr></table></div> |
| </details> |
| |
| |
| |
| <div class="doc doc-children"> |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| <div class="doc doc-object doc-function"> |
| |
| |
| <h3 id="pyiceberg.expressions.visitors.BoundBooleanExpressionVisitor.visit_and" class="doc doc-heading"> |
| <code class="highlight language-python"><span class="n">visit_and</span><span class="p">(</span><span class="n">left_result</span><span class="p">,</span> <span class="n">right_result</span><span class="p">)</span></code> |
| |
| <span class="doc doc-labels"> |
| <small class="doc doc-label doc-label-abstractmethod"><code>abstractmethod</code></small> |
| </span> |
| |
| <a href="#pyiceberg.expressions.visitors.BoundBooleanExpressionVisitor.visit_and" class="headerlink" title="Permanent link">¶</a></h3> |
| |
| |
| <div class="doc doc-contents "> |
| |
| <p>Visit a bound And predicate.</p> |
| |
| |
| <details class="quote"> |
| <summary>Source code in <code>pyiceberg/expressions/visitors.py</code></summary> |
| <div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-0-318">318</a></span> |
| <span class="normal"><a href="#__codelineno-0-319">319</a></span> |
| <span class="normal"><a href="#__codelineno-0-320">320</a></span></pre></div></td><td class="code"><div><pre><span></span><code><a id="__codelineno-0-318" name="__codelineno-0-318"></a><span class="nd">@abstractmethod</span> |
| <a id="__codelineno-0-319" name="__codelineno-0-319"></a><span class="k">def</span><span class="w"> </span><span class="nf">visit_and</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">left_result</span><span class="p">:</span> <span class="n">T</span><span class="p">,</span> <span class="n">right_result</span><span class="p">:</span> <span class="n">T</span><span class="p">)</span> <span class="o">-></span> <span class="n">T</span><span class="p">:</span> |
| <a id="__codelineno-0-320" name="__codelineno-0-320"></a><span class="w"> </span><span class="sd">"""Visit a bound And predicate."""</span> |
| </code></pre></div></td></tr></table></div> |
| </details> |
| </div> |
| |
| </div> |
| |
| <div class="doc doc-object doc-function"> |
| |
| |
| <h3 id="pyiceberg.expressions.visitors.BoundBooleanExpressionVisitor.visit_bound_predicate" class="doc doc-heading"> |
| <code class="highlight language-python"><span class="n">visit_bound_predicate</span><span class="p">(</span><span class="n">predicate</span><span class="p">)</span></code> |
| |
| <a href="#pyiceberg.expressions.visitors.BoundBooleanExpressionVisitor.visit_bound_predicate" class="headerlink" title="Permanent link">¶</a></h3> |
| |
| |
| <div class="doc doc-contents "> |
| |
| <p>Visit a bound predicate.</p> |
| |
| |
| <p><span class="doc-section-title">Parameters:</span></p> |
| <table> |
| <thead> |
| <tr> |
| <th>Name</th> |
| <th>Type</th> |
| <th>Description</th> |
| <th>Default</th> |
| </tr> |
| </thead> |
| <tbody> |
| <tr class="doc-section-item"> |
| <td> |
| <code>predicate</code> |
| </td> |
| <td> |
| <code><a class="autorefs autorefs-internal" title="BoundPredicate (pyiceberg.expressions.BoundPredicate)" href="../#pyiceberg.expressions.BoundPredicate">BoundPredicate</a>[<span title="pyiceberg.typedef.L">L</span>]</code> |
| </td> |
| <td> |
| <div class="doc-md-description"> |
| <p>A bound predicate.</p> |
| </div> |
| </td> |
| <td> |
| <em>required</em> |
| </td> |
| </tr> |
| </tbody> |
| </table> |
| |
| |
| <details class="quote"> |
| <summary>Source code in <code>pyiceberg/expressions/visitors.py</code></summary> |
| <div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-0-344">344</a></span> |
| <span class="normal"><a href="#__codelineno-0-345">345</a></span> |
| <span class="normal"><a href="#__codelineno-0-346">346</a></span> |
| <span class="normal"><a href="#__codelineno-0-347">347</a></span> |
| <span class="normal"><a href="#__codelineno-0-348">348</a></span> |
| <span class="normal"><a href="#__codelineno-0-349">349</a></span> |
| <span class="normal"><a href="#__codelineno-0-350">350</a></span></pre></div></td><td class="code"><div><pre><span></span><code><a id="__codelineno-0-344" name="__codelineno-0-344"></a><span class="k">def</span><span class="w"> </span><span class="nf">visit_bound_predicate</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">predicate</span><span class="p">:</span> <span class="n">BoundPredicate</span><span class="p">[</span><span class="n">L</span><span class="p">])</span> <span class="o">-></span> <span class="n">T</span><span class="p">:</span> |
| <a id="__codelineno-0-345" name="__codelineno-0-345"></a><span class="w"> </span><span class="sd">"""Visit a bound predicate.</span> |
| <a id="__codelineno-0-346" name="__codelineno-0-346"></a> |
| <a id="__codelineno-0-347" name="__codelineno-0-347"></a><span class="sd"> Args:</span> |
| <a id="__codelineno-0-348" name="__codelineno-0-348"></a><span class="sd"> predicate (BoundPredicate[L]): A bound predicate.</span> |
| <a id="__codelineno-0-349" name="__codelineno-0-349"></a><span class="sd"> """</span> |
| <a id="__codelineno-0-350" name="__codelineno-0-350"></a> <span class="k">return</span> <span class="n">visit_bound_predicate</span><span class="p">(</span><span class="n">predicate</span><span class="p">,</span> <span class="bp">self</span><span class="p">)</span> |
| </code></pre></div></td></tr></table></div> |
| </details> |
| </div> |
| |
| </div> |
| |
| <div class="doc doc-object doc-function"> |
| |
| |
| <h3 id="pyiceberg.expressions.visitors.BoundBooleanExpressionVisitor.visit_equal" class="doc doc-heading"> |
| <code class="highlight language-python"><span class="n">visit_equal</span><span class="p">(</span><span class="n">term</span><span class="p">,</span> <span class="n">literal</span><span class="p">)</span></code> |
| |
| <span class="doc doc-labels"> |
| <small class="doc doc-label doc-label-abstractmethod"><code>abstractmethod</code></small> |
| </span> |
| |
| <a href="#pyiceberg.expressions.visitors.BoundBooleanExpressionVisitor.visit_equal" class="headerlink" title="Permanent link">¶</a></h3> |
| |
| |
| <div class="doc doc-contents "> |
| |
| <p>Visit a bound Equal predicate.</p> |
| |
| |
| <details class="quote"> |
| <summary>Source code in <code>pyiceberg/expressions/visitors.py</code></summary> |
| <div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-0-282">282</a></span> |
| <span class="normal"><a href="#__codelineno-0-283">283</a></span> |
| <span class="normal"><a href="#__codelineno-0-284">284</a></span></pre></div></td><td class="code"><div><pre><span></span><code><a id="__codelineno-0-282" name="__codelineno-0-282"></a><span class="nd">@abstractmethod</span> |
| <a id="__codelineno-0-283" name="__codelineno-0-283"></a><span class="k">def</span><span class="w"> </span><span class="nf">visit_equal</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">term</span><span class="p">:</span> <span class="n">BoundTerm</span><span class="p">[</span><span class="n">L</span><span class="p">],</span> <span class="n">literal</span><span class="p">:</span> <span class="n">Literal</span><span class="p">[</span><span class="n">L</span><span class="p">])</span> <span class="o">-></span> <span class="n">T</span><span class="p">:</span> |
| <a id="__codelineno-0-284" name="__codelineno-0-284"></a><span class="w"> </span><span class="sd">"""Visit a bound Equal predicate."""</span> |
| </code></pre></div></td></tr></table></div> |
| </details> |
| </div> |
| |
| </div> |
| |
| <div class="doc doc-object doc-function"> |
| |
| |
| <h3 id="pyiceberg.expressions.visitors.BoundBooleanExpressionVisitor.visit_false" class="doc doc-heading"> |
| <code class="highlight language-python"><span class="n">visit_false</span><span class="p">()</span></code> |
| |
| <span class="doc doc-labels"> |
| <small class="doc doc-label doc-label-abstractmethod"><code>abstractmethod</code></small> |
| </span> |
| |
| <a href="#pyiceberg.expressions.visitors.BoundBooleanExpressionVisitor.visit_false" class="headerlink" title="Permanent link">¶</a></h3> |
| |
| |
| <div class="doc doc-contents "> |
| |
| <p>Visit a bound False predicate.</p> |
| |
| |
| <details class="quote"> |
| <summary>Source code in <code>pyiceberg/expressions/visitors.py</code></summary> |
| <div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-0-310">310</a></span> |
| <span class="normal"><a href="#__codelineno-0-311">311</a></span> |
| <span class="normal"><a href="#__codelineno-0-312">312</a></span></pre></div></td><td class="code"><div><pre><span></span><code><a id="__codelineno-0-310" name="__codelineno-0-310"></a><span class="nd">@abstractmethod</span> |
| <a id="__codelineno-0-311" name="__codelineno-0-311"></a><span class="k">def</span><span class="w"> </span><span class="nf">visit_false</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="n">T</span><span class="p">:</span> |
| <a id="__codelineno-0-312" name="__codelineno-0-312"></a><span class="w"> </span><span class="sd">"""Visit a bound False predicate."""</span> |
| </code></pre></div></td></tr></table></div> |
| </details> |
| </div> |
| |
| </div> |
| |
| <div class="doc doc-object doc-function"> |
| |
| |
| <h3 id="pyiceberg.expressions.visitors.BoundBooleanExpressionVisitor.visit_greater_than" class="doc doc-heading"> |
| <code class="highlight language-python"><span class="n">visit_greater_than</span><span class="p">(</span><span class="n">term</span><span class="p">,</span> <span class="n">literal</span><span class="p">)</span></code> |
| |
| <span class="doc doc-labels"> |
| <small class="doc doc-label doc-label-abstractmethod"><code>abstractmethod</code></small> |
| </span> |
| |
| <a href="#pyiceberg.expressions.visitors.BoundBooleanExpressionVisitor.visit_greater_than" class="headerlink" title="Permanent link">¶</a></h3> |
| |
| |
| <div class="doc doc-contents "> |
| |
| <p>Visit a bound GreaterThan predicate.</p> |
| |
| |
| <details class="quote"> |
| <summary>Source code in <code>pyiceberg/expressions/visitors.py</code></summary> |
| <div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-0-294">294</a></span> |
| <span class="normal"><a href="#__codelineno-0-295">295</a></span> |
| <span class="normal"><a href="#__codelineno-0-296">296</a></span></pre></div></td><td class="code"><div><pre><span></span><code><a id="__codelineno-0-294" name="__codelineno-0-294"></a><span class="nd">@abstractmethod</span> |
| <a id="__codelineno-0-295" name="__codelineno-0-295"></a><span class="k">def</span><span class="w"> </span><span class="nf">visit_greater_than</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">term</span><span class="p">:</span> <span class="n">BoundTerm</span><span class="p">[</span><span class="n">L</span><span class="p">],</span> <span class="n">literal</span><span class="p">:</span> <span class="n">Literal</span><span class="p">[</span><span class="n">L</span><span class="p">])</span> <span class="o">-></span> <span class="n">T</span><span class="p">:</span> |
| <a id="__codelineno-0-296" name="__codelineno-0-296"></a><span class="w"> </span><span class="sd">"""Visit a bound GreaterThan predicate."""</span> |
| </code></pre></div></td></tr></table></div> |
| </details> |
| </div> |
| |
| </div> |
| |
| <div class="doc doc-object doc-function"> |
| |
| |
| <h3 id="pyiceberg.expressions.visitors.BoundBooleanExpressionVisitor.visit_greater_than_or_equal" class="doc doc-heading"> |
| <code class="highlight language-python"><span class="n">visit_greater_than_or_equal</span><span class="p">(</span><span class="n">term</span><span class="p">,</span> <span class="n">literal</span><span class="p">)</span></code> |
| |
| <span class="doc doc-labels"> |
| <small class="doc doc-label doc-label-abstractmethod"><code>abstractmethod</code></small> |
| </span> |
| |
| <a href="#pyiceberg.expressions.visitors.BoundBooleanExpressionVisitor.visit_greater_than_or_equal" class="headerlink" title="Permanent link">¶</a></h3> |
| |
| |
| <div class="doc doc-contents "> |
| |
| <p>Visit a bound GreaterThanOrEqual predicate.</p> |
| |
| |
| <details class="quote"> |
| <summary>Source code in <code>pyiceberg/expressions/visitors.py</code></summary> |
| <div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-0-290">290</a></span> |
| <span class="normal"><a href="#__codelineno-0-291">291</a></span> |
| <span class="normal"><a href="#__codelineno-0-292">292</a></span></pre></div></td><td class="code"><div><pre><span></span><code><a id="__codelineno-0-290" name="__codelineno-0-290"></a><span class="nd">@abstractmethod</span> |
| <a id="__codelineno-0-291" name="__codelineno-0-291"></a><span class="k">def</span><span class="w"> </span><span class="nf">visit_greater_than_or_equal</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">term</span><span class="p">:</span> <span class="n">BoundTerm</span><span class="p">[</span><span class="n">L</span><span class="p">],</span> <span class="n">literal</span><span class="p">:</span> <span class="n">Literal</span><span class="p">[</span><span class="n">L</span><span class="p">])</span> <span class="o">-></span> <span class="n">T</span><span class="p">:</span> |
| <a id="__codelineno-0-292" name="__codelineno-0-292"></a><span class="w"> </span><span class="sd">"""Visit a bound GreaterThanOrEqual predicate."""</span> |
| </code></pre></div></td></tr></table></div> |
| </details> |
| </div> |
| |
| </div> |
| |
| <div class="doc doc-object doc-function"> |
| |
| |
| <h3 id="pyiceberg.expressions.visitors.BoundBooleanExpressionVisitor.visit_in" class="doc doc-heading"> |
| <code class="highlight language-python"><span class="n">visit_in</span><span class="p">(</span><span class="n">term</span><span class="p">,</span> <span class="n">literals</span><span class="p">)</span></code> |
| |
| <span class="doc doc-labels"> |
| <small class="doc doc-label doc-label-abstractmethod"><code>abstractmethod</code></small> |
| </span> |
| |
| <a href="#pyiceberg.expressions.visitors.BoundBooleanExpressionVisitor.visit_in" class="headerlink" title="Permanent link">¶</a></h3> |
| |
| |
| <div class="doc doc-contents "> |
| |
| <p>Visit a bound In predicate.</p> |
| |
| |
| <details class="quote"> |
| <summary>Source code in <code>pyiceberg/expressions/visitors.py</code></summary> |
| <div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-0-258">258</a></span> |
| <span class="normal"><a href="#__codelineno-0-259">259</a></span> |
| <span class="normal"><a href="#__codelineno-0-260">260</a></span></pre></div></td><td class="code"><div><pre><span></span><code><a id="__codelineno-0-258" name="__codelineno-0-258"></a><span class="nd">@abstractmethod</span> |
| <a id="__codelineno-0-259" name="__codelineno-0-259"></a><span class="k">def</span><span class="w"> </span><span class="nf">visit_in</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">term</span><span class="p">:</span> <span class="n">BoundTerm</span><span class="p">[</span><span class="n">L</span><span class="p">],</span> <span class="n">literals</span><span class="p">:</span> <span class="n">Set</span><span class="p">[</span><span class="n">L</span><span class="p">])</span> <span class="o">-></span> <span class="n">T</span><span class="p">:</span> |
| <a id="__codelineno-0-260" name="__codelineno-0-260"></a><span class="w"> </span><span class="sd">"""Visit a bound In predicate."""</span> |
| </code></pre></div></td></tr></table></div> |
| </details> |
| </div> |
| |
| </div> |
| |
| <div class="doc doc-object doc-function"> |
| |
| |
| <h3 id="pyiceberg.expressions.visitors.BoundBooleanExpressionVisitor.visit_is_nan" class="doc doc-heading"> |
| <code class="highlight language-python"><span class="n">visit_is_nan</span><span class="p">(</span><span class="n">term</span><span class="p">)</span></code> |
| |
| <span class="doc doc-labels"> |
| <small class="doc doc-label doc-label-abstractmethod"><code>abstractmethod</code></small> |
| </span> |
| |
| <a href="#pyiceberg.expressions.visitors.BoundBooleanExpressionVisitor.visit_is_nan" class="headerlink" title="Permanent link">¶</a></h3> |
| |
| |
| <div class="doc doc-contents "> |
| |
| <p>Visit a bound IsNan predicate.</p> |
| |
| |
| <details class="quote"> |
| <summary>Source code in <code>pyiceberg/expressions/visitors.py</code></summary> |
| <div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-0-266">266</a></span> |
| <span class="normal"><a href="#__codelineno-0-267">267</a></span> |
| <span class="normal"><a href="#__codelineno-0-268">268</a></span></pre></div></td><td class="code"><div><pre><span></span><code><a id="__codelineno-0-266" name="__codelineno-0-266"></a><span class="nd">@abstractmethod</span> |
| <a id="__codelineno-0-267" name="__codelineno-0-267"></a><span class="k">def</span><span class="w"> </span><span class="nf">visit_is_nan</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">term</span><span class="p">:</span> <span class="n">BoundTerm</span><span class="p">[</span><span class="n">L</span><span class="p">])</span> <span class="o">-></span> <span class="n">T</span><span class="p">:</span> |
| <a id="__codelineno-0-268" name="__codelineno-0-268"></a><span class="w"> </span><span class="sd">"""Visit a bound IsNan predicate."""</span> |
| </code></pre></div></td></tr></table></div> |
| </details> |
| </div> |
| |
| </div> |
| |
| <div class="doc doc-object doc-function"> |
| |
| |
| <h3 id="pyiceberg.expressions.visitors.BoundBooleanExpressionVisitor.visit_is_null" class="doc doc-heading"> |
| <code class="highlight language-python"><span class="n">visit_is_null</span><span class="p">(</span><span class="n">term</span><span class="p">)</span></code> |
| |
| <span class="doc doc-labels"> |
| <small class="doc doc-label doc-label-abstractmethod"><code>abstractmethod</code></small> |
| </span> |
| |
| <a href="#pyiceberg.expressions.visitors.BoundBooleanExpressionVisitor.visit_is_null" class="headerlink" title="Permanent link">¶</a></h3> |
| |
| |
| <div class="doc doc-contents "> |
| |
| <p>Visit a bound IsNull predicate.</p> |
| |
| |
| <details class="quote"> |
| <summary>Source code in <code>pyiceberg/expressions/visitors.py</code></summary> |
| <div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-0-274">274</a></span> |
| <span class="normal"><a href="#__codelineno-0-275">275</a></span> |
| <span class="normal"><a href="#__codelineno-0-276">276</a></span></pre></div></td><td class="code"><div><pre><span></span><code><a id="__codelineno-0-274" name="__codelineno-0-274"></a><span class="nd">@abstractmethod</span> |
| <a id="__codelineno-0-275" name="__codelineno-0-275"></a><span class="k">def</span><span class="w"> </span><span class="nf">visit_is_null</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">term</span><span class="p">:</span> <span class="n">BoundTerm</span><span class="p">[</span><span class="n">L</span><span class="p">])</span> <span class="o">-></span> <span class="n">T</span><span class="p">:</span> |
| <a id="__codelineno-0-276" name="__codelineno-0-276"></a><span class="w"> </span><span class="sd">"""Visit a bound IsNull predicate."""</span> |
| </code></pre></div></td></tr></table></div> |
| </details> |
| </div> |
| |
| </div> |
| |
| <div class="doc doc-object doc-function"> |
| |
| |
| <h3 id="pyiceberg.expressions.visitors.BoundBooleanExpressionVisitor.visit_less_than" class="doc doc-heading"> |
| <code class="highlight language-python"><span class="n">visit_less_than</span><span class="p">(</span><span class="n">term</span><span class="p">,</span> <span class="n">literal</span><span class="p">)</span></code> |
| |
| <span class="doc doc-labels"> |
| <small class="doc doc-label doc-label-abstractmethod"><code>abstractmethod</code></small> |
| </span> |
| |
| <a href="#pyiceberg.expressions.visitors.BoundBooleanExpressionVisitor.visit_less_than" class="headerlink" title="Permanent link">¶</a></h3> |
| |
| |
| <div class="doc doc-contents "> |
| |
| <p>Visit a bound LessThan predicate.</p> |
| |
| |
| <details class="quote"> |
| <summary>Source code in <code>pyiceberg/expressions/visitors.py</code></summary> |
| <div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-0-298">298</a></span> |
| <span class="normal"><a href="#__codelineno-0-299">299</a></span> |
| <span class="normal"><a href="#__codelineno-0-300">300</a></span></pre></div></td><td class="code"><div><pre><span></span><code><a id="__codelineno-0-298" name="__codelineno-0-298"></a><span class="nd">@abstractmethod</span> |
| <a id="__codelineno-0-299" name="__codelineno-0-299"></a><span class="k">def</span><span class="w"> </span><span class="nf">visit_less_than</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">term</span><span class="p">:</span> <span class="n">BoundTerm</span><span class="p">[</span><span class="n">L</span><span class="p">],</span> <span class="n">literal</span><span class="p">:</span> <span class="n">Literal</span><span class="p">[</span><span class="n">L</span><span class="p">])</span> <span class="o">-></span> <span class="n">T</span><span class="p">:</span> |
| <a id="__codelineno-0-300" name="__codelineno-0-300"></a><span class="w"> </span><span class="sd">"""Visit a bound LessThan predicate."""</span> |
| </code></pre></div></td></tr></table></div> |
| </details> |
| </div> |
| |
| </div> |
| |
| <div class="doc doc-object doc-function"> |
| |
| |
| <h3 id="pyiceberg.expressions.visitors.BoundBooleanExpressionVisitor.visit_less_than_or_equal" class="doc doc-heading"> |
| <code class="highlight language-python"><span class="n">visit_less_than_or_equal</span><span class="p">(</span><span class="n">term</span><span class="p">,</span> <span class="n">literal</span><span class="p">)</span></code> |
| |
| <span class="doc doc-labels"> |
| <small class="doc doc-label doc-label-abstractmethod"><code>abstractmethod</code></small> |
| </span> |
| |
| <a href="#pyiceberg.expressions.visitors.BoundBooleanExpressionVisitor.visit_less_than_or_equal" class="headerlink" title="Permanent link">¶</a></h3> |
| |
| |
| <div class="doc doc-contents "> |
| |
| <p>Visit a bound LessThanOrEqual predicate.</p> |
| |
| |
| <details class="quote"> |
| <summary>Source code in <code>pyiceberg/expressions/visitors.py</code></summary> |
| <div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-0-302">302</a></span> |
| <span class="normal"><a href="#__codelineno-0-303">303</a></span> |
| <span class="normal"><a href="#__codelineno-0-304">304</a></span></pre></div></td><td class="code"><div><pre><span></span><code><a id="__codelineno-0-302" name="__codelineno-0-302"></a><span class="nd">@abstractmethod</span> |
| <a id="__codelineno-0-303" name="__codelineno-0-303"></a><span class="k">def</span><span class="w"> </span><span class="nf">visit_less_than_or_equal</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">term</span><span class="p">:</span> <span class="n">BoundTerm</span><span class="p">[</span><span class="n">L</span><span class="p">],</span> <span class="n">literal</span><span class="p">:</span> <span class="n">Literal</span><span class="p">[</span><span class="n">L</span><span class="p">])</span> <span class="o">-></span> <span class="n">T</span><span class="p">:</span> |
| <a id="__codelineno-0-304" name="__codelineno-0-304"></a><span class="w"> </span><span class="sd">"""Visit a bound LessThanOrEqual predicate."""</span> |
| </code></pre></div></td></tr></table></div> |
| </details> |
| </div> |
| |
| </div> |
| |
| <div class="doc doc-object doc-function"> |
| |
| |
| <h3 id="pyiceberg.expressions.visitors.BoundBooleanExpressionVisitor.visit_not" class="doc doc-heading"> |
| <code class="highlight language-python"><span class="n">visit_not</span><span class="p">(</span><span class="n">child_result</span><span class="p">)</span></code> |
| |
| <span class="doc doc-labels"> |
| <small class="doc doc-label doc-label-abstractmethod"><code>abstractmethod</code></small> |
| </span> |
| |
| <a href="#pyiceberg.expressions.visitors.BoundBooleanExpressionVisitor.visit_not" class="headerlink" title="Permanent link">¶</a></h3> |
| |
| |
| <div class="doc doc-contents "> |
| |
| <p>Visit a bound Not predicate.</p> |
| |
| |
| <details class="quote"> |
| <summary>Source code in <code>pyiceberg/expressions/visitors.py</code></summary> |
| <div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-0-314">314</a></span> |
| <span class="normal"><a href="#__codelineno-0-315">315</a></span> |
| <span class="normal"><a href="#__codelineno-0-316">316</a></span></pre></div></td><td class="code"><div><pre><span></span><code><a id="__codelineno-0-314" name="__codelineno-0-314"></a><span class="nd">@abstractmethod</span> |
| <a id="__codelineno-0-315" name="__codelineno-0-315"></a><span class="k">def</span><span class="w"> </span><span class="nf">visit_not</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">child_result</span><span class="p">:</span> <span class="n">T</span><span class="p">)</span> <span class="o">-></span> <span class="n">T</span><span class="p">:</span> |
| <a id="__codelineno-0-316" name="__codelineno-0-316"></a><span class="w"> </span><span class="sd">"""Visit a bound Not predicate."""</span> |
| </code></pre></div></td></tr></table></div> |
| </details> |
| </div> |
| |
| </div> |
| |
| <div class="doc doc-object doc-function"> |
| |
| |
| <h3 id="pyiceberg.expressions.visitors.BoundBooleanExpressionVisitor.visit_not_equal" class="doc doc-heading"> |
| <code class="highlight language-python"><span class="n">visit_not_equal</span><span class="p">(</span><span class="n">term</span><span class="p">,</span> <span class="n">literal</span><span class="p">)</span></code> |
| |
| <span class="doc doc-labels"> |
| <small class="doc doc-label doc-label-abstractmethod"><code>abstractmethod</code></small> |
| </span> |
| |
| <a href="#pyiceberg.expressions.visitors.BoundBooleanExpressionVisitor.visit_not_equal" class="headerlink" title="Permanent link">¶</a></h3> |
| |
| |
| <div class="doc doc-contents "> |
| |
| <p>Visit a bound NotEqual predicate.</p> |
| |
| |
| <details class="quote"> |
| <summary>Source code in <code>pyiceberg/expressions/visitors.py</code></summary> |
| <div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-0-286">286</a></span> |
| <span class="normal"><a href="#__codelineno-0-287">287</a></span> |
| <span class="normal"><a href="#__codelineno-0-288">288</a></span></pre></div></td><td class="code"><div><pre><span></span><code><a id="__codelineno-0-286" name="__codelineno-0-286"></a><span class="nd">@abstractmethod</span> |
| <a id="__codelineno-0-287" name="__codelineno-0-287"></a><span class="k">def</span><span class="w"> </span><span class="nf">visit_not_equal</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">term</span><span class="p">:</span> <span class="n">BoundTerm</span><span class="p">[</span><span class="n">L</span><span class="p">],</span> <span class="n">literal</span><span class="p">:</span> <span class="n">Literal</span><span class="p">[</span><span class="n">L</span><span class="p">])</span> <span class="o">-></span> <span class="n">T</span><span class="p">:</span> |
| <a id="__codelineno-0-288" name="__codelineno-0-288"></a><span class="w"> </span><span class="sd">"""Visit a bound NotEqual predicate."""</span> |
| </code></pre></div></td></tr></table></div> |
| </details> |
| </div> |
| |
| </div> |
| |
| <div class="doc doc-object doc-function"> |
| |
| |
| <h3 id="pyiceberg.expressions.visitors.BoundBooleanExpressionVisitor.visit_not_in" class="doc doc-heading"> |
| <code class="highlight language-python"><span class="n">visit_not_in</span><span class="p">(</span><span class="n">term</span><span class="p">,</span> <span class="n">literals</span><span class="p">)</span></code> |
| |
| <span class="doc doc-labels"> |
| <small class="doc doc-label doc-label-abstractmethod"><code>abstractmethod</code></small> |
| </span> |
| |
| <a href="#pyiceberg.expressions.visitors.BoundBooleanExpressionVisitor.visit_not_in" class="headerlink" title="Permanent link">¶</a></h3> |
| |
| |
| <div class="doc doc-contents "> |
| |
| <p>Visit a bound NotIn predicate.</p> |
| |
| |
| <details class="quote"> |
| <summary>Source code in <code>pyiceberg/expressions/visitors.py</code></summary> |
| <div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-0-262">262</a></span> |
| <span class="normal"><a href="#__codelineno-0-263">263</a></span> |
| <span class="normal"><a href="#__codelineno-0-264">264</a></span></pre></div></td><td class="code"><div><pre><span></span><code><a id="__codelineno-0-262" name="__codelineno-0-262"></a><span class="nd">@abstractmethod</span> |
| <a id="__codelineno-0-263" name="__codelineno-0-263"></a><span class="k">def</span><span class="w"> </span><span class="nf">visit_not_in</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">term</span><span class="p">:</span> <span class="n">BoundTerm</span><span class="p">[</span><span class="n">L</span><span class="p">],</span> <span class="n">literals</span><span class="p">:</span> <span class="n">Set</span><span class="p">[</span><span class="n">L</span><span class="p">])</span> <span class="o">-></span> <span class="n">T</span><span class="p">:</span> |
| <a id="__codelineno-0-264" name="__codelineno-0-264"></a><span class="w"> </span><span class="sd">"""Visit a bound NotIn predicate."""</span> |
| </code></pre></div></td></tr></table></div> |
| </details> |
| </div> |
| |
| </div> |
| |
| <div class="doc doc-object doc-function"> |
| |
| |
| <h3 id="pyiceberg.expressions.visitors.BoundBooleanExpressionVisitor.visit_not_nan" class="doc doc-heading"> |
| <code class="highlight language-python"><span class="n">visit_not_nan</span><span class="p">(</span><span class="n">term</span><span class="p">)</span></code> |
| |
| <span class="doc doc-labels"> |
| <small class="doc doc-label doc-label-abstractmethod"><code>abstractmethod</code></small> |
| </span> |
| |
| <a href="#pyiceberg.expressions.visitors.BoundBooleanExpressionVisitor.visit_not_nan" class="headerlink" title="Permanent link">¶</a></h3> |
| |
| |
| <div class="doc doc-contents "> |
| |
| <p>Visit a bound NotNan predicate.</p> |
| |
| |
| <details class="quote"> |
| <summary>Source code in <code>pyiceberg/expressions/visitors.py</code></summary> |
| <div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-0-270">270</a></span> |
| <span class="normal"><a href="#__codelineno-0-271">271</a></span> |
| <span class="normal"><a href="#__codelineno-0-272">272</a></span></pre></div></td><td class="code"><div><pre><span></span><code><a id="__codelineno-0-270" name="__codelineno-0-270"></a><span class="nd">@abstractmethod</span> |
| <a id="__codelineno-0-271" name="__codelineno-0-271"></a><span class="k">def</span><span class="w"> </span><span class="nf">visit_not_nan</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">term</span><span class="p">:</span> <span class="n">BoundTerm</span><span class="p">[</span><span class="n">L</span><span class="p">])</span> <span class="o">-></span> <span class="n">T</span><span class="p">:</span> |
| <a id="__codelineno-0-272" name="__codelineno-0-272"></a><span class="w"> </span><span class="sd">"""Visit a bound NotNan predicate."""</span> |
| </code></pre></div></td></tr></table></div> |
| </details> |
| </div> |
| |
| </div> |
| |
| <div class="doc doc-object doc-function"> |
| |
| |
| <h3 id="pyiceberg.expressions.visitors.BoundBooleanExpressionVisitor.visit_not_null" class="doc doc-heading"> |
| <code class="highlight language-python"><span class="n">visit_not_null</span><span class="p">(</span><span class="n">term</span><span class="p">)</span></code> |
| |
| <span class="doc doc-labels"> |
| <small class="doc doc-label doc-label-abstractmethod"><code>abstractmethod</code></small> |
| </span> |
| |
| <a href="#pyiceberg.expressions.visitors.BoundBooleanExpressionVisitor.visit_not_null" class="headerlink" title="Permanent link">¶</a></h3> |
| |
| |
| <div class="doc doc-contents "> |
| |
| <p>Visit a bound NotNull predicate.</p> |
| |
| |
| <details class="quote"> |
| <summary>Source code in <code>pyiceberg/expressions/visitors.py</code></summary> |
| <div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-0-278">278</a></span> |
| <span class="normal"><a href="#__codelineno-0-279">279</a></span> |
| <span class="normal"><a href="#__codelineno-0-280">280</a></span></pre></div></td><td class="code"><div><pre><span></span><code><a id="__codelineno-0-278" name="__codelineno-0-278"></a><span class="nd">@abstractmethod</span> |
| <a id="__codelineno-0-279" name="__codelineno-0-279"></a><span class="k">def</span><span class="w"> </span><span class="nf">visit_not_null</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">term</span><span class="p">:</span> <span class="n">BoundTerm</span><span class="p">[</span><span class="n">L</span><span class="p">])</span> <span class="o">-></span> <span class="n">T</span><span class="p">:</span> |
| <a id="__codelineno-0-280" name="__codelineno-0-280"></a><span class="w"> </span><span class="sd">"""Visit a bound NotNull predicate."""</span> |
| </code></pre></div></td></tr></table></div> |
| </details> |
| </div> |
| |
| </div> |
| |
| <div class="doc doc-object doc-function"> |
| |
| |
| <h3 id="pyiceberg.expressions.visitors.BoundBooleanExpressionVisitor.visit_not_starts_with" class="doc doc-heading"> |
| <code class="highlight language-python"><span class="n">visit_not_starts_with</span><span class="p">(</span><span class="n">term</span><span class="p">,</span> <span class="n">literal</span><span class="p">)</span></code> |
| |
| <span class="doc doc-labels"> |
| <small class="doc doc-label doc-label-abstractmethod"><code>abstractmethod</code></small> |
| </span> |
| |
| <a href="#pyiceberg.expressions.visitors.BoundBooleanExpressionVisitor.visit_not_starts_with" class="headerlink" title="Permanent link">¶</a></h3> |
| |
| |
| <div class="doc doc-contents "> |
| |
| <p>Visit bound NotStartsWith predicate.</p> |
| |
| |
| <details class="quote"> |
| <summary>Source code in <code>pyiceberg/expressions/visitors.py</code></summary> |
| <div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-0-330">330</a></span> |
| <span class="normal"><a href="#__codelineno-0-331">331</a></span> |
| <span class="normal"><a href="#__codelineno-0-332">332</a></span></pre></div></td><td class="code"><div><pre><span></span><code><a id="__codelineno-0-330" name="__codelineno-0-330"></a><span class="nd">@abstractmethod</span> |
| <a id="__codelineno-0-331" name="__codelineno-0-331"></a><span class="k">def</span><span class="w"> </span><span class="nf">visit_not_starts_with</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">term</span><span class="p">:</span> <span class="n">BoundTerm</span><span class="p">[</span><span class="n">L</span><span class="p">],</span> <span class="n">literal</span><span class="p">:</span> <span class="n">Literal</span><span class="p">[</span><span class="n">L</span><span class="p">])</span> <span class="o">-></span> <span class="n">T</span><span class="p">:</span> |
| <a id="__codelineno-0-332" name="__codelineno-0-332"></a><span class="w"> </span><span class="sd">"""Visit bound NotStartsWith predicate."""</span> |
| </code></pre></div></td></tr></table></div> |
| </details> |
| </div> |
| |
| </div> |
| |
| <div class="doc doc-object doc-function"> |
| |
| |
| <h3 id="pyiceberg.expressions.visitors.BoundBooleanExpressionVisitor.visit_or" class="doc doc-heading"> |
| <code class="highlight language-python"><span class="n">visit_or</span><span class="p">(</span><span class="n">left_result</span><span class="p">,</span> <span class="n">right_result</span><span class="p">)</span></code> |
| |
| <span class="doc doc-labels"> |
| <small class="doc doc-label doc-label-abstractmethod"><code>abstractmethod</code></small> |
| </span> |
| |
| <a href="#pyiceberg.expressions.visitors.BoundBooleanExpressionVisitor.visit_or" class="headerlink" title="Permanent link">¶</a></h3> |
| |
| |
| <div class="doc doc-contents "> |
| |
| <p>Visit a bound Or predicate.</p> |
| |
| |
| <details class="quote"> |
| <summary>Source code in <code>pyiceberg/expressions/visitors.py</code></summary> |
| <div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-0-322">322</a></span> |
| <span class="normal"><a href="#__codelineno-0-323">323</a></span> |
| <span class="normal"><a href="#__codelineno-0-324">324</a></span></pre></div></td><td class="code"><div><pre><span></span><code><a id="__codelineno-0-322" name="__codelineno-0-322"></a><span class="nd">@abstractmethod</span> |
| <a id="__codelineno-0-323" name="__codelineno-0-323"></a><span class="k">def</span><span class="w"> </span><span class="nf">visit_or</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">left_result</span><span class="p">:</span> <span class="n">T</span><span class="p">,</span> <span class="n">right_result</span><span class="p">:</span> <span class="n">T</span><span class="p">)</span> <span class="o">-></span> <span class="n">T</span><span class="p">:</span> |
| <a id="__codelineno-0-324" name="__codelineno-0-324"></a><span class="w"> </span><span class="sd">"""Visit a bound Or predicate."""</span> |
| </code></pre></div></td></tr></table></div> |
| </details> |
| </div> |
| |
| </div> |
| |
| <div class="doc doc-object doc-function"> |
| |
| |
| <h3 id="pyiceberg.expressions.visitors.BoundBooleanExpressionVisitor.visit_starts_with" class="doc doc-heading"> |
| <code class="highlight language-python"><span class="n">visit_starts_with</span><span class="p">(</span><span class="n">term</span><span class="p">,</span> <span class="n">literal</span><span class="p">)</span></code> |
| |
| <span class="doc doc-labels"> |
| <small class="doc doc-label doc-label-abstractmethod"><code>abstractmethod</code></small> |
| </span> |
| |
| <a href="#pyiceberg.expressions.visitors.BoundBooleanExpressionVisitor.visit_starts_with" class="headerlink" title="Permanent link">¶</a></h3> |
| |
| |
| <div class="doc doc-contents "> |
| |
| <p>Visit bound StartsWith predicate.</p> |
| |
| |
| <details class="quote"> |
| <summary>Source code in <code>pyiceberg/expressions/visitors.py</code></summary> |
| <div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-0-326">326</a></span> |
| <span class="normal"><a href="#__codelineno-0-327">327</a></span> |
| <span class="normal"><a href="#__codelineno-0-328">328</a></span></pre></div></td><td class="code"><div><pre><span></span><code><a id="__codelineno-0-326" name="__codelineno-0-326"></a><span class="nd">@abstractmethod</span> |
| <a id="__codelineno-0-327" name="__codelineno-0-327"></a><span class="k">def</span><span class="w"> </span><span class="nf">visit_starts_with</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">term</span><span class="p">:</span> <span class="n">BoundTerm</span><span class="p">[</span><span class="n">L</span><span class="p">],</span> <span class="n">literal</span><span class="p">:</span> <span class="n">Literal</span><span class="p">[</span><span class="n">L</span><span class="p">])</span> <span class="o">-></span> <span class="n">T</span><span class="p">:</span> |
| <a id="__codelineno-0-328" name="__codelineno-0-328"></a><span class="w"> </span><span class="sd">"""Visit bound StartsWith predicate."""</span> |
| </code></pre></div></td></tr></table></div> |
| </details> |
| </div> |
| |
| </div> |
| |
| <div class="doc doc-object doc-function"> |
| |
| |
| <h3 id="pyiceberg.expressions.visitors.BoundBooleanExpressionVisitor.visit_true" class="doc doc-heading"> |
| <code class="highlight language-python"><span class="n">visit_true</span><span class="p">()</span></code> |
| |
| <span class="doc doc-labels"> |
| <small class="doc doc-label doc-label-abstractmethod"><code>abstractmethod</code></small> |
| </span> |
| |
| <a href="#pyiceberg.expressions.visitors.BoundBooleanExpressionVisitor.visit_true" class="headerlink" title="Permanent link">¶</a></h3> |
| |
| |
| <div class="doc doc-contents "> |
| |
| <p>Visit a bound True predicate.</p> |
| |
| |
| <details class="quote"> |
| <summary>Source code in <code>pyiceberg/expressions/visitors.py</code></summary> |
| <div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-0-306">306</a></span> |
| <span class="normal"><a href="#__codelineno-0-307">307</a></span> |
| <span class="normal"><a href="#__codelineno-0-308">308</a></span></pre></div></td><td class="code"><div><pre><span></span><code><a id="__codelineno-0-306" name="__codelineno-0-306"></a><span class="nd">@abstractmethod</span> |
| <a id="__codelineno-0-307" name="__codelineno-0-307"></a><span class="k">def</span><span class="w"> </span><span class="nf">visit_true</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="n">T</span><span class="p">:</span> |
| <a id="__codelineno-0-308" name="__codelineno-0-308"></a><span class="w"> </span><span class="sd">"""Visit a bound True predicate."""</span> |
| </code></pre></div></td></tr></table></div> |
| </details> |
| </div> |
| |
| </div> |
| |
| <div class="doc doc-object doc-function"> |
| |
| |
| <h3 id="pyiceberg.expressions.visitors.BoundBooleanExpressionVisitor.visit_unbound_predicate" class="doc doc-heading"> |
| <code class="highlight language-python"><span class="n">visit_unbound_predicate</span><span class="p">(</span><span class="n">predicate</span><span class="p">)</span></code> |
| |
| <a href="#pyiceberg.expressions.visitors.BoundBooleanExpressionVisitor.visit_unbound_predicate" class="headerlink" title="Permanent link">¶</a></h3> |
| |
| |
| <div class="doc doc-contents "> |
| |
| <p>Visit an unbound predicate.</p> |
| |
| |
| <p><span class="doc-section-title">Parameters:</span></p> |
| <table> |
| <thead> |
| <tr> |
| <th>Name</th> |
| <th>Type</th> |
| <th>Description</th> |
| <th>Default</th> |
| </tr> |
| </thead> |
| <tbody> |
| <tr class="doc-section-item"> |
| <td> |
| <code>predicate</code> |
| </td> |
| <td> |
| <code><a class="autorefs autorefs-internal" title="UnboundPredicate (pyiceberg.expressions.UnboundPredicate)" href="../#pyiceberg.expressions.UnboundPredicate">UnboundPredicate</a>[<span title="pyiceberg.typedef.L">L</span>]</code> |
| </td> |
| <td> |
| <div class="doc-md-description"> |
| <p>An unbound predicate.</p> |
| </div> |
| </td> |
| <td> |
| <em>required</em> |
| </td> |
| </tr> |
| </tbody> |
| </table> |
| <p>Raises: |
| TypeError: This always raises since an unbound predicate is not expected in a bound boolean expression.</p> |
| |
| |
| <details class="quote"> |
| <summary>Source code in <code>pyiceberg/expressions/visitors.py</code></summary> |
| <div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-0-334">334</a></span> |
| <span class="normal"><a href="#__codelineno-0-335">335</a></span> |
| <span class="normal"><a href="#__codelineno-0-336">336</a></span> |
| <span class="normal"><a href="#__codelineno-0-337">337</a></span> |
| <span class="normal"><a href="#__codelineno-0-338">338</a></span> |
| <span class="normal"><a href="#__codelineno-0-339">339</a></span> |
| <span class="normal"><a href="#__codelineno-0-340">340</a></span> |
| <span class="normal"><a href="#__codelineno-0-341">341</a></span> |
| <span class="normal"><a href="#__codelineno-0-342">342</a></span></pre></div></td><td class="code"><div><pre><span></span><code><a id="__codelineno-0-334" name="__codelineno-0-334"></a><span class="k">def</span><span class="w"> </span><span class="nf">visit_unbound_predicate</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">predicate</span><span class="p">:</span> <span class="n">UnboundPredicate</span><span class="p">[</span><span class="n">L</span><span class="p">])</span> <span class="o">-></span> <span class="n">T</span><span class="p">:</span> |
| <a id="__codelineno-0-335" name="__codelineno-0-335"></a><span class="w"> </span><span class="sd">"""Visit an unbound predicate.</span> |
| <a id="__codelineno-0-336" name="__codelineno-0-336"></a> |
| <a id="__codelineno-0-337" name="__codelineno-0-337"></a><span class="sd"> Args:</span> |
| <a id="__codelineno-0-338" name="__codelineno-0-338"></a><span class="sd"> predicate (UnboundPredicate[L]): An unbound predicate.</span> |
| <a id="__codelineno-0-339" name="__codelineno-0-339"></a><span class="sd"> Raises:</span> |
| <a id="__codelineno-0-340" name="__codelineno-0-340"></a><span class="sd"> TypeError: This always raises since an unbound predicate is not expected in a bound boolean expression.</span> |
| <a id="__codelineno-0-341" name="__codelineno-0-341"></a><span class="sd"> """</span> |
| <a id="__codelineno-0-342" name="__codelineno-0-342"></a> <span class="k">raise</span> <span class="ne">TypeError</span><span class="p">(</span><span class="sa">f</span><span class="s2">"Not a bound predicate: </span><span class="si">{</span><span class="n">predicate</span><span class="si">}</span><span class="s2">"</span><span class="p">)</span> |
| </code></pre></div></td></tr></table></div> |
| </details> |
| </div> |
| |
| </div> |
| |
| |
| |
| </div> |
| |
| </div> |
| |
| </div> |
| |
| <div class="doc doc-object doc-class"> |
| |
| |
| |
| <h2 id="pyiceberg.expressions.visitors.ResidualVisitor" class="doc doc-heading"> |
| <code>ResidualVisitor</code> |
| |
| |
| <a href="#pyiceberg.expressions.visitors.ResidualVisitor" class="headerlink" title="Permanent link">¶</a></h2> |
| |
| |
| <div class="doc doc-contents "> |
| <p class="doc doc-class-bases"> |
| Bases: <code><a class="autorefs autorefs-internal" title="BoundBooleanExpressionVisitor (pyiceberg.expressions.visitors.BoundBooleanExpressionVisitor)" href="#pyiceberg.expressions.visitors.BoundBooleanExpressionVisitor">BoundBooleanExpressionVisitor</a>[<a class="autorefs autorefs-internal" title="BooleanExpression (pyiceberg.expressions.BooleanExpression)" href="../#pyiceberg.expressions.BooleanExpression">BooleanExpression</a>]</code>, <code><span title="abc.ABC">ABC</span></code></p> |
| |
| |
| <p>Finds the residuals for an Expression the partitions in the given PartitionSpec.</p> |
| <p>A residual expression is made by partially evaluating an expression using partition values. |
| For example, if a table is partitioned by day(utc_timestamp) and is read with a filter expression |
| utc_timestamp > a and utc_timestamp < b, then there are 4 possible residuals expressions |
| for the partition data, d:</p> |
| <ol> |
| <li>If d > day(a) and d < day(b), the residual is always true</li> |
| <li>If d == day(a) and d != day(b), the residual is utc_timestamp > a</li> |
| <li>if d == day(b) and d != day(a), the residual is utc_timestamp < b</li> |
| <li>If d == day(a) == day(b), the residual is utc_timestamp > a and utc_timestamp < b |
| Partition data is passed using StructLike. Residuals are returned by residualFor(StructLike).</li> |
| </ol> |
| |
| |
| |
| |
| |
| |
| |
| |
| <details class="quote"> |
| <summary>Source code in <code>pyiceberg/expressions/visitors.py</code></summary> |
| <div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-0-1761">1761</a></span> |
| <span class="normal"><a href="#__codelineno-0-1762">1762</a></span> |
| <span class="normal"><a href="#__codelineno-0-1763">1763</a></span> |
| <span class="normal"><a href="#__codelineno-0-1764">1764</a></span> |
| <span class="normal"><a href="#__codelineno-0-1765">1765</a></span> |
| <span class="normal"><a href="#__codelineno-0-1766">1766</a></span> |
| <span class="normal"><a href="#__codelineno-0-1767">1767</a></span> |
| <span class="normal"><a href="#__codelineno-0-1768">1768</a></span> |
| <span class="normal"><a href="#__codelineno-0-1769">1769</a></span> |
| <span class="normal"><a href="#__codelineno-0-1770">1770</a></span> |
| <span class="normal"><a href="#__codelineno-0-1771">1771</a></span> |
| <span class="normal"><a href="#__codelineno-0-1772">1772</a></span> |
| <span class="normal"><a href="#__codelineno-0-1773">1773</a></span> |
| <span class="normal"><a href="#__codelineno-0-1774">1774</a></span> |
| <span class="normal"><a href="#__codelineno-0-1775">1775</a></span> |
| <span class="normal"><a href="#__codelineno-0-1776">1776</a></span> |
| <span class="normal"><a href="#__codelineno-0-1777">1777</a></span> |
| <span class="normal"><a href="#__codelineno-0-1778">1778</a></span> |
| <span class="normal"><a href="#__codelineno-0-1779">1779</a></span> |
| <span class="normal"><a href="#__codelineno-0-1780">1780</a></span> |
| <span class="normal"><a href="#__codelineno-0-1781">1781</a></span> |
| <span class="normal"><a href="#__codelineno-0-1782">1782</a></span> |
| <span class="normal"><a href="#__codelineno-0-1783">1783</a></span> |
| <span class="normal"><a href="#__codelineno-0-1784">1784</a></span> |
| <span class="normal"><a href="#__codelineno-0-1785">1785</a></span> |
| <span class="normal"><a href="#__codelineno-0-1786">1786</a></span> |
| <span class="normal"><a href="#__codelineno-0-1787">1787</a></span> |
| <span class="normal"><a href="#__codelineno-0-1788">1788</a></span> |
| <span class="normal"><a href="#__codelineno-0-1789">1789</a></span> |
| <span class="normal"><a href="#__codelineno-0-1790">1790</a></span> |
| <span class="normal"><a href="#__codelineno-0-1791">1791</a></span> |
| <span class="normal"><a href="#__codelineno-0-1792">1792</a></span> |
| <span class="normal"><a href="#__codelineno-0-1793">1793</a></span> |
| <span class="normal"><a href="#__codelineno-0-1794">1794</a></span> |
| <span class="normal"><a href="#__codelineno-0-1795">1795</a></span> |
| <span class="normal"><a href="#__codelineno-0-1796">1796</a></span> |
| <span class="normal"><a href="#__codelineno-0-1797">1797</a></span> |
| <span class="normal"><a href="#__codelineno-0-1798">1798</a></span> |
| <span class="normal"><a href="#__codelineno-0-1799">1799</a></span> |
| <span class="normal"><a href="#__codelineno-0-1800">1800</a></span> |
| <span class="normal"><a href="#__codelineno-0-1801">1801</a></span> |
| <span class="normal"><a href="#__codelineno-0-1802">1802</a></span> |
| <span class="normal"><a href="#__codelineno-0-1803">1803</a></span> |
| <span class="normal"><a href="#__codelineno-0-1804">1804</a></span> |
| <span class="normal"><a href="#__codelineno-0-1805">1805</a></span> |
| <span class="normal"><a href="#__codelineno-0-1806">1806</a></span> |
| <span class="normal"><a href="#__codelineno-0-1807">1807</a></span> |
| <span class="normal"><a href="#__codelineno-0-1808">1808</a></span> |
| <span class="normal"><a href="#__codelineno-0-1809">1809</a></span> |
| <span class="normal"><a href="#__codelineno-0-1810">1810</a></span> |
| <span class="normal"><a href="#__codelineno-0-1811">1811</a></span> |
| <span class="normal"><a href="#__codelineno-0-1812">1812</a></span> |
| <span class="normal"><a href="#__codelineno-0-1813">1813</a></span> |
| <span class="normal"><a href="#__codelineno-0-1814">1814</a></span> |
| <span class="normal"><a href="#__codelineno-0-1815">1815</a></span> |
| <span class="normal"><a href="#__codelineno-0-1816">1816</a></span> |
| <span class="normal"><a href="#__codelineno-0-1817">1817</a></span> |
| <span class="normal"><a href="#__codelineno-0-1818">1818</a></span> |
| <span class="normal"><a href="#__codelineno-0-1819">1819</a></span> |
| <span class="normal"><a href="#__codelineno-0-1820">1820</a></span> |
| <span class="normal"><a href="#__codelineno-0-1821">1821</a></span> |
| <span class="normal"><a href="#__codelineno-0-1822">1822</a></span> |
| <span class="normal"><a href="#__codelineno-0-1823">1823</a></span> |
| <span class="normal"><a href="#__codelineno-0-1824">1824</a></span> |
| <span class="normal"><a href="#__codelineno-0-1825">1825</a></span> |
| <span class="normal"><a href="#__codelineno-0-1826">1826</a></span> |
| <span class="normal"><a href="#__codelineno-0-1827">1827</a></span> |
| <span class="normal"><a href="#__codelineno-0-1828">1828</a></span> |
| <span class="normal"><a href="#__codelineno-0-1829">1829</a></span> |
| <span class="normal"><a href="#__codelineno-0-1830">1830</a></span> |
| <span class="normal"><a href="#__codelineno-0-1831">1831</a></span> |
| <span class="normal"><a href="#__codelineno-0-1832">1832</a></span> |
| <span class="normal"><a href="#__codelineno-0-1833">1833</a></span> |
| <span class="normal"><a href="#__codelineno-0-1834">1834</a></span> |
| <span class="normal"><a href="#__codelineno-0-1835">1835</a></span> |
| <span class="normal"><a href="#__codelineno-0-1836">1836</a></span> |
| <span class="normal"><a href="#__codelineno-0-1837">1837</a></span> |
| <span class="normal"><a href="#__codelineno-0-1838">1838</a></span> |
| <span class="normal"><a href="#__codelineno-0-1839">1839</a></span> |
| <span class="normal"><a href="#__codelineno-0-1840">1840</a></span> |
| <span class="normal"><a href="#__codelineno-0-1841">1841</a></span> |
| <span class="normal"><a href="#__codelineno-0-1842">1842</a></span> |
| <span class="normal"><a href="#__codelineno-0-1843">1843</a></span> |
| <span class="normal"><a href="#__codelineno-0-1844">1844</a></span> |
| <span class="normal"><a href="#__codelineno-0-1845">1845</a></span> |
| <span class="normal"><a href="#__codelineno-0-1846">1846</a></span> |
| <span class="normal"><a href="#__codelineno-0-1847">1847</a></span> |
| <span class="normal"><a href="#__codelineno-0-1848">1848</a></span> |
| <span class="normal"><a href="#__codelineno-0-1849">1849</a></span> |
| <span class="normal"><a href="#__codelineno-0-1850">1850</a></span> |
| <span class="normal"><a href="#__codelineno-0-1851">1851</a></span> |
| <span class="normal"><a href="#__codelineno-0-1852">1852</a></span> |
| <span class="normal"><a href="#__codelineno-0-1853">1853</a></span> |
| <span class="normal"><a href="#__codelineno-0-1854">1854</a></span> |
| <span class="normal"><a href="#__codelineno-0-1855">1855</a></span> |
| <span class="normal"><a href="#__codelineno-0-1856">1856</a></span> |
| <span class="normal"><a href="#__codelineno-0-1857">1857</a></span> |
| <span class="normal"><a href="#__codelineno-0-1858">1858</a></span> |
| <span class="normal"><a href="#__codelineno-0-1859">1859</a></span> |
| <span class="normal"><a href="#__codelineno-0-1860">1860</a></span> |
| <span class="normal"><a href="#__codelineno-0-1861">1861</a></span> |
| <span class="normal"><a href="#__codelineno-0-1862">1862</a></span> |
| <span class="normal"><a href="#__codelineno-0-1863">1863</a></span> |
| <span class="normal"><a href="#__codelineno-0-1864">1864</a></span> |
| <span class="normal"><a href="#__codelineno-0-1865">1865</a></span> |
| <span class="normal"><a href="#__codelineno-0-1866">1866</a></span> |
| <span class="normal"><a href="#__codelineno-0-1867">1867</a></span> |
| <span class="normal"><a href="#__codelineno-0-1868">1868</a></span> |
| <span class="normal"><a href="#__codelineno-0-1869">1869</a></span> |
| <span class="normal"><a href="#__codelineno-0-1870">1870</a></span> |
| <span class="normal"><a href="#__codelineno-0-1871">1871</a></span> |
| <span class="normal"><a href="#__codelineno-0-1872">1872</a></span> |
| <span class="normal"><a href="#__codelineno-0-1873">1873</a></span> |
| <span class="normal"><a href="#__codelineno-0-1874">1874</a></span> |
| <span class="normal"><a href="#__codelineno-0-1875">1875</a></span> |
| <span class="normal"><a href="#__codelineno-0-1876">1876</a></span> |
| <span class="normal"><a href="#__codelineno-0-1877">1877</a></span> |
| <span class="normal"><a href="#__codelineno-0-1878">1878</a></span> |
| <span class="normal"><a href="#__codelineno-0-1879">1879</a></span> |
| <span class="normal"><a href="#__codelineno-0-1880">1880</a></span> |
| <span class="normal"><a href="#__codelineno-0-1881">1881</a></span> |
| <span class="normal"><a href="#__codelineno-0-1882">1882</a></span> |
| <span class="normal"><a href="#__codelineno-0-1883">1883</a></span> |
| <span class="normal"><a href="#__codelineno-0-1884">1884</a></span> |
| <span class="normal"><a href="#__codelineno-0-1885">1885</a></span> |
| <span class="normal"><a href="#__codelineno-0-1886">1886</a></span> |
| <span class="normal"><a href="#__codelineno-0-1887">1887</a></span> |
| <span class="normal"><a href="#__codelineno-0-1888">1888</a></span> |
| <span class="normal"><a href="#__codelineno-0-1889">1889</a></span> |
| <span class="normal"><a href="#__codelineno-0-1890">1890</a></span> |
| <span class="normal"><a href="#__codelineno-0-1891">1891</a></span> |
| <span class="normal"><a href="#__codelineno-0-1892">1892</a></span> |
| <span class="normal"><a href="#__codelineno-0-1893">1893</a></span> |
| <span class="normal"><a href="#__codelineno-0-1894">1894</a></span> |
| <span class="normal"><a href="#__codelineno-0-1895">1895</a></span> |
| <span class="normal"><a href="#__codelineno-0-1896">1896</a></span> |
| <span class="normal"><a href="#__codelineno-0-1897">1897</a></span> |
| <span class="normal"><a href="#__codelineno-0-1898">1898</a></span> |
| <span class="normal"><a href="#__codelineno-0-1899">1899</a></span> |
| <span class="normal"><a href="#__codelineno-0-1900">1900</a></span> |
| <span class="normal"><a href="#__codelineno-0-1901">1901</a></span> |
| <span class="normal"><a href="#__codelineno-0-1902">1902</a></span> |
| <span class="normal"><a href="#__codelineno-0-1903">1903</a></span> |
| <span class="normal"><a href="#__codelineno-0-1904">1904</a></span> |
| <span class="normal"><a href="#__codelineno-0-1905">1905</a></span> |
| <span class="normal"><a href="#__codelineno-0-1906">1906</a></span> |
| <span class="normal"><a href="#__codelineno-0-1907">1907</a></span> |
| <span class="normal"><a href="#__codelineno-0-1908">1908</a></span> |
| <span class="normal"><a href="#__codelineno-0-1909">1909</a></span> |
| <span class="normal"><a href="#__codelineno-0-1910">1910</a></span> |
| <span class="normal"><a href="#__codelineno-0-1911">1911</a></span> |
| <span class="normal"><a href="#__codelineno-0-1912">1912</a></span> |
| <span class="normal"><a href="#__codelineno-0-1913">1913</a></span> |
| <span class="normal"><a href="#__codelineno-0-1914">1914</a></span> |
| <span class="normal"><a href="#__codelineno-0-1915">1915</a></span> |
| <span class="normal"><a href="#__codelineno-0-1916">1916</a></span> |
| <span class="normal"><a href="#__codelineno-0-1917">1917</a></span> |
| <span class="normal"><a href="#__codelineno-0-1918">1918</a></span> |
| <span class="normal"><a href="#__codelineno-0-1919">1919</a></span> |
| <span class="normal"><a href="#__codelineno-0-1920">1920</a></span> |
| <span class="normal"><a href="#__codelineno-0-1921">1921</a></span> |
| <span class="normal"><a href="#__codelineno-0-1922">1922</a></span> |
| <span class="normal"><a href="#__codelineno-0-1923">1923</a></span> |
| <span class="normal"><a href="#__codelineno-0-1924">1924</a></span> |
| <span class="normal"><a href="#__codelineno-0-1925">1925</a></span> |
| <span class="normal"><a href="#__codelineno-0-1926">1926</a></span> |
| <span class="normal"><a href="#__codelineno-0-1927">1927</a></span> |
| <span class="normal"><a href="#__codelineno-0-1928">1928</a></span> |
| <span class="normal"><a href="#__codelineno-0-1929">1929</a></span> |
| <span class="normal"><a href="#__codelineno-0-1930">1930</a></span> |
| <span class="normal"><a href="#__codelineno-0-1931">1931</a></span> |
| <span class="normal"><a href="#__codelineno-0-1932">1932</a></span> |
| <span class="normal"><a href="#__codelineno-0-1933">1933</a></span> |
| <span class="normal"><a href="#__codelineno-0-1934">1934</a></span> |
| <span class="normal"><a href="#__codelineno-0-1935">1935</a></span> |
| <span class="normal"><a href="#__codelineno-0-1936">1936</a></span> |
| <span class="normal"><a href="#__codelineno-0-1937">1937</a></span> |
| <span class="normal"><a href="#__codelineno-0-1938">1938</a></span> |
| <span class="normal"><a href="#__codelineno-0-1939">1939</a></span> |
| <span class="normal"><a href="#__codelineno-0-1940">1940</a></span> |
| <span class="normal"><a href="#__codelineno-0-1941">1941</a></span> |
| <span class="normal"><a href="#__codelineno-0-1942">1942</a></span> |
| <span class="normal"><a href="#__codelineno-0-1943">1943</a></span> |
| <span class="normal"><a href="#__codelineno-0-1944">1944</a></span> |
| <span class="normal"><a href="#__codelineno-0-1945">1945</a></span> |
| <span class="normal"><a href="#__codelineno-0-1946">1946</a></span> |
| <span class="normal"><a href="#__codelineno-0-1947">1947</a></span> |
| <span class="normal"><a href="#__codelineno-0-1948">1948</a></span> |
| <span class="normal"><a href="#__codelineno-0-1949">1949</a></span> |
| <span class="normal"><a href="#__codelineno-0-1950">1950</a></span> |
| <span class="normal"><a href="#__codelineno-0-1951">1951</a></span> |
| <span class="normal"><a href="#__codelineno-0-1952">1952</a></span> |
| <span class="normal"><a href="#__codelineno-0-1953">1953</a></span> |
| <span class="normal"><a href="#__codelineno-0-1954">1954</a></span> |
| <span class="normal"><a href="#__codelineno-0-1955">1955</a></span> |
| <span class="normal"><a href="#__codelineno-0-1956">1956</a></span> |
| <span class="normal"><a href="#__codelineno-0-1957">1957</a></span> |
| <span class="normal"><a href="#__codelineno-0-1958">1958</a></span> |
| <span class="normal"><a href="#__codelineno-0-1959">1959</a></span> |
| <span class="normal"><a href="#__codelineno-0-1960">1960</a></span> |
| <span class="normal"><a href="#__codelineno-0-1961">1961</a></span></pre></div></td><td class="code"><div><pre><span></span><code><a id="__codelineno-0-1761" name="__codelineno-0-1761"></a><span class="k">class</span><span class="w"> </span><span class="nc">ResidualVisitor</span><span class="p">(</span><span class="n">BoundBooleanExpressionVisitor</span><span class="p">[</span><span class="n">BooleanExpression</span><span class="p">],</span> <span class="n">ABC</span><span class="p">):</span> |
| <a id="__codelineno-0-1762" name="__codelineno-0-1762"></a><span class="w"> </span><span class="sd">"""Finds the residuals for an Expression the partitions in the given PartitionSpec.</span> |
| <a id="__codelineno-0-1763" name="__codelineno-0-1763"></a> |
| <a id="__codelineno-0-1764" name="__codelineno-0-1764"></a><span class="sd"> A residual expression is made by partially evaluating an expression using partition values.</span> |
| <a id="__codelineno-0-1765" name="__codelineno-0-1765"></a><span class="sd"> For example, if a table is partitioned by day(utc_timestamp) and is read with a filter expression</span> |
| <a id="__codelineno-0-1766" name="__codelineno-0-1766"></a><span class="sd"> utc_timestamp > a and utc_timestamp < b, then there are 4 possible residuals expressions</span> |
| <a id="__codelineno-0-1767" name="__codelineno-0-1767"></a><span class="sd"> for the partition data, d:</span> |
| <a id="__codelineno-0-1768" name="__codelineno-0-1768"></a> |
| <a id="__codelineno-0-1769" name="__codelineno-0-1769"></a> |
| <a id="__codelineno-0-1770" name="__codelineno-0-1770"></a><span class="sd"> 1. If d > day(a) and d &lt; day(b), the residual is always true</span> |
| <a id="__codelineno-0-1771" name="__codelineno-0-1771"></a><span class="sd"> 2. If d == day(a) and d != day(b), the residual is utc_timestamp > a</span> |
| <a id="__codelineno-0-1772" name="__codelineno-0-1772"></a><span class="sd"> 3. if d == day(b) and d != day(a), the residual is utc_timestamp < b</span> |
| <a id="__codelineno-0-1773" name="__codelineno-0-1773"></a><span class="sd"> 4. If d == day(a) == day(b), the residual is utc_timestamp > a and utc_timestamp < b</span> |
| <a id="__codelineno-0-1774" name="__codelineno-0-1774"></a><span class="sd"> Partition data is passed using StructLike. Residuals are returned by residualFor(StructLike).</span> |
| <a id="__codelineno-0-1775" name="__codelineno-0-1775"></a><span class="sd"> """</span> |
| <a id="__codelineno-0-1776" name="__codelineno-0-1776"></a> |
| <a id="__codelineno-0-1777" name="__codelineno-0-1777"></a> <span class="n">schema</span><span class="p">:</span> <span class="n">Schema</span> |
| <a id="__codelineno-0-1778" name="__codelineno-0-1778"></a> <span class="n">spec</span><span class="p">:</span> <span class="n">PartitionSpec</span> |
| <a id="__codelineno-0-1779" name="__codelineno-0-1779"></a> <span class="n">case_sensitive</span><span class="p">:</span> <span class="nb">bool</span> |
| <a id="__codelineno-0-1780" name="__codelineno-0-1780"></a> <span class="n">expr</span><span class="p">:</span> <span class="n">BooleanExpression</span> |
| <a id="__codelineno-0-1781" name="__codelineno-0-1781"></a> |
| <a id="__codelineno-0-1782" name="__codelineno-0-1782"></a> <span class="k">def</span><span class="w"> </span><span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">schema</span><span class="p">:</span> <span class="n">Schema</span><span class="p">,</span> <span class="n">spec</span><span class="p">:</span> <span class="n">PartitionSpec</span><span class="p">,</span> <span class="n">case_sensitive</span><span class="p">:</span> <span class="nb">bool</span><span class="p">,</span> <span class="n">expr</span><span class="p">:</span> <span class="n">BooleanExpression</span><span class="p">)</span> <span class="o">-></span> <span class="kc">None</span><span class="p">:</span> |
| <a id="__codelineno-0-1783" name="__codelineno-0-1783"></a> <span class="bp">self</span><span class="o">.</span><span class="n">schema</span> <span class="o">=</span> <span class="n">schema</span> |
| <a id="__codelineno-0-1784" name="__codelineno-0-1784"></a> <span class="bp">self</span><span class="o">.</span><span class="n">spec</span> <span class="o">=</span> <span class="n">spec</span> |
| <a id="__codelineno-0-1785" name="__codelineno-0-1785"></a> <span class="bp">self</span><span class="o">.</span><span class="n">case_sensitive</span> <span class="o">=</span> <span class="n">case_sensitive</span> |
| <a id="__codelineno-0-1786" name="__codelineno-0-1786"></a> <span class="bp">self</span><span class="o">.</span><span class="n">expr</span> <span class="o">=</span> <span class="n">expr</span> |
| <a id="__codelineno-0-1787" name="__codelineno-0-1787"></a> |
| <a id="__codelineno-0-1788" name="__codelineno-0-1788"></a> <span class="k">def</span><span class="w"> </span><span class="nf">eval</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">partition_data</span><span class="p">:</span> <span class="n">Record</span><span class="p">)</span> <span class="o">-></span> <span class="n">BooleanExpression</span><span class="p">:</span> |
| <a id="__codelineno-0-1789" name="__codelineno-0-1789"></a> <span class="bp">self</span><span class="o">.</span><span class="n">struct</span> <span class="o">=</span> <span class="n">partition_data</span> |
| <a id="__codelineno-0-1790" name="__codelineno-0-1790"></a> <span class="k">return</span> <span class="n">visit</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">expr</span><span class="p">,</span> <span class="n">visitor</span><span class="o">=</span><span class="bp">self</span><span class="p">)</span> |
| <a id="__codelineno-0-1791" name="__codelineno-0-1791"></a> |
| <a id="__codelineno-0-1792" name="__codelineno-0-1792"></a> <span class="k">def</span><span class="w"> </span><span class="nf">visit_true</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="n">BooleanExpression</span><span class="p">:</span> |
| <a id="__codelineno-0-1793" name="__codelineno-0-1793"></a> <span class="k">return</span> <span class="n">AlwaysTrue</span><span class="p">()</span> |
| <a id="__codelineno-0-1794" name="__codelineno-0-1794"></a> |
| <a id="__codelineno-0-1795" name="__codelineno-0-1795"></a> <span class="k">def</span><span class="w"> </span><span class="nf">visit_false</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="n">BooleanExpression</span><span class="p">:</span> |
| <a id="__codelineno-0-1796" name="__codelineno-0-1796"></a> <span class="k">return</span> <span class="n">AlwaysFalse</span><span class="p">()</span> |
| <a id="__codelineno-0-1797" name="__codelineno-0-1797"></a> |
| <a id="__codelineno-0-1798" name="__codelineno-0-1798"></a> <span class="k">def</span><span class="w"> </span><span class="nf">visit_not</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">child_result</span><span class="p">:</span> <span class="n">BooleanExpression</span><span class="p">)</span> <span class="o">-></span> <span class="n">BooleanExpression</span><span class="p">:</span> |
| <a id="__codelineno-0-1799" name="__codelineno-0-1799"></a> <span class="k">return</span> <span class="n">Not</span><span class="p">(</span><span class="n">child_result</span><span class="p">)</span> |
| <a id="__codelineno-0-1800" name="__codelineno-0-1800"></a> |
| <a id="__codelineno-0-1801" name="__codelineno-0-1801"></a> <span class="k">def</span><span class="w"> </span><span class="nf">visit_and</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">left_result</span><span class="p">:</span> <span class="n">BooleanExpression</span><span class="p">,</span> <span class="n">right_result</span><span class="p">:</span> <span class="n">BooleanExpression</span><span class="p">)</span> <span class="o">-></span> <span class="n">BooleanExpression</span><span class="p">:</span> |
| <a id="__codelineno-0-1802" name="__codelineno-0-1802"></a> <span class="k">return</span> <span class="n">And</span><span class="p">(</span><span class="n">left_result</span><span class="p">,</span> <span class="n">right_result</span><span class="p">)</span> |
| <a id="__codelineno-0-1803" name="__codelineno-0-1803"></a> |
| <a id="__codelineno-0-1804" name="__codelineno-0-1804"></a> <span class="k">def</span><span class="w"> </span><span class="nf">visit_or</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">left_result</span><span class="p">:</span> <span class="n">BooleanExpression</span><span class="p">,</span> <span class="n">right_result</span><span class="p">:</span> <span class="n">BooleanExpression</span><span class="p">)</span> <span class="o">-></span> <span class="n">BooleanExpression</span><span class="p">:</span> |
| <a id="__codelineno-0-1805" name="__codelineno-0-1805"></a> <span class="k">return</span> <span class="n">Or</span><span class="p">(</span><span class="n">left_result</span><span class="p">,</span> <span class="n">right_result</span><span class="p">)</span> |
| <a id="__codelineno-0-1806" name="__codelineno-0-1806"></a> |
| <a id="__codelineno-0-1807" name="__codelineno-0-1807"></a> <span class="k">def</span><span class="w"> </span><span class="nf">visit_is_null</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">term</span><span class="p">:</span> <span class="n">BoundTerm</span><span class="p">[</span><span class="n">L</span><span class="p">])</span> <span class="o">-></span> <span class="n">BooleanExpression</span><span class="p">:</span> |
| <a id="__codelineno-0-1808" name="__codelineno-0-1808"></a> <span class="k">if</span> <span class="n">term</span><span class="o">.</span><span class="n">eval</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">struct</span><span class="p">)</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span> |
| <a id="__codelineno-0-1809" name="__codelineno-0-1809"></a> <span class="k">return</span> <span class="n">AlwaysTrue</span><span class="p">()</span> |
| <a id="__codelineno-0-1810" name="__codelineno-0-1810"></a> <span class="k">else</span><span class="p">:</span> |
| <a id="__codelineno-0-1811" name="__codelineno-0-1811"></a> <span class="k">return</span> <span class="n">AlwaysFalse</span><span class="p">()</span> |
| <a id="__codelineno-0-1812" name="__codelineno-0-1812"></a> |
| <a id="__codelineno-0-1813" name="__codelineno-0-1813"></a> <span class="k">def</span><span class="w"> </span><span class="nf">visit_not_null</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">term</span><span class="p">:</span> <span class="n">BoundTerm</span><span class="p">[</span><span class="n">L</span><span class="p">])</span> <span class="o">-></span> <span class="n">BooleanExpression</span><span class="p">:</span> |
| <a id="__codelineno-0-1814" name="__codelineno-0-1814"></a> <span class="k">if</span> <span class="n">term</span><span class="o">.</span><span class="n">eval</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">struct</span><span class="p">)</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span> |
| <a id="__codelineno-0-1815" name="__codelineno-0-1815"></a> <span class="k">return</span> <span class="n">AlwaysTrue</span><span class="p">()</span> |
| <a id="__codelineno-0-1816" name="__codelineno-0-1816"></a> <span class="k">else</span><span class="p">:</span> |
| <a id="__codelineno-0-1817" name="__codelineno-0-1817"></a> <span class="k">return</span> <span class="n">AlwaysFalse</span><span class="p">()</span> |
| <a id="__codelineno-0-1818" name="__codelineno-0-1818"></a> |
| <a id="__codelineno-0-1819" name="__codelineno-0-1819"></a> <span class="k">def</span><span class="w"> </span><span class="nf">visit_is_nan</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">term</span><span class="p">:</span> <span class="n">BoundTerm</span><span class="p">[</span><span class="n">L</span><span class="p">])</span> <span class="o">-></span> <span class="n">BooleanExpression</span><span class="p">:</span> |
| <a id="__codelineno-0-1820" name="__codelineno-0-1820"></a> <span class="n">val</span> <span class="o">=</span> <span class="n">term</span><span class="o">.</span><span class="n">eval</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">struct</span><span class="p">)</span> |
| <a id="__codelineno-0-1821" name="__codelineno-0-1821"></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">val</span><span class="p">,</span> <span class="n">SupportsFloat</span><span class="p">)</span> <span class="ow">and</span> <span class="n">math</span><span class="o">.</span><span class="n">isnan</span><span class="p">(</span><span class="n">val</span><span class="p">):</span> |
| <a id="__codelineno-0-1822" name="__codelineno-0-1822"></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">visit_true</span><span class="p">()</span> |
| <a id="__codelineno-0-1823" name="__codelineno-0-1823"></a> <span class="k">else</span><span class="p">:</span> |
| <a id="__codelineno-0-1824" name="__codelineno-0-1824"></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">visit_false</span><span class="p">()</span> |
| <a id="__codelineno-0-1825" name="__codelineno-0-1825"></a> |
| <a id="__codelineno-0-1826" name="__codelineno-0-1826"></a> <span class="k">def</span><span class="w"> </span><span class="nf">visit_not_nan</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">term</span><span class="p">:</span> <span class="n">BoundTerm</span><span class="p">[</span><span class="n">L</span><span class="p">])</span> <span class="o">-></span> <span class="n">BooleanExpression</span><span class="p">:</span> |
| <a id="__codelineno-0-1827" name="__codelineno-0-1827"></a> <span class="n">val</span> <span class="o">=</span> <span class="n">term</span><span class="o">.</span><span class="n">eval</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">struct</span><span class="p">)</span> |
| <a id="__codelineno-0-1828" name="__codelineno-0-1828"></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">val</span><span class="p">,</span> <span class="n">SupportsFloat</span><span class="p">)</span> <span class="ow">and</span> <span class="ow">not</span> <span class="n">math</span><span class="o">.</span><span class="n">isnan</span><span class="p">(</span><span class="n">val</span><span class="p">):</span> |
| <a id="__codelineno-0-1829" name="__codelineno-0-1829"></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">visit_true</span><span class="p">()</span> |
| <a id="__codelineno-0-1830" name="__codelineno-0-1830"></a> <span class="k">else</span><span class="p">:</span> |
| <a id="__codelineno-0-1831" name="__codelineno-0-1831"></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">visit_false</span><span class="p">()</span> |
| <a id="__codelineno-0-1832" name="__codelineno-0-1832"></a> |
| <a id="__codelineno-0-1833" name="__codelineno-0-1833"></a> <span class="k">def</span><span class="w"> </span><span class="nf">visit_less_than</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">term</span><span class="p">:</span> <span class="n">BoundTerm</span><span class="p">[</span><span class="n">L</span><span class="p">],</span> <span class="n">literal</span><span class="p">:</span> <span class="n">Literal</span><span class="p">[</span><span class="n">L</span><span class="p">])</span> <span class="o">-></span> <span class="n">BooleanExpression</span><span class="p">:</span> |
| <a id="__codelineno-0-1834" name="__codelineno-0-1834"></a> <span class="k">if</span> <span class="n">term</span><span class="o">.</span><span class="n">eval</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">struct</span><span class="p">)</span> <span class="o"><</span> <span class="n">literal</span><span class="o">.</span><span class="n">value</span><span class="p">:</span> |
| <a id="__codelineno-0-1835" name="__codelineno-0-1835"></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">visit_true</span><span class="p">()</span> |
| <a id="__codelineno-0-1836" name="__codelineno-0-1836"></a> <span class="k">else</span><span class="p">:</span> |
| <a id="__codelineno-0-1837" name="__codelineno-0-1837"></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">visit_false</span><span class="p">()</span> |
| <a id="__codelineno-0-1838" name="__codelineno-0-1838"></a> |
| <a id="__codelineno-0-1839" name="__codelineno-0-1839"></a> <span class="k">def</span><span class="w"> </span><span class="nf">visit_less_than_or_equal</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">term</span><span class="p">:</span> <span class="n">BoundTerm</span><span class="p">[</span><span class="n">L</span><span class="p">],</span> <span class="n">literal</span><span class="p">:</span> <span class="n">Literal</span><span class="p">[</span><span class="n">L</span><span class="p">])</span> <span class="o">-></span> <span class="n">BooleanExpression</span><span class="p">:</span> |
| <a id="__codelineno-0-1840" name="__codelineno-0-1840"></a> <span class="k">if</span> <span class="n">term</span><span class="o">.</span><span class="n">eval</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">struct</span><span class="p">)</span> <span class="o"><=</span> <span class="n">literal</span><span class="o">.</span><span class="n">value</span><span class="p">:</span> |
| <a id="__codelineno-0-1841" name="__codelineno-0-1841"></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">visit_true</span><span class="p">()</span> |
| <a id="__codelineno-0-1842" name="__codelineno-0-1842"></a> <span class="k">else</span><span class="p">:</span> |
| <a id="__codelineno-0-1843" name="__codelineno-0-1843"></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">visit_false</span><span class="p">()</span> |
| <a id="__codelineno-0-1844" name="__codelineno-0-1844"></a> |
| <a id="__codelineno-0-1845" name="__codelineno-0-1845"></a> <span class="k">def</span><span class="w"> </span><span class="nf">visit_greater_than</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">term</span><span class="p">:</span> <span class="n">BoundTerm</span><span class="p">[</span><span class="n">L</span><span class="p">],</span> <span class="n">literal</span><span class="p">:</span> <span class="n">Literal</span><span class="p">[</span><span class="n">L</span><span class="p">])</span> <span class="o">-></span> <span class="n">BooleanExpression</span><span class="p">:</span> |
| <a id="__codelineno-0-1846" name="__codelineno-0-1846"></a> <span class="k">if</span> <span class="n">term</span><span class="o">.</span><span class="n">eval</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">struct</span><span class="p">)</span> <span class="o">></span> <span class="n">literal</span><span class="o">.</span><span class="n">value</span><span class="p">:</span> |
| <a id="__codelineno-0-1847" name="__codelineno-0-1847"></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">visit_true</span><span class="p">()</span> |
| <a id="__codelineno-0-1848" name="__codelineno-0-1848"></a> <span class="k">else</span><span class="p">:</span> |
| <a id="__codelineno-0-1849" name="__codelineno-0-1849"></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">visit_false</span><span class="p">()</span> |
| <a id="__codelineno-0-1850" name="__codelineno-0-1850"></a> |
| <a id="__codelineno-0-1851" name="__codelineno-0-1851"></a> <span class="k">def</span><span class="w"> </span><span class="nf">visit_greater_than_or_equal</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">term</span><span class="p">:</span> <span class="n">BoundTerm</span><span class="p">[</span><span class="n">L</span><span class="p">],</span> <span class="n">literal</span><span class="p">:</span> <span class="n">Literal</span><span class="p">[</span><span class="n">L</span><span class="p">])</span> <span class="o">-></span> <span class="n">BooleanExpression</span><span class="p">:</span> |
| <a id="__codelineno-0-1852" name="__codelineno-0-1852"></a> <span class="k">if</span> <span class="n">term</span><span class="o">.</span><span class="n">eval</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">struct</span><span class="p">)</span> <span class="o">>=</span> <span class="n">literal</span><span class="o">.</span><span class="n">value</span><span class="p">:</span> |
| <a id="__codelineno-0-1853" name="__codelineno-0-1853"></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">visit_true</span><span class="p">()</span> |
| <a id="__codelineno-0-1854" name="__codelineno-0-1854"></a> <span class="k">else</span><span class="p">:</span> |
| <a id="__codelineno-0-1855" name="__codelineno-0-1855"></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">visit_false</span><span class="p">()</span> |
| <a id="__codelineno-0-1856" name="__codelineno-0-1856"></a> |
| <a id="__codelineno-0-1857" name="__codelineno-0-1857"></a> <span class="k">def</span><span class="w"> </span><span class="nf">visit_equal</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">term</span><span class="p">:</span> <span class="n">BoundTerm</span><span class="p">[</span><span class="n">L</span><span class="p">],</span> <span class="n">literal</span><span class="p">:</span> <span class="n">Literal</span><span class="p">[</span><span class="n">L</span><span class="p">])</span> <span class="o">-></span> <span class="n">BooleanExpression</span><span class="p">:</span> |
| <a id="__codelineno-0-1858" name="__codelineno-0-1858"></a> <span class="k">if</span> <span class="n">term</span><span class="o">.</span><span class="n">eval</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">struct</span><span class="p">)</span> <span class="o">==</span> <span class="n">literal</span><span class="o">.</span><span class="n">value</span><span class="p">:</span> |
| <a id="__codelineno-0-1859" name="__codelineno-0-1859"></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">visit_true</span><span class="p">()</span> |
| <a id="__codelineno-0-1860" name="__codelineno-0-1860"></a> <span class="k">else</span><span class="p">:</span> |
| <a id="__codelineno-0-1861" name="__codelineno-0-1861"></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">visit_false</span><span class="p">()</span> |
| <a id="__codelineno-0-1862" name="__codelineno-0-1862"></a> |
| <a id="__codelineno-0-1863" name="__codelineno-0-1863"></a> <span class="k">def</span><span class="w"> </span><span class="nf">visit_not_equal</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">term</span><span class="p">:</span> <span class="n">BoundTerm</span><span class="p">[</span><span class="n">L</span><span class="p">],</span> <span class="n">literal</span><span class="p">:</span> <span class="n">Literal</span><span class="p">[</span><span class="n">L</span><span class="p">])</span> <span class="o">-></span> <span class="n">BooleanExpression</span><span class="p">:</span> |
| <a id="__codelineno-0-1864" name="__codelineno-0-1864"></a> <span class="k">if</span> <span class="n">term</span><span class="o">.</span><span class="n">eval</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">struct</span><span class="p">)</span> <span class="o">!=</span> <span class="n">literal</span><span class="o">.</span><span class="n">value</span><span class="p">:</span> |
| <a id="__codelineno-0-1865" name="__codelineno-0-1865"></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">visit_true</span><span class="p">()</span> |
| <a id="__codelineno-0-1866" name="__codelineno-0-1866"></a> <span class="k">else</span><span class="p">:</span> |
| <a id="__codelineno-0-1867" name="__codelineno-0-1867"></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">visit_false</span><span class="p">()</span> |
| <a id="__codelineno-0-1868" name="__codelineno-0-1868"></a> |
| <a id="__codelineno-0-1869" name="__codelineno-0-1869"></a> <span class="k">def</span><span class="w"> </span><span class="nf">visit_in</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">term</span><span class="p">:</span> <span class="n">BoundTerm</span><span class="p">[</span><span class="n">L</span><span class="p">],</span> <span class="n">literals</span><span class="p">:</span> <span class="n">Set</span><span class="p">[</span><span class="n">L</span><span class="p">])</span> <span class="o">-></span> <span class="n">BooleanExpression</span><span class="p">:</span> |
| <a id="__codelineno-0-1870" name="__codelineno-0-1870"></a> <span class="k">if</span> <span class="n">term</span><span class="o">.</span><span class="n">eval</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">struct</span><span class="p">)</span> <span class="ow">in</span> <span class="n">literals</span><span class="p">:</span> |
| <a id="__codelineno-0-1871" name="__codelineno-0-1871"></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">visit_true</span><span class="p">()</span> |
| <a id="__codelineno-0-1872" name="__codelineno-0-1872"></a> <span class="k">else</span><span class="p">:</span> |
| <a id="__codelineno-0-1873" name="__codelineno-0-1873"></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">visit_false</span><span class="p">()</span> |
| <a id="__codelineno-0-1874" name="__codelineno-0-1874"></a> |
| <a id="__codelineno-0-1875" name="__codelineno-0-1875"></a> <span class="k">def</span><span class="w"> </span><span class="nf">visit_not_in</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">term</span><span class="p">:</span> <span class="n">BoundTerm</span><span class="p">[</span><span class="n">L</span><span class="p">],</span> <span class="n">literals</span><span class="p">:</span> <span class="n">Set</span><span class="p">[</span><span class="n">L</span><span class="p">])</span> <span class="o">-></span> <span class="n">BooleanExpression</span><span class="p">:</span> |
| <a id="__codelineno-0-1876" name="__codelineno-0-1876"></a> <span class="k">if</span> <span class="n">term</span><span class="o">.</span><span class="n">eval</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">struct</span><span class="p">)</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">literals</span><span class="p">:</span> |
| <a id="__codelineno-0-1877" name="__codelineno-0-1877"></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">visit_true</span><span class="p">()</span> |
| <a id="__codelineno-0-1878" name="__codelineno-0-1878"></a> <span class="k">else</span><span class="p">:</span> |
| <a id="__codelineno-0-1879" name="__codelineno-0-1879"></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">visit_false</span><span class="p">()</span> |
| <a id="__codelineno-0-1880" name="__codelineno-0-1880"></a> |
| <a id="__codelineno-0-1881" name="__codelineno-0-1881"></a> <span class="k">def</span><span class="w"> </span><span class="nf">visit_starts_with</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">term</span><span class="p">:</span> <span class="n">BoundTerm</span><span class="p">[</span><span class="n">L</span><span class="p">],</span> <span class="n">literal</span><span class="p">:</span> <span class="n">Literal</span><span class="p">[</span><span class="n">L</span><span class="p">])</span> <span class="o">-></span> <span class="n">BooleanExpression</span><span class="p">:</span> |
| <a id="__codelineno-0-1882" name="__codelineno-0-1882"></a> <span class="n">eval_res</span> <span class="o">=</span> <span class="n">term</span><span class="o">.</span><span class="n">eval</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">struct</span><span class="p">)</span> |
| <a id="__codelineno-0-1883" name="__codelineno-0-1883"></a> <span class="k">if</span> <span class="n">eval_res</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span> <span class="ow">and</span> <span class="nb">str</span><span class="p">(</span><span class="n">eval_res</span><span class="p">)</span><span class="o">.</span><span class="n">startswith</span><span class="p">(</span><span class="nb">str</span><span class="p">(</span><span class="n">literal</span><span class="o">.</span><span class="n">value</span><span class="p">)):</span> |
| <a id="__codelineno-0-1884" name="__codelineno-0-1884"></a> <span class="k">return</span> <span class="n">AlwaysTrue</span><span class="p">()</span> |
| <a id="__codelineno-0-1885" name="__codelineno-0-1885"></a> <span class="k">else</span><span class="p">:</span> |
| <a id="__codelineno-0-1886" name="__codelineno-0-1886"></a> <span class="k">return</span> <span class="n">AlwaysFalse</span><span class="p">()</span> |
| <a id="__codelineno-0-1887" name="__codelineno-0-1887"></a> |
| <a id="__codelineno-0-1888" name="__codelineno-0-1888"></a> <span class="k">def</span><span class="w"> </span><span class="nf">visit_not_starts_with</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">term</span><span class="p">:</span> <span class="n">BoundTerm</span><span class="p">[</span><span class="n">L</span><span class="p">],</span> <span class="n">literal</span><span class="p">:</span> <span class="n">Literal</span><span class="p">[</span><span class="n">L</span><span class="p">])</span> <span class="o">-></span> <span class="n">BooleanExpression</span><span class="p">:</span> |
| <a id="__codelineno-0-1889" name="__codelineno-0-1889"></a> <span class="k">if</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">visit_starts_with</span><span class="p">(</span><span class="n">term</span><span class="p">,</span> <span class="n">literal</span><span class="p">):</span> |
| <a id="__codelineno-0-1890" name="__codelineno-0-1890"></a> <span class="k">return</span> <span class="n">AlwaysTrue</span><span class="p">()</span> |
| <a id="__codelineno-0-1891" name="__codelineno-0-1891"></a> <span class="k">else</span><span class="p">:</span> |
| <a id="__codelineno-0-1892" name="__codelineno-0-1892"></a> <span class="k">return</span> <span class="n">AlwaysFalse</span><span class="p">()</span> |
| <a id="__codelineno-0-1893" name="__codelineno-0-1893"></a> |
| <a id="__codelineno-0-1894" name="__codelineno-0-1894"></a> <span class="k">def</span><span class="w"> </span><span class="nf">visit_bound_predicate</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">predicate</span><span class="p">:</span> <span class="n">BoundPredicate</span><span class="p">[</span><span class="n">Any</span><span class="p">])</span> <span class="o">-></span> <span class="n">BooleanExpression</span><span class="p">:</span> |
| <a id="__codelineno-0-1895" name="__codelineno-0-1895"></a><span class="w"> </span><span class="sd">"""</span> |
| <a id="__codelineno-0-1896" name="__codelineno-0-1896"></a><span class="sd"> If there is no strict projection or if it evaluates to false, then return the predicate.</span> |
| <a id="__codelineno-0-1897" name="__codelineno-0-1897"></a> |
| <a id="__codelineno-0-1898" name="__codelineno-0-1898"></a><span class="sd"> Get the strict projection and inclusive projection of this predicate in partition data,</span> |
| <a id="__codelineno-0-1899" name="__codelineno-0-1899"></a><span class="sd"> then use them to determine whether to return the original predicate. The strict projection</span> |
| <a id="__codelineno-0-1900" name="__codelineno-0-1900"></a><span class="sd"> returns true iff the original predicate would have returned true, so the predicate can be</span> |
| <a id="__codelineno-0-1901" name="__codelineno-0-1901"></a><span class="sd"> eliminated if the strict projection evaluates to true. Similarly the inclusive projection</span> |
| <a id="__codelineno-0-1902" name="__codelineno-0-1902"></a><span class="sd"> returns false iff the original predicate would have returned false, so the predicate can</span> |
| <a id="__codelineno-0-1903" name="__codelineno-0-1903"></a><span class="sd"> also be eliminated if the inclusive projection evaluates to false.</span> |
| <a id="__codelineno-0-1904" name="__codelineno-0-1904"></a> |
| <a id="__codelineno-0-1905" name="__codelineno-0-1905"></a><span class="sd"> """</span> |
| <a id="__codelineno-0-1906" name="__codelineno-0-1906"></a> <span class="n">parts</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">spec</span><span class="o">.</span><span class="n">fields_by_source_id</span><span class="p">(</span><span class="n">predicate</span><span class="o">.</span><span class="n">term</span><span class="o">.</span><span class="n">ref</span><span class="p">()</span><span class="o">.</span><span class="n">field</span><span class="o">.</span><span class="n">field_id</span><span class="p">)</span> |
| <a id="__codelineno-0-1907" name="__codelineno-0-1907"></a> <span class="k">if</span> <span class="n">parts</span> <span class="o">==</span> <span class="p">[]:</span> |
| <a id="__codelineno-0-1908" name="__codelineno-0-1908"></a> <span class="k">return</span> <span class="n">predicate</span> |
| <a id="__codelineno-0-1909" name="__codelineno-0-1909"></a> |
| <a id="__codelineno-0-1910" name="__codelineno-0-1910"></a> <span class="k">def</span><span class="w"> </span><span class="nf">struct_to_schema</span><span class="p">(</span><span class="n">struct</span><span class="p">:</span> <span class="n">StructType</span><span class="p">)</span> <span class="o">-></span> <span class="n">Schema</span><span class="p">:</span> |
| <a id="__codelineno-0-1911" name="__codelineno-0-1911"></a> <span class="k">return</span> <span class="n">Schema</span><span class="p">(</span><span class="o">*</span><span class="n">struct</span><span class="o">.</span><span class="n">fields</span><span class="p">)</span> |
| <a id="__codelineno-0-1912" name="__codelineno-0-1912"></a> |
| <a id="__codelineno-0-1913" name="__codelineno-0-1913"></a> <span class="k">for</span> <span class="n">part</span> <span class="ow">in</span> <span class="n">parts</span><span class="p">:</span> |
| <a id="__codelineno-0-1914" name="__codelineno-0-1914"></a> <span class="n">strict_projection</span> <span class="o">=</span> <span class="n">part</span><span class="o">.</span><span class="n">transform</span><span class="o">.</span><span class="n">strict_project</span><span class="p">(</span><span class="n">part</span><span class="o">.</span><span class="n">name</span><span class="p">,</span> <span class="n">predicate</span><span class="p">)</span> |
| <a id="__codelineno-0-1915" name="__codelineno-0-1915"></a> <span class="n">strict_result</span> <span class="o">=</span> <span class="kc">None</span> |
| <a id="__codelineno-0-1916" name="__codelineno-0-1916"></a> |
| <a id="__codelineno-0-1917" name="__codelineno-0-1917"></a> <span class="k">if</span> <span class="n">strict_projection</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span> |
| <a id="__codelineno-0-1918" name="__codelineno-0-1918"></a> <span class="n">bound</span> <span class="o">=</span> <span class="n">strict_projection</span><span class="o">.</span><span class="n">bind</span><span class="p">(</span> |
| <a id="__codelineno-0-1919" name="__codelineno-0-1919"></a> <span class="n">struct_to_schema</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">spec</span><span class="o">.</span><span class="n">partition_type</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">schema</span><span class="p">)),</span> <span class="n">case_sensitive</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">case_sensitive</span> |
| <a id="__codelineno-0-1920" name="__codelineno-0-1920"></a> <span class="p">)</span> |
| <a id="__codelineno-0-1921" name="__codelineno-0-1921"></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">bound</span><span class="p">,</span> <span class="n">BoundPredicate</span><span class="p">):</span> |
| <a id="__codelineno-0-1922" name="__codelineno-0-1922"></a> <span class="n">strict_result</span> <span class="o">=</span> <span class="nb">super</span><span class="p">()</span><span class="o">.</span><span class="n">visit_bound_predicate</span><span class="p">(</span><span class="n">bound</span><span class="p">)</span> |
| <a id="__codelineno-0-1923" name="__codelineno-0-1923"></a> <span class="k">else</span><span class="p">:</span> |
| <a id="__codelineno-0-1924" name="__codelineno-0-1924"></a> <span class="c1"># if the result is not a predicate, then it must be a constant like alwaysTrue or alwaysFalse</span> |
| <a id="__codelineno-0-1925" name="__codelineno-0-1925"></a> <span class="n">strict_result</span> <span class="o">=</span> <span class="n">bound</span> |
| <a id="__codelineno-0-1926" name="__codelineno-0-1926"></a> |
| <a id="__codelineno-0-1927" name="__codelineno-0-1927"></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">strict_result</span><span class="p">,</span> <span class="n">AlwaysTrue</span><span class="p">):</span> |
| <a id="__codelineno-0-1928" name="__codelineno-0-1928"></a> <span class="k">return</span> <span class="n">AlwaysTrue</span><span class="p">()</span> |
| <a id="__codelineno-0-1929" name="__codelineno-0-1929"></a> |
| <a id="__codelineno-0-1930" name="__codelineno-0-1930"></a> <span class="n">inclusive_projection</span> <span class="o">=</span> <span class="n">part</span><span class="o">.</span><span class="n">transform</span><span class="o">.</span><span class="n">project</span><span class="p">(</span><span class="n">part</span><span class="o">.</span><span class="n">name</span><span class="p">,</span> <span class="n">predicate</span><span class="p">)</span> |
| <a id="__codelineno-0-1931" name="__codelineno-0-1931"></a> <span class="n">inclusive_result</span> <span class="o">=</span> <span class="kc">None</span> |
| <a id="__codelineno-0-1932" name="__codelineno-0-1932"></a> <span class="k">if</span> <span class="n">inclusive_projection</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span> |
| <a id="__codelineno-0-1933" name="__codelineno-0-1933"></a> <span class="n">bound_inclusive</span> <span class="o">=</span> <span class="n">inclusive_projection</span><span class="o">.</span><span class="n">bind</span><span class="p">(</span> |
| <a id="__codelineno-0-1934" name="__codelineno-0-1934"></a> <span class="n">struct_to_schema</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">spec</span><span class="o">.</span><span class="n">partition_type</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">schema</span><span class="p">)),</span> <span class="n">case_sensitive</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">case_sensitive</span> |
| <a id="__codelineno-0-1935" name="__codelineno-0-1935"></a> <span class="p">)</span> |
| <a id="__codelineno-0-1936" name="__codelineno-0-1936"></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">bound_inclusive</span><span class="p">,</span> <span class="n">BoundPredicate</span><span class="p">):</span> |
| <a id="__codelineno-0-1937" name="__codelineno-0-1937"></a> <span class="c1"># using predicate method specific to inclusive</span> |
| <a id="__codelineno-0-1938" name="__codelineno-0-1938"></a> <span class="n">inclusive_result</span> <span class="o">=</span> <span class="nb">super</span><span class="p">()</span><span class="o">.</span><span class="n">visit_bound_predicate</span><span class="p">(</span><span class="n">bound_inclusive</span><span class="p">)</span> |
| <a id="__codelineno-0-1939" name="__codelineno-0-1939"></a> <span class="k">else</span><span class="p">:</span> |
| <a id="__codelineno-0-1940" name="__codelineno-0-1940"></a> <span class="c1"># if the result is not a predicate, then it must be a constant like alwaysTrue or</span> |
| <a id="__codelineno-0-1941" name="__codelineno-0-1941"></a> <span class="c1"># alwaysFalse</span> |
| <a id="__codelineno-0-1942" name="__codelineno-0-1942"></a> <span class="n">inclusive_result</span> <span class="o">=</span> <span class="n">bound_inclusive</span> |
| <a id="__codelineno-0-1943" name="__codelineno-0-1943"></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">inclusive_result</span><span class="p">,</span> <span class="n">AlwaysFalse</span><span class="p">):</span> |
| <a id="__codelineno-0-1944" name="__codelineno-0-1944"></a> <span class="k">return</span> <span class="n">AlwaysFalse</span><span class="p">()</span> |
| <a id="__codelineno-0-1945" name="__codelineno-0-1945"></a> |
| <a id="__codelineno-0-1946" name="__codelineno-0-1946"></a> <span class="k">return</span> <span class="n">predicate</span> |
| <a id="__codelineno-0-1947" name="__codelineno-0-1947"></a> |
| <a id="__codelineno-0-1948" name="__codelineno-0-1948"></a> <span class="k">def</span><span class="w"> </span><span class="nf">visit_unbound_predicate</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">predicate</span><span class="p">:</span> <span class="n">UnboundPredicate</span><span class="p">[</span><span class="n">L</span><span class="p">])</span> <span class="o">-></span> <span class="n">BooleanExpression</span><span class="p">:</span> |
| <a id="__codelineno-0-1949" name="__codelineno-0-1949"></a> <span class="n">bound</span> <span class="o">=</span> <span class="n">predicate</span><span class="o">.</span><span class="n">bind</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">schema</span><span class="p">,</span> <span class="n">case_sensitive</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">case_sensitive</span><span class="p">)</span> |
| <a id="__codelineno-0-1950" name="__codelineno-0-1950"></a> |
| <a id="__codelineno-0-1951" name="__codelineno-0-1951"></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">bound</span><span class="p">,</span> <span class="n">BoundPredicate</span><span class="p">):</span> |
| <a id="__codelineno-0-1952" name="__codelineno-0-1952"></a> <span class="n">bound_residual</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">visit_bound_predicate</span><span class="p">(</span><span class="n">predicate</span><span class="o">=</span><span class="n">bound</span><span class="p">)</span> |
| <a id="__codelineno-0-1953" name="__codelineno-0-1953"></a> <span class="k">if</span> <span class="ow">not</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">bound_residual</span><span class="p">,</span> <span class="p">(</span><span class="n">AlwaysFalse</span><span class="p">,</span> <span class="n">AlwaysTrue</span><span class="p">)):</span> |
| <a id="__codelineno-0-1954" name="__codelineno-0-1954"></a> <span class="c1"># replace inclusive original unbound predicate</span> |
| <a id="__codelineno-0-1955" name="__codelineno-0-1955"></a> <span class="k">return</span> <span class="n">predicate</span> |
| <a id="__codelineno-0-1956" name="__codelineno-0-1956"></a> |
| <a id="__codelineno-0-1957" name="__codelineno-0-1957"></a> <span class="c1"># use the non-predicate residual (e.g. alwaysTrue)</span> |
| <a id="__codelineno-0-1958" name="__codelineno-0-1958"></a> <span class="k">return</span> <span class="n">bound_residual</span> |
| <a id="__codelineno-0-1959" name="__codelineno-0-1959"></a> |
| <a id="__codelineno-0-1960" name="__codelineno-0-1960"></a> <span class="c1"># if binding didn't result in a Predicate, return the expression</span> |
| <a id="__codelineno-0-1961" name="__codelineno-0-1961"></a> <span class="k">return</span> <span class="n">bound</span> |
| </code></pre></div></td></tr></table></div> |
| </details> |
| |
| |
| |
| <div class="doc doc-children"> |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| <div class="doc doc-object doc-function"> |
| |
| |
| <h3 id="pyiceberg.expressions.visitors.ResidualVisitor.visit_bound_predicate" class="doc doc-heading"> |
| <code class="highlight language-python"><span class="n">visit_bound_predicate</span><span class="p">(</span><span class="n">predicate</span><span class="p">)</span></code> |
| |
| <a href="#pyiceberg.expressions.visitors.ResidualVisitor.visit_bound_predicate" class="headerlink" title="Permanent link">¶</a></h3> |
| |
| |
| <div class="doc doc-contents "> |
| |
| <p>If there is no strict projection or if it evaluates to false, then return the predicate.</p> |
| <p>Get the strict projection and inclusive projection of this predicate in partition data, |
| then use them to determine whether to return the original predicate. The strict projection |
| returns true iff the original predicate would have returned true, so the predicate can be |
| eliminated if the strict projection evaluates to true. Similarly the inclusive projection |
| returns false iff the original predicate would have returned false, so the predicate can |
| also be eliminated if the inclusive projection evaluates to false.</p> |
| |
| |
| <details class="quote"> |
| <summary>Source code in <code>pyiceberg/expressions/visitors.py</code></summary> |
| <div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-0-1894">1894</a></span> |
| <span class="normal"><a href="#__codelineno-0-1895">1895</a></span> |
| <span class="normal"><a href="#__codelineno-0-1896">1896</a></span> |
| <span class="normal"><a href="#__codelineno-0-1897">1897</a></span> |
| <span class="normal"><a href="#__codelineno-0-1898">1898</a></span> |
| <span class="normal"><a href="#__codelineno-0-1899">1899</a></span> |
| <span class="normal"><a href="#__codelineno-0-1900">1900</a></span> |
| <span class="normal"><a href="#__codelineno-0-1901">1901</a></span> |
| <span class="normal"><a href="#__codelineno-0-1902">1902</a></span> |
| <span class="normal"><a href="#__codelineno-0-1903">1903</a></span> |
| <span class="normal"><a href="#__codelineno-0-1904">1904</a></span> |
| <span class="normal"><a href="#__codelineno-0-1905">1905</a></span> |
| <span class="normal"><a href="#__codelineno-0-1906">1906</a></span> |
| <span class="normal"><a href="#__codelineno-0-1907">1907</a></span> |
| <span class="normal"><a href="#__codelineno-0-1908">1908</a></span> |
| <span class="normal"><a href="#__codelineno-0-1909">1909</a></span> |
| <span class="normal"><a href="#__codelineno-0-1910">1910</a></span> |
| <span class="normal"><a href="#__codelineno-0-1911">1911</a></span> |
| <span class="normal"><a href="#__codelineno-0-1912">1912</a></span> |
| <span class="normal"><a href="#__codelineno-0-1913">1913</a></span> |
| <span class="normal"><a href="#__codelineno-0-1914">1914</a></span> |
| <span class="normal"><a href="#__codelineno-0-1915">1915</a></span> |
| <span class="normal"><a href="#__codelineno-0-1916">1916</a></span> |
| <span class="normal"><a href="#__codelineno-0-1917">1917</a></span> |
| <span class="normal"><a href="#__codelineno-0-1918">1918</a></span> |
| <span class="normal"><a href="#__codelineno-0-1919">1919</a></span> |
| <span class="normal"><a href="#__codelineno-0-1920">1920</a></span> |
| <span class="normal"><a href="#__codelineno-0-1921">1921</a></span> |
| <span class="normal"><a href="#__codelineno-0-1922">1922</a></span> |
| <span class="normal"><a href="#__codelineno-0-1923">1923</a></span> |
| <span class="normal"><a href="#__codelineno-0-1924">1924</a></span> |
| <span class="normal"><a href="#__codelineno-0-1925">1925</a></span> |
| <span class="normal"><a href="#__codelineno-0-1926">1926</a></span> |
| <span class="normal"><a href="#__codelineno-0-1927">1927</a></span> |
| <span class="normal"><a href="#__codelineno-0-1928">1928</a></span> |
| <span class="normal"><a href="#__codelineno-0-1929">1929</a></span> |
| <span class="normal"><a href="#__codelineno-0-1930">1930</a></span> |
| <span class="normal"><a href="#__codelineno-0-1931">1931</a></span> |
| <span class="normal"><a href="#__codelineno-0-1932">1932</a></span> |
| <span class="normal"><a href="#__codelineno-0-1933">1933</a></span> |
| <span class="normal"><a href="#__codelineno-0-1934">1934</a></span> |
| <span class="normal"><a href="#__codelineno-0-1935">1935</a></span> |
| <span class="normal"><a href="#__codelineno-0-1936">1936</a></span> |
| <span class="normal"><a href="#__codelineno-0-1937">1937</a></span> |
| <span class="normal"><a href="#__codelineno-0-1938">1938</a></span> |
| <span class="normal"><a href="#__codelineno-0-1939">1939</a></span> |
| <span class="normal"><a href="#__codelineno-0-1940">1940</a></span> |
| <span class="normal"><a href="#__codelineno-0-1941">1941</a></span> |
| <span class="normal"><a href="#__codelineno-0-1942">1942</a></span> |
| <span class="normal"><a href="#__codelineno-0-1943">1943</a></span> |
| <span class="normal"><a href="#__codelineno-0-1944">1944</a></span> |
| <span class="normal"><a href="#__codelineno-0-1945">1945</a></span> |
| <span class="normal"><a href="#__codelineno-0-1946">1946</a></span></pre></div></td><td class="code"><div><pre><span></span><code><a id="__codelineno-0-1894" name="__codelineno-0-1894"></a><span class="k">def</span><span class="w"> </span><span class="nf">visit_bound_predicate</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">predicate</span><span class="p">:</span> <span class="n">BoundPredicate</span><span class="p">[</span><span class="n">Any</span><span class="p">])</span> <span class="o">-></span> <span class="n">BooleanExpression</span><span class="p">:</span> |
| <a id="__codelineno-0-1895" name="__codelineno-0-1895"></a><span class="w"> </span><span class="sd">"""</span> |
| <a id="__codelineno-0-1896" name="__codelineno-0-1896"></a><span class="sd"> If there is no strict projection or if it evaluates to false, then return the predicate.</span> |
| <a id="__codelineno-0-1897" name="__codelineno-0-1897"></a> |
| <a id="__codelineno-0-1898" name="__codelineno-0-1898"></a><span class="sd"> Get the strict projection and inclusive projection of this predicate in partition data,</span> |
| <a id="__codelineno-0-1899" name="__codelineno-0-1899"></a><span class="sd"> then use them to determine whether to return the original predicate. The strict projection</span> |
| <a id="__codelineno-0-1900" name="__codelineno-0-1900"></a><span class="sd"> returns true iff the original predicate would have returned true, so the predicate can be</span> |
| <a id="__codelineno-0-1901" name="__codelineno-0-1901"></a><span class="sd"> eliminated if the strict projection evaluates to true. Similarly the inclusive projection</span> |
| <a id="__codelineno-0-1902" name="__codelineno-0-1902"></a><span class="sd"> returns false iff the original predicate would have returned false, so the predicate can</span> |
| <a id="__codelineno-0-1903" name="__codelineno-0-1903"></a><span class="sd"> also be eliminated if the inclusive projection evaluates to false.</span> |
| <a id="__codelineno-0-1904" name="__codelineno-0-1904"></a> |
| <a id="__codelineno-0-1905" name="__codelineno-0-1905"></a><span class="sd"> """</span> |
| <a id="__codelineno-0-1906" name="__codelineno-0-1906"></a> <span class="n">parts</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">spec</span><span class="o">.</span><span class="n">fields_by_source_id</span><span class="p">(</span><span class="n">predicate</span><span class="o">.</span><span class="n">term</span><span class="o">.</span><span class="n">ref</span><span class="p">()</span><span class="o">.</span><span class="n">field</span><span class="o">.</span><span class="n">field_id</span><span class="p">)</span> |
| <a id="__codelineno-0-1907" name="__codelineno-0-1907"></a> <span class="k">if</span> <span class="n">parts</span> <span class="o">==</span> <span class="p">[]:</span> |
| <a id="__codelineno-0-1908" name="__codelineno-0-1908"></a> <span class="k">return</span> <span class="n">predicate</span> |
| <a id="__codelineno-0-1909" name="__codelineno-0-1909"></a> |
| <a id="__codelineno-0-1910" name="__codelineno-0-1910"></a> <span class="k">def</span><span class="w"> </span><span class="nf">struct_to_schema</span><span class="p">(</span><span class="n">struct</span><span class="p">:</span> <span class="n">StructType</span><span class="p">)</span> <span class="o">-></span> <span class="n">Schema</span><span class="p">:</span> |
| <a id="__codelineno-0-1911" name="__codelineno-0-1911"></a> <span class="k">return</span> <span class="n">Schema</span><span class="p">(</span><span class="o">*</span><span class="n">struct</span><span class="o">.</span><span class="n">fields</span><span class="p">)</span> |
| <a id="__codelineno-0-1912" name="__codelineno-0-1912"></a> |
| <a id="__codelineno-0-1913" name="__codelineno-0-1913"></a> <span class="k">for</span> <span class="n">part</span> <span class="ow">in</span> <span class="n">parts</span><span class="p">:</span> |
| <a id="__codelineno-0-1914" name="__codelineno-0-1914"></a> <span class="n">strict_projection</span> <span class="o">=</span> <span class="n">part</span><span class="o">.</span><span class="n">transform</span><span class="o">.</span><span class="n">strict_project</span><span class="p">(</span><span class="n">part</span><span class="o">.</span><span class="n">name</span><span class="p">,</span> <span class="n">predicate</span><span class="p">)</span> |
| <a id="__codelineno-0-1915" name="__codelineno-0-1915"></a> <span class="n">strict_result</span> <span class="o">=</span> <span class="kc">None</span> |
| <a id="__codelineno-0-1916" name="__codelineno-0-1916"></a> |
| <a id="__codelineno-0-1917" name="__codelineno-0-1917"></a> <span class="k">if</span> <span class="n">strict_projection</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span> |
| <a id="__codelineno-0-1918" name="__codelineno-0-1918"></a> <span class="n">bound</span> <span class="o">=</span> <span class="n">strict_projection</span><span class="o">.</span><span class="n">bind</span><span class="p">(</span> |
| <a id="__codelineno-0-1919" name="__codelineno-0-1919"></a> <span class="n">struct_to_schema</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">spec</span><span class="o">.</span><span class="n">partition_type</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">schema</span><span class="p">)),</span> <span class="n">case_sensitive</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">case_sensitive</span> |
| <a id="__codelineno-0-1920" name="__codelineno-0-1920"></a> <span class="p">)</span> |
| <a id="__codelineno-0-1921" name="__codelineno-0-1921"></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">bound</span><span class="p">,</span> <span class="n">BoundPredicate</span><span class="p">):</span> |
| <a id="__codelineno-0-1922" name="__codelineno-0-1922"></a> <span class="n">strict_result</span> <span class="o">=</span> <span class="nb">super</span><span class="p">()</span><span class="o">.</span><span class="n">visit_bound_predicate</span><span class="p">(</span><span class="n">bound</span><span class="p">)</span> |
| <a id="__codelineno-0-1923" name="__codelineno-0-1923"></a> <span class="k">else</span><span class="p">:</span> |
| <a id="__codelineno-0-1924" name="__codelineno-0-1924"></a> <span class="c1"># if the result is not a predicate, then it must be a constant like alwaysTrue or alwaysFalse</span> |
| <a id="__codelineno-0-1925" name="__codelineno-0-1925"></a> <span class="n">strict_result</span> <span class="o">=</span> <span class="n">bound</span> |
| <a id="__codelineno-0-1926" name="__codelineno-0-1926"></a> |
| <a id="__codelineno-0-1927" name="__codelineno-0-1927"></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">strict_result</span><span class="p">,</span> <span class="n">AlwaysTrue</span><span class="p">):</span> |
| <a id="__codelineno-0-1928" name="__codelineno-0-1928"></a> <span class="k">return</span> <span class="n">AlwaysTrue</span><span class="p">()</span> |
| <a id="__codelineno-0-1929" name="__codelineno-0-1929"></a> |
| <a id="__codelineno-0-1930" name="__codelineno-0-1930"></a> <span class="n">inclusive_projection</span> <span class="o">=</span> <span class="n">part</span><span class="o">.</span><span class="n">transform</span><span class="o">.</span><span class="n">project</span><span class="p">(</span><span class="n">part</span><span class="o">.</span><span class="n">name</span><span class="p">,</span> <span class="n">predicate</span><span class="p">)</span> |
| <a id="__codelineno-0-1931" name="__codelineno-0-1931"></a> <span class="n">inclusive_result</span> <span class="o">=</span> <span class="kc">None</span> |
| <a id="__codelineno-0-1932" name="__codelineno-0-1932"></a> <span class="k">if</span> <span class="n">inclusive_projection</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span> |
| <a id="__codelineno-0-1933" name="__codelineno-0-1933"></a> <span class="n">bound_inclusive</span> <span class="o">=</span> <span class="n">inclusive_projection</span><span class="o">.</span><span class="n">bind</span><span class="p">(</span> |
| <a id="__codelineno-0-1934" name="__codelineno-0-1934"></a> <span class="n">struct_to_schema</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">spec</span><span class="o">.</span><span class="n">partition_type</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">schema</span><span class="p">)),</span> <span class="n">case_sensitive</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">case_sensitive</span> |
| <a id="__codelineno-0-1935" name="__codelineno-0-1935"></a> <span class="p">)</span> |
| <a id="__codelineno-0-1936" name="__codelineno-0-1936"></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">bound_inclusive</span><span class="p">,</span> <span class="n">BoundPredicate</span><span class="p">):</span> |
| <a id="__codelineno-0-1937" name="__codelineno-0-1937"></a> <span class="c1"># using predicate method specific to inclusive</span> |
| <a id="__codelineno-0-1938" name="__codelineno-0-1938"></a> <span class="n">inclusive_result</span> <span class="o">=</span> <span class="nb">super</span><span class="p">()</span><span class="o">.</span><span class="n">visit_bound_predicate</span><span class="p">(</span><span class="n">bound_inclusive</span><span class="p">)</span> |
| <a id="__codelineno-0-1939" name="__codelineno-0-1939"></a> <span class="k">else</span><span class="p">:</span> |
| <a id="__codelineno-0-1940" name="__codelineno-0-1940"></a> <span class="c1"># if the result is not a predicate, then it must be a constant like alwaysTrue or</span> |
| <a id="__codelineno-0-1941" name="__codelineno-0-1941"></a> <span class="c1"># alwaysFalse</span> |
| <a id="__codelineno-0-1942" name="__codelineno-0-1942"></a> <span class="n">inclusive_result</span> <span class="o">=</span> <span class="n">bound_inclusive</span> |
| <a id="__codelineno-0-1943" name="__codelineno-0-1943"></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">inclusive_result</span><span class="p">,</span> <span class="n">AlwaysFalse</span><span class="p">):</span> |
| <a id="__codelineno-0-1944" name="__codelineno-0-1944"></a> <span class="k">return</span> <span class="n">AlwaysFalse</span><span class="p">()</span> |
| <a id="__codelineno-0-1945" name="__codelineno-0-1945"></a> |
| <a id="__codelineno-0-1946" name="__codelineno-0-1946"></a> <span class="k">return</span> <span class="n">predicate</span> |
| </code></pre></div></td></tr></table></div> |
| </details> |
| </div> |
| |
| </div> |
| |
| |
| |
| </div> |
| |
| </div> |
| |
| </div> |
| |
| |
| <div class="doc doc-object doc-function"> |
| |
| |
| <h2 id="pyiceberg.expressions.visitors.bind" class="doc doc-heading"> |
| <code class="highlight language-python"><span class="n">bind</span><span class="p">(</span><span class="n">schema</span><span class="p">,</span> <span class="n">expression</span><span class="p">,</span> <span class="n">case_sensitive</span><span class="p">)</span></code> |
| |
| <a href="#pyiceberg.expressions.visitors.bind" class="headerlink" title="Permanent link">¶</a></h2> |
| |
| |
| <div class="doc doc-contents "> |
| |
| <p>Travers over an expression to bind the predicates to the schema.</p> |
| |
| |
| <p><span class="doc-section-title">Parameters:</span></p> |
| <table> |
| <thead> |
| <tr> |
| <th>Name</th> |
| <th>Type</th> |
| <th>Description</th> |
| <th>Default</th> |
| </tr> |
| </thead> |
| <tbody> |
| <tr class="doc-section-item"> |
| <td> |
| <code>schema</code> |
| </td> |
| <td> |
| <code><a class="autorefs autorefs-internal" title="Schema (pyiceberg.schema.Schema)" href="../../schema/#pyiceberg.schema.Schema">Schema</a></code> |
| </td> |
| <td> |
| <div class="doc-md-description"> |
| <p>A schema to use when binding the expression.</p> |
| </div> |
| </td> |
| <td> |
| <em>required</em> |
| </td> |
| </tr> |
| <tr class="doc-section-item"> |
| <td> |
| <code>expression</code> |
| </td> |
| <td> |
| <code><a class="autorefs autorefs-internal" title="BooleanExpression (pyiceberg.expressions.BooleanExpression)" href="../#pyiceberg.expressions.BooleanExpression">BooleanExpression</a></code> |
| </td> |
| <td> |
| <div class="doc-md-description"> |
| <p>An expression containing UnboundPredicates that can be bound.</p> |
| </div> |
| </td> |
| <td> |
| <em>required</em> |
| </td> |
| </tr> |
| <tr class="doc-section-item"> |
| <td> |
| <code>case_sensitive</code> |
| </td> |
| <td> |
| <code><span title="bool">bool</span></code> |
| </td> |
| <td> |
| <div class="doc-md-description"> |
| <p>Whether to consider case when binding a reference to a field in a schema, defaults to True.</p> |
| </div> |
| </td> |
| <td> |
| <em>required</em> |
| </td> |
| </tr> |
| </tbody> |
| </table> |
| |
| |
| <p><span class="doc-section-title">Raises:</span></p> |
| <table> |
| <thead> |
| <tr> |
| <th>Type</th> |
| <th>Description</th> |
| </tr> |
| </thead> |
| <tbody> |
| <tr class="doc-section-item"> |
| <td> |
| <code><span title="TypeError">TypeError</span></code> |
| </td> |
| <td> |
| <div class="doc-md-description"> |
| <p>In the case a predicate is already bound.</p> |
| </div> |
| </td> |
| </tr> |
| </tbody> |
| </table> |
| |
| |
| <details class="quote"> |
| <summary>Source code in <code>pyiceberg/expressions/visitors.py</code></summary> |
| <div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-0-203">203</a></span> |
| <span class="normal"><a href="#__codelineno-0-204">204</a></span> |
| <span class="normal"><a href="#__codelineno-0-205">205</a></span> |
| <span class="normal"><a href="#__codelineno-0-206">206</a></span> |
| <span class="normal"><a href="#__codelineno-0-207">207</a></span> |
| <span class="normal"><a href="#__codelineno-0-208">208</a></span> |
| <span class="normal"><a href="#__codelineno-0-209">209</a></span> |
| <span class="normal"><a href="#__codelineno-0-210">210</a></span> |
| <span class="normal"><a href="#__codelineno-0-211">211</a></span> |
| <span class="normal"><a href="#__codelineno-0-212">212</a></span> |
| <span class="normal"><a href="#__codelineno-0-213">213</a></span> |
| <span class="normal"><a href="#__codelineno-0-214">214</a></span></pre></div></td><td class="code"><div><pre><span></span><code><a id="__codelineno-0-203" name="__codelineno-0-203"></a><span class="k">def</span><span class="w"> </span><span class="nf">bind</span><span class="p">(</span><span class="n">schema</span><span class="p">:</span> <span class="n">Schema</span><span class="p">,</span> <span class="n">expression</span><span class="p">:</span> <span class="n">BooleanExpression</span><span class="p">,</span> <span class="n">case_sensitive</span><span class="p">:</span> <span class="nb">bool</span><span class="p">)</span> <span class="o">-></span> <span class="n">BooleanExpression</span><span class="p">:</span> |
| <a id="__codelineno-0-204" name="__codelineno-0-204"></a><span class="w"> </span><span class="sd">"""Travers over an expression to bind the predicates to the schema.</span> |
| <a id="__codelineno-0-205" name="__codelineno-0-205"></a> |
| <a id="__codelineno-0-206" name="__codelineno-0-206"></a><span class="sd"> Args:</span> |
| <a id="__codelineno-0-207" name="__codelineno-0-207"></a><span class="sd"> schema (Schema): A schema to use when binding the expression.</span> |
| <a id="__codelineno-0-208" name="__codelineno-0-208"></a><span class="sd"> expression (BooleanExpression): An expression containing UnboundPredicates that can be bound.</span> |
| <a id="__codelineno-0-209" name="__codelineno-0-209"></a><span class="sd"> case_sensitive (bool): Whether to consider case when binding a reference to a field in a schema, defaults to True.</span> |
| <a id="__codelineno-0-210" name="__codelineno-0-210"></a> |
| <a id="__codelineno-0-211" name="__codelineno-0-211"></a><span class="sd"> Raises:</span> |
| <a id="__codelineno-0-212" name="__codelineno-0-212"></a><span class="sd"> TypeError: In the case a predicate is already bound.</span> |
| <a id="__codelineno-0-213" name="__codelineno-0-213"></a><span class="sd"> """</span> |
| <a id="__codelineno-0-214" name="__codelineno-0-214"></a> <span class="k">return</span> <span class="n">visit</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">BindVisitor</span><span class="p">(</span><span class="n">schema</span><span class="p">,</span> <span class="n">case_sensitive</span><span class="p">))</span> |
| </code></pre></div></td></tr></table></div> |
| </details> |
| </div> |
| |
| </div> |
| |
| <div class="doc doc-object doc-function"> |
| |
| |
| <h2 id="pyiceberg.expressions.visitors.expression_to_plain_format" class="doc doc-heading"> |
| <code class="highlight language-python"><span class="n">expression_to_plain_format</span><span class="p">(</span><span class="n">expressions</span><span class="p">,</span> <span class="n">cast_int_to_datetime</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span></code> |
| |
| <a href="#pyiceberg.expressions.visitors.expression_to_plain_format" class="headerlink" title="Permanent link">¶</a></h2> |
| |
| |
| <div class="doc doc-contents "> |
| |
| <p>Format a Disjunctive Normal Form expression.</p> |
| <p>These are the formats that the expression can be fed into:</p> |
| <ul> |
| <li>https://arrow.apache.org/docs/python/generated/pyarrow.parquet.read_table.html</li> |
| <li>https://docs.dask.org/en/stable/generated/dask.dataframe.read_parquet.html</li> |
| </ul> |
| <p>Contrary to normal DNF that may contain Not expressions, but here they should have |
| been rewritten. This can be done using <code>rewrite_not(...)</code>.</p> |
| <p>Keep in mind that this is only used for page skipping, and still needs to filter |
| on a row level.</p> |
| |
| |
| <p><span class="doc-section-title">Parameters:</span></p> |
| <table> |
| <thead> |
| <tr> |
| <th>Name</th> |
| <th>Type</th> |
| <th>Description</th> |
| <th>Default</th> |
| </tr> |
| </thead> |
| <tbody> |
| <tr class="doc-section-item"> |
| <td> |
| <code>expressions</code> |
| </td> |
| <td> |
| <code><span title="typing.Tuple">Tuple</span>[<a class="autorefs autorefs-internal" title="BooleanExpression (pyiceberg.expressions.BooleanExpression)" href="../#pyiceberg.expressions.BooleanExpression">BooleanExpression</a>, ...]</code> |
| </td> |
| <td> |
| <div class="doc-md-description"> |
| <p>Expression in Disjunctive Normal Form.</p> |
| </div> |
| </td> |
| <td> |
| <em>required</em> |
| </td> |
| </tr> |
| </tbody> |
| </table> |
| |
| |
| <p><span class="doc-section-title">Returns:</span></p> |
| <table> |
| <thead> |
| <tr> |
| <th>Type</th> |
| <th>Description</th> |
| </tr> |
| </thead> |
| <tbody> |
| <tr class="doc-section-item"> |
| <td> |
| <code><span title="typing.List">List</span>[<span title="typing.List">List</span>[<span title="typing.Tuple">Tuple</span>[<span title="str">str</span>, <span title="str">str</span>, <span title="typing.Any">Any</span>]]]</code> |
| </td> |
| <td> |
| <div class="doc-md-description"> |
| <p>Formatter filter compatible with Dask and PyArrow.</p> |
| </div> |
| </td> |
| </tr> |
| </tbody> |
| </table> |
| |
| |
| <details class="quote"> |
| <summary>Source code in <code>pyiceberg/expressions/visitors.py</code></summary> |
| <div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-0-1093">1093</a></span> |
| <span class="normal"><a href="#__codelineno-0-1094">1094</a></span> |
| <span class="normal"><a href="#__codelineno-0-1095">1095</a></span> |
| <span class="normal"><a href="#__codelineno-0-1096">1096</a></span> |
| <span class="normal"><a href="#__codelineno-0-1097">1097</a></span> |
| <span class="normal"><a href="#__codelineno-0-1098">1098</a></span> |
| <span class="normal"><a href="#__codelineno-0-1099">1099</a></span> |
| <span class="normal"><a href="#__codelineno-0-1100">1100</a></span> |
| <span class="normal"><a href="#__codelineno-0-1101">1101</a></span> |
| <span class="normal"><a href="#__codelineno-0-1102">1102</a></span> |
| <span class="normal"><a href="#__codelineno-0-1103">1103</a></span> |
| <span class="normal"><a href="#__codelineno-0-1104">1104</a></span> |
| <span class="normal"><a href="#__codelineno-0-1105">1105</a></span> |
| <span class="normal"><a href="#__codelineno-0-1106">1106</a></span> |
| <span class="normal"><a href="#__codelineno-0-1107">1107</a></span> |
| <span class="normal"><a href="#__codelineno-0-1108">1108</a></span> |
| <span class="normal"><a href="#__codelineno-0-1109">1109</a></span> |
| <span class="normal"><a href="#__codelineno-0-1110">1110</a></span> |
| <span class="normal"><a href="#__codelineno-0-1111">1111</a></span> |
| <span class="normal"><a href="#__codelineno-0-1112">1112</a></span> |
| <span class="normal"><a href="#__codelineno-0-1113">1113</a></span> |
| <span class="normal"><a href="#__codelineno-0-1114">1114</a></span> |
| <span class="normal"><a href="#__codelineno-0-1115">1115</a></span> |
| <span class="normal"><a href="#__codelineno-0-1116">1116</a></span> |
| <span class="normal"><a href="#__codelineno-0-1117">1117</a></span></pre></div></td><td class="code"><div><pre><span></span><code><a id="__codelineno-0-1093" name="__codelineno-0-1093"></a><span class="k">def</span><span class="w"> </span><span class="nf">expression_to_plain_format</span><span class="p">(</span> |
| <a id="__codelineno-0-1094" name="__codelineno-0-1094"></a> <span class="n">expressions</span><span class="p">:</span> <span class="n">Tuple</span><span class="p">[</span><span class="n">BooleanExpression</span><span class="p">,</span> <span class="o">...</span><span class="p">],</span> <span class="n">cast_int_to_datetime</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">False</span> |
| <a id="__codelineno-0-1095" name="__codelineno-0-1095"></a><span class="p">)</span> <span class="o">-></span> <span class="n">List</span><span class="p">[</span><span class="n">List</span><span class="p">[</span><span class="n">Tuple</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="nb">str</span><span class="p">,</span> <span class="n">Any</span><span class="p">]]]:</span> |
| <a id="__codelineno-0-1096" name="__codelineno-0-1096"></a><span class="w"> </span><span class="sd">"""Format a Disjunctive Normal Form expression.</span> |
| <a id="__codelineno-0-1097" name="__codelineno-0-1097"></a> |
| <a id="__codelineno-0-1098" name="__codelineno-0-1098"></a><span class="sd"> These are the formats that the expression can be fed into:</span> |
| <a id="__codelineno-0-1099" name="__codelineno-0-1099"></a> |
| <a id="__codelineno-0-1100" name="__codelineno-0-1100"></a><span class="sd"> - https://arrow.apache.org/docs/python/generated/pyarrow.parquet.read_table.html</span> |
| <a id="__codelineno-0-1101" name="__codelineno-0-1101"></a><span class="sd"> - https://docs.dask.org/en/stable/generated/dask.dataframe.read_parquet.html</span> |
| <a id="__codelineno-0-1102" name="__codelineno-0-1102"></a> |
| <a id="__codelineno-0-1103" name="__codelineno-0-1103"></a><span class="sd"> Contrary to normal DNF that may contain Not expressions, but here they should have</span> |
| <a id="__codelineno-0-1104" name="__codelineno-0-1104"></a><span class="sd"> been rewritten. This can be done using ``rewrite_not(...)``.</span> |
| <a id="__codelineno-0-1105" name="__codelineno-0-1105"></a> |
| <a id="__codelineno-0-1106" name="__codelineno-0-1106"></a><span class="sd"> Keep in mind that this is only used for page skipping, and still needs to filter</span> |
| <a id="__codelineno-0-1107" name="__codelineno-0-1107"></a><span class="sd"> on a row level.</span> |
| <a id="__codelineno-0-1108" name="__codelineno-0-1108"></a> |
| <a id="__codelineno-0-1109" name="__codelineno-0-1109"></a><span class="sd"> Args:</span> |
| <a id="__codelineno-0-1110" name="__codelineno-0-1110"></a><span class="sd"> expressions: Expression in Disjunctive Normal Form.</span> |
| <a id="__codelineno-0-1111" name="__codelineno-0-1111"></a> |
| <a id="__codelineno-0-1112" name="__codelineno-0-1112"></a><span class="sd"> Returns:</span> |
| <a id="__codelineno-0-1113" name="__codelineno-0-1113"></a><span class="sd"> Formatter filter compatible with Dask and PyArrow.</span> |
| <a id="__codelineno-0-1114" name="__codelineno-0-1114"></a><span class="sd"> """</span> |
| <a id="__codelineno-0-1115" name="__codelineno-0-1115"></a> <span class="c1"># In the form of expr1 ∨ expr2 ∨ ... ∨ exprN</span> |
| <a id="__codelineno-0-1116" name="__codelineno-0-1116"></a> <span class="n">visitor</span> <span class="o">=</span> <span class="n">ExpressionToPlainFormat</span><span class="p">(</span><span class="n">cast_int_to_datetime</span><span class="p">)</span> |
| <a id="__codelineno-0-1117" name="__codelineno-0-1117"></a> <span class="k">return</span> <span class="p">[</span><span class="n">visit</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">visitor</span><span class="p">)</span> <span class="k">for</span> <span class="n">expression</span> <span class="ow">in</span> <span class="n">expressions</span><span class="p">]</span> |
| </code></pre></div></td></tr></table></div> |
| </details> |
| </div> |
| |
| </div> |
| |
| <div class="doc doc-object doc-function"> |
| |
| |
| <h2 id="pyiceberg.expressions.visitors.visit" class="doc doc-heading"> |
| <code class="highlight language-python"><span class="n">visit</span><span class="p">(</span><span class="n">obj</span><span class="p">,</span> <span class="n">visitor</span><span class="p">)</span></code> |
| |
| <a href="#pyiceberg.expressions.visitors.visit" class="headerlink" title="Permanent link">¶</a></h2> |
| |
| |
| <div class="doc doc-contents "> |
| |
| <p>Apply a boolean expression visitor to any point within an expression.</p> |
| <p>The function traverses the expression in post-order fashion.</p> |
| |
| |
| <p><span class="doc-section-title">Parameters:</span></p> |
| <table> |
| <thead> |
| <tr> |
| <th>Name</th> |
| <th>Type</th> |
| <th>Description</th> |
| <th>Default</th> |
| </tr> |
| </thead> |
| <tbody> |
| <tr class="doc-section-item"> |
| <td> |
| <code>obj</code> |
| </td> |
| <td> |
| <code><a class="autorefs autorefs-internal" title="BooleanExpression (pyiceberg.expressions.BooleanExpression)" href="../#pyiceberg.expressions.BooleanExpression">BooleanExpression</a></code> |
| </td> |
| <td> |
| <div class="doc-md-description"> |
| <p>An instance of a BooleanExpression.</p> |
| </div> |
| </td> |
| <td> |
| <em>required</em> |
| </td> |
| </tr> |
| <tr class="doc-section-item"> |
| <td> |
| <code>visitor</code> |
| </td> |
| <td> |
| <code><a class="autorefs autorefs-internal" title="BooleanExpressionVisitor (pyiceberg.expressions.visitors.BooleanExpressionVisitor)" href="#pyiceberg.expressions.visitors.BooleanExpressionVisitor">BooleanExpressionVisitor</a>[<span title="pyiceberg.expressions.visitors.T">T</span>]</code> |
| </td> |
| <td> |
| <div class="doc-md-description"> |
| <p>An instance of an implementation of the generic BooleanExpressionVisitor base class.</p> |
| </div> |
| </td> |
| <td> |
| <em>required</em> |
| </td> |
| </tr> |
| </tbody> |
| </table> |
| |
| |
| <p><span class="doc-section-title">Raises:</span></p> |
| <table> |
| <thead> |
| <tr> |
| <th>Type</th> |
| <th>Description</th> |
| </tr> |
| </thead> |
| <tbody> |
| <tr class="doc-section-item"> |
| <td> |
| <code><span title="NotImplementedError">NotImplementedError</span></code> |
| </td> |
| <td> |
| <div class="doc-md-description"> |
| <p>If attempting to visit an unsupported expression.</p> |
| </div> |
| </td> |
| </tr> |
| </tbody> |
| </table> |
| |
| |
| <details class="quote"> |
| <summary>Source code in <code>pyiceberg/expressions/visitors.py</code></summary> |
| <div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-0-140">140</a></span> |
| <span class="normal"><a href="#__codelineno-0-141">141</a></span> |
| <span class="normal"><a href="#__codelineno-0-142">142</a></span> |
| <span class="normal"><a href="#__codelineno-0-143">143</a></span> |
| <span class="normal"><a href="#__codelineno-0-144">144</a></span> |
| <span class="normal"><a href="#__codelineno-0-145">145</a></span> |
| <span class="normal"><a href="#__codelineno-0-146">146</a></span> |
| <span class="normal"><a href="#__codelineno-0-147">147</a></span> |
| <span class="normal"><a href="#__codelineno-0-148">148</a></span> |
| <span class="normal"><a href="#__codelineno-0-149">149</a></span> |
| <span class="normal"><a href="#__codelineno-0-150">150</a></span> |
| <span class="normal"><a href="#__codelineno-0-151">151</a></span> |
| <span class="normal"><a href="#__codelineno-0-152">152</a></span> |
| <span class="normal"><a href="#__codelineno-0-153">153</a></span></pre></div></td><td class="code"><div><pre><span></span><code><a id="__codelineno-0-140" name="__codelineno-0-140"></a><span class="nd">@singledispatch</span> |
| <a id="__codelineno-0-141" name="__codelineno-0-141"></a><span class="k">def</span><span class="w"> </span><span class="nf">visit</span><span class="p">(</span><span class="n">obj</span><span class="p">:</span> <span class="n">BooleanExpression</span><span class="p">,</span> <span class="n">visitor</span><span class="p">:</span> <span class="n">BooleanExpressionVisitor</span><span class="p">[</span><span class="n">T</span><span class="p">])</span> <span class="o">-></span> <span class="n">T</span><span class="p">:</span> |
| <a id="__codelineno-0-142" name="__codelineno-0-142"></a><span class="w"> </span><span class="sd">"""Apply a boolean expression visitor to any point within an expression.</span> |
| <a id="__codelineno-0-143" name="__codelineno-0-143"></a> |
| <a id="__codelineno-0-144" name="__codelineno-0-144"></a><span class="sd"> The function traverses the expression in post-order fashion.</span> |
| <a id="__codelineno-0-145" name="__codelineno-0-145"></a> |
| <a id="__codelineno-0-146" name="__codelineno-0-146"></a><span class="sd"> Args:</span> |
| <a id="__codelineno-0-147" name="__codelineno-0-147"></a><span class="sd"> obj (BooleanExpression): An instance of a BooleanExpression.</span> |
| <a id="__codelineno-0-148" name="__codelineno-0-148"></a><span class="sd"> visitor (BooleanExpressionVisitor[T]): An instance of an implementation of the generic BooleanExpressionVisitor base class.</span> |
| <a id="__codelineno-0-149" name="__codelineno-0-149"></a> |
| <a id="__codelineno-0-150" name="__codelineno-0-150"></a><span class="sd"> Raises:</span> |
| <a id="__codelineno-0-151" name="__codelineno-0-151"></a><span class="sd"> NotImplementedError: If attempting to visit an unsupported expression.</span> |
| <a id="__codelineno-0-152" name="__codelineno-0-152"></a><span class="sd"> """</span> |
| <a id="__codelineno-0-153" name="__codelineno-0-153"></a> <span class="k">raise</span> <span class="ne">NotImplementedError</span><span class="p">(</span><span class="sa">f</span><span class="s2">"Cannot visit unsupported expression: </span><span class="si">{</span><span class="n">obj</span><span class="si">}</span><span class="s2">"</span><span class="p">)</span> |
| </code></pre></div></td></tr></table></div> |
| </details> |
| </div> |
| |
| </div> |
| |
| |
| |
| </div> |
| |
| </div> |
| |
| </div> |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| </article> |
| </div> |
| |
| |
| <script>var target=document.getElementById(location.hash.slice(1));target&&target.name&&(target.checked=target.name.startsWith("__tabbed_"))</script> |
| </div> |
| |
| <button type="button" class="md-top md-icon" data-md-component="top" hidden> |
| |
| <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M13 20h-2V8l-5.5 5.5-1.42-1.42L12 4.16l7.92 7.92-1.42 1.42L13 8z"/></svg> |
| Back to top |
| </button> |
| |
| </main> |
| |
| <footer class="md-footer"> |
| |
| <div class="md-footer-meta md-typeset"> |
| <div class="md-footer-meta__inner md-grid"> |
| <div class="md-copyright"> |
| |
| |
| Made with |
| <a href="https://squidfunk.github.io/mkdocs-material/" target="_blank" rel="noopener"> |
| Material for MkDocs |
| </a> |
| |
| </div> |
| |
| </div> |
| </div> |
| </footer> |
| |
| </div> |
| <div class="md-dialog" data-md-component="dialog"> |
| <div class="md-dialog__inner md-typeset"></div> |
| </div> |
| |
| |
| |
| |
| <script id="__config" type="application/json">{"base": "../../../..", "features": ["navigation.top", "navigation.tracking", "navigation.tabs", "navigation.tabs.sticky", "content.code.copy"], "search": "../../../../assets/javascripts/workers/search.973d3a69.min.js", "tags": null, "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version": "Select version"}, "version": null}</script> |
| |
| |
| <script src="../../../../assets/javascripts/bundle.f55a23d4.min.js"></script> |
| |
| |
| </body> |
| </html> |