Changeset View
Changeset View
Standalone View
Standalone View
swh/provenance/postgresql/provenancedb_base.py
from datetime import datetime | |||||
import itertools | import itertools | ||||
import logging | import logging | ||||
from typing import Any, Dict, List, Optional | |||||
import psycopg2 | import psycopg2 | ||||
import psycopg2.extras | import psycopg2.extras | ||||
from ..model import DirectoryEntry, FileEntry | from ..model import DirectoryEntry, FileEntry | ||||
from ..origin import OriginEntry | from ..origin import OriginEntry | ||||
from ..provenance import ProvenanceInterface | |||||
from ..revision import RevisionEntry | from ..revision import RevisionEntry | ||||
from datetime import datetime | |||||
from typing import Any, Dict, List, Optional | |||||
class ProvenanceDBBase(ProvenanceInterface): | class ProvenanceDBBase: | ||||
def __init__(self, conn: psycopg2.extensions.connection): | def __init__(self, conn: psycopg2.extensions.connection): | ||||
# TODO: consider adding a mutex for thread safety | # TODO: consider adding a mutex for thread safety | ||||
conn.set_isolation_level(psycopg2.extensions.ISOLATION_LEVEL_AUTOCOMMIT) | conn.set_isolation_level(psycopg2.extensions.ISOLATION_LEVEL_AUTOCOMMIT) | ||||
self.conn = conn | self.conn = conn | ||||
self.cursor = self.conn.cursor() | self.cursor = self.conn.cursor() | ||||
self.insert_cache: Dict[str, Any] = {} | self.insert_cache: Dict[str, Any] = {} | ||||
self.remove_cache: Dict[str, Any] = {} | self.remove_cache: Dict[str, Any] = {} | ||||
self.select_cache: Dict[str, Any] = {} | self.select_cache: Dict[str, Any] = {} | ||||
▲ Show 20 Lines • Show All 276 Lines • Show Last 20 Lines |