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
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
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
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
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 ]