You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@opendal.apache.org by "silver-ymz (via GitHub)" <gi...@apache.org> on 2023/08/28 04:24:19 UTC
[GitHub] [incubator-opendal] silver-ymz opened a new pull request, #2950: feat(bindings/python): expose presign api
silver-ymz opened a new pull request, #2950:
URL: https://github.com/apache/incubator-opendal/pull/2950
Close #2921
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: commits-unsubscribe@opendal.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
[GitHub] [incubator-opendal] Xuanwo commented on a diff in pull request #2950: feat(bindings/python): expose presign api
Posted by "Xuanwo (via GitHub)" <gi...@apache.org>.
Xuanwo commented on code in PR #2950:
URL: https://github.com/apache/incubator-opendal/pull/2950#discussion_r1308139193
##########
bindings/python/python/opendal/__init__.pyi:
##########
@@ -40,6 +40,9 @@ class AsyncOperator:
async def delete(self, path: str): ...
async def list(self, path: str) -> AsyncIterable[Entry]: ...
async def scan(self, path: str) -> AsyncIterable[Entry]: ...
+ async def presign_stat(self, path: str, expire: int) -> PresignedRequest: ...
Review Comment:
Ok, let's use `int`. Please make it clear that it's `seconds`.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: commits-unsubscribe@opendal.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
[GitHub] [incubator-opendal] Xuanwo commented on a diff in pull request #2950: feat(bindings/python): expose presign api
Posted by "Xuanwo (via GitHub)" <gi...@apache.org>.
Xuanwo commented on code in PR #2950:
URL: https://github.com/apache/incubator-opendal/pull/2950#discussion_r1306927049
##########
bindings/tests/features/binding.feature:
##########
@@ -32,3 +32,7 @@ Feature: OpenDAL Binding
Then The async file "test" entry mode must be file
Then The async file "test" content length must be 13
Then The async file "test" must have content "Hello, World!"
+
+ Scenario: OpenDAL Operations with Presign
+ Given A new OpenDAL Async Operator (s3 presign only)
Review Comment:
> We need an available operator to test presign function here.
No. Please don't mix bindings test with rust core's behavior test.
Binding test is used to make sure the binding implement correctly: the call is passed to rust core and got a response back from rust core. The presign itself doesn't need to be tested: they are covered by rust core's behavior test.
> Or we can implement a fake presign function for `memory`.
No. We can't implement this for `memory`.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: commits-unsubscribe@opendal.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
[GitHub] [incubator-opendal] silver-ymz commented on a diff in pull request #2950: feat(bindings/python): expose presign api
Posted by "silver-ymz (via GitHub)" <gi...@apache.org>.
silver-ymz commented on code in PR #2950:
URL: https://github.com/apache/incubator-opendal/pull/2950#discussion_r1306908083
##########
bindings/python/python/opendal/__init__.pyi:
##########
@@ -40,6 +40,9 @@ class AsyncOperator:
async def delete(self, path: str): ...
async def list(self, path: str) -> AsyncIterable[Entry]: ...
async def scan(self, path: str) -> AsyncIterable[Entry]: ...
+ async def presign_stat(self, path: str, expire: int) -> PresignedRequest: ...
Review Comment:
Python has `datetime.timedelta`. But pyo3's binding to it is only available on `non-Py_LIMITED_API`. It's conflict with `abi3-py37` feature.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: commits-unsubscribe@opendal.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
[GitHub] [incubator-opendal] silver-ymz commented on a diff in pull request #2950: feat(bindings/python): expose presign api
Posted by "silver-ymz (via GitHub)" <gi...@apache.org>.
silver-ymz commented on code in PR #2950:
URL: https://github.com/apache/incubator-opendal/pull/2950#discussion_r1306935410
##########
bindings/tests/features/binding.feature:
##########
@@ -32,3 +32,7 @@ Feature: OpenDAL Binding
Then The async file "test" entry mode must be file
Then The async file "test" content length must be 13
Then The async file "test" must have content "Hello, World!"
+
+ Scenario: OpenDAL Operations with Presign
+ Given A new OpenDAL Async Operator (s3 presign only)
Review Comment:
> But all of them sure be exact the same test suite.
So we can only write tests for `presign` after exposing `op.info()` and `Capability`. Is it right?
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: commits-unsubscribe@opendal.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
[GitHub] [incubator-opendal] messense commented on a diff in pull request #2950: feat(bindings/python): expose presign api
Posted by "messense (via GitHub)" <gi...@apache.org>.
messense commented on code in PR #2950:
URL: https://github.com/apache/incubator-opendal/pull/2950#discussion_r1306896625
##########
bindings/python/src/lib.rs:
##########
@@ -368,6 +368,34 @@ impl EntryMode {
}
}
+#[pyclass(module = "opendal")]
+struct PresignedRequest(od::raw::PresignedRequest);
+
+#[pymethods]
+impl PresignedRequest {
+ /// Return the URL of this request.
+ #[getter]
+ pub fn url(&self) -> String {
+ self.0.uri().to_string()
+ }
+
+ /// Return the HTTP method of this request.
+ #[getter]
+ pub fn method(&self) -> &str {
+ self.0.method().as_str()
+ }
+
+ /// Return the HTTP headers of this request.
+ #[getter]
+ pub fn headers<'p>(&'p self, py: Python<'p>) -> HashMap<&'p str, &'p PyBytes> {
Review Comment:
Convert `HeaderMap` to `HashMap` will only preserve the last value of a multi-value header. Will it become a problem?
See https://docs.rs/http/0.2.9/http/header/struct.HeaderMap.html#method.iter
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: commits-unsubscribe@opendal.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
[GitHub] [incubator-opendal] Xuanwo commented on a diff in pull request #2950: feat(bindings/python): expose presign api
Posted by "Xuanwo (via GitHub)" <gi...@apache.org>.
Xuanwo commented on code in PR #2950:
URL: https://github.com/apache/incubator-opendal/pull/2950#discussion_r1306927049
##########
bindings/tests/features/binding.feature:
##########
@@ -32,3 +32,7 @@ Feature: OpenDAL Binding
Then The async file "test" entry mode must be file
Then The async file "test" content length must be 13
Then The async file "test" must have content "Hello, World!"
+
+ Scenario: OpenDAL Operations with Presign
+ Given A new OpenDAL Async Operator (s3 presign only)
Review Comment:
> We need an available operator to test presign function here.
No. Please don't mix bindings test with rust core's behavior test.
Binding test is used to make sure the binding implement correctly: the call is passed to rust core and got a response back from rust core. The presign itself doesn't need to be tested: they are covered by rust core's behavior test.
In the future, we can extend those test with more services like fs and s3. But all of them sure be exact the same test suites.
> Or we can implement a fake presign function for `memory`.
No. We can't implement this for `memory`.
##########
bindings/tests/features/binding.feature:
##########
@@ -32,3 +32,7 @@ Feature: OpenDAL Binding
Then The async file "test" entry mode must be file
Then The async file "test" content length must be 13
Then The async file "test" must have content "Hello, World!"
+
+ Scenario: OpenDAL Operations with Presign
+ Given A new OpenDAL Async Operator (s3 presign only)
Review Comment:
> We need an available operator to test presign function here.
No. Please don't mix bindings test with rust core's behavior test.
Binding test is used to make sure the binding implement correctly: the call is passed to rust core and got a response back from rust core. The presign itself doesn't need to be tested: they are covered by rust core's behavior test.
In the future, we can extend those test with more services like fs and s3. But all of them sure be exact the same test suite.
> Or we can implement a fake presign function for `memory`.
No. We can't implement this for `memory`.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: commits-unsubscribe@opendal.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
[GitHub] [incubator-opendal] Xuanwo commented on a diff in pull request #2950: feat(bindings/python): expose presign api
Posted by "Xuanwo (via GitHub)" <gi...@apache.org>.
Xuanwo commented on code in PR #2950:
URL: https://github.com/apache/incubator-opendal/pull/2950#discussion_r1306900574
##########
bindings/python/src/lib.rs:
##########
@@ -368,6 +368,34 @@ impl EntryMode {
}
}
+#[pyclass(module = "opendal")]
+struct PresignedRequest(od::raw::PresignedRequest);
+
+#[pymethods]
+impl PresignedRequest {
+ /// Return the URL of this request.
+ #[getter]
+ pub fn url(&self) -> String {
+ self.0.uri().to_string()
+ }
+
+ /// Return the HTTP method of this request.
+ #[getter]
+ pub fn method(&self) -> &str {
+ self.0.method().as_str()
+ }
+
+ /// Return the HTTP headers of this request.
+ #[getter]
+ pub fn headers<'p>(&'p self, py: Python<'p>) -> HashMap<&'p str, &'p PyBytes> {
Review Comment:
It's better to return a `HashMap<&'p str, &'p str>` here. We should raise exception when:
- HeaderMap has a multi-value header (should not happen for opendal generated presign request).
- HeaderMap has an invliad header value (It's required that all header value must be encoded).
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: commits-unsubscribe@opendal.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
[GitHub] [incubator-opendal] Xuanwo commented on a diff in pull request #2950: feat(bindings/python): expose presign api
Posted by "Xuanwo (via GitHub)" <gi...@apache.org>.
Xuanwo commented on code in PR #2950:
URL: https://github.com/apache/incubator-opendal/pull/2950#discussion_r1306912071
##########
bindings/tests/features/binding.feature:
##########
@@ -32,3 +32,7 @@ Feature: OpenDAL Binding
Then The async file "test" entry mode must be file
Then The async file "test" content length must be 13
Then The async file "test" must have content "Hello, World!"
+
+ Scenario: OpenDAL Operations with Presign
+ Given A new OpenDAL Async Operator (s3 presign only)
Review Comment:
This test violates our VISION. OpenDAL should not write code directly against the service. The API call should either return a presigned request or `Unsupported` error.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: commits-unsubscribe@opendal.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
[GitHub] [incubator-opendal] Xuanwo commented on a diff in pull request #2950: feat(bindings/python): expose presign api
Posted by "Xuanwo (via GitHub)" <gi...@apache.org>.
Xuanwo commented on code in PR #2950:
URL: https://github.com/apache/incubator-opendal/pull/2950#discussion_r1306936511
##########
bindings/tests/features/binding.feature:
##########
@@ -32,3 +32,7 @@ Feature: OpenDAL Binding
Then The async file "test" entry mode must be file
Then The async file "test" content length must be 13
Then The async file "test" must have content "Hello, World!"
+
+ Scenario: OpenDAL Operations with Presign
+ Given A new OpenDAL Async Operator (s3 presign only)
Review Comment:
> So we can only write tests for `presign` after exposing `op.info()` and `Capability`. Is it right?
No, we don't need to. We can simply call `presign` and check if its result is successful or returns an error with the error kind `Unsupported`.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: commits-unsubscribe@opendal.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
[GitHub] [incubator-opendal] silver-ymz commented on a diff in pull request #2950: feat(bindings/python): expose presign api
Posted by "silver-ymz (via GitHub)" <gi...@apache.org>.
silver-ymz commented on code in PR #2950:
URL: https://github.com/apache/incubator-opendal/pull/2950#discussion_r1308115787
##########
bindings/python/python/opendal/__init__.pyi:
##########
@@ -40,6 +40,9 @@ class AsyncOperator:
async def delete(self, path: str): ...
async def list(self, path: str) -> AsyncIterable[Entry]: ...
async def scan(self, path: str) -> AsyncIterable[Entry]: ...
+ async def presign_stat(self, path: str, expire: int) -> PresignedRequest: ...
Review Comment:
According to my research, `PyDelta` belongs to `The “general” public C API`, rather than `The Limited C API`.
All limited C API are listed [here](https://docs.python.org/3/c-api/stable.html#contents-of-limited-api), and there is no `PyDelta`.
The diff about `The “general” public C API` and `The Limited C API` can be seen [here](https://devguide.python.org/developer-workflow/c-api/#c-api)
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: commits-unsubscribe@opendal.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
[GitHub] [incubator-opendal] silver-ymz commented on a diff in pull request #2950: feat(bindings/python): expose presign api
Posted by "silver-ymz (via GitHub)" <gi...@apache.org>.
silver-ymz commented on code in PR #2950:
URL: https://github.com/apache/incubator-opendal/pull/2950#discussion_r1306915810
##########
bindings/python/src/lib.rs:
##########
@@ -368,6 +368,34 @@ impl EntryMode {
}
}
+#[pyclass(module = "opendal")]
+struct PresignedRequest(od::raw::PresignedRequest);
+
+#[pymethods]
+impl PresignedRequest {
+ /// Return the URL of this request.
+ #[getter]
+ pub fn url(&self) -> String {
+ self.0.uri().to_string()
+ }
+
+ /// Return the HTTP method of this request.
+ #[getter]
+ pub fn method(&self) -> &str {
+ self.0.method().as_str()
+ }
+
+ /// Return the HTTP headers of this request.
+ #[getter]
+ pub fn headers<'p>(&'p self, py: Python<'p>) -> HashMap<&'p str, &'p PyBytes> {
Review Comment:
complete in new commit
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: commits-unsubscribe@opendal.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
[GitHub] [incubator-opendal] silver-ymz commented on a diff in pull request #2950: feat(bindings/python): expose presign api
Posted by "silver-ymz (via GitHub)" <gi...@apache.org>.
silver-ymz commented on code in PR #2950:
URL: https://github.com/apache/incubator-opendal/pull/2950#discussion_r1306914164
##########
bindings/tests/features/binding.feature:
##########
@@ -32,3 +32,7 @@ Feature: OpenDAL Binding
Then The async file "test" entry mode must be file
Then The async file "test" content length must be 13
Then The async file "test" must have content "Hello, World!"
+
+ Scenario: OpenDAL Operations with Presign
+ Given A new OpenDAL Async Operator (s3 presign only)
Review Comment:
We need an available operator to test presign function here.
Maybe rename it to `Given A new OpenDAL Async Operator (presign available)`
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: commits-unsubscribe@opendal.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
[GitHub] [incubator-opendal] Xuanwo commented on a diff in pull request #2950: feat(bindings/python): expose presign api
Posted by "Xuanwo (via GitHub)" <gi...@apache.org>.
Xuanwo commented on code in PR #2950:
URL: https://github.com/apache/incubator-opendal/pull/2950#discussion_r1306935608
##########
bindings/python/python/opendal/__init__.pyi:
##########
@@ -40,6 +40,9 @@ class AsyncOperator:
async def delete(self, path: str): ...
async def list(self, path: str) -> AsyncIterable[Entry]: ...
async def scan(self, path: str) -> AsyncIterable[Entry]: ...
+ async def presign_stat(self, path: str, expire: int) -> PresignedRequest: ...
Review Comment:
Hi, @messense, `timedelta` has been added since python 2.3. All existing python version should support `timedelta`. Why `&PyDelta` is marked as a `non-Py_LIMITED_API`?
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: commits-unsubscribe@opendal.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
[GitHub] [incubator-opendal] silver-ymz commented on a diff in pull request #2950: feat(bindings/python): expose presign api
Posted by "silver-ymz (via GitHub)" <gi...@apache.org>.
silver-ymz commented on code in PR #2950:
URL: https://github.com/apache/incubator-opendal/pull/2950#discussion_r1308142729
##########
bindings/python/python/opendal/__init__.pyi:
##########
@@ -40,6 +40,9 @@ class AsyncOperator:
async def delete(self, path: str): ...
async def list(self, path: str) -> AsyncIterable[Entry]: ...
async def scan(self, path: str) -> AsyncIterable[Entry]: ...
+ async def presign_stat(self, path: str, expire: int) -> PresignedRequest: ...
Review Comment:
> Please make it clear that it's seconds.
done in new commit
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: commits-unsubscribe@opendal.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
[GitHub] [incubator-opendal] Xuanwo commented on a diff in pull request #2950: feat(bindings/python): expose presign api
Posted by "Xuanwo (via GitHub)" <gi...@apache.org>.
Xuanwo commented on code in PR #2950:
URL: https://github.com/apache/incubator-opendal/pull/2950#discussion_r1306900890
##########
bindings/python/python/opendal/__init__.pyi:
##########
@@ -40,6 +40,9 @@ class AsyncOperator:
async def delete(self, path: str): ...
async def list(self, path: str) -> AsyncIterable[Entry]: ...
async def scan(self, path: str) -> AsyncIterable[Entry]: ...
+ async def presign_stat(self, path: str, expire: int) -> PresignedRequest: ...
Review Comment:
Does python has native duration type?I don't like the idea of using `int` instead of `Duration`.
##########
bindings/python/python/opendal/__init__.pyi:
##########
@@ -40,6 +40,9 @@ class AsyncOperator:
async def delete(self, path: str): ...
async def list(self, path: str) -> AsyncIterable[Entry]: ...
async def scan(self, path: str) -> AsyncIterable[Entry]: ...
+ async def presign_stat(self, path: str, expire: int) -> PresignedRequest: ...
Review Comment:
Does python has native duration type?I don't like the idea of using `int` instead of `Duration`.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: commits-unsubscribe@opendal.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
[GitHub] [incubator-opendal] silver-ymz commented on a diff in pull request #2950: feat(bindings/python): expose presign api
Posted by "silver-ymz (via GitHub)" <gi...@apache.org>.
silver-ymz commented on code in PR #2950:
URL: https://github.com/apache/incubator-opendal/pull/2950#discussion_r1306921229
##########
bindings/tests/features/binding.feature:
##########
@@ -32,3 +32,7 @@ Feature: OpenDAL Binding
Then The async file "test" entry mode must be file
Then The async file "test" content length must be 13
Then The async file "test" must have content "Hello, World!"
+
+ Scenario: OpenDAL Operations with Presign
+ Given A new OpenDAL Async Operator (s3 presign only)
Review Comment:
Or we can implement a fake presign function for `memory`.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: commits-unsubscribe@opendal.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
[GitHub] [incubator-opendal] Xuanwo commented on pull request #2950: feat(bindings/python): expose presign api
Posted by "Xuanwo (via GitHub)" <gi...@apache.org>.
Xuanwo commented on PR #2950:
URL: https://github.com/apache/incubator-opendal/pull/2950#issuecomment-1695150316
I mostly agree, but I still have some hesitation about the presign's API.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: commits-unsubscribe@opendal.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
[GitHub] [incubator-opendal] Xuanwo commented on pull request #2950: feat(bindings/python): expose presign api
Posted by "Xuanwo (via GitHub)" <gi...@apache.org>.
Xuanwo commented on PR #2950:
URL: https://github.com/apache/incubator-opendal/pull/2950#issuecomment-1695260730
> PyGILState_Release: thread state 0x7f97c4002610 must be current when releasing
The root cause has not been identified yet. Unfortunately, you can explore further if you are interested in this issue. For more details, please refer to: https://github.com/apache/incubator-opendal/issues/1723.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: commits-unsubscribe@opendal.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
[GitHub] [incubator-opendal] Xuanwo merged pull request #2950: feat(bindings/python): expose presign api
Posted by "Xuanwo (via GitHub)" <gi...@apache.org>.
Xuanwo merged PR #2950:
URL: https://github.com/apache/incubator-opendal/pull/2950
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: commits-unsubscribe@opendal.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
[GitHub] [incubator-opendal] silver-ymz commented on a diff in pull request #2950: feat(bindings/python): expose presign api
Posted by "silver-ymz (via GitHub)" <gi...@apache.org>.
silver-ymz commented on code in PR #2950:
URL: https://github.com/apache/incubator-opendal/pull/2950#discussion_r1308115787
##########
bindings/python/python/opendal/__init__.pyi:
##########
@@ -40,6 +40,9 @@ class AsyncOperator:
async def delete(self, path: str): ...
async def list(self, path: str) -> AsyncIterable[Entry]: ...
async def scan(self, path: str) -> AsyncIterable[Entry]: ...
+ async def presign_stat(self, path: str, expire: int) -> PresignedRequest: ...
Review Comment:
According to my research, `PyDelta` belongs to `The “general” public C API`, rather than `The Limited C API`.
All limited C API are listed [here](https://docs.python.org/3/c-api/stable.html#contents-of-limited-api), and there is no `PyDelta`.
The diff about `The “general” public C API` and `The Limited C API` can be seen [here](https://devguide.python.org/developer-workflow/c-api/#c-api)
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: commits-unsubscribe@opendal.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
[GitHub] [incubator-opendal] silver-ymz commented on pull request #2950: feat(bindings/python): expose presign api
Posted by "silver-ymz (via GitHub)" <gi...@apache.org>.
silver-ymz commented on PR #2950:
URL: https://github.com/apache/incubator-opendal/pull/2950#issuecomment-1695250309
In [47f200b](https://github.com/apache/incubator-opendal/actions/runs/5995984288/job/16259792218) ci, `Bindings Python CI / test (pull_request)` failed.
```
Fatal Python error: PyGILState_Release: thread state 0x7f97c4002610 must be current when releasing
Python runtime state: finalizing (tstate=0x00007f97cbbb0278)
Thread 0x00007f97cb320c40 (most recent call first):
<no Python frame>
/home/runner/work/_temp/08e64cf5-ea8f-4e6f-861a-40ba4a202912.sh: line 1: 5178 Aborted (core dumped) python -m behave tests
```
I think this shouldn't happen. Is there anything wrong?
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: commits-unsubscribe@opendal.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org