floe-python 0.6.4__tar.gz → 0.6.5__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {floe_python-0.6.4 → floe_python-0.6.5}/Cargo.lock +3 -3
- {floe_python-0.6.4 → floe_python-0.6.5}/PKG-INFO +1 -1
- {floe_python-0.6.4 → floe_python-0.6.5}/crates/floe-core/Cargo.toml +1 -1
- {floe_python-0.6.4 → floe_python-0.6.5}/crates/floe-core/src/io/write/iceberg/glue.rs +46 -3
- {floe_python-0.6.4 → floe_python-0.6.5}/crates/floe-core/src/io/write/iceberg.rs +1 -0
- {floe_python-0.6.4 → floe_python-0.6.5}/crates/floe-python/Cargo.toml +2 -2
- {floe_python-0.6.4 → floe_python-0.6.5}/crates/floe-python/pyproject.duckdb.toml +2 -2
- {floe_python-0.6.4 → floe_python-0.6.5}/pyproject.toml +1 -1
- {floe_python-0.6.4 → floe_python-0.6.5}/Cargo.toml +0 -0
- {floe_python-0.6.4 → floe_python-0.6.5}/README.md +0 -0
- {floe_python-0.6.4 → floe_python-0.6.5}/crates/floe-core/README.md +0 -0
- {floe_python-0.6.4 → floe_python-0.6.5}/crates/floe-core/src/add_entity.rs +0 -0
- {floe_python-0.6.4 → floe_python-0.6.5}/crates/floe-core/src/checks/cast.rs +0 -0
- {floe_python-0.6.4 → floe_python-0.6.5}/crates/floe-core/src/checks/mismatch.rs +0 -0
- {floe_python-0.6.4 → floe_python-0.6.5}/crates/floe-core/src/checks/mod.rs +0 -0
- {floe_python-0.6.4 → floe_python-0.6.5}/crates/floe-core/src/checks/normalize.rs +0 -0
- {floe_python-0.6.4 → floe_python-0.6.5}/crates/floe-core/src/checks/not_null.rs +0 -0
- {floe_python-0.6.4 → floe_python-0.6.5}/crates/floe-core/src/checks/unique.rs +0 -0
- {floe_python-0.6.4 → floe_python-0.6.5}/crates/floe-core/src/config/catalog.rs +0 -0
- {floe_python-0.6.4 → floe_python-0.6.5}/crates/floe-core/src/config/location.rs +0 -0
- {floe_python-0.6.4 → floe_python-0.6.5}/crates/floe-core/src/config/mod.rs +0 -0
- {floe_python-0.6.4 → floe_python-0.6.5}/crates/floe-core/src/config/parse.rs +0 -0
- {floe_python-0.6.4 → floe_python-0.6.5}/crates/floe-core/src/config/storage.rs +0 -0
- {floe_python-0.6.4 → floe_python-0.6.5}/crates/floe-core/src/config/template.rs +0 -0
- {floe_python-0.6.4 → floe_python-0.6.5}/crates/floe-core/src/config/types.rs +0 -0
- {floe_python-0.6.4 → floe_python-0.6.5}/crates/floe-core/src/config/validate.rs +0 -0
- {floe_python-0.6.4 → floe_python-0.6.5}/crates/floe-core/src/config/yaml_decode.rs +0 -0
- {floe_python-0.6.4 → floe_python-0.6.5}/crates/floe-core/src/errors.rs +0 -0
- {floe_python-0.6.4 → floe_python-0.6.5}/crates/floe-core/src/io/format.rs +0 -0
- {floe_python-0.6.4 → floe_python-0.6.5}/crates/floe-core/src/io/mod.rs +0 -0
- {floe_python-0.6.4 → floe_python-0.6.5}/crates/floe-core/src/io/read/avro.rs +0 -0
- {floe_python-0.6.4 → floe_python-0.6.5}/crates/floe-core/src/io/read/csv.rs +0 -0
- {floe_python-0.6.4 → floe_python-0.6.5}/crates/floe-core/src/io/read/fixed_width.rs +0 -0
- {floe_python-0.6.4 → floe_python-0.6.5}/crates/floe-core/src/io/read/json.rs +0 -0
- {floe_python-0.6.4 → floe_python-0.6.5}/crates/floe-core/src/io/read/json_selector.rs +0 -0
- {floe_python-0.6.4 → floe_python-0.6.5}/crates/floe-core/src/io/read/mod.rs +0 -0
- {floe_python-0.6.4 → floe_python-0.6.5}/crates/floe-core/src/io/read/orc.rs +0 -0
- {floe_python-0.6.4 → floe_python-0.6.5}/crates/floe-core/src/io/read/parquet.rs +0 -0
- {floe_python-0.6.4 → floe_python-0.6.5}/crates/floe-core/src/io/read/xlsx.rs +0 -0
- {floe_python-0.6.4 → floe_python-0.6.5}/crates/floe-core/src/io/read/xml.rs +0 -0
- {floe_python-0.6.4 → floe_python-0.6.5}/crates/floe-core/src/io/read/xml_selector.rs +0 -0
- {floe_python-0.6.4 → floe_python-0.6.5}/crates/floe-core/src/io/storage/core/extensions.rs +0 -0
- {floe_python-0.6.4 → floe_python-0.6.5}/crates/floe-core/src/io/storage/core/mod.rs +0 -0
- {floe_python-0.6.4 → floe_python-0.6.5}/crates/floe-core/src/io/storage/core/paths.rs +0 -0
- {floe_python-0.6.4 → floe_python-0.6.5}/crates/floe-core/src/io/storage/core/placement.rs +0 -0
- {floe_python-0.6.4 → floe_python-0.6.5}/crates/floe-core/src/io/storage/core/planner.rs +0 -0
- {floe_python-0.6.4 → floe_python-0.6.5}/crates/floe-core/src/io/storage/core/uri.rs +0 -0
- {floe_python-0.6.4 → floe_python-0.6.5}/crates/floe-core/src/io/storage/core/validation.rs +0 -0
- {floe_python-0.6.4 → floe_python-0.6.5}/crates/floe-core/src/io/storage/mod.rs +0 -0
- {floe_python-0.6.4 → floe_python-0.6.5}/crates/floe-core/src/io/storage/object_store.rs +0 -0
- {floe_python-0.6.4 → floe_python-0.6.5}/crates/floe-core/src/io/storage/ops/archive.rs +0 -0
- {floe_python-0.6.4 → floe_python-0.6.5}/crates/floe-core/src/io/storage/ops/inputs.rs +0 -0
- {floe_python-0.6.4 → floe_python-0.6.5}/crates/floe-core/src/io/storage/ops/mod.rs +0 -0
- {floe_python-0.6.4 → floe_python-0.6.5}/crates/floe-core/src/io/storage/ops/output.rs +0 -0
- {floe_python-0.6.4 → floe_python-0.6.5}/crates/floe-core/src/io/storage/providers/adls.rs +0 -0
- {floe_python-0.6.4 → floe_python-0.6.5}/crates/floe-core/src/io/storage/providers/gcs.rs +0 -0
- {floe_python-0.6.4 → floe_python-0.6.5}/crates/floe-core/src/io/storage/providers/local.rs +0 -0
- {floe_python-0.6.4 → floe_python-0.6.5}/crates/floe-core/src/io/storage/providers/mod.rs +0 -0
- {floe_python-0.6.4 → floe_python-0.6.5}/crates/floe-core/src/io/storage/providers/s3.rs +0 -0
- {floe_python-0.6.4 → floe_python-0.6.5}/crates/floe-core/src/io/storage/target.rs +0 -0
- {floe_python-0.6.4 → floe_python-0.6.5}/crates/floe-core/src/io/unique_seed/mod.rs +0 -0
- {floe_python-0.6.4 → floe_python-0.6.5}/crates/floe-core/src/io/write/accepted.rs +0 -0
- {floe_python-0.6.4 → floe_python-0.6.5}/crates/floe-core/src/io/write/arrow_convert.rs +0 -0
- {floe_python-0.6.4 → floe_python-0.6.5}/crates/floe-core/src/io/write/csv.rs +0 -0
- {floe_python-0.6.4 → floe_python-0.6.5}/crates/floe-core/src/io/write/delta/commit_metrics.rs +0 -0
- {floe_python-0.6.4 → floe_python-0.6.5}/crates/floe-core/src/io/write/delta/options.rs +0 -0
- {floe_python-0.6.4 → floe_python-0.6.5}/crates/floe-core/src/io/write/delta/record_batch.rs +0 -0
- {floe_python-0.6.4 → floe_python-0.6.5}/crates/floe-core/src/io/write/delta/unity.rs +0 -0
- {floe_python-0.6.4 → floe_python-0.6.5}/crates/floe-core/src/io/write/delta/unity_tests.rs +0 -0
- {floe_python-0.6.4 → floe_python-0.6.5}/crates/floe-core/src/io/write/delta.rs +0 -0
- {floe_python-0.6.4 → floe_python-0.6.5}/crates/floe-core/src/io/write/duckdb/conn.rs +0 -0
- {floe_python-0.6.4 → floe_python-0.6.5}/crates/floe-core/src/io/write/duckdb/merge.rs +0 -0
- {floe_python-0.6.4 → floe_python-0.6.5}/crates/floe-core/src/io/write/duckdb.rs +0 -0
- {floe_python-0.6.4 → floe_python-0.6.5}/crates/floe-core/src/io/write/iceberg/context.rs +0 -0
- {floe_python-0.6.4 → floe_python-0.6.5}/crates/floe-core/src/io/write/iceberg/data_files.rs +0 -0
- {floe_python-0.6.4 → floe_python-0.6.5}/crates/floe-core/src/io/write/iceberg/metadata.rs +0 -0
- {floe_python-0.6.4 → floe_python-0.6.5}/crates/floe-core/src/io/write/iceberg/rest.rs +0 -0
- {floe_python-0.6.4 → floe_python-0.6.5}/crates/floe-core/src/io/write/iceberg/schema.rs +0 -0
- {floe_python-0.6.4 → floe_python-0.6.5}/crates/floe-core/src/io/write/metrics.rs +0 -0
- {floe_python-0.6.4 → floe_python-0.6.5}/crates/floe-core/src/io/write/mod.rs +0 -0
- {floe_python-0.6.4 → floe_python-0.6.5}/crates/floe-core/src/io/write/parquet.rs +0 -0
- {floe_python-0.6.4 → floe_python-0.6.5}/crates/floe-core/src/io/write/parts.rs +0 -0
- {floe_python-0.6.4 → floe_python-0.6.5}/crates/floe-core/src/io/write/sink_format.rs +0 -0
- {floe_python-0.6.4 → floe_python-0.6.5}/crates/floe-core/src/io/write/strategy/append.rs +0 -0
- {floe_python-0.6.4 → floe_python-0.6.5}/crates/floe-core/src/io/write/strategy/merge/keys.rs +0 -0
- {floe_python-0.6.4 → floe_python-0.6.5}/crates/floe-core/src/io/write/strategy/merge/mod.rs +0 -0
- {floe_python-0.6.4 → floe_python-0.6.5}/crates/floe-core/src/io/write/strategy/merge/scd1.rs +0 -0
- {floe_python-0.6.4 → floe_python-0.6.5}/crates/floe-core/src/io/write/strategy/merge/scd2.rs +0 -0
- {floe_python-0.6.4 → floe_python-0.6.5}/crates/floe-core/src/io/write/strategy/merge/shared.rs +0 -0
- {floe_python-0.6.4 → floe_python-0.6.5}/crates/floe-core/src/io/write/strategy/mod.rs +0 -0
- {floe_python-0.6.4 → floe_python-0.6.5}/crates/floe-core/src/io/write/strategy/overwrite.rs +0 -0
- {floe_python-0.6.4 → floe_python-0.6.5}/crates/floe-core/src/lib.rs +0 -0
- {floe_python-0.6.4 → floe_python-0.6.5}/crates/floe-core/src/lineage/mod.rs +0 -0
- {floe_python-0.6.4 → floe_python-0.6.5}/crates/floe-core/src/log.rs +0 -0
- {floe_python-0.6.4 → floe_python-0.6.5}/crates/floe-core/src/manifest/builder.rs +0 -0
- {floe_python-0.6.4 → floe_python-0.6.5}/crates/floe-core/src/manifest/mod.rs +0 -0
- {floe_python-0.6.4 → floe_python-0.6.5}/crates/floe-core/src/manifest/model.rs +0 -0
- {floe_python-0.6.4 → floe_python-0.6.5}/crates/floe-core/src/manifest/reconstruct.rs +0 -0
- {floe_python-0.6.4 → floe_python-0.6.5}/crates/floe-core/src/profile/mod.rs +0 -0
- {floe_python-0.6.4 → floe_python-0.6.5}/crates/floe-core/src/profile/parse.rs +0 -0
- {floe_python-0.6.4 → floe_python-0.6.5}/crates/floe-core/src/profile/types.rs +0 -0
- {floe_python-0.6.4 → floe_python-0.6.5}/crates/floe-core/src/profile/validate.rs +0 -0
- {floe_python-0.6.4 → floe_python-0.6.5}/crates/floe-core/src/report/build.rs +0 -0
- {floe_python-0.6.4 → floe_python-0.6.5}/crates/floe-core/src/report/entity.rs +0 -0
- {floe_python-0.6.4 → floe_python-0.6.5}/crates/floe-core/src/report/mod.rs +0 -0
- {floe_python-0.6.4 → floe_python-0.6.5}/crates/floe-core/src/report/output.rs +0 -0
- {floe_python-0.6.4 → floe_python-0.6.5}/crates/floe-core/src/run/context.rs +0 -0
- {floe_python-0.6.4 → floe_python-0.6.5}/crates/floe-core/src/run/entity/accepted_buffer.rs +0 -0
- {floe_python-0.6.4 → floe_python-0.6.5}/crates/floe-core/src/run/entity/accepted_write.rs +0 -0
- {floe_python-0.6.4 → floe_python-0.6.5}/crates/floe-core/src/run/entity/incremental.rs +0 -0
- {floe_python-0.6.4 → floe_python-0.6.5}/crates/floe-core/src/run/entity/mod.rs +0 -0
- {floe_python-0.6.4 → floe_python-0.6.5}/crates/floe-core/src/run/entity/pii.rs +0 -0
- {floe_python-0.6.4 → floe_python-0.6.5}/crates/floe-core/src/run/entity/precheck.rs +0 -0
- {floe_python-0.6.4 → floe_python-0.6.5}/crates/floe-core/src/run/entity/process.rs +0 -0
- {floe_python-0.6.4 → floe_python-0.6.5}/crates/floe-core/src/run/entity/resolve.rs +0 -0
- {floe_python-0.6.4 → floe_python-0.6.5}/crates/floe-core/src/run/entity/validate_split.rs +0 -0
- {floe_python-0.6.4 → floe_python-0.6.5}/crates/floe-core/src/run/events.rs +0 -0
- {floe_python-0.6.4 → floe_python-0.6.5}/crates/floe-core/src/run/file.rs +0 -0
- {floe_python-0.6.4 → floe_python-0.6.5}/crates/floe-core/src/run/mod.rs +0 -0
- {floe_python-0.6.4 → floe_python-0.6.5}/crates/floe-core/src/run/output.rs +0 -0
- {floe_python-0.6.4 → floe_python-0.6.5}/crates/floe-core/src/run/perf.rs +0 -0
- {floe_python-0.6.4 → floe_python-0.6.5}/crates/floe-core/src/runner/mod.rs +0 -0
- {floe_python-0.6.4 → floe_python-0.6.5}/crates/floe-core/src/runner/outcome.rs +0 -0
- {floe_python-0.6.4 → floe_python-0.6.5}/crates/floe-core/src/runtime.rs +0 -0
- {floe_python-0.6.4 → floe_python-0.6.5}/crates/floe-core/src/secret.rs +0 -0
- {floe_python-0.6.4 → floe_python-0.6.5}/crates/floe-core/src/state/mod.rs +0 -0
- {floe_python-0.6.4 → floe_python-0.6.5}/crates/floe-core/src/vars/mod.rs +0 -0
- {floe_python-0.6.4 → floe_python-0.6.5}/crates/floe-core/src/vars/resolve.rs +0 -0
- {floe_python-0.6.4 → floe_python-0.6.5}/crates/floe-core/src/warnings.rs +0 -0
- {floe_python-0.6.4 → floe_python-0.6.5}/crates/floe-core/tests/integration/archive_run.rs +0 -0
- {floe_python-0.6.4 → floe_python-0.6.5}/crates/floe-core/tests/integration/composite_unique.rs +0 -0
- {floe_python-0.6.4 → floe_python-0.6.5}/crates/floe-core/tests/integration/delta_run.rs +0 -0
- {floe_python-0.6.4 → floe_python-0.6.5}/crates/floe-core/tests/integration/dry_run.rs +0 -0
- {floe_python-0.6.4 → floe_python-0.6.5}/crates/floe-core/tests/integration/duckdb_run.rs +0 -0
- {floe_python-0.6.4 → floe_python-0.6.5}/crates/floe-core/tests/integration/fixed_width.rs +0 -0
- {floe_python-0.6.4 → floe_python-0.6.5}/crates/floe-core/tests/integration/iceberg_gcs_run.rs +0 -0
- {floe_python-0.6.4 → floe_python-0.6.5}/crates/floe-core/tests/integration/iceberg_glue_run.rs +0 -0
- {floe_python-0.6.4 → floe_python-0.6.5}/crates/floe-core/tests/integration/iceberg_run.rs +0 -0
- {floe_python-0.6.4 → floe_python-0.6.5}/crates/floe-core/tests/integration/iceberg_s3_run.rs +0 -0
- {floe_python-0.6.4 → floe_python-0.6.5}/crates/floe-core/tests/integration/json_selectors.rs +0 -0
- {floe_python-0.6.4 → floe_python-0.6.5}/crates/floe-core/tests/integration/local_run.rs +0 -0
- {floe_python-0.6.4 → floe_python-0.6.5}/crates/floe-core/tests/integration/mod.rs +0 -0
- {floe_python-0.6.4 → floe_python-0.6.5}/crates/floe-core/tests/integration/path_normalization.rs +0 -0
- {floe_python-0.6.4 → floe_python-0.6.5}/crates/floe-core/tests/integration/run_entities_filter.rs +0 -0
- {floe_python-0.6.4 → floe_python-0.6.5}/crates/floe-core/tests/integration.rs +0 -0
- {floe_python-0.6.4 → floe_python-0.6.5}/crates/floe-core/tests/unit/common.rs +0 -0
- {floe_python-0.6.4 → floe_python-0.6.5}/crates/floe-core/tests/unit/config/add_entity.rs +0 -0
- {floe_python-0.6.4 → floe_python-0.6.5}/crates/floe-core/tests/unit/config/adls_storage.rs +0 -0
- {floe_python-0.6.4 → floe_python-0.6.5}/crates/floe-core/tests/unit/config/adls_validation.rs +0 -0
- {floe_python-0.6.4 → floe_python-0.6.5}/crates/floe-core/tests/unit/config/catalogs.rs +0 -0
- {floe_python-0.6.4 → floe_python-0.6.5}/crates/floe-core/tests/unit/config/config_validation.rs +0 -0
- {floe_python-0.6.4 → floe_python-0.6.5}/crates/floe-core/tests/unit/config/duckdb_validation.rs +0 -0
- {floe_python-0.6.4 → floe_python-0.6.5}/crates/floe-core/tests/unit/config/gcs_storage.rs +0 -0
- {floe_python-0.6.4 → floe_python-0.6.5}/crates/floe-core/tests/unit/config/gcs_validation.rs +0 -0
- {floe_python-0.6.4 → floe_python-0.6.5}/crates/floe-core/tests/unit/config/lineage_validation.rs +0 -0
- {floe_python-0.6.4 → floe_python-0.6.5}/crates/floe-core/tests/unit/config/local_storage.rs +0 -0
- {floe_python-0.6.4 → floe_python-0.6.5}/crates/floe-core/tests/unit/config/mod.rs +0 -0
- {floe_python-0.6.4 → floe_python-0.6.5}/crates/floe-core/tests/unit/config/parse.rs +0 -0
- {floe_python-0.6.4 → floe_python-0.6.5}/crates/floe-core/tests/unit/config/pii_validation.rs +0 -0
- {floe_python-0.6.4 → floe_python-0.6.5}/crates/floe-core/tests/unit/config/remote_base.rs +0 -0
- {floe_python-0.6.4 → floe_python-0.6.5}/crates/floe-core/tests/unit/config/storage_resolver_uri.rs +0 -0
- {floe_python-0.6.4 → floe_python-0.6.5}/crates/floe-core/tests/unit/config/templating.rs +0 -0
- {floe_python-0.6.4 → floe_python-0.6.5}/crates/floe-core/tests/unit/io/format.rs +0 -0
- {floe_python-0.6.4 → floe_python-0.6.5}/crates/floe-core/tests/unit/io/mod.rs +0 -0
- {floe_python-0.6.4 → floe_python-0.6.5}/crates/floe-core/tests/unit/io/read/avro_input.rs +0 -0
- {floe_python-0.6.4 → floe_python-0.6.5}/crates/floe-core/tests/unit/io/read/csv_nulls.rs +0 -0
- {floe_python-0.6.4 → floe_python-0.6.5}/crates/floe-core/tests/unit/io/read/json_array.rs +0 -0
- {floe_python-0.6.4 → floe_python-0.6.5}/crates/floe-core/tests/unit/io/read/json_ndjson.rs +0 -0
- {floe_python-0.6.4 → floe_python-0.6.5}/crates/floe-core/tests/unit/io/read/json_selector.rs +0 -0
- {floe_python-0.6.4 → floe_python-0.6.5}/crates/floe-core/tests/unit/io/read/mod.rs +0 -0
- {floe_python-0.6.4 → floe_python-0.6.5}/crates/floe-core/tests/unit/io/read/orc_input.rs +0 -0
- {floe_python-0.6.4 → floe_python-0.6.5}/crates/floe-core/tests/unit/io/read/parquet_input.rs +0 -0
- {floe_python-0.6.4 → floe_python-0.6.5}/crates/floe-core/tests/unit/io/read/tsv.rs +0 -0
- {floe_python-0.6.4 → floe_python-0.6.5}/crates/floe-core/tests/unit/io/read/xlsx_input.rs +0 -0
- {floe_python-0.6.4 → floe_python-0.6.5}/crates/floe-core/tests/unit/io/read/xml.rs +0 -0
- {floe_python-0.6.4 → floe_python-0.6.5}/crates/floe-core/tests/unit/io/read/xml_selector.rs +0 -0
- {floe_python-0.6.4 → floe_python-0.6.5}/crates/floe-core/tests/unit/io/storage/adls.rs +0 -0
- {floe_python-0.6.4 → floe_python-0.6.5}/crates/floe-core/tests/unit/io/storage/adls_integration.rs +0 -0
- {floe_python-0.6.4 → floe_python-0.6.5}/crates/floe-core/tests/unit/io/storage/gcs.rs +0 -0
- {floe_python-0.6.4 → floe_python-0.6.5}/crates/floe-core/tests/unit/io/storage/inputs.rs +0 -0
- {floe_python-0.6.4 → floe_python-0.6.5}/crates/floe-core/tests/unit/io/storage/local.rs +0 -0
- {floe_python-0.6.4 → floe_python-0.6.5}/crates/floe-core/tests/unit/io/storage/mod.rs +0 -0
- {floe_python-0.6.4 → floe_python-0.6.5}/crates/floe-core/tests/unit/io/storage/paths.rs +0 -0
- {floe_python-0.6.4 → floe_python-0.6.5}/crates/floe-core/tests/unit/io/storage/planner.rs +0 -0
- {floe_python-0.6.4 → floe_python-0.6.5}/crates/floe-core/tests/unit/io/storage/s3.rs +0 -0
- {floe_python-0.6.4 → floe_python-0.6.5}/crates/floe-core/tests/unit/io/storage/target.rs +0 -0
- {floe_python-0.6.4 → floe_python-0.6.5}/crates/floe-core/tests/unit/io/write/delta_merge.rs +0 -0
- {floe_python-0.6.4 → floe_python-0.6.5}/crates/floe-core/tests/unit/io/write/delta_write.rs +0 -0
- {floe_python-0.6.4 → floe_python-0.6.5}/crates/floe-core/tests/unit/io/write/iceberg_write.rs +0 -0
- {floe_python-0.6.4 → floe_python-0.6.5}/crates/floe-core/tests/unit/io/write/metrics.rs +0 -0
- {floe_python-0.6.4 → floe_python-0.6.5}/crates/floe-core/tests/unit/io/write/mod.rs +0 -0
- {floe_python-0.6.4 → floe_python-0.6.5}/crates/floe-core/tests/unit/io/write/object_store.rs +0 -0
- {floe_python-0.6.4 → floe_python-0.6.5}/crates/floe-core/tests/unit/io/write/parquet_write.rs +0 -0
- {floe_python-0.6.4 → floe_python-0.6.5}/crates/floe-core/tests/unit/io/write/parts.rs +0 -0
- {floe_python-0.6.4 → floe_python-0.6.5}/crates/floe-core/tests/unit/io/write/rejected_csv.rs +0 -0
- {floe_python-0.6.4 → floe_python-0.6.5}/crates/floe-core/tests/unit/manifest/mod.rs +0 -0
- {floe_python-0.6.4 → floe_python-0.6.5}/crates/floe-core/tests/unit/mod.rs +0 -0
- {floe_python-0.6.4 → floe_python-0.6.5}/crates/floe-core/tests/unit/profile/mod.rs +0 -0
- {floe_python-0.6.4 → floe_python-0.6.5}/crates/floe-core/tests/unit/profile/parse.rs +0 -0
- {floe_python-0.6.4 → floe_python-0.6.5}/crates/floe-core/tests/unit/profile/validate.rs +0 -0
- {floe_python-0.6.4 → floe_python-0.6.5}/crates/floe-core/tests/unit/report/accepted_output.rs +0 -0
- {floe_python-0.6.4 → floe_python-0.6.5}/crates/floe-core/tests/unit/report/mod.rs +0 -0
- {floe_python-0.6.4 → floe_python-0.6.5}/crates/floe-core/tests/unit/report/storage.rs +0 -0
- {floe_python-0.6.4 → floe_python-0.6.5}/crates/floe-core/tests/unit/run/check_order.rs +0 -0
- {floe_python-0.6.4 → floe_python-0.6.5}/crates/floe-core/tests/unit/run/checks.rs +0 -0
- {floe_python-0.6.4 → floe_python-0.6.5}/crates/floe-core/tests/unit/run/entity/accepted_output.rs +0 -0
- {floe_python-0.6.4 → floe_python-0.6.5}/crates/floe-core/tests/unit/run/entity/incremental.rs +0 -0
- {floe_python-0.6.4 → floe_python-0.6.5}/crates/floe-core/tests/unit/run/entity/mod.rs +0 -0
- {floe_python-0.6.4 → floe_python-0.6.5}/crates/floe-core/tests/unit/run/lineage.rs +0 -0
- {floe_python-0.6.4 → floe_python-0.6.5}/crates/floe-core/tests/unit/run/mod.rs +0 -0
- {floe_python-0.6.4 → floe_python-0.6.5}/crates/floe-core/tests/unit/run/normalize.rs +0 -0
- {floe_python-0.6.4 → floe_python-0.6.5}/crates/floe-core/tests/unit/run/pii.rs +0 -0
- {floe_python-0.6.4 → floe_python-0.6.5}/crates/floe-core/tests/unit/run/report.rs +0 -0
- {floe_python-0.6.4 → floe_python-0.6.5}/crates/floe-core/tests/unit/run/schema_mismatch.rs +0 -0
- {floe_python-0.6.4 → floe_python-0.6.5}/crates/floe-core/tests/unit/runner/adapter.rs +0 -0
- {floe_python-0.6.4 → floe_python-0.6.5}/crates/floe-core/tests/unit/runner/mod.rs +0 -0
- {floe_python-0.6.4 → floe_python-0.6.5}/crates/floe-core/tests/unit/state/mod.rs +0 -0
- {floe_python-0.6.4 → floe_python-0.6.5}/crates/floe-core/tests/unit/vars/mod.rs +0 -0
- {floe_python-0.6.4 → floe_python-0.6.5}/crates/floe-core/tests/unit/vars/resolve.rs +0 -0
- {floe_python-0.6.4 → floe_python-0.6.5}/crates/floe-core/tests/unit.rs +0 -0
- {floe_python-0.6.4 → floe_python-0.6.5}/crates/floe-python/.gitignore +0 -0
- {floe_python-0.6.4 → floe_python-0.6.5}/crates/floe-python/README.md +0 -0
- {floe_python-0.6.4 → floe_python-0.6.5}/crates/floe-python/src/functions.rs +0 -0
- {floe_python-0.6.4 → floe_python-0.6.5}/crates/floe-python/src/lib.rs +0 -0
- {floe_python-0.6.4 → floe_python-0.6.5}/crates/floe-python/src/observer.rs +0 -0
- {floe_python-0.6.4 → floe_python-0.6.5}/crates/floe-python/src/types/config.rs +0 -0
- {floe_python-0.6.4 → floe_python-0.6.5}/crates/floe-python/src/types/errors.rs +0 -0
- {floe_python-0.6.4 → floe_python-0.6.5}/crates/floe-python/src/types/mod.rs +0 -0
- {floe_python-0.6.4 → floe_python-0.6.5}/crates/floe-python/src/types/outcome.rs +0 -0
- {floe_python-0.6.4 → floe_python-0.6.5}/crates/floe-python/tests/fixtures/config.yml +0 -0
- {floe_python-0.6.4 → floe_python-0.6.5}/crates/floe-python/tests/fixtures/in/customer/customers_valid.csv +0 -0
- {floe_python-0.6.4 → floe_python-0.6.5}/crates/floe-python/tests/fixtures/invalid_config.yml +0 -0
- {floe_python-0.6.4 → floe_python-0.6.5}/crates/floe-python/tests/fixtures/profile.yml +0 -0
- {floe_python-0.6.4 → floe_python-0.6.5}/crates/floe-python/tests/test_floe.py +0 -0
- {floe_python-0.6.4 → floe_python-0.6.5}/python/floe/__init__.py +0 -0
- {floe_python-0.6.4 → floe_python-0.6.5}/python/floe/_floe.pyi +0 -0
- {floe_python-0.6.4 → floe_python-0.6.5}/python/floe/py.typed +0 -0
|
@@ -3340,7 +3340,7 @@ dependencies = [
|
|
|
3340
3340
|
|
|
3341
3341
|
[[package]]
|
|
3342
3342
|
name = "floe-cli"
|
|
3343
|
-
version = "0.6.
|
|
3343
|
+
version = "0.6.5"
|
|
3344
3344
|
dependencies = [
|
|
3345
3345
|
"assert_cmd",
|
|
3346
3346
|
"clap",
|
|
@@ -3353,7 +3353,7 @@ dependencies = [
|
|
|
3353
3353
|
|
|
3354
3354
|
[[package]]
|
|
3355
3355
|
name = "floe-core"
|
|
3356
|
-
version = "0.6.
|
|
3356
|
+
version = "0.6.5"
|
|
3357
3357
|
dependencies = [
|
|
3358
3358
|
"apache-avro",
|
|
3359
3359
|
"arrow",
|
|
@@ -3399,7 +3399,7 @@ dependencies = [
|
|
|
3399
3399
|
|
|
3400
3400
|
[[package]]
|
|
3401
3401
|
name = "floe-python"
|
|
3402
|
-
version = "0.6.
|
|
3402
|
+
version = "0.6.5"
|
|
3403
3403
|
dependencies = [
|
|
3404
3404
|
"floe-core",
|
|
3405
3405
|
"pyo3",
|
|
@@ -2,10 +2,11 @@ use crate::errors::FloeError;
|
|
|
2
2
|
use aws_config::meta::region::RegionProviderChain;
|
|
3
3
|
use aws_sdk_glue::config::Region as GlueRegion;
|
|
4
4
|
use aws_sdk_glue::types::{
|
|
5
|
-
|
|
6
|
-
TableInput as GlueTableInput,
|
|
5
|
+
Column as GlueColumn, DatabaseInput as GlueDatabaseInput,
|
|
6
|
+
StorageDescriptor as GlueStorageDescriptor, TableInput as GlueTableInput,
|
|
7
7
|
};
|
|
8
8
|
use aws_sdk_glue::Client as GlueClient;
|
|
9
|
+
use iceberg::spec::{PrimitiveType, Schema, Type};
|
|
9
10
|
|
|
10
11
|
use crate::{warnings, FloeResult};
|
|
11
12
|
|
|
@@ -127,6 +128,7 @@ pub(super) async fn upsert_glue_table(
|
|
|
127
128
|
table_root_uri: &str,
|
|
128
129
|
metadata_location: &str,
|
|
129
130
|
version_id: Option<&str>,
|
|
131
|
+
schema: &Schema,
|
|
130
132
|
) -> FloeResult<()> {
|
|
131
133
|
let client = build_glue_client(&glue_cfg.region).await?;
|
|
132
134
|
ensure_glue_database(
|
|
@@ -136,7 +138,7 @@ pub(super) async fn upsert_glue_table(
|
|
|
136
138
|
)
|
|
137
139
|
.await?;
|
|
138
140
|
|
|
139
|
-
let table_input = build_glue_table_input(glue_cfg, table_root_uri, metadata_location);
|
|
141
|
+
let table_input = build_glue_table_input(glue_cfg, table_root_uri, metadata_location, schema);
|
|
140
142
|
|
|
141
143
|
let create_result = client
|
|
142
144
|
.create_table()
|
|
@@ -259,13 +261,54 @@ async fn ensure_glue_database(
|
|
|
259
261
|
}
|
|
260
262
|
}
|
|
261
263
|
|
|
264
|
+
fn iceberg_type_to_glue_type(t: &Type) -> String {
|
|
265
|
+
match t {
|
|
266
|
+
Type::Primitive(p) => match p {
|
|
267
|
+
PrimitiveType::Boolean => "boolean".into(),
|
|
268
|
+
PrimitiveType::Int => "int".into(),
|
|
269
|
+
PrimitiveType::Long => "bigint".into(),
|
|
270
|
+
PrimitiveType::Float => "float".into(),
|
|
271
|
+
PrimitiveType::Double => "double".into(),
|
|
272
|
+
PrimitiveType::Decimal { precision, scale } => {
|
|
273
|
+
format!("decimal({precision},{scale})")
|
|
274
|
+
}
|
|
275
|
+
PrimitiveType::Date => "date".into(),
|
|
276
|
+
PrimitiveType::Time => "string".into(),
|
|
277
|
+
PrimitiveType::Timestamp
|
|
278
|
+
| PrimitiveType::Timestamptz
|
|
279
|
+
| PrimitiveType::TimestampNs
|
|
280
|
+
| PrimitiveType::TimestamptzNs => "timestamp".into(),
|
|
281
|
+
PrimitiveType::String | PrimitiveType::Uuid => "string".into(),
|
|
282
|
+
PrimitiveType::Fixed(_) | PrimitiveType::Binary => "binary".into(),
|
|
283
|
+
},
|
|
284
|
+
Type::Struct(_) => "struct<>".into(),
|
|
285
|
+
Type::List(_) => "array<string>".into(),
|
|
286
|
+
Type::Map(_) => "map<string,string>".into(),
|
|
287
|
+
}
|
|
288
|
+
}
|
|
289
|
+
|
|
262
290
|
fn build_glue_table_input(
|
|
263
291
|
glue_cfg: &GlueIcebergCatalogConfig,
|
|
264
292
|
table_root_uri: &str,
|
|
265
293
|
metadata_location: &str,
|
|
294
|
+
schema: &Schema,
|
|
266
295
|
) -> GlueTableInput {
|
|
296
|
+
let columns: Vec<GlueColumn> = schema
|
|
297
|
+
.as_struct()
|
|
298
|
+
.fields()
|
|
299
|
+
.iter()
|
|
300
|
+
.map(|f| {
|
|
301
|
+
GlueColumn::builder()
|
|
302
|
+
.name(f.name.as_str())
|
|
303
|
+
.r#type(iceberg_type_to_glue_type(&f.field_type))
|
|
304
|
+
.build()
|
|
305
|
+
.expect("glue column builder validated")
|
|
306
|
+
})
|
|
307
|
+
.collect();
|
|
308
|
+
|
|
267
309
|
let storage_descriptor = GlueStorageDescriptor::builder()
|
|
268
310
|
.location(table_root_uri)
|
|
311
|
+
.set_columns(Some(columns))
|
|
269
312
|
.build();
|
|
270
313
|
|
|
271
314
|
GlueTableInput::builder()
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[package]
|
|
2
2
|
name = "floe-python"
|
|
3
|
-
version = "0.6.
|
|
3
|
+
version = "0.6.5"
|
|
4
4
|
edition = "2021"
|
|
5
5
|
description = "Python bindings for floe-core (PyO3-based)"
|
|
6
6
|
license = "Apache-2.0"
|
|
@@ -14,7 +14,7 @@ name = "_floe"
|
|
|
14
14
|
crate-type = ["cdylib"]
|
|
15
15
|
|
|
16
16
|
[dependencies]
|
|
17
|
-
floe-core = { path = "../floe-core", version = "0.6.
|
|
17
|
+
floe-core = { path = "../floe-core", version = "0.6.5", default-features = false }
|
|
18
18
|
pyo3 = { version = "0.29", features = ["extension-module", "abi3-py310"] }
|
|
19
19
|
serde_json = "1"
|
|
20
20
|
|
|
@@ -22,7 +22,7 @@ build-backend = "maturin"
|
|
|
22
22
|
|
|
23
23
|
[project]
|
|
24
24
|
name = "floe-duckdb"
|
|
25
|
-
version = "0.6.
|
|
25
|
+
version = "0.6.5"
|
|
26
26
|
description = "DuckDB companion extension for floe — adds the native DuckDB sink to the floe Python package"
|
|
27
27
|
readme = "README.md"
|
|
28
28
|
requires-python = ">=3.10"
|
|
@@ -46,7 +46,7 @@ classifiers = [
|
|
|
46
46
|
# only contributes the compiled DuckDB extension module into that package. Pin to
|
|
47
47
|
# the exact lean version so the companion's `_floe_duckdb` ABI always matches the
|
|
48
48
|
# `floe` package it plugs into.
|
|
49
|
-
dependencies = ["floe-python==0.6.
|
|
49
|
+
dependencies = ["floe-python==0.6.5"]
|
|
50
50
|
|
|
51
51
|
[project.urls]
|
|
52
52
|
Homepage = "https://github.com/malon64/floe"
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{floe_python-0.6.4 → floe_python-0.6.5}/crates/floe-core/src/io/write/delta/commit_metrics.rs
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{floe_python-0.6.4 → floe_python-0.6.5}/crates/floe-core/src/io/write/strategy/merge/keys.rs
RENAMED
|
File without changes
|
|
File without changes
|
{floe_python-0.6.4 → floe_python-0.6.5}/crates/floe-core/src/io/write/strategy/merge/scd1.rs
RENAMED
|
File without changes
|
{floe_python-0.6.4 → floe_python-0.6.5}/crates/floe-core/src/io/write/strategy/merge/scd2.rs
RENAMED
|
File without changes
|
{floe_python-0.6.4 → floe_python-0.6.5}/crates/floe-core/src/io/write/strategy/merge/shared.rs
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{floe_python-0.6.4 → floe_python-0.6.5}/crates/floe-core/tests/integration/composite_unique.rs
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{floe_python-0.6.4 → floe_python-0.6.5}/crates/floe-core/tests/integration/iceberg_gcs_run.rs
RENAMED
|
File without changes
|
{floe_python-0.6.4 → floe_python-0.6.5}/crates/floe-core/tests/integration/iceberg_glue_run.rs
RENAMED
|
File without changes
|
|
File without changes
|
{floe_python-0.6.4 → floe_python-0.6.5}/crates/floe-core/tests/integration/iceberg_s3_run.rs
RENAMED
|
File without changes
|
{floe_python-0.6.4 → floe_python-0.6.5}/crates/floe-core/tests/integration/json_selectors.rs
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{floe_python-0.6.4 → floe_python-0.6.5}/crates/floe-core/tests/integration/path_normalization.rs
RENAMED
|
File without changes
|
{floe_python-0.6.4 → floe_python-0.6.5}/crates/floe-core/tests/integration/run_entities_filter.rs
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{floe_python-0.6.4 → floe_python-0.6.5}/crates/floe-core/tests/unit/config/adls_validation.rs
RENAMED
|
File without changes
|
|
File without changes
|
{floe_python-0.6.4 → floe_python-0.6.5}/crates/floe-core/tests/unit/config/config_validation.rs
RENAMED
|
File without changes
|
{floe_python-0.6.4 → floe_python-0.6.5}/crates/floe-core/tests/unit/config/duckdb_validation.rs
RENAMED
|
File without changes
|
|
File without changes
|
{floe_python-0.6.4 → floe_python-0.6.5}/crates/floe-core/tests/unit/config/gcs_validation.rs
RENAMED
|
File without changes
|
{floe_python-0.6.4 → floe_python-0.6.5}/crates/floe-core/tests/unit/config/lineage_validation.rs
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{floe_python-0.6.4 → floe_python-0.6.5}/crates/floe-core/tests/unit/config/pii_validation.rs
RENAMED
|
File without changes
|
|
File without changes
|
{floe_python-0.6.4 → floe_python-0.6.5}/crates/floe-core/tests/unit/config/storage_resolver_uri.rs
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{floe_python-0.6.4 → floe_python-0.6.5}/crates/floe-core/tests/unit/io/read/json_selector.rs
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{floe_python-0.6.4 → floe_python-0.6.5}/crates/floe-core/tests/unit/io/read/parquet_input.rs
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{floe_python-0.6.4 → floe_python-0.6.5}/crates/floe-core/tests/unit/io/storage/adls_integration.rs
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{floe_python-0.6.4 → floe_python-0.6.5}/crates/floe-core/tests/unit/io/write/iceberg_write.rs
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{floe_python-0.6.4 → floe_python-0.6.5}/crates/floe-core/tests/unit/io/write/object_store.rs
RENAMED
|
File without changes
|
{floe_python-0.6.4 → floe_python-0.6.5}/crates/floe-core/tests/unit/io/write/parquet_write.rs
RENAMED
|
File without changes
|
|
File without changes
|
{floe_python-0.6.4 → floe_python-0.6.5}/crates/floe-core/tests/unit/io/write/rejected_csv.rs
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{floe_python-0.6.4 → floe_python-0.6.5}/crates/floe-core/tests/unit/report/accepted_output.rs
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{floe_python-0.6.4 → floe_python-0.6.5}/crates/floe-core/tests/unit/run/entity/accepted_output.rs
RENAMED
|
File without changes
|
{floe_python-0.6.4 → floe_python-0.6.5}/crates/floe-core/tests/unit/run/entity/incremental.rs
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{floe_python-0.6.4 → floe_python-0.6.5}/crates/floe-python/tests/fixtures/invalid_config.yml
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|