#!/usr/bin/python3

import os
import sys


def get_design_path(design):
    path = os.path.join(
            os.getcwd(),
            './designs/{design}/'.format(
                design=design
                )
            )

    return path
def get_run_path(design, tag):
    DEFAULT_PATH = os.path.join(
            os.getcwd(),
            get_design_path(design),
            'runs/{tag}/'.format(
                tag=tag
                )
            )

    return DEFAULT_PATH
