mirror of
https://github.com/RGBCube/GitHubWrapper
synced 2025-05-16 14:15:00 +00:00
Update readthedocs version (might break stuff)
This commit is contained in:
parent
0d10386c39
commit
17b813532d
14 changed files with 67 additions and 70 deletions
|
@ -1,7 +1,7 @@
|
|||
import logging
|
||||
import sys
|
||||
import os
|
||||
import re
|
||||
import sys
|
||||
|
||||
# If extensions (or modules to document with autodoc) are in another directory,
|
||||
# add these directories to sys.path here. If the directory is relative to the
|
||||
|
@ -85,7 +85,7 @@ with open('../github/__init__.py') as f:
|
|||
release = version
|
||||
|
||||
# This assumes a tag is available for final releases
|
||||
branch = 'master' if version.endswith('a') else 'v' + version
|
||||
branch = 'master' if version.endswith('a') else f"v{version}"
|
||||
|
||||
# The language for content autogenerated by Sphinx. Refer to documentation
|
||||
# for a list of supported languages.
|
||||
|
|
|
@ -1,8 +1,9 @@
|
|||
from __future__ import annotations
|
||||
|
||||
import importlib
|
||||
import inspect
|
||||
import re
|
||||
from typing import Dict, List, NamedTuple, Optional, Tuple, Sequence, TYPE_CHECKING
|
||||
from typing import TYPE_CHECKING, Dict, List, NamedTuple, Optional, Sequence, Tuple
|
||||
|
||||
from docutils import nodes
|
||||
from sphinx import addnodes
|
||||
|
|
|
@ -42,7 +42,7 @@ class DPYStandaloneHTMLBuilder(StandaloneHTMLBuilder):
|
|||
self.handle_page('genindex-all', genindexcontext, 'genindex.html')
|
||||
for (key, entries), count in zip(genindex, indexcounts):
|
||||
ctx = {'key': key, 'entries': entries, 'count': count, 'genindexentries': genindex}
|
||||
self.handle_page('genindex-' + key, ctx, 'genindex-single.html')
|
||||
self.handle_page(f"genindex-{key}", ctx, 'genindex-single.html')
|
||||
else:
|
||||
self.handle_page('genindex', genindexcontext, 'genindex.html')
|
||||
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
from docutils.parsers.rst import Directive
|
||||
from docutils.parsers.rst import states, directives # type: ignore
|
||||
from docutils.parsers.rst.roles import set_classes
|
||||
from docutils import nodes
|
||||
from docutils.parsers.rst import directives # type: ignore
|
||||
from docutils.parsers.rst import Directive
|
||||
from docutils.parsers.rst.roles import set_classes
|
||||
|
||||
|
||||
class details(nodes.General, nodes.Element):
|
||||
|
|
|
@ -1,8 +1,5 @@
|
|||
from docutils.parsers.rst import Directive
|
||||
from docutils.parsers.rst import states, directives # type: ignore
|
||||
from docutils.parsers.rst.roles import set_classes
|
||||
from docutils import nodes
|
||||
from sphinx.locale import _
|
||||
from docutils.parsers.rst import Directive
|
||||
|
||||
|
||||
class exception_hierarchy(nodes.General, nodes.Element):
|
||||
|
|
|
@ -4,11 +4,10 @@
|
|||
|
||||
from typing import Any, Dict, List, Tuple
|
||||
|
||||
import sphinx
|
||||
from docutils import nodes, utils
|
||||
from docutils.nodes import Node, system_message
|
||||
from docutils.parsers.rst.states import Inliner
|
||||
|
||||
import sphinx
|
||||
from sphinx.application import Sphinx
|
||||
from sphinx.util.nodes import split_explicit_title
|
||||
from sphinx.util.typing import RoleFunction
|
||||
|
|
|
@ -7,7 +7,7 @@ __license__ = 'MIT'
|
|||
__copyright__ = 'Copyright (c) 2022-present VarMonke & sudosnok'
|
||||
|
||||
from .client import *
|
||||
from .objects import *
|
||||
from .http import *
|
||||
from .urls import *
|
||||
from .exceptions import *
|
||||
from .http import *
|
||||
from .objects import *
|
||||
from .urls import *
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
from __future__ import annotations
|
||||
|
||||
from collections import deque
|
||||
from typing import Any, Deque, Tuple, TypeVar, Dict
|
||||
from typing import Any, Deque, Dict, Tuple, TypeVar
|
||||
|
||||
__all__: Tuple[str, ...] = ('ObjectCache',)
|
||||
|
||||
|
|
|
@ -2,29 +2,29 @@
|
|||
from __future__ import annotations
|
||||
|
||||
import functools
|
||||
import aiohttp
|
||||
|
||||
from typing import (
|
||||
Any,
|
||||
Awaitable,
|
||||
Callable,
|
||||
Literal,
|
||||
Any,
|
||||
Coroutine,
|
||||
Dict,
|
||||
Generator,
|
||||
List,
|
||||
Literal,
|
||||
Optional,
|
||||
Tuple,
|
||||
Union,
|
||||
List,
|
||||
overload,
|
||||
TypeVar,
|
||||
Union,
|
||||
overload,
|
||||
)
|
||||
from typing_extensions import Self, ParamSpec, Concatenate
|
||||
|
||||
import aiohttp
|
||||
from typing_extensions import Concatenate, ParamSpec, Self
|
||||
|
||||
from . import exceptions
|
||||
from .cache import ObjectCache
|
||||
from .http import http
|
||||
from .objects import Gist, Issue, Organization, Repository, User, File
|
||||
from .objects import File, Gist, Issue, Organization, Repository, User
|
||||
|
||||
__all__: Tuple[str, ...] = ('GHClient', 'Client')
|
||||
|
||||
|
|
|
@ -65,7 +65,7 @@ class Ratelimited(APIError):
|
|||
|
||||
def __init__(self, reset_time: datetime.datetime):
|
||||
formatted = reset_time.strftime(r"%H:%M:%S %A, %d %b")
|
||||
msg = "We're being ratelimited, wait until {}.\nAuthentication raises the ratelimit.".format(formatted)
|
||||
msg = f"We're being ratelimited, wait until {formatted}.\nAuthentication raises the ratelimit."
|
||||
super().__init__(msg)
|
||||
|
||||
|
||||
|
|
|
@ -1,27 +1,21 @@
|
|||
# == http.py ==#
|
||||
|
||||
from __future__ import annotations
|
||||
from asyncio.base_subprocess import ReadSubprocessPipeProto
|
||||
from base64 import b64encode
|
||||
|
||||
import json
|
||||
import platform
|
||||
import re
|
||||
from datetime import datetime
|
||||
from types import SimpleNamespace
|
||||
from typing import Any, Dict, Literal, NamedTuple, Optional, Type, Tuple, Union, List
|
||||
from typing_extensions import TypeAlias, reveal_type
|
||||
import platform
|
||||
from typing import Any, Dict, List, NamedTuple, Optional, Tuple, Type, Union
|
||||
|
||||
import aiohttp
|
||||
from typing_extensions import TypeAlias
|
||||
|
||||
from .exceptions import *
|
||||
from .exceptions import GistNotFound, RepositoryAlreadyExists, MissingPermissions
|
||||
from .exceptions import FileAlreadyExists
|
||||
from .exceptions import ResourceAlreadyExists
|
||||
from .exceptions import Ratelimited
|
||||
from .objects import User, Gist, Repository, File, bytes_to_b64
|
||||
from .urls import *
|
||||
from . import __version__
|
||||
from .exceptions import *
|
||||
from .objects import File, Gist, Repository, User, bytes_to_b64
|
||||
from .urls import *
|
||||
|
||||
__all__: Tuple[str, ...] = (
|
||||
'Paginator',
|
||||
|
@ -73,9 +67,10 @@ APIType: TypeAlias = Union[User, Gist, Repository]
|
|||
async def make_session(*, headers: Dict[str, str], authorization: Union[aiohttp.BasicAuth, None]) -> aiohttp.ClientSession:
|
||||
"""This makes the ClientSession, attaching the trace config and ensuring a UA header is present."""
|
||||
if not headers.get('User-Agent'):
|
||||
headers[
|
||||
'User-Agent'
|
||||
] = f'Github-API-Wrapper (https://github.com/VarMonke/Github-Api-Wrapper) @ {__version__} Python {platform.python_version()} aiohttp {aiohttp.__version__}'
|
||||
headers['User-Agent'] = (
|
||||
f'Github-API-Wrapper (https://github.com/VarMonke/Github-Api-Wrapper) @ {__version__} Python'
|
||||
f' {platform.python_version()} aiohttp {aiohttp.__version__}'
|
||||
)
|
||||
|
||||
session = aiohttp.ClientSession(auth=authorization, headers=headers, trace_configs=[trace_config])
|
||||
session._rates = Rates('', '', '', '', '')
|
||||
|
@ -140,9 +135,10 @@ class Paginator:
|
|||
class http:
|
||||
def __init__(self, headers: Dict[str, Union[str, int]], auth: Union[aiohttp.BasicAuth, None]) -> None:
|
||||
if not headers.get('User-Agent'):
|
||||
headers[
|
||||
'User-Agent'
|
||||
] = f'Github-API-Wrapper (https://github.com/VarMonke/Github-Api-Wrapper) @ {__version__} Python/{platform.python_version()} aiohttp/{aiohttp.__version__}'
|
||||
headers['User-Agent'] = (
|
||||
'Github-API-Wrapper (https://github.com/VarMonke/Github-Api-Wrapper) @'
|
||||
f' {__version__} Python/{platform.python_version()} aiohttp/{aiohttp.__version__}'
|
||||
)
|
||||
|
||||
self._rates = Rates('', '', '', '', '')
|
||||
self.headers = headers
|
||||
|
|
|
@ -1,18 +1,15 @@
|
|||
# == objects.py ==#
|
||||
from __future__ import annotations
|
||||
|
||||
from base64 import b64encode
|
||||
import json
|
||||
|
||||
from typing import TYPE_CHECKING, Any, Literal, Optional, Tuple, Union, Dict, List
|
||||
|
||||
import aiohttp
|
||||
from typing import TYPE_CHECKING, Any, Dict, List, Optional, Tuple, Union
|
||||
|
||||
if TYPE_CHECKING:
|
||||
from .http import http
|
||||
|
||||
from datetime import datetime
|
||||
import io
|
||||
import os
|
||||
from datetime import datetime
|
||||
|
||||
__all__: Tuple[str, ...] = (
|
||||
'APIObject',
|
||||
|
@ -201,7 +198,7 @@ class Repository(APIObject):
|
|||
'id',
|
||||
'name',
|
||||
'owner',
|
||||
'size' 'created_at',
|
||||
'sizecreated_at',
|
||||
'url',
|
||||
'html_url',
|
||||
'archived',
|
||||
|
@ -346,7 +343,10 @@ class Issue(APIObject):
|
|||
continue
|
||||
|
||||
def __repr__(self) -> str:
|
||||
return f'<{self.__class__.__name__} id: {self.id}, title: {self.title}, user: {self.user}, created_at: {self.created_at}, state: {self.state}>'
|
||||
return (
|
||||
f'<{self.__class__.__name__} id: {self.id}, title: {self.title}, user: {self.user}, created_at:'
|
||||
f' {self.created_at}, state: {self.state}>'
|
||||
)
|
||||
|
||||
@property
|
||||
def updated_at(self) -> Optional[datetime]:
|
||||
|
@ -518,7 +518,10 @@ class Organization(APIObject):
|
|||
continue
|
||||
|
||||
def __repr__(self):
|
||||
return f'<{self.__class__.__name__} login: {self.login!r}, id: {self.id}, is_verified: {self.is_verified}, public_repos: {self.public_repos}, public_gists: {self.public_gists}, created_at: {self.created_at}>'
|
||||
return (
|
||||
f'<{self.__class__.__name__} login: {self.login!r}, id: {self.id}, is_verified: {self.is_verified},'
|
||||
f' public_repos: {self.public_repos}, public_gists: {self.public_gists}, created_at: {self.created_at}>'
|
||||
)
|
||||
|
||||
@property
|
||||
def description(self):
|
||||
|
|
|
@ -4,40 +4,40 @@ BASE_URL = 'https://api.github.com'
|
|||
|
||||
|
||||
# == user urls ==#
|
||||
USERS_URL = BASE_URL + '/users/{0}'
|
||||
USERS_URL = f"{BASE_URL}/users/{{0}}"
|
||||
|
||||
USER_HTML_URL = 'https://github.com/users/{0}'
|
||||
|
||||
SELF_URL = BASE_URL + '/user'
|
||||
SELF_URL = f"{BASE_URL}/user"
|
||||
|
||||
USER_REPOS_URL = USERS_URL + '/repos'
|
||||
USER_REPOS_URL = f"{USERS_URL}/repos"
|
||||
|
||||
USER_ORGS_URL = USERS_URL + '/orgs'
|
||||
USER_ORGS_URL = f"{USERS_URL}/orgs"
|
||||
|
||||
USER_GISTS_URL = USERS_URL + '/gists'
|
||||
USER_GISTS_URL = f"{USERS_URL}/gists"
|
||||
|
||||
USER_FOLLOWERS_URL = USERS_URL + '/followers'
|
||||
USER_FOLLOWERS_URL = f"{USERS_URL}/followers"
|
||||
|
||||
USER_FOLLOWING_URL = USERS_URL + '/following'
|
||||
USER_FOLLOWING_URL = f"{USERS_URL}/following"
|
||||
|
||||
|
||||
# == repo urls ==#
|
||||
CREATE_REPO_URL = BASE_URL + '/user/repos' # _auth repo create
|
||||
CREATE_REPO_URL = f"{BASE_URL}/user/repos" # _auth repo create
|
||||
|
||||
REPOS_URL = BASE_URL + '/repos/{0}' # repos of a user
|
||||
REPOS_URL = f"{BASE_URL}/repos/{{0}}" # repos of a user
|
||||
|
||||
REPO_URL = BASE_URL + '/repos/{0}/{1}' # a specific repo
|
||||
REPO_URL = f"{BASE_URL}/repos/{{0}}/{{1}}" # a specific repo
|
||||
|
||||
ADD_FILE_URL = BASE_URL + '/repos/{}/{}/contents/{}'
|
||||
ADD_FILE_URL = f"{BASE_URL}/repos/{{}}/{{}}/contents/{{}}"
|
||||
|
||||
ADD_FILE_BRANCH = BASE_URL + ''
|
||||
ADD_FILE_BRANCH = f"{BASE_URL}"
|
||||
|
||||
REPO_ISSUE_URL = REPO_URL + '/issues/{2}' # a specific issue
|
||||
REPO_ISSUE_URL = f"{REPO_URL}/issues/{{2}}" # a specific issue
|
||||
|
||||
# == gist urls ==#
|
||||
GIST_URL = BASE_URL + '/gists/{0}' # specific gist
|
||||
GIST_URL = f"{BASE_URL}/gists/{{0}}" # specific gist
|
||||
|
||||
CREATE_GIST_URL = BASE_URL + '/gists' # create a gist
|
||||
CREATE_GIST_URL = f"{BASE_URL}/gists" # create a gist
|
||||
|
||||
# == org urls ==#
|
||||
ORG_URL = BASE_URL + '/orgs/{0}'
|
||||
ORG_URL = f"{BASE_URL}/orgs/{{0}}"
|
||||
|
|
1
setup.py
1
setup.py
|
@ -1,5 +1,6 @@
|
|||
import re
|
||||
from pathlib import Path
|
||||
|
||||
from setuptools import setup
|
||||
|
||||
ROOT_DIR = Path(__file__).parent
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue