Source code for scitex_db._postgresql._PostgreSQL

#!/usr/bin/env python3
# -*- coding: utf-8 -*-
# Time-stamp: "2024-11-25 02:00:06 (ywatanabe)"
# File: ./scitex_repo/src/scitex/db/_postgresql/_PostgreSQL.py

THIS_FILE = "/home/ywatanabe/proj/scitex_repo/src/scitex/db/_postgresql/_PostgreSQL.py"

from typing import List, Optional

from .._utils import printc as _printc
from typing import Optional
import psycopg2
from ._PostgreSQLMixins._BackupMixin import _BackupMixin
from ._PostgreSQLMixins._BatchMixin import _BatchMixin
from ._PostgreSQLMixins._ConnectionMixin import _ConnectionMixin
from ._PostgreSQLMixins._ImportExportMixin import _ImportExportMixin
from ._PostgreSQLMixins._IndexMixin import _IndexMixin
from ._PostgreSQLMixins._MaintenanceMixin import _MaintenanceMixin
from ._PostgreSQLMixins._QueryMixin import _QueryMixin
from ._PostgreSQLMixins._RowMixin import _RowMixin
from ._PostgreSQLMixins._SchemaMixin import _SchemaMixin
from ._PostgreSQLMixins._TableMixin import _TableMixin
from ._PostgreSQLMixins._TransactionMixin import _TransactionMixin
from ._PostgreSQLMixins._BlobMixin import _BlobMixin


[docs] class PostgreSQL( _BackupMixin, _BatchMixin, _ConnectionMixin, _ImportExportMixin, _IndexMixin, _MaintenanceMixin, _QueryMixin, _RowMixin, _SchemaMixin, _TableMixin, _TransactionMixin, _BlobMixin, ): def __init__( self, dbname: Optional[str] = None, user: str = None, password: str = None, host: str = "localhost", port: int = 5432, ): super().__init__( dbname=dbname, user=user, password=password, host=host, port=port )
[docs] def __call__( self, return_summary=False, print_summary=True, table_names: Optional[List[str]] = None, verbose: bool = True, limit: int = 5, ): """Display or return database summary.""" summary = self.get_summaries( table_names=table_names, verbose=verbose, limit=limit, ) if print_summary: for k, v in summary.items(): _printc(f"{k}\n{v}") if return_summary: return summary
@property def summary(self): """Property to quickly access database summary.""" self()
# class BaseSQLiteDB( # _ConnectionMixin, # _QueryMixin, # _TransactionMixin, # _TableMixin, # _IndexMixin, # _RowMixin, # _BatchMixin, # _BlobMixin, # _ImportExportMixin, # _MaintenanceMixin, # ): # """Comprehensive SQLite database management class.""" # def __init__(self, db_path: str, use_temp: bool = False): # """Initializes database with option for temporary copy.""" # _ConnectionMixin.__init__(self, db_path, use_temp) # def __call__( # self, # return_summary=False, # print_summary=True, # table_names: Optional[List[str]] = None, # verbose: bool = True, # limit: int = 5, # ): # summary = self.get_summaries( # table_names=table_names, # verbose=verbose, # limit=limit, # ) # if print_summary: # for k, v in summary.items(): # _printc(f"{k}\n{v}") # if return_summary: # return summary # @property # def summary(self): # self() # EOF