redc 0.1.1.dev2__tar.gz → 0.1.2__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {redc-0.1.1.dev2 → redc-0.1.2}/PKG-INFO +3 -2
- {redc-0.1.1.dev2 → redc-0.1.2}/README.md +2 -1
- {redc-0.1.1.dev2 → redc-0.1.2}/pyproject.toml +2 -2
- {redc-0.1.1.dev2 → redc-0.1.2}/redc/__init__.py +1 -1
- {redc-0.1.1.dev2 → redc-0.1.2}/redc/ext/redc.cpp +5 -12
- redc-0.1.1.dev2/wheelhouse/redc-0.1.1.dev2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl +0 -0
- redc-0.1.1.dev2/wheelhouse/redc-0.1.1.dev2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl +0 -0
- redc-0.1.1.dev2/wheelhouse/redc-0.1.1.dev2-cp312-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl +0 -0
- redc-0.1.1.dev2/wheelhouse/redc-0.1.1.dev2-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl +0 -0
- redc-0.1.1.dev2/wheelhouse/redc-0.1.1.dev2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl +0 -0
- {redc-0.1.1.dev2 → redc-0.1.2}/.clang-format +0 -0
- {redc-0.1.1.dev2 → redc-0.1.2}/.github/workflows/before-all.sh +0 -0
- {redc-0.1.1.dev2 → redc-0.1.2}/.github/workflows/build_wheels.yml +1 -1
- {redc-0.1.1.dev2 → redc-0.1.2}/.gitignore +0 -0
- {redc-0.1.1.dev2 → redc-0.1.2}/CMake/PreventInSourceBuild.cmake +0 -0
- {redc-0.1.1.dev2 → redc-0.1.2}/CMakeLists.txt +0 -0
- {redc-0.1.1.dev2 → redc-0.1.2}/LICENSE +0 -0
- {redc-0.1.1.dev2 → redc-0.1.2}/assets/images/redc-logo.png +0 -0
- {redc-0.1.1.dev2 → redc-0.1.2}/redc/callback.py +0 -0
- {redc-0.1.1.dev2 → redc-0.1.2}/redc/callbacks.py +0 -0
- {redc-0.1.1.dev2 → redc-0.1.2}/redc/client.py +0 -0
- {redc-0.1.1.dev2 → redc-0.1.2}/redc/codes.py +0 -0
- {redc-0.1.1.dev2 → redc-0.1.2}/redc/exceptions/__init__.py +0 -0
- {redc-0.1.1.dev2 → redc-0.1.2}/redc/ext/redc.h +0 -0
- {redc-0.1.1.dev2 → redc-0.1.2}/redc/ext/utils/concurrentqueue.h +0 -0
- {redc-0.1.1.dev2 → redc-0.1.2}/redc/ext/utils/curl_utils.h +0 -0
- {redc-0.1.1.dev2 → redc-0.1.2}/redc/response.py +0 -0
- {redc-0.1.1.dev2 → redc-0.1.2}/redc/utils/__init__.py +0 -0
- {redc-0.1.1.dev2 → redc-0.1.2}/redc/utils/headers.py +0 -0
- {redc-0.1.1.dev2 → redc-0.1.2}/redc/utils/http.py +0 -0
- {redc-0.1.1.dev2 → redc-0.1.2}/redc/utils/json_encoder.py +0 -0
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: redc
|
3
|
-
Version: 0.1.
|
3
|
+
Version: 0.1.2
|
4
4
|
Summary: RedC is a high-performance, asynchronous HTTP client library for Python, built on top of the powerful curl library
|
5
5
|
Keywords: asyncio,http,client,http-client,curl,libcurl
|
6
6
|
Author-Email: AYMEN Mohammed <let.me.code.safe@gmail.com>
|
@@ -21,7 +21,8 @@ Description-Content-Type: text/markdown
|
|
21
21
|
## Features
|
22
22
|
|
23
23
|
- **Asynchronous by Design**: Built with `asyncio` for non-blocking HTTP requests
|
24
|
-
- **
|
24
|
+
- **HTTP/2 Support**: Fully compatible with `HTTP/2` for faster and more efficient communication
|
25
|
+
- **curl Backend**: Leverages the speed and reliability of curl for HTTP operations
|
25
26
|
- **Streaming Support**: Stream large responses with ease using callback functions
|
26
27
|
- **Proxy Support**: Easily configure proxies for your requests
|
27
28
|
|
@@ -9,7 +9,8 @@
|
|
9
9
|
## Features
|
10
10
|
|
11
11
|
- **Asynchronous by Design**: Built with `asyncio` for non-blocking HTTP requests
|
12
|
-
- **
|
12
|
+
- **HTTP/2 Support**: Fully compatible with `HTTP/2` for faster and more efficient communication
|
13
|
+
- **curl Backend**: Leverages the speed and reliability of curl for HTTP operations
|
13
14
|
- **Streaming Support**: Stream large responses with ease using callback functions
|
14
15
|
- **Proxy Support**: Easily configure proxies for your requests
|
15
16
|
|
@@ -4,7 +4,7 @@ build-backend = "scikit_build_core.build"
|
|
4
4
|
|
5
5
|
[project]
|
6
6
|
name = "redc"
|
7
|
-
version = "0.1.
|
7
|
+
version = "0.1.2"
|
8
8
|
description = "RedC is a high-performance, asynchronous HTTP client library for Python, built on top of the powerful curl library"
|
9
9
|
readme = "README.md"
|
10
10
|
authors = [{ name = "AYMEN Mohammed", email = "let.me.code.safe@gmail.com" }]
|
@@ -23,7 +23,7 @@ wheel.py-api = "cp312"
|
|
23
23
|
[tool.cibuildwheel]
|
24
24
|
build-verbosity = 1
|
25
25
|
build = "cp39* cp310* cp311* cp312* cp313*"
|
26
|
-
|
26
|
+
enable = ["cpython-freethreading"]
|
27
27
|
skip = "*musllinux*"
|
28
28
|
archs = ["x86_64"]
|
29
29
|
|
@@ -157,11 +157,7 @@ py_object RedC::request(const char *method, const char *url, const char *raw_dat
|
|
157
157
|
curl_easy_setopt(easy, CURLOPT_HTTPHEADER, slist_headers.slist);
|
158
158
|
}
|
159
159
|
|
160
|
-
py_object future;
|
161
|
-
{
|
162
|
-
acq_gil gil;
|
163
|
-
future = loop_.attr("create_future")();
|
164
|
-
}
|
160
|
+
py_object future{loop_.attr("create_future")()};
|
165
161
|
|
166
162
|
{
|
167
163
|
std::unique_lock<std::mutex> lock(mutex_);
|
@@ -292,11 +288,9 @@ void RedC::worker_loop() {
|
|
292
288
|
|
293
289
|
void RedC::cleanup() {
|
294
290
|
std::unique_lock<std::mutex> lock(mutex_);
|
291
|
+
acq_gil gil;
|
295
292
|
for (auto &[easy, data] : transfers_) {
|
296
|
-
|
297
|
-
acq_gil gil;
|
298
|
-
call_soon_threadsafe_(data.future.attr("cancel"));
|
299
|
-
}
|
293
|
+
call_soon_threadsafe_(data.future.attr("cancel"));
|
300
294
|
|
301
295
|
curl_multi_remove_handle(multi_handle_, easy);
|
302
296
|
curl_easy_cleanup(easy);
|
@@ -321,8 +315,7 @@ size_t RedC::progress_callback(Data *clientp, curl_off_t dltotal, curl_off_t dln
|
|
321
315
|
curl_off_t ulnow) {
|
322
316
|
if (clientp->has_progress_callback) {
|
323
317
|
try {
|
324
|
-
acq_gil
|
325
|
-
gil; //TODO: this sometimes hangs on exit, which lead to other functions to block such as curl_multi_perform and worker_loop never exit
|
318
|
+
acq_gil gil;
|
326
319
|
clientp->progress_callback(dltotal, dlnow, ultotal, ulnow);
|
327
320
|
} catch (const std::exception &e) {
|
328
321
|
std::cerr << "Error in progress_callback: " << e.what() << std::endl;
|
@@ -358,5 +351,5 @@ NB_MODULE(redc_ext, m) {
|
|
358
351
|
arg("connect_timeout_ms") = 0, arg("allow_redirect") = true, arg("proxy_url") = "", arg("verify") = true,
|
359
352
|
arg("ca_cert_path") = "", arg("stream_callback") = nb::none(), arg("progress_callback") = nb::none(),
|
360
353
|
arg("verbose") = false)
|
361
|
-
.def("close", &RedC::close);
|
354
|
+
.def("close", &RedC::close, nb::call_guard<nb::gil_scoped_release>());
|
362
355
|
}
|
Binary file
|
Binary file
|
redc-0.1.1.dev2/wheelhouse/redc-0.1.1.dev2-cp312-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
DELETED
Binary file
|
Binary file
|
redc-0.1.1.dev2/wheelhouse/redc-0.1.1.dev2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
DELETED
Binary file
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|