Skip to main content

Medical Procurement of Ukraine DataLakeHouse project.

Project description

Dbm

Project with usefull utilities for managing you DB.

Usage

Config

1. Config via dict

Create you config in dictionary:

config = {
    "dms": "mysql",
    "host": "host",
    "port": "port",
    "user": "<your user>",
    "password": "<your password>",
    "database": "<your_db_name>"
}

IMPORTANT : Make sure to use ENV variables for user and password:

Example

user = os.environ.get('MYSQL_PROD_USER')
password = os.environ.get('MYSQL_PROD_PWD')

2. class config

Alternatively - you can create it dirrectly in DBmanagerConfig class.

from dbmanager import DBmanagerConfig

conf = return DBmanagerConfig(
    'mysql',
    '<your database>',
    user,
    password,
    host='host',
    port='port')

DBmanager creation

from dmanager import make_db_manager
from sqlalchemy import MetaData

metadata = MetaData()

dbm = make_db_manager(config, metadata)

metadata - sqlalchemy class for storing all infor about tales. Even if you dont have it yet in your project - you must create it.

DBmanager usage example

import pandas as pd
from sqlalchemy import Integer, MetaData
from sqlalchemy.orm import DeclarativeBase, mapped_column, Mapped

from dbmanager import make_db_manager
from dbmanager.manager import DBmanager

METADATA = MetaData()

def make_dbm(dbms: str) -> DBmanager:
    config['dbms'] = dbms
    return make_db_manager(config, METADATA)

class Base(DeclarativeBase):
    metadata = METADATA


class FooTable(Base):
    __tablename__ = 'foo_bar_table'

    id: Mapped[int] = mapped_column(Integer, primapy_key=True)
    data: Mapped[str]



if __name__ == '__main__':
    dbm = make_dbm('mysql')
    dbm.create_table(FooTable)
    data = pd.read_csv('somecsv.csv')
    dbm.upsert(FooTable, data)

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

warehouser-0.3.8.tar.gz (19.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

warehouser-0.3.8-py3-none-any.whl (22.2 kB view details)

Uploaded Python 3

File details

Details for the file warehouser-0.3.8.tar.gz.

File metadata

  • Download URL: warehouser-0.3.8.tar.gz
  • Upload date:
  • Size: 19.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.10.12

File hashes

Hashes for warehouser-0.3.8.tar.gz
Algorithm Hash digest
SHA256 8a7f897b14a3d22944bcfe9ceddf79caeda95aeb15b0541d4b94af0a8c82acd3
MD5 a6231a0abe6cb20c767ea79c71c3c73c
BLAKE2b-256 32872dec32f8f068038a8bf80bb65f10d3753655e40c54568f2e9dbfd9c28d5d

See more details on using hashes here.

File details

Details for the file warehouser-0.3.8-py3-none-any.whl.

File metadata

  • Download URL: warehouser-0.3.8-py3-none-any.whl
  • Upload date:
  • Size: 22.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.10.12

File hashes

Hashes for warehouser-0.3.8-py3-none-any.whl
Algorithm Hash digest
SHA256 c602e80b521f5053cc3d5573ccd0dc7a53d9f027ab7c52222df84e776c7f7b6d
MD5 e020e0e6520984f5849b547bc3196b2c
BLAKE2b-256 1e2144a086a35b324243ab6258b85b801dd597c338693fa63af097a2c11c0735

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page