Skip to content
Snippets Groups Projects
Select Git revision
  • 844dc097914aa22809c64b32d6bb29dd0d577532
  • master default protected
2 results

values.py

Blame
  • values.py 926 B
    from sqlalchemy import create_engine, Column, Integer, Float
    from sqlalchemy.ext.declarative import declarative_base
    from sqlalchemy.orm import sessionmaker
    
    
    Persisted = declarative_base()
    
    
    class Value(Persisted):
        __tablename__ = 'values'
        value_id = Column(Integer, primary_key=True)
        value = Column(Float)
    
    
    class ValueDatabase(object):
        @staticmethod
        def construct_mysql_url(authority, port, database, username, password):
            return f'mysql+mysqlconnector://{username}:{password}@{authority}:{port}/{database}'
    
        @staticmethod
        def construct_in_memory_url():
            return 'sqlite:///'
    
        def __init__(self, url):
            self.engine = create_engine(url)
            self.Session = sessionmaker()
            self.Session.configure(bind=self.engine)
    
        def ensure_tables_exist(self):
            Persisted.metadata.create_all(self.engine)
    
        def create_session(self):
            return self.Session()