Source code for mendeleev.db
import os
from sqlalchemy import create_engine
from sqlalchemy.orm import sessionmaker, Session
from sqlalchemy.engine.base import Engine
DBNAME = "elements.db"
def get_package_dbpath() -> str:
"""Return the default database path"""
return os.path.join(os.path.abspath(os.path.dirname(__file__)), DBNAME)
[docs]
def get_engine(dbpath: str = None) -> Engine:
"""Return the db engine"""
if not dbpath:
dbpath = get_package_dbpath()
return create_engine("sqlite:///{path:s}".format(path=dbpath), echo=False)
[docs]
def get_session(dbpath: str = None) -> Session:
"""Return the database session connection."""
engine = get_engine(dbpath=dbpath)
db_session = sessionmaker(bind=engine, autoflush=False, autocommit=False)
return db_session()