Module ogr.read_only

Functions

def if_readonly(*,
return_value: Any | None = None,
return_function: Callable | None = None,
log_message: str = '') ‑> Any

Decorator to log function and ovewrite return value of object methods. Ignore function name as first parameter and ignore every other parameters.

Args

return_value

Returned value if given, return_function has higher priority if set.

Defaults to None.

return_function

Returned function with applies arguments and original caller.

Defaults to None.

log_message

String to be put to logger output.

Defaults to "".

Returns

Any value that is expected to be returned from the function call or the specificied return value.

def log_output(text: str,
default_prefix: str = 'READ ONLY: ',
namespace: str = 'ogr.read_only') ‑> None

Logs output.

Args

text
Text message to be logged.
default_prefix

Prefix of the log message.

Defaults to DEFAULT_RO_PREFIX_STRING.

namespace

Namespace where the message comes from.

Defaults to __name__.

Classes

class GitProjectReadOnly
Expand source code
class GitProjectReadOnly:
    id = 1
    author = "ReadOnlyAuthor"
    url = "url://ReadOnlyURL"

    @classmethod
    def create_pr(
        cls,
        original_object: Any,
        title: str,
        body: str,
        target_branch: str,
        source_branch: str,
        fork_username: Optional[str] = None,
    ) -> "PullRequest":
        return PullRequestReadOnly(
            title=title,
            description=body,
            target_branch=target_branch,
            source_branch=source_branch,
            id=cls.id,
            status=PRStatus.open,
            url=cls.url,
            author=cls.author,
            created=datetime.datetime.now(),
        )

    @classmethod
    def pr_comment(
        cls,
        original_object: Any,
        pr_id: int,
        body: str,
        commit: Optional[str] = None,
        filename: Optional[str] = None,
        row: Optional[int] = None,
    ) -> "PRComment":
        pull_request = original_object.get_pr(pr_id)
        log_output(pull_request)
        return PRComment(
            parent=pull_request,
            body=body,
            author=cls.author,
            created=datetime.datetime.now(),
            edited=datetime.datetime.now(),
        )

    @classmethod
    def pr_close(cls, original_object: Any, pr_id: int) -> "PullRequest":
        pull_request = original_object.get_pr(pr_id)
        pull_request._status = PRStatus.closed
        return pull_request

    @classmethod
    def pr_merge(cls, original_object: Any, pr_id: int) -> "PullRequest":
        pull_request = original_object.get_pr(pr_id)
        pull_request._status = PRStatus.merged
        return pull_request

    @classmethod
    def issue_comment(
        cls,
        original_object: Any,
        issue_id: int,
        body: str,
    ) -> "IssueComment":
        issue = original_object.get_issue(issue_id)
        log_output(issue)
        return IssueComment(
            parent=issue,
            body=body,
            author=cls.author,
            created=datetime.datetime.now(),
            edited=datetime.datetime.now(),
        )

    @classmethod
    def fork_create(
        cls,
        original_object: Any,
        namespace: Optional[str] = None,
    ) -> "GitProject":
        return original_object

    @classmethod
    def commit_comment(
        cls,
        original_object: Any,
        commit: str,
        body: str,
    ) -> "CommitComment":
        return CommitComment(sha=commit, raw_comment=original_object)

    @classmethod
    def set_commit_status(
        cls,
        original_object: Any,
        commit: str,
        state: CommitStatus,
        context: str,
    ) -> "CommitFlag":
        return CommitFlag(commit=commit, state=state, context=context)

Class variables

var author
var id
var url

Static methods

def commit_comment(original_object: Any, commit: str, body: str) ‑> CommitComment
def create_pr(original_object: Any,
title: str,
body: str,
target_branch: str,
source_branch: str,
fork_username: str | None = None) ‑> PullRequest
def fork_create(original_object: Any, namespace: str | None = None) ‑> GitProject
def issue_comment(original_object: Any, issue_id: int, body: str) ‑> IssueComment
def pr_close(original_object: Any, pr_id: int) ‑> PullRequest
def pr_comment(original_object: Any,
pr_id: int,
body: str,
commit: str | None = None,
filename: str | None = None,
row: int | None = None) ‑> PRComment
def pr_merge(original_object: Any, pr_id: int) ‑> PullRequest
def set_commit_status(original_object: Any,
commit: str,
state: CommitStatus,
context: str) ‑> CommitFlag
class PullRequestReadOnly (title: str,
description: str,
target_branch: str,
source_branch: str,
id: int,
status: PRStatus,
url: str,
author: str,
created: datetime.datetime)

Attributes

project : GitProject
Project of the pull request.
Expand source code
class PullRequestReadOnly(PullRequest):
    def __init__(
        self,
        title: str,
        description: str,
        target_branch: str,
        source_branch: str,
        id: int,
        status: PRStatus,
        url: str,
        author: str,
        created: datetime.datetime,
    ) -> None:
        self._title = title
        self._description = description
        self._target_branch = target_branch
        self._source_branch = source_branch
        self._id = id
        self._status = PRStatus.open
        self._url = url
        self._author = author
        self._created = created

    @property
    def title(self) -> str:
        return self._title

    @title.setter
    def title(self, new_title: str) -> None:
        self._title = new_title

    @property
    def id(self) -> int:
        return self._id

    @property
    def status(self) -> PRStatus:
        return self._status

    @property
    def url(self) -> str:
        return self._url

    @property
    def description(self) -> str:
        return self._description

    @description.setter
    def description(self, new_description: str) -> None:
        self._description = new_description

    @property
    def author(self) -> str:
        return self._author

    @property
    def source_branch(self) -> str:
        return self._source_branch

    @property
    def target_branch(self) -> str:
        return self._target_branch

    @property
    def created(self) -> datetime.datetime:
        return self._created

Ancestors

Inherited members