From 1b3ce82f7d49e9c7b8ff861422c1e7f2ff41e7b9 Mon Sep 17 00:00:00 2001 From: JingsongLi Date: Thu, 11 Sep 2025 22:33:11 +0800 Subject: [PATCH] [python] Expose CatalogFactory and Schema directly --- docs/content/program-api/python-api.md | 2 +- paimon-python/pypaimon/__init__.py | 4 ++++ paimon-python/pypaimon/tests/filesystem_catalog_test.py | 4 ++-- paimon-python/pypaimon/tests/predicate_push_down_test.py | 4 ++-- paimon-python/pypaimon/tests/predicates_test.py | 4 ++-- paimon-python/pypaimon/tests/py36/ao_predicate_test.py | 4 ++-- paimon-python/pypaimon/tests/py36/ao_read_write_test.py | 4 ++-- paimon-python/pypaimon/tests/reader_append_only_test.py | 4 ++-- paimon-python/pypaimon/tests/reader_basic_test.py | 4 ++-- paimon-python/pypaimon/tests/reader_primary_key_test.py | 4 ++-- paimon-python/pypaimon/tests/rest_catalog_base_test.py | 4 ++-- paimon-python/pypaimon/tests/rest_server.py | 2 +- paimon-python/pypaimon/tests/rest_table_read_write_test.py | 4 ++-- paimon-python/pypaimon/tests/rest_table_test.py | 2 +- paimon-python/pypaimon/tests/schema_test.py | 2 +- paimon-python/pypaimon/tests/serializable_test.py | 4 ++-- paimon-python/pypaimon/tests/writer_test.py | 4 ++-- 17 files changed, 32 insertions(+), 28 deletions(-) diff --git a/docs/content/program-api/python-api.md b/docs/content/program-api/python-api.md index 90779ed26684..ab4967a89512 100644 --- a/docs/content/program-api/python-api.md +++ b/docs/content/program-api/python-api.md @@ -44,7 +44,7 @@ pip install pypaimon Before coming into contact with the Table, you need to create a Catalog. ```python -from pypaimon.catalog.catalog_factory import CatalogFactory +from pypaimon import CatalogFactory # Note that keys and values are all string catalog_options = { diff --git a/paimon-python/pypaimon/__init__.py b/paimon-python/pypaimon/__init__.py index 4273f0d86823..060529a185e2 100644 --- a/paimon-python/pypaimon/__init__.py +++ b/paimon-python/pypaimon/__init__.py @@ -16,7 +16,11 @@ # under the License. from pypaimon.filesystem.pvfs import PaimonVirtualFileSystem +from pypaimon.catalog.catalog_factory import CatalogFactory +from pypaimon.schema.schema import Schema __all__ = [ "PaimonVirtualFileSystem", + "CatalogFactory", + "Schema", ] diff --git a/paimon-python/pypaimon/tests/filesystem_catalog_test.py b/paimon-python/pypaimon/tests/filesystem_catalog_test.py index 764bf4d802b7..0e9900efb483 100644 --- a/paimon-python/pypaimon/tests/filesystem_catalog_test.py +++ b/paimon-python/pypaimon/tests/filesystem_catalog_test.py @@ -23,9 +23,9 @@ DatabaseNotExistException, TableAlreadyExistException, TableNotExistException) -from pypaimon.catalog.catalog_factory import CatalogFactory +from pypaimon import CatalogFactory from pypaimon.schema.data_types import AtomicType, DataField -from pypaimon.schema.schema import Schema +from pypaimon import Schema from pypaimon.table.file_store_table import FileStoreTable diff --git a/paimon-python/pypaimon/tests/predicate_push_down_test.py b/paimon-python/pypaimon/tests/predicate_push_down_test.py index b5b403f67401..e809295d5792 100644 --- a/paimon-python/pypaimon/tests/predicate_push_down_test.py +++ b/paimon-python/pypaimon/tests/predicate_push_down_test.py @@ -23,9 +23,9 @@ import pyarrow as pa -from pypaimon.catalog.catalog_factory import CatalogFactory +from pypaimon import CatalogFactory from pypaimon.common.predicate_builder import PredicateBuilder -from pypaimon.schema.schema import Schema +from pypaimon import Schema class PredicatePushDownTest(unittest.TestCase): diff --git a/paimon-python/pypaimon/tests/predicates_test.py b/paimon-python/pypaimon/tests/predicates_test.py index 19d101fb287b..ca3caa5276cb 100644 --- a/paimon-python/pypaimon/tests/predicates_test.py +++ b/paimon-python/pypaimon/tests/predicates_test.py @@ -23,8 +23,8 @@ import pandas as pd import pyarrow as pa -from pypaimon.catalog.catalog_factory import CatalogFactory -from pypaimon.schema.schema import Schema +from pypaimon import CatalogFactory +from pypaimon import Schema def _check_filtered_result(read_builder, expected_df): diff --git a/paimon-python/pypaimon/tests/py36/ao_predicate_test.py b/paimon-python/pypaimon/tests/py36/ao_predicate_test.py index ffa305240b64..5e7435a36022 100644 --- a/paimon-python/pypaimon/tests/py36/ao_predicate_test.py +++ b/paimon-python/pypaimon/tests/py36/ao_predicate_test.py @@ -22,8 +22,8 @@ import pandas as pd import pyarrow as pa -from pypaimon.catalog.catalog_factory import CatalogFactory -from pypaimon.schema.schema import Schema +from pypaimon import CatalogFactory +from pypaimon import Schema from pypaimon.tests.predicates_test import _random_format, _check_filtered_result diff --git a/paimon-python/pypaimon/tests/py36/ao_read_write_test.py b/paimon-python/pypaimon/tests/py36/ao_read_write_test.py index ca75d352a13c..3247ea691fa7 100644 --- a/paimon-python/pypaimon/tests/py36/ao_read_write_test.py +++ b/paimon-python/pypaimon/tests/py36/ao_read_write_test.py @@ -23,7 +23,7 @@ import pyarrow as pa from pypaimon.api.options import Options from pypaimon.catalog.catalog_context import CatalogContext -from pypaimon.catalog.catalog_factory import CatalogFactory +from pypaimon import CatalogFactory from pypaimon.catalog.rest.rest_catalog import RESTCatalog from pypaimon.common.identifier import Identifier from pypaimon.manifest.manifest_file_manager import ManifestFileManager @@ -31,7 +31,7 @@ from pypaimon.manifest.schema.manifest_entry import ManifestEntry from pypaimon.manifest.schema.simple_stats import SimpleStats from pypaimon.schema.data_types import DataField, AtomicType -from pypaimon.schema.schema import Schema +from pypaimon import Schema from pypaimon.table.row.generic_row import GenericRow, GenericRowSerializer, GenericRowDeserializer from pypaimon.table.row.row_kind import RowKind from pypaimon.tests.py36.pyarrow_compat import table_sort_by diff --git a/paimon-python/pypaimon/tests/reader_append_only_test.py b/paimon-python/pypaimon/tests/reader_append_only_test.py index 72b421aa9489..5a6c291f2e71 100644 --- a/paimon-python/pypaimon/tests/reader_append_only_test.py +++ b/paimon-python/pypaimon/tests/reader_append_only_test.py @@ -22,8 +22,8 @@ import pyarrow as pa -from pypaimon.catalog.catalog_factory import CatalogFactory -from pypaimon.schema.schema import Schema +from pypaimon import CatalogFactory +from pypaimon import Schema class AoReaderTest(unittest.TestCase): diff --git a/paimon-python/pypaimon/tests/reader_basic_test.py b/paimon-python/pypaimon/tests/reader_basic_test.py index 62255c8a7991..ce5a0bc30861 100644 --- a/paimon-python/pypaimon/tests/reader_basic_test.py +++ b/paimon-python/pypaimon/tests/reader_basic_test.py @@ -30,8 +30,8 @@ from pypaimon.schema.data_types import DataField, AtomicType -from pypaimon.catalog.catalog_factory import CatalogFactory -from pypaimon.schema.schema import Schema +from pypaimon import CatalogFactory +from pypaimon import Schema from pypaimon.manifest.manifest_file_manager import ManifestFileManager from pypaimon.manifest.schema.simple_stats import SimpleStats from pypaimon.manifest.schema.data_file_meta import DataFileMeta diff --git a/paimon-python/pypaimon/tests/reader_primary_key_test.py b/paimon-python/pypaimon/tests/reader_primary_key_test.py index 73cca1a788b9..d1a565d4ccf7 100644 --- a/paimon-python/pypaimon/tests/reader_primary_key_test.py +++ b/paimon-python/pypaimon/tests/reader_primary_key_test.py @@ -23,8 +23,8 @@ import pyarrow as pa -from pypaimon.catalog.catalog_factory import CatalogFactory -from pypaimon.schema.schema import Schema +from pypaimon import CatalogFactory +from pypaimon import Schema class PkReaderTest(unittest.TestCase): diff --git a/paimon-python/pypaimon/tests/rest_catalog_base_test.py b/paimon-python/pypaimon/tests/rest_catalog_base_test.py index e56580e0aef1..0dc3a129b78d 100644 --- a/paimon-python/pypaimon/tests/rest_catalog_base_test.py +++ b/paimon-python/pypaimon/tests/rest_catalog_base_test.py @@ -29,13 +29,13 @@ from pypaimon.api.auth import BearTokenAuthProvider from pypaimon.api.options import Options from pypaimon.catalog.catalog_context import CatalogContext -from pypaimon.catalog.catalog_factory import CatalogFactory +from pypaimon import CatalogFactory from pypaimon.catalog.rest.rest_catalog import RESTCatalog from pypaimon.catalog.rest.table_metadata import TableMetadata from pypaimon.common.identifier import Identifier from pypaimon.schema.data_types import (ArrayType, AtomicType, DataField, MapType) -from pypaimon.schema.schema import Schema +from pypaimon import Schema from pypaimon.schema.table_schema import TableSchema from pypaimon.tests.rest_server import RESTCatalogServer diff --git a/paimon-python/pypaimon/tests/rest_server.py b/paimon-python/pypaimon/tests/rest_server.py index 1419faeb1398..7290863eb936 100644 --- a/paimon-python/pypaimon/tests/rest_server.py +++ b/paimon-python/pypaimon/tests/rest_server.py @@ -42,7 +42,7 @@ from pypaimon.catalog.rest.table_metadata import TableMetadata from pypaimon.common.identifier import Identifier from pypaimon.common.json_util import JSON -from pypaimon.schema.schema import Schema +from pypaimon import Schema from pypaimon.schema.table_schema import TableSchema diff --git a/paimon-python/pypaimon/tests/rest_table_read_write_test.py b/paimon-python/pypaimon/tests/rest_table_read_write_test.py index efa0839a3332..b070d39bbf5a 100644 --- a/paimon-python/pypaimon/tests/rest_table_read_write_test.py +++ b/paimon-python/pypaimon/tests/rest_table_read_write_test.py @@ -23,10 +23,10 @@ from pypaimon.api.options import Options from pypaimon.catalog.catalog_context import CatalogContext -from pypaimon.catalog.catalog_factory import CatalogFactory +from pypaimon import CatalogFactory from pypaimon.catalog.rest.rest_catalog import RESTCatalog from pypaimon.common.identifier import Identifier -from pypaimon.schema.schema import Schema +from pypaimon import Schema from pypaimon.tests.rest_catalog_base_test import RESTCatalogBaseTest diff --git a/paimon-python/pypaimon/tests/rest_table_test.py b/paimon-python/pypaimon/tests/rest_table_test.py index b905fa593b27..d86046c80cf4 100644 --- a/paimon-python/pypaimon/tests/rest_table_test.py +++ b/paimon-python/pypaimon/tests/rest_table_test.py @@ -20,7 +20,7 @@ import pyarrow as pa -from pypaimon.schema.schema import Schema +from pypaimon import Schema from pypaimon.tests.rest_catalog_base_test import RESTCatalogBaseTest from pypaimon.write.row_key_extractor import (DynamicBucketRowKeyExtractor, FixedBucketRowKeyExtractor, diff --git a/paimon-python/pypaimon/tests/schema_test.py b/paimon-python/pypaimon/tests/schema_test.py index 766676e95fe9..97c09246ac97 100644 --- a/paimon-python/pypaimon/tests/schema_test.py +++ b/paimon-python/pypaimon/tests/schema_test.py @@ -22,7 +22,7 @@ from pypaimon.schema.data_types import (ArrayType, AtomicType, DataField, MapType, PyarrowFieldParser) -from pypaimon.schema.schema import Schema +from pypaimon import Schema from pypaimon.schema.table_schema import TableSchema diff --git a/paimon-python/pypaimon/tests/serializable_test.py b/paimon-python/pypaimon/tests/serializable_test.py index 475a3ad6e775..eed351e33039 100644 --- a/paimon-python/pypaimon/tests/serializable_test.py +++ b/paimon-python/pypaimon/tests/serializable_test.py @@ -23,8 +23,8 @@ import pyarrow as pa -from pypaimon.catalog.catalog_factory import CatalogFactory -from pypaimon.schema.schema import Schema +from pypaimon import CatalogFactory +from pypaimon import Schema class SerializableTest(unittest.TestCase): diff --git a/paimon-python/pypaimon/tests/writer_test.py b/paimon-python/pypaimon/tests/writer_test.py index 8bf38f72e01e..34f7c53e70d7 100644 --- a/paimon-python/pypaimon/tests/writer_test.py +++ b/paimon-python/pypaimon/tests/writer_test.py @@ -23,8 +23,8 @@ import pyarrow -from pypaimon.catalog.catalog_factory import CatalogFactory -from pypaimon.schema.schema import Schema +from pypaimon import CatalogFactory +from pypaimon import Schema class WriterTest(unittest.TestCase):