52 Commits

Author SHA1 Message Date
R. Tyler Croy 49424e5897 chore: enable python tests to pass again
Signed-off-by: R. Tyler Croy <rtyler@brokenco.de>
2025-12-14 09:30:15 -08:00
Robert Pack 9b24a3d0b3 chore: more typos
Signed-off-by: Robert Pack <robstar.pack@gmail.com>
2025-05-25 21:50:06 +00:00
Ion Koutsouris 92e75bb217 refactor: move from pyarrow to arro3
Signed-off-by: Ion Koutsouris <15728914+ion-elgreco@users.noreply.github.com>
2025-05-24 19:55:57 +00:00
Ion Koutsouris 3c5a6bca41 refactor: improve typing, linting
Signed-off-by: Ion Koutsouris <15728914+ion-elgreco@users.noreply.github.com>
2025-03-23 02:20:58 +00:00
Ion Koutsouris 37a24aeada chore: remove unused catalog enum, classmethod
Signed-off-by: Ion Koutsouris <15728914+ion-elgreco@users.noreply.github.com>
2025-03-02 17:08:11 +00:00
Omkar P 2919ac1218 docs: add doc loading delta table from UC
Signed-off-by: Omkar P <45419097+omkar-foss@users.noreply.github.com>
2025-02-18 20:41:22 +00:00
Omkar P ceeffd867e feat(python): add DeltaTable.is_deltatable static method (#2662)
This adds a static method `is_deltatable(path, opts)` to the
`DeltaTable` Python class, which returns `True` if able to
locate a delta table at specified `path` and `False` otherwise.

It does so by reusing the Rust internal `is_delta_table_location()`
via the `DeltaTableBuilder`.

Additionally, this also adds documentation of the usage with
examples for the `DeltaTable.is_deltatable()` method.
2024-07-31 18:58:14 +00:00
Adrian Ehrsam c3d532bfbc feat: merge schema support for the write operation and Python (with Rust engine)
This replaces the old "overwrite_schema" parameter with a
schema_write_mode parameter that basically allows to distinguish between
overwrite/merge/none

Fixes #1386
2024-03-05 07:48:28 -08:00
Adrian Ehrsam 15538b9b42 fix: fix ruff and mypy version and do formatting (#2240)
# Description
As requested by @ion-elgreco in #2229 , we should fix the formatter
versions

# Related Issue(s)
<!---
For example:

- closes #106
--->

# Documentation

<!---
Share links to useful documentation
--->
2024-03-04 10:08:50 +00:00
Niko b1074077bb feat: implementation for replaceWhere (#1996)
# Description
First/naive implementation of `replaceWhere` for `write`. Code compiles
and there is a test to verify the outcome. I would appreciate any
feedback on improving the structure/implementation. For example, I
copied the part of code from `delete` operation because there is no way
to call that code in `delete` directly from `write` - should I look into
extracting that code from `delete` to somewhere central?

Seems to also works with partitions columns.

# Related Issue(s)
https://github.com/delta-io/delta-rs/issues/1957

# Documentation
Added a section in docs

---------

Signed-off-by: Nikolay Ulmasov <ulmasov@hotmail.com>
Co-authored-by: Ion Koutsouris <15728914+ion-elgreco@users.noreply.github.com>
2024-01-31 08:09:07 +00:00
Thomas Peiselt f7c303b742 chore: update documentation for S3 / DynamoDb log store configuration 2024-01-08 08:44:52 -08:00
Brayan Jules cffc4d76e4 docs: dynamodb lock configuration (#1752)
# Description
I have added documentation in the API and also on the Python usage page
regarding this configuration. Please let me know if it is satisfactory,
and if not, I am more than happy to address any issues or make any
necessary adjustments.

# Related Issue(s)
- closes #1674

# Documentation
2023-10-24 01:34:38 +00:00
Niko a67140c6b1 docs: convert docs to use mkdocs (#1731)
# Description
Completed the outstanding tasks in #1708

Also changed theme from readthedocs to mkdocs - both are built-in but
latter looks sleeker

# Related Issue(s)
closes #1708

---------

Co-authored-by: Robert Pack <42610831+roeap@users.noreply.github.com>
Co-authored-by: R. Tyler Croy <rtyler@brokenco.de>
2023-10-23 19:02:02 +00:00
Ion Koutsouris 3639ac7257 feat(python): expose UPDATE operation (#1694)
# Description

- Exposes UPDATE operation to Python.
- Added two test cases, with predicate and without
- Took some learnings in simplifying the code (will apply it in MERGE PR
as well)


# Related Issue(s)
<!---
For example:

- closes #106
--->

Closes #1505

---------

Co-authored-by: Will Jones <willjones127@gmail.com>
2023-10-11 04:09:15 +00:00
R. Tyler Croy 583ee120c8 Merge branch 'main' into gdy/python-document-delete-operation 2023-10-07 15:36:28 -07:00
R. Tyler Croy e8ae4937a6 Update the sphinx ignore for building
=_=
2023-10-07 12:40:49 -07:00
guilhem-dvr 808790d580 docs(python): document the delete operation 2023-10-05 11:58:46 +02:00
Ion Koutsouris b14d7b55f2 Add space 2023-09-26 20:14:51 +02:00
Ion Koutsouris c4c8cfd3f8 Update docs 2023-09-26 20:09:19 +02:00
Ion Koutsouris 72f8531c83 feat: expose min_commit_interval to optimize.compact and optimize.z_order (#1645)
# Description
Exposes min_commit_interval in the Python API to `optimize.compact` and
`optimize.z_order`. Added one test-case to verify the
min_commit_interval.

# Related Issue(s)
closes #1640

---------

Co-authored-by: Will Jones <willjones127@gmail.com>
2023-09-22 14:55:41 -07:00
lolee_k 2210c3b75b feat: add restore command in python binding (#1529)
# Description
This is a implementation of the Restore Command for python binding.

# Related Issue(s)
https://github.com/delta-io/delta-rs/issues/837

---------

Co-authored-by: Will Jones <willjones127@gmail.com>
2023-08-01 04:55:37 +00:00
Will Jones 5dc89b389d feat(python): expose z-order in Python (#1443)
# Description

Updated the API to:

```python
DeltaTable.optimize.compact()
DeltaTable.optimize.z_order()
```

The old API of `DeltaTable.optimize()` still works, but now issues a
deprecation warning.

# Related Issue(s)

- closes #1442


# Documentation

<!---
Share links to useful documentation
--->
2023-06-06 21:47:50 -07:00
nohajc 0b7cc0621b feat: added support for Databricks Unity Catalog (#1331) 2023-05-06 16:42:49 +02:00
loleek fdb5e7b8d2 feat: add optimize command in python binding (#1313)
# Description
This is a implementation of the Optimize Command for python binding.

# Related Issue(s)
https://github.com/delta-io/delta-rs/issues/622

---------

Co-authored-by: dengkai02 <dengkai02@appledeMacBook-Pro-3.local>
2023-05-04 16:32:52 -07:00
Ben 338208db1d fix: documentation typo fix (#1332)
# Description

Changes "partitionColumns" reference in documentation to corrected
"partition_columns"
2023-05-04 16:35:19 +00:00
Will Jones 88bdb55f42 docs(python): update docs (#1155)
# Description
The description of the main changes of your pull request

# Related Issue(s)

- closes #715
- closes #373


# Documentation

<!---
Share links to useful documentation
--->

---------

Co-authored-by: Robert Pack <42610831+roeap@users.noreply.github.com>
2023-03-03 21:49:48 +00:00
Marijn Valk bf0950a0d8 first setup of ruff for python linting (#1158)
# Description
This PR sets up ruff for python linting. It also enables isort from
within ruff and removes the standalone isort.

# Related Issue(s)
closes #1149

---------

Signed-off-by: Marijn Valk <marijncv@hotmail.com>
2023-02-22 17:09:36 +01:00
Marijn Valk fab36eb59e add function & test for parsing table_or_uri (#1138)
# Description
Adds a more specific ValueError if a wrong `table_or_uri` is provided in
the `write_delta_lake` function. It also adds support for a pathlib
`Path` object.

# Related Issue(s)
- closes #1123 

# Documentation

<!---
Share links to useful documentation
--->

---------

Signed-off-by: Marijn Valk <marijncv@hotmail.com>
2023-02-12 13:52:11 -08:00
Robert Pack 3c99d9750f feat: harmonize and simplify storage configuration (#1052)
# Description
Recently we moved some of our storage configuration via a property bag
upstream to the object_store crate. This allows us to simplify our
configuration handling here and make S3 configuration consistent with
azure and gcp.

I think as a follow up it would be great to migrate dynamodb_lock to
using the official SDKs as well, and then see what we still need form
the s3 storage options.

# Related Issue(s)

closes #999

# Documentation

<!---
Share links to useful documentation
--->

Co-authored-by: Will Jones <willjones127@gmail.com>
2023-01-11 14:54:09 -08:00
Will Jones cd15fe4b46 Add a few nice updates (#817) 2022-09-16 14:11:53 +01:00
Robert Pack 58c0d0fecd feat: integrate object_store for read/write with pyarrow (#799)
* feat: read/write with python object store wrapper

* chore: linting and types

* docs: wrapping filesystem in SubTreeFileSystem
2022-09-12 08:43:37 +02:00
Robert Pack 45a0404287 prepare python release (#795) 2022-09-06 17:51:44 +02:00
Robert Pack 729d18be46 chore: cleanup (#774) 2022-08-31 07:30:29 -07:00
Will Jones b885b7daa7 Implement Python Schema in Rust (#684)
* feat: start moving toward Rust implementation of Python Schema

* feat: implemention schema

* feat: Move implementation into schema.rs

* fix: get tests passing

* fix: cargo fmt

* fix: use default names so we can roundtrip maptype and listtype

* feat: complete docs for Schema

* fix: import literal from typing_extensions

* fix: add back original warnings

* fix: Add pyarrow type stubs
2022-08-10 01:23:57 -05:00
Florian Valeye 8b08634d71 Fix usage documentation in Python binding (#716) 2022-07-31 08:07:23 +02:00
Will Jones bbf4cc2b71 feat(python): validate schema in write_deltalake (#624)
* fix: Enforce schema must equal existing tables

* feat: Add overwrite_schema argument

* docs: mention overwrite_schema parameter
2022-06-06 07:10:32 -07:00
George Zubrienko f48489e88b Expose read and write options in public API (#581)
* Expose read and write options in public API

* Add test for reading

* Remove small date as there seems to be another issue with it

* Test writer options

* Make linter happy

* Add proper test with writer options and make mypy happy

* Remove unused imports from test_writer

* PR comments

* Lint

* Format using direct command

* Apply suggestions from reviewers
2022-04-25 09:34:56 -07:00
Will Jones 346f51a277 [Python] Initial PyArrow writer (#566)
* Initial writer implementation

* Add basic partitioning support

* Update docs and link to other projects

* Add Pandas support

* Test writer stats and partitioning

* Test statistics

* Enforce protocol version

* Add experimental to docstring

* Need tying extensions for checking now

* Add nipick ignore for typing_extensions
2022-03-20 15:47:06 -07:00
dgcaron 6ea048077b Update ADLSGen2-HOWTO.md (#560)
* Update ADLSGen2-HOWTO.md

I had a hard time figuring out how to connect to a delta table that is stored in ADLS Gen2 and only found a way by digging into the source code. I would like to save other people the same trouble by adding this to the docs.

* altered prefix for azure
2022-03-07 10:57:51 -08:00
Florian Valeye 7332acd2ea Add storage options for backends (#544)
* Bump version of maturin to 0.12.6

* Add storage options for backends in the Python binding
2022-01-23 20:39:00 -08:00
Will Jones 25ef5d91e6 Refresh Python usage documentation (#539)
* Refresh Python usage documentation

 * Reflowed the usage documentation to start with loading, then look at
   log introspection, and finally querying tables.
 * Added info about supported backends and data catalogs.
 * Added more examples and guidance on how to query Delta tables.

* Finish drafting docs

* Clarify history and version retention

* Don't link to dask

* mention how to auth to Glue
2022-01-10 09:01:55 +04:00
roeap 7fb8289be5 materialize tables in pyhton via native storage backend (#463) 2021-10-21 08:05:44 -07:00
Florian Valeye 5b154fabc6 Add history command in delta-rs (#428)
* Add history command in delta-rs
2021-09-20 11:16:19 -07:00
fvaleye e107122e16 Add the Glue Data Catalog for reading the DeltaTable (#419) 2021-09-01 22:30:14 -07:00
fvaleye 385fb64151 Add filesystem argument for reading DeltaTable in Python binding (#414)
* Add filesystem argument for reading DeltaTable in Python binding
2021-08-28 07:58:13 -07:00
QP Hou 7a58c85ee4 update python related docs (#331)
* only release new doc after successful pypi release
* document steps for creating new python release
* update docs to reference the new `to_pandas` method
2021-07-20 09:59:26 +02:00
QP Hou 0afed35fd8 fix python docs build (#297)
also extend typechecks to python tests
2021-06-24 09:04:07 +03:00
fvaleye 0c3853ea13 Improve dev experience with Python binding (#263)
* Add get_file_paths_by_partitions in Python bindings

* Add makefile, mypy, isort
2021-05-24 10:51:57 -07:00
fvaleye a3b27b3893 Release Python bindings 0.4.8 (#241) 2021-05-10 09:28:55 +02:00
fvaleye e48399dbad Add createdTime in Metadata (#200) 2021-04-16 22:24:21 +02:00