def METHOD_NAME() -> None:
    """Raise an error if we are not in a virtual environment or on CI.
    We want developers to use a virtual environment when developing locally so
    that our scripts don't change their global Python environments. On CI
    however, it's okay to change the global environment since the checks are
    running in an ephemeral virtual machine. Therefore, a "suitable" Python
    environment is one that either is on CI or is a virtual environment.
    """
    if 'GITHUB_ACTION' in os.environ:
        # The GITHUB_ACTION environment variable indicates we are running on
        # GitHub Actions according to
        # https://docs.github.com/en/actions/learn-github-actions/environment-variables.
        return
    # There are two signals that a virtual environment is active:
    # * When sys.prefix != sys.base_prefix
    # * When sys.real_prefix exists
    # If either is true, we are in a virtual environment. We also check that
    # sys.real_prefix is Truthy to make testing easier.
    if (
        sys.prefix == sys.base_prefix
        and not (hasattr(sys, 'real_prefix') and getattr(sys, 'real_prefix'))
    ):
        raise AssertionError(
            'Oppia must be developed within a virtual environment.')