<commit_before>import abc
import typing as t

from aiohttp import web

import enum


class Status(enum.Enum):
    SIGNED = 1
    NOT_SIGNED = 2
    MISSING_USERNAME = 3


class ServerHost(metaclass=abc.ABCMeta):

    """Abstract base class for the server hosting platform."""

    @abc.abstractmethod
    def port(self) -> int:
        """Specify the port to bind the listening socket to."""


class ContribHost(metaclass=abc.ABCMeta):

    """Abstract base class for the contribution/pull request platform."""

    @property
    @abc.abstractstaticmethod
    def route() -> t.Tuple[str, str]:
        return '*', '/'

    @abc.abstractclassmethod
    async def process(cls, request: t.Any) -> t.Optional['ContribHost']:
        """Process a request, returning None if there's nothing to do."""
        return None

    @abc.abstractstaticmethod
    def nothing_to_do() -> web.StreamResponse:
        """Respond to the contribution, signaling there's nothing to do."""
        return web.Response(status=501)

    @abc.abstractmethod
    async def usernames(self) -> t.Iterable[str]:
        """Return an iterable with all of the contributors' usernames."""
        return []

    @abc.abstractmethod
    async def update(self, status: Status) -> web.StreamResponse:
        return web.Response(status=501)


class CLAHost(metaclass=abc.ABCMeta):

    """Abstract base class for the CLA records platform."""

    @abc.abstractmethod
    async def check(self, usernames: t.Iterable[str]) -> Status:
        """Check if all of the specified usernames have signed the CLA."""
        return Status.MISSING_USERNAME<commit_msg>Don't cover default values from abc<commit_after>import abc
import typing as t

from aiohttp import web

import enum


class Status(enum.Enum):
    SIGNED = 1
    NOT_SIGNED = 2
    MISSING_USERNAME = 3


class ServerHost(metaclass=abc.ABCMeta):

    """Abstract base class for the server hosting platform."""

    @abc.abstractmethod
    def port(self) -> int:
        """Specify the port to bind the listening socket to."""
        raise NotImplementedError


class ContribHost(metaclass=abc.ABCMeta):

    """Abstract base class for the contribution/pull request platform."""

    @property
    @abc.abstractstaticmethod
    def route() -> t.Tuple[str, str]:
        return '*', '/'  # pragma: no cover

    @abc.abstractclassmethod
    async def process(cls, request: t.Any) -> t.Optional['ContribHost']:
        """Process a request, returning None if there's nothing to do."""

    @abc.abstractstaticmethod
    def nothing_to_do() -> web.StreamResponse:
        """Respond to the contribution, signaling there's nothing to do."""
        return web.Response(status=501)    # pragma: no cover

    @abc.abstractmethod
    async def usernames(self) -> t.Iterable[str]:
        """Return an iterable with all of the contributors' usernames."""
        return []    # pragma: no cover

    @abc.abstractmethod
    async def update(self, status: Status) -> web.StreamResponse:
        return web.Response(status=501)    # pragma: no cover


class CLAHost(metaclass=abc.ABCMeta):

    """Abstract base class for the CLA records platform."""

    @abc.abstractmethod
    async def check(self, usernames: t.Iterable[str]) -> Status:
        """Check if all of the specified usernames have signed the CLA."""
        return Status.MISSING_USERNAME    # pragma: no cover
{'fraction_non_alphanumeric': 0.1088495575221239, 'fraction_numerical': 0.005309734513274336, 'mean_word_length': 3.1404151404151404, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 17, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '160457', 'n_tokens_mistral': 1000, 'n_tokens_neox': 945, 'n_words': 315}