| # 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. |
| from typing import ( |
| TYPE_CHECKING, |
| List, |
| Optional, |
| Set, |
| Tuple, |
| Union, |
| ) |
| |
| from pyiceberg.catalog import Catalog, PropertiesUpdateSummary |
| from pyiceberg.partitioning import UNPARTITIONED_PARTITION_SPEC, PartitionSpec |
| from pyiceberg.schema import Schema |
| from pyiceberg.table import ( |
| CommitTableResponse, |
| CreateTableTransaction, |
| Table, |
| ) |
| from pyiceberg.table.sorting import UNSORTED_SORT_ORDER, SortOrder |
| from pyiceberg.table.update import ( |
| TableRequirement, |
| TableUpdate, |
| ) |
| from pyiceberg.typedef import EMPTY_DICT, Identifier, Properties |
| |
| if TYPE_CHECKING: |
| import pyarrow as pa |
| |
| |
| class NoopCatalog(Catalog): |
| def create_table( |
| self, |
| identifier: Union[str, Identifier], |
| schema: Union[Schema, "pa.Schema"], |
| location: Optional[str] = None, |
| partition_spec: PartitionSpec = UNPARTITIONED_PARTITION_SPEC, |
| sort_order: SortOrder = UNSORTED_SORT_ORDER, |
| properties: Properties = EMPTY_DICT, |
| ) -> Table: |
| raise NotImplementedError |
| |
| def create_table_transaction( |
| self, |
| identifier: Union[str, Identifier], |
| schema: Union[Schema, "pa.Schema"], |
| location: Optional[str] = None, |
| partition_spec: PartitionSpec = UNPARTITIONED_PARTITION_SPEC, |
| sort_order: SortOrder = UNSORTED_SORT_ORDER, |
| properties: Properties = EMPTY_DICT, |
| ) -> CreateTableTransaction: |
| raise NotImplementedError |
| |
| def load_table(self, identifier: Union[str, Identifier]) -> Table: |
| raise NotImplementedError |
| |
| def table_exists(self, identifier: Union[str, Identifier]) -> bool: |
| raise NotImplementedError |
| |
| def register_table(self, identifier: Union[str, Identifier], metadata_location: str) -> Table: |
| """Register a new table using existing metadata. |
| |
| Args: |
| identifier Union[str, Identifier]: Table identifier for the table |
| metadata_location str: The location to the metadata |
| |
| Returns: |
| Table: The newly registered table |
| |
| Raises: |
| TableAlreadyExistsError: If the table already exists |
| """ |
| raise NotImplementedError |
| |
| def drop_table(self, identifier: Union[str, Identifier]) -> None: |
| raise NotImplementedError |
| |
| def purge_table(self, identifier: Union[str, Identifier]) -> None: |
| raise NotImplementedError |
| |
| def rename_table(self, from_identifier: Union[str, Identifier], to_identifier: Union[str, Identifier]) -> Table: |
| raise NotImplementedError |
| |
| def commit_table( |
| self, table: Table, requirements: Tuple[TableRequirement, ...], updates: Tuple[TableUpdate, ...] |
| ) -> CommitTableResponse: |
| raise NotImplementedError |
| |
| def create_namespace(self, namespace: Union[str, Identifier], properties: Properties = EMPTY_DICT) -> None: |
| raise NotImplementedError |
| |
| def drop_namespace(self, namespace: Union[str, Identifier]) -> None: |
| raise NotImplementedError |
| |
| def list_tables(self, namespace: Union[str, Identifier]) -> List[Identifier]: |
| raise NotImplementedError |
| |
| def list_namespaces(self, namespace: Union[str, Identifier] = ()) -> List[Identifier]: |
| raise NotImplementedError |
| |
| def load_namespace_properties(self, namespace: Union[str, Identifier]) -> Properties: |
| raise NotImplementedError |
| |
| def update_namespace_properties( |
| self, namespace: Union[str, Identifier], removals: Optional[Set[str]] = None, updates: Properties = EMPTY_DICT |
| ) -> PropertiesUpdateSummary: |
| raise NotImplementedError |
| |
| def list_views(self, namespace: Union[str, Identifier]) -> List[Identifier]: |
| raise NotImplementedError |
| |
| def view_exists(self, identifier: Union[str, Identifier]) -> bool: |
| raise NotImplementedError |
| |
| def drop_view(self, identifier: Union[str, Identifier]) -> None: |
| raise NotImplementedError |