You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@iceberg.apache.org by gi...@apache.org on 2024/07/30 23:59:19 UTC
(iceberg-python) branch gh-pages updated (3cdab285 -> 9c5a412d)
This is an automated email from the ASF dual-hosted git repository.
github-bot pushed a change to branch gh-pages
in repository https://gitbox.apache.org/repos/asf/iceberg-python.git
discard 3cdab285 Publish Python docs
new 9c5a412d Publish Python docs
This update added new revisions after undoing existing revisions.
That is to say, some revisions that were in the old version of the
branch are not in the new version. This situation occurs
when a user --force pushes a change and generates a repository
containing something like this:
* -- * -- B -- O -- O -- O (3cdab285)
\
N -- N -- N refs/heads/gh-pages (9c5a412d)
You should already have received notification emails for all of the O
revisions, and so the following emails describe only the N revisions
from the common base, B.
Any revisions marked "omit" are not gone; other references still
refer to them. Any revisions marked "discard" are gone forever.
The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails. The revisions
listed as "add" were already present in the repository and have only
been added to this reference.
Summary of changes:
404.html | 12 +-
SUMMARY/index.html | 12 +-
api/index.html | 1474 +-
assets/_mkdocstrings.css | 12 +-
.../images/ghactions-run-workflow-pypi-upload.png | Bin 0 -> 221264 bytes
.../images/ghactions-run-workflow-svn-upload.png | Bin 0 -> 218863 bytes
assets/javascripts/bundle.8fd75fb4.min.js | 29 -
assets/javascripts/bundle.8fd75fb4.min.js.map | 7 -
assets/javascripts/bundle.fe8b6f2b.min.js | 29 +
assets/javascripts/bundle.fe8b6f2b.min.js.map | 7 +
assets/stylesheets/main.3cba04c6.min.css | 1 +
assets/stylesheets/main.3cba04c6.min.css.map | 1 +
assets/stylesheets/main.f2e4d321.min.css | 1 -
assets/stylesheets/main.f2e4d321.min.css.map | 1 -
cli/index.html | 43 +-
community/index.html | 24 +-
configuration/index.html | 929 +-
contributing/index.html | 91 +-
how-to-release/index.html | 320 +-
index.html | 24 +-
objects.inv | Bin 9815 -> 11426 bytes
reference/SUMMARY/index.html | 12 +-
reference/pyiceberg/avro/codecs/bzip2/index.html | 18 +-
reference/pyiceberg/avro/codecs/codec/index.html | 43 +-
reference/pyiceberg/avro/codecs/deflate/index.html | 18 +-
reference/pyiceberg/avro/codecs/index.html | 20 +-
.../pyiceberg/avro/codecs/snappy_codec/index.html | 18 +-
.../avro/codecs/zstandard_codec/index.html | 18 +-
reference/pyiceberg/avro/decoder/index.html | 354 +-
reference/pyiceberg/avro/encoder/index.html | 230 +-
reference/pyiceberg/avro/file/index.html | 970 +-
reference/pyiceberg/avro/index.html | 18 +-
reference/pyiceberg/avro/reader/index.html | 490 +-
reference/pyiceberg/avro/resolver/index.html | 664 +-
reference/pyiceberg/avro/writer/index.html | 314 +-
reference/pyiceberg/catalog/dynamodb/index.html | 4071 +++--
reference/pyiceberg/catalog/glue/index.html | 4082 ++---
reference/pyiceberg/catalog/hive/index.html | 3860 ++---
reference/pyiceberg/catalog/index.html | 6522 ++++----
reference/pyiceberg/catalog/noop/index.html | 526 +-
reference/pyiceberg/catalog/rest/index.html | 2021 ++-
reference/pyiceberg/catalog/sql/index.html | 4517 +++---
reference/pyiceberg/cli/console/index.html | 1164 +-
reference/pyiceberg/cli/index.html | 18 +-
reference/pyiceberg/cli/output/index.html | 511 +-
reference/pyiceberg/conversions/index.html | 400 +-
reference/pyiceberg/exceptions/index.html | 524 +-
reference/pyiceberg/expressions/index.html | 5235 +++----
.../pyiceberg/expressions/literals/index.html | 607 +-
reference/pyiceberg/expressions/parser/index.html | 38 +-
.../pyiceberg/expressions/visitors/index.html | 2452 ++-
reference/pyiceberg/index.html | 18 +-
reference/pyiceberg/io/fsspec/index.html | 1825 +--
reference/pyiceberg/io/index.html | 2091 ++-
reference/pyiceberg/io/pyarrow/index.html | 4653 +++---
reference/pyiceberg/manifest/index.html | 2106 +--
reference/pyiceberg/partitioning/index.html | 1694 +-
reference/pyiceberg/schema/index.html | 6800 ++++----
reference/pyiceberg/serializers/index.html | 655 +-
reference/pyiceberg/table/index.html | 15421 ++++++++++++-------
reference/pyiceberg/table/metadata/index.html | 2925 ++--
reference/pyiceberg/table/name_mapping/index.html | 373 +-
reference/pyiceberg/table/refs/index.html | 81 +-
reference/pyiceberg/table/snapshots/index.html | 774 +-
reference/pyiceberg/table/sorting/index.html | 491 +-
reference/pyiceberg/transforms/index.html | 3042 ++--
reference/pyiceberg/typedef/index.html | 762 +-
reference/pyiceberg/types/index.html | 3627 ++---
reference/pyiceberg/utils/bin_packing/index.html | 81 +-
reference/pyiceberg/utils/concurrent/index.html | 83 +-
reference/pyiceberg/utils/config/index.html | 118 +-
reference/pyiceberg/utils/datetime/index.html | 460 +-
reference/pyiceberg/utils/decimal/index.html | 858 +-
reference/pyiceberg/utils/deprecated/index.html | 38 +-
reference/pyiceberg/utils/index.html | 18 +-
reference/pyiceberg/utils/lazydict/index.html | 155 +-
reference/pyiceberg/utils/parsing/index.html | 39 +-
.../pyiceberg/utils/schema_conversion/index.html | 452 +-
reference/pyiceberg/utils/singleton/index.html | 196 +-
reference/pyiceberg/utils/truncate/index.html | 18 +-
search/search_index.json | 2 +-
sitemap.xml | 136 +-
sitemap.xml.gz | Bin 670 -> 670 bytes
verify-release/index.html | 80 +-
84 files changed, 50755 insertions(+), 42069 deletions(-)
create mode 100644 assets/images/ghactions-run-workflow-pypi-upload.png
create mode 100644 assets/images/ghactions-run-workflow-svn-upload.png
delete mode 100644 assets/javascripts/bundle.8fd75fb4.min.js
delete mode 100644 assets/javascripts/bundle.8fd75fb4.min.js.map
create mode 100644 assets/javascripts/bundle.fe8b6f2b.min.js
create mode 100644 assets/javascripts/bundle.fe8b6f2b.min.js.map
create mode 100644 assets/stylesheets/main.3cba04c6.min.css
create mode 100644 assets/stylesheets/main.3cba04c6.min.css.map
delete mode 100644 assets/stylesheets/main.f2e4d321.min.css
delete mode 100644 assets/stylesheets/main.f2e4d321.min.css.map
(iceberg-python) 01/01: Publish Python docs
Posted by gi...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
github-bot pushed a commit to branch gh-pages
in repository https://gitbox.apache.org/repos/asf/iceberg-python.git
commit 9c5a412d217518c2e4d13e9e8b767f01a59a957e
Author: GitHub Actions <ac...@github.com>
AuthorDate: Tue Jul 30 23:59:11 2024 +0000
Publish Python docs
---
404.html | 2230 +++
CNAME | 1 +
SUMMARY/index.html | 2289 ++++
api/index.html | 4143 ++++++
assets/_mkdocstrings.css | 119 +
assets/images/favicon.png | Bin 0 -> 1870 bytes
.../images/ghactions-run-workflow-pypi-upload.png | Bin 0 -> 221264 bytes
.../images/ghactions-run-workflow-svn-upload.png | Bin 0 -> 218863 bytes
assets/images/iceberg-logo-icon.png | Bin 0 -> 17608 bytes
assets/javascripts/bundle.fe8b6f2b.min.js | 29 +
assets/javascripts/bundle.fe8b6f2b.min.js.map | 7 +
assets/javascripts/lunr/min/lunr.ar.min.js | 1 +
assets/javascripts/lunr/min/lunr.da.min.js | 18 +
assets/javascripts/lunr/min/lunr.de.min.js | 18 +
assets/javascripts/lunr/min/lunr.du.min.js | 18 +
assets/javascripts/lunr/min/lunr.el.min.js | 1 +
assets/javascripts/lunr/min/lunr.es.min.js | 18 +
assets/javascripts/lunr/min/lunr.fi.min.js | 18 +
assets/javascripts/lunr/min/lunr.fr.min.js | 18 +
assets/javascripts/lunr/min/lunr.he.min.js | 1 +
assets/javascripts/lunr/min/lunr.hi.min.js | 1 +
assets/javascripts/lunr/min/lunr.hu.min.js | 18 +
assets/javascripts/lunr/min/lunr.hy.min.js | 1 +
assets/javascripts/lunr/min/lunr.it.min.js | 18 +
assets/javascripts/lunr/min/lunr.ja.min.js | 1 +
assets/javascripts/lunr/min/lunr.jp.min.js | 1 +
assets/javascripts/lunr/min/lunr.kn.min.js | 1 +
assets/javascripts/lunr/min/lunr.ko.min.js | 1 +
assets/javascripts/lunr/min/lunr.multi.min.js | 1 +
assets/javascripts/lunr/min/lunr.nl.min.js | 18 +
assets/javascripts/lunr/min/lunr.no.min.js | 18 +
assets/javascripts/lunr/min/lunr.pt.min.js | 18 +
assets/javascripts/lunr/min/lunr.ro.min.js | 18 +
assets/javascripts/lunr/min/lunr.ru.min.js | 18 +
assets/javascripts/lunr/min/lunr.sa.min.js | 1 +
.../lunr/min/lunr.stemmer.support.min.js | 1 +
assets/javascripts/lunr/min/lunr.sv.min.js | 18 +
assets/javascripts/lunr/min/lunr.ta.min.js | 1 +
assets/javascripts/lunr/min/lunr.te.min.js | 1 +
assets/javascripts/lunr/min/lunr.th.min.js | 1 +
assets/javascripts/lunr/min/lunr.tr.min.js | 18 +
assets/javascripts/lunr/min/lunr.vi.min.js | 1 +
assets/javascripts/lunr/min/lunr.zh.min.js | 1 +
assets/javascripts/lunr/tinyseg.js | 206 +
assets/javascripts/lunr/wordcut.js | 6708 +++++++++
assets/javascripts/workers/search.b8dbb3d2.min.js | 42 +
.../javascripts/workers/search.b8dbb3d2.min.js.map | 7 +
assets/stylesheets/main.3cba04c6.min.css | 1 +
assets/stylesheets/main.3cba04c6.min.css.map | 1 +
assets/stylesheets/palette.06af60db.min.css | 1 +
assets/stylesheets/palette.06af60db.min.css.map | 1 +
cli/index.html | 2483 ++++
community/index.html | 2465 ++++
configuration/index.html | 3512 +++++
contributing/index.html | 2609 ++++
how-to-release/index.html | 2704 ++++
index.html | 2601 ++++
objects.inv | Bin 0 -> 11426 bytes
reference/SUMMARY/index.html | 2326 ++++
reference/pyiceberg/avro/codecs/bzip2/index.html | 2361 ++++
reference/pyiceberg/avro/codecs/codec/index.html | 2441 ++++
reference/pyiceberg/avro/codecs/deflate/index.html | 2361 ++++
reference/pyiceberg/avro/codecs/index.html | 2322 ++++
.../pyiceberg/avro/codecs/snappy_codec/index.html | 2361 ++++
.../avro/codecs/zstandard_codec/index.html | 2361 ++++
reference/pyiceberg/avro/decoder/index.html | 3530 +++++
reference/pyiceberg/avro/encoder/index.html | 2904 ++++
reference/pyiceberg/avro/file/index.html | 3571 +++++
reference/pyiceberg/avro/index.html | 2314 ++++
reference/pyiceberg/avro/reader/index.html | 4103 ++++++
reference/pyiceberg/avro/resolver/index.html | 3175 +++++
reference/pyiceberg/avro/writer/index.html | 3229 +++++
reference/pyiceberg/catalog/dynamodb/index.html | 5550 ++++++++
reference/pyiceberg/catalog/glue/index.html | 5304 +++++++
reference/pyiceberg/catalog/hive/index.html | 5157 +++++++
reference/pyiceberg/catalog/index.html | 7249 ++++++++++
reference/pyiceberg/catalog/noop/index.html | 2734 ++++
reference/pyiceberg/catalog/rest/index.html | 4160 ++++++
reference/pyiceberg/catalog/sql/index.html | 5796 ++++++++
reference/pyiceberg/cli/console/index.html | 3563 +++++
reference/pyiceberg/cli/index.html | 2314 ++++
reference/pyiceberg/cli/output/index.html | 2951 ++++
reference/pyiceberg/conversions/index.html | 2785 ++++
reference/pyiceberg/exceptions/index.html | 3365 +++++
reference/pyiceberg/expressions/index.html | 9331 +++++++++++++
.../pyiceberg/expressions/literals/index.html | 4133 ++++++
reference/pyiceberg/expressions/parser/index.html | 2403 ++++
.../pyiceberg/expressions/visitors/index.html | 5072 +++++++
reference/pyiceberg/index.html | 2312 ++++
reference/pyiceberg/io/fsspec/index.html | 3956 ++++++
reference/pyiceberg/io/index.html | 4146 ++++++
reference/pyiceberg/io/pyarrow/index.html | 6335 +++++++++
reference/pyiceberg/manifest/index.html | 4542 ++++++
reference/pyiceberg/partitioning/index.html | 3946 ++++++
reference/pyiceberg/schema/index.html | 10232 ++++++++++++++
reference/pyiceberg/serializers/index.html | 3378 +++++
reference/pyiceberg/table/index.html | 13704 +++++++++++++++++++
reference/pyiceberg/table/metadata/index.html | 5689 ++++++++
reference/pyiceberg/table/name_mapping/index.html | 3191 +++++
reference/pyiceberg/table/refs/index.html | 2539 ++++
reference/pyiceberg/table/snapshots/index.html | 3175 +++++
reference/pyiceberg/table/sorting/index.html | 3323 +++++
reference/pyiceberg/transforms/index.html | 5254 +++++++
reference/pyiceberg/typedef/index.html | 3481 +++++
reference/pyiceberg/types/index.html | 6722 +++++++++
reference/pyiceberg/utils/bin_packing/index.html | 2675 ++++
reference/pyiceberg/utils/concurrent/index.html | 2569 ++++
reference/pyiceberg/utils/config/index.html | 2810 ++++
reference/pyiceberg/utils/datetime/index.html | 3379 +++++
reference/pyiceberg/utils/decimal/index.html | 3181 +++++
reference/pyiceberg/utils/deprecated/index.html | 2446 ++++
reference/pyiceberg/utils/index.html | 2314 ++++
reference/pyiceberg/utils/lazydict/index.html | 2693 ++++
reference/pyiceberg/utils/parsing/index.html | 2447 ++++
.../pyiceberg/utils/schema_conversion/index.html | 3928 ++++++
reference/pyiceberg/utils/singleton/index.html | 2546 ++++
reference/pyiceberg/utils/truncate/index.html | 2357 ++++
search/search_index.json | 1 +
sitemap.xml | 343 +
sitemap.xml.gz | Bin 0 -> 670 bytes
verify-release/index.html | 2499 ++++
121 files changed, 265785 insertions(+)
diff --git a/404.html b/404.html
new file mode 100644
index 00000000..96e79b39
--- /dev/null
+++ b/404.html
@@ -0,0 +1,2230 @@
+
+<!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="icon" href="/assets/images/iceberg-logo-icon.png">
+ <meta name="generator" content="mkdocs-1.6.0, mkdocs-material-9.5.30">
+
+
+
+ <title>PyIceberg</title>
+
+
+
+ <link rel="stylesheet" href="/assets/stylesheets/main.3cba04c6.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>
+
+
+
+
+
+
+ </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">
+
+ </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 6h18v2H3V6m0 5h18v2H3v-2m0 5h18v2H3v-2Z"/></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">
+
+
+
+ </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 12 20 8.69Z"/></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 12c0-2.42-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 12 20 8.69Z"/></svg>
+ </label>
+
+
+</form>
+
+
+
+ <script>var media,input,key,value,palette=__md_get("__palette");if(palette&&palette.color){"(prefers-color-scheme)"===palette.color.media&&(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.p [...]
+
+
+
+ <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.516 6.516 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 5Z"/></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.516 6.516 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 5Z"/></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 11h12Z"/></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 12 19 6.41Z"/></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 6.6.0 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 2024 Fonticons, Inc.--><path d="M439.55 236.05 244 40.45a28.87 28.87 0 0 0-40.81 0l-40.66 40.63 51.52 51.52c27.06-9.14 52.68 16.77 43.39 43.68l49.66 49.66c34.23-11.8 61.18 31 35.47 56.69-26.49 26.49-70.21-2.87-56-37.34L240.22 199v121.85c25 [...]
+ </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">
+ <a href="/reference/pyiceberg/" 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 6.6.0 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 2024 Fonticons, Inc.--><path d="M439.55 236.05 244 40.45a28.87 28.87 0 0 0-40.81 0l-40.66 40.63 51.52 51.52c27.06-9.14 52.68 16.77 43.39 43.68l49.66 49.66c34.23-11.8 61.18 31 35.47 56.69-26.49 26.49-70.21-2.87-56-37.34L240.22 199v121.85c25 [...]
+ </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">
+ <a href="/api/" class="md-nav__link">
+
+
+ <span class="md-ellipsis">
+ API
+ </span>
+
+
+ </a>
+ </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>
+
+
+
+
+ </ul>
+ </nav>
+
+ </li>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <li class="md-nav__item md-nav__item--nested">
+
+
+
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_8" >
+
+
+ <label class="md-nav__link" for="__nav_8" id="__nav_8_label" tabindex="0">
+
+
+ <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="false">
+ <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--nested">
+
+
+
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_8_1" >
+
+
+
+ <div class="md-nav__link md-nav__container">
+ <a href="/reference/pyiceberg/" 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="false">
+ <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="/reference/pyiceberg/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="/reference/pyiceberg/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="/reference/pyiceberg/avro/codecs/bzip2/" class="md-nav__link">
+
+
+ <span class="md-ellipsis">
+ bzip2
+ </span>
+
+
+ </a>
+ </li>
+
+
+
+
+
+
+
+
+
+
+ <li class="md-nav__item">
+ <a href="/reference/pyiceberg/avro/codecs/codec/" class="md-nav__link">
+
+
+ <span class="md-ellipsis">
+ codec
+ </span>
+
+
+ </a>
+ </li>
+
+
+
+
+
+
+
+
+
+
+ <li class="md-nav__item">
+ <a href="/reference/pyiceberg/avro/codecs/deflate/" class="md-nav__link">
+
+
+ <span class="md-ellipsis">
+ deflate
+ </span>
+
+
+ </a>
+ </li>
+
+
+
+
+
+
+
+
+
+
+ <li class="md-nav__item">
+ <a href="/reference/pyiceberg/avro/codecs/snappy_codec/" class="md-nav__link">
+
+
+ <span class="md-ellipsis">
+ snappy_codec
+ </span>
+
+
+ </a>
+ </li>
+
+
+
+
+
+
+
+
+
+
+ <li class="md-nav__item">
+ <a href="/reference/pyiceberg/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="/reference/pyiceberg/avro/decoder/" class="md-nav__link">
+
+
+ <span class="md-ellipsis">
+ decoder
+ </span>
+
+
+ </a>
+ </li>
+
+
+
+
+
+
+
+
+
+
+ <li class="md-nav__item">
+ <a href="/reference/pyiceberg/avro/encoder/" class="md-nav__link">
+
+
+ <span class="md-ellipsis">
+ encoder
+ </span>
+
+
+ </a>
+ </li>
+
+
+
+
+
+
+
+
+
+
+ <li class="md-nav__item">
+ <a href="/reference/pyiceberg/avro/file/" class="md-nav__link">
+
+
+ <span class="md-ellipsis">
+ file
+ </span>
+
+
+ </a>
+ </li>
+
+
+
+
+
+
+
+
+
+
+ <li class="md-nav__item">
+ <a href="/reference/pyiceberg/avro/reader/" class="md-nav__link">
+
+
+ <span class="md-ellipsis">
+ reader
+ </span>
+
+
+ </a>
+ </li>
+
+
+
+
+
+
+
+
+
+
+ <li class="md-nav__item">
+ <a href="/reference/pyiceberg/avro/resolver/" class="md-nav__link">
+
+
+ <span class="md-ellipsis">
+ resolver
+ </span>
+
+
+ </a>
+ </li>
+
+
+
+
+
+
+
+
+
+
+ <li class="md-nav__item">
+ <a href="/reference/pyiceberg/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="/reference/pyiceberg/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="/reference/pyiceberg/catalog/dynamodb/" class="md-nav__link">
+
+
+ <span class="md-ellipsis">
+ dynamodb
+ </span>
+
+
+ </a>
+ </li>
+
+
+
+
+
+
+
+
+
+
+ <li class="md-nav__item">
+ <a href="/reference/pyiceberg/catalog/glue/" class="md-nav__link">
+
+
+ <span class="md-ellipsis">
+ glue
+ </span>
+
+
+ </a>
+ </li>
+
+
+
+
+
+
+
+
+
+
+ <li class="md-nav__item">
+ <a href="/reference/pyiceberg/catalog/hive/" class="md-nav__link">
+
+
+ <span class="md-ellipsis">
+ hive
+ </span>
+
+
+ </a>
+ </li>
+
+
+
+
+
+
+
+
+
+
+ <li class="md-nav__item">
+ <a href="/reference/pyiceberg/catalog/noop/" class="md-nav__link">
+
+
+ <span class="md-ellipsis">
+ noop
+ </span>
+
+
+ </a>
+ </li>
+
+
+
+
+
+
+
+
+
+
+ <li class="md-nav__item">
+ <a href="/reference/pyiceberg/catalog/rest/" class="md-nav__link">
+
+
+ <span class="md-ellipsis">
+ rest
+ </span>
+
+
+ </a>
+ </li>
+
+
+
+
+
+
+
+
+
+
+ <li class="md-nav__item">
+ <a href="/reference/pyiceberg/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="/reference/pyiceberg/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="/reference/pyiceberg/cli/console/" class="md-nav__link">
+
+
+ <span class="md-ellipsis">
+ console
+ </span>
+
+
+ </a>
+ </li>
+
+
+
+
+
+
+
+
+
+
+ <li class="md-nav__item">
+ <a href="/reference/pyiceberg/cli/output/" class="md-nav__link">
+
+
+ <span class="md-ellipsis">
+ output
+ </span>
+
+
+ </a>
+ </li>
+
+
+
+
+ </ul>
+ </nav>
+
+ </li>
+
+
+
+
+
+
+
+
+
+
+ <li class="md-nav__item">
+ <a href="/reference/pyiceberg/conversions/" class="md-nav__link">
+
+
+ <span class="md-ellipsis">
+ conversions
+ </span>
+
+
+ </a>
+ </li>
+
+
+
+
+
+
+
+
+
+
+ <li class="md-nav__item">
+ <a href="/reference/pyiceberg/exceptions/" class="md-nav__link">
+
+
+ <span class="md-ellipsis">
+ exceptions
+ </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_6" >
+
+
+
+ <div class="md-nav__link md-nav__container">
+ <a href="/reference/pyiceberg/expressions/" 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="false">
+ <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="/reference/pyiceberg/expressions/literals/" class="md-nav__link">
+
+
+ <span class="md-ellipsis">
+ literals
+ </span>
+
+
+ </a>
+ </li>
+
+
+
+
+
+
+
+
+
+
+ <li class="md-nav__item">
+ <a href="/reference/pyiceberg/expressions/parser/" class="md-nav__link">
+
+
+ <span class="md-ellipsis">
+ parser
+ </span>
+
+
+ </a>
+ </li>
+
+
+
+
+
+
+
+
+
+
+ <li class="md-nav__item">
+ <a href="/reference/pyiceberg/expressions/visitors/" class="md-nav__link">
+
+
+ <span class="md-ellipsis">
+ visitors
+ </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_7" >
+
+
+
+ <div class="md-nav__link md-nav__container">
+ <a href="/reference/pyiceberg/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="/reference/pyiceberg/io/fsspec/" class="md-nav__link">
+
+
+ <span class="md-ellipsis">
+ fsspec
+ </span>
+
+
+ </a>
+ </li>
+
+
+
+
+
+
+
+
+
+
+ <li class="md-nav__item">
+ <a href="/reference/pyiceberg/io/pyarrow/" class="md-nav__link">
+
+
+ <span class="md-ellipsis">
+ pyarrow
+ </span>
+
+
+ </a>
+ </li>
+
+
+
+
+ </ul>
+ </nav>
+
+ </li>
+
+
+
+
+
+
+
+
+
+
+ <li class="md-nav__item">
+ <a href="/reference/pyiceberg/manifest/" class="md-nav__link">
+
+
+ <span class="md-ellipsis">
+ manifest
+ </span>
+
+
+ </a>
+ </li>
+
+
+
+
+
+
+
+
+
+
+ <li class="md-nav__item">
+ <a href="/reference/pyiceberg/partitioning/" class="md-nav__link">
+
+
+ <span class="md-ellipsis">
+ partitioning
+ </span>
+
+
+ </a>
+ </li>
+
+
+
+
+
+
+
+
+
+
+ <li class="md-nav__item">
+ <a href="/reference/pyiceberg/schema/" class="md-nav__link">
+
+
+ <span class="md-ellipsis">
+ schema
+ </span>
+
+
+ </a>
+ </li>
+
+
+
+
+
+
+
+
+
+
+ <li class="md-nav__item">
+ <a href="/reference/pyiceberg/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="/reference/pyiceberg/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="/reference/pyiceberg/table/metadata/" class="md-nav__link">
+
+
+ <span class="md-ellipsis">
+ metadata
+ </span>
+
+
+ </a>
+ </li>
+
+
+
+
+
+
+
+
+
+
+ <li class="md-nav__item">
+ <a href="/reference/pyiceberg/table/name_mapping/" class="md-nav__link">
+
+
+ <span class="md-ellipsis">
+ name_mapping
+ </span>
+
+
+ </a>
+ </li>
+
+
+
+
+
+
+
+
+
+
+ <li class="md-nav__item">
+ <a href="/reference/pyiceberg/table/refs/" class="md-nav__link">
+
+
+ <span class="md-ellipsis">
+ refs
+ </span>
+
+
+ </a>
+ </li>
+
+
+
+
+
+
+
+
+
+
+ <li class="md-nav__item">
+ <a href="/reference/pyiceberg/table/snapshots/" class="md-nav__link">
+
+
+ <span class="md-ellipsis">
+ snapshots
+ </span>
+
+
+ </a>
+ </li>
+
+
+
+
+
+
+
+
+
+
+ <li class="md-nav__item">
+ <a href="/reference/pyiceberg/table/sorting/" class="md-nav__link">
+
+
+ <span class="md-ellipsis">
+ sorting
+ </span>
+
+
+ </a>
+ </li>
+
+
+
+
+ </ul>
+ </nav>
+
+ </li>
+
+
+
+
+
+
+
+
+
+
+ <li class="md-nav__item">
+ <a href="/reference/pyiceberg/transforms/" class="md-nav__link">
+
+
+ <span class="md-ellipsis">
+ transforms
+ </span>
+
+
+ </a>
+ </li>
+
+
+
+
+
+
+
+
+
+
+ <li class="md-nav__item">
+ <a href="/reference/pyiceberg/typedef/" class="md-nav__link">
+
+
+ <span class="md-ellipsis">
+ typedef
+ </span>
+
+
+ </a>
+ </li>
+
+
+
+
+
+
+
+
+
+
+ <li class="md-nav__item">
+ <a href="/reference/pyiceberg/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="/reference/pyiceberg/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="/reference/pyiceberg/utils/bin_packing/" class="md-nav__link">
+
+
+ <span class="md-ellipsis">
+ bin_packing
+ </span>
+
+
+ </a>
+ </li>
+
+
+
+
+
+
+
+
+
+
+ <li class="md-nav__item">
+ <a href="/reference/pyiceberg/utils/concurrent/" class="md-nav__link">
+
+
+ <span class="md-ellipsis">
+ concurrent
+ </span>
+
+
+ </a>
+ </li>
+
+
+
+
+
+
+
+
+
+
+ <li class="md-nav__item">
+ <a href="/reference/pyiceberg/utils/config/" class="md-nav__link">
+
+
+ <span class="md-ellipsis">
+ config
+ </span>
+
+
+ </a>
+ </li>
+
+
+
+
+
+
+
+
+
+
+ <li class="md-nav__item">
+ <a href="/reference/pyiceberg/utils/datetime/" class="md-nav__link">
+
+
+ <span class="md-ellipsis">
+ datetime
+ </span>
+
+
+ </a>
+ </li>
+
+
+
+
+
+
+
+
+
+
+ <li class="md-nav__item">
+ <a href="/reference/pyiceberg/utils/decimal/" class="md-nav__link">
+
+
+ <span class="md-ellipsis">
+ decimal
+ </span>
+
+
+ </a>
+ </li>
+
+
+
+
+
+
+
+
+
+
+ <li class="md-nav__item">
+ <a href="/reference/pyiceberg/utils/deprecated/" class="md-nav__link">
+
+
+ <span class="md-ellipsis">
+ deprecated
+ </span>
+
+
+ </a>
+ </li>
+
+
+
+
+
+
+
+
+
+
+ <li class="md-nav__item">
+ <a href="/reference/pyiceberg/utils/lazydict/" class="md-nav__link">
+
+
+ <span class="md-ellipsis">
+ lazydict
+ </span>
+
+
+ </a>
+ </li>
+
+
+
+
+
+
+
+
+
+
+ <li class="md-nav__item">
+ <a href="/reference/pyiceberg/utils/parsing/" class="md-nav__link">
+
+
+ <span class="md-ellipsis">
+ parsing
+ </span>
+
+
+ </a>
+ </li>
+
+
+
+
+
+
+
+
+
+
+ <li class="md-nav__item">
+ <a href="/reference/pyiceberg/utils/schema_conversion/" class="md-nav__link">
+
+
+ <span class="md-ellipsis">
+ schema_conversion
+ </span>
+
+
+ </a>
+ </li>
+
+
+
+
+
+
+
+
+
+
+ <li class="md-nav__item">
+ <a href="/reference/pyiceberg/utils/singleton/" class="md-nav__link">
+
+
+ <span class="md-ellipsis">
+ singleton
+ </span>
+
+
+ </a>
+ </li>
+
+
+
+
+
+
+
+
+
+
+ <li class="md-nav__item">
+ <a href="/reference/pyiceberg/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">
+
+
+
+
+</nav>
+ </div>
+ </div>
+ </div>
+
+
+
+ <div class="md-content" data-md-component="content">
+ <article class="md-content__inner md-typeset">
+
+ <h1>404 - Not found</h1>
+
+ </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 8v12Z"/></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"], "search": "/assets/javascripts/workers/search.b8dbb3d2.min.js", "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 [...]
+
+
+ <script src="/assets/javascripts/bundle.fe8b6f2b.min.js"></script>
+
+
+ </body>
+</html>
\ No newline at end of file
diff --git a/CNAME b/CNAME
new file mode 100644
index 00000000..0b63f25f
--- /dev/null
+++ b/CNAME
@@ -0,0 +1 @@
+py.iceberg.apache.org
diff --git a/SUMMARY/index.html b/SUMMARY/index.html
new file mode 100644
index 00000000..88cbf065
--- /dev/null
+++ b/SUMMARY/index.html
@@ -0,0 +1,2289 @@
+
+<!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/SUMMARY/">
+
+
+
+
+ <link rel="icon" href="../assets/images/iceberg-logo-icon.png">
+ <meta name="generator" content="mkdocs-1.6.0, mkdocs-material-9.5.30">
+
+
+
+ <title>SUMMARY - PyIceberg</title>
+
+
+
+ <link rel="stylesheet" href="../assets/stylesheets/main.3cba04c6.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>
+
+
+
+
+
+
+ </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">
+
+ </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 6h18v2H3V6m0 5h18v2H3v-2m0 5h18v2H3v-2Z"/></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">
+
+ SUMMARY
+
+ </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 12 20 8.69Z"/></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 12c0-2.42-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 12 20 8.69Z"/></svg>
+ </label>
+
+
+</form>
+
+
+
+ <script>var media,input,key,value,palette=__md_get("__palette");if(palette&&palette.color){"(prefers-color-scheme)"===palette.color.media&&(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.p [...]
+
+
+
+ <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.516 6.516 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 5Z"/></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.516 6.516 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 5Z"/></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 11h12Z"/></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 12 19 6.41Z"/></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 6.6.0 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 2024 Fonticons, Inc.--><path d="M439.55 236.05 244 40.45a28.87 28.87 0 0 0-40.81 0l-40.66 40.63 51.52 51.52c27.06-9.14 52.68 16.77 43.39 43.68l49.66 49.66c34.23-11.8 61.18 31 35.47 56.69-26.49 26.49-70.21-2.87-56-37.34L240.22 199v121.85c25 [...]
+ </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">
+ <a href="../reference/pyiceberg/" 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 6.6.0 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 2024 Fonticons, Inc.--><path d="M439.55 236.05 244 40.45a28.87 28.87 0 0 0-40.81 0l-40.66 40.63 51.52 51.52c27.06-9.14 52.68 16.77 43.39 43.68l49.66 49.66c34.23-11.8 61.18 31 35.47 56.69-26.49 26.49-70.21-2.87-56-37.34L240.22 199v121.85c25 [...]
+ </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">
+ <a href="../api/" class="md-nav__link">
+
+
+ <span class="md-ellipsis">
+ API
+ </span>
+
+
+ </a>
+ </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>
+
+
+
+
+ </ul>
+ </nav>
+
+ </li>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <li class="md-nav__item md-nav__item--nested">
+
+
+
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_8" >
+
+
+ <label class="md-nav__link" for="__nav_8" id="__nav_8_label" tabindex="0">
+
+
+ <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="false">
+ <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--nested">
+
+
+
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_8_1" >
+
+
+
+ <div class="md-nav__link md-nav__container">
+ <a href="../reference/pyiceberg/" 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="false">
+ <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="../reference/pyiceberg/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="../reference/pyiceberg/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="../reference/pyiceberg/avro/codecs/bzip2/" class="md-nav__link">
+
+
+ <span class="md-ellipsis">
+ bzip2
+ </span>
+
+
+ </a>
+ </li>
+
+
+
+
+
+
+
+
+
+
+ <li class="md-nav__item">
+ <a href="../reference/pyiceberg/avro/codecs/codec/" class="md-nav__link">
+
+
+ <span class="md-ellipsis">
+ codec
+ </span>
+
+
+ </a>
+ </li>
+
+
+
+
+
+
+
+
+
+
+ <li class="md-nav__item">
+ <a href="../reference/pyiceberg/avro/codecs/deflate/" class="md-nav__link">
+
+
+ <span class="md-ellipsis">
+ deflate
+ </span>
+
+
+ </a>
+ </li>
+
+
+
+
+
+
+
+
+
+
+ <li class="md-nav__item">
+ <a href="../reference/pyiceberg/avro/codecs/snappy_codec/" class="md-nav__link">
+
+
+ <span class="md-ellipsis">
+ snappy_codec
+ </span>
+
+
+ </a>
+ </li>
+
+
+
+
+
+
+
+
+
+
+ <li class="md-nav__item">
+ <a href="../reference/pyiceberg/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="../reference/pyiceberg/avro/decoder/" class="md-nav__link">
+
+
+ <span class="md-ellipsis">
+ decoder
+ </span>
+
+
+ </a>
+ </li>
+
+
+
+
+
+
+
+
+
+
+ <li class="md-nav__item">
+ <a href="../reference/pyiceberg/avro/encoder/" class="md-nav__link">
+
+
+ <span class="md-ellipsis">
+ encoder
+ </span>
+
+
+ </a>
+ </li>
+
+
+
+
+
+
+
+
+
+
+ <li class="md-nav__item">
+ <a href="../reference/pyiceberg/avro/file/" class="md-nav__link">
+
+
+ <span class="md-ellipsis">
+ file
+ </span>
+
+
+ </a>
+ </li>
+
+
+
+
+
+
+
+
+
+
+ <li class="md-nav__item">
+ <a href="../reference/pyiceberg/avro/reader/" class="md-nav__link">
+
+
+ <span class="md-ellipsis">
+ reader
+ </span>
+
+
+ </a>
+ </li>
+
+
+
+
+
+
+
+
+
+
+ <li class="md-nav__item">
+ <a href="../reference/pyiceberg/avro/resolver/" class="md-nav__link">
+
+
+ <span class="md-ellipsis">
+ resolver
+ </span>
+
+
+ </a>
+ </li>
+
+
+
+
+
+
+
+
+
+
+ <li class="md-nav__item">
+ <a href="../reference/pyiceberg/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="../reference/pyiceberg/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="../reference/pyiceberg/catalog/dynamodb/" class="md-nav__link">
+
+
+ <span class="md-ellipsis">
+ dynamodb
+ </span>
+
+
+ </a>
+ </li>
+
+
+
+
+
+
+
+
+
+
+ <li class="md-nav__item">
+ <a href="../reference/pyiceberg/catalog/glue/" class="md-nav__link">
+
+
+ <span class="md-ellipsis">
+ glue
+ </span>
+
+
+ </a>
+ </li>
+
+
+
+
+
+
+
+
+
+
+ <li class="md-nav__item">
+ <a href="../reference/pyiceberg/catalog/hive/" class="md-nav__link">
+
+
+ <span class="md-ellipsis">
+ hive
+ </span>
+
+
+ </a>
+ </li>
+
+
+
+
+
+
+
+
+
+
+ <li class="md-nav__item">
+ <a href="../reference/pyiceberg/catalog/noop/" class="md-nav__link">
+
+
+ <span class="md-ellipsis">
+ noop
+ </span>
+
+
+ </a>
+ </li>
+
+
+
+
+
+
+
+
+
+
+ <li class="md-nav__item">
+ <a href="../reference/pyiceberg/catalog/rest/" class="md-nav__link">
+
+
+ <span class="md-ellipsis">
+ rest
+ </span>
+
+
+ </a>
+ </li>
+
+
+
+
+
+
+
+
+
+
+ <li class="md-nav__item">
+ <a href="../reference/pyiceberg/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="../reference/pyiceberg/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="../reference/pyiceberg/cli/console/" class="md-nav__link">
+
+
+ <span class="md-ellipsis">
+ console
+ </span>
+
+
+ </a>
+ </li>
+
+
+
+
+
+
+
+
+
+
+ <li class="md-nav__item">
+ <a href="../reference/pyiceberg/cli/output/" class="md-nav__link">
+
+
+ <span class="md-ellipsis">
+ output
+ </span>
+
+
+ </a>
+ </li>
+
+
+
+
+ </ul>
+ </nav>
+
+ </li>
+
+
+
+
+
+
+
+
+
+
+ <li class="md-nav__item">
+ <a href="../reference/pyiceberg/conversions/" class="md-nav__link">
+
+
+ <span class="md-ellipsis">
+ conversions
+ </span>
+
+
+ </a>
+ </li>
+
+
+
+
+
+
+
+
+
+
+ <li class="md-nav__item">
+ <a href="../reference/pyiceberg/exceptions/" class="md-nav__link">
+
+
+ <span class="md-ellipsis">
+ exceptions
+ </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_6" >
+
+
+
+ <div class="md-nav__link md-nav__container">
+ <a href="../reference/pyiceberg/expressions/" 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="false">
+ <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="../reference/pyiceberg/expressions/literals/" class="md-nav__link">
+
+
+ <span class="md-ellipsis">
+ literals
+ </span>
+
+
+ </a>
+ </li>
+
+
+
+
+
+
+
+
+
+
+ <li class="md-nav__item">
+ <a href="../reference/pyiceberg/expressions/parser/" class="md-nav__link">
+
+
+ <span class="md-ellipsis">
+ parser
+ </span>
+
+
+ </a>
+ </li>
+
+
+
+
+
+
+
+
+
+
+ <li class="md-nav__item">
+ <a href="../reference/pyiceberg/expressions/visitors/" class="md-nav__link">
+
+
+ <span class="md-ellipsis">
+ visitors
+ </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_7" >
+
+
+
+ <div class="md-nav__link md-nav__container">
+ <a href="../reference/pyiceberg/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="../reference/pyiceberg/io/fsspec/" class="md-nav__link">
+
+
+ <span class="md-ellipsis">
+ fsspec
+ </span>
+
+
+ </a>
+ </li>
+
+
+
+
+
+
+
+
+
+
+ <li class="md-nav__item">
+ <a href="../reference/pyiceberg/io/pyarrow/" class="md-nav__link">
+
+
+ <span class="md-ellipsis">
+ pyarrow
+ </span>
+
+
+ </a>
+ </li>
+
+
+
+
+ </ul>
+ </nav>
+
+ </li>
+
+
+
+
+
+
+
+
+
+
+ <li class="md-nav__item">
+ <a href="../reference/pyiceberg/manifest/" class="md-nav__link">
+
+
+ <span class="md-ellipsis">
+ manifest
+ </span>
+
+
+ </a>
+ </li>
+
+
+
+
+
+
+
+
+
+
+ <li class="md-nav__item">
+ <a href="../reference/pyiceberg/partitioning/" class="md-nav__link">
+
+
+ <span class="md-ellipsis">
+ partitioning
+ </span>
+
+
+ </a>
+ </li>
+
+
+
+
+
+
+
+
+
+
+ <li class="md-nav__item">
+ <a href="../reference/pyiceberg/schema/" class="md-nav__link">
+
+
+ <span class="md-ellipsis">
+ schema
+ </span>
+
+
+ </a>
+ </li>
+
+
+
+
+
+
+
+
+
+
+ <li class="md-nav__item">
+ <a href="../reference/pyiceberg/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="../reference/pyiceberg/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="../reference/pyiceberg/table/metadata/" class="md-nav__link">
+
+
+ <span class="md-ellipsis">
+ metadata
+ </span>
+
+
+ </a>
+ </li>
+
+
+
+
+
+
+
+
+
+
+ <li class="md-nav__item">
+ <a href="../reference/pyiceberg/table/name_mapping/" class="md-nav__link">
+
+
+ <span class="md-ellipsis">
+ name_mapping
+ </span>
+
+
+ </a>
+ </li>
+
+
+
+
+
+
+
+
+
+
+ <li class="md-nav__item">
+ <a href="../reference/pyiceberg/table/refs/" class="md-nav__link">
+
+
+ <span class="md-ellipsis">
+ refs
+ </span>
+
+
+ </a>
+ </li>
+
+
+
+
+
+
+
+
+
+
+ <li class="md-nav__item">
+ <a href="../reference/pyiceberg/table/snapshots/" class="md-nav__link">
+
+
+ <span class="md-ellipsis">
+ snapshots
+ </span>
+
+
+ </a>
+ </li>
+
+
+
+
+
+
+
+
+
+
+ <li class="md-nav__item">
+ <a href="../reference/pyiceberg/table/sorting/" class="md-nav__link">
+
+
+ <span class="md-ellipsis">
+ sorting
+ </span>
+
+
+ </a>
+ </li>
+
+
+
+
+ </ul>
+ </nav>
+
+ </li>
+
+
+
+
+
+
+
+
+
+
+ <li class="md-nav__item">
+ <a href="../reference/pyiceberg/transforms/" class="md-nav__link">
+
+
+ <span class="md-ellipsis">
+ transforms
+ </span>
+
+
+ </a>
+ </li>
+
+
+
+
+
+
+
+
+
+
+ <li class="md-nav__item">
+ <a href="../reference/pyiceberg/typedef/" class="md-nav__link">
+
+
+ <span class="md-ellipsis">
+ typedef
+ </span>
+
+
+ </a>
+ </li>
+
+
+
+
+
+
+
+
+
+
+ <li class="md-nav__item">
+ <a href="../reference/pyiceberg/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="../reference/pyiceberg/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="../reference/pyiceberg/utils/bin_packing/" class="md-nav__link">
+
+
+ <span class="md-ellipsis">
+ bin_packing
+ </span>
+
+
+ </a>
+ </li>
+
+
+
+
+
+
+
+
+
+
+ <li class="md-nav__item">
+ <a href="../reference/pyiceberg/utils/concurrent/" class="md-nav__link">
+
+
+ <span class="md-ellipsis">
+ concurrent
+ </span>
+
+
+ </a>
+ </li>
+
+
+
+
+
+
+
+
+
+
+ <li class="md-nav__item">
+ <a href="../reference/pyiceberg/utils/config/" class="md-nav__link">
+
+
+ <span class="md-ellipsis">
+ config
+ </span>
+
+
+ </a>
+ </li>
+
+
+
+
+
+
+
+
+
+
+ <li class="md-nav__item">
+ <a href="../reference/pyiceberg/utils/datetime/" class="md-nav__link">
+
+
+ <span class="md-ellipsis">
+ datetime
+ </span>
+
+
+ </a>
+ </li>
+
+
+
+
+
+
+
+
+
+
+ <li class="md-nav__item">
+ <a href="../reference/pyiceberg/utils/decimal/" class="md-nav__link">
+
+
+ <span class="md-ellipsis">
+ decimal
+ </span>
+
+
+ </a>
+ </li>
+
+
+
+
+
+
+
+
+
+
+ <li class="md-nav__item">
+ <a href="../reference/pyiceberg/utils/deprecated/" class="md-nav__link">
+
+
+ <span class="md-ellipsis">
+ deprecated
+ </span>
+
+
+ </a>
+ </li>
+
+
+
+
+
+
+
+
+
+
+ <li class="md-nav__item">
+ <a href="../reference/pyiceberg/utils/lazydict/" class="md-nav__link">
+
+
+ <span class="md-ellipsis">
+ lazydict
+ </span>
+
+
+ </a>
+ </li>
+
+
+
+
+
+
+
+
+
+
+ <li class="md-nav__item">
+ <a href="../reference/pyiceberg/utils/parsing/" class="md-nav__link">
+
+
+ <span class="md-ellipsis">
+ parsing
+ </span>
+
+
+ </a>
+ </li>
+
+
+
+
+
+
+
+
+
+
+ <li class="md-nav__item">
+ <a href="../reference/pyiceberg/utils/schema_conversion/" class="md-nav__link">
+
+
+ <span class="md-ellipsis">
+ schema_conversion
+ </span>
+
+
+ </a>
+ </li>
+
+
+
+
+
+
+
+
+
+
+ <li class="md-nav__item">
+ <a href="../reference/pyiceberg/utils/singleton/" class="md-nav__link">
+
+
+ <span class="md-ellipsis">
+ singleton
+ </span>
+
+
+ </a>
+ </li>
+
+
+
+
+
+
+
+
+
+
+ <li class="md-nav__item">
+ <a href="../reference/pyiceberg/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">
+
+
+
+
+</nav>
+ </div>
+ </div>
+ </div>
+
+
+
+ <div class="md-content" data-md-component="content">
+ <article class="md-content__inner md-typeset">
+
+
+
+
+
+
+
+ <h1>SUMMARY</h1>
+
+<!--
+ - Licensed to the Apache Software Foundation (ASF) under one or more
+ - contributor license agreements. See the NOTICE file distributed with
+ - this work for additional information regarding copyright ownership.
+ - The ASF licenses this file to You under the Apache License, Version 2.0
+ - (the "License"); you may not use this file except in compliance with
+ - the License. You may obtain a copy of the License at
+ -
+ - http://www.apache.org/licenses/LICENSE-2.0
+ -
+ - Unless required by applicable law or agreed to in writing, software
+ - distributed under the License is distributed on an "AS IS" BASIS,
+ - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ - See the License for the specific language governing permissions and
+ - limitations under the License.
+ -->
+
+<!-- prettier-ignore-start -->
+
+<!-- markdown-link-check-disable -->
+
+<ul>
+<li><a href="../">Getting started</a></li>
+<li><a href="../configuration/">Configuration</a></li>
+<li><a href="../cli/">CLI</a></li>
+<li><a href="../api/">API</a></li>
+<li><a href="../contributing/">Contributing</a></li>
+<li><a href="../community/">Community</a></li>
+<li>Releases<ul>
+<li><a href="../verify-release/">Verify a release</a></li>
+<li><a href="../how-to-release/">How to release</a></li>
+</ul>
+</li>
+<li><a href="reference/">Code Reference</a></li>
+</ul>
+<!-- markdown-link-check-enable-->
+
+<!-- prettier-ignore-end -->
+
+
+
+
+
+
+
+
+
+
+
+
+
+ </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 8v12Z"/></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"], "search": "../assets/javascripts/workers/search.b8dbb3d2.min.js", "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. [...]
+
+
+ <script src="../assets/javascripts/bundle.fe8b6f2b.min.js"></script>
+
+
+ </body>
+</html>
\ No newline at end of file
diff --git a/api/index.html b/api/index.html
new file mode 100644
index 00000000..81bc48c8
--- /dev/null
+++ b/api/index.html
@@ -0,0 +1,4143 @@
+
+<!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/api/">
+
+
+ <link rel="prev" href="../cli/">
+
+
+ <link rel="next" href="../contributing/">
+
+
+ <link rel="icon" href="../assets/images/iceberg-logo-icon.png">
+ <meta name="generator" content="mkdocs-1.6.0, mkdocs-material-9.5.30">
+
+
+
+ <title>API - PyIceberg</title>
+
+
+
+ <link rel="stylesheet" href="../assets/stylesheets/main.3cba04c6.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>
+
+
+
+
+
+
+ </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="#python-api" 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 6h18v2H3V6m0 5h18v2H3v-2m0 5h18v2H3v-2Z"/></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">
+
+ API
+
+ </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 12 20 8.69Z"/></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 12c0-2.42-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 12 20 8.69Z"/></svg>
+ </label>
+
+
+</form>
+
+
+
+ <script>var media,input,key,value,palette=__md_get("__palette");if(palette&&palette.color){"(prefers-color-scheme)"===palette.color.media&&(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.p [...]
+
+
+
+ <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.516 6.516 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 5Z"/></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.516 6.516 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 5Z"/></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 11h12Z"/></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 12 19 6.41Z"/></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 6.6.0 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 2024 Fonticons, Inc.--><path d="M439.55 236.05 244 40.45a28.87 28.87 0 0 0-40.81 0l-40.66 40.63 51.52 51.52c27.06-9.14 52.68 16.77 43.39 43.68l49.66 49.66c34.23-11.8 61.18 31 35.47 56.69-26.49 26.49-70.21-2.87-56-37.34L240.22 199v121.85c25 [...]
+ </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 md-tabs__item--active">
+ <a href="./" 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">
+ <a href="../reference/pyiceberg/" 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" hidden>
+ <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 6.6.0 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 2024 Fonticons, Inc.--><path d="M439.55 236.05 244 40.45a28.87 28.87 0 0 0-40.81 0l-40.66 40.63 51.52 51.52c27.06-9.14 52.68 16.77 43.39 43.68l49.66 49.66c34.23-11.8 61.18 31 35.47 56.69-26.49 26.49-70.21-2.87-56-37.34L240.22 199v121.85c25 [...]
+ </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--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">
+ API
+ </span>
+
+
+ <span class="md-nav__icon md-icon"></span>
+ </label>
+
+ <a href="./" class="md-nav__link md-nav__link--active">
+
+
+ <span class="md-ellipsis">
+ API
+ </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="#create-a-table" class="md-nav__link">
+ <span class="md-ellipsis">
+ Create a table
+ </span>
+ </a>
+
+</li>
+
+ <li class="md-nav__item">
+ <a href="#load-a-table" class="md-nav__link">
+ <span class="md-ellipsis">
+ Load a table
+ </span>
+ </a>
+
+ <nav class="md-nav" aria-label="Load a table">
+ <ul class="md-nav__list">
+
+ <li class="md-nav__item">
+ <a href="#catalog-table" class="md-nav__link">
+ <span class="md-ellipsis">
+ Catalog table
+ </span>
+ </a>
+
+</li>
+
+ <li class="md-nav__item">
+ <a href="#static-table" class="md-nav__link">
+ <span class="md-ellipsis">
+ Static table
+ </span>
+ </a>
+
+</li>
+
+ </ul>
+ </nav>
+
+</li>
+
+ <li class="md-nav__item">
+ <a href="#check-if-a-table-exists" class="md-nav__link">
+ <span class="md-ellipsis">
+ Check if a table exists
+ </span>
+ </a>
+
+</li>
+
+ <li class="md-nav__item">
+ <a href="#write-support" class="md-nav__link">
+ <span class="md-ellipsis">
+ Write support
+ </span>
+ </a>
+
+</li>
+
+ <li class="md-nav__item">
+ <a href="#inspecting-tables" class="md-nav__link">
+ <span class="md-ellipsis">
+ Inspecting tables
+ </span>
+ </a>
+
+ <nav class="md-nav" aria-label="Inspecting tables">
+ <ul class="md-nav__list">
+
+ <li class="md-nav__item">
+ <a href="#snapshots" class="md-nav__link">
+ <span class="md-ellipsis">
+ Snapshots
+ </span>
+ </a>
+
+</li>
+
+ <li class="md-nav__item">
+ <a href="#partitions" class="md-nav__link">
+ <span class="md-ellipsis">
+ Partitions
+ </span>
+ </a>
+
+</li>
+
+ <li class="md-nav__item">
+ <a href="#entries" class="md-nav__link">
+ <span class="md-ellipsis">
+ Entries
+ </span>
+ </a>
+
+</li>
+
+ <li class="md-nav__item">
+ <a href="#references" class="md-nav__link">
+ <span class="md-ellipsis">
+ References
+ </span>
+ </a>
+
+</li>
+
+ <li class="md-nav__item">
+ <a href="#manifests" class="md-nav__link">
+ <span class="md-ellipsis">
+ Manifests
+ </span>
+ </a>
+
+</li>
+
+ <li class="md-nav__item">
+ <a href="#metadata-log-entries" class="md-nav__link">
+ <span class="md-ellipsis">
+ Metadata Log Entries
+ </span>
+ </a>
+
+</li>
+
+ <li class="md-nav__item">
+ <a href="#history" class="md-nav__link">
+ <span class="md-ellipsis">
+ History
+ </span>
+ </a>
+
+</li>
+
+ <li class="md-nav__item">
+ <a href="#files" class="md-nav__link">
+ <span class="md-ellipsis">
+ Files
+ </span>
+ </a>
+
+</li>
+
+ </ul>
+ </nav>
+
+</li>
+
+ <li class="md-nav__item">
+ <a href="#add-files" class="md-nav__link">
+ <span class="md-ellipsis">
+ Add Files
+ </span>
+ </a>
+
+</li>
+
+ <li class="md-nav__item">
+ <a href="#schema-evolution" class="md-nav__link">
+ <span class="md-ellipsis">
+ Schema evolution
+ </span>
+ </a>
+
+ <nav class="md-nav" aria-label="Schema evolution">
+ <ul class="md-nav__list">
+
+ <li class="md-nav__item">
+ <a href="#union-by-name" class="md-nav__link">
+ <span class="md-ellipsis">
+ Union by Name
+ </span>
+ </a>
+
+</li>
+
+ <li class="md-nav__item">
+ <a href="#add-column" class="md-nav__link">
+ <span class="md-ellipsis">
+ Add column
+ </span>
+ </a>
+
+</li>
+
+ <li class="md-nav__item">
+ <a href="#rename-column" class="md-nav__link">
+ <span class="md-ellipsis">
+ Rename column
+ </span>
+ </a>
+
+</li>
+
+ <li class="md-nav__item">
+ <a href="#move-column" class="md-nav__link">
+ <span class="md-ellipsis">
+ Move column
+ </span>
+ </a>
+
+</li>
+
+ <li class="md-nav__item">
+ <a href="#update-column" class="md-nav__link">
+ <span class="md-ellipsis">
+ Update column
+ </span>
+ </a>
+
+</li>
+
+ <li class="md-nav__item">
+ <a href="#delete-column" class="md-nav__link">
+ <span class="md-ellipsis">
+ Delete column
+ </span>
+ </a>
+
+</li>
+
+ </ul>
+ </nav>
+
+</li>
+
+ <li class="md-nav__item">
+ <a href="#partition-evolution" class="md-nav__link">
+ <span class="md-ellipsis">
+ Partition evolution
+ </span>
+ </a>
+
+ <nav class="md-nav" aria-label="Partition evolution">
+ <ul class="md-nav__list">
+
+ <li class="md-nav__item">
+ <a href="#add-fields" class="md-nav__link">
+ <span class="md-ellipsis">
+ Add fields
+ </span>
+ </a>
+
+</li>
+
+ <li class="md-nav__item">
+ <a href="#remove-fields" class="md-nav__link">
+ <span class="md-ellipsis">
+ Remove fields
+ </span>
+ </a>
+
+</li>
+
+ <li class="md-nav__item">
+ <a href="#rename-fields" class="md-nav__link">
+ <span class="md-ellipsis">
+ Rename fields
+ </span>
+ </a>
+
+</li>
+
+ </ul>
+ </nav>
+
+</li>
+
+ <li class="md-nav__item">
+ <a href="#table-properties" class="md-nav__link">
+ <span class="md-ellipsis">
+ Table properties
+ </span>
+ </a>
+
+</li>
+
+ <li class="md-nav__item">
+ <a href="#snapshot-properties" class="md-nav__link">
+ <span class="md-ellipsis">
+ Snapshot properties
+ </span>
+ </a>
+
+</li>
+
+ <li class="md-nav__item">
+ <a href="#snapshot-management" class="md-nav__link">
+ <span class="md-ellipsis">
+ Snapshot Management
+ </span>
+ </a>
+
+</li>
+
+ <li class="md-nav__item">
+ <a href="#query-the-data" class="md-nav__link">
+ <span class="md-ellipsis">
+ Query the data
+ </span>
+ </a>
+
+ <nav class="md-nav" aria-label="Query the data">
+ <ul class="md-nav__list">
+
+ <li class="md-nav__item">
+ <a href="#apache-arrow" class="md-nav__link">
+ <span class="md-ellipsis">
+ Apache Arrow
+ </span>
+ </a>
+
+</li>
+
+ <li class="md-nav__item">
+ <a href="#pandas" class="md-nav__link">
+ <span class="md-ellipsis">
+ Pandas
+ </span>
+ </a>
+
+</li>
+
+ <li class="md-nav__item">
+ <a href="#duckdb" class="md-nav__link">
+ <span class="md-ellipsis">
+ DuckDB
+ </span>
+ </a>
+
+</li>
+
+ <li class="md-nav__item">
+ <a href="#ray" class="md-nav__link">
+ <span class="md-ellipsis">
+ Ray
+ </span>
+ </a>
+
+</li>
+
+ <li class="md-nav__item">
+ <a href="#daft" class="md-nav__link">
+ <span class="md-ellipsis">
+ Daft
+ </span>
+ </a>
+
+</li>
+
+ </ul>
+ </nav>
+
+</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>
+
+
+
+
+ </ul>
+ </nav>
+
+ </li>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <li class="md-nav__item md-nav__item--nested">
+
+
+
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_8" >
+
+
+ <label class="md-nav__link" for="__nav_8" id="__nav_8_label" tabindex="0">
+
+
+ <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="false">
+ <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--nested">
+
+
+
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_8_1" >
+
+
+
+ <div class="md-nav__link md-nav__container">
+ <a href="../reference/pyiceberg/" 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="false">
+ <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="../reference/pyiceberg/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="../reference/pyiceberg/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="../reference/pyiceberg/avro/codecs/bzip2/" class="md-nav__link">
+
+
+ <span class="md-ellipsis">
+ bzip2
+ </span>
+
+
+ </a>
+ </li>
+
+
+
+
+
+
+
+
+
+
+ <li class="md-nav__item">
+ <a href="../reference/pyiceberg/avro/codecs/codec/" class="md-nav__link">
+
+
+ <span class="md-ellipsis">
+ codec
+ </span>
+
+
+ </a>
+ </li>
+
+
+
+
+
+
+
+
+
+
+ <li class="md-nav__item">
+ <a href="../reference/pyiceberg/avro/codecs/deflate/" class="md-nav__link">
+
+
+ <span class="md-ellipsis">
+ deflate
+ </span>
+
+
+ </a>
+ </li>
+
+
+
+
+
+
+
+
+
+
+ <li class="md-nav__item">
+ <a href="../reference/pyiceberg/avro/codecs/snappy_codec/" class="md-nav__link">
+
+
+ <span class="md-ellipsis">
+ snappy_codec
+ </span>
+
+
+ </a>
+ </li>
+
+
+
+
+
+
+
+
+
+
+ <li class="md-nav__item">
+ <a href="../reference/pyiceberg/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="../reference/pyiceberg/avro/decoder/" class="md-nav__link">
+
+
+ <span class="md-ellipsis">
+ decoder
+ </span>
+
+
+ </a>
+ </li>
+
+
+
+
+
+
+
+
+
+
+ <li class="md-nav__item">
+ <a href="../reference/pyiceberg/avro/encoder/" class="md-nav__link">
+
+
+ <span class="md-ellipsis">
+ encoder
+ </span>
+
+
+ </a>
+ </li>
+
+
+
+
+
+
+
+
+
+
+ <li class="md-nav__item">
+ <a href="../reference/pyiceberg/avro/file/" class="md-nav__link">
+
+
+ <span class="md-ellipsis">
+ file
+ </span>
+
+
+ </a>
+ </li>
+
+
+
+
+
+
+
+
+
+
+ <li class="md-nav__item">
+ <a href="../reference/pyiceberg/avro/reader/" class="md-nav__link">
+
+
+ <span class="md-ellipsis">
+ reader
+ </span>
+
+
+ </a>
+ </li>
+
+
+
+
+
+
+
+
+
+
+ <li class="md-nav__item">
+ <a href="../reference/pyiceberg/avro/resolver/" class="md-nav__link">
+
+
+ <span class="md-ellipsis">
+ resolver
+ </span>
+
+
+ </a>
+ </li>
+
+
+
+
+
+
+
+
+
+
+ <li class="md-nav__item">
+ <a href="../reference/pyiceberg/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="../reference/pyiceberg/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="../reference/pyiceberg/catalog/dynamodb/" class="md-nav__link">
+
+
+ <span class="md-ellipsis">
+ dynamodb
+ </span>
+
+
+ </a>
+ </li>
+
+
+
+
+
+
+
+
+
+
+ <li class="md-nav__item">
+ <a href="../reference/pyiceberg/catalog/glue/" class="md-nav__link">
+
+
+ <span class="md-ellipsis">
+ glue
+ </span>
+
+
+ </a>
+ </li>
+
+
+
+
+
+
+
+
+
+
+ <li class="md-nav__item">
+ <a href="../reference/pyiceberg/catalog/hive/" class="md-nav__link">
+
+
+ <span class="md-ellipsis">
+ hive
+ </span>
+
+
+ </a>
+ </li>
+
+
+
+
+
+
+
+
+
+
+ <li class="md-nav__item">
+ <a href="../reference/pyiceberg/catalog/noop/" class="md-nav__link">
+
+
+ <span class="md-ellipsis">
+ noop
+ </span>
+
+
+ </a>
+ </li>
+
+
+
+
+
+
+
+
+
+
+ <li class="md-nav__item">
+ <a href="../reference/pyiceberg/catalog/rest/" class="md-nav__link">
+
+
+ <span class="md-ellipsis">
+ rest
+ </span>
+
+
+ </a>
+ </li>
+
+
+
+
+
+
+
+
+
+
+ <li class="md-nav__item">
+ <a href="../reference/pyiceberg/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="../reference/pyiceberg/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="../reference/pyiceberg/cli/console/" class="md-nav__link">
+
+
+ <span class="md-ellipsis">
+ console
+ </span>
+
+
+ </a>
+ </li>
+
+
+
+
+
+
+
+
+
+
+ <li class="md-nav__item">
+ <a href="../reference/pyiceberg/cli/output/" class="md-nav__link">
+
+
+ <span class="md-ellipsis">
+ output
+ </span>
+
+
+ </a>
+ </li>
+
+
+
+
+ </ul>
+ </nav>
+
+ </li>
+
+
+
+
+
+
+
+
+
+
+ <li class="md-nav__item">
+ <a href="../reference/pyiceberg/conversions/" class="md-nav__link">
+
+
+ <span class="md-ellipsis">
+ conversions
+ </span>
+
+
+ </a>
+ </li>
+
+
+
+
+
+
+
+
+
+
+ <li class="md-nav__item">
+ <a href="../reference/pyiceberg/exceptions/" class="md-nav__link">
+
+
+ <span class="md-ellipsis">
+ exceptions
+ </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_6" >
+
+
+
+ <div class="md-nav__link md-nav__container">
+ <a href="../reference/pyiceberg/expressions/" 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="false">
+ <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="../reference/pyiceberg/expressions/literals/" class="md-nav__link">
+
+
+ <span class="md-ellipsis">
+ literals
+ </span>
+
+
+ </a>
+ </li>
+
+
+
+
+
+
+
+
+
+
+ <li class="md-nav__item">
+ <a href="../reference/pyiceberg/expressions/parser/" class="md-nav__link">
+
+
+ <span class="md-ellipsis">
+ parser
+ </span>
+
+
+ </a>
+ </li>
+
+
+
+
+
+
+
+
+
+
+ <li class="md-nav__item">
+ <a href="../reference/pyiceberg/expressions/visitors/" class="md-nav__link">
+
+
+ <span class="md-ellipsis">
+ visitors
+ </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_7" >
+
+
+
+ <div class="md-nav__link md-nav__container">
+ <a href="../reference/pyiceberg/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="../reference/pyiceberg/io/fsspec/" class="md-nav__link">
+
+
+ <span class="md-ellipsis">
+ fsspec
+ </span>
+
+
+ </a>
+ </li>
+
+
+
+
+
+
+
+
+
+
+ <li class="md-nav__item">
+ <a href="../reference/pyiceberg/io/pyarrow/" class="md-nav__link">
+
+
+ <span class="md-ellipsis">
+ pyarrow
+ </span>
+
+
+ </a>
+ </li>
+
+
+
+
+ </ul>
+ </nav>
+
+ </li>
+
+
+
+
+
+
+
+
+
+
+ <li class="md-nav__item">
+ <a href="../reference/pyiceberg/manifest/" class="md-nav__link">
+
+
+ <span class="md-ellipsis">
+ manifest
+ </span>
+
+
+ </a>
+ </li>
+
+
+
+
+
+
+
+
+
+
+ <li class="md-nav__item">
+ <a href="../reference/pyiceberg/partitioning/" class="md-nav__link">
+
+
+ <span class="md-ellipsis">
+ partitioning
+ </span>
+
+
+ </a>
+ </li>
+
+
+
+
+
+
+
+
+
+
+ <li class="md-nav__item">
+ <a href="../reference/pyiceberg/schema/" class="md-nav__link">
+
+
+ <span class="md-ellipsis">
+ schema
+ </span>
+
+
+ </a>
+ </li>
+
+
+
+
+
+
+
+
+
+
+ <li class="md-nav__item">
+ <a href="../reference/pyiceberg/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="../reference/pyiceberg/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="../reference/pyiceberg/table/metadata/" class="md-nav__link">
+
+
+ <span class="md-ellipsis">
+ metadata
+ </span>
+
+
+ </a>
+ </li>
+
+
+
+
+
+
+
+
+
+
+ <li class="md-nav__item">
+ <a href="../reference/pyiceberg/table/name_mapping/" class="md-nav__link">
+
+
+ <span class="md-ellipsis">
+ name_mapping
+ </span>
+
+
+ </a>
+ </li>
+
+
+
+
+
+
+
+
+
+
+ <li class="md-nav__item">
+ <a href="../reference/pyiceberg/table/refs/" class="md-nav__link">
+
+
+ <span class="md-ellipsis">
+ refs
+ </span>
+
+
+ </a>
+ </li>
+
+
+
+
+
+
+
+
+
+
+ <li class="md-nav__item">
+ <a href="../reference/pyiceberg/table/snapshots/" class="md-nav__link">
+
+
+ <span class="md-ellipsis">
+ snapshots
+ </span>
+
+
+ </a>
+ </li>
+
+
+
+
+
+
+
+
+
+
+ <li class="md-nav__item">
+ <a href="../reference/pyiceberg/table/sorting/" class="md-nav__link">
+
+
+ <span class="md-ellipsis">
+ sorting
+ </span>
+
+
+ </a>
+ </li>
+
+
+
+
+ </ul>
+ </nav>
+
+ </li>
+
+
+
+
+
+
+
+
+
+
+ <li class="md-nav__item">
+ <a href="../reference/pyiceberg/transforms/" class="md-nav__link">
+
+
+ <span class="md-ellipsis">
+ transforms
+ </span>
+
+
+ </a>
+ </li>
+
+
+
+
+
+
+
+
+
+
+ <li class="md-nav__item">
+ <a href="../reference/pyiceberg/typedef/" class="md-nav__link">
+
+
+ <span class="md-ellipsis">
+ typedef
+ </span>
+
+
+ </a>
+ </li>
+
+
+
+
+
+
+
+
+
+
+ <li class="md-nav__item">
+ <a href="../reference/pyiceberg/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="../reference/pyiceberg/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="../reference/pyiceberg/utils/bin_packing/" class="md-nav__link">
+
+
+ <span class="md-ellipsis">
+ bin_packing
+ </span>
+
+
+ </a>
+ </li>
+
+
+
+
+
+
+
+
+
+
+ <li class="md-nav__item">
+ <a href="../reference/pyiceberg/utils/concurrent/" class="md-nav__link">
+
+
+ <span class="md-ellipsis">
+ concurrent
+ </span>
+
+
+ </a>
+ </li>
+
+
+
+
+
+
+
+
+
+
+ <li class="md-nav__item">
+ <a href="../reference/pyiceberg/utils/config/" class="md-nav__link">
+
+
+ <span class="md-ellipsis">
+ config
+ </span>
+
+
+ </a>
+ </li>
+
+
+
+
+
+
+
+
+
+
+ <li class="md-nav__item">
+ <a href="../reference/pyiceberg/utils/datetime/" class="md-nav__link">
+
+
+ <span class="md-ellipsis">
+ datetime
+ </span>
+
+
+ </a>
+ </li>
+
+
+
+
+
+
+
+
+
+
+ <li class="md-nav__item">
+ <a href="../reference/pyiceberg/utils/decimal/" class="md-nav__link">
+
+
+ <span class="md-ellipsis">
+ decimal
+ </span>
+
+
+ </a>
+ </li>
+
+
+
+
+
+
+
+
+
+
+ <li class="md-nav__item">
+ <a href="../reference/pyiceberg/utils/deprecated/" class="md-nav__link">
+
+
+ <span class="md-ellipsis">
+ deprecated
+ </span>
+
+
+ </a>
+ </li>
+
+
+
+
+
+
+
+
+
+
+ <li class="md-nav__item">
+ <a href="../reference/pyiceberg/utils/lazydict/" class="md-nav__link">
+
+
+ <span class="md-ellipsis">
+ lazydict
+ </span>
+
+
+ </a>
+ </li>
+
+
+
+
+
+
+
+
+
+
+ <li class="md-nav__item">
+ <a href="../reference/pyiceberg/utils/parsing/" class="md-nav__link">
+
+
+ <span class="md-ellipsis">
+ parsing
+ </span>
+
+
+ </a>
+ </li>
+
+
+
+
+
+
+
+
+
+
+ <li class="md-nav__item">
+ <a href="../reference/pyiceberg/utils/schema_conversion/" class="md-nav__link">
+
+
+ <span class="md-ellipsis">
+ schema_conversion
+ </span>
+
+
+ </a>
+ </li>
+
+
+
+
+
+
+
+
+
+
+ <li class="md-nav__item">
+ <a href="../reference/pyiceberg/utils/singleton/" class="md-nav__link">
+
+
+ <span class="md-ellipsis">
+ singleton
+ </span>
+
+
+ </a>
+ </li>
+
+
+
+
+
+
+
+
+
+
+ <li class="md-nav__item">
+ <a href="../reference/pyiceberg/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="#create-a-table" class="md-nav__link">
+ <span class="md-ellipsis">
+ Create a table
+ </span>
+ </a>
+
+</li>
+
+ <li class="md-nav__item">
+ <a href="#load-a-table" class="md-nav__link">
+ <span class="md-ellipsis">
+ Load a table
+ </span>
+ </a>
+
+ <nav class="md-nav" aria-label="Load a table">
+ <ul class="md-nav__list">
+
+ <li class="md-nav__item">
+ <a href="#catalog-table" class="md-nav__link">
+ <span class="md-ellipsis">
+ Catalog table
+ </span>
+ </a>
+
+</li>
+
+ <li class="md-nav__item">
+ <a href="#static-table" class="md-nav__link">
+ <span class="md-ellipsis">
+ Static table
+ </span>
+ </a>
+
+</li>
+
+ </ul>
+ </nav>
+
+</li>
+
+ <li class="md-nav__item">
+ <a href="#check-if-a-table-exists" class="md-nav__link">
+ <span class="md-ellipsis">
+ Check if a table exists
+ </span>
+ </a>
+
+</li>
+
+ <li class="md-nav__item">
+ <a href="#write-support" class="md-nav__link">
+ <span class="md-ellipsis">
+ Write support
+ </span>
+ </a>
+
+</li>
+
+ <li class="md-nav__item">
+ <a href="#inspecting-tables" class="md-nav__link">
+ <span class="md-ellipsis">
+ Inspecting tables
+ </span>
+ </a>
+
+ <nav class="md-nav" aria-label="Inspecting tables">
+ <ul class="md-nav__list">
+
+ <li class="md-nav__item">
+ <a href="#snapshots" class="md-nav__link">
+ <span class="md-ellipsis">
+ Snapshots
+ </span>
+ </a>
+
+</li>
+
+ <li class="md-nav__item">
+ <a href="#partitions" class="md-nav__link">
+ <span class="md-ellipsis">
+ Partitions
+ </span>
+ </a>
+
+</li>
+
+ <li class="md-nav__item">
+ <a href="#entries" class="md-nav__link">
+ <span class="md-ellipsis">
+ Entries
+ </span>
+ </a>
+
+</li>
+
+ <li class="md-nav__item">
+ <a href="#references" class="md-nav__link">
+ <span class="md-ellipsis">
+ References
+ </span>
+ </a>
+
+</li>
+
+ <li class="md-nav__item">
+ <a href="#manifests" class="md-nav__link">
+ <span class="md-ellipsis">
+ Manifests
+ </span>
+ </a>
+
+</li>
+
+ <li class="md-nav__item">
+ <a href="#metadata-log-entries" class="md-nav__link">
+ <span class="md-ellipsis">
+ Metadata Log Entries
+ </span>
+ </a>
+
+</li>
+
+ <li class="md-nav__item">
+ <a href="#history" class="md-nav__link">
+ <span class="md-ellipsis">
+ History
+ </span>
+ </a>
+
+</li>
+
+ <li class="md-nav__item">
+ <a href="#files" class="md-nav__link">
+ <span class="md-ellipsis">
+ Files
+ </span>
+ </a>
+
+</li>
+
+ </ul>
+ </nav>
+
+</li>
+
+ <li class="md-nav__item">
+ <a href="#add-files" class="md-nav__link">
+ <span class="md-ellipsis">
+ Add Files
+ </span>
+ </a>
+
+</li>
+
+ <li class="md-nav__item">
+ <a href="#schema-evolution" class="md-nav__link">
+ <span class="md-ellipsis">
+ Schema evolution
+ </span>
+ </a>
+
+ <nav class="md-nav" aria-label="Schema evolution">
+ <ul class="md-nav__list">
+
+ <li class="md-nav__item">
+ <a href="#union-by-name" class="md-nav__link">
+ <span class="md-ellipsis">
+ Union by Name
+ </span>
+ </a>
+
+</li>
+
+ <li class="md-nav__item">
+ <a href="#add-column" class="md-nav__link">
+ <span class="md-ellipsis">
+ Add column
+ </span>
+ </a>
+
+</li>
+
+ <li class="md-nav__item">
+ <a href="#rename-column" class="md-nav__link">
+ <span class="md-ellipsis">
+ Rename column
+ </span>
+ </a>
+
+</li>
+
+ <li class="md-nav__item">
+ <a href="#move-column" class="md-nav__link">
+ <span class="md-ellipsis">
+ Move column
+ </span>
+ </a>
+
+</li>
+
+ <li class="md-nav__item">
+ <a href="#update-column" class="md-nav__link">
+ <span class="md-ellipsis">
+ Update column
+ </span>
+ </a>
+
+</li>
+
+ <li class="md-nav__item">
+ <a href="#delete-column" class="md-nav__link">
+ <span class="md-ellipsis">
+ Delete column
+ </span>
+ </a>
+
+</li>
+
+ </ul>
+ </nav>
+
+</li>
+
+ <li class="md-nav__item">
+ <a href="#partition-evolution" class="md-nav__link">
+ <span class="md-ellipsis">
+ Partition evolution
+ </span>
+ </a>
+
+ <nav class="md-nav" aria-label="Partition evolution">
+ <ul class="md-nav__list">
+
+ <li class="md-nav__item">
+ <a href="#add-fields" class="md-nav__link">
+ <span class="md-ellipsis">
+ Add fields
+ </span>
+ </a>
+
+</li>
+
+ <li class="md-nav__item">
+ <a href="#remove-fields" class="md-nav__link">
+ <span class="md-ellipsis">
+ Remove fields
+ </span>
+ </a>
+
+</li>
+
+ <li class="md-nav__item">
+ <a href="#rename-fields" class="md-nav__link">
+ <span class="md-ellipsis">
+ Rename fields
+ </span>
+ </a>
+
+</li>
+
+ </ul>
+ </nav>
+
+</li>
+
+ <li class="md-nav__item">
+ <a href="#table-properties" class="md-nav__link">
+ <span class="md-ellipsis">
+ Table properties
+ </span>
+ </a>
+
+</li>
+
+ <li class="md-nav__item">
+ <a href="#snapshot-properties" class="md-nav__link">
+ <span class="md-ellipsis">
+ Snapshot properties
+ </span>
+ </a>
+
+</li>
+
+ <li class="md-nav__item">
+ <a href="#snapshot-management" class="md-nav__link">
+ <span class="md-ellipsis">
+ Snapshot Management
+ </span>
+ </a>
+
+</li>
+
+ <li class="md-nav__item">
+ <a href="#query-the-data" class="md-nav__link">
+ <span class="md-ellipsis">
+ Query the data
+ </span>
+ </a>
+
+ <nav class="md-nav" aria-label="Query the data">
+ <ul class="md-nav__list">
+
+ <li class="md-nav__item">
+ <a href="#apache-arrow" class="md-nav__link">
+ <span class="md-ellipsis">
+ Apache Arrow
+ </span>
+ </a>
+
+</li>
+
+ <li class="md-nav__item">
+ <a href="#pandas" class="md-nav__link">
+ <span class="md-ellipsis">
+ Pandas
+ </span>
+ </a>
+
+</li>
+
+ <li class="md-nav__item">
+ <a href="#duckdb" class="md-nav__link">
+ <span class="md-ellipsis">
+ DuckDB
+ </span>
+ </a>
+
+</li>
+
+ <li class="md-nav__item">
+ <a href="#ray" class="md-nav__link">
+ <span class="md-ellipsis">
+ Ray
+ </span>
+ </a>
+
+</li>
+
+ <li class="md-nav__item">
+ <a href="#daft" class="md-nav__link">
+ <span class="md-ellipsis">
+ Daft
+ </span>
+ </a>
+
+</li>
+
+ </ul>
+ </nav>
+
+</li>
+
+ </ul>
+
+</nav>
+ </div>
+ </div>
+ </div>
+
+
+
+ <div class="md-content" data-md-component="content">
+ <article class="md-content__inner md-typeset">
+
+
+
+
+
+
+
+<!--
+ - Licensed to the Apache Software Foundation (ASF) under one
+ - or more contributor license agreements. See the NOTICE file
+ - distributed with this work for additional information
+ - regarding copyright ownership. The ASF licenses this file
+ - to you under the Apache License, Version 2.0 (the
+ - "License"); you may not use this file except in compliance
+ - with the License. You may obtain a copy of the License at
+ -
+ - http://www.apache.org/licenses/LICENSE-2.0
+ -
+ - Unless required by applicable law or agreed to in writing,
+ - software distributed under the License is distributed on an
+ - "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ - KIND, either express or implied. See the License for the
+ - specific language governing permissions and limitations
+ - under the License.
+ -->
+
+<h1 id="python-api">Python API<a class="headerlink" href="#python-api" title="Permanent link">¶</a></h1>
+<p>PyIceberg is based around catalogs to load tables. First step is to instantiate a catalog that loads tables. Let's use the following configuration to define a catalog called <code>prod</code>:</p>
+<div class="highlight"><pre><span></span><code><a id="__codelineno-0-1" name="__codelineno-0-1" href="#__codelineno-0-1"></a><span class="nt">catalog</span><span class="p">:</span>
+<a id="__codelineno-0-2" name="__codelineno-0-2" href="#__codelineno-0-2"></a><span class="w"> </span><span class="nt">prod</span><span class="p">:</span>
+<a id="__codelineno-0-3" name="__codelineno-0-3" href="#__codelineno-0-3"></a><span class="w"> </span><span class="nt">uri</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">http://rest-catalog/ws/</span>
+<a id="__codelineno-0-4" name="__codelineno-0-4" href="#__codelineno-0-4"></a><span class="w"> </span><span class="nt">credential</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">t-1234:secret</span>
+</code></pre></div>
+<p>Note that multiple catalogs can be defined in the same <code>.pyiceberg.yaml</code>:</p>
+<div class="highlight"><pre><span></span><code><a id="__codelineno-1-1" name="__codelineno-1-1" href="#__codelineno-1-1"></a><span class="nt">catalog</span><span class="p">:</span>
+<a id="__codelineno-1-2" name="__codelineno-1-2" href="#__codelineno-1-2"></a><span class="w"> </span><span class="nt">hive</span><span class="p">:</span>
+<a id="__codelineno-1-3" name="__codelineno-1-3" href="#__codelineno-1-3"></a><span class="w"> </span><span class="nt">uri</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">thrift://127.0.0.1:9083</span>
+<a id="__codelineno-1-4" name="__codelineno-1-4" href="#__codelineno-1-4"></a><span class="w"> </span><span class="nt">s3.endpoint</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">http://127.0.0.1:9000</span>
+<a id="__codelineno-1-5" name="__codelineno-1-5" href="#__codelineno-1-5"></a><span class="w"> </span><span class="nt">s3.access-key-id</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">admin</span>
+<a id="__codelineno-1-6" name="__codelineno-1-6" href="#__codelineno-1-6"></a><span class="w"> </span><span class="nt">s3.secret-access-key</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">password</span>
+<a id="__codelineno-1-7" name="__codelineno-1-7" href="#__codelineno-1-7"></a><span class="w"> </span><span class="nt">rest</span><span class="p">:</span>
+<a id="__codelineno-1-8" name="__codelineno-1-8" href="#__codelineno-1-8"></a><span class="w"> </span><span class="nt">uri</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">https://rest-server:8181/</span>
+<a id="__codelineno-1-9" name="__codelineno-1-9" href="#__codelineno-1-9"></a><span class="w"> </span><span class="nt">warehouse</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">my-warehouse</span>
+</code></pre></div>
+<p>and loaded in python by calling <code>load_catalog(name="hive")</code> and <code>load_catalog(name="rest")</code>.</p>
+<p>This information must be placed inside a file called <code>.pyiceberg.yaml</code> located either in the <code>$HOME</code> or <code>%USERPROFILE%</code> directory (depending on whether the operating system is Unix-based or Windows-based, respectively) or in the <code>$PYICEBERG_HOME</code> directory (if the corresponding environment variable is set).</p>
+<p>For more details on possible configurations refer to the <a href="https://py.iceberg.apache.org/configuration/">specific page</a>.</p>
+<p>Then load the <code>prod</code> catalog:</p>
+<div class="highlight"><pre><span></span><code><a id="__codelineno-2-1" name="__codelineno-2-1" href="#__codelineno-2-1"></a><span class="kn">from</span> <span class="nn">pyiceberg.catalog</span> <span class="kn">import</span> <span class="n">load_catalog</span>
+<a id="__codelineno-2-2" name="__codelineno-2-2" href="#__codelineno-2-2"></a>
+<a id="__codelineno-2-3" name="__codelineno-2-3" href="#__codelineno-2-3"></a><span class="n">catalog</span> <span class="o">=</span> <span class="n">load_catalog</span><span class="p">(</span>
+<a id="__codelineno-2-4" name="__codelineno-2-4" href="#__codelineno-2-4"></a> <span class="s2">"docs"</span><span class="p">,</span>
+<a id="__codelineno-2-5" name="__codelineno-2-5" href="#__codelineno-2-5"></a> <span class="o">**</span><span class="p">{</span>
+<a id="__codelineno-2-6" name="__codelineno-2-6" href="#__codelineno-2-6"></a> <span class="s2">"uri"</span><span class="p">:</span> <span class="s2">"http://127.0.0.1:8181"</span><span class="p">,</span>
+<a id="__codelineno-2-7" name="__codelineno-2-7" href="#__codelineno-2-7"></a> <span class="s2">"s3.endpoint"</span><span class="p">:</span> <span class="s2">"http://127.0.0.1:9000"</span><span class="p">,</span>
+<a id="__codelineno-2-8" name="__codelineno-2-8" href="#__codelineno-2-8"></a> <span class="s2">"py-io-impl"</span><span class="p">:</span> <span class="s2">"pyiceberg.io.pyarrow.PyArrowFileIO"</span><span class="p">,</span>
+<a id="__codelineno-2-9" name="__codelineno-2-9" href="#__codelineno-2-9"></a> <span class="s2">"s3.access-key-id"</span><span class="p">:</span> <span class="s2">"admin"</span><span class="p">,</span>
+<a id="__codelineno-2-10" name="__codelineno-2-10" href="#__codelineno-2-10"></a> <span class="s2">"s3.secret-access-key"</span><span class="p">:</span> <span class="s2">"password"</span><span class="p">,</span>
+<a id="__codelineno-2-11" name="__codelineno-2-11" href="#__codelineno-2-11"></a> <span class="p">}</span>
+<a id="__codelineno-2-12" name="__codelineno-2-12" href="#__codelineno-2-12"></a><span class="p">)</span>
+</code></pre></div>
+<p>Let's create a namespace:</p>
+<div class="highlight"><pre><span></span><code><a id="__codelineno-3-1" name="__codelineno-3-1" href="#__codelineno-3-1"></a><span class="n">catalog</span><span class="o">.</span><span class="n">create_namespace</span><span class="p">(</span><span class="s2">"docs_example"</span><span class="p">)</span>
+</code></pre></div>
+<p>And then list them:</p>
+<div class="highlight"><pre><span></span><code><a id="__codelineno-4-1" name="__codelineno-4-1" href="#__codelineno-4-1"></a><span class="n">ns</span> <span class="o">=</span> <span class="n">catalog</span><span class="o">.</span><span class="n">list_namespaces</span><span class="p">()</span>
+<a id="__codelineno-4-2" name="__codelineno-4-2" href="#__codelineno-4-2"></a>
+<a id="__codelineno-4-3" name="__codelineno-4-3" href="#__codelineno-4-3"></a><span class="k">assert</span> <span class="n">ns</span> <span class="o">==</span> <span class="p">[(</span><span class="s2">"docs_example"</span><span class="p">,)]</span>
+</code></pre></div>
+<p>And then list tables in the namespace:</p>
+<div class="highlight"><pre><span></span><code><a id="__codelineno-5-1" name="__codelineno-5-1" href="#__codelineno-5-1"></a><span class="n">catalog</span><span class="o">.</span><span class="n">list_tables</span><span class="p">(</span><span class="s2">"docs_example"</span><span class="p">)</span>
+</code></pre></div>
+<h2 id="create-a-table">Create a table<a class="headerlink" href="#create-a-table" title="Permanent link">¶</a></h2>
+<p>To create a table from a catalog:</p>
+<div class="highlight"><pre><span></span><code><a id="__codelineno-6-1" name="__codelineno-6-1" href="#__codelineno-6-1"></a><span class="kn">from</span> <span class="nn">pyiceberg.schema</span> <span class="kn">import</span> <span class="n">Schema</span>
+<a id="__codelineno-6-2" name="__codelineno-6-2" href="#__codelineno-6-2"></a><span class="kn">from</span> <span class="nn">pyiceberg.types</span> <span class="kn">import</span> <span class="p">(</span>
+<a id="__codelineno-6-3" name="__codelineno-6-3" href="#__codelineno-6-3"></a> <span class="n">TimestampType</span><span class="p">,</span>
+<a id="__codelineno-6-4" name="__codelineno-6-4" href="#__codelineno-6-4"></a> <span class="n">FloatType</span><span class="p">,</span>
+<a id="__codelineno-6-5" name="__codelineno-6-5" href="#__codelineno-6-5"></a> <span class="n">DoubleType</span><span class="p">,</span>
+<a id="__codelineno-6-6" name="__codelineno-6-6" href="#__codelineno-6-6"></a> <span class="n">StringType</span><span class="p">,</span>
+<a id="__codelineno-6-7" name="__codelineno-6-7" href="#__codelineno-6-7"></a> <span class="n">NestedField</span><span class="p">,</span>
+<a id="__codelineno-6-8" name="__codelineno-6-8" href="#__codelineno-6-8"></a> <span class="n">StructType</span><span class="p">,</span>
+<a id="__codelineno-6-9" name="__codelineno-6-9" href="#__codelineno-6-9"></a><span class="p">)</span>
+<a id="__codelineno-6-10" name="__codelineno-6-10" href="#__codelineno-6-10"></a>
+<a id="__codelineno-6-11" name="__codelineno-6-11" href="#__codelineno-6-11"></a><span class="n">schema</span> <span class="o">=</span> <span class="n">Schema</span><span class="p">(</span>
+<a id="__codelineno-6-12" name="__codelineno-6-12" href="#__codelineno-6-12"></a> <span class="n">NestedField</span><span class="p">(</span><span class="n">field_id</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span> <span class="n">name</span><span class="o">=</span><span class="s2">"datetime"</span><span class="p">,</span> <span class="n">field_type</span><span class="o">=</span><span class="n">TimestampType</span><span class="p">(),</span> <spa [...]
+<a id="__codelineno-6-13" name="__codelineno-6-13" href="#__codelineno-6-13"></a> <span class="n">NestedField</span><span class="p">(</span><span class="n">field_id</span><span class="o">=</span><span class="mi">2</span><span class="p">,</span> <span class="n">name</span><span class="o">=</span><span class="s2">"symbol"</span><span class="p">,</span> <span class="n">field_type</span><span class="o">=</span><span class="n">StringType</span><span class="p">(),</span> <span cla [...]
+<a id="__codelineno-6-14" name="__codelineno-6-14" href="#__codelineno-6-14"></a> <span class="n">NestedField</span><span class="p">(</span><span class="n">field_id</span><span class="o">=</span><span class="mi">3</span><span class="p">,</span> <span class="n">name</span><span class="o">=</span><span class="s2">"bid"</span><span class="p">,</span> <span class="n">field_type</span><span class="o">=</span><span class="n">FloatType</span><span class="p">(),</span> <span class=" [...]
+<a id="__codelineno-6-15" name="__codelineno-6-15" href="#__codelineno-6-15"></a> <span class="n">NestedField</span><span class="p">(</span><span class="n">field_id</span><span class="o">=</span><span class="mi">4</span><span class="p">,</span> <span class="n">name</span><span class="o">=</span><span class="s2">"ask"</span><span class="p">,</span> <span class="n">field_type</span><span class="o">=</span><span class="n">DoubleType</span><span class="p">(),</span> <span class= [...]
+<a id="__codelineno-6-16" name="__codelineno-6-16" href="#__codelineno-6-16"></a> <span class="n">NestedField</span><span class="p">(</span>
+<a id="__codelineno-6-17" name="__codelineno-6-17" href="#__codelineno-6-17"></a> <span class="n">field_id</span><span class="o">=</span><span class="mi">5</span><span class="p">,</span>
+<a id="__codelineno-6-18" name="__codelineno-6-18" href="#__codelineno-6-18"></a> <span class="n">name</span><span class="o">=</span><span class="s2">"details"</span><span class="p">,</span>
+<a id="__codelineno-6-19" name="__codelineno-6-19" href="#__codelineno-6-19"></a> <span class="n">field_type</span><span class="o">=</span><span class="n">StructType</span><span class="p">(</span>
+<a id="__codelineno-6-20" name="__codelineno-6-20" href="#__codelineno-6-20"></a> <span class="n">NestedField</span><span class="p">(</span>
+<a id="__codelineno-6-21" name="__codelineno-6-21" href="#__codelineno-6-21"></a> <span class="n">field_id</span><span class="o">=</span><span class="mi">4</span><span class="p">,</span> <span class="n">name</span><span class="o">=</span><span class="s2">"created_by"</span><span class="p">,</span> <span class="n">field_type</span><span class="o">=</span><span class="n">StringType</span><span class="p">(),</span> <span class="n">required</span><span class="o">=</s [...]
+<a id="__codelineno-6-22" name="__codelineno-6-22" href="#__codelineno-6-22"></a> <span class="p">),</span>
+<a id="__codelineno-6-23" name="__codelineno-6-23" href="#__codelineno-6-23"></a> <span class="p">),</span>
+<a id="__codelineno-6-24" name="__codelineno-6-24" href="#__codelineno-6-24"></a> <span class="n">required</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span>
+<a id="__codelineno-6-25" name="__codelineno-6-25" href="#__codelineno-6-25"></a> <span class="p">),</span>
+<a id="__codelineno-6-26" name="__codelineno-6-26" href="#__codelineno-6-26"></a><span class="p">)</span>
+<a id="__codelineno-6-27" name="__codelineno-6-27" href="#__codelineno-6-27"></a>
+<a id="__codelineno-6-28" name="__codelineno-6-28" href="#__codelineno-6-28"></a><span class="kn">from</span> <span class="nn">pyiceberg.partitioning</span> <span class="kn">import</span> <span class="n">PartitionSpec</span><span class="p">,</span> <span class="n">PartitionField</span>
+<a id="__codelineno-6-29" name="__codelineno-6-29" href="#__codelineno-6-29"></a><span class="kn">from</span> <span class="nn">pyiceberg.transforms</span> <span class="kn">import</span> <span class="n">DayTransform</span>
+<a id="__codelineno-6-30" name="__codelineno-6-30" href="#__codelineno-6-30"></a>
+<a id="__codelineno-6-31" name="__codelineno-6-31" href="#__codelineno-6-31"></a><span class="n">partition_spec</span> <span class="o">=</span> <span class="n">PartitionSpec</span><span class="p">(</span>
+<a id="__codelineno-6-32" name="__codelineno-6-32" href="#__codelineno-6-32"></a> <span class="n">PartitionField</span><span class="p">(</span>
+<a id="__codelineno-6-33" name="__codelineno-6-33" href="#__codelineno-6-33"></a> <span class="n">source_id</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span> <span class="n">field_id</span><span class="o">=</span><span class="mi">1000</span><span class="p">,</span> <span class="n">transform</span><span class="o">=</span><span class="n">DayTransform</span><span class="p">(),</span> <span class="n">name</span><span class="o">=</span><span class="s2">&qu [...]
+<a id="__codelineno-6-34" name="__codelineno-6-34" href="#__codelineno-6-34"></a> <span class="p">)</span>
+<a id="__codelineno-6-35" name="__codelineno-6-35" href="#__codelineno-6-35"></a><span class="p">)</span>
+<a id="__codelineno-6-36" name="__codelineno-6-36" href="#__codelineno-6-36"></a>
+<a id="__codelineno-6-37" name="__codelineno-6-37" href="#__codelineno-6-37"></a><span class="kn">from</span> <span class="nn">pyiceberg.table.sorting</span> <span class="kn">import</span> <span class="n">SortOrder</span><span class="p">,</span> <span class="n">SortField</span>
+<a id="__codelineno-6-38" name="__codelineno-6-38" href="#__codelineno-6-38"></a><span class="kn">from</span> <span class="nn">pyiceberg.transforms</span> <span class="kn">import</span> <span class="n">IdentityTransform</span>
+<a id="__codelineno-6-39" name="__codelineno-6-39" href="#__codelineno-6-39"></a>
+<a id="__codelineno-6-40" name="__codelineno-6-40" href="#__codelineno-6-40"></a><span class="c1"># Sort on the symbol</span>
+<a id="__codelineno-6-41" name="__codelineno-6-41" href="#__codelineno-6-41"></a><span class="n">sort_order</span> <span class="o">=</span> <span class="n">SortOrder</span><span class="p">(</span><span class="n">SortField</span><span class="p">(</span><span class="n">source_id</span><span class="o">=</span><span class="mi">2</span><span class="p">,</span> <span class="n">transform</span><span class="o">=</span><span class="n">IdentityTransform</span><span class="p">()))</span>
+<a id="__codelineno-6-42" name="__codelineno-6-42" href="#__codelineno-6-42"></a>
+<a id="__codelineno-6-43" name="__codelineno-6-43" href="#__codelineno-6-43"></a><span class="n">catalog</span><span class="o">.</span><span class="n">create_table</span><span class="p">(</span>
+<a id="__codelineno-6-44" name="__codelineno-6-44" href="#__codelineno-6-44"></a> <span class="n">identifier</span><span class="o">=</span><span class="s2">"docs_example.bids"</span><span class="p">,</span>
+<a id="__codelineno-6-45" name="__codelineno-6-45" href="#__codelineno-6-45"></a> <span class="n">schema</span><span class="o">=</span><span class="n">schema</span><span class="p">,</span>
+<a id="__codelineno-6-46" name="__codelineno-6-46" href="#__codelineno-6-46"></a> <span class="n">location</span><span class="o">=</span><span class="s2">"s3://pyiceberg"</span><span class="p">,</span>
+<a id="__codelineno-6-47" name="__codelineno-6-47" href="#__codelineno-6-47"></a> <span class="n">partition_spec</span><span class="o">=</span><span class="n">partition_spec</span><span class="p">,</span>
+<a id="__codelineno-6-48" name="__codelineno-6-48" href="#__codelineno-6-48"></a> <span class="n">sort_order</span><span class="o">=</span><span class="n">sort_order</span><span class="p">,</span>
+<a id="__codelineno-6-49" name="__codelineno-6-49" href="#__codelineno-6-49"></a><span class="p">)</span>
+</code></pre></div>
+<p>To create a table using a pyarrow schema:</p>
+<div class="highlight"><pre><span></span><code><a id="__codelineno-7-1" name="__codelineno-7-1" href="#__codelineno-7-1"></a><span class="kn">import</span> <span class="nn">pyarrow</span> <span class="k">as</span> <span class="nn">pa</span>
+<a id="__codelineno-7-2" name="__codelineno-7-2" href="#__codelineno-7-2"></a>
+<a id="__codelineno-7-3" name="__codelineno-7-3" href="#__codelineno-7-3"></a><span class="n">schema</span> <span class="o">=</span> <span class="n">pa</span><span class="o">.</span><span class="n">schema</span><span class="p">(</span>
+<a id="__codelineno-7-4" name="__codelineno-7-4" href="#__codelineno-7-4"></a> <span class="p">[</span>
+<a id="__codelineno-7-5" name="__codelineno-7-5" href="#__codelineno-7-5"></a> <span class="n">pa</span><span class="o">.</span><span class="n">field</span><span class="p">(</span><span class="s2">"foo"</span><span class="p">,</span> <span class="n">pa</span><span class="o">.</span><span class="n">string</span><span class="p">(),</span> <span class="n">nullable</span><span class="o">=</span><span class="kc">True</span><span class="p">),</span>
+<a id="__codelineno-7-6" name="__codelineno-7-6" href="#__codelineno-7-6"></a> <span class="n">pa</span><span class="o">.</span><span class="n">field</span><span class="p">(</span><span class="s2">"bar"</span><span class="p">,</span> <span class="n">pa</span><span class="o">.</span><span class="n">int32</span><span class="p">(),</span> <span class="n">nullable</span><span class="o">=</span><span class="kc">False</span><span class="p">),</span>
+<a id="__codelineno-7-7" name="__codelineno-7-7" href="#__codelineno-7-7"></a> <span class="n">pa</span><span class="o">.</span><span class="n">field</span><span class="p">(</span><span class="s2">"baz"</span><span class="p">,</span> <span class="n">pa</span><span class="o">.</span><span class="n">bool_</span><span class="p">(),</span> <span class="n">nullable</span><span class="o">=</span><span class="kc">True</span><span class="p">),</span>
+<a id="__codelineno-7-8" name="__codelineno-7-8" href="#__codelineno-7-8"></a> <span class="p">]</span>
+<a id="__codelineno-7-9" name="__codelineno-7-9" href="#__codelineno-7-9"></a><span class="p">)</span>
+<a id="__codelineno-7-10" name="__codelineno-7-10" href="#__codelineno-7-10"></a>
+<a id="__codelineno-7-11" name="__codelineno-7-11" href="#__codelineno-7-11"></a><span class="n">catalog</span><span class="o">.</span><span class="n">create_table</span><span class="p">(</span>
+<a id="__codelineno-7-12" name="__codelineno-7-12" href="#__codelineno-7-12"></a> <span class="n">identifier</span><span class="o">=</span><span class="s2">"docs_example.bids"</span><span class="p">,</span>
+<a id="__codelineno-7-13" name="__codelineno-7-13" href="#__codelineno-7-13"></a> <span class="n">schema</span><span class="o">=</span><span class="n">schema</span><span class="p">,</span>
+<a id="__codelineno-7-14" name="__codelineno-7-14" href="#__codelineno-7-14"></a><span class="p">)</span>
+</code></pre></div>
+<p>To create a table with some subsequent changes atomically in a transaction:</p>
+<div class="highlight"><pre><span></span><code><a id="__codelineno-8-1" name="__codelineno-8-1" href="#__codelineno-8-1"></a><span class="k">with</span> <span class="n">catalog</span><span class="o">.</span><span class="n">create_table_transaction</span><span class="p">(</span>
+<a id="__codelineno-8-2" name="__codelineno-8-2" href="#__codelineno-8-2"></a> <span class="n">identifier</span><span class="o">=</span><span class="s2">"docs_example.bids"</span><span class="p">,</span>
+<a id="__codelineno-8-3" name="__codelineno-8-3" href="#__codelineno-8-3"></a> <span class="n">schema</span><span class="o">=</span><span class="n">schema</span><span class="p">,</span>
+<a id="__codelineno-8-4" name="__codelineno-8-4" href="#__codelineno-8-4"></a> <span class="n">location</span><span class="o">=</span><span class="s2">"s3://pyiceberg"</span><span class="p">,</span>
+<a id="__codelineno-8-5" name="__codelineno-8-5" href="#__codelineno-8-5"></a> <span class="n">partition_spec</span><span class="o">=</span><span class="n">partition_spec</span><span class="p">,</span>
+<a id="__codelineno-8-6" name="__codelineno-8-6" href="#__codelineno-8-6"></a> <span class="n">sort_order</span><span class="o">=</span><span class="n">sort_order</span><span class="p">,</span>
+<a id="__codelineno-8-7" name="__codelineno-8-7" href="#__codelineno-8-7"></a><span class="p">)</span> <span class="k">as</span> <span class="n">txn</span><span class="p">:</span>
+<a id="__codelineno-8-8" name="__codelineno-8-8" href="#__codelineno-8-8"></a> <span class="k">with</span> <span class="n">txn</span><span class="o">.</span><span class="n">update_schema</span><span class="p">()</span> <span class="k">as</span> <span class="n">update_schema</span><span class="p">:</span>
+<a id="__codelineno-8-9" name="__codelineno-8-9" href="#__codelineno-8-9"></a> <span class="n">update_schema</span><span class="o">.</span><span class="n">add_column</span><span class="p">(</span><span class="n">path</span><span class="o">=</span><span class="s2">"new_column"</span><span class="p">,</span> <span class="n">field_type</span><span class="o">=</span><span class="n">StringType</span><span class="p">())</span>
+<a id="__codelineno-8-10" name="__codelineno-8-10" href="#__codelineno-8-10"></a>
+<a id="__codelineno-8-11" name="__codelineno-8-11" href="#__codelineno-8-11"></a> <span class="k">with</span> <span class="n">txn</span><span class="o">.</span><span class="n">update_spec</span><span class="p">()</span> <span class="k">as</span> <span class="n">update_spec</span><span class="p">:</span>
+<a id="__codelineno-8-12" name="__codelineno-8-12" href="#__codelineno-8-12"></a> <span class="n">update_spec</span><span class="o">.</span><span class="n">add_identity</span><span class="p">(</span><span class="s2">"symbol"</span><span class="p">)</span>
+<a id="__codelineno-8-13" name="__codelineno-8-13" href="#__codelineno-8-13"></a>
+<a id="__codelineno-8-14" name="__codelineno-8-14" href="#__codelineno-8-14"></a> <span class="n">txn</span><span class="o">.</span><span class="n">set_properties</span><span class="p">(</span><span class="n">test_a</span><span class="o">=</span><span class="s2">"test_aa"</span><span class="p">,</span> <span class="n">test_b</span><span class="o">=</span><span class="s2">"test_b"</span><span class="p">,</span> <span class="n">test_c</span><span class="o">=</span><s [...]
+</code></pre></div>
+<h2 id="load-a-table">Load a table<a class="headerlink" href="#load-a-table" title="Permanent link">¶</a></h2>
+<h3 id="catalog-table">Catalog table<a class="headerlink" href="#catalog-table" title="Permanent link">¶</a></h3>
+<p>Loading the <code>bids</code> table:</p>
+<div class="highlight"><pre><span></span><code><a id="__codelineno-9-1" name="__codelineno-9-1" href="#__codelineno-9-1"></a><span class="n">table</span> <span class="o">=</span> <span class="n">catalog</span><span class="o">.</span><span class="n">load_table</span><span class="p">(</span><span class="s2">"docs_example.bids"</span><span class="p">)</span>
+<a id="__codelineno-9-2" name="__codelineno-9-2" href="#__codelineno-9-2"></a><span class="c1"># Equivalent to:</span>
+<a id="__codelineno-9-3" name="__codelineno-9-3" href="#__codelineno-9-3"></a><span class="n">table</span> <span class="o">=</span> <span class="n">catalog</span><span class="o">.</span><span class="n">load_table</span><span class="p">((</span><span class="s2">"docs_example"</span><span class="p">,</span> <span class="s2">"bids"</span><span class="p">))</span>
+<a id="__codelineno-9-4" name="__codelineno-9-4" href="#__codelineno-9-4"></a><span class="c1"># The tuple syntax can be used if the namespace or table contains a dot.</span>
+</code></pre></div>
+<p>This returns a <code>Table</code> that represents an Iceberg table that can be queried and altered.</p>
+<h3 id="static-table">Static table<a class="headerlink" href="#static-table" title="Permanent link">¶</a></h3>
+<p>To load a table directly from a metadata file (i.e., <strong>without</strong> using a catalog), you can use a <code>StaticTable</code> as follows:</p>
+<div class="highlight"><pre><span></span><code><a id="__codelineno-10-1" name="__codelineno-10-1" href="#__codelineno-10-1"></a><span class="kn">from</span> <span class="nn">pyiceberg.table</span> <span class="kn">import</span> <span class="n">StaticTable</span>
+<a id="__codelineno-10-2" name="__codelineno-10-2" href="#__codelineno-10-2"></a>
+<a id="__codelineno-10-3" name="__codelineno-10-3" href="#__codelineno-10-3"></a><span class="n">static_table</span> <span class="o">=</span> <span class="n">StaticTable</span><span class="o">.</span><span class="n">from_metadata</span><span class="p">(</span>
+<a id="__codelineno-10-4" name="__codelineno-10-4" href="#__codelineno-10-4"></a> <span class="s2">"s3://warehouse/wh/nyc.db/taxis/metadata/00002-6ea51ce3-62aa-4197-9cf8-43d07c3440ca.metadata.json"</span>
+<a id="__codelineno-10-5" name="__codelineno-10-5" href="#__codelineno-10-5"></a><span class="p">)</span>
+</code></pre></div>
+<p>The static-table is considered read-only.</p>
+<h2 id="check-if-a-table-exists">Check if a table exists<a class="headerlink" href="#check-if-a-table-exists" title="Permanent link">¶</a></h2>
+<p>To check whether the <code>bids</code> table exists:</p>
+<div class="highlight"><pre><span></span><code><a id="__codelineno-11-1" name="__codelineno-11-1" href="#__codelineno-11-1"></a><span class="n">catalog</span><span class="o">.</span><span class="n">table_exists</span><span class="p">(</span><span class="s2">"docs_example.bids"</span><span class="p">)</span>
+</code></pre></div>
+<p>Returns <code>True</code> if the table already exists.</p>
+<h2 id="write-support">Write support<a class="headerlink" href="#write-support" title="Permanent link">¶</a></h2>
+<p>With PyIceberg 0.6.0 write support is added through Arrow. Let's consider an Arrow Table:</p>
+<div class="highlight"><pre><span></span><code><a id="__codelineno-12-1" name="__codelineno-12-1" href="#__codelineno-12-1"></a><span class="kn">import</span> <span class="nn">pyarrow</span> <span class="k">as</span> <span class="nn">pa</span>
+<a id="__codelineno-12-2" name="__codelineno-12-2" href="#__codelineno-12-2"></a>
+<a id="__codelineno-12-3" name="__codelineno-12-3" href="#__codelineno-12-3"></a><span class="n">df</span> <span class="o">=</span> <span class="n">pa</span><span class="o">.</span><span class="n">Table</span><span class="o">.</span><span class="n">from_pylist</span><span class="p">(</span>
+<a id="__codelineno-12-4" name="__codelineno-12-4" href="#__codelineno-12-4"></a> <span class="p">[</span>
+<a id="__codelineno-12-5" name="__codelineno-12-5" href="#__codelineno-12-5"></a> <span class="p">{</span><span class="s2">"city"</span><span class="p">:</span> <span class="s2">"Amsterdam"</span><span class="p">,</span> <span class="s2">"lat"</span><span class="p">:</span> <span class="mf">52.371807</span><span class="p">,</span> <span class="s2">"long"</span><span class="p">:</span> <span class="mf">4.896029</span><span class="p">},</span>
+<a id="__codelineno-12-6" name="__codelineno-12-6" href="#__codelineno-12-6"></a> <span class="p">{</span><span class="s2">"city"</span><span class="p">:</span> <span class="s2">"San Francisco"</span><span class="p">,</span> <span class="s2">"lat"</span><span class="p">:</span> <span class="mf">37.773972</span><span class="p">,</span> <span class="s2">"long"</span><span class="p">:</span> <span class="o">-</span><span class="mf">122.431297</ [...]
+<a id="__codelineno-12-7" name="__codelineno-12-7" href="#__codelineno-12-7"></a> <span class="p">{</span><span class="s2">"city"</span><span class="p">:</span> <span class="s2">"Drachten"</span><span class="p">,</span> <span class="s2">"lat"</span><span class="p">:</span> <span class="mf">53.11254</span><span class="p">,</span> <span class="s2">"long"</span><span class="p">:</span> <span class="mf">6.0989</span><span class="p">},</span>
+<a id="__codelineno-12-8" name="__codelineno-12-8" href="#__codelineno-12-8"></a> <span class="p">{</span><span class="s2">"city"</span><span class="p">:</span> <span class="s2">"Paris"</span><span class="p">,</span> <span class="s2">"lat"</span><span class="p">:</span> <span class="mf">48.864716</span><span class="p">,</span> <span class="s2">"long"</span><span class="p">:</span> <span class="mf">2.349014</span><span class="p">},</span>
+<a id="__codelineno-12-9" name="__codelineno-12-9" href="#__codelineno-12-9"></a> <span class="p">],</span>
+<a id="__codelineno-12-10" name="__codelineno-12-10" href="#__codelineno-12-10"></a><span class="p">)</span>
+</code></pre></div>
+<p>Next, create a table based on the schema:</p>
+<div class="highlight"><pre><span></span><code><a id="__codelineno-13-1" name="__codelineno-13-1" href="#__codelineno-13-1"></a><span class="kn">from</span> <span class="nn">pyiceberg.catalog</span> <span class="kn">import</span> <span class="n">load_catalog</span>
+<a id="__codelineno-13-2" name="__codelineno-13-2" href="#__codelineno-13-2"></a>
+<a id="__codelineno-13-3" name="__codelineno-13-3" href="#__codelineno-13-3"></a><span class="n">catalog</span> <span class="o">=</span> <span class="n">load_catalog</span><span class="p">(</span><span class="s2">"default"</span><span class="p">)</span>
+<a id="__codelineno-13-4" name="__codelineno-13-4" href="#__codelineno-13-4"></a>
+<a id="__codelineno-13-5" name="__codelineno-13-5" href="#__codelineno-13-5"></a><span class="kn">from</span> <span class="nn">pyiceberg.schema</span> <span class="kn">import</span> <span class="n">Schema</span>
+<a id="__codelineno-13-6" name="__codelineno-13-6" href="#__codelineno-13-6"></a><span class="kn">from</span> <span class="nn">pyiceberg.types</span> <span class="kn">import</span> <span class="n">NestedField</span><span class="p">,</span> <span class="n">StringType</span><span class="p">,</span> <span class="n">DoubleType</span>
+<a id="__codelineno-13-7" name="__codelineno-13-7" href="#__codelineno-13-7"></a>
+<a id="__codelineno-13-8" name="__codelineno-13-8" href="#__codelineno-13-8"></a><span class="n">schema</span> <span class="o">=</span> <span class="n">Schema</span><span class="p">(</span>
+<a id="__codelineno-13-9" name="__codelineno-13-9" href="#__codelineno-13-9"></a> <span class="n">NestedField</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span> <span class="s2">"city"</span><span class="p">,</span> <span class="n">StringType</span><span class="p">(),</span> <span class="n">required</span><span class="o">=</span><span class="kc">False</span><span class="p">),</span>
+<a id="__codelineno-13-10" name="__codelineno-13-10" href="#__codelineno-13-10"></a> <span class="n">NestedField</span><span class="p">(</span><span class="mi">2</span><span class="p">,</span> <span class="s2">"lat"</span><span class="p">,</span> <span class="n">DoubleType</span><span class="p">(),</span> <span class="n">required</span><span class="o">=</span><span class="kc">False</span><span class="p">),</span>
+<a id="__codelineno-13-11" name="__codelineno-13-11" href="#__codelineno-13-11"></a> <span class="n">NestedField</span><span class="p">(</span><span class="mi">3</span><span class="p">,</span> <span class="s2">"long"</span><span class="p">,</span> <span class="n">DoubleType</span><span class="p">(),</span> <span class="n">required</span><span class="o">=</span><span class="kc">False</span><span class="p">),</span>
+<a id="__codelineno-13-12" name="__codelineno-13-12" href="#__codelineno-13-12"></a><span class="p">)</span>
+<a id="__codelineno-13-13" name="__codelineno-13-13" href="#__codelineno-13-13"></a>
+<a id="__codelineno-13-14" name="__codelineno-13-14" href="#__codelineno-13-14"></a><span class="n">tbl</span> <span class="o">=</span> <span class="n">catalog</span><span class="o">.</span><span class="n">create_table</span><span class="p">(</span><span class="s2">"default.cities"</span><span class="p">,</span> <span class="n">schema</span><span class="o">=</span><span class="n">schema</span><span class="p">)</span>
+</code></pre></div>
+<p>Now write the data to the table:</p>
+<!-- prettier-ignore-start -->
+
+<div class="admonition note inline end">
+<p class="admonition-title">Fast append</p>
+<p>PyIceberg default to the <a href="https://iceberg.apache.org/spec/#snapshots">fast append</a> to minimize the amount of data written. This enables quick writes, reducing the possibility of conflicts. The downside of the fast append is that it creates more metadata than a normal commit. <a href="https://github.com/apache/iceberg-python/issues/270">Compaction is planned</a> and will automatically rewrite all the metadata when a threshold is hit, to maintain performant reads.</p>
+</div>
+<!-- prettier-ignore-end -->
+
+<div class="highlight"><pre><span></span><code><a id="__codelineno-14-1" name="__codelineno-14-1" href="#__codelineno-14-1"></a><span class="n">tbl</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">df</span><span class="p">)</span>
+<a id="__codelineno-14-2" name="__codelineno-14-2" href="#__codelineno-14-2"></a>
+<a id="__codelineno-14-3" name="__codelineno-14-3" href="#__codelineno-14-3"></a><span class="c1"># or</span>
+<a id="__codelineno-14-4" name="__codelineno-14-4" href="#__codelineno-14-4"></a>
+<a id="__codelineno-14-5" name="__codelineno-14-5" href="#__codelineno-14-5"></a><span class="n">tbl</span><span class="o">.</span><span class="n">overwrite</span><span class="p">(</span><span class="n">df</span><span class="p">)</span>
+</code></pre></div>
+<p>The data is written to the table, and when the table is read using <code>tbl.scan().to_arrow()</code>:</p>
+<div class="highlight"><pre><span></span><code><a id="__codelineno-15-1" name="__codelineno-15-1" href="#__codelineno-15-1"></a>pyarrow.Table
+<a id="__codelineno-15-2" name="__codelineno-15-2" href="#__codelineno-15-2"></a>city: string
+<a id="__codelineno-15-3" name="__codelineno-15-3" href="#__codelineno-15-3"></a>lat: double
+<a id="__codelineno-15-4" name="__codelineno-15-4" href="#__codelineno-15-4"></a>long: double
+<a id="__codelineno-15-5" name="__codelineno-15-5" href="#__codelineno-15-5"></a>----
+<a id="__codelineno-15-6" name="__codelineno-15-6" href="#__codelineno-15-6"></a>city: [["Amsterdam","San Francisco","Drachten","Paris"]]
+<a id="__codelineno-15-7" name="__codelineno-15-7" href="#__codelineno-15-7"></a>lat: [[52.371807,37.773972,53.11254,48.864716]]
+<a id="__codelineno-15-8" name="__codelineno-15-8" href="#__codelineno-15-8"></a>long: [[4.896029,-122.431297,6.0989,2.349014]]
+</code></pre></div>
+<p>You both can use <code>append(df)</code> or <code>overwrite(df)</code> since there is no data yet. If we want to add more data, we can use <code>.append()</code> again:</p>
+<div class="highlight"><pre><span></span><code><a id="__codelineno-16-1" name="__codelineno-16-1" href="#__codelineno-16-1"></a><span class="n">df</span> <span class="o">=</span> <span class="n">pa</span><span class="o">.</span><span class="n">Table</span><span class="o">.</span><span class="n">from_pylist</span><span class="p">(</span>
+<a id="__codelineno-16-2" name="__codelineno-16-2" href="#__codelineno-16-2"></a> <span class="p">[{</span><span class="s2">"city"</span><span class="p">:</span> <span class="s2">"Groningen"</span><span class="p">,</span> <span class="s2">"lat"</span><span class="p">:</span> <span class="mf">53.21917</span><span class="p">,</span> <span class="s2">"long"</span><span class="p">:</span> <span class="mf">6.56667</span><span class="p">}],</span>
+<a id="__codelineno-16-3" name="__codelineno-16-3" href="#__codelineno-16-3"></a><span class="p">)</span>
+<a id="__codelineno-16-4" name="__codelineno-16-4" href="#__codelineno-16-4"></a>
+<a id="__codelineno-16-5" name="__codelineno-16-5" href="#__codelineno-16-5"></a><span class="n">tbl</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">df</span><span class="p">)</span>
+</code></pre></div>
+<p>When reading the table <code>tbl.scan().to_arrow()</code> you can see that <code>Groningen</code> is now also part of the table:</p>
+<div class="highlight"><pre><span></span><code><a id="__codelineno-17-1" name="__codelineno-17-1" href="#__codelineno-17-1"></a>pyarrow.Table
+<a id="__codelineno-17-2" name="__codelineno-17-2" href="#__codelineno-17-2"></a>city: string
+<a id="__codelineno-17-3" name="__codelineno-17-3" href="#__codelineno-17-3"></a>lat: double
+<a id="__codelineno-17-4" name="__codelineno-17-4" href="#__codelineno-17-4"></a>long: double
+<a id="__codelineno-17-5" name="__codelineno-17-5" href="#__codelineno-17-5"></a>----
+<a id="__codelineno-17-6" name="__codelineno-17-6" href="#__codelineno-17-6"></a>city: [["Amsterdam","San Francisco","Drachten","Paris"],["Groningen"]]
+<a id="__codelineno-17-7" name="__codelineno-17-7" href="#__codelineno-17-7"></a>lat: [[52.371807,37.773972,53.11254,48.864716],[53.21917]]
+<a id="__codelineno-17-8" name="__codelineno-17-8" href="#__codelineno-17-8"></a>long: [[4.896029,-122.431297,6.0989,2.349014],[6.56667]]
+</code></pre></div>
+<p>The nested lists indicate the different Arrow buffers, where the first write results into a buffer, and the second append in a separate buffer. This is expected since it will read two parquet files.</p>
+<p>To avoid any type errors during writing, you can enforce the PyArrow table types using the Iceberg table schema:</p>
+<div class="highlight"><pre><span></span><code><a id="__codelineno-18-1" name="__codelineno-18-1" href="#__codelineno-18-1"></a><span class="kn">from</span> <span class="nn">pyiceberg.catalog</span> <span class="kn">import</span> <span class="n">load_catalog</span>
+<a id="__codelineno-18-2" name="__codelineno-18-2" href="#__codelineno-18-2"></a><span class="kn">import</span> <span class="nn">pyarrow</span> <span class="k">as</span> <span class="nn">pa</span>
+<a id="__codelineno-18-3" name="__codelineno-18-3" href="#__codelineno-18-3"></a>
+<a id="__codelineno-18-4" name="__codelineno-18-4" href="#__codelineno-18-4"></a><span class="n">catalog</span> <span class="o">=</span> <span class="n">load_catalog</span><span class="p">(</span><span class="s2">"default"</span><span class="p">)</span>
+<a id="__codelineno-18-5" name="__codelineno-18-5" href="#__codelineno-18-5"></a><span class="n">table</span> <span class="o">=</span> <span class="n">catalog</span><span class="o">.</span><span class="n">load_table</span><span class="p">(</span><span class="s2">"default.cities"</span><span class="p">)</span>
+<a id="__codelineno-18-6" name="__codelineno-18-6" href="#__codelineno-18-6"></a><span class="n">schema</span> <span class="o">=</span> <span class="n">table</span><span class="o">.</span><span class="n">schema</span><span class="p">()</span><span class="o">.</span><span class="n">as_arrow</span><span class="p">()</span>
+<a id="__codelineno-18-7" name="__codelineno-18-7" href="#__codelineno-18-7"></a>
+<a id="__codelineno-18-8" name="__codelineno-18-8" href="#__codelineno-18-8"></a><span class="n">df</span> <span class="o">=</span> <span class="n">pa</span><span class="o">.</span><span class="n">Table</span><span class="o">.</span><span class="n">from_pylist</span><span class="p">(</span>
+<a id="__codelineno-18-9" name="__codelineno-18-9" href="#__codelineno-18-9"></a> <span class="p">[{</span><span class="s2">"city"</span><span class="p">:</span> <span class="s2">"Groningen"</span><span class="p">,</span> <span class="s2">"lat"</span><span class="p">:</span> <span class="mf">53.21917</span><span class="p">,</span> <span class="s2">"long"</span><span class="p">:</span> <span class="mf">6.56667</span><span class="p">}],</span> <sp [...]
+<a id="__codelineno-18-10" name="__codelineno-18-10" href="#__codelineno-18-10"></a><span class="p">)</span>
+<a id="__codelineno-18-11" name="__codelineno-18-11" href="#__codelineno-18-11"></a>
+<a id="__codelineno-18-12" name="__codelineno-18-12" href="#__codelineno-18-12"></a><span class="n">table</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">df</span><span class="p">)</span>
+</code></pre></div>
+<p>You can delete some of the data from the table by calling <code>tbl.delete()</code> with a desired <code>delete_filter</code>.</p>
+<div class="highlight"><pre><span></span><code><a id="__codelineno-19-1" name="__codelineno-19-1" href="#__codelineno-19-1"></a><span class="n">tbl</span><span class="o">.</span><span class="n">delete</span><span class="p">(</span><span class="n">delete_filter</span><span class="o">=</span><span class="s2">"city == 'Paris'"</span><span class="p">)</span>
+</code></pre></div>
+<p>In the above example, any records where the city field value equals to <code>Paris</code> will be deleted.
+Running <code>tbl.scan().to_arrow()</code> will now yield:</p>
+<div class="highlight"><pre><span></span><code><a id="__codelineno-20-1" name="__codelineno-20-1" href="#__codelineno-20-1"></a>pyarrow.Table
+<a id="__codelineno-20-2" name="__codelineno-20-2" href="#__codelineno-20-2"></a>city: string
+<a id="__codelineno-20-3" name="__codelineno-20-3" href="#__codelineno-20-3"></a>lat: double
+<a id="__codelineno-20-4" name="__codelineno-20-4" href="#__codelineno-20-4"></a>long: double
+<a id="__codelineno-20-5" name="__codelineno-20-5" href="#__codelineno-20-5"></a>----
+<a id="__codelineno-20-6" name="__codelineno-20-6" href="#__codelineno-20-6"></a>city: [["Amsterdam","San Francisco","Drachten"],["Groningen"]]
+<a id="__codelineno-20-7" name="__codelineno-20-7" href="#__codelineno-20-7"></a>lat: [[52.371807,37.773972,53.11254],[53.21917]]
+<a id="__codelineno-20-8" name="__codelineno-20-8" href="#__codelineno-20-8"></a>long: [[4.896029,-122.431297,6.0989],[6.56667]]
+</code></pre></div>
+<h2 id="inspecting-tables">Inspecting tables<a class="headerlink" href="#inspecting-tables" title="Permanent link">¶</a></h2>
+<p>To explore the table metadata, tables can be inspected.</p>
+<!-- prettier-ignore-start -->
+
+<div class="admonition tip">
+<p class="admonition-title">Time Travel</p>
+<p>To inspect a tables's metadata with the time travel feature, call the inspect table method with the <code>snapshot_id</code> argument.
+Time travel is supported on all metadata tables except <code>snapshots</code> and <code>refs</code>.</p>
+<div class="highlight"><pre><span></span><code><a id="__codelineno-21-1" name="__codelineno-21-1" href="#__codelineno-21-1"></a><span class="n">table</span><span class="o">.</span><span class="n">inspect</span><span class="o">.</span><span class="n">entries</span><span class="p">(</span><span class="n">snapshot_id</span><span class="o">=</span><span class="mi">805611270568163028</span><span class="p">)</span>
+</code></pre></div>
+</div>
+<!-- prettier-ignore-end -->
+
+<h3 id="snapshots">Snapshots<a class="headerlink" href="#snapshots" title="Permanent link">¶</a></h3>
+<p>Inspect the snapshots of the table:</p>
+<div class="highlight"><pre><span></span><code><a id="__codelineno-22-1" name="__codelineno-22-1" href="#__codelineno-22-1"></a><span class="n">table</span><span class="o">.</span><span class="n">inspect</span><span class="o">.</span><span class="n">snapshots</span><span class="p">()</span>
+</code></pre></div>
+<div class="highlight"><pre><span></span><code><a id="__codelineno-23-1" name="__codelineno-23-1" href="#__codelineno-23-1"></a>pyarrow.Table
+<a id="__codelineno-23-2" name="__codelineno-23-2" href="#__codelineno-23-2"></a>committed_at: timestamp[ms] not null
+<a id="__codelineno-23-3" name="__codelineno-23-3" href="#__codelineno-23-3"></a>snapshot_id: int64 not null
+<a id="__codelineno-23-4" name="__codelineno-23-4" href="#__codelineno-23-4"></a>parent_id: int64
+<a id="__codelineno-23-5" name="__codelineno-23-5" href="#__codelineno-23-5"></a>operation: string
+<a id="__codelineno-23-6" name="__codelineno-23-6" href="#__codelineno-23-6"></a>manifest_list: string not null
+<a id="__codelineno-23-7" name="__codelineno-23-7" href="#__codelineno-23-7"></a>summary: map<string, string>
+<a id="__codelineno-23-8" name="__codelineno-23-8" href="#__codelineno-23-8"></a> child 0, entries: struct<key: string not null, value: string> not null
+<a id="__codelineno-23-9" name="__codelineno-23-9" href="#__codelineno-23-9"></a> child 0, key: string not null
+<a id="__codelineno-23-10" name="__codelineno-23-10" href="#__codelineno-23-10"></a> child 1, value: string
+<a id="__codelineno-23-11" name="__codelineno-23-11" href="#__codelineno-23-11"></a>----
+<a id="__codelineno-23-12" name="__codelineno-23-12" href="#__codelineno-23-12"></a>committed_at: [[2024-03-15 15:01:25.682,2024-03-15 15:01:25.730,2024-03-15 15:01:25.772]]
+<a id="__codelineno-23-13" name="__codelineno-23-13" href="#__codelineno-23-13"></a>snapshot_id: [[805611270568163028,3679426539959220963,5588071473139865870]]
+<a id="__codelineno-23-14" name="__codelineno-23-14" href="#__codelineno-23-14"></a>parent_id: [[null,805611270568163028,3679426539959220963]]
+<a id="__codelineno-23-15" name="__codelineno-23-15" href="#__codelineno-23-15"></a>operation: [["append","overwrite","append"]]
+<a id="__codelineno-23-16" name="__codelineno-23-16" href="#__codelineno-23-16"></a>manifest_list: [["s3://warehouse/default/table_metadata_snapshots/metadata/snap-805611270568163028-0-43637daf-ea4b-4ceb-b096-a60c25481eb5.avro","s3://warehouse/default/table_metadata_snapshots/metadata/snap-3679426539959220963-0-8be81019-adf1-4bb6-a127-e15217bd50b3.avro","s3://warehouse/default/table_metadata_snapshots/metadata/snap-5588071473139865870-0-1382dd7e-5fbc-4c51-9776-a8 [...]
+<a id="__codelineno-23-17" name="__codelineno-23-17" href="#__codelineno-23-17"></a>summary: [[keys:["added-files-size","added-data-files","added-records","total-data-files","total-delete-files","total-records","total-files-size","total-position-deletes","total-equality-deletes"]values:["5459","1","3","1","0","3","5459","0&qu [...]
+</code></pre></div>
+<h3 id="partitions">Partitions<a class="headerlink" href="#partitions" title="Permanent link">¶</a></h3>
+<p>Inspect the partitions of the table:</p>
+<div class="highlight"><pre><span></span><code><a id="__codelineno-24-1" name="__codelineno-24-1" href="#__codelineno-24-1"></a><span class="n">table</span><span class="o">.</span><span class="n">inspect</span><span class="o">.</span><span class="n">partitions</span><span class="p">()</span>
+</code></pre></div>
+<div class="highlight"><pre><span></span><code><a id="__codelineno-25-1" name="__codelineno-25-1" href="#__codelineno-25-1"></a>pyarrow.Table
+<a id="__codelineno-25-2" name="__codelineno-25-2" href="#__codelineno-25-2"></a>partition: struct<dt_month: int32, dt_day: date32[day]> not null
+<a id="__codelineno-25-3" name="__codelineno-25-3" href="#__codelineno-25-3"></a> child 0, dt_month: int32
+<a id="__codelineno-25-4" name="__codelineno-25-4" href="#__codelineno-25-4"></a> child 1, dt_day: date32[day]
+<a id="__codelineno-25-5" name="__codelineno-25-5" href="#__codelineno-25-5"></a>spec_id: int32 not null
+<a id="__codelineno-25-6" name="__codelineno-25-6" href="#__codelineno-25-6"></a>record_count: int64 not null
+<a id="__codelineno-25-7" name="__codelineno-25-7" href="#__codelineno-25-7"></a>file_count: int32 not null
+<a id="__codelineno-25-8" name="__codelineno-25-8" href="#__codelineno-25-8"></a>total_data_file_size_in_bytes: int64 not null
+<a id="__codelineno-25-9" name="__codelineno-25-9" href="#__codelineno-25-9"></a>position_delete_record_count: int64 not null
+<a id="__codelineno-25-10" name="__codelineno-25-10" href="#__codelineno-25-10"></a>position_delete_file_count: int32 not null
+<a id="__codelineno-25-11" name="__codelineno-25-11" href="#__codelineno-25-11"></a>equality_delete_record_count: int64 not null
+<a id="__codelineno-25-12" name="__codelineno-25-12" href="#__codelineno-25-12"></a>equality_delete_file_count: int32 not null
+<a id="__codelineno-25-13" name="__codelineno-25-13" href="#__codelineno-25-13"></a>last_updated_at: timestamp[ms]
+<a id="__codelineno-25-14" name="__codelineno-25-14" href="#__codelineno-25-14"></a>last_updated_snapshot_id: int64
+<a id="__codelineno-25-15" name="__codelineno-25-15" href="#__codelineno-25-15"></a>----
+<a id="__codelineno-25-16" name="__codelineno-25-16" href="#__codelineno-25-16"></a>partition: [
+<a id="__codelineno-25-17" name="__codelineno-25-17" href="#__codelineno-25-17"></a> -- is_valid: all not null
+<a id="__codelineno-25-18" name="__codelineno-25-18" href="#__codelineno-25-18"></a> -- child 0 type: int32
+<a id="__codelineno-25-19" name="__codelineno-25-19" href="#__codelineno-25-19"></a>[null,null,612]
+<a id="__codelineno-25-20" name="__codelineno-25-20" href="#__codelineno-25-20"></a> -- child 1 type: date32[day]
+<a id="__codelineno-25-21" name="__codelineno-25-21" href="#__codelineno-25-21"></a>[null,2021-02-01,null]]
+<a id="__codelineno-25-22" name="__codelineno-25-22" href="#__codelineno-25-22"></a>spec_id: [[2,1,0]]
+<a id="__codelineno-25-23" name="__codelineno-25-23" href="#__codelineno-25-23"></a>record_count: [[1,1,2]]
+<a id="__codelineno-25-24" name="__codelineno-25-24" href="#__codelineno-25-24"></a>file_count: [[1,1,2]]
+<a id="__codelineno-25-25" name="__codelineno-25-25" href="#__codelineno-25-25"></a>total_data_file_size_in_bytes: [[641,641,1260]]
+<a id="__codelineno-25-26" name="__codelineno-25-26" href="#__codelineno-25-26"></a>position_delete_record_count: [[0,0,0]]
+<a id="__codelineno-25-27" name="__codelineno-25-27" href="#__codelineno-25-27"></a>position_delete_file_count: [[0,0,0]]
+<a id="__codelineno-25-28" name="__codelineno-25-28" href="#__codelineno-25-28"></a>equality_delete_record_count: [[0,0,0]]
+<a id="__codelineno-25-29" name="__codelineno-25-29" href="#__codelineno-25-29"></a>equality_delete_file_count: [[0,0,0]]
+<a id="__codelineno-25-30" name="__codelineno-25-30" href="#__codelineno-25-30"></a>last_updated_at: [[2024-04-13 18:59:35.981,2024-04-13 18:59:35.465,2024-04-13 18:59:35.003]]
+</code></pre></div>
+<h3 id="entries">Entries<a class="headerlink" href="#entries" title="Permanent link">¶</a></h3>
+<p>To show all the table's current manifest entries for both data and delete files.</p>
+<div class="highlight"><pre><span></span><code><a id="__codelineno-26-1" name="__codelineno-26-1" href="#__codelineno-26-1"></a><span class="n">table</span><span class="o">.</span><span class="n">inspect</span><span class="o">.</span><span class="n">entries</span><span class="p">()</span>
+</code></pre></div>
+<div class="highlight"><pre><span></span><code><a id="__codelineno-27-1" name="__codelineno-27-1" href="#__codelineno-27-1"></a>pyarrow.Table
+<a id="__codelineno-27-2" name="__codelineno-27-2" href="#__codelineno-27-2"></a>status: int8 not null
+<a id="__codelineno-27-3" name="__codelineno-27-3" href="#__codelineno-27-3"></a>snapshot_id: int64 not null
+<a id="__codelineno-27-4" name="__codelineno-27-4" href="#__codelineno-27-4"></a>sequence_number: int64 not null
+<a id="__codelineno-27-5" name="__codelineno-27-5" href="#__codelineno-27-5"></a>file_sequence_number: int64 not null
+<a id="__codelineno-27-6" name="__codelineno-27-6" href="#__codelineno-27-6"></a>data_file: struct<content: int8 not null, file_path: string not null, file_format: string not null, partition: struct<> not null, record_count: int64 not null, file_size_in_bytes: int64 not null, column_sizes: map<int32, int64>, value_counts: map<int32, int64>, null_value_counts: map<int32, int64>, nan_value_counts: map<int32, int64>, lower_bounds: map<int32, binary>, u [...]
+<a id="__codelineno-27-7" name="__codelineno-27-7" href="#__codelineno-27-7"></a> child 0, content: int8 not null
+<a id="__codelineno-27-8" name="__codelineno-27-8" href="#__codelineno-27-8"></a> child 1, file_path: string not null
+<a id="__codelineno-27-9" name="__codelineno-27-9" href="#__codelineno-27-9"></a> child 2, file_format: string not null
+<a id="__codelineno-27-10" name="__codelineno-27-10" href="#__codelineno-27-10"></a> child 3, partition: struct<> not null
+<a id="__codelineno-27-11" name="__codelineno-27-11" href="#__codelineno-27-11"></a> child 4, record_count: int64 not null
+<a id="__codelineno-27-12" name="__codelineno-27-12" href="#__codelineno-27-12"></a> child 5, file_size_in_bytes: int64 not null
+<a id="__codelineno-27-13" name="__codelineno-27-13" href="#__codelineno-27-13"></a> child 6, column_sizes: map<int32, int64>
+<a id="__codelineno-27-14" name="__codelineno-27-14" href="#__codelineno-27-14"></a> child 0, entries: struct<key: int32 not null, value: int64> not null
+<a id="__codelineno-27-15" name="__codelineno-27-15" href="#__codelineno-27-15"></a> child 0, key: int32 not null
+<a id="__codelineno-27-16" name="__codelineno-27-16" href="#__codelineno-27-16"></a> child 1, value: int64
+<a id="__codelineno-27-17" name="__codelineno-27-17" href="#__codelineno-27-17"></a> child 7, value_counts: map<int32, int64>
+<a id="__codelineno-27-18" name="__codelineno-27-18" href="#__codelineno-27-18"></a> child 0, entries: struct<key: int32 not null, value: int64> not null
+<a id="__codelineno-27-19" name="__codelineno-27-19" href="#__codelineno-27-19"></a> child 0, key: int32 not null
+<a id="__codelineno-27-20" name="__codelineno-27-20" href="#__codelineno-27-20"></a> child 1, value: int64
+<a id="__codelineno-27-21" name="__codelineno-27-21" href="#__codelineno-27-21"></a> child 8, null_value_counts: map<int32, int64>
+<a id="__codelineno-27-22" name="__codelineno-27-22" href="#__codelineno-27-22"></a> child 0, entries: struct<key: int32 not null, value: int64> not null
+<a id="__codelineno-27-23" name="__codelineno-27-23" href="#__codelineno-27-23"></a> child 0, key: int32 not null
+<a id="__codelineno-27-24" name="__codelineno-27-24" href="#__codelineno-27-24"></a> child 1, value: int64
+<a id="__codelineno-27-25" name="__codelineno-27-25" href="#__codelineno-27-25"></a> child 9, nan_value_counts: map<int32, int64>
+<a id="__codelineno-27-26" name="__codelineno-27-26" href="#__codelineno-27-26"></a> child 0, entries: struct<key: int32 not null, value: int64> not null
+<a id="__codelineno-27-27" name="__codelineno-27-27" href="#__codelineno-27-27"></a> child 0, key: int32 not null
+<a id="__codelineno-27-28" name="__codelineno-27-28" href="#__codelineno-27-28"></a> child 1, value: int64
+<a id="__codelineno-27-29" name="__codelineno-27-29" href="#__codelineno-27-29"></a> child 10, lower_bounds: map<int32, binary>
+<a id="__codelineno-27-30" name="__codelineno-27-30" href="#__codelineno-27-30"></a> child 0, entries: struct<key: int32 not null, value: binary> not null
+<a id="__codelineno-27-31" name="__codelineno-27-31" href="#__codelineno-27-31"></a> child 0, key: int32 not null
+<a id="__codelineno-27-32" name="__codelineno-27-32" href="#__codelineno-27-32"></a> child 1, value: binary
+<a id="__codelineno-27-33" name="__codelineno-27-33" href="#__codelineno-27-33"></a> child 11, upper_bounds: map<int32, binary>
+<a id="__codelineno-27-34" name="__codelineno-27-34" href="#__codelineno-27-34"></a> child 0, entries: struct<key: int32 not null, value: binary> not null
+<a id="__codelineno-27-35" name="__codelineno-27-35" href="#__codelineno-27-35"></a> child 0, key: int32 not null
+<a id="__codelineno-27-36" name="__codelineno-27-36" href="#__codelineno-27-36"></a> child 1, value: binary
+<a id="__codelineno-27-37" name="__codelineno-27-37" href="#__codelineno-27-37"></a> child 12, key_metadata: binary
+<a id="__codelineno-27-38" name="__codelineno-27-38" href="#__codelineno-27-38"></a> child 13, split_offsets: list<item: int64>
+<a id="__codelineno-27-39" name="__codelineno-27-39" href="#__codelineno-27-39"></a> child 0, item: int64
+<a id="__codelineno-27-40" name="__codelineno-27-40" href="#__codelineno-27-40"></a> child 14, equality_ids: list<item: int32>
+<a id="__codelineno-27-41" name="__codelineno-27-41" href="#__codelineno-27-41"></a> child 0, item: int32
+<a id="__codelineno-27-42" name="__codelineno-27-42" href="#__codelineno-27-42"></a> child 15, sort_order_id: int32
+<a id="__codelineno-27-43" name="__codelineno-27-43" href="#__codelineno-27-43"></a>readable_metrics: struct<city: struct<column_size: int64, value_count: int64, null_value_count: int64, nan_value_count: int64, lower_bound: string, upper_bound: string> not null, lat: struct<column_size: int64, value_count: int64, null_value_count: int64, nan_value_count: int64, lower_bound: double, upper_bound: double> not null, long: struct<column_size: int64, value_count: int64, null_ [...]
+<a id="__codelineno-27-44" name="__codelineno-27-44" href="#__codelineno-27-44"></a> child 0, city: struct<column_size: int64, value_count: int64, null_value_count: int64, nan_value_count: int64, lower_bound: string, upper_bound: string> not null
+<a id="__codelineno-27-45" name="__codelineno-27-45" href="#__codelineno-27-45"></a> child 0, column_size: int64
+<a id="__codelineno-27-46" name="__codelineno-27-46" href="#__codelineno-27-46"></a> child 1, value_count: int64
+<a id="__codelineno-27-47" name="__codelineno-27-47" href="#__codelineno-27-47"></a> child 2, null_value_count: int64
+<a id="__codelineno-27-48" name="__codelineno-27-48" href="#__codelineno-27-48"></a> child 3, nan_value_count: int64
+<a id="__codelineno-27-49" name="__codelineno-27-49" href="#__codelineno-27-49"></a> child 4, lower_bound: string
+<a id="__codelineno-27-50" name="__codelineno-27-50" href="#__codelineno-27-50"></a> child 5, upper_bound: string
+<a id="__codelineno-27-51" name="__codelineno-27-51" href="#__codelineno-27-51"></a> child 1, lat: struct<column_size: int64, value_count: int64, null_value_count: int64, nan_value_count: int64, lower_bound: double, upper_bound: double> not null
+<a id="__codelineno-27-52" name="__codelineno-27-52" href="#__codelineno-27-52"></a> child 0, column_size: int64
+<a id="__codelineno-27-53" name="__codelineno-27-53" href="#__codelineno-27-53"></a> child 1, value_count: int64
+<a id="__codelineno-27-54" name="__codelineno-27-54" href="#__codelineno-27-54"></a> child 2, null_value_count: int64
+<a id="__codelineno-27-55" name="__codelineno-27-55" href="#__codelineno-27-55"></a> child 3, nan_value_count: int64
+<a id="__codelineno-27-56" name="__codelineno-27-56" href="#__codelineno-27-56"></a> child 4, lower_bound: double
+<a id="__codelineno-27-57" name="__codelineno-27-57" href="#__codelineno-27-57"></a> child 5, upper_bound: double
+<a id="__codelineno-27-58" name="__codelineno-27-58" href="#__codelineno-27-58"></a> child 2, long: struct<column_size: int64, value_count: int64, null_value_count: int64, nan_value_count: int64, lower_bound: double, upper_bound: double> not null
+<a id="__codelineno-27-59" name="__codelineno-27-59" href="#__codelineno-27-59"></a> child 0, column_size: int64
+<a id="__codelineno-27-60" name="__codelineno-27-60" href="#__codelineno-27-60"></a> child 1, value_count: int64
+<a id="__codelineno-27-61" name="__codelineno-27-61" href="#__codelineno-27-61"></a> child 2, null_value_count: int64
+<a id="__codelineno-27-62" name="__codelineno-27-62" href="#__codelineno-27-62"></a> child 3, nan_value_count: int64
+<a id="__codelineno-27-63" name="__codelineno-27-63" href="#__codelineno-27-63"></a> child 4, lower_bound: double
+<a id="__codelineno-27-64" name="__codelineno-27-64" href="#__codelineno-27-64"></a> child 5, upper_bound: double
+<a id="__codelineno-27-65" name="__codelineno-27-65" href="#__codelineno-27-65"></a>----
+<a id="__codelineno-27-66" name="__codelineno-27-66" href="#__codelineno-27-66"></a>status: [[1]]
+<a id="__codelineno-27-67" name="__codelineno-27-67" href="#__codelineno-27-67"></a>snapshot_id: [[6245626162224016531]]
+<a id="__codelineno-27-68" name="__codelineno-27-68" href="#__codelineno-27-68"></a>sequence_number: [[1]]
+<a id="__codelineno-27-69" name="__codelineno-27-69" href="#__codelineno-27-69"></a>file_sequence_number: [[1]]
+<a id="__codelineno-27-70" name="__codelineno-27-70" href="#__codelineno-27-70"></a>data_file: [
+<a id="__codelineno-27-71" name="__codelineno-27-71" href="#__codelineno-27-71"></a> -- is_valid: all not null
+<a id="__codelineno-27-72" name="__codelineno-27-72" href="#__codelineno-27-72"></a> -- child 0 type: int8
+<a id="__codelineno-27-73" name="__codelineno-27-73" href="#__codelineno-27-73"></a>[0]
+<a id="__codelineno-27-74" name="__codelineno-27-74" href="#__codelineno-27-74"></a> -- child 1 type: string
+<a id="__codelineno-27-75" name="__codelineno-27-75" href="#__codelineno-27-75"></a>["s3://warehouse/default/cities/data/00000-0-80766b66-e558-4150-a5cf-85e4c609b9fe.parquet"]
+<a id="__codelineno-27-76" name="__codelineno-27-76" href="#__codelineno-27-76"></a> -- child 2 type: string
+<a id="__codelineno-27-77" name="__codelineno-27-77" href="#__codelineno-27-77"></a>["PARQUET"]
+<a id="__codelineno-27-78" name="__codelineno-27-78" href="#__codelineno-27-78"></a> -- child 3 type: struct<>
+<a id="__codelineno-27-79" name="__codelineno-27-79" href="#__codelineno-27-79"></a> -- is_valid: all not null
+<a id="__codelineno-27-80" name="__codelineno-27-80" href="#__codelineno-27-80"></a> -- child 4 type: int64
+<a id="__codelineno-27-81" name="__codelineno-27-81" href="#__codelineno-27-81"></a>[4]
+<a id="__codelineno-27-82" name="__codelineno-27-82" href="#__codelineno-27-82"></a> -- child 5 type: int64
+<a id="__codelineno-27-83" name="__codelineno-27-83" href="#__codelineno-27-83"></a>[1656]
+<a id="__codelineno-27-84" name="__codelineno-27-84" href="#__codelineno-27-84"></a> -- child 6 type: map<int32, int64>
+<a id="__codelineno-27-85" name="__codelineno-27-85" href="#__codelineno-27-85"></a>[keys:[1,2,3]values:[140,135,135]]
+<a id="__codelineno-27-86" name="__codelineno-27-86" href="#__codelineno-27-86"></a> -- child 7 type: map<int32, int64>
+<a id="__codelineno-27-87" name="__codelineno-27-87" href="#__codelineno-27-87"></a>[keys:[1,2,3]values:[4,4,4]]
+<a id="__codelineno-27-88" name="__codelineno-27-88" href="#__codelineno-27-88"></a> -- child 8 type: map<int32, int64>
+<a id="__codelineno-27-89" name="__codelineno-27-89" href="#__codelineno-27-89"></a>[keys:[1,2,3]values:[0,0,0]]
+<a id="__codelineno-27-90" name="__codelineno-27-90" href="#__codelineno-27-90"></a> -- child 9 type: map<int32, int64>
+<a id="__codelineno-27-91" name="__codelineno-27-91" href="#__codelineno-27-91"></a>[keys:[]values:[]]
+<a id="__codelineno-27-92" name="__codelineno-27-92" href="#__codelineno-27-92"></a> -- child 10 type: map<int32, binary>
+<a id="__codelineno-27-93" name="__codelineno-27-93" href="#__codelineno-27-93"></a>[keys:[1,2,3]values:[416D7374657264616D,8602B68311E34240,3A77BB5E9A9B5EC0]]
+<a id="__codelineno-27-94" name="__codelineno-27-94" href="#__codelineno-27-94"></a> -- child 11 type: map<int32, binary>
+<a id="__codelineno-27-95" name="__codelineno-27-95" href="#__codelineno-27-95"></a>[keys:[1,2,3]values:[53616E204672616E636973636F,F5BEF1B5678E4A40,304CA60A46651840]]
+<a id="__codelineno-27-96" name="__codelineno-27-96" href="#__codelineno-27-96"></a> -- child 12 type: binary
+<a id="__codelineno-27-97" name="__codelineno-27-97" href="#__codelineno-27-97"></a>[null]
+<a id="__codelineno-27-98" name="__codelineno-27-98" href="#__codelineno-27-98"></a> -- child 13 type: list<item: int64>
+<a id="__codelineno-27-99" name="__codelineno-27-99" href="#__codelineno-27-99"></a>[[4]]
+<a id="__codelineno-27-100" name="__codelineno-27-100" href="#__codelineno-27-100"></a> -- child 14 type: list<item: int32>
+<a id="__codelineno-27-101" name="__codelineno-27-101" href="#__codelineno-27-101"></a>[null]
+<a id="__codelineno-27-102" name="__codelineno-27-102" href="#__codelineno-27-102"></a> -- child 15 type: int32
+<a id="__codelineno-27-103" name="__codelineno-27-103" href="#__codelineno-27-103"></a>[null]]
+<a id="__codelineno-27-104" name="__codelineno-27-104" href="#__codelineno-27-104"></a>readable_metrics: [
+<a id="__codelineno-27-105" name="__codelineno-27-105" href="#__codelineno-27-105"></a> -- is_valid: all not null
+<a id="__codelineno-27-106" name="__codelineno-27-106" href="#__codelineno-27-106"></a> -- child 0 type: struct<column_size: int64, value_count: int64, null_value_count: int64, nan_value_count: int64, lower_bound: string, upper_bound: string>
+<a id="__codelineno-27-107" name="__codelineno-27-107" href="#__codelineno-27-107"></a> -- is_valid: all not null
+<a id="__codelineno-27-108" name="__codelineno-27-108" href="#__codelineno-27-108"></a> -- child 0 type: int64
+<a id="__codelineno-27-109" name="__codelineno-27-109" href="#__codelineno-27-109"></a>[140]
+<a id="__codelineno-27-110" name="__codelineno-27-110" href="#__codelineno-27-110"></a> -- child 1 type: int64
+<a id="__codelineno-27-111" name="__codelineno-27-111" href="#__codelineno-27-111"></a>[4]
+<a id="__codelineno-27-112" name="__codelineno-27-112" href="#__codelineno-27-112"></a> -- child 2 type: int64
+<a id="__codelineno-27-113" name="__codelineno-27-113" href="#__codelineno-27-113"></a>[0]
+<a id="__codelineno-27-114" name="__codelineno-27-114" href="#__codelineno-27-114"></a> -- child 3 type: int64
+<a id="__codelineno-27-115" name="__codelineno-27-115" href="#__codelineno-27-115"></a>[null]
+<a id="__codelineno-27-116" name="__codelineno-27-116" href="#__codelineno-27-116"></a> -- child 4 type: string
+<a id="__codelineno-27-117" name="__codelineno-27-117" href="#__codelineno-27-117"></a>["Amsterdam"]
+<a id="__codelineno-27-118" name="__codelineno-27-118" href="#__codelineno-27-118"></a> -- child 5 type: string
+<a id="__codelineno-27-119" name="__codelineno-27-119" href="#__codelineno-27-119"></a>["San Francisco"]
+<a id="__codelineno-27-120" name="__codelineno-27-120" href="#__codelineno-27-120"></a> -- child 1 type: struct<column_size: int64, value_count: int64, null_value_count: int64, nan_value_count: int64, lower_bound: double, upper_bound: double>
+<a id="__codelineno-27-121" name="__codelineno-27-121" href="#__codelineno-27-121"></a> -- is_valid: all not null
+<a id="__codelineno-27-122" name="__codelineno-27-122" href="#__codelineno-27-122"></a> -- child 0 type: int64
+<a id="__codelineno-27-123" name="__codelineno-27-123" href="#__codelineno-27-123"></a>[135]
+<a id="__codelineno-27-124" name="__codelineno-27-124" href="#__codelineno-27-124"></a> -- child 1 type: int64
+<a id="__codelineno-27-125" name="__codelineno-27-125" href="#__codelineno-27-125"></a>[4]
+<a id="__codelineno-27-126" name="__codelineno-27-126" href="#__codelineno-27-126"></a> -- child 2 type: int64
+<a id="__codelineno-27-127" name="__codelineno-27-127" href="#__codelineno-27-127"></a>[0]
+<a id="__codelineno-27-128" name="__codelineno-27-128" href="#__codelineno-27-128"></a> -- child 3 type: int64
+<a id="__codelineno-27-129" name="__codelineno-27-129" href="#__codelineno-27-129"></a>[null]
+<a id="__codelineno-27-130" name="__codelineno-27-130" href="#__codelineno-27-130"></a> -- child 4 type: double
+<a id="__codelineno-27-131" name="__codelineno-27-131" href="#__codelineno-27-131"></a>[37.773972]
+<a id="__codelineno-27-132" name="__codelineno-27-132" href="#__codelineno-27-132"></a> -- child 5 type: double
+<a id="__codelineno-27-133" name="__codelineno-27-133" href="#__codelineno-27-133"></a>[53.11254]
+<a id="__codelineno-27-134" name="__codelineno-27-134" href="#__codelineno-27-134"></a> -- child 2 type: struct<column_size: int64, value_count: int64, null_value_count: int64, nan_value_count: int64, lower_bound: double, upper_bound: double>
+<a id="__codelineno-27-135" name="__codelineno-27-135" href="#__codelineno-27-135"></a> -- is_valid: all not null
+<a id="__codelineno-27-136" name="__codelineno-27-136" href="#__codelineno-27-136"></a> -- child 0 type: int64
+<a id="__codelineno-27-137" name="__codelineno-27-137" href="#__codelineno-27-137"></a>[135]
+<a id="__codelineno-27-138" name="__codelineno-27-138" href="#__codelineno-27-138"></a> -- child 1 type: int64
+<a id="__codelineno-27-139" name="__codelineno-27-139" href="#__codelineno-27-139"></a>[4]
+<a id="__codelineno-27-140" name="__codelineno-27-140" href="#__codelineno-27-140"></a> -- child 2 type: int64
+<a id="__codelineno-27-141" name="__codelineno-27-141" href="#__codelineno-27-141"></a>[0]
+<a id="__codelineno-27-142" name="__codelineno-27-142" href="#__codelineno-27-142"></a> -- child 3 type: int64
+<a id="__codelineno-27-143" name="__codelineno-27-143" href="#__codelineno-27-143"></a>[null]
+<a id="__codelineno-27-144" name="__codelineno-27-144" href="#__codelineno-27-144"></a> -- child 4 type: double
+<a id="__codelineno-27-145" name="__codelineno-27-145" href="#__codelineno-27-145"></a>[-122.431297]
+<a id="__codelineno-27-146" name="__codelineno-27-146" href="#__codelineno-27-146"></a> -- child 5 type: double
+<a id="__codelineno-27-147" name="__codelineno-27-147" href="#__codelineno-27-147"></a>[6.0989]]
+</code></pre></div>
+<h3 id="references">References<a class="headerlink" href="#references" title="Permanent link">¶</a></h3>
+<p>To show a table's known snapshot references:</p>
+<div class="highlight"><pre><span></span><code><a id="__codelineno-28-1" name="__codelineno-28-1" href="#__codelineno-28-1"></a><span class="n">table</span><span class="o">.</span><span class="n">inspect</span><span class="o">.</span><span class="n">refs</span><span class="p">()</span>
+</code></pre></div>
+<div class="highlight"><pre><span></span><code><a id="__codelineno-29-1" name="__codelineno-29-1" href="#__codelineno-29-1"></a>pyarrow.Table
+<a id="__codelineno-29-2" name="__codelineno-29-2" href="#__codelineno-29-2"></a>name: string not null
+<a id="__codelineno-29-3" name="__codelineno-29-3" href="#__codelineno-29-3"></a>type: string not null
+<a id="__codelineno-29-4" name="__codelineno-29-4" href="#__codelineno-29-4"></a>snapshot_id: int64 not null
+<a id="__codelineno-29-5" name="__codelineno-29-5" href="#__codelineno-29-5"></a>max_reference_age_in_ms: int64
+<a id="__codelineno-29-6" name="__codelineno-29-6" href="#__codelineno-29-6"></a>min_snapshots_to_keep: int32
+<a id="__codelineno-29-7" name="__codelineno-29-7" href="#__codelineno-29-7"></a>max_snapshot_age_in_ms: int64
+<a id="__codelineno-29-8" name="__codelineno-29-8" href="#__codelineno-29-8"></a>----
+<a id="__codelineno-29-9" name="__codelineno-29-9" href="#__codelineno-29-9"></a>name: [["main","testTag"]]
+<a id="__codelineno-29-10" name="__codelineno-29-10" href="#__codelineno-29-10"></a>type: [["BRANCH","TAG"]]
+<a id="__codelineno-29-11" name="__codelineno-29-11" href="#__codelineno-29-11"></a>snapshot_id: [[2278002651076891950,2278002651076891950]]
+<a id="__codelineno-29-12" name="__codelineno-29-12" href="#__codelineno-29-12"></a>max_reference_age_in_ms: [[null,604800000]]
+<a id="__codelineno-29-13" name="__codelineno-29-13" href="#__codelineno-29-13"></a>min_snapshots_to_keep: [[null,10]]
+<a id="__codelineno-29-14" name="__codelineno-29-14" href="#__codelineno-29-14"></a>max_snapshot_age_in_ms: [[null,604800000]]
+</code></pre></div>
+<h3 id="manifests">Manifests<a class="headerlink" href="#manifests" title="Permanent link">¶</a></h3>
+<p>To show a table's current file manifests:</p>
+<div class="highlight"><pre><span></span><code><a id="__codelineno-30-1" name="__codelineno-30-1" href="#__codelineno-30-1"></a><span class="n">table</span><span class="o">.</span><span class="n">inspect</span><span class="o">.</span><span class="n">manifests</span><span class="p">()</span>
+</code></pre></div>
+<div class="highlight"><pre><span></span><code><a id="__codelineno-31-1" name="__codelineno-31-1" href="#__codelineno-31-1"></a>pyarrow.Table
+<a id="__codelineno-31-2" name="__codelineno-31-2" href="#__codelineno-31-2"></a>content: int8 not null
+<a id="__codelineno-31-3" name="__codelineno-31-3" href="#__codelineno-31-3"></a>path: string not null
+<a id="__codelineno-31-4" name="__codelineno-31-4" href="#__codelineno-31-4"></a>length: int64 not null
+<a id="__codelineno-31-5" name="__codelineno-31-5" href="#__codelineno-31-5"></a>partition_spec_id: int32 not null
+<a id="__codelineno-31-6" name="__codelineno-31-6" href="#__codelineno-31-6"></a>added_snapshot_id: int64 not null
+<a id="__codelineno-31-7" name="__codelineno-31-7" href="#__codelineno-31-7"></a>added_data_files_count: int32 not null
+<a id="__codelineno-31-8" name="__codelineno-31-8" href="#__codelineno-31-8"></a>existing_data_files_count: int32 not null
+<a id="__codelineno-31-9" name="__codelineno-31-9" href="#__codelineno-31-9"></a>deleted_data_files_count: int32 not null
+<a id="__codelineno-31-10" name="__codelineno-31-10" href="#__codelineno-31-10"></a>added_delete_files_count: int32 not null
+<a id="__codelineno-31-11" name="__codelineno-31-11" href="#__codelineno-31-11"></a>existing_delete_files_count: int32 not null
+<a id="__codelineno-31-12" name="__codelineno-31-12" href="#__codelineno-31-12"></a>deleted_delete_files_count: int32 not null
+<a id="__codelineno-31-13" name="__codelineno-31-13" href="#__codelineno-31-13"></a>partition_summaries: list<item: struct<contains_null: bool not null, contains_nan: bool, lower_bound: string, upper_bound: string>> not null
+<a id="__codelineno-31-14" name="__codelineno-31-14" href="#__codelineno-31-14"></a> child 0, item: struct<contains_null: bool not null, contains_nan: bool, lower_bound: string, upper_bound: string>
+<a id="__codelineno-31-15" name="__codelineno-31-15" href="#__codelineno-31-15"></a> child 0, contains_null: bool not null
+<a id="__codelineno-31-16" name="__codelineno-31-16" href="#__codelineno-31-16"></a> child 1, contains_nan: bool
+<a id="__codelineno-31-17" name="__codelineno-31-17" href="#__codelineno-31-17"></a> child 2, lower_bound: string
+<a id="__codelineno-31-18" name="__codelineno-31-18" href="#__codelineno-31-18"></a> child 3, upper_bound: string
+<a id="__codelineno-31-19" name="__codelineno-31-19" href="#__codelineno-31-19"></a>----
+<a id="__codelineno-31-20" name="__codelineno-31-20" href="#__codelineno-31-20"></a>content: [[0]]
+<a id="__codelineno-31-21" name="__codelineno-31-21" href="#__codelineno-31-21"></a>path: [["s3://warehouse/default/table_metadata_manifests/metadata/3bf5b4c6-a7a4-4b43-a6ce-ca2b4887945a-m0.avro"]]
+<a id="__codelineno-31-22" name="__codelineno-31-22" href="#__codelineno-31-22"></a>length: [[6886]]
+<a id="__codelineno-31-23" name="__codelineno-31-23" href="#__codelineno-31-23"></a>partition_spec_id: [[0]]
+<a id="__codelineno-31-24" name="__codelineno-31-24" href="#__codelineno-31-24"></a>added_snapshot_id: [[3815834705531553721]]
+<a id="__codelineno-31-25" name="__codelineno-31-25" href="#__codelineno-31-25"></a>added_data_files_count: [[1]]
+<a id="__codelineno-31-26" name="__codelineno-31-26" href="#__codelineno-31-26"></a>existing_data_files_count: [[0]]
+<a id="__codelineno-31-27" name="__codelineno-31-27" href="#__codelineno-31-27"></a>deleted_data_files_count: [[0]]
+<a id="__codelineno-31-28" name="__codelineno-31-28" href="#__codelineno-31-28"></a>added_delete_files_count: [[0]]
+<a id="__codelineno-31-29" name="__codelineno-31-29" href="#__codelineno-31-29"></a>existing_delete_files_count: [[0]]
+<a id="__codelineno-31-30" name="__codelineno-31-30" href="#__codelineno-31-30"></a>deleted_delete_files_count: [[0]]
+<a id="__codelineno-31-31" name="__codelineno-31-31" href="#__codelineno-31-31"></a>partition_summaries: [[ -- is_valid: all not null
+<a id="__codelineno-31-32" name="__codelineno-31-32" href="#__codelineno-31-32"></a> -- child 0 type: bool
+<a id="__codelineno-31-33" name="__codelineno-31-33" href="#__codelineno-31-33"></a>[false]
+<a id="__codelineno-31-34" name="__codelineno-31-34" href="#__codelineno-31-34"></a> -- child 1 type: bool
+<a id="__codelineno-31-35" name="__codelineno-31-35" href="#__codelineno-31-35"></a>[false]
+<a id="__codelineno-31-36" name="__codelineno-31-36" href="#__codelineno-31-36"></a> -- child 2 type: string
+<a id="__codelineno-31-37" name="__codelineno-31-37" href="#__codelineno-31-37"></a>["test"]
+<a id="__codelineno-31-38" name="__codelineno-31-38" href="#__codelineno-31-38"></a> -- child 3 type: string
+<a id="__codelineno-31-39" name="__codelineno-31-39" href="#__codelineno-31-39"></a>["test"]]]
+</code></pre></div>
+<h3 id="metadata-log-entries">Metadata Log Entries<a class="headerlink" href="#metadata-log-entries" title="Permanent link">¶</a></h3>
+<p>To show table metadata log entries:</p>
+<div class="highlight"><pre><span></span><code><a id="__codelineno-32-1" name="__codelineno-32-1" href="#__codelineno-32-1"></a><span class="n">table</span><span class="o">.</span><span class="n">inspect</span><span class="o">.</span><span class="n">metadata_log_entries</span><span class="p">()</span>
+</code></pre></div>
+<div class="highlight"><pre><span></span><code><a id="__codelineno-33-1" name="__codelineno-33-1" href="#__codelineno-33-1"></a>pyarrow.Table
+<a id="__codelineno-33-2" name="__codelineno-33-2" href="#__codelineno-33-2"></a>timestamp: timestamp[ms] not null
+<a id="__codelineno-33-3" name="__codelineno-33-3" href="#__codelineno-33-3"></a>file: string not null
+<a id="__codelineno-33-4" name="__codelineno-33-4" href="#__codelineno-33-4"></a>latest_snapshot_id: int64
+<a id="__codelineno-33-5" name="__codelineno-33-5" href="#__codelineno-33-5"></a>latest_schema_id: int32
+<a id="__codelineno-33-6" name="__codelineno-33-6" href="#__codelineno-33-6"></a>latest_sequence_number: int64
+<a id="__codelineno-33-7" name="__codelineno-33-7" href="#__codelineno-33-7"></a>----
+<a id="__codelineno-33-8" name="__codelineno-33-8" href="#__codelineno-33-8"></a>timestamp: [[2024-04-28 17:03:00.214,2024-04-28 17:03:00.352,2024-04-28 17:03:00.445,2024-04-28 17:03:00.498]]
+<a id="__codelineno-33-9" name="__codelineno-33-9" href="#__codelineno-33-9"></a>file: [["s3://warehouse/default/table_metadata_log_entries/metadata/00000-0b3b643b-0f3a-4787-83ad-601ba57b7319.metadata.json","s3://warehouse/default/table_metadata_log_entries/metadata/00001-f74e4b2c-0f89-4f55-822d-23d099fd7d54.metadata.json","s3://warehouse/default/table_metadata_log_entries/metadata/00002-97e31507-e4d9-4438-aff1-3c0c5304d271.metadata.json","s3://warehous [...]
+<a id="__codelineno-33-10" name="__codelineno-33-10" href="#__codelineno-33-10"></a>latest_snapshot_id: [[null,3958871664825505738,1289234307021405706,7640277914614648349]]
+<a id="__codelineno-33-11" name="__codelineno-33-11" href="#__codelineno-33-11"></a>latest_schema_id: [[null,0,0,0]]
+<a id="__codelineno-33-12" name="__codelineno-33-12" href="#__codelineno-33-12"></a>latest_sequence_number: [[null,0,0,0]]
+</code></pre></div>
+<h3 id="history">History<a class="headerlink" href="#history" title="Permanent link">¶</a></h3>
+<p>To show a table's history:</p>
+<div class="highlight"><pre><span></span><code><a id="__codelineno-34-1" name="__codelineno-34-1" href="#__codelineno-34-1"></a><span class="n">table</span><span class="o">.</span><span class="n">inspect</span><span class="o">.</span><span class="n">history</span><span class="p">()</span>
+</code></pre></div>
+<div class="highlight"><pre><span></span><code><a id="__codelineno-35-1" name="__codelineno-35-1" href="#__codelineno-35-1"></a>pyarrow.Table
+<a id="__codelineno-35-2" name="__codelineno-35-2" href="#__codelineno-35-2"></a>made_current_at: timestamp[ms] not null
+<a id="__codelineno-35-3" name="__codelineno-35-3" href="#__codelineno-35-3"></a>snapshot_id: int64 not null
+<a id="__codelineno-35-4" name="__codelineno-35-4" href="#__codelineno-35-4"></a>parent_id: int64
+<a id="__codelineno-35-5" name="__codelineno-35-5" href="#__codelineno-35-5"></a>is_current_ancestor: bool not null
+<a id="__codelineno-35-6" name="__codelineno-35-6" href="#__codelineno-35-6"></a>----
+<a id="__codelineno-35-7" name="__codelineno-35-7" href="#__codelineno-35-7"></a>made_current_at: [[2024-06-18 16:17:48.768,2024-06-18 16:17:49.240,2024-06-18 16:17:49.343,2024-06-18 16:17:49.511]]
+<a id="__codelineno-35-8" name="__codelineno-35-8" href="#__codelineno-35-8"></a>snapshot_id: [[4358109269873137077,3380769165026943338,4358109269873137077,3089420140651211776]]
+<a id="__codelineno-35-9" name="__codelineno-35-9" href="#__codelineno-35-9"></a>parent_id: [[null,4358109269873137077,null,4358109269873137077]]
+<a id="__codelineno-35-10" name="__codelineno-35-10" href="#__codelineno-35-10"></a>is_current_ancestor: [[true,false,true,true]]
+</code></pre></div>
+<h3 id="files">Files<a class="headerlink" href="#files" title="Permanent link">¶</a></h3>
+<p>Inspect the data files in the current snapshot of the table:</p>
+<div class="highlight"><pre><span></span><code><a id="__codelineno-36-1" name="__codelineno-36-1" href="#__codelineno-36-1"></a><span class="n">table</span><span class="o">.</span><span class="n">inspect</span><span class="o">.</span><span class="n">files</span><span class="p">()</span>
+</code></pre></div>
+<div class="highlight"><pre><span></span><code><a id="__codelineno-37-1" name="__codelineno-37-1" href="#__codelineno-37-1"></a>pyarrow.Table
+<a id="__codelineno-37-2" name="__codelineno-37-2" href="#__codelineno-37-2"></a>content: int8 not null
+<a id="__codelineno-37-3" name="__codelineno-37-3" href="#__codelineno-37-3"></a>file_path: string not null
+<a id="__codelineno-37-4" name="__codelineno-37-4" href="#__codelineno-37-4"></a>file_format: dictionary<values=string, indices=int32, ordered=0> not null
+<a id="__codelineno-37-5" name="__codelineno-37-5" href="#__codelineno-37-5"></a>spec_id: int32 not null
+<a id="__codelineno-37-6" name="__codelineno-37-6" href="#__codelineno-37-6"></a>record_count: int64 not null
+<a id="__codelineno-37-7" name="__codelineno-37-7" href="#__codelineno-37-7"></a>file_size_in_bytes: int64 not null
+<a id="__codelineno-37-8" name="__codelineno-37-8" href="#__codelineno-37-8"></a>column_sizes: map<int32, int64>
+<a id="__codelineno-37-9" name="__codelineno-37-9" href="#__codelineno-37-9"></a> child 0, entries: struct<key: int32 not null, value: int64> not null
+<a id="__codelineno-37-10" name="__codelineno-37-10" href="#__codelineno-37-10"></a> child 0, key: int32 not null
+<a id="__codelineno-37-11" name="__codelineno-37-11" href="#__codelineno-37-11"></a> child 1, value: int64
+<a id="__codelineno-37-12" name="__codelineno-37-12" href="#__codelineno-37-12"></a>value_counts: map<int32, int64>
+<a id="__codelineno-37-13" name="__codelineno-37-13" href="#__codelineno-37-13"></a> child 0, entries: struct<key: int32 not null, value: int64> not null
+<a id="__codelineno-37-14" name="__codelineno-37-14" href="#__codelineno-37-14"></a> child 0, key: int32 not null
+<a id="__codelineno-37-15" name="__codelineno-37-15" href="#__codelineno-37-15"></a> child 1, value: int64
+<a id="__codelineno-37-16" name="__codelineno-37-16" href="#__codelineno-37-16"></a>null_value_counts: map<int32, int64>
+<a id="__codelineno-37-17" name="__codelineno-37-17" href="#__codelineno-37-17"></a> child 0, entries: struct<key: int32 not null, value: int64> not null
+<a id="__codelineno-37-18" name="__codelineno-37-18" href="#__codelineno-37-18"></a> child 0, key: int32 not null
+<a id="__codelineno-37-19" name="__codelineno-37-19" href="#__codelineno-37-19"></a> child 1, value: int64
+<a id="__codelineno-37-20" name="__codelineno-37-20" href="#__codelineno-37-20"></a>nan_value_counts: map<int32, int64>
+<a id="__codelineno-37-21" name="__codelineno-37-21" href="#__codelineno-37-21"></a> child 0, entries: struct<key: int32 not null, value: int64> not null
+<a id="__codelineno-37-22" name="__codelineno-37-22" href="#__codelineno-37-22"></a> child 0, key: int32 not null
+<a id="__codelineno-37-23" name="__codelineno-37-23" href="#__codelineno-37-23"></a> child 1, value: int64
+<a id="__codelineno-37-24" name="__codelineno-37-24" href="#__codelineno-37-24"></a>lower_bounds: map<int32, binary>
+<a id="__codelineno-37-25" name="__codelineno-37-25" href="#__codelineno-37-25"></a> child 0, entries: struct<key: int32 not null, value: binary> not null
+<a id="__codelineno-37-26" name="__codelineno-37-26" href="#__codelineno-37-26"></a> child 0, key: int32 not null
+<a id="__codelineno-37-27" name="__codelineno-37-27" href="#__codelineno-37-27"></a> child 1, value: binary
+<a id="__codelineno-37-28" name="__codelineno-37-28" href="#__codelineno-37-28"></a>upper_bounds: map<int32, binary>
+<a id="__codelineno-37-29" name="__codelineno-37-29" href="#__codelineno-37-29"></a> child 0, entries: struct<key: int32 not null, value: binary> not null
+<a id="__codelineno-37-30" name="__codelineno-37-30" href="#__codelineno-37-30"></a> child 0, key: int32 not null
+<a id="__codelineno-37-31" name="__codelineno-37-31" href="#__codelineno-37-31"></a> child 1, value: binary
+<a id="__codelineno-37-32" name="__codelineno-37-32" href="#__codelineno-37-32"></a>key_metadata: binary
+<a id="__codelineno-37-33" name="__codelineno-37-33" href="#__codelineno-37-33"></a>split_offsets: list<item: int64>
+<a id="__codelineno-37-34" name="__codelineno-37-34" href="#__codelineno-37-34"></a> child 0, item: int64
+<a id="__codelineno-37-35" name="__codelineno-37-35" href="#__codelineno-37-35"></a>equality_ids: list<item: int32>
+<a id="__codelineno-37-36" name="__codelineno-37-36" href="#__codelineno-37-36"></a> child 0, item: int32
+<a id="__codelineno-37-37" name="__codelineno-37-37" href="#__codelineno-37-37"></a>sort_order_id: int32
+<a id="__codelineno-37-38" name="__codelineno-37-38" href="#__codelineno-37-38"></a>readable_metrics: struct<city: struct<column_size: int64, value_count: int64, null_value_count: int64, nan_value_count: int64, lower_bound: large_string, upper_bound: large_string> not null, lat: struct<column_size: int64, value_count: int64, null_value_count: int64, nan_value_count: int64, lower_bound: double, upper_bound: double> not null, long: struct<column_size: int64, value_count: [...]
+<a id="__codelineno-37-39" name="__codelineno-37-39" href="#__codelineno-37-39"></a> child 0, city: struct<column_size: int64, value_count: int64, null_value_count: int64, nan_value_count: int64, lower_bound: string, upper_bound: string> not null
+<a id="__codelineno-37-40" name="__codelineno-37-40" href="#__codelineno-37-40"></a> child 0, column_size: int64
+<a id="__codelineno-37-41" name="__codelineno-37-41" href="#__codelineno-37-41"></a> child 1, value_count: int64
+<a id="__codelineno-37-42" name="__codelineno-37-42" href="#__codelineno-37-42"></a> child 2, null_value_count: int64
+<a id="__codelineno-37-43" name="__codelineno-37-43" href="#__codelineno-37-43"></a> child 3, nan_value_count: int64
+<a id="__codelineno-37-44" name="__codelineno-37-44" href="#__codelineno-37-44"></a> child 4, lower_bound: large_string
+<a id="__codelineno-37-45" name="__codelineno-37-45" href="#__codelineno-37-45"></a> child 5, upper_bound: large_string
+<a id="__codelineno-37-46" name="__codelineno-37-46" href="#__codelineno-37-46"></a> child 1, lat: struct<column_size: int64, value_count: int64, null_value_count: int64, nan_value_count: int64, lower_bound: double, upper_bound: double> not null
+<a id="__codelineno-37-47" name="__codelineno-37-47" href="#__codelineno-37-47"></a> child 0, column_size: int64
+<a id="__codelineno-37-48" name="__codelineno-37-48" href="#__codelineno-37-48"></a> child 1, value_count: int64
+<a id="__codelineno-37-49" name="__codelineno-37-49" href="#__codelineno-37-49"></a> child 2, null_value_count: int64
+<a id="__codelineno-37-50" name="__codelineno-37-50" href="#__codelineno-37-50"></a> child 3, nan_value_count: int64
+<a id="__codelineno-37-51" name="__codelineno-37-51" href="#__codelineno-37-51"></a> child 4, lower_bound: double
+<a id="__codelineno-37-52" name="__codelineno-37-52" href="#__codelineno-37-52"></a> child 5, upper_bound: double
+<a id="__codelineno-37-53" name="__codelineno-37-53" href="#__codelineno-37-53"></a> child 2, long: struct<column_size: int64, value_count: int64, null_value_count: int64, nan_value_count: int64, lower_bound: double, upper_bound: double> not null
+<a id="__codelineno-37-54" name="__codelineno-37-54" href="#__codelineno-37-54"></a> child 0, column_size: int64
+<a id="__codelineno-37-55" name="__codelineno-37-55" href="#__codelineno-37-55"></a> child 1, value_count: int64
+<a id="__codelineno-37-56" name="__codelineno-37-56" href="#__codelineno-37-56"></a> child 2, null_value_count: int64
+<a id="__codelineno-37-57" name="__codelineno-37-57" href="#__codelineno-37-57"></a> child 3, nan_value_count: int64
+<a id="__codelineno-37-58" name="__codelineno-37-58" href="#__codelineno-37-58"></a> child 4, lower_bound: double
+<a id="__codelineno-37-59" name="__codelineno-37-59" href="#__codelineno-37-59"></a> child 5, upper_bound: double
+<a id="__codelineno-37-60" name="__codelineno-37-60" href="#__codelineno-37-60"></a>----
+<a id="__codelineno-37-61" name="__codelineno-37-61" href="#__codelineno-37-61"></a>content: [[0,0]]
+<a id="__codelineno-37-62" name="__codelineno-37-62" href="#__codelineno-37-62"></a>file_path: [["s3://warehouse/default/table_metadata_files/data/00000-0-9ea7d222-6457-467f-bad5-6fb125c9aa5f.parquet","s3://warehouse/default/table_metadata_files/data/00000-0-afa8893c-de71-4710-97c9-6b01590d0c44.parquet"]]
+<a id="__codelineno-37-63" name="__codelineno-37-63" href="#__codelineno-37-63"></a>file_format: [["PARQUET","PARQUET"]]
+<a id="__codelineno-37-64" name="__codelineno-37-64" href="#__codelineno-37-64"></a>spec_id: [[0,0]]
+<a id="__codelineno-37-65" name="__codelineno-37-65" href="#__codelineno-37-65"></a>record_count: [[3,3]]
+<a id="__codelineno-37-66" name="__codelineno-37-66" href="#__codelineno-37-66"></a>file_size_in_bytes: [[5459,5459]]
+<a id="__codelineno-37-67" name="__codelineno-37-67" href="#__codelineno-37-67"></a>column_sizes: [[keys:[1,2,3,4,5,...,8,9,10,11,12]values:[49,78,128,94,118,...,118,118,94,78,109],keys:[1,2,3,4,5,...,8,9,10,11,12]values:[49,78,128,94,118,...,118,118,94,78,109]]]
+<a id="__codelineno-37-68" name="__codelineno-37-68" href="#__codelineno-37-68"></a>value_counts: [[keys:[1,2,3,4,5,...,8,9,10,11,12]values:[3,3,3,3,3,...,3,3,3,3,3],keys:[1,2,3,4,5,...,8,9,10,11,12]values:[3,3,3,3,3,...,3,3,3,3,3]]]
+<a id="__codelineno-37-69" name="__codelineno-37-69" href="#__codelineno-37-69"></a>null_value_counts: [[keys:[1,2,3,4,5,...,8,9,10,11,12]values:[1,1,1,1,1,...,1,1,1,1,1],keys:[1,2,3,4,5,...,8,9,10,11,12]values:[1,1,1,1,1,...,1,1,1,1,1]]]
+<a id="__codelineno-37-70" name="__codelineno-37-70" href="#__codelineno-37-70"></a>nan_value_counts: [[keys:[]values:[],keys:[]values:[]]]
+<a id="__codelineno-37-71" name="__codelineno-37-71" href="#__codelineno-37-71"></a>lower_bounds: [[keys:[1,2,3,4,5,...,8,9,10,11,12]values:[00,61,61616161616161616161616161616161,01000000,0100000000000000,...,009B6ACA38F10500,009B6ACA38F10500,9E4B0000,01,00000000000000000000000000000000],keys:[1,2,3,4,5,...,8,9,10,11,12]values:[00,61,61616161616161616161616161616161,01000000,0100000000000000,...,009B6ACA38F10500,009B6ACA38F10500,9E4B0000,01,00000000000000000000000000000000]]]
+<a id="__codelineno-37-72" name="__codelineno-37-72" href="#__codelineno-37-72"></a>upper_bounds:[[keys:[1,2,3,4,5,...,8,9,10,11,12]values:[00,61,61616161616161616161616161616161,01000000,0100000000000000,...,009B6ACA38F10500,009B6ACA38F10500,9E4B0000,01,00000000000000000000000000000000],keys:[1,2,3,4,5,...,8,9,10,11,12]values:[00,61,61616161616161616161616161616161,01000000,0100000000000000,...,009B6ACA38F10500,009B6ACA38F10500,9E4B0000,01,00000000000000000000000000000000]]]
+<a id="__codelineno-37-73" name="__codelineno-37-73" href="#__codelineno-37-73"></a>key_metadata: [[0100,0100]]
+<a id="__codelineno-37-74" name="__codelineno-37-74" href="#__codelineno-37-74"></a>split_offsets:[[[],[]]]
+<a id="__codelineno-37-75" name="__codelineno-37-75" href="#__codelineno-37-75"></a>equality_ids:[[[],[]]]
+<a id="__codelineno-37-76" name="__codelineno-37-76" href="#__codelineno-37-76"></a>sort_order_id:[[[],[]]]
+<a id="__codelineno-37-77" name="__codelineno-37-77" href="#__codelineno-37-77"></a>readable_metrics: [
+<a id="__codelineno-37-78" name="__codelineno-37-78" href="#__codelineno-37-78"></a> -- is_valid: all not null
+<a id="__codelineno-37-79" name="__codelineno-37-79" href="#__codelineno-37-79"></a> -- child 0 type: struct<column_size: int64, value_count: int64, null_value_count: int64, nan_value_count: int64, lower_bound: large_string, upper_bound: large_string>
+<a id="__codelineno-37-80" name="__codelineno-37-80" href="#__codelineno-37-80"></a> -- is_valid: all not null
+<a id="__codelineno-37-81" name="__codelineno-37-81" href="#__codelineno-37-81"></a> -- child 0 type: int64
+<a id="__codelineno-37-82" name="__codelineno-37-82" href="#__codelineno-37-82"></a>[140]
+<a id="__codelineno-37-83" name="__codelineno-37-83" href="#__codelineno-37-83"></a> -- child 1 type: int64
+<a id="__codelineno-37-84" name="__codelineno-37-84" href="#__codelineno-37-84"></a>[4]
+<a id="__codelineno-37-85" name="__codelineno-37-85" href="#__codelineno-37-85"></a> -- child 2 type: int64
+<a id="__codelineno-37-86" name="__codelineno-37-86" href="#__codelineno-37-86"></a>[0]
+<a id="__codelineno-37-87" name="__codelineno-37-87" href="#__codelineno-37-87"></a> -- child 3 type: int64
+<a id="__codelineno-37-88" name="__codelineno-37-88" href="#__codelineno-37-88"></a>[null]
+<a id="__codelineno-37-89" name="__codelineno-37-89" href="#__codelineno-37-89"></a> -- child 4 type: large_string
+<a id="__codelineno-37-90" name="__codelineno-37-90" href="#__codelineno-37-90"></a>["Amsterdam"]
+<a id="__codelineno-37-91" name="__codelineno-37-91" href="#__codelineno-37-91"></a> -- child 5 type: large_string
+<a id="__codelineno-37-92" name="__codelineno-37-92" href="#__codelineno-37-92"></a>["San Francisco"]
+<a id="__codelineno-37-93" name="__codelineno-37-93" href="#__codelineno-37-93"></a> -- child 1 type: struct<column_size: int64, value_count: int64, null_value_count: int64, nan_value_count: int64, lower_bound: double, upper_bound: double>
+<a id="__codelineno-37-94" name="__codelineno-37-94" href="#__codelineno-37-94"></a> -- is_valid: all not null
+<a id="__codelineno-37-95" name="__codelineno-37-95" href="#__codelineno-37-95"></a> -- child 0 type: int64
+<a id="__codelineno-37-96" name="__codelineno-37-96" href="#__codelineno-37-96"></a>[135]
+<a id="__codelineno-37-97" name="__codelineno-37-97" href="#__codelineno-37-97"></a> -- child 1 type: int64
+<a id="__codelineno-37-98" name="__codelineno-37-98" href="#__codelineno-37-98"></a>[4]
+<a id="__codelineno-37-99" name="__codelineno-37-99" href="#__codelineno-37-99"></a> -- child 2 type: int64
+<a id="__codelineno-37-100" name="__codelineno-37-100" href="#__codelineno-37-100"></a>[0]
+<a id="__codelineno-37-101" name="__codelineno-37-101" href="#__codelineno-37-101"></a> -- child 3 type: int64
+<a id="__codelineno-37-102" name="__codelineno-37-102" href="#__codelineno-37-102"></a>[null]
+<a id="__codelineno-37-103" name="__codelineno-37-103" href="#__codelineno-37-103"></a> -- child 4 type: double
+<a id="__codelineno-37-104" name="__codelineno-37-104" href="#__codelineno-37-104"></a>[37.773972]
+<a id="__codelineno-37-105" name="__codelineno-37-105" href="#__codelineno-37-105"></a> -- child 5 type: double
+<a id="__codelineno-37-106" name="__codelineno-37-106" href="#__codelineno-37-106"></a>[53.11254]
+<a id="__codelineno-37-107" name="__codelineno-37-107" href="#__codelineno-37-107"></a> -- child 2 type: struct<column_size: int64, value_count: int64, null_value_count: int64, nan_value_count: int64, lower_bound: double, upper_bound: double>
+<a id="__codelineno-37-108" name="__codelineno-37-108" href="#__codelineno-37-108"></a> -- is_valid: all not null
+<a id="__codelineno-37-109" name="__codelineno-37-109" href="#__codelineno-37-109"></a> -- child 0 type: int64
+<a id="__codelineno-37-110" name="__codelineno-37-110" href="#__codelineno-37-110"></a>[135]
+<a id="__codelineno-37-111" name="__codelineno-37-111" href="#__codelineno-37-111"></a> -- child 1 type: int64
+<a id="__codelineno-37-112" name="__codelineno-37-112" href="#__codelineno-37-112"></a>[4]
+<a id="__codelineno-37-113" name="__codelineno-37-113" href="#__codelineno-37-113"></a> -- child 2 type: int64
+<a id="__codelineno-37-114" name="__codelineno-37-114" href="#__codelineno-37-114"></a>[0]
+<a id="__codelineno-37-115" name="__codelineno-37-115" href="#__codelineno-37-115"></a> -- child 3 type: int64
+<a id="__codelineno-37-116" name="__codelineno-37-116" href="#__codelineno-37-116"></a>[null]
+<a id="__codelineno-37-117" name="__codelineno-37-117" href="#__codelineno-37-117"></a> -- child 4 type: double
+<a id="__codelineno-37-118" name="__codelineno-37-118" href="#__codelineno-37-118"></a>[-122.431297]
+<a id="__codelineno-37-119" name="__codelineno-37-119" href="#__codelineno-37-119"></a> -- child 5 type: double
+<a id="__codelineno-37-120" name="__codelineno-37-120" href="#__codelineno-37-120"></a>[6.0989]]
+</code></pre></div>
+<h2 id="add-files">Add Files<a class="headerlink" href="#add-files" title="Permanent link">¶</a></h2>
+<p>Expert Iceberg users may choose to commit existing parquet files to the Iceberg table as data files, without rewriting them.</p>
+<div class="highlight"><pre><span></span><code><a id="__codelineno-38-1" name="__codelineno-38-1" href="#__codelineno-38-1"></a># Given that these parquet files have schema consistent with the Iceberg table
+<a id="__codelineno-38-2" name="__codelineno-38-2" href="#__codelineno-38-2"></a>
+<a id="__codelineno-38-3" name="__codelineno-38-3" href="#__codelineno-38-3"></a>file_paths = [
+<a id="__codelineno-38-4" name="__codelineno-38-4" href="#__codelineno-38-4"></a> "s3a://warehouse/default/existing-1.parquet",
+<a id="__codelineno-38-5" name="__codelineno-38-5" href="#__codelineno-38-5"></a> "s3a://warehouse/default/existing-2.parquet",
+<a id="__codelineno-38-6" name="__codelineno-38-6" href="#__codelineno-38-6"></a>]
+<a id="__codelineno-38-7" name="__codelineno-38-7" href="#__codelineno-38-7"></a>
+<a id="__codelineno-38-8" name="__codelineno-38-8" href="#__codelineno-38-8"></a># They can be added to the table without rewriting them
+<a id="__codelineno-38-9" name="__codelineno-38-9" href="#__codelineno-38-9"></a>
+<a id="__codelineno-38-10" name="__codelineno-38-10" href="#__codelineno-38-10"></a>tbl.add_files(file_paths=file_paths)
+<a id="__codelineno-38-11" name="__codelineno-38-11" href="#__codelineno-38-11"></a>
+<a id="__codelineno-38-12" name="__codelineno-38-12" href="#__codelineno-38-12"></a># A new snapshot is committed to the table with manifests pointing to the existing parquet files
+</code></pre></div>
+<!-- prettier-ignore-start -->
+
+<div class="admonition note">
+<p class="admonition-title">Name Mapping</p>
+<p>Because <code>add_files</code> uses existing files without writing new parquet files that are aware of the Iceberg's schema, it requires the Iceberg's table to have a <a href="https://iceberg.apache.org/spec/?h=name+mapping#name-mapping-serialization">Name Mapping</a> (The Name mapping maps the field names within the parquet files to the Iceberg field IDs). Hence, <code>add_files</code> requires that there are no field IDs in the parquet file's metadata, and creates a new Name Mapping [...]
+</div>
+<div class="admonition note">
+<p class="admonition-title">Partitions</p>
+<p><code>add_files</code> only requires the client to read the existing parquet files' metadata footer to infer the partition value of each file. This implementation also supports adding files to Iceberg tables with partition transforms like <code>MonthTransform</code>, and <code>TruncateTransform</code> which preserve the order of the values after the transformation (Any Transform that has the <code>preserves_order</code> property set to True is supported). Please note that if the colum [...]
+</div>
+<div class="admonition warning">
+<p class="admonition-title">Maintenance Operations</p>
+<p>Because <code>add_files</code> commits the existing parquet files to the Iceberg Table as any other data file, destructive maintenance operations like expiring snapshots will remove them.</p>
+</div>
+<!-- prettier-ignore-end -->
+
+<h2 id="schema-evolution">Schema evolution<a class="headerlink" href="#schema-evolution" title="Permanent link">¶</a></h2>
+<p>PyIceberg supports full schema evolution through the Python API. It takes care of setting the field-IDs and makes sure that only non-breaking changes are done (can be overriden).</p>
+<p>In the examples below, the <code>.update_schema()</code> is called from the table itself.</p>
+<div class="highlight"><pre><span></span><code><a id="__codelineno-39-1" name="__codelineno-39-1" href="#__codelineno-39-1"></a><span class="k">with</span> <span class="n">table</span><span class="o">.</span><span class="n">update_schema</span><span class="p">()</span> <span class="k">as</span> <span class="n">update</span><span class="p">:</span>
+<a id="__codelineno-39-2" name="__codelineno-39-2" href="#__codelineno-39-2"></a> <span class="n">update</span><span class="o">.</span><span class="n">add_column</span><span class="p">(</span><span class="s2">"some_field"</span><span class="p">,</span> <span class="n">IntegerType</span><span class="p">(),</span> <span class="s2">"doc"</span><span class="p">)</span>
+</code></pre></div>
+<p>You can also initiate a transaction if you want to make more changes than just evolving the schema:</p>
+<div class="highlight"><pre><span></span><code><a id="__codelineno-40-1" name="__codelineno-40-1" href="#__codelineno-40-1"></a><span class="k">with</span> <span class="n">table</span><span class="o">.</span><span class="n">transaction</span><span class="p">()</span> <span class="k">as</span> <span class="n">transaction</span><span class="p">:</span>
+<a id="__codelineno-40-2" name="__codelineno-40-2" href="#__codelineno-40-2"></a> <span class="k">with</span> <span class="n">transaction</span><span class="o">.</span><span class="n">update_schema</span><span class="p">()</span> <span class="k">as</span> <span class="n">update_schema</span><span class="p">:</span>
+<a id="__codelineno-40-3" name="__codelineno-40-3" href="#__codelineno-40-3"></a> <span class="n">update</span><span class="o">.</span><span class="n">add_column</span><span class="p">(</span><span class="s2">"some_other_field"</span><span class="p">,</span> <span class="n">IntegerType</span><span class="p">(),</span> <span class="s2">"doc"</span><span class="p">)</span>
+<a id="__codelineno-40-4" name="__codelineno-40-4" href="#__codelineno-40-4"></a> <span class="c1"># ... Update properties etc</span>
+</code></pre></div>
+<h3 id="union-by-name">Union by Name<a class="headerlink" href="#union-by-name" title="Permanent link">¶</a></h3>
+<p>Using <code>.union_by_name()</code> you can merge another schema into an existing schema without having to worry about field-IDs:</p>
+<div class="highlight"><pre><span></span><code><a id="__codelineno-41-1" name="__codelineno-41-1" href="#__codelineno-41-1"></a><span class="kn">from</span> <span class="nn">pyiceberg.catalog</span> <span class="kn">import</span> <span class="n">load_catalog</span>
+<a id="__codelineno-41-2" name="__codelineno-41-2" href="#__codelineno-41-2"></a><span class="kn">from</span> <span class="nn">pyiceberg.schema</span> <span class="kn">import</span> <span class="n">Schema</span>
+<a id="__codelineno-41-3" name="__codelineno-41-3" href="#__codelineno-41-3"></a><span class="kn">from</span> <span class="nn">pyiceberg.types</span> <span class="kn">import</span> <span class="n">NestedField</span><span class="p">,</span> <span class="n">StringType</span><span class="p">,</span> <span class="n">DoubleType</span><span class="p">,</span> <span class="n">LongType</span>
+<a id="__codelineno-41-4" name="__codelineno-41-4" href="#__codelineno-41-4"></a>
+<a id="__codelineno-41-5" name="__codelineno-41-5" href="#__codelineno-41-5"></a><span class="n">catalog</span> <span class="o">=</span> <span class="n">load_catalog</span><span class="p">()</span>
+<a id="__codelineno-41-6" name="__codelineno-41-6" href="#__codelineno-41-6"></a>
+<a id="__codelineno-41-7" name="__codelineno-41-7" href="#__codelineno-41-7"></a><span class="n">schema</span> <span class="o">=</span> <span class="n">Schema</span><span class="p">(</span>
+<a id="__codelineno-41-8" name="__codelineno-41-8" href="#__codelineno-41-8"></a> <span class="n">NestedField</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span> <span class="s2">"city"</span><span class="p">,</span> <span class="n">StringType</span><span class="p">(),</span> <span class="n">required</span><span class="o">=</span><span class="kc">False</span><span class="p">),</span>
+<a id="__codelineno-41-9" name="__codelineno-41-9" href="#__codelineno-41-9"></a> <span class="n">NestedField</span><span class="p">(</span><span class="mi">2</span><span class="p">,</span> <span class="s2">"lat"</span><span class="p">,</span> <span class="n">DoubleType</span><span class="p">(),</span> <span class="n">required</span><span class="o">=</span><span class="kc">False</span><span class="p">),</span>
+<a id="__codelineno-41-10" name="__codelineno-41-10" href="#__codelineno-41-10"></a> <span class="n">NestedField</span><span class="p">(</span><span class="mi">3</span><span class="p">,</span> <span class="s2">"long"</span><span class="p">,</span> <span class="n">DoubleType</span><span class="p">(),</span> <span class="n">required</span><span class="o">=</span><span class="kc">False</span><span class="p">),</span>
+<a id="__codelineno-41-11" name="__codelineno-41-11" href="#__codelineno-41-11"></a><span class="p">)</span>
+<a id="__codelineno-41-12" name="__codelineno-41-12" href="#__codelineno-41-12"></a>
+<a id="__codelineno-41-13" name="__codelineno-41-13" href="#__codelineno-41-13"></a><span class="n">table</span> <span class="o">=</span> <span class="n">catalog</span><span class="o">.</span><span class="n">create_table</span><span class="p">(</span><span class="s2">"default.locations"</span><span class="p">,</span> <span class="n">schema</span><span class="p">)</span>
+<a id="__codelineno-41-14" name="__codelineno-41-14" href="#__codelineno-41-14"></a>
+<a id="__codelineno-41-15" name="__codelineno-41-15" href="#__codelineno-41-15"></a><span class="n">new_schema</span> <span class="o">=</span> <span class="n">Schema</span><span class="p">(</span>
+<a id="__codelineno-41-16" name="__codelineno-41-16" href="#__codelineno-41-16"></a> <span class="n">NestedField</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span> <span class="s2">"city"</span><span class="p">,</span> <span class="n">StringType</span><span class="p">(),</span> <span class="n">required</span><span class="o">=</span><span class="kc">False</span><span class="p">),</span>
+<a id="__codelineno-41-17" name="__codelineno-41-17" href="#__codelineno-41-17"></a> <span class="n">NestedField</span><span class="p">(</span><span class="mi">2</span><span class="p">,</span> <span class="s2">"lat"</span><span class="p">,</span> <span class="n">DoubleType</span><span class="p">(),</span> <span class="n">required</span><span class="o">=</span><span class="kc">False</span><span class="p">),</span>
+<a id="__codelineno-41-18" name="__codelineno-41-18" href="#__codelineno-41-18"></a> <span class="n">NestedField</span><span class="p">(</span><span class="mi">3</span><span class="p">,</span> <span class="s2">"long"</span><span class="p">,</span> <span class="n">DoubleType</span><span class="p">(),</span> <span class="n">required</span><span class="o">=</span><span class="kc">False</span><span class="p">),</span>
+<a id="__codelineno-41-19" name="__codelineno-41-19" href="#__codelineno-41-19"></a> <span class="n">NestedField</span><span class="p">(</span><span class="mi">10</span><span class="p">,</span> <span class="s2">"population"</span><span class="p">,</span> <span class="n">LongType</span><span class="p">(),</span> <span class="n">required</span><span class="o">=</span><span class="kc">False</span><span class="p">),</span>
+<a id="__codelineno-41-20" name="__codelineno-41-20" href="#__codelineno-41-20"></a><span class="p">)</span>
+<a id="__codelineno-41-21" name="__codelineno-41-21" href="#__codelineno-41-21"></a>
+<a id="__codelineno-41-22" name="__codelineno-41-22" href="#__codelineno-41-22"></a><span class="k">with</span> <span class="n">table</span><span class="o">.</span><span class="n">update_schema</span><span class="p">()</span> <span class="k">as</span> <span class="n">update</span><span class="p">:</span>
+<a id="__codelineno-41-23" name="__codelineno-41-23" href="#__codelineno-41-23"></a> <span class="n">update</span><span class="o">.</span><span class="n">union_by_name</span><span class="p">(</span><span class="n">new_schema</span><span class="p">)</span>
+</code></pre></div>
+<p>Now the table has the union of the two schemas <code>print(table.schema())</code>:</p>
+<div class="highlight"><pre><span></span><code><a id="__codelineno-42-1" name="__codelineno-42-1" href="#__codelineno-42-1"></a>table {
+<a id="__codelineno-42-2" name="__codelineno-42-2" href="#__codelineno-42-2"></a> 1: city: optional string
+<a id="__codelineno-42-3" name="__codelineno-42-3" href="#__codelineno-42-3"></a> 2: lat: optional double
+<a id="__codelineno-42-4" name="__codelineno-42-4" href="#__codelineno-42-4"></a> 3: long: optional double
+<a id="__codelineno-42-5" name="__codelineno-42-5" href="#__codelineno-42-5"></a> 4: population: optional long
+<a id="__codelineno-42-6" name="__codelineno-42-6" href="#__codelineno-42-6"></a>}
+</code></pre></div>
+<h3 id="add-column">Add column<a class="headerlink" href="#add-column" title="Permanent link">¶</a></h3>
+<p>Using <code>add_column</code> you can add a column, without having to worry about the field-id:</p>
+<div class="highlight"><pre><span></span><code><a id="__codelineno-43-1" name="__codelineno-43-1" href="#__codelineno-43-1"></a><span class="k">with</span> <span class="n">table</span><span class="o">.</span><span class="n">update_schema</span><span class="p">()</span> <span class="k">as</span> <span class="n">update</span><span class="p">:</span>
+<a id="__codelineno-43-2" name="__codelineno-43-2" href="#__codelineno-43-2"></a> <span class="n">update</span><span class="o">.</span><span class="n">add_column</span><span class="p">(</span><span class="s2">"retries"</span><span class="p">,</span> <span class="n">IntegerType</span><span class="p">(),</span> <span class="s2">"Number of retries to place the bid"</span><span class="p">)</span>
+<a id="__codelineno-43-3" name="__codelineno-43-3" href="#__codelineno-43-3"></a> <span class="c1"># In a struct</span>
+<a id="__codelineno-43-4" name="__codelineno-43-4" href="#__codelineno-43-4"></a> <span class="n">update</span><span class="o">.</span><span class="n">add_column</span><span class="p">(</span><span class="s2">"details.confirmed_by"</span><span class="p">,</span> <span class="n">StringType</span><span class="p">(),</span> <span class="s2">"Name of the exchange"</span><span class="p">)</span>
+</code></pre></div>
+<h3 id="rename-column">Rename column<a class="headerlink" href="#rename-column" title="Permanent link">¶</a></h3>
+<p>Renaming a field in an Iceberg table is simple:</p>
+<div class="highlight"><pre><span></span><code><a id="__codelineno-44-1" name="__codelineno-44-1" href="#__codelineno-44-1"></a><span class="k">with</span> <span class="n">table</span><span class="o">.</span><span class="n">update_schema</span><span class="p">()</span> <span class="k">as</span> <span class="n">update</span><span class="p">:</span>
+<a id="__codelineno-44-2" name="__codelineno-44-2" href="#__codelineno-44-2"></a> <span class="n">update</span><span class="o">.</span><span class="n">rename_column</span><span class="p">(</span><span class="s2">"retries"</span><span class="p">,</span> <span class="s2">"num_retries"</span><span class="p">)</span>
+<a id="__codelineno-44-3" name="__codelineno-44-3" href="#__codelineno-44-3"></a> <span class="c1"># This will rename `confirmed_by` to `exchange`</span>
+<a id="__codelineno-44-4" name="__codelineno-44-4" href="#__codelineno-44-4"></a> <span class="n">update</span><span class="o">.</span><span class="n">rename_column</span><span class="p">(</span><span class="s2">"properties.confirmed_by"</span><span class="p">,</span> <span class="s2">"exchange"</span><span class="p">)</span>
+</code></pre></div>
+<h3 id="move-column">Move column<a class="headerlink" href="#move-column" title="Permanent link">¶</a></h3>
+<p>Move a field inside of struct:</p>
+<div class="highlight"><pre><span></span><code><a id="__codelineno-45-1" name="__codelineno-45-1" href="#__codelineno-45-1"></a><span class="k">with</span> <span class="n">table</span><span class="o">.</span><span class="n">update_schema</span><span class="p">()</span> <span class="k">as</span> <span class="n">update</span><span class="p">:</span>
+<a id="__codelineno-45-2" name="__codelineno-45-2" href="#__codelineno-45-2"></a> <span class="n">update</span><span class="o">.</span><span class="n">move_first</span><span class="p">(</span><span class="s2">"symbol"</span><span class="p">)</span>
+<a id="__codelineno-45-3" name="__codelineno-45-3" href="#__codelineno-45-3"></a> <span class="n">update</span><span class="o">.</span><span class="n">move_after</span><span class="p">(</span><span class="s2">"bid"</span><span class="p">,</span> <span class="s2">"ask"</span><span class="p">)</span>
+<a id="__codelineno-45-4" name="__codelineno-45-4" href="#__codelineno-45-4"></a> <span class="c1"># This will move `confirmed_by` before `exchange`</span>
+<a id="__codelineno-45-5" name="__codelineno-45-5" href="#__codelineno-45-5"></a> <span class="n">update</span><span class="o">.</span><span class="n">move_before</span><span class="p">(</span><span class="s2">"details.created_by"</span><span class="p">,</span> <span class="s2">"details.exchange"</span><span class="p">)</span>
+</code></pre></div>
+<h3 id="update-column">Update column<a class="headerlink" href="#update-column" title="Permanent link">¶</a></h3>
+<p>Update a fields' type, description or required.</p>
+<div class="highlight"><pre><span></span><code><a id="__codelineno-46-1" name="__codelineno-46-1" href="#__codelineno-46-1"></a><span class="k">with</span> <span class="n">table</span><span class="o">.</span><span class="n">update_schema</span><span class="p">()</span> <span class="k">as</span> <span class="n">update</span><span class="p">:</span>
+<a id="__codelineno-46-2" name="__codelineno-46-2" href="#__codelineno-46-2"></a> <span class="c1"># Promote a float to a double</span>
+<a id="__codelineno-46-3" name="__codelineno-46-3" href="#__codelineno-46-3"></a> <span class="n">update</span><span class="o">.</span><span class="n">update_column</span><span class="p">(</span><span class="s2">"bid"</span><span class="p">,</span> <span class="n">field_type</span><span class="o">=</span><span class="n">DoubleType</span><span class="p">())</span>
+<a id="__codelineno-46-4" name="__codelineno-46-4" href="#__codelineno-46-4"></a> <span class="c1"># Make a field optional</span>
+<a id="__codelineno-46-5" name="__codelineno-46-5" href="#__codelineno-46-5"></a> <span class="n">update</span><span class="o">.</span><span class="n">update_column</span><span class="p">(</span><span class="s2">"symbol"</span><span class="p">,</span> <span class="n">required</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span>
+<a id="__codelineno-46-6" name="__codelineno-46-6" href="#__codelineno-46-6"></a> <span class="c1"># Update the documentation</span>
+<a id="__codelineno-46-7" name="__codelineno-46-7" href="#__codelineno-46-7"></a> <span class="n">update</span><span class="o">.</span><span class="n">update_column</span><span class="p">(</span><span class="s2">"symbol"</span><span class="p">,</span> <span class="n">doc</span><span class="o">=</span><span class="s2">"Name of the share on the exchange"</span><span class="p">)</span>
+</code></pre></div>
+<p>Be careful, some operations are not compatible, but can still be done at your own risk by setting <code>allow_incompatible_changes</code>:</p>
+<div class="highlight"><pre><span></span><code><a id="__codelineno-47-1" name="__codelineno-47-1" href="#__codelineno-47-1"></a><span class="k">with</span> <span class="n">table</span><span class="o">.</span><span class="n">update_schema</span><span class="p">(</span><span class="n">allow_incompatible_changes</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> <span class="k">as</span> <span class="n">update</span><span class="p">:</span>
+<a id="__codelineno-47-2" name="__codelineno-47-2" href="#__codelineno-47-2"></a> <span class="c1"># Incompatible change, cannot require an optional field</span>
+<a id="__codelineno-47-3" name="__codelineno-47-3" href="#__codelineno-47-3"></a> <span class="n">update</span><span class="o">.</span><span class="n">update_column</span><span class="p">(</span><span class="s2">"symbol"</span><span class="p">,</span> <span class="n">required</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
+</code></pre></div>
+<h3 id="delete-column">Delete column<a class="headerlink" href="#delete-column" title="Permanent link">¶</a></h3>
+<p>Delete a field, careful this is a incompatible change (readers/writers might expect this field):</p>
+<div class="highlight"><pre><span></span><code><a id="__codelineno-48-1" name="__codelineno-48-1" href="#__codelineno-48-1"></a><span class="k">with</span> <span class="n">table</span><span class="o">.</span><span class="n">update_schema</span><span class="p">(</span><span class="n">allow_incompatible_changes</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> <span class="k">as</span> <span class="n">update</span><span class="p">:</span>
+<a id="__codelineno-48-2" name="__codelineno-48-2" href="#__codelineno-48-2"></a> <span class="n">update</span><span class="o">.</span><span class="n">delete_column</span><span class="p">(</span><span class="s2">"some_field"</span><span class="p">)</span>
+</code></pre></div>
+<h2 id="partition-evolution">Partition evolution<a class="headerlink" href="#partition-evolution" title="Permanent link">¶</a></h2>
+<p>PyIceberg supports partition evolution. See the <a href="https://iceberg.apache.org/spec/#partition-evolution">partition evolution</a>
+for more details.</p>
+<p>The API to use when evolving partitions is the <code>update_spec</code> API on the table.</p>
+<div class="highlight"><pre><span></span><code><a id="__codelineno-49-1" name="__codelineno-49-1" href="#__codelineno-49-1"></a><span class="k">with</span> <span class="n">table</span><span class="o">.</span><span class="n">update_spec</span><span class="p">()</span> <span class="k">as</span> <span class="n">update</span><span class="p">:</span>
+<a id="__codelineno-49-2" name="__codelineno-49-2" href="#__codelineno-49-2"></a> <span class="n">update</span><span class="o">.</span><span class="n">add_field</span><span class="p">(</span><span class="s2">"id"</span><span class="p">,</span> <span class="n">BucketTransform</span><span class="p">(</span><span class="mi">16</span><span class="p">),</span> <span class="s2">"bucketed_id"</span><span class="p">)</span>
+<a id="__codelineno-49-3" name="__codelineno-49-3" href="#__codelineno-49-3"></a> <span class="n">update</span><span class="o">.</span><span class="n">add_field</span><span class="p">(</span><span class="s2">"event_ts"</span><span class="p">,</span> <span class="n">DayTransform</span><span class="p">(),</span> <span class="s2">"day_ts"</span><span class="p">)</span>
+</code></pre></div>
+<p>Updating the partition spec can also be done as part of a transaction with other operations.</p>
+<div class="highlight"><pre><span></span><code><a id="__codelineno-50-1" name="__codelineno-50-1" href="#__codelineno-50-1"></a><span class="k">with</span> <span class="n">table</span><span class="o">.</span><span class="n">transaction</span><span class="p">()</span> <span class="k">as</span> <span class="n">transaction</span><span class="p">:</span>
+<a id="__codelineno-50-2" name="__codelineno-50-2" href="#__codelineno-50-2"></a> <span class="k">with</span> <span class="n">transaction</span><span class="o">.</span><span class="n">update_spec</span><span class="p">()</span> <span class="k">as</span> <span class="n">update_spec</span><span class="p">:</span>
+<a id="__codelineno-50-3" name="__codelineno-50-3" href="#__codelineno-50-3"></a> <span class="n">update_spec</span><span class="o">.</span><span class="n">add_field</span><span class="p">(</span><span class="s2">"id"</span><span class="p">,</span> <span class="n">BucketTransform</span><span class="p">(</span><span class="mi">16</span><span class="p">),</span> <span class="s2">"bucketed_id"</span><span class="p">)</span>
+<a id="__codelineno-50-4" name="__codelineno-50-4" href="#__codelineno-50-4"></a> <span class="n">update_spec</span><span class="o">.</span><span class="n">add_field</span><span class="p">(</span><span class="s2">"event_ts"</span><span class="p">,</span> <span class="n">DayTransform</span><span class="p">(),</span> <span class="s2">"day_ts"</span><span class="p">)</span>
+<a id="__codelineno-50-5" name="__codelineno-50-5" href="#__codelineno-50-5"></a> <span class="c1"># ... Update properties etc</span>
+</code></pre></div>
+<h3 id="add-fields">Add fields<a class="headerlink" href="#add-fields" title="Permanent link">¶</a></h3>
+<p>New partition fields can be added via the <code>add_field</code> API which takes in the field name to partition on,
+the partition transform, and an optional partition name. If the partition name is not specified,
+one will be created.</p>
+<div class="highlight"><pre><span></span><code><a id="__codelineno-51-1" name="__codelineno-51-1" href="#__codelineno-51-1"></a><span class="k">with</span> <span class="n">table</span><span class="o">.</span><span class="n">update_spec</span><span class="p">()</span> <span class="k">as</span> <span class="n">update</span><span class="p">:</span>
+<a id="__codelineno-51-2" name="__codelineno-51-2" href="#__codelineno-51-2"></a> <span class="n">update</span><span class="o">.</span><span class="n">add_field</span><span class="p">(</span><span class="s2">"id"</span><span class="p">,</span> <span class="n">BucketTransform</span><span class="p">(</span><span class="mi">16</span><span class="p">),</span> <span class="s2">"bucketed_id"</span><span class="p">)</span>
+<a id="__codelineno-51-3" name="__codelineno-51-3" href="#__codelineno-51-3"></a> <span class="n">update</span><span class="o">.</span><span class="n">add_field</span><span class="p">(</span><span class="s2">"event_ts"</span><span class="p">,</span> <span class="n">DayTransform</span><span class="p">(),</span> <span class="s2">"day_ts"</span><span class="p">)</span>
+<a id="__codelineno-51-4" name="__codelineno-51-4" href="#__codelineno-51-4"></a> <span class="c1"># identity is a shortcut API for adding an IdentityTransform</span>
+<a id="__codelineno-51-5" name="__codelineno-51-5" href="#__codelineno-51-5"></a> <span class="n">update</span><span class="o">.</span><span class="n">identity</span><span class="p">(</span><span class="s2">"some_field"</span><span class="p">)</span>
+</code></pre></div>
+<h3 id="remove-fields">Remove fields<a class="headerlink" href="#remove-fields" title="Permanent link">¶</a></h3>
+<p>Partition fields can also be removed via the <code>remove_field</code> API if it no longer makes sense to partition on those fields.</p>
+<div class="highlight"><pre><span></span><code><a id="__codelineno-52-1" name="__codelineno-52-1" href="#__codelineno-52-1"></a><span class="k">with</span> <span class="n">table</span><span class="o">.</span><span class="n">update_spec</span><span class="p">()</span> <span class="k">as</span> <span class="n">update</span><span class="p">:</span><span class="n">some_partition_name</span>
+<a id="__codelineno-52-2" name="__codelineno-52-2" href="#__codelineno-52-2"></a> <span class="c1"># Remove the partition field with the name</span>
+<a id="__codelineno-52-3" name="__codelineno-52-3" href="#__codelineno-52-3"></a> <span class="n">update</span><span class="o">.</span><span class="n">remove_field</span><span class="p">(</span><span class="s2">"some_partition_name"</span><span class="p">)</span>
+</code></pre></div>
+<h3 id="rename-fields">Rename fields<a class="headerlink" href="#rename-fields" title="Permanent link">¶</a></h3>
+<p>Partition fields can also be renamed via the <code>rename_field</code> API.</p>
+<div class="highlight"><pre><span></span><code><a id="__codelineno-53-1" name="__codelineno-53-1" href="#__codelineno-53-1"></a><span class="k">with</span> <span class="n">table</span><span class="o">.</span><span class="n">update_spec</span><span class="p">()</span> <span class="k">as</span> <span class="n">update</span><span class="p">:</span>
+<a id="__codelineno-53-2" name="__codelineno-53-2" href="#__codelineno-53-2"></a> <span class="c1"># Rename the partition field with the name bucketed_id to sharded_id</span>
+<a id="__codelineno-53-3" name="__codelineno-53-3" href="#__codelineno-53-3"></a> <span class="n">update</span><span class="o">.</span><span class="n">rename_field</span><span class="p">(</span><span class="s2">"bucketed_id"</span><span class="p">,</span> <span class="s2">"sharded_id"</span><span class="p">)</span>
+</code></pre></div>
+<h2 id="table-properties">Table properties<a class="headerlink" href="#table-properties" title="Permanent link">¶</a></h2>
+<p>Set and remove properties through the <code>Transaction</code> API:</p>
+<div class="highlight"><pre><span></span><code><a id="__codelineno-54-1" name="__codelineno-54-1" href="#__codelineno-54-1"></a><span class="k">with</span> <span class="n">table</span><span class="o">.</span><span class="n">transaction</span><span class="p">()</span> <span class="k">as</span> <span class="n">transaction</span><span class="p">:</span>
+<a id="__codelineno-54-2" name="__codelineno-54-2" href="#__codelineno-54-2"></a> <span class="n">transaction</span><span class="o">.</span><span class="n">set_properties</span><span class="p">(</span><span class="n">abc</span><span class="o">=</span><span class="s2">"def"</span><span class="p">)</span>
+<a id="__codelineno-54-3" name="__codelineno-54-3" href="#__codelineno-54-3"></a>
+<a id="__codelineno-54-4" name="__codelineno-54-4" href="#__codelineno-54-4"></a><span class="k">assert</span> <span class="n">table</span><span class="o">.</span><span class="n">properties</span> <span class="o">==</span> <span class="p">{</span><span class="s2">"abc"</span><span class="p">:</span> <span class="s2">"def"</span><span class="p">}</span>
+<a id="__codelineno-54-5" name="__codelineno-54-5" href="#__codelineno-54-5"></a>
+<a id="__codelineno-54-6" name="__codelineno-54-6" href="#__codelineno-54-6"></a><span class="k">with</span> <span class="n">table</span><span class="o">.</span><span class="n">transaction</span><span class="p">()</span> <span class="k">as</span> <span class="n">transaction</span><span class="p">:</span>
+<a id="__codelineno-54-7" name="__codelineno-54-7" href="#__codelineno-54-7"></a> <span class="n">transaction</span><span class="o">.</span><span class="n">remove_properties</span><span class="p">(</span><span class="s2">"abc"</span><span class="p">)</span>
+<a id="__codelineno-54-8" name="__codelineno-54-8" href="#__codelineno-54-8"></a>
+<a id="__codelineno-54-9" name="__codelineno-54-9" href="#__codelineno-54-9"></a><span class="k">assert</span> <span class="n">table</span><span class="o">.</span><span class="n">properties</span> <span class="o">==</span> <span class="p">{}</span>
+</code></pre></div>
+<p>Or, without context manager:</p>
+<div class="highlight"><pre><span></span><code><a id="__codelineno-55-1" name="__codelineno-55-1" href="#__codelineno-55-1"></a><span class="n">table</span> <span class="o">=</span> <span class="n">table</span><span class="o">.</span><span class="n">transaction</span><span class="p">()</span><span class="o">.</span><span class="n">set_properties</span><span class="p">(</span><span class="n">abc</span><span class="o">=</span><span class="s2">"def"</span><span class="p">)</span>< [...]
+<a id="__codelineno-55-2" name="__codelineno-55-2" href="#__codelineno-55-2"></a>
+<a id="__codelineno-55-3" name="__codelineno-55-3" href="#__codelineno-55-3"></a><span class="k">assert</span> <span class="n">table</span><span class="o">.</span><span class="n">properties</span> <span class="o">==</span> <span class="p">{</span><span class="s2">"abc"</span><span class="p">:</span> <span class="s2">"def"</span><span class="p">}</span>
+<a id="__codelineno-55-4" name="__codelineno-55-4" href="#__codelineno-55-4"></a>
+<a id="__codelineno-55-5" name="__codelineno-55-5" href="#__codelineno-55-5"></a><span class="n">table</span> <span class="o">=</span> <span class="n">table</span><span class="o">.</span><span class="n">transaction</span><span class="p">()</span><span class="o">.</span><span class="n">remove_properties</span><span class="p">(</span><span class="s2">"abc"</span><span class="p">)</span><span class="o">.</span><span class="n">commit_transaction</span><span class="p">()</span>
+<a id="__codelineno-55-6" name="__codelineno-55-6" href="#__codelineno-55-6"></a>
+<a id="__codelineno-55-7" name="__codelineno-55-7" href="#__codelineno-55-7"></a><span class="k">assert</span> <span class="n">table</span><span class="o">.</span><span class="n">properties</span> <span class="o">==</span> <span class="p">{}</span>
+</code></pre></div>
+<h2 id="snapshot-properties">Snapshot properties<a class="headerlink" href="#snapshot-properties" title="Permanent link">¶</a></h2>
+<p>Optionally, Snapshot properties can be set while writing to a table using <code>append</code> or <code>overwrite</code> API:</p>
+<div class="highlight"><pre><span></span><code><a id="__codelineno-56-1" name="__codelineno-56-1" href="#__codelineno-56-1"></a><span class="n">tbl</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">df</span><span class="p">,</span> <span class="n">snapshot_properties</span><span class="o">=</span><span class="p">{</span><span class="s2">"abc"</span><span class="p">:</span> <span class="s2">"def"</span><span class="p">})</span>
+<a id="__codelineno-56-2" name="__codelineno-56-2" href="#__codelineno-56-2"></a>
+<a id="__codelineno-56-3" name="__codelineno-56-3" href="#__codelineno-56-3"></a><span class="c1"># or</span>
+<a id="__codelineno-56-4" name="__codelineno-56-4" href="#__codelineno-56-4"></a>
+<a id="__codelineno-56-5" name="__codelineno-56-5" href="#__codelineno-56-5"></a><span class="n">tbl</span><span class="o">.</span><span class="n">overwrite</span><span class="p">(</span><span class="n">df</span><span class="p">,</span> <span class="n">snapshot_properties</span><span class="o">=</span><span class="p">{</span><span class="s2">"abc"</span><span class="p">:</span> <span class="s2">"def"</span><span class="p">})</span>
+<a id="__codelineno-56-6" name="__codelineno-56-6" href="#__codelineno-56-6"></a>
+<a id="__codelineno-56-7" name="__codelineno-56-7" href="#__codelineno-56-7"></a><span class="k">assert</span> <span class="n">tbl</span><span class="o">.</span><span class="n">metadata</span><span class="o">.</span><span class="n">snapshots</span><span class="p">[</span><span class="o">-</span><span class="mi">1</span><span class="p">]</span><span class="o">.</span><span class="n">summary</span><span class="p">[</span><span class="s2">"abc"</span><span class="p">]</span> <span [...]
+</code></pre></div>
+<h2 id="snapshot-management">Snapshot Management<a class="headerlink" href="#snapshot-management" title="Permanent link">¶</a></h2>
+<p>Manage snapshots with operations through the <code>Table</code> API:</p>
+<div class="highlight"><pre><span></span><code><a id="__codelineno-57-1" name="__codelineno-57-1" href="#__codelineno-57-1"></a><span class="c1"># To run a specific operation</span>
+<a id="__codelineno-57-2" name="__codelineno-57-2" href="#__codelineno-57-2"></a><span class="n">table</span><span class="o">.</span><span class="n">manage_snapshots</span><span class="p">()</span><span class="o">.</span><span class="n">create_tag</span><span class="p">(</span><span class="n">snapshot_id</span><span class="p">,</span> <span class="s2">"tag123"</span><span class="p">)</span><span class="o">.</span><span class="n">commit</span><span class="p">()</span>
+<a id="__codelineno-57-3" name="__codelineno-57-3" href="#__codelineno-57-3"></a><span class="c1"># To run multiple operations</span>
+<a id="__codelineno-57-4" name="__codelineno-57-4" href="#__codelineno-57-4"></a><span class="n">table</span><span class="o">.</span><span class="n">manage_snapshots</span><span class="p">()</span>
+<a id="__codelineno-57-5" name="__codelineno-57-5" href="#__codelineno-57-5"></a> <span class="o">.</span><span class="n">create_tag</span><span class="p">(</span><span class="n">snapshot_id1</span><span class="p">,</span> <span class="s2">"tag123"</span><span class="p">)</span>
+<a id="__codelineno-57-6" name="__codelineno-57-6" href="#__codelineno-57-6"></a> <span class="o">.</span><span class="n">create_tag</span><span class="p">(</span><span class="n">snapshot_id2</span><span class="p">,</span> <span class="s2">"tag456"</span><span class="p">)</span>
+<a id="__codelineno-57-7" name="__codelineno-57-7" href="#__codelineno-57-7"></a> <span class="o">.</span><span class="n">commit</span><span class="p">()</span>
+<a id="__codelineno-57-8" name="__codelineno-57-8" href="#__codelineno-57-8"></a><span class="c1"># Operations are applied on commit.</span>
+</code></pre></div>
+<p>You can also use context managers to make more changes:</p>
+<div class="highlight"><pre><span></span><code><a id="__codelineno-58-1" name="__codelineno-58-1" href="#__codelineno-58-1"></a><span class="k">with</span> <span class="n">table</span><span class="o">.</span><span class="n">manage_snapshots</span><span class="p">()</span> <span class="k">as</span> <span class="n">ms</span><span class="p">:</span>
+<a id="__codelineno-58-2" name="__codelineno-58-2" href="#__codelineno-58-2"></a> <span class="n">ms</span><span class="o">.</span><span class="n">create_branch</span><span class="p">(</span><span class="n">snapshot_id1</span><span class="p">,</span> <span class="s2">"Branch_A"</span><span class="p">)</span><span class="o">.</span><span class="n">create_tag</span><span class="p">(</span><span class="n">snapshot_id2</span><span class="p">,</span> <span class="s2">"tag789 [...]
+</code></pre></div>
+<h2 id="query-the-data">Query the data<a class="headerlink" href="#query-the-data" title="Permanent link">¶</a></h2>
+<p>To query a table, a table scan is needed. A table scan accepts a filter, columns, optionally a limit and a snapshot ID:</p>
+<div class="highlight"><pre><span></span><code><a id="__codelineno-59-1" name="__codelineno-59-1" href="#__codelineno-59-1"></a><span class="kn">from</span> <span class="nn">pyiceberg.catalog</span> <span class="kn">import</span> <span class="n">load_catalog</span>
+<a id="__codelineno-59-2" name="__codelineno-59-2" href="#__codelineno-59-2"></a><span class="kn">from</span> <span class="nn">pyiceberg.expressions</span> <span class="kn">import</span> <span class="n">GreaterThanOrEqual</span>
+<a id="__codelineno-59-3" name="__codelineno-59-3" href="#__codelineno-59-3"></a>
+<a id="__codelineno-59-4" name="__codelineno-59-4" href="#__codelineno-59-4"></a><span class="n">catalog</span> <span class="o">=</span> <span class="n">load_catalog</span><span class="p">(</span><span class="s2">"default"</span><span class="p">)</span>
+<a id="__codelineno-59-5" name="__codelineno-59-5" href="#__codelineno-59-5"></a><span class="n">table</span> <span class="o">=</span> <span class="n">catalog</span><span class="o">.</span><span class="n">load_table</span><span class="p">(</span><span class="s2">"nyc.taxis"</span><span class="p">)</span>
+<a id="__codelineno-59-6" name="__codelineno-59-6" href="#__codelineno-59-6"></a>
+<a id="__codelineno-59-7" name="__codelineno-59-7" href="#__codelineno-59-7"></a><span class="n">scan</span> <span class="o">=</span> <span class="n">table</span><span class="o">.</span><span class="n">scan</span><span class="p">(</span>
+<a id="__codelineno-59-8" name="__codelineno-59-8" href="#__codelineno-59-8"></a> <span class="n">row_filter</span><span class="o">=</span><span class="n">GreaterThanOrEqual</span><span class="p">(</span><span class="s2">"trip_distance"</span><span class="p">,</span> <span class="mf">10.0</span><span class="p">),</span>
+<a id="__codelineno-59-9" name="__codelineno-59-9" href="#__codelineno-59-9"></a> <span class="n">selected_fields</span><span class="o">=</span><span class="p">(</span><span class="s2">"VendorID"</span><span class="p">,</span> <span class="s2">"tpep_pickup_datetime"</span><span class="p">,</span> <span class="s2">"tpep_dropoff_datetime"</span><span class="p">),</span>
+<a id="__codelineno-59-10" name="__codelineno-59-10" href="#__codelineno-59-10"></a> <span class="n">limit</span><span class="o">=</span><span class="mi">100</span><span class="p">,</span>
+<a id="__codelineno-59-11" name="__codelineno-59-11" href="#__codelineno-59-11"></a><span class="p">)</span>
+<a id="__codelineno-59-12" name="__codelineno-59-12" href="#__codelineno-59-12"></a>
+<a id="__codelineno-59-13" name="__codelineno-59-13" href="#__codelineno-59-13"></a><span class="c1"># Or filter using a string predicate</span>
+<a id="__codelineno-59-14" name="__codelineno-59-14" href="#__codelineno-59-14"></a><span class="n">scan</span> <span class="o">=</span> <span class="n">table</span><span class="o">.</span><span class="n">scan</span><span class="p">(</span>
+<a id="__codelineno-59-15" name="__codelineno-59-15" href="#__codelineno-59-15"></a> <span class="n">row_filter</span><span class="o">=</span><span class="s2">"trip_distance > 10.0"</span><span class="p">,</span>
+<a id="__codelineno-59-16" name="__codelineno-59-16" href="#__codelineno-59-16"></a><span class="p">)</span>
+<a id="__codelineno-59-17" name="__codelineno-59-17" href="#__codelineno-59-17"></a>
+<a id="__codelineno-59-18" name="__codelineno-59-18" href="#__codelineno-59-18"></a><span class="p">[</span><span class="n">task</span><span class="o">.</span><span class="n">file</span><span class="o">.</span><span class="n">file_path</span> <span class="k">for</span> <span class="n">task</span> <span class="ow">in</span> <span class="n">scan</span><span class="o">.</span><span class="n">plan_files</span><span class="p">()]</span>
+</code></pre></div>
+<p>The low level API <code>plan_files</code> methods returns a set of tasks that provide the files that might contain matching rows:</p>
+<div class="highlight"><pre><span></span><code><a id="__codelineno-60-1" name="__codelineno-60-1" href="#__codelineno-60-1"></a><span class="p">[</span>
+<a id="__codelineno-60-2" name="__codelineno-60-2" href="#__codelineno-60-2"></a><span class="w"> </span><span class="s2">"s3://warehouse/wh/nyc/taxis/data/00003-4-42464649-92dd-41ad-b83b-dea1a2fe4b58-00001.parquet"</span>
+<a id="__codelineno-60-3" name="__codelineno-60-3" href="#__codelineno-60-3"></a><span class="p">]</span>
+</code></pre></div>
+<p>In this case it is up to the engine itself to filter the file itself. Below, <code>to_arrow()</code> and <code>to_duckdb()</code> that already do this for you.</p>
+<h3 id="apache-arrow">Apache Arrow<a class="headerlink" href="#apache-arrow" title="Permanent link">¶</a></h3>
+<!-- prettier-ignore-start -->
+
+<div class="admonition note">
+<p class="admonition-title">Requirements</p>
+<p>This requires <a href="../"><code>pyarrow</code> to be installed</a>.</p>
+</div>
+<!-- prettier-ignore-end -->
+
+<p>Using PyIceberg it is filter out data from a huge table and pull it into a PyArrow table:</p>
+<div class="highlight"><pre><span></span><code><a id="__codelineno-61-1" name="__codelineno-61-1" href="#__codelineno-61-1"></a><span class="n">table</span><span class="o">.</span><span class="n">scan</span><span class="p">(</span>
+<a id="__codelineno-61-2" name="__codelineno-61-2" href="#__codelineno-61-2"></a> <span class="n">row_filter</span><span class="o">=</span><span class="n">GreaterThanOrEqual</span><span class="p">(</span><span class="s2">"trip_distance"</span><span class="p">,</span> <span class="mf">10.0</span><span class="p">),</span>
+<a id="__codelineno-61-3" name="__codelineno-61-3" href="#__codelineno-61-3"></a> <span class="n">selected_fields</span><span class="o">=</span><span class="p">(</span><span class="s2">"VendorID"</span><span class="p">,</span> <span class="s2">"tpep_pickup_datetime"</span><span class="p">,</span> <span class="s2">"tpep_dropoff_datetime"</span><span class="p">),</span>
+<a id="__codelineno-61-4" name="__codelineno-61-4" href="#__codelineno-61-4"></a><span class="p">)</span><span class="o">.</span><span class="n">to_arrow</span><span class="p">()</span>
+</code></pre></div>
+<p>This will return a PyArrow table:</p>
+<div class="highlight"><pre><span></span><code><a id="__codelineno-62-1" name="__codelineno-62-1" href="#__codelineno-62-1"></a>pyarrow.Table
+<a id="__codelineno-62-2" name="__codelineno-62-2" href="#__codelineno-62-2"></a>VendorID: int64
+<a id="__codelineno-62-3" name="__codelineno-62-3" href="#__codelineno-62-3"></a>tpep_pickup_datetime: timestamp[us, tz=+00:00]
+<a id="__codelineno-62-4" name="__codelineno-62-4" href="#__codelineno-62-4"></a>tpep_dropoff_datetime: timestamp[us, tz=+00:00]
+<a id="__codelineno-62-5" name="__codelineno-62-5" href="#__codelineno-62-5"></a>----
+<a id="__codelineno-62-6" name="__codelineno-62-6" href="#__codelineno-62-6"></a>VendorID: [[2,1,2,1,1,...,2,2,2,2,2],[2,1,1,1,2,...,1,1,2,1,2],...,[2,2,2,2,2,...,2,6,6,2,2],[2,2,2,2,2,...,2,2,2,2,2]]
+<a id="__codelineno-62-7" name="__codelineno-62-7" href="#__codelineno-62-7"></a>tpep_pickup_datetime: [[2021-04-01 00:28:05.000000,...,2021-04-30 23:44:25.000000]]
+<a id="__codelineno-62-8" name="__codelineno-62-8" href="#__codelineno-62-8"></a>tpep_dropoff_datetime: [[2021-04-01 00:47:59.000000,...,2021-05-01 00:14:47.000000]]
+</code></pre></div>
+<p>This will only pull in the files that that might contain matching rows.</p>
+<p>One can also return a PyArrow RecordBatchReader, if reading one record batch at a time is preferred:</p>
+<div class="highlight"><pre><span></span><code><a id="__codelineno-63-1" name="__codelineno-63-1" href="#__codelineno-63-1"></a><span class="n">table</span><span class="o">.</span><span class="n">scan</span><span class="p">(</span>
+<a id="__codelineno-63-2" name="__codelineno-63-2" href="#__codelineno-63-2"></a> <span class="n">row_filter</span><span class="o">=</span><span class="n">GreaterThanOrEqual</span><span class="p">(</span><span class="s2">"trip_distance"</span><span class="p">,</span> <span class="mf">10.0</span><span class="p">),</span>
+<a id="__codelineno-63-3" name="__codelineno-63-3" href="#__codelineno-63-3"></a> <span class="n">selected_fields</span><span class="o">=</span><span class="p">(</span><span class="s2">"VendorID"</span><span class="p">,</span> <span class="s2">"tpep_pickup_datetime"</span><span class="p">,</span> <span class="s2">"tpep_dropoff_datetime"</span><span class="p">),</span>
+<a id="__codelineno-63-4" name="__codelineno-63-4" href="#__codelineno-63-4"></a><span class="p">)</span><span class="o">.</span><span class="n">to_arrow_batch_reader</span><span class="p">()</span>
+</code></pre></div>
+<h3 id="pandas">Pandas<a class="headerlink" href="#pandas" title="Permanent link">¶</a></h3>
+<!-- prettier-ignore-start -->
+
+<div class="admonition note">
+<p class="admonition-title">Requirements</p>
+<p>This requires <a href="../"><code>pandas</code> to be installed</a>.</p>
+</div>
+<!-- prettier-ignore-end -->
+
+<p>PyIceberg makes it easy to filter out data from a huge table and pull it into a Pandas dataframe locally. This will only fetch the relevant Parquet files for the query and apply the filter. This will reduce IO and therefore improve performance and reduce cost.</p>
+<div class="highlight"><pre><span></span><code><a id="__codelineno-64-1" name="__codelineno-64-1" href="#__codelineno-64-1"></a><span class="n">table</span><span class="o">.</span><span class="n">scan</span><span class="p">(</span>
+<a id="__codelineno-64-2" name="__codelineno-64-2" href="#__codelineno-64-2"></a> <span class="n">row_filter</span><span class="o">=</span><span class="s2">"trip_distance >= 10.0"</span><span class="p">,</span>
+<a id="__codelineno-64-3" name="__codelineno-64-3" href="#__codelineno-64-3"></a> <span class="n">selected_fields</span><span class="o">=</span><span class="p">(</span><span class="s2">"VendorID"</span><span class="p">,</span> <span class="s2">"tpep_pickup_datetime"</span><span class="p">,</span> <span class="s2">"tpep_dropoff_datetime"</span><span class="p">),</span>
+<a id="__codelineno-64-4" name="__codelineno-64-4" href="#__codelineno-64-4"></a><span class="p">)</span><span class="o">.</span><span class="n">to_pandas</span><span class="p">()</span>
+</code></pre></div>
+<p>This will return a Pandas dataframe:</p>
+<div class="highlight"><pre><span></span><code><a id="__codelineno-65-1" name="__codelineno-65-1" href="#__codelineno-65-1"></a> VendorID tpep_pickup_datetime tpep_dropoff_datetime
+<a id="__codelineno-65-2" name="__codelineno-65-2" href="#__codelineno-65-2"></a>0 2 2021-04-01 00:28:05+00:00 2021-04-01 00:47:59+00:00
+<a id="__codelineno-65-3" name="__codelineno-65-3" href="#__codelineno-65-3"></a>1 1 2021-04-01 00:39:01+00:00 2021-04-01 00:57:39+00:00
+<a id="__codelineno-65-4" name="__codelineno-65-4" href="#__codelineno-65-4"></a>2 2 2021-04-01 00:14:42+00:00 2021-04-01 00:42:59+00:00
+<a id="__codelineno-65-5" name="__codelineno-65-5" href="#__codelineno-65-5"></a>3 1 2021-04-01 00:17:17+00:00 2021-04-01 00:43:38+00:00
+<a id="__codelineno-65-6" name="__codelineno-65-6" href="#__codelineno-65-6"></a>4 1 2021-04-01 00:24:04+00:00 2021-04-01 00:56:20+00:00
+<a id="__codelineno-65-7" name="__codelineno-65-7" href="#__codelineno-65-7"></a>... ... ... ...
+<a id="__codelineno-65-8" name="__codelineno-65-8" href="#__codelineno-65-8"></a>116976 2 2021-04-30 23:56:18+00:00 2021-05-01 00:29:13+00:00
+<a id="__codelineno-65-9" name="__codelineno-65-9" href="#__codelineno-65-9"></a>116977 2 2021-04-30 23:07:41+00:00 2021-04-30 23:37:18+00:00
+<a id="__codelineno-65-10" name="__codelineno-65-10" href="#__codelineno-65-10"></a>116978 2 2021-04-30 23:38:28+00:00 2021-05-01 00:12:04+00:00
+<a id="__codelineno-65-11" name="__codelineno-65-11" href="#__codelineno-65-11"></a>116979 2 2021-04-30 23:33:00+00:00 2021-04-30 23:59:00+00:00
+<a id="__codelineno-65-12" name="__codelineno-65-12" href="#__codelineno-65-12"></a>116980 2 2021-04-30 23:44:25+00:00 2021-05-01 00:14:47+00:00
+<a id="__codelineno-65-13" name="__codelineno-65-13" href="#__codelineno-65-13"></a>
+<a id="__codelineno-65-14" name="__codelineno-65-14" href="#__codelineno-65-14"></a>[116981 rows x 3 columns]
+</code></pre></div>
+<p>It is recommended to use Pandas 2 or later, because it stores the data in an <a href="https://datapythonista.me/blog/pandas-20-and-the-arrow-revolution-part-i">Apache Arrow backend</a> which avoids copies of data.</p>
+<h3 id="duckdb">DuckDB<a class="headerlink" href="#duckdb" title="Permanent link">¶</a></h3>
+<!-- prettier-ignore-start -->
+
+<div class="admonition note">
+<p class="admonition-title">Requirements</p>
+<p>This requires <a href="../">DuckDB to be installed</a>.</p>
+</div>
+<!-- prettier-ignore-end -->
+
+<p>A table scan can also be converted into a in-memory DuckDB table:</p>
+<div class="highlight"><pre><span></span><code><a id="__codelineno-66-1" name="__codelineno-66-1" href="#__codelineno-66-1"></a><span class="n">con</span> <span class="o">=</span> <span class="n">table</span><span class="o">.</span><span class="n">scan</span><span class="p">(</span>
+<a id="__codelineno-66-2" name="__codelineno-66-2" href="#__codelineno-66-2"></a> <span class="n">row_filter</span><span class="o">=</span><span class="n">GreaterThanOrEqual</span><span class="p">(</span><span class="s2">"trip_distance"</span><span class="p">,</span> <span class="mf">10.0</span><span class="p">),</span>
+<a id="__codelineno-66-3" name="__codelineno-66-3" href="#__codelineno-66-3"></a> <span class="n">selected_fields</span><span class="o">=</span><span class="p">(</span><span class="s2">"VendorID"</span><span class="p">,</span> <span class="s2">"tpep_pickup_datetime"</span><span class="p">,</span> <span class="s2">"tpep_dropoff_datetime"</span><span class="p">),</span>
+<a id="__codelineno-66-4" name="__codelineno-66-4" href="#__codelineno-66-4"></a><span class="p">)</span><span class="o">.</span><span class="n">to_duckdb</span><span class="p">(</span><span class="n">table_name</span><span class="o">=</span><span class="s2">"distant_taxi_trips"</span><span class="p">)</span>
+</code></pre></div>
+<p>Using the cursor that we can run queries on the DuckDB table:</p>
+<div class="highlight"><pre><span></span><code><a id="__codelineno-67-1" name="__codelineno-67-1" href="#__codelineno-67-1"></a><span class="nb">print</span><span class="p">(</span>
+<a id="__codelineno-67-2" name="__codelineno-67-2" href="#__codelineno-67-2"></a> <span class="n">con</span><span class="o">.</span><span class="n">execute</span><span class="p">(</span>
+<a id="__codelineno-67-3" name="__codelineno-67-3" href="#__codelineno-67-3"></a> <span class="s2">"SELECT tpep_dropoff_datetime - tpep_pickup_datetime AS duration FROM distant_taxi_trips LIMIT 4"</span>
+<a id="__codelineno-67-4" name="__codelineno-67-4" href="#__codelineno-67-4"></a> <span class="p">)</span><span class="o">.</span><span class="n">fetchall</span><span class="p">()</span>
+<a id="__codelineno-67-5" name="__codelineno-67-5" href="#__codelineno-67-5"></a><span class="p">)</span>
+<a id="__codelineno-67-6" name="__codelineno-67-6" href="#__codelineno-67-6"></a><span class="p">[</span>
+<a id="__codelineno-67-7" name="__codelineno-67-7" href="#__codelineno-67-7"></a> <span class="p">(</span><span class="n">datetime</span><span class="o">.</span><span class="n">timedelta</span><span class="p">(</span><span class="n">seconds</span><span class="o">=</span><span class="mi">1194</span><span class="p">),),</span>
+<a id="__codelineno-67-8" name="__codelineno-67-8" href="#__codelineno-67-8"></a> <span class="p">(</span><span class="n">datetime</span><span class="o">.</span><span class="n">timedelta</span><span class="p">(</span><span class="n">seconds</span><span class="o">=</span><span class="mi">1118</span><span class="p">),),</span>
+<a id="__codelineno-67-9" name="__codelineno-67-9" href="#__codelineno-67-9"></a> <span class="p">(</span><span class="n">datetime</span><span class="o">.</span><span class="n">timedelta</span><span class="p">(</span><span class="n">seconds</span><span class="o">=</span><span class="mi">1697</span><span class="p">),),</span>
+<a id="__codelineno-67-10" name="__codelineno-67-10" href="#__codelineno-67-10"></a> <span class="p">(</span><span class="n">datetime</span><span class="o">.</span><span class="n">timedelta</span><span class="p">(</span><span class="n">seconds</span><span class="o">=</span><span class="mi">1581</span><span class="p">),),</span>
+<a id="__codelineno-67-11" name="__codelineno-67-11" href="#__codelineno-67-11"></a><span class="p">]</span>
+</code></pre></div>
+<h3 id="ray">Ray<a class="headerlink" href="#ray" title="Permanent link">¶</a></h3>
+<!-- prettier-ignore-start -->
+
+<div class="admonition note">
+<p class="admonition-title">Requirements</p>
+<p>This requires <a href="../">Ray to be installed</a>.</p>
+</div>
+<!-- prettier-ignore-end -->
+
+<p>A table scan can also be converted into a Ray dataset:</p>
+<div class="highlight"><pre><span></span><code><a id="__codelineno-68-1" name="__codelineno-68-1" href="#__codelineno-68-1"></a><span class="n">ray_dataset</span> <span class="o">=</span> <span class="n">table</span><span class="o">.</span><span class="n">scan</span><span class="p">(</span>
+<a id="__codelineno-68-2" name="__codelineno-68-2" href="#__codelineno-68-2"></a> <span class="n">row_filter</span><span class="o">=</span><span class="n">GreaterThanOrEqual</span><span class="p">(</span><span class="s2">"trip_distance"</span><span class="p">,</span> <span class="mf">10.0</span><span class="p">),</span>
+<a id="__codelineno-68-3" name="__codelineno-68-3" href="#__codelineno-68-3"></a> <span class="n">selected_fields</span><span class="o">=</span><span class="p">(</span><span class="s2">"VendorID"</span><span class="p">,</span> <span class="s2">"tpep_pickup_datetime"</span><span class="p">,</span> <span class="s2">"tpep_dropoff_datetime"</span><span class="p">),</span>
+<a id="__codelineno-68-4" name="__codelineno-68-4" href="#__codelineno-68-4"></a><span class="p">)</span><span class="o">.</span><span class="n">to_ray</span><span class="p">()</span>
+</code></pre></div>
+<p>This will return a Ray dataset:</p>
+<div class="highlight"><pre><span></span><code><a id="__codelineno-69-1" name="__codelineno-69-1" href="#__codelineno-69-1"></a>Dataset(
+<a id="__codelineno-69-2" name="__codelineno-69-2" href="#__codelineno-69-2"></a> num_blocks=1,
+<a id="__codelineno-69-3" name="__codelineno-69-3" href="#__codelineno-69-3"></a> num_rows=1168798,
+<a id="__codelineno-69-4" name="__codelineno-69-4" href="#__codelineno-69-4"></a> schema={
+<a id="__codelineno-69-5" name="__codelineno-69-5" href="#__codelineno-69-5"></a> VendorID: int64,
+<a id="__codelineno-69-6" name="__codelineno-69-6" href="#__codelineno-69-6"></a> tpep_pickup_datetime: timestamp[us, tz=UTC],
+<a id="__codelineno-69-7" name="__codelineno-69-7" href="#__codelineno-69-7"></a> tpep_dropoff_datetime: timestamp[us, tz=UTC]
+<a id="__codelineno-69-8" name="__codelineno-69-8" href="#__codelineno-69-8"></a> }
+<a id="__codelineno-69-9" name="__codelineno-69-9" href="#__codelineno-69-9"></a>)
+</code></pre></div>
+<p>Using <a href="https://docs.ray.io/en/latest/data/api/dataset.html">Ray Dataset API</a> to interact with the dataset:</p>
+<div class="highlight"><pre><span></span><code><a id="__codelineno-70-1" name="__codelineno-70-1" href="#__codelineno-70-1"></a><span class="nb">print</span><span class="p">(</span><span class="n">ray_dataset</span><span class="o">.</span><span class="n">take</span><span class="p">(</span><span class="mi">2</span><span class="p">))</span>
+<a id="__codelineno-70-2" name="__codelineno-70-2" href="#__codelineno-70-2"></a><span class="p">[</span>
+<a id="__codelineno-70-3" name="__codelineno-70-3" href="#__codelineno-70-3"></a> <span class="p">{</span>
+<a id="__codelineno-70-4" name="__codelineno-70-4" href="#__codelineno-70-4"></a> <span class="s2">"VendorID"</span><span class="p">:</span> <span class="mi">2</span><span class="p">,</span>
+<a id="__codelineno-70-5" name="__codelineno-70-5" href="#__codelineno-70-5"></a> <span class="s2">"tpep_pickup_datetime"</span><span class="p">:</span> <span class="n">datetime</span><span class="o">.</span><span class="n">datetime</span><span class="p">(</span><span class="mi">2008</span><span class="p">,</span> <span class="mi">12</span><span class="p">,</span> <span class="mi">31</span><span class="p">,</span> <span class="mi">23</span><span class="p">,</span> <span [...]
+<a id="__codelineno-70-6" name="__codelineno-70-6" href="#__codelineno-70-6"></a> <span class="s2">"tpep_dropoff_datetime"</span><span class="p">:</span> <span class="n">datetime</span><span class="o">.</span><span class="n">datetime</span><span class="p">(</span><span class="mi">2009</span><span class="p">,</span> <span class="mi">1</span><span class="p">,</span> <span class="mi">1</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span cl [...]
+<a id="__codelineno-70-7" name="__codelineno-70-7" href="#__codelineno-70-7"></a> <span class="p">},</span>
+<a id="__codelineno-70-8" name="__codelineno-70-8" href="#__codelineno-70-8"></a> <span class="p">{</span>
+<a id="__codelineno-70-9" name="__codelineno-70-9" href="#__codelineno-70-9"></a> <span class="s2">"VendorID"</span><span class="p">:</span> <span class="mi">2</span><span class="p">,</span>
+<a id="__codelineno-70-10" name="__codelineno-70-10" href="#__codelineno-70-10"></a> <span class="s2">"tpep_pickup_datetime"</span><span class="p">:</span> <span class="n">datetime</span><span class="o">.</span><span class="n">datetime</span><span class="p">(</span><span class="mi">2008</span><span class="p">,</span> <span class="mi">12</span><span class="p">,</span> <span class="mi">31</span><span class="p">,</span> <span class="mi">23</span><span class="p">,</span> <sp [...]
+<a id="__codelineno-70-11" name="__codelineno-70-11" href="#__codelineno-70-11"></a> <span class="s2">"tpep_dropoff_datetime"</span><span class="p">:</span> <span class="n">datetime</span><span class="o">.</span><span class="n">datetime</span><span class="p">(</span><span class="mi">2009</span><span class="p">,</span> <span class="mi">1</span><span class="p">,</span> <span class="mi">1</span><span class="p">,</span> <span class="mi">16</span><span class="p">,</span> <spa [...]
+<a id="__codelineno-70-12" name="__codelineno-70-12" href="#__codelineno-70-12"></a> <span class="p">},</span>
+<a id="__codelineno-70-13" name="__codelineno-70-13" href="#__codelineno-70-13"></a><span class="p">]</span>
+</code></pre></div>
+<h3 id="daft">Daft<a class="headerlink" href="#daft" title="Permanent link">¶</a></h3>
+<p>PyIceberg interfaces closely with Daft Dataframes (see also: <a href="https://www.getdaft.io/projects/docs/en/latest/user_guide/integrations/iceberg.html">Daft integration with Iceberg</a>) which provides a full lazily optimized query engine interface on top of PyIceberg tables.</p>
+<!-- prettier-ignore-start -->
+
+<div class="admonition note">
+<p class="admonition-title">Requirements</p>
+<p>This requires <a href="../">Daft to be installed</a>.</p>
+</div>
+<!-- prettier-ignore-end -->
+
+<p>A table can be read easily into a Daft Dataframe:</p>
+<div class="highlight"><pre><span></span><code><a id="__codelineno-71-1" name="__codelineno-71-1" href="#__codelineno-71-1"></a><span class="n">df</span> <span class="o">=</span> <span class="n">table</span><span class="o">.</span><span class="n">to_daft</span><span class="p">()</span> <span class="c1"># equivalent to `daft.read_iceberg(table)`</span>
+<a id="__codelineno-71-2" name="__codelineno-71-2" href="#__codelineno-71-2"></a><span class="n">df</span> <span class="o">=</span> <span class="n">df</span><span class="o">.</span><span class="n">where</span><span class="p">(</span><span class="n">df</span><span class="p">[</span><span class="s2">"trip_distance"</span><span class="p">]</span> <span class="o">>=</span> <span class="mf">10.0</span><span class="p">)</span>
+<a id="__codelineno-71-3" name="__codelineno-71-3" href="#__codelineno-71-3"></a><span class="n">df</span> <span class="o">=</span> <span class="n">df</span><span class="o">.</span><span class="n">select</span><span class="p">(</span><span class="s2">"VendorID"</span><span class="p">,</span> <span class="s2">"tpep_pickup_datetime"</span><span class="p">,</span> <span class="s2">"tpep_dropoff_datetime"</span><span class="p">)</span>
+</code></pre></div>
+<p>This returns a Daft Dataframe which is lazily materialized. Printing <code>df</code> will display the schema:</p>
+<div class="highlight"><pre><span></span><code><a id="__codelineno-72-1" name="__codelineno-72-1" href="#__codelineno-72-1"></a>╭──────────┬───────────────────────────────┬───────────────────────────────╮
+<a id="__codelineno-72-2" name="__codelineno-72-2" href="#__codelineno-72-2"></a>│ VendorID ┆ tpep_pickup_datetime ┆ tpep_dropoff_datetime │
+<a id="__codelineno-72-3" name="__codelineno-72-3" href="#__codelineno-72-3"></a>│ --- ┆ --- ┆ --- │
+<a id="__codelineno-72-4" name="__codelineno-72-4" href="#__codelineno-72-4"></a>│ Int64 ┆ Timestamp(Microseconds, None) ┆ Timestamp(Microseconds, None) │
+<a id="__codelineno-72-5" name="__codelineno-72-5" href="#__codelineno-72-5"></a>╰──────────┴───────────────────────────────┴───────────────────────────────╯
+<a id="__codelineno-72-6" name="__codelineno-72-6" href="#__codelineno-72-6"></a>
+<a id="__codelineno-72-7" name="__codelineno-72-7" href="#__codelineno-72-7"></a>(No data to display: Dataframe not materialized)
+</code></pre></div>
+<p>We can execute the Dataframe to preview the first few rows of the query with <code>df.show()</code>.</p>
+<p>This is correctly optimized to take advantage of Iceberg features such as hidden partitioning and file-level statistics for efficient reads.</p>
+<div class="highlight"><pre><span></span><code><a id="__codelineno-73-1" name="__codelineno-73-1" href="#__codelineno-73-1"></a><span class="n">df</span><span class="o">.</span><span class="n">show</span><span class="p">(</span><span class="mi">2</span><span class="p">)</span>
+</code></pre></div>
+<div class="highlight"><pre><span></span><code><a id="__codelineno-74-1" name="__codelineno-74-1" href="#__codelineno-74-1"></a>╭──────────┬───────────────────────────────┬───────────────────────────────╮
+<a id="__codelineno-74-2" name="__codelineno-74-2" href="#__codelineno-74-2"></a>│ VendorID ┆ tpep_pickup_datetime ┆ tpep_dropoff_datetime │
+<a id="__codelineno-74-3" name="__codelineno-74-3" href="#__codelineno-74-3"></a>│ --- ┆ --- ┆ --- │
+<a id="__codelineno-74-4" name="__codelineno-74-4" href="#__codelineno-74-4"></a>│ Int64 ┆ Timestamp(Microseconds, None) ┆ Timestamp(Microseconds, None) │
+<a id="__codelineno-74-5" name="__codelineno-74-5" href="#__codelineno-74-5"></a>╞══════════╪═══════════════════════════════╪═══════════════════════════════╡
+<a id="__codelineno-74-6" name="__codelineno-74-6" href="#__codelineno-74-6"></a>│ 2 ┆ 2008-12-31T23:23:50.000000 ┆ 2009-01-01T00:34:31.000000 │
+<a id="__codelineno-74-7" name="__codelineno-74-7" href="#__codelineno-74-7"></a>├╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┤
+<a id="__codelineno-74-8" name="__codelineno-74-8" href="#__codelineno-74-8"></a>│ 2 ┆ 2008-12-31T23:05:03.000000 ┆ 2009-01-01T16:10:18.000000 │
+<a id="__codelineno-74-9" name="__codelineno-74-9" href="#__codelineno-74-9"></a>╰──────────┴───────────────────────────────┴───────────────────────────────╯
+<a id="__codelineno-74-10" name="__codelineno-74-10" href="#__codelineno-74-10"></a>
+<a id="__codelineno-74-11" name="__codelineno-74-11" href="#__codelineno-74-11"></a>(Showing first 2 rows)
+</code></pre></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 8v12Z"/></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"], "search": "../assets/javascripts/workers/search.b8dbb3d2.min.js", "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. [...]
+
+
+ <script src="../assets/javascripts/bundle.fe8b6f2b.min.js"></script>
+
+
+ </body>
+</html>
\ No newline at end of file
diff --git a/assets/_mkdocstrings.css b/assets/_mkdocstrings.css
new file mode 100644
index 00000000..85449ec7
--- /dev/null
+++ b/assets/_mkdocstrings.css
@@ -0,0 +1,119 @@
+
+/* Avoid breaking parameter names, etc. in table cells. */
+.doc-contents td code {
+ word-break: normal !important;
+}
+
+/* No line break before first paragraph of descriptions. */
+.doc-md-description,
+.doc-md-description>p:first-child {
+ display: inline;
+}
+
+/* Max width for docstring sections tables. */
+.doc .md-typeset__table,
+.doc .md-typeset__table table {
+ display: table !important;
+ width: 100%;
+}
+
+.doc .md-typeset__table tr {
+ display: table-row;
+}
+
+/* Defaults in Spacy table style. */
+.doc-param-default {
+ float: right;
+}
+
+/* Backward-compatibility: docstring section titles in bold. */
+.doc-section-title {
+ font-weight: bold;
+}
+
+/* Symbols in Navigation and ToC. */
+:root,
+[data-md-color-scheme="default"] {
+ --doc-symbol-attribute-fg-color: #953800;
+ --doc-symbol-function-fg-color: #8250df;
+ --doc-symbol-method-fg-color: #8250df;
+ --doc-symbol-class-fg-color: #0550ae;
+ --doc-symbol-module-fg-color: #5cad0f;
+
+ --doc-symbol-attribute-bg-color: #9538001a;
+ --doc-symbol-function-bg-color: #8250df1a;
+ --doc-symbol-method-bg-color: #8250df1a;
+ --doc-symbol-class-bg-color: #0550ae1a;
+ --doc-symbol-module-bg-color: #5cad0f1a;
+}
+
+[data-md-color-scheme="slate"] {
+ --doc-symbol-attribute-fg-color: #ffa657;
+ --doc-symbol-function-fg-color: #d2a8ff;
+ --doc-symbol-method-fg-color: #d2a8ff;
+ --doc-symbol-class-fg-color: #79c0ff;
+ --doc-symbol-module-fg-color: #baff79;
+
+ --doc-symbol-attribute-bg-color: #ffa6571a;
+ --doc-symbol-function-bg-color: #d2a8ff1a;
+ --doc-symbol-method-bg-color: #d2a8ff1a;
+ --doc-symbol-class-bg-color: #79c0ff1a;
+ --doc-symbol-module-bg-color: #baff791a;
+}
+
+code.doc-symbol {
+ border-radius: .1rem;
+ font-size: .85em;
+ padding: 0 .3em;
+ font-weight: bold;
+}
+
+code.doc-symbol-attribute {
+ color: var(--doc-symbol-attribute-fg-color);
+ background-color: var(--doc-symbol-attribute-bg-color);
+}
+
+code.doc-symbol-attribute::after {
+ content: "attr";
+}
+
+code.doc-symbol-function {
+ color: var(--doc-symbol-function-fg-color);
+ background-color: var(--doc-symbol-function-bg-color);
+}
+
+code.doc-symbol-function::after {
+ content: "func";
+}
+
+code.doc-symbol-method {
+ color: var(--doc-symbol-method-fg-color);
+ background-color: var(--doc-symbol-method-bg-color);
+}
+
+code.doc-symbol-method::after {
+ content: "meth";
+}
+
+code.doc-symbol-class {
+ color: var(--doc-symbol-class-fg-color);
+ background-color: var(--doc-symbol-class-bg-color);
+}
+
+code.doc-symbol-class::after {
+ content: "class";
+}
+
+code.doc-symbol-module {
+ color: var(--doc-symbol-module-fg-color);
+ background-color: var(--doc-symbol-module-bg-color);
+}
+
+code.doc-symbol-module::after {
+ content: "mod";
+}
+
+.doc-signature .autorefs {
+ color: inherit;
+ border-bottom: 1px dotted currentcolor;
+}
diff --git a/assets/images/favicon.png b/assets/images/favicon.png
new file mode 100644
index 00000000..1cf13b9f
Binary files /dev/null and b/assets/images/favicon.png differ
diff --git a/assets/images/ghactions-run-workflow-pypi-upload.png b/assets/images/ghactions-run-workflow-pypi-upload.png
new file mode 100644
index 00000000..3e1476b5
Binary files /dev/null and b/assets/images/ghactions-run-workflow-pypi-upload.png differ
diff --git a/assets/images/ghactions-run-workflow-svn-upload.png b/assets/images/ghactions-run-workflow-svn-upload.png
new file mode 100644
index 00000000..4577a2dd
Binary files /dev/null and b/assets/images/ghactions-run-workflow-svn-upload.png differ
diff --git a/assets/images/iceberg-logo-icon.png b/assets/images/iceberg-logo-icon.png
new file mode 100644
index 00000000..e4a99c39
Binary files /dev/null and b/assets/images/iceberg-logo-icon.png differ
diff --git a/assets/javascripts/bundle.fe8b6f2b.min.js b/assets/javascripts/bundle.fe8b6f2b.min.js
new file mode 100644
index 00000000..cf778d42
--- /dev/null
+++ b/assets/javascripts/bundle.fe8b6f2b.min.js
@@ -0,0 +1,29 @@
+"use strict";(()=>{var Fi=Object.create;var gr=Object.defineProperty;var ji=Object.getOwnPropertyDescriptor;var Wi=Object.getOwnPropertyNames,Dt=Object.getOwnPropertySymbols,Ui=Object.getPrototypeOf,xr=Object.prototype.hasOwnProperty,no=Object.prototype.propertyIsEnumerable;var oo=(e,t,r)=>t in e?gr(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,R=(e,t)=>{for(var r in t||(t={}))xr.call(t,r)&&oo(e,r,t[r]);if(Dt)for(var r of Dt(t))no.call(t,r)&&oo(e,r,t[r]);return e};var i [...]
+ * clipboard.js v2.0.11
+ * https://clipboardjs.com/
+ *
+ * Licensed MIT © Zeno Rocha
+ */(function(t,r){typeof Rt=="object"&&typeof Kr=="object"?Kr.exports=r():typeof define=="function"&&define.amd?define([],r):typeof Rt=="object"?Rt.ClipboardJS=r():t.ClipboardJS=r()})(Rt,function(){return function(){var e={686:function(o,n,i){"use strict";i.d(n,{default:function(){return Ii}});var a=i(279),s=i.n(a),p=i(370),c=i.n(p),l=i(817),f=i.n(l);function u(V){try{return document.execCommand(V)}catch(_){return!1}}var h=function(_){var M=f()(_);return u("cut"),M},w=h;function A(V){var [...]
+ * escape-html
+ * Copyright(c) 2012-2013 TJ Holowaychuk
+ * Copyright(c) 2015 Andreas Lubbe
+ * Copyright(c) 2015 Tiancheng "Timothy" Gu
+ * MIT Licensed
+ */var ts=/["'&<>]/;ei.exports=rs;function rs(e){var t=""+e,r=ts.exec(t);if(!r)return t;var o,n="",i=0,a=0;for(i=r.index;i<t.length;i++){switch(t.charCodeAt(i)){case 34:o=""";break;case 38:o="&";break;case 39:o="'";break;case 60:o="<";break;case 62:o=">";break;default:continue}a!==i&&(n+=t.substring(a,i)),a=i+1,n+=o}return a!==i?n+t.substring(a,i):n}});var t0=Vt(co());/*! *****************************************************************************
+Copyright (c) Microsoft Corporation.
+
+Permission to use, copy, modify, and/or distribute this software for any
+purpose with or without fee is hereby granted.
+
+THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
+REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
+AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
+INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
+LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
+OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+PERFORMANCE OF THIS SOFTWARE.
+***************************************************************************** */var wr=function(e,t){return wr=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(r,o){r.__proto__=o}||function(r,o){for(var n in o)Object.prototype.hasOwnProperty.call(o,n)&&(r[n]=o[n])},wr(e,t)};function re(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");wr(e,t);function r(){this.constructor=e}e.prototype=t===null?Obje [...]
+`+r.map(function(o,n){return n+1+") "+o.toString()}).join(`
+ `):"",this.name="UnsubscriptionError",this.errors=r}});function qe(e,t){if(e){var r=e.indexOf(t);0<=r&&e.splice(r,1)}}var Fe=function(){function e(t){this.initialTeardown=t,this.closed=!1,this._parentage=null,this._finalizers=null}return e.prototype.unsubscribe=function(){var t,r,o,n,i;if(!this.closed){this.closed=!0;var a=this._parentage;if(a)if(this._parentage=null,Array.isArray(a))try{for(var s=de(a),p=s.next();!p.done;p=s.next()){var c=p.value;c.remove(this)}}catch(A){t={error:A}}f [...]
+//# sourceMappingURL=bundle.fe8b6f2b.min.js.map
+
diff --git a/assets/javascripts/bundle.fe8b6f2b.min.js.map b/assets/javascripts/bundle.fe8b6f2b.min.js.map
new file mode 100644
index 00000000..82635852
--- /dev/null
+++ b/assets/javascripts/bundle.fe8b6f2b.min.js.map
@@ -0,0 +1,7 @@
+{
+ "version": 3,
+ "sources": ["node_modules/focus-visible/dist/focus-visible.js", "node_modules/clipboard/dist/clipboard.js", "node_modules/escape-html/index.js", "src/templates/assets/javascripts/bundle.ts", "node_modules/rxjs/node_modules/tslib/tslib.es6.js", "node_modules/rxjs/src/internal/util/isFunction.ts", "node_modules/rxjs/src/internal/util/createErrorClass.ts", "node_modules/rxjs/src/internal/util/UnsubscriptionError.ts", "node_modules/rxjs/src/internal/util/arrRemove.ts", "node_modules/rxjs/s [...]
+ "sourcesContent": ["(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? factory() :\n typeof define === 'function' && define.amd ? define(factory) :\n (factory());\n}(this, (function () { 'use strict';\n\n /**\n * Applies the :focus-visible polyfill at the given scope.\n * A scope in this case is either the top-level Document or a Shadow Root.\n *\n * @param {(Document|ShadowRoot)} scope\n * @see https://github.com/WICG/focus-vis [...]
+ "mappings": "2rCAAA,IAAAA,GAAAC,GAAA,CAAAC,GAAAC,KAAA,EAAC,SAAUC,EAAQC,EAAS,CAC1B,OAAOH,IAAY,UAAY,OAAOC,IAAW,YAAcE,EAAQ,EACvE,OAAO,QAAW,YAAc,OAAO,IAAM,OAAOA,CAAO,EAC1DA,EAAQ,CACX,GAAEH,GAAO,UAAY,CAAE,aASrB,SAASI,EAA0BC,EAAO,CACxC,IAAIC,EAAmB,GACnBC,EAA0B,GAC1BC,EAAiC,KAEjCC,EAAsB,CACxB,KAAM,GACN,OAAQ,GACR,IAAK,GACL,IAAK,GACL,MAAO,GACP,SAAU,GACV,OAAQ,GACR,KAAM,GACN,MAAO,GACP,KAAM,GACN,KAAM,GACN,SAAU,GACV,iBAAkB,EACpB,EAOA,SAASC,EAAmBC,EAAI,CAC9B,MACE,GAAAA,GACAA,IAAO,UACPA,EAAG,WAAa,QAC [...]
+ "names": ["require_focus_visible", "__commonJSMin", "exports", "module", "global", "factory", "applyFocusVisiblePolyfill", "scope", "hadKeyboardEvent", "hadFocusVisibleRecently", "hadFocusVisibleRecentlyTimeout", "inputTypesAllowlist", "isValidFocusTarget", "el", "focusTriggersKeyboardModality", "type", "tagName", "addFocusVisibleClass", "removeFocusVisibleClass", "onKeyDown", "e", "onPointerDown", "onFocus", "onBlur", "onVisibilityChange", "addInitialPointerMoveListeners", "onInitialP [...]
+}
diff --git a/assets/javascripts/lunr/min/lunr.ar.min.js b/assets/javascripts/lunr/min/lunr.ar.min.js
new file mode 100644
index 00000000..9b06c26c
--- /dev/null
+++ b/assets/javascripts/lunr/min/lunr.ar.min.js
@@ -0,0 +1 @@
+!function(e,r){"function"==typeof define&&define.amd?define(r):"object"==typeof exports?module.exports=r():r()(e.lunr)}(this,function(){return function(e){if(void 0===e)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===e.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");e.ar=function(){this.pipeline.reset(),this.pipeline.add(e.ar.trimmer,e.ar.stopWord [...]
\ No newline at end of file
diff --git a/assets/javascripts/lunr/min/lunr.da.min.js b/assets/javascripts/lunr/min/lunr.da.min.js
new file mode 100644
index 00000000..b9d85098
--- /dev/null
+++ b/assets/javascripts/lunr/min/lunr.da.min.js
@@ -0,0 +1,18 @@
+/*!
+ * Lunr languages, `Danish` language
+ * https://github.com/MihaiValentin/lunr-languages
+ *
+ * Copyright 2014, Mihai Valentin
+ * http://www.mozilla.org/MPL/
+ */
+/*!
+ * based on
+ * Snowball JavaScript Library v0.3
+ * http://code.google.com/p/urim/
+ * http://snowball.tartarus.org/
+ *
+ * Copyright 2010, Oleg Mazko
+ * http://www.mozilla.org/MPL/
+ */
+
+!function(e,r){"function"==typeof define&&define.amd?define(r):"object"==typeof exports?module.exports=r():r()(e.lunr)}(this,function(){return function(e){if(void 0===e)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===e.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");e.da=function(){this.pipeline.reset(),this.pipeline.add(e.da.trimmer,e.da.stopWord [...]
\ No newline at end of file
diff --git a/assets/javascripts/lunr/min/lunr.de.min.js b/assets/javascripts/lunr/min/lunr.de.min.js
new file mode 100644
index 00000000..f3b5c108
--- /dev/null
+++ b/assets/javascripts/lunr/min/lunr.de.min.js
@@ -0,0 +1,18 @@
+/*!
+ * Lunr languages, `German` language
+ * https://github.com/MihaiValentin/lunr-languages
+ *
+ * Copyright 2014, Mihai Valentin
+ * http://www.mozilla.org/MPL/
+ */
+/*!
+ * based on
+ * Snowball JavaScript Library v0.3
+ * http://code.google.com/p/urim/
+ * http://snowball.tartarus.org/
+ *
+ * Copyright 2010, Oleg Mazko
+ * http://www.mozilla.org/MPL/
+ */
+
+!function(e,r){"function"==typeof define&&define.amd?define(r):"object"==typeof exports?module.exports=r():r()(e.lunr)}(this,function(){return function(e){if(void 0===e)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===e.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");e.de=function(){this.pipeline.reset(),this.pipeline.add(e.de.trimmer,e.de.stopWord [...]
\ No newline at end of file
diff --git a/assets/javascripts/lunr/min/lunr.du.min.js b/assets/javascripts/lunr/min/lunr.du.min.js
new file mode 100644
index 00000000..49a0f3f0
--- /dev/null
+++ b/assets/javascripts/lunr/min/lunr.du.min.js
@@ -0,0 +1,18 @@
+/*!
+ * Lunr languages, `Dutch` language
+ * https://github.com/MihaiValentin/lunr-languages
+ *
+ * Copyright 2014, Mihai Valentin
+ * http://www.mozilla.org/MPL/
+ */
+/*!
+ * based on
+ * Snowball JavaScript Library v0.3
+ * http://code.google.com/p/urim/
+ * http://snowball.tartarus.org/
+ *
+ * Copyright 2010, Oleg Mazko
+ * http://www.mozilla.org/MPL/
+ */
+
+!function(e,r){"function"==typeof define&&define.amd?define(r):"object"==typeof exports?module.exports=r():r()(e.lunr)}(this,function(){return function(e){if(void 0===e)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===e.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");console.warn('[Lunr Languages] Please use the "nl" instead of the "du". The "nl" c [...]
\ No newline at end of file
diff --git a/assets/javascripts/lunr/min/lunr.el.min.js b/assets/javascripts/lunr/min/lunr.el.min.js
new file mode 100644
index 00000000..ace017bd
--- /dev/null
+++ b/assets/javascripts/lunr/min/lunr.el.min.js
@@ -0,0 +1 @@
+!function(e,t){"function"==typeof define&&define.amd?define(t):"object"==typeof exports?module.exports=t():t()(e.lunr)}(this,function(){return function(e){if(void 0===e)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===e.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");e.el=function(){this.pipeline.reset(),void 0===this.searchPipeline&&this.pipeline. [...]
\ No newline at end of file
diff --git a/assets/javascripts/lunr/min/lunr.es.min.js b/assets/javascripts/lunr/min/lunr.es.min.js
new file mode 100644
index 00000000..2989d342
--- /dev/null
+++ b/assets/javascripts/lunr/min/lunr.es.min.js
@@ -0,0 +1,18 @@
+/*!
+ * Lunr languages, `Spanish` language
+ * https://github.com/MihaiValentin/lunr-languages
+ *
+ * Copyright 2014, Mihai Valentin
+ * http://www.mozilla.org/MPL/
+ */
+/*!
+ * based on
+ * Snowball JavaScript Library v0.3
+ * http://code.google.com/p/urim/
+ * http://snowball.tartarus.org/
+ *
+ * Copyright 2010, Oleg Mazko
+ * http://www.mozilla.org/MPL/
+ */
+
+!function(e,s){"function"==typeof define&&define.amd?define(s):"object"==typeof exports?module.exports=s():s()(e.lunr)}(this,function(){return function(e){if(void 0===e)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===e.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");e.es=function(){this.pipeline.reset(),this.pipeline.add(e.es.trimmer,e.es.stopWord [...]
\ No newline at end of file
diff --git a/assets/javascripts/lunr/min/lunr.fi.min.js b/assets/javascripts/lunr/min/lunr.fi.min.js
new file mode 100644
index 00000000..29f5dfce
--- /dev/null
+++ b/assets/javascripts/lunr/min/lunr.fi.min.js
@@ -0,0 +1,18 @@
+/*!
+ * Lunr languages, `Finnish` language
+ * https://github.com/MihaiValentin/lunr-languages
+ *
+ * Copyright 2014, Mihai Valentin
+ * http://www.mozilla.org/MPL/
+ */
+/*!
+ * based on
+ * Snowball JavaScript Library v0.3
+ * http://code.google.com/p/urim/
+ * http://snowball.tartarus.org/
+ *
+ * Copyright 2010, Oleg Mazko
+ * http://www.mozilla.org/MPL/
+ */
+
+!function(i,e){"function"==typeof define&&define.amd?define(e):"object"==typeof exports?module.exports=e():e()(i.lunr)}(this,function(){return function(i){if(void 0===i)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===i.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");i.fi=function(){this.pipeline.reset(),this.pipeline.add(i.fi.trimmer,i.fi.stopWord [...]
\ No newline at end of file
diff --git a/assets/javascripts/lunr/min/lunr.fr.min.js b/assets/javascripts/lunr/min/lunr.fr.min.js
new file mode 100644
index 00000000..68cd0094
--- /dev/null
+++ b/assets/javascripts/lunr/min/lunr.fr.min.js
@@ -0,0 +1,18 @@
+/*!
+ * Lunr languages, `French` language
+ * https://github.com/MihaiValentin/lunr-languages
+ *
+ * Copyright 2014, Mihai Valentin
+ * http://www.mozilla.org/MPL/
+ */
+/*!
+ * based on
+ * Snowball JavaScript Library v0.3
+ * http://code.google.com/p/urim/
+ * http://snowball.tartarus.org/
+ *
+ * Copyright 2010, Oleg Mazko
+ * http://www.mozilla.org/MPL/
+ */
+
+!function(e,r){"function"==typeof define&&define.amd?define(r):"object"==typeof exports?module.exports=r():r()(e.lunr)}(this,function(){return function(e){if(void 0===e)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===e.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");e.fr=function(){this.pipeline.reset(),this.pipeline.add(e.fr.trimmer,e.fr.stopWord [...]
\ No newline at end of file
diff --git a/assets/javascripts/lunr/min/lunr.he.min.js b/assets/javascripts/lunr/min/lunr.he.min.js
new file mode 100644
index 00000000..b863d3ea
--- /dev/null
+++ b/assets/javascripts/lunr/min/lunr.he.min.js
@@ -0,0 +1 @@
+!function(e,r){"function"==typeof define&&define.amd?define(r):"object"==typeof exports?module.exports=r():r()(e.lunr)}(this,function(){return function(e){if(void 0===e)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===e.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");e.he=function(){this.pipeline.reset(),this.pipeline.add(e.he.trimmer,e.he.stopWord [...]
\ No newline at end of file
diff --git a/assets/javascripts/lunr/min/lunr.hi.min.js b/assets/javascripts/lunr/min/lunr.hi.min.js
new file mode 100644
index 00000000..7dbc4140
--- /dev/null
+++ b/assets/javascripts/lunr/min/lunr.hi.min.js
@@ -0,0 +1 @@
+!function(e,r){"function"==typeof define&&define.amd?define(r):"object"==typeof exports?module.exports=r():r()(e.lunr)}(this,function(){return function(e){if(void 0===e)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===e.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");e.hi=function(){this.pipeline.reset(),this.pipeline.add(e.hi.trimmer,e.hi.stopWord [...]
\ No newline at end of file
diff --git a/assets/javascripts/lunr/min/lunr.hu.min.js b/assets/javascripts/lunr/min/lunr.hu.min.js
new file mode 100644
index 00000000..ed9d909f
--- /dev/null
+++ b/assets/javascripts/lunr/min/lunr.hu.min.js
@@ -0,0 +1,18 @@
+/*!
+ * Lunr languages, `Hungarian` language
+ * https://github.com/MihaiValentin/lunr-languages
+ *
+ * Copyright 2014, Mihai Valentin
+ * http://www.mozilla.org/MPL/
+ */
+/*!
+ * based on
+ * Snowball JavaScript Library v0.3
+ * http://code.google.com/p/urim/
+ * http://snowball.tartarus.org/
+ *
+ * Copyright 2010, Oleg Mazko
+ * http://www.mozilla.org/MPL/
+ */
+
+!function(e,n){"function"==typeof define&&define.amd?define(n):"object"==typeof exports?module.exports=n():n()(e.lunr)}(this,function(){return function(e){if(void 0===e)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===e.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");e.hu=function(){this.pipeline.reset(),this.pipeline.add(e.hu.trimmer,e.hu.stopWord [...]
\ No newline at end of file
diff --git a/assets/javascripts/lunr/min/lunr.hy.min.js b/assets/javascripts/lunr/min/lunr.hy.min.js
new file mode 100644
index 00000000..b37f7929
--- /dev/null
+++ b/assets/javascripts/lunr/min/lunr.hy.min.js
@@ -0,0 +1 @@
+!function(e,r){"function"==typeof define&&define.amd?define(r):"object"==typeof exports?module.exports=r():r()(e.lunr)}(this,function(){return function(e){if(void 0===e)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===e.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");e.hy=function(){this.pipeline.reset(),this.pipeline.add(e.hy.trimmer,e.hy.stopWord [...]
\ No newline at end of file
diff --git a/assets/javascripts/lunr/min/lunr.it.min.js b/assets/javascripts/lunr/min/lunr.it.min.js
new file mode 100644
index 00000000..344b6a3c
--- /dev/null
+++ b/assets/javascripts/lunr/min/lunr.it.min.js
@@ -0,0 +1,18 @@
+/*!
+ * Lunr languages, `Italian` language
+ * https://github.com/MihaiValentin/lunr-languages
+ *
+ * Copyright 2014, Mihai Valentin
+ * http://www.mozilla.org/MPL/
+ */
+/*!
+ * based on
+ * Snowball JavaScript Library v0.3
+ * http://code.google.com/p/urim/
+ * http://snowball.tartarus.org/
+ *
+ * Copyright 2010, Oleg Mazko
+ * http://www.mozilla.org/MPL/
+ */
+
+!function(e,r){"function"==typeof define&&define.amd?define(r):"object"==typeof exports?module.exports=r():r()(e.lunr)}(this,function(){return function(e){if(void 0===e)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===e.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");e.it=function(){this.pipeline.reset(),this.pipeline.add(e.it.trimmer,e.it.stopWord [...]
\ No newline at end of file
diff --git a/assets/javascripts/lunr/min/lunr.ja.min.js b/assets/javascripts/lunr/min/lunr.ja.min.js
new file mode 100644
index 00000000..5f254ebe
--- /dev/null
+++ b/assets/javascripts/lunr/min/lunr.ja.min.js
@@ -0,0 +1 @@
+!function(e,r){"function"==typeof define&&define.amd?define(r):"object"==typeof exports?module.exports=r():r()(e.lunr)}(this,function(){return function(e){if(void 0===e)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===e.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");var r="2"==e.version[0];e.ja=function(){this.pipeline.reset(),this.pipeline.add(e. [...]
\ No newline at end of file
diff --git a/assets/javascripts/lunr/min/lunr.jp.min.js b/assets/javascripts/lunr/min/lunr.jp.min.js
new file mode 100644
index 00000000..c055ebaf
--- /dev/null
+++ b/assets/javascripts/lunr/min/lunr.jp.min.js
@@ -0,0 +1 @@
+module.exports=require("./lunr.ja");
\ No newline at end of file
diff --git a/assets/javascripts/lunr/min/lunr.kn.min.js b/assets/javascripts/lunr/min/lunr.kn.min.js
new file mode 100644
index 00000000..1cef9bef
--- /dev/null
+++ b/assets/javascripts/lunr/min/lunr.kn.min.js
@@ -0,0 +1 @@
+!function(e,r){"function"==typeof define&&define.amd?define(r):"object"==typeof exports?module.exports=r():r()(e.lunr)}(this,function(){return function(e){if(void 0===e)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===e.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");e.kn=function(){this.pipeline.reset(),this.pipeline.add(e.kn.trimmer,e.kn.stopWord [...]
\ No newline at end of file
diff --git a/assets/javascripts/lunr/min/lunr.ko.min.js b/assets/javascripts/lunr/min/lunr.ko.min.js
new file mode 100644
index 00000000..eaf9dabf
--- /dev/null
+++ b/assets/javascripts/lunr/min/lunr.ko.min.js
@@ -0,0 +1 @@
+!function(e,r){"function"==typeof define&&define.amd?define(r):"object"==typeof exports?module.exports=r():r()(e.lunr)}(this,function(){return function(e){if(void 0===e)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===e.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");e.ko=function(){this.pipeline.reset(),this.pipeline.add(e.ko.trimmer,e.ko.stopWord [...]
\ No newline at end of file
diff --git a/assets/javascripts/lunr/min/lunr.multi.min.js b/assets/javascripts/lunr/min/lunr.multi.min.js
new file mode 100644
index 00000000..7debad09
--- /dev/null
+++ b/assets/javascripts/lunr/min/lunr.multi.min.js
@@ -0,0 +1 @@
+!function(e,t){"function"==typeof define&&define.amd?define(t):"object"==typeof exports?module.exports=t():t()(e.lunr)}(this,function(){return function(e){e.multiLanguage=function(){for(var t=Array.prototype.slice.call(arguments),i=t.join("-"),r="",n=[],s=[],p=0;p<t.length;++p)"en"==t[p]?(r+="\\w",n.unshift(e.stopWordFilter),n.push(e.stemmer),s.push(e.stemmer)):(r+=e[t[p]].wordCharacters,e[t[p]].stopWordFilter&&n.unshift(e[t[p]].stopWordFilter),e[t[p]].stemmer&&(n.push(e[t[p]].stemmer),s [...]
\ No newline at end of file
diff --git a/assets/javascripts/lunr/min/lunr.nl.min.js b/assets/javascripts/lunr/min/lunr.nl.min.js
new file mode 100644
index 00000000..c4a25359
--- /dev/null
+++ b/assets/javascripts/lunr/min/lunr.nl.min.js
@@ -0,0 +1,18 @@
+/*!
+ * Lunr languages, `Dutch` language
+ * https://github.com/MihaiValentin/lunr-languages
+ *
+ * Copyright 2014, Mihai Valentin
+ * http://www.mozilla.org/MPL/
+ */
+/*!
+ * based on
+ * Snowball JavaScript Library v0.3
+ * http://code.google.com/p/urim/
+ * http://snowball.tartarus.org/
+ *
+ * Copyright 2010, Oleg Mazko
+ * http://www.mozilla.org/MPL/
+ */
+
+!function(r,e){"function"==typeof define&&define.amd?define(e):"object"==typeof exports?module.exports=e():e()(r.lunr)}(this,function(){return function(r){if(void 0===r)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===r.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");r.nl=function(){this.pipeline.reset(),this.pipeline.add(r.nl.trimmer,r.nl.stopWord [...]
\ No newline at end of file
diff --git a/assets/javascripts/lunr/min/lunr.no.min.js b/assets/javascripts/lunr/min/lunr.no.min.js
new file mode 100644
index 00000000..92bc7e4e
--- /dev/null
+++ b/assets/javascripts/lunr/min/lunr.no.min.js
@@ -0,0 +1,18 @@
+/*!
+ * Lunr languages, `Norwegian` language
+ * https://github.com/MihaiValentin/lunr-languages
+ *
+ * Copyright 2014, Mihai Valentin
+ * http://www.mozilla.org/MPL/
+ */
+/*!
+ * based on
+ * Snowball JavaScript Library v0.3
+ * http://code.google.com/p/urim/
+ * http://snowball.tartarus.org/
+ *
+ * Copyright 2010, Oleg Mazko
+ * http://www.mozilla.org/MPL/
+ */
+
+!function(e,r){"function"==typeof define&&define.amd?define(r):"object"==typeof exports?module.exports=r():r()(e.lunr)}(this,function(){return function(e){if(void 0===e)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===e.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");e.no=function(){this.pipeline.reset(),this.pipeline.add(e.no.trimmer,e.no.stopWord [...]
\ No newline at end of file
diff --git a/assets/javascripts/lunr/min/lunr.pt.min.js b/assets/javascripts/lunr/min/lunr.pt.min.js
new file mode 100644
index 00000000..6c16996d
--- /dev/null
+++ b/assets/javascripts/lunr/min/lunr.pt.min.js
@@ -0,0 +1,18 @@
+/*!
+ * Lunr languages, `Portuguese` language
+ * https://github.com/MihaiValentin/lunr-languages
+ *
+ * Copyright 2014, Mihai Valentin
+ * http://www.mozilla.org/MPL/
+ */
+/*!
+ * based on
+ * Snowball JavaScript Library v0.3
+ * http://code.google.com/p/urim/
+ * http://snowball.tartarus.org/
+ *
+ * Copyright 2010, Oleg Mazko
+ * http://www.mozilla.org/MPL/
+ */
+
+!function(e,r){"function"==typeof define&&define.amd?define(r):"object"==typeof exports?module.exports=r():r()(e.lunr)}(this,function(){return function(e){if(void 0===e)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===e.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");e.pt=function(){this.pipeline.reset(),this.pipeline.add(e.pt.trimmer,e.pt.stopWord [...]
\ No newline at end of file
diff --git a/assets/javascripts/lunr/min/lunr.ro.min.js b/assets/javascripts/lunr/min/lunr.ro.min.js
new file mode 100644
index 00000000..72771401
--- /dev/null
+++ b/assets/javascripts/lunr/min/lunr.ro.min.js
@@ -0,0 +1,18 @@
+/*!
+ * Lunr languages, `Romanian` language
+ * https://github.com/MihaiValentin/lunr-languages
+ *
+ * Copyright 2014, Mihai Valentin
+ * http://www.mozilla.org/MPL/
+ */
+/*!
+ * based on
+ * Snowball JavaScript Library v0.3
+ * http://code.google.com/p/urim/
+ * http://snowball.tartarus.org/
+ *
+ * Copyright 2010, Oleg Mazko
+ * http://www.mozilla.org/MPL/
+ */
+
+!function(e,i){"function"==typeof define&&define.amd?define(i):"object"==typeof exports?module.exports=i():i()(e.lunr)}(this,function(){return function(e){if(void 0===e)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===e.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");e.ro=function(){this.pipeline.reset(),this.pipeline.add(e.ro.trimmer,e.ro.stopWord [...]
\ No newline at end of file
diff --git a/assets/javascripts/lunr/min/lunr.ru.min.js b/assets/javascripts/lunr/min/lunr.ru.min.js
new file mode 100644
index 00000000..186cc485
--- /dev/null
+++ b/assets/javascripts/lunr/min/lunr.ru.min.js
@@ -0,0 +1,18 @@
+/*!
+ * Lunr languages, `Russian` language
+ * https://github.com/MihaiValentin/lunr-languages
+ *
+ * Copyright 2014, Mihai Valentin
+ * http://www.mozilla.org/MPL/
+ */
+/*!
+ * based on
+ * Snowball JavaScript Library v0.3
+ * http://code.google.com/p/urim/
+ * http://snowball.tartarus.org/
+ *
+ * Copyright 2010, Oleg Mazko
+ * http://www.mozilla.org/MPL/
+ */
+
+!function(e,n){"function"==typeof define&&define.amd?define(n):"object"==typeof exports?module.exports=n():n()(e.lunr)}(this,function(){return function(e){if(void 0===e)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===e.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");e.ru=function(){this.pipeline.reset(),this.pipeline.add(e.ru.trimmer,e.ru.stopWord [...]
\ No newline at end of file
diff --git a/assets/javascripts/lunr/min/lunr.sa.min.js b/assets/javascripts/lunr/min/lunr.sa.min.js
new file mode 100644
index 00000000..50ee5642
--- /dev/null
+++ b/assets/javascripts/lunr/min/lunr.sa.min.js
@@ -0,0 +1 @@
+!function(e,r){"function"==typeof define&&define.amd?define(r):"object"==typeof exports?module.exports=r():r()(e.lunr)}(this,function(){return function(e){if(void 0===e)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===e.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");e.sa=function(){this.pipeline.reset(),this.pipeline.add(e.sa.trimmer,e.sa.stopWord [...]
\ No newline at end of file
diff --git a/assets/javascripts/lunr/min/lunr.stemmer.support.min.js b/assets/javascripts/lunr/min/lunr.stemmer.support.min.js
new file mode 100644
index 00000000..abd4475b
--- /dev/null
+++ b/assets/javascripts/lunr/min/lunr.stemmer.support.min.js
@@ -0,0 +1 @@
+!function(r,t){"function"==typeof define&&define.amd?define(t):"object"==typeof exports?module.exports=t():t()(r.lunr)}(this,function(){return function(r){r.stemmerSupport={Among:function(r,t,i,s){if(this.toCharArray=function(r){for(var t=r.length,i=new Array(t),s=0;s<t;s++)i[s]=r.charCodeAt(s);return i},!r&&""!=r||!t&&0!=t||!i)throw"Bad Among initialisation: s:"+r+", substring_i: "+t+", result: "+i;this.s_size=r.length,this.s=this.toCharArray(r),this.substring_i=t,this.result=i,this.met [...]
\ No newline at end of file
diff --git a/assets/javascripts/lunr/min/lunr.sv.min.js b/assets/javascripts/lunr/min/lunr.sv.min.js
new file mode 100644
index 00000000..3e5eb640
--- /dev/null
+++ b/assets/javascripts/lunr/min/lunr.sv.min.js
@@ -0,0 +1,18 @@
+/*!
+ * Lunr languages, `Swedish` language
+ * https://github.com/MihaiValentin/lunr-languages
+ *
+ * Copyright 2014, Mihai Valentin
+ * http://www.mozilla.org/MPL/
+ */
+/*!
+ * based on
+ * Snowball JavaScript Library v0.3
+ * http://code.google.com/p/urim/
+ * http://snowball.tartarus.org/
+ *
+ * Copyright 2010, Oleg Mazko
+ * http://www.mozilla.org/MPL/
+ */
+
+!function(e,r){"function"==typeof define&&define.amd?define(r):"object"==typeof exports?module.exports=r():r()(e.lunr)}(this,function(){return function(e){if(void 0===e)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===e.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");e.sv=function(){this.pipeline.reset(),this.pipeline.add(e.sv.trimmer,e.sv.stopWord [...]
\ No newline at end of file
diff --git a/assets/javascripts/lunr/min/lunr.ta.min.js b/assets/javascripts/lunr/min/lunr.ta.min.js
new file mode 100644
index 00000000..a644bed2
--- /dev/null
+++ b/assets/javascripts/lunr/min/lunr.ta.min.js
@@ -0,0 +1 @@
+!function(e,t){"function"==typeof define&&define.amd?define(t):"object"==typeof exports?module.exports=t():t()(e.lunr)}(this,function(){return function(e){if(void 0===e)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===e.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");e.ta=function(){this.pipeline.reset(),this.pipeline.add(e.ta.trimmer,e.ta.stopWord [...]
\ No newline at end of file
diff --git a/assets/javascripts/lunr/min/lunr.te.min.js b/assets/javascripts/lunr/min/lunr.te.min.js
new file mode 100644
index 00000000..9fa7a93b
--- /dev/null
+++ b/assets/javascripts/lunr/min/lunr.te.min.js
@@ -0,0 +1 @@
+!function(e,t){"function"==typeof define&&define.amd?define(t):"object"==typeof exports?module.exports=t():t()(e.lunr)}(this,function(){return function(e){if(void 0===e)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===e.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");e.te=function(){this.pipeline.reset(),this.pipeline.add(e.te.trimmer,e.te.stopWord [...]
\ No newline at end of file
diff --git a/assets/javascripts/lunr/min/lunr.th.min.js b/assets/javascripts/lunr/min/lunr.th.min.js
new file mode 100644
index 00000000..dee3aac6
--- /dev/null
+++ b/assets/javascripts/lunr/min/lunr.th.min.js
@@ -0,0 +1 @@
+!function(e,r){"function"==typeof define&&define.amd?define(r):"object"==typeof exports?module.exports=r():r()(e.lunr)}(this,function(){return function(e){if(void 0===e)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===e.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");var r="2"==e.version[0];e.th=function(){this.pipeline.reset(),this.pipeline.add(e. [...]
\ No newline at end of file
diff --git a/assets/javascripts/lunr/min/lunr.tr.min.js b/assets/javascripts/lunr/min/lunr.tr.min.js
new file mode 100644
index 00000000..563f6ec1
--- /dev/null
+++ b/assets/javascripts/lunr/min/lunr.tr.min.js
@@ -0,0 +1,18 @@
+/*!
+ * Lunr languages, `Turkish` language
+ * https://github.com/MihaiValentin/lunr-languages
+ *
+ * Copyright 2014, Mihai Valentin
+ * http://www.mozilla.org/MPL/
+ */
+/*!
+ * based on
+ * Snowball JavaScript Library v0.3
+ * http://code.google.com/p/urim/
+ * http://snowball.tartarus.org/
+ *
+ * Copyright 2010, Oleg Mazko
+ * http://www.mozilla.org/MPL/
+ */
+
+!function(r,i){"function"==typeof define&&define.amd?define(i):"object"==typeof exports?module.exports=i():i()(r.lunr)}(this,function(){return function(r){if(void 0===r)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===r.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");r.tr=function(){this.pipeline.reset(),this.pipeline.add(r.tr.trimmer,r.tr.stopWord [...]
\ No newline at end of file
diff --git a/assets/javascripts/lunr/min/lunr.vi.min.js b/assets/javascripts/lunr/min/lunr.vi.min.js
new file mode 100644
index 00000000..22aed28c
--- /dev/null
+++ b/assets/javascripts/lunr/min/lunr.vi.min.js
@@ -0,0 +1 @@
+!function(e,r){"function"==typeof define&&define.amd?define(r):"object"==typeof exports?module.exports=r():r()(e.lunr)}(this,function(){return function(e){if(void 0===e)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===e.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");e.vi=function(){this.pipeline.reset(),this.pipeline.add(e.vi.stopWordFilter,e.vi.t [...]
\ No newline at end of file
diff --git a/assets/javascripts/lunr/min/lunr.zh.min.js b/assets/javascripts/lunr/min/lunr.zh.min.js
new file mode 100644
index 00000000..fda66e9c
--- /dev/null
+++ b/assets/javascripts/lunr/min/lunr.zh.min.js
@@ -0,0 +1 @@
+!function(e,r){"function"==typeof define&&define.amd?define(r):"object"==typeof exports?module.exports=r(require("@node-rs/jieba")):r()(e.lunr)}(this,function(e){return function(r,t){if(void 0===r)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===r.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");var i="2"==r.version[0];r.zh=function(){this.pipeline. [...]
\ No newline at end of file
diff --git a/assets/javascripts/lunr/tinyseg.js b/assets/javascripts/lunr/tinyseg.js
new file mode 100644
index 00000000..167fa6dd
--- /dev/null
+++ b/assets/javascripts/lunr/tinyseg.js
@@ -0,0 +1,206 @@
+/**
+ * export the module via AMD, CommonJS or as a browser global
+ * Export code from https://github.com/umdjs/umd/blob/master/returnExports.js
+ */
+;(function (root, factory) {
+ if (typeof define === 'function' && define.amd) {
+ // AMD. Register as an anonymous module.
+ define(factory)
+ } else if (typeof exports === 'object') {
+ /**
+ * Node. Does not work with strict CommonJS, but
+ * only CommonJS-like environments that support module.exports,
+ * like Node.
+ */
+ module.exports = factory()
+ } else {
+ // Browser globals (root is window)
+ factory()(root.lunr);
+ }
+}(this, function () {
+ /**
+ * Just return a value to define the module export.
+ * This example returns an object, but the module
+ * can return a function as the exported value.
+ */
+
+ return function(lunr) {
+ // TinySegmenter 0.1 -- Super compact Japanese tokenizer in Javascript
+ // (c) 2008 Taku Kudo <ta...@chasen.org>
+ // TinySegmenter is freely distributable under the terms of a new BSD licence.
+ // For details, see http://chasen.org/~taku/software/TinySegmenter/LICENCE.txt
+
+ function TinySegmenter() {
+ var patterns = {
+ "[一二三四五六七八九十百千万億兆]":"M",
+ "[一-龠々〆ヵヶ]":"H",
+ "[ぁ-ん]":"I",
+ "[ァ-ヴーア-ン゙ー]":"K",
+ "[a-zA-Za-zA-Z]":"A",
+ "[0-90-9]":"N"
+ }
+ this.chartype_ = [];
+ for (var i in patterns) {
+ var regexp = new RegExp(i);
+ this.chartype_.push([regexp, patterns[i]]);
+ }
+
+ this.BIAS__ = -332
+ this.BC1__ = {"HH":6,"II":2461,"KH":406,"OH":-1378};
+ this.BC2__ = {"AA":-3267,"AI":2744,"AN":-878,"HH":-4070,"HM":-1711,"HN":4012,"HO":3761,"IA":1327,"IH":-1184,"II":-1332,"IK":1721,"IO":5492,"KI":3831,"KK":-8741,"MH":-3132,"MK":3334,"OO":-2920};
+ this.BC3__ = {"HH":996,"HI":626,"HK":-721,"HN":-1307,"HO":-836,"IH":-301,"KK":2762,"MK":1079,"MM":4034,"OA":-1652,"OH":266};
+ this.BP1__ = {"BB":295,"OB":304,"OO":-125,"UB":352};
+ this.BP2__ = {"BO":60,"OO":-1762};
+ this.BQ1__ = {"BHH":1150,"BHM":1521,"BII":-1158,"BIM":886,"BMH":1208,"BNH":449,"BOH":-91,"BOO":-2597,"OHI":451,"OIH":-296,"OKA":1851,"OKH":-1020,"OKK":904,"OOO":2965};
+ this.BQ2__ = {"BHH":118,"BHI":-1159,"BHM":466,"BIH":-919,"BKK":-1720,"BKO":864,"OHH":-1139,"OHM":-181,"OIH":153,"UHI":-1146};
+ this.BQ3__ = {"BHH":-792,"BHI":2664,"BII":-299,"BKI":419,"BMH":937,"BMM":8335,"BNN":998,"BOH":775,"OHH":2174,"OHM":439,"OII":280,"OKH":1798,"OKI":-793,"OKO":-2242,"OMH":-2402,"OOO":11699};
+ this.BQ4__ = {"BHH":-3895,"BIH":3761,"BII":-4654,"BIK":1348,"BKK":-1806,"BMI":-3385,"BOO":-12396,"OAH":926,"OHH":266,"OHK":-2036,"ONN":-973};
+ this.BW1__ = {",と":660,",同":727,"B1あ":1404,"B1同":542,"、と":660,"、同":727,"」と":1682,"あっ":1505,"いう":1743,"いっ":-2055,"いる":672,"うし":-4817,"うん":665,"から":3472,"がら":600,"こう":-790,"こと":2083,"こん":-1262,"さら":-4143,"さん":4573,"した":2641,"して":1104,"すで":-3399,"そこ":1977,"それ":-871,"たち":1122,"ため":601,"った":3463,"つい":-802,"てい":805,"てき":1249,"でき":1127,"です":3445,"では":844,"とい":-4915,"とみ":1922,"どこ":3887,"ない":5713,"なっ":3015,"など":7379,"なん":-1113,"にし":2468,"には":1498,"にも":1671,"に対":-912,"の一":-501,"の中":741," [...]
+ this.BW2__ = {"..":-11822,"11":-669,"――":-5730,"−−":-13175,"いう":-1609,"うか":2490,"かし":-1350,"かも":-602,"から":-7194,"かれ":4612,"がい":853,"がら":-3198,"きた":1941,"くな":-1597,"こと":-8392,"この":-4193,"させ":4533,"され":13168,"さん":-3977,"しい":-1819,"しか":-545,"した":5078,"して":972,"しな":939,"その":-3744,"たい":-1253,"たた":-662,"ただ":-3857,"たち":-786,"たと":1224,"たは":-939,"った":4589,"って":1647,"っと":-2094,"てい":6144,"てき":3640,"てく":2551,"ては":-3110,"ても":-3065,"でい":2666,"でき":-1528,"でし":-3828,"です":-4761,"でも":-4203,"とい":1 [...]
+ this.BW3__ = {"あた":-2194,"あり":719,"ある":3846,"い.":-1185,"い。":-1185,"いい":5308,"いえ":2079,"いく":3029,"いた":2056,"いっ":1883,"いる":5600,"いわ":1527,"うち":1117,"うと":4798,"えと":1454,"か.":2857,"か。":2857,"かけ":-743,"かっ":-4098,"かに":-669,"から":6520,"かり":-2670,"が,":1816,"が、":1816,"がき":-4855,"がけ":-1127,"がっ":-913,"がら":-4977,"がり":-2064,"きた":1645,"けど":1374,"こと":7397,"この":1542,"ころ":-2757,"さい":-714,"さを":976,"し,":1557,"し、":1557,"しい":-3714,"した":3562,"して":1449,"しな":2608,"しま":1200,"す.":-1310,"す。":-1310,"する":65 [...]
+ this.TC1__ = {"AAA":1093,"HHH":1029,"HHM":580,"HII":998,"HOH":-390,"HOM":-331,"IHI":1169,"IOH":-142,"IOI":-1015,"IOM":467,"MMH":187,"OOI":-1832};
+ this.TC2__ = {"HHO":2088,"HII":-1023,"HMM":-1154,"IHI":-1965,"KKH":703,"OII":-2649};
+ this.TC3__ = {"AAA":-294,"HHH":346,"HHI":-341,"HII":-1088,"HIK":731,"HOH":-1486,"IHH":128,"IHI":-3041,"IHO":-1935,"IIH":-825,"IIM":-1035,"IOI":-542,"KHH":-1216,"KKA":491,"KKH":-1217,"KOK":-1009,"MHH":-2694,"MHM":-457,"MHO":123,"MMH":-471,"NNH":-1689,"NNO":662,"OHO":-3393};
+ this.TC4__ = {"HHH":-203,"HHI":1344,"HHK":365,"HHM":-122,"HHN":182,"HHO":669,"HIH":804,"HII":679,"HOH":446,"IHH":695,"IHO":-2324,"IIH":321,"III":1497,"IIO":656,"IOO":54,"KAK":4845,"KKA":3386,"KKK":3065,"MHH":-405,"MHI":201,"MMH":-241,"MMM":661,"MOM":841};
+ this.TQ1__ = {"BHHH":-227,"BHHI":316,"BHIH":-132,"BIHH":60,"BIII":1595,"BNHH":-744,"BOHH":225,"BOOO":-908,"OAKK":482,"OHHH":281,"OHIH":249,"OIHI":200,"OIIH":-68};
+ this.TQ2__ = {"BIHH":-1401,"BIII":-1033,"BKAK":-543,"BOOO":-5591};
+ this.TQ3__ = {"BHHH":478,"BHHM":-1073,"BHIH":222,"BHII":-504,"BIIH":-116,"BIII":-105,"BMHI":-863,"BMHM":-464,"BOMH":620,"OHHH":346,"OHHI":1729,"OHII":997,"OHMH":481,"OIHH":623,"OIIH":1344,"OKAK":2792,"OKHH":587,"OKKA":679,"OOHH":110,"OOII":-685};
+ this.TQ4__ = {"BHHH":-721,"BHHM":-3604,"BHII":-966,"BIIH":-607,"BIII":-2181,"OAAA":-2763,"OAKK":180,"OHHH":-294,"OHHI":2446,"OHHO":480,"OHIH":-1573,"OIHH":1935,"OIHI":-493,"OIIH":626,"OIII":-4007,"OKAK":-8156};
+ this.TW1__ = {"につい":-4681,"東京都":2026};
+ this.TW2__ = {"ある程":-2049,"いった":-1256,"ころが":-2434,"しょう":3873,"その後":-4430,"だって":-1049,"ていた":1833,"として":-4657,"ともに":-4517,"もので":1882,"一気に":-792,"初めて":-1512,"同時に":-8097,"大きな":-1255,"対して":-2721,"社会党":-3216};
+ this.TW3__ = {"いただ":-1734,"してい":1314,"として":-4314,"につい":-5483,"にとっ":-5989,"に当た":-6247,"ので,":-727,"ので、":-727,"のもの":-600,"れから":-3752,"十二月":-2287};
+ this.TW4__ = {"いう.":8576,"いう。":8576,"からな":-2348,"してい":2958,"たが,":1516,"たが、":1516,"ている":1538,"という":1349,"ました":5543,"ません":1097,"ようと":-4258,"よると":5865};
+ this.UC1__ = {"A":484,"K":93,"M":645,"O":-505};
+ this.UC2__ = {"A":819,"H":1059,"I":409,"M":3987,"N":5775,"O":646};
+ this.UC3__ = {"A":-1370,"I":2311};
+ this.UC4__ = {"A":-2643,"H":1809,"I":-1032,"K":-3450,"M":3565,"N":3876,"O":6646};
+ this.UC5__ = {"H":313,"I":-1238,"K":-799,"M":539,"O":-831};
+ this.UC6__ = {"H":-506,"I":-253,"K":87,"M":247,"O":-387};
+ this.UP1__ = {"O":-214};
+ this.UP2__ = {"B":69,"O":935};
+ this.UP3__ = {"B":189};
+ this.UQ1__ = {"BH":21,"BI":-12,"BK":-99,"BN":142,"BO":-56,"OH":-95,"OI":477,"OK":410,"OO":-2422};
+ this.UQ2__ = {"BH":216,"BI":113,"OK":1759};
+ this.UQ3__ = {"BA":-479,"BH":42,"BI":1913,"BK":-7198,"BM":3160,"BN":6427,"BO":14761,"OI":-827,"ON":-3212};
+ this.UW1__ = {",":156,"、":156,"「":-463,"あ":-941,"う":-127,"が":-553,"き":121,"こ":505,"で":-201,"と":-547,"ど":-123,"に":-789,"の":-185,"は":-847,"も":-466,"や":-470,"よ":182,"ら":-292,"り":208,"れ":169,"を":-446,"ん":-137,"・":-135,"主":-402,"京":-268,"区":-912,"午":871,"国":-460,"大":561,"委":729,"市":-411,"日":-141,"理":361,"生":-408,"県":-386,"都":-718,"「":-463,"・":-135};
+ this.UW2__ = {",":-829,"、":-829,"〇":892,"「":-645,"」":3145,"あ":-538,"い":505,"う":134,"お":-502,"か":1454,"が":-856,"く":-412,"こ":1141,"さ":878,"ざ":540,"し":1529,"す":-675,"せ":300,"そ":-1011,"た":188,"だ":1837,"つ":-949,"て":-291,"で":-268,"と":-981,"ど":1273,"な":1063,"に":-1764,"の":130,"は":-409,"ひ":-1273,"べ":1261,"ま":600,"も":-1263,"や":-402,"よ":1639,"り":-579,"る":-694,"れ":571,"を":-2516,"ん":2095,"ア":-587,"カ":306,"キ":568,"ッ":831,"三":-758,"不":-2150,"世":-302,"中":-968,"主":-861,"事":492,"人":-123,"会":978, [...]
+ this.UW3__ = {",":4889,"1":-800,"−":-1723,"、":4889,"々":-2311,"〇":5827,"」":2670,"〓":-3573,"あ":-2696,"い":1006,"う":2342,"え":1983,"お":-4864,"か":-1163,"が":3271,"く":1004,"け":388,"げ":401,"こ":-3552,"ご":-3116,"さ":-1058,"し":-395,"す":584,"せ":3685,"そ":-5228,"た":842,"ち":-521,"っ":-1444,"つ":-1081,"て":6167,"で":2318,"と":1691,"ど":-899,"な":-2788,"に":2745,"の":4056,"は":4555,"ひ":-2171,"ふ":-1798,"へ":1199,"ほ":-5516,"ま":-4384,"み":-120,"め":1205,"も":2323,"や":-788,"よ":-202,"ら":727,"り":649,"る":5905,"れ":277 [...]
+ this.UW4__ = {",":3930,".":3508,"―":-4841,"、":3930,"。":3508,"〇":4999,"「":1895,"」":3798,"〓":-5156,"あ":4752,"い":-3435,"う":-640,"え":-2514,"お":2405,"か":530,"が":6006,"き":-4482,"ぎ":-3821,"く":-3788,"け":-4376,"げ":-4734,"こ":2255,"ご":1979,"さ":2864,"し":-843,"じ":-2506,"す":-731,"ず":1251,"せ":181,"そ":4091,"た":5034,"だ":5408,"ち":-3654,"っ":-5882,"つ":-1659,"て":3994,"で":7410,"と":4547,"な":5433,"に":6499,"ぬ":1853,"ね":1413,"の":7396,"は":8578,"ば":1940,"ひ":4249,"び":-4134,"ふ":1345,"へ":6665,"べ":-744,"ほ":14 [...]
+ this.UW5__ = {",":465,".":-299,"1":-514,"E2":-32768,"]":-2762,"、":465,"。":-299,"「":363,"あ":1655,"い":331,"う":-503,"え":1199,"お":527,"か":647,"が":-421,"き":1624,"ぎ":1971,"く":312,"げ":-983,"さ":-1537,"し":-1371,"す":-852,"だ":-1186,"ち":1093,"っ":52,"つ":921,"て":-18,"で":-850,"と":-127,"ど":1682,"な":-787,"に":-1224,"の":-635,"は":-578,"べ":1001,"み":502,"め":865,"ゃ":3350,"ょ":854,"り":-208,"る":429,"れ":504,"わ":419,"を":-1264,"ん":327,"イ":241,"ル":451,"ン":-343,"中":-871,"京":722,"会":-1153,"党":-654,"務":3519,"区 [...]
+ this.UW6__ = {",":227,".":808,"1":-270,"E1":306,"、":227,"。":808,"あ":-307,"う":189,"か":241,"が":-73,"く":-121,"こ":-200,"じ":1782,"す":383,"た":-428,"っ":573,"て":-1014,"で":101,"と":-105,"な":-253,"に":-149,"の":-417,"は":-236,"も":-206,"り":187,"る":-135,"を":195,"ル":-673,"ン":-496,"一":-277,"中":201,"件":-800,"会":624,"前":302,"区":1792,"員":-1212,"委":798,"学":-960,"市":887,"広":-695,"後":535,"業":-697,"相":753,"社":-507,"福":974,"空":-822,"者":1811,"連":463,"郎":1082,"1":-270,"E1":306,"ル":-673,"ン":-496};
+
+ return this;
+ }
+ TinySegmenter.prototype.ctype_ = function(str) {
+ for (var i in this.chartype_) {
+ if (str.match(this.chartype_[i][0])) {
+ return this.chartype_[i][1];
+ }
+ }
+ return "O";
+ }
+
+ TinySegmenter.prototype.ts_ = function(v) {
+ if (v) { return v; }
+ return 0;
+ }
+
+ TinySegmenter.prototype.segment = function(input) {
+ if (input == null || input == undefined || input == "") {
+ return [];
+ }
+ var result = [];
+ var seg = ["B3","B2","B1"];
+ var ctype = ["O","O","O"];
+ var o = input.split("");
+ for (i = 0; i < o.length; ++i) {
+ seg.push(o[i]);
+ ctype.push(this.ctype_(o[i]))
+ }
+ seg.push("E1");
+ seg.push("E2");
+ seg.push("E3");
+ ctype.push("O");
+ ctype.push("O");
+ ctype.push("O");
+ var word = seg[3];
+ var p1 = "U";
+ var p2 = "U";
+ var p3 = "U";
+ for (var i = 4; i < seg.length - 3; ++i) {
+ var score = this.BIAS__;
+ var w1 = seg[i-3];
+ var w2 = seg[i-2];
+ var w3 = seg[i-1];
+ var w4 = seg[i];
+ var w5 = seg[i+1];
+ var w6 = seg[i+2];
+ var c1 = ctype[i-3];
+ var c2 = ctype[i-2];
+ var c3 = ctype[i-1];
+ var c4 = ctype[i];
+ var c5 = ctype[i+1];
+ var c6 = ctype[i+2];
+ score += this.ts_(this.UP1__[p1]);
+ score += this.ts_(this.UP2__[p2]);
+ score += this.ts_(this.UP3__[p3]);
+ score += this.ts_(this.BP1__[p1 + p2]);
+ score += this.ts_(this.BP2__[p2 + p3]);
+ score += this.ts_(this.UW1__[w1]);
+ score += this.ts_(this.UW2__[w2]);
+ score += this.ts_(this.UW3__[w3]);
+ score += this.ts_(this.UW4__[w4]);
+ score += this.ts_(this.UW5__[w5]);
+ score += this.ts_(this.UW6__[w6]);
+ score += this.ts_(this.BW1__[w2 + w3]);
+ score += this.ts_(this.BW2__[w3 + w4]);
+ score += this.ts_(this.BW3__[w4 + w5]);
+ score += this.ts_(this.TW1__[w1 + w2 + w3]);
+ score += this.ts_(this.TW2__[w2 + w3 + w4]);
+ score += this.ts_(this.TW3__[w3 + w4 + w5]);
+ score += this.ts_(this.TW4__[w4 + w5 + w6]);
+ score += this.ts_(this.UC1__[c1]);
+ score += this.ts_(this.UC2__[c2]);
+ score += this.ts_(this.UC3__[c3]);
+ score += this.ts_(this.UC4__[c4]);
+ score += this.ts_(this.UC5__[c5]);
+ score += this.ts_(this.UC6__[c6]);
+ score += this.ts_(this.BC1__[c2 + c3]);
+ score += this.ts_(this.BC2__[c3 + c4]);
+ score += this.ts_(this.BC3__[c4 + c5]);
+ score += this.ts_(this.TC1__[c1 + c2 + c3]);
+ score += this.ts_(this.TC2__[c2 + c3 + c4]);
+ score += this.ts_(this.TC3__[c3 + c4 + c5]);
+ score += this.ts_(this.TC4__[c4 + c5 + c6]);
+ // score += this.ts_(this.TC5__[c4 + c5 + c6]);
+ score += this.ts_(this.UQ1__[p1 + c1]);
+ score += this.ts_(this.UQ2__[p2 + c2]);
+ score += this.ts_(this.UQ3__[p3 + c3]);
+ score += this.ts_(this.BQ1__[p2 + c2 + c3]);
+ score += this.ts_(this.BQ2__[p2 + c3 + c4]);
+ score += this.ts_(this.BQ3__[p3 + c2 + c3]);
+ score += this.ts_(this.BQ4__[p3 + c3 + c4]);
+ score += this.ts_(this.TQ1__[p2 + c1 + c2 + c3]);
+ score += this.ts_(this.TQ2__[p2 + c2 + c3 + c4]);
+ score += this.ts_(this.TQ3__[p3 + c1 + c2 + c3]);
+ score += this.ts_(this.TQ4__[p3 + c2 + c3 + c4]);
+ var p = "O";
+ if (score > 0) {
+ result.push(word);
+ word = "";
+ p = "B";
+ }
+ p1 = p2;
+ p2 = p3;
+ p3 = p;
+ word += seg[i];
+ }
+ result.push(word);
+
+ return result;
+ }
+
+ lunr.TinySegmenter = TinySegmenter;
+ };
+
+}));
\ No newline at end of file
diff --git a/assets/javascripts/lunr/wordcut.js b/assets/javascripts/lunr/wordcut.js
new file mode 100644
index 00000000..0d898c9e
--- /dev/null
+++ b/assets/javascripts/lunr/wordcut.js
@@ -0,0 +1,6708 @@
+(function(f){if(typeof exports==="object"&&typeof module!=="undefined"){module.exports=f()}else if(typeof define==="function"&&define.amd){define([],f)}else{var g;if(typeof window!=="undefined"){g=window}else if(typeof global!=="undefined"){g=global}else if(typeof self!=="undefined"){g=self}else{g=this}(g.lunr || (g.lunr = {})).wordcut = f()}})(function(){var define,module,exports;return (function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(! [...]
+var _ = require("underscore");
+
+var Acceptors = {
+ creators: null,
+ current: null,
+ tag: null,
+
+ init: function() {
+ this.creators = [];
+ this.current = [];
+ this.tag = {};
+ },
+
+ reset: function() {
+ this.current = [];
+ this.tag = {}
+ },
+
+ transit: function(ch) {
+ var self = this;
+
+ self.creators.forEach(function(creator) {
+ var acceptor = creator.createAcceptor(self.tag);
+ if (acceptor)
+ self.current.push(acceptor);
+ });
+
+ var _current = [];
+ self.tag = {};
+
+ for (var i = 0; i < self.current.length; i++) {
+ var _acceptor = self.current[i]
+ , acceptor = _acceptor.transit(ch);
+
+ if (!acceptor.isError) {
+ _current.push(acceptor);
+ self.tag[acceptor.tag] = acceptor;
+ }
+ }
+ self.current = _current;
+
+ },
+
+ getFinalAcceptors: function() {
+ return this.current.filter(function(acceptor) {
+ return acceptor.isFinal;
+ });
+ }
+};
+
+module.exports = function() {
+ var acceptors = _.clone(Acceptors);
+ acceptors.init();
+ return acceptors;
+};
+
+},{"underscore":25}],2:[function(require,module,exports){
+(function (__dirname){
+
+var LEFT = 0;
+var RIGHT = 1;
+var path = require("path");
+var glob = require("glob");
+
+var WordcutDict = {
+
+
+ init: function (dictPathFile, withDefault, words) {
+ withDefault = withDefault || false
+ var defaultDict = path.normalize(__dirname + "/..") + "/data/tdict-*.txt";
+ this.dict=[]
+ var dictPathIsDefined = dictPathFile !== undefined
+ var dictPath = (withDefault || !dictPathIsDefined) ? [defaultDict]: [];
+ var dictPathFile = dictPathFile || defaultDict
+
+ if(dictPathIsDefined){
+ if (Array.isArray(dictPathFile)) {
+ dictPath.concat.apply(dictPath, dictPathFile);
+ } else {
+ dictPath.push(dictPathFile)
+ }
+ }
+
+ this.addFiles(dictPath, false)
+
+ if(words!==undefined){
+ this.addWords(words, false)
+ }
+ this.finalizeDict();
+ },
+
+ addWords: function(words, finalize){
+ finalize = finalize===undefined || finalize;
+ this.dict.push.apply(this.dict, words)
+ if(finalize){
+ this.finalizeDict();
+ }
+ },
+
+ finalizeDict: function(){
+ this.dict = this.sortuniq(this.dict);
+ },
+
+ addFiles: function(files, finalize){
+ finalize = finalize===undefined || finalize;
+
+ for (var i = 0; i < 1; i++) {
+ var words = "ก.ก.\nก.ก.น.\nก.ข.ค.\nก.ค.\nก.จ.\nก.ช.น.\nก.ฌ.\nก.ต.\nก.ต.ง.\nก.ต.ช.\nก.ตร.\nก.ท.\nก.น.ช.\nก.บช.\nก.บถ.\nก.ป.ส.\nก.พ.\nก.ม.\nก.ย.\nก.ร.\nก.ล.ต.\nก.ว.\nก.ศ.ว.\nก.ส.ท.\nก.ส.ธ.\nก.ส.อ.\nก.อ.\nกก.ตชด.\nกก.ตร.น.\nกก.ภ.จว.\nกก.รสช.\nกกบ.ขส.ทบ.\nกกล.รพน.\nกง.กห.\nกง.ทบ.\nกง.ทร.\nกซข.ป.\nกซม.ป.\nกทม.กรุงเทพมหานคร\nกบ.ทบ.\nกป.สป.\nกพ.ทบ.\nกพ.ทร.\nกพ.ทหาร\nกร.ทบ.\nกรป.กลาง\nกรอ.พอ.\nกศ.ด.\nกศ.บ.\nกศ.บป.\nกศ.ม.\nกษ.ด.\nกษ.บ.\nกษ.ม.\nกส.ด.\nกส.ทบ.\nกส.บ.\nกส.ม.\nกอ.ปค.\nกอ.รพน.\nก [...]
+ .split(/[\r\n]+/)
+ .filter(function (w) {
+ return w.length > 1;
+ })
+ this.addWords(words, false)
+ }
+ if(finalize){
+ this.finalizeDict();
+ }
+ },
+
+ dictSeek: function (l, r, ch, strOffset, pos) {
+ var ans = null;
+ while (l <= r) {
+ var m = Math.floor((l + r) / 2),
+ dict_item = this.dict[m],
+ len = dict_item.length;
+ if (len <= strOffset) {
+ l = m + 1;
+ } else {
+ var ch_ = dict_item[strOffset];
+ if (ch_ < ch) {
+ l = m + 1;
+ } else if (ch_ > ch) {
+ r = m - 1;
+ } else {
+ ans = m;
+ if (pos == LEFT) {
+ r = m - 1;
+ } else {
+ l = m + 1;
+ }
+ }
+ }
+ }
+ return ans;
+ },
+
+ isFinal: function (acceptor) {
+ return this.dict[acceptor.l].length == acceptor.strOffset;
+ },
+
+ createAcceptor: function () {
+ return {
+ l: 0,
+ r: this.dict.length - 1,
+ strOffset: 0,
+ isFinal: false,
+ dict: this,
+ transit: function (ch) {
+ return this.dict.transit(this, ch);
+ },
+ isError: false,
+ tag: "DICT",
+ w: 1,
+ type: "DICT"
+ };
+ },
+
+ transit: function (acceptor, ch) {
+ var l = this.dictSeek(acceptor.l,
+ acceptor.r,
+ ch,
+ acceptor.strOffset,
+ LEFT);
+ if (l !== null) {
+ var r = this.dictSeek(l,
+ acceptor.r,
+ ch,
+ acceptor.strOffset,
+ RIGHT);
+ acceptor.l = l;
+ acceptor.r = r;
+ acceptor.strOffset++;
+ acceptor.isFinal = this.isFinal(acceptor);
+ } else {
+ acceptor.isError = true;
+ }
+ return acceptor;
+ },
+
+ sortuniq: function(a){
+ return a.sort().filter(function(item, pos, arr){
+ return !pos || item != arr[pos - 1];
+ })
+ },
+
+ flatten: function(a){
+ //[[1,2],[3]] -> [1,2,3]
+ return [].concat.apply([], a);
+ }
+};
+module.exports = WordcutDict;
+
+}).call(this,"/dist/tmp")
+},{"glob":16,"path":22}],3:[function(require,module,exports){
+var WordRule = {
+ createAcceptor: function(tag) {
+ if (tag["WORD_RULE"])
+ return null;
+
+ return {strOffset: 0,
+ isFinal: false,
+ transit: function(ch) {
+ var lch = ch.toLowerCase();
+ if (lch >= "a" && lch <= "z") {
+ this.isFinal = true;
+ this.strOffset++;
+ } else {
+ this.isError = true;
+ }
+ return this;
+ },
+ isError: false,
+ tag: "WORD_RULE",
+ type: "WORD_RULE",
+ w: 1};
+ }
+};
+
+var NumberRule = {
+ createAcceptor: function(tag) {
+ if (tag["NUMBER_RULE"])
+ return null;
+
+ return {strOffset: 0,
+ isFinal: false,
+ transit: function(ch) {
+ if (ch >= "0" && ch <= "9") {
+ this.isFinal = true;
+ this.strOffset++;
+ } else {
+ this.isError = true;
+ }
+ return this;
+ },
+ isError: false,
+ tag: "NUMBER_RULE",
+ type: "NUMBER_RULE",
+ w: 1};
+ }
+};
+
+var SpaceRule = {
+ tag: "SPACE_RULE",
+ createAcceptor: function(tag) {
+
+ if (tag["SPACE_RULE"])
+ return null;
+
+ return {strOffset: 0,
+ isFinal: false,
+ transit: function(ch) {
... 256737 lines suppressed ...