Source code for db

import json
import os
import pandas as pd
import importlib.resources as pkg_resources


# Turns a dictionary into a class
# declaringa a class
class obj:
    # constructor
    def __init__(self, dict1):
        self.__dict__.update(dict1)


def dict2obj(dict1):
    # using json.loads method and passing json.dumps
    # method and custom object hook as arguments
    return json.loads(json.dumps(dict1), object_hook=obj)


database = {}
dirname = os.path.dirname(__file__)
db = json.loads(open(os.path.join(dirname,'eurocodes.json'),'r').read())["Eurocodes"]
db["SteelProfiles"]["Euro"] = json.loads(open(os.path.join(dirname,'prof_euro.json'),'r').read())

dbase = dict2obj(db)


def _get_database() -> dict:
    """[summary]
    Returns:
        dict: [description]
    """
    global database
    f = pkg_resources.open_text(__package__, 'eurocodes.json')
    #f = open(filename, "r")
    database = json.loads(f.read())
    return database


def _get_database2() -> dict:
    """[summary]
    Returns:
        dict: [description]
    """
    global database
    f = open(os.path.join(os.path.dirname(__file__),'eurocodes.json'),'r')
    #f = open(filename, "r")
    database = json.loads(f.read())
    return database


[docs]def get_eurocodes() -> dict: """Gets the euroocodes database Returns: dict: eurocodes database """ return db
[docs]def get_materials() -> dict: """Gets all the materials in the database Returns: dict: all the materials in the database """ return db["Materials"]
[docs]def get_timber() -> dict: """Gets the timber (solid and glulam) classes Returns: dict: the timber (solid and glulam) classes """ return db["Materials"]["Timber"]
[docs]def get_timber_classes() -> dict: """Gets the timber (solid and glulam) classes Returns: dict: the timber (solid and glulam) classes """ return db["Materials"]["Timber"]["Classes"]
[docs]def get_concrete() -> dict: """Gets the concrete classes Returns: dict: the concrete classes """ return db["Materials"]["Concrete"]["Classes"]
[docs]def get_prestress() -> dict: """Gets the prestrress steel classes Returns: dict: the prestrress steel classes """ return db["Materials"]["Prestress"]
[docs]def get_reinforcement() -> dict: """Gets the reinforcement steel classes Returns: dict: the reinforcement steel classes """ return db["Materials"]["Reinforcement"]
Reinforcement = db["Materials"]["Reinforcement"] ReinforcementClasses = Reinforcement["Classes"] ReinforcementBars = Reinforcement["Rebars"] ReinforcementParams = Reinforcement["Parameters"] #ReinforcementClasses = db["Materials"]["Reinforcement"]["Classes"] Concrete = db["Materials"]["Concrete"] ConcreteClasses = Concrete["Classes"] ConcreteParams = Concrete["Parameters"] Prestress = db["Materials"]["Prestress"] PrestressClasses = Prestress["Classes"] PrestressParams = Prestress["Parameters"] Timber = db["Materials"]["Timber"] TimberClasses = Timber["Classes"] TimberParams = Timber["Parameters"] TimberLoadDuration = Timber["LoadDuration"] Steel = db["Materials"]["Steel"] SteelClasses = Steel["Classes"] SteelParams = Steel["Parameters"] Bolts = db["Materials"]["Bolts"] BoltClasses = Bolts["Classes"] BoltDiameters = Bolts["Diameters"] SteelProfiles = db["SteelProfiles"]["Euro"]