Пример #1
0
def _load_yaml_config(path):
    with open(path, "r") as f:
        config = yaml.load(f)

    projects = []
    for project in config[PROJECTS_KEY]:
        p = Project(name=project["name"],
                    organization=project.get("organization"),
                    desc=project.get("desc"))
        for metric in project["metrics"]:
            metric_type = [m for m in metric_types
                           if m.__name__ == metric["metric_type"]]
            if not len(metric_type):
                raise ConfigError("No metric type defined named " +
                                  metric["metric_type"])

            p.add_metric(name=metric["name"],
                         metric_type=metric_type[0],
                         desc=metric.get("desc"),
                         value_range=metric.get("value_range"),
                         default_value=metric.get("default_value"))

        projects.append(p)

    return projects
Пример #2
0
def project(db_session):
    p = Project(name="test", desc="Test Project")

    p.add_metric(name="Story Points",
                 metric_type=Number,
                 value_range=[1, 2, 3, 5, 8],
                 default_value=3)

    p.add_metric(name="Compile Time",
                 desc="Total amount of time spent compiling app",
                 metric_type=Duration)

    db_session.add(p)
    db_session.commit()

    return p
Пример #3
0
    def get(self, name, organization=None):
        """Get project from the repository with the corresponding name and
        organization.

        :param name: The name of the project.  Valid names include
         fully-qualified names that are prefixed with the organization the
         project belongs to (for instance, `scopetastic/maxify`).  For
         projects not belonging to an organization, an example would be
        `maxify`.
        :param organization: The project's organization.  By default, this is
         `None`, meaning that the project belongs to no organization.

        :return: The project, or `None` if not found.

        """
        if organization is None:
            organization, name = Project.split_qualfied_name(name)

        try:
            project = self.db_session.query(Project) \
                .filter_by(name=name, organization=organization) \
                .one()
            project.unpack()
            return project
        except NoResultFound:
            return None
Пример #4
0
def org1_project(db_session):
    p = Project(name="org1_project",
                organization="org1",
                desc="Org1 Project")

    p.add_metric(name="Story Points",
                 metric_type=Number,
                 value_range=[1, 2, 3, 5, 8],
                 default_value=3)

    p.add_metric(name="Compile Time",
                 metric_type=Duration)

    db_session.add(p)
    db_session.commit()

    return p
Пример #5
0
from maxify.projects import Project, Number, Duration

project1 = Project(name="nep", desc="NEP project")
project1.add_metric(name="Story Points",
                    metric_type=Number,
                    value_range=[1, 2, 3, 5, 8, 13],
                    default_value=1)
project1.add_metric(name="Final Story Points",
                    metric_type=Number,
                    value_range=[1, 2, 3, 5, 8, 13],
                    default_value=1)
project1.add_metric(name="Research Time",
                    metric_type=Duration)
project1.add_metric(name="Coding Time",
                    metric_type=Duration)
project1.add_metric(name="Test Time",
                    metric_type=Duration)
project1.add_metric(name="Debug Time",
                    metric_type=Duration)
project1.add_metric(name="Tool Overhead",
                    metric_type=Duration)

project2 = Project(name="test", desc="Test Project")
project2.add_metric(name="Coding Time",
                    metric_type=Duration)

projects = [
    project1,
    project2
]