Source code for evergreen.project
# -*- encoding: utf-8 -*-
"""Evergreen representation of a project."""
from __future__ import absolute_import
from typing import TYPE_CHECKING, Any, Dict
from evergreen.base import _BaseEvergreenObject, evg_attrib
from evergreen.version import Version
if TYPE_CHECKING:
from evergreen.api import EvergreenApi
[docs]class Project(_BaseEvergreenObject):
"""Representation of an Evergreen project."""
batch_time = evg_attrib("batch_time")
branch_name = evg_attrib("branch_name")
display_name = evg_attrib("display_name")
enabled = evg_attrib("enabled")
identifier = evg_attrib("identifier")
id = evg_attrib("id")
owner_name = evg_attrib("owner_name")
private = evg_attrib("private")
remote_path = evg_attrib("remote_path")
repo_name = evg_attrib("repo_name")
tracked = evg_attrib("tracked")
deactivated_previous = evg_attrib("deactivate_previous")
admins = evg_attrib("admins")
tracks_push_events = evg_attrib("tracks_push_events")
pr_testing_enabled = evg_attrib("pr_testing_enabled")
commit_queue = evg_attrib("commit_queue")
def __init__(self, json: Dict[str, Any], api: "EvergreenApi") -> None:
"""
Create an instance of an evergreen project.
:param json: json representing project.
:param api: evergreen api object.
"""
super(Project, self).__init__(json, api)
def __str__(self) -> str:
"""Get a string version of the Project."""
return self.identifier
[docs] def most_recent_version(self) -> Version:
"""
Fetch the most recent version.
:return: Version queried for.
"""
version_iterator = self._api.versions_by_project(self.identifier)
return next(version_iterator)