From c115c9e8fd9ea3da2151818338137fe87e1aa99f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=87a=C4=9F=C4=B1l=20Ulu=C5=9Fahin?= Date: Tue, 10 Nov 2026 15:15:30 +0000 Subject: [PATCH] Organise top level API into a core module --- src/hip/__init__.py | 22 ++++++------- src/hip/backends/sync.py | 4 +-- src/hip/{_body.py => body.py} | 2 +- src/hip/{_client.py => client.py} | 10 +++--- src/hip/core/__init__.py | 32 +++++++++++++++++++ src/hip/{_content.py => core/content.py} | 4 +-- src/hip/{_forms.py => core/forms.py} | 8 ++--- src/hip/{_headers.py => core/headers.py} | 0 .../{_queryparams.py => core/queryparams.py} | 2 +- src/hip/{_request.py => core/request.py} | 6 ++-- src/hip/{_response.py => core/response.py} | 4 +-- src/hip/{_streams.py => core/streams.py} | 0 src/hip/{_timeouts.py => core/timeouts.py} | 0 src/hip/{_urlencode.py => core/urlencode.py} | 0 src/hip/{_urlparse.py => core/urlparse.py} | 0 src/hip/{_urls.py => core/urls.py} | 6 ++-- src/hip/parsers/http.py | 2 +- src/hip/parsers/readahead.py | 2 +- src/hip/{_server.py => server.py} | 12 +++---- src/hip/transports/base.py | 12 +++---- src/hip/transports/connection.py | 14 ++++---- src/hip/transports/pool.py | 4 +-- 22 files changed, 89 insertions(+), 57 deletions(-) rename src/hip/{_body.py => body.py} (98%) rename src/hip/{_client.py => client.py} (95%) create mode 100644 src/hip/core/__init__.py rename src/hip/{_content.py => core/content.py} (98%) rename src/hip/{_forms.py => core/forms.py} (98%) rename src/hip/{_headers.py => core/headers.py} (100%) rename src/hip/{_queryparams.py => core/queryparams.py} (99%) rename src/hip/{_request.py => core/request.py} (96%) rename src/hip/{_response.py => core/response.py} (98%) rename src/hip/{_streams.py => core/streams.py} (100%) rename src/hip/{_timeouts.py => core/timeouts.py} (100%) rename src/hip/{_urlencode.py => core/urlencode.py} (100%) rename src/hip/{_urlparse.py => core/urlparse.py} (100%) rename src/hip/{_urls.py => core/urls.py} (99%) rename src/hip/{_server.py => server.py} (95%) diff --git a/src/hip/__init__.py b/src/hip/__init__.py index 9acc4bc..a092597 100644 --- a/src/hip/__init__.py +++ b/src/hip/__init__.py @@ -1,15 +1,15 @@ from . import backends, parsers, transports -from ._client import Client -from ._content import HTML, JSON, Binary, Content, Text -from ._forms import File, Files, Form, MultiPart -from ._headers import Headers -from ._queryparams import QueryParams -from ._request import Method, Request -from ._response import Response, StatusCode -from ._server import Server -from ._streams import Stream -from ._timeouts import sleep, timeout -from ._urls import URL +from .client import Client +from .core.content import HTML, JSON, Binary, Content, Text +from .core.forms import File, Files, Form, MultiPart +from .core.headers import Headers +from .core.queryparams import QueryParams +from .core.request import Method, Request +from .core.response import Response, StatusCode +from .core.streams import Stream +from .core.timeouts import sleep, timeout +from .core.urls import URL +from .server import Server __all__ = [ "HTML", diff --git a/src/hip/backends/sync.py b/src/hip/backends/sync.py index 1bc4562..3fdaab0 100644 --- a/src/hip/backends/sync.py +++ b/src/hip/backends/sync.py @@ -12,8 +12,8 @@ # Once we drop 3.10 support, we can use 'typing.Self'. from typing_extensions import Self -from .._streams import Stream -from .._timeouts import get_current_timeout +from ..core.streams import Stream +from ..core.timeouts import get_current_timeout __all__ = ["NetworkBackend", "NetworkStream"] diff --git a/src/hip/_body.py b/src/hip/body.py similarity index 98% rename from src/hip/_body.py rename to src/hip/body.py index 5682ef0..05d9a6f 100644 --- a/src/hip/_body.py +++ b/src/hip/body.py @@ -1,7 +1,7 @@ import io import zlib -from ._streams import Stream +from .core.streams import Stream from .parsers import HTTPParser __all__ = ["GZipStream", "HTTPStream"] diff --git a/src/hip/_client.py b/src/hip/client.py similarity index 95% rename from src/hip/_client.py rename to src/hip/client.py index cbd355e..f71a59f 100644 --- a/src/hip/_client.py +++ b/src/hip/client.py @@ -1,11 +1,11 @@ import types import typing -from ._content import HTML, JSON, Binary, Content, Text, select_media -from ._headers import Headers -from ._request import Method, Request -from ._response import Response -from ._urls import URL +from .core.content import HTML, JSON, Binary, Content, Text, select_media +from .core.headers import Headers +from .core.request import Method, Request +from .core.response import Response +from .core.urls import URL from .transports import ConnectionPool, SendContext, Transport __all__ = ["Client"] diff --git a/src/hip/core/__init__.py b/src/hip/core/__init__.py new file mode 100644 index 0000000..b55e756 --- /dev/null +++ b/src/hip/core/__init__.py @@ -0,0 +1,32 @@ +from .content import HTML, JSON, Binary, Content, Empty, Text +from .forms import File, Files, Form, MultiPart +from .headers import Headers +from .queryparams import QueryParams +from .request import Method, Request +from .response import Response, StatusCode +from .streams import Stream +from .timeouts import sleep, timeout +from .urls import URL + +__all__ = [ + "HTML", + "JSON", + "URL", + "Binary", + "Content", + "Empty", + "File", + "Files", + "Form", + "Headers", + "Method", + "MultiPart", + "QueryParams", + "Request", + "Response", + "StatusCode", + "Stream", + "Text", + "sleep", + "timeout", +] diff --git a/src/hip/_content.py b/src/hip/core/content.py similarity index 98% rename from src/hip/_content.py rename to src/hip/core/content.py index 852b7d0..fab4342 100644 --- a/src/hip/_content.py +++ b/src/hip/core/content.py @@ -2,8 +2,8 @@ import json import typing -from ._headers import Headers, parse_opts_header -from ._streams import ByteStream, Stream +from .headers import Headers, parse_opts_header +from .streams import ByteStream, Stream __all__ = [ "HTML", diff --git a/src/hip/_forms.py b/src/hip/core/forms.py similarity index 98% rename from src/hip/_forms.py rename to src/hip/core/forms.py index c444fe9..1a077d1 100644 --- a/src/hip/_forms.py +++ b/src/hip/core/forms.py @@ -1,10 +1,10 @@ import os import typing -from ._content import Content -from ._headers import Headers -from ._streams import ByteStream, FileStream, MultiPartStream, Stream -from ._urlencode import urldecode, urlencode +from .content import Content +from .headers import Headers +from .streams import ByteStream, FileStream, MultiPartStream, Stream +from .urlencode import urldecode, urlencode __all__ = ["File", "Files", "Form", "MultiPart"] diff --git a/src/hip/_headers.py b/src/hip/core/headers.py similarity index 100% rename from src/hip/_headers.py rename to src/hip/core/headers.py diff --git a/src/hip/_queryparams.py b/src/hip/core/queryparams.py similarity index 99% rename from src/hip/_queryparams.py rename to src/hip/core/queryparams.py index 4d3dd97..79a7a9b 100644 --- a/src/hip/_queryparams.py +++ b/src/hip/core/queryparams.py @@ -2,7 +2,7 @@ import typing -from ._urlencode import urldecode, urlencode +from .urlencode import urldecode, urlencode __all__ = ["QueryParams"] diff --git a/src/hip/_request.py b/src/hip/core/request.py similarity index 96% rename from src/hip/_request.py rename to src/hip/core/request.py index d8dbd3a..476be4a 100644 --- a/src/hip/_request.py +++ b/src/hip/core/request.py @@ -1,6 +1,6 @@ -from ._content import Binary, Content, Empty -from ._headers import Headers -from ._urls import URL +from .content import Binary, Content, Empty +from .headers import Headers +from .urls import URL __all__ = ["Method", "Request"] diff --git a/src/hip/_response.py b/src/hip/core/response.py similarity index 98% rename from src/hip/_response.py rename to src/hip/core/response.py index 52735e5..55f366a 100644 --- a/src/hip/_response.py +++ b/src/hip/core/response.py @@ -1,7 +1,7 @@ import typing -from ._content import Binary, Content, Empty -from ._headers import Headers +from .content import Binary, Content, Empty +from .headers import Headers __all__ = ["Response", "StatusCode"] diff --git a/src/hip/_streams.py b/src/hip/core/streams.py similarity index 100% rename from src/hip/_streams.py rename to src/hip/core/streams.py diff --git a/src/hip/_timeouts.py b/src/hip/core/timeouts.py similarity index 100% rename from src/hip/_timeouts.py rename to src/hip/core/timeouts.py diff --git a/src/hip/_urlencode.py b/src/hip/core/urlencode.py similarity index 100% rename from src/hip/_urlencode.py rename to src/hip/core/urlencode.py diff --git a/src/hip/_urlparse.py b/src/hip/core/urlparse.py similarity index 100% rename from src/hip/_urlparse.py rename to src/hip/core/urlparse.py diff --git a/src/hip/_urls.py b/src/hip/core/urls.py similarity index 99% rename from src/hip/_urls.py rename to src/hip/core/urls.py index 62e2039..5f48407 100644 --- a/src/hip/_urls.py +++ b/src/hip/core/urls.py @@ -2,9 +2,9 @@ import typing -from ._queryparams import QueryParams -from ._urlencode import unquote -from ._urlparse import urlparse +from .queryparams import QueryParams +from .urlencode import unquote +from .urlparse import urlparse __all__ = ["URL"] diff --git a/src/hip/parsers/http.py b/src/hip/parsers/http.py index c413c26..51b9cb4 100644 --- a/src/hip/parsers/http.py +++ b/src/hip/parsers/http.py @@ -1,7 +1,7 @@ import enum import time -from .._streams import Stream +from ..core.streams import Stream from .exceptions import ProtocolError from .readahead import ReadAheadParser diff --git a/src/hip/parsers/readahead.py b/src/hip/parsers/readahead.py index 98fa902..f240bb2 100644 --- a/src/hip/parsers/readahead.py +++ b/src/hip/parsers/readahead.py @@ -1,4 +1,4 @@ -from .._streams import Stream +from ..core.streams import Stream from .exceptions import ProtocolError diff --git a/src/hip/_server.py b/src/hip/server.py similarity index 95% rename from src/hip/_server.py rename to src/hip/server.py index e491402..c09afec 100644 --- a/src/hip/_server.py +++ b/src/hip/server.py @@ -1,13 +1,13 @@ import datetime import logging -from ._body import HTTPStream -from ._content import Text -from ._headers import Headers -from ._request import Request -from ._response import Response -from ._timeouts import sleep from .backends.sync import NetworkBackend +from .body import HTTPStream +from .core.content import Text +from .core.headers import Headers +from .core.request import Request +from .core.response import Response +from .core.timeouts import sleep from .parsers import HTTPParser __all__ = ["Server"] diff --git a/src/hip/transports/base.py b/src/hip/transports/base.py index a6feff2..709f4fe 100644 --- a/src/hip/transports/base.py +++ b/src/hip/transports/base.py @@ -1,11 +1,11 @@ import types -from .._content import Content -from .._headers import Headers -from .._request import Method, Request -from .._response import Response, StatusCode -from .._streams import Stream -from .._urls import URL +from ..core.content import Content +from ..core.headers import Headers +from ..core.request import Method, Request +from ..core.response import Response, StatusCode +from ..core.streams import Stream +from ..core.urls import URL __all__ = ["SendContext", "Transport"] diff --git a/src/hip/transports/connection.py b/src/hip/transports/connection.py index e645ff9..bc5c0c2 100644 --- a/src/hip/transports/connection.py +++ b/src/hip/transports/connection.py @@ -5,14 +5,14 @@ # Once we drop 3.10 support, we can use 'typing.Self'. from typing_extensions import Self -from .._body import GZipStream, HTTPStream -from .._content import Content -from .._headers import Headers -from .._request import Method, Request -from .._response import Response, StatusCode -from .._streams import Stream -from .._urls import URL from ..backends.sync import Lock, NetworkBackend +from ..body import GZipStream, HTTPStream +from ..core.content import Content +from ..core.headers import Headers +from ..core.request import Method, Request +from ..core.response import Response, StatusCode +from ..core.streams import Stream +from ..core.urls import URL from ..parsers import HTTPParser from .base import SendContext, Transport diff --git a/src/hip/transports/pool.py b/src/hip/transports/pool.py index 2d2cabb..cc44907 100644 --- a/src/hip/transports/pool.py +++ b/src/hip/transports/pool.py @@ -6,9 +6,9 @@ # Once we drop 3.10 support, we can use 'typing.Self'. from typing_extensions import Self -from .._request import Request -from .._urls import URL from ..backends.sync import NetworkBackend, Semaphore +from ..core.request import Request +from ..core.urls import URL from .base import SendContext, Transport from .connection import ( Connection,