Comments (6)
@meshula @404Vector One way to solve this is to use .pyi files which is basically declaring the python interface of your cpython methods. This will make intellisense be able to see expected inputs/outputs, but code will still be executed through the .so module and not via any wrapper.
Also thanks @404Vector for the wrapper.
from openexr.
Do you know why Intellisense can't autocomplete on OpenEXR? It sounds like a good thing to support if it doesn't require special maintenance. I don't know if anyone on the team has experience with Python and Intellisense.
from openexr.
My guess is that the file does not exist in *.py format.
For Imath it exists as Imath.py, but for OpenEXR it does not.
I created a simple python wrapper to solve this problem. I hope this project helps you in your decision making.
(https://github.com/404Vector/OpenEXR-Python?tab=readme-ov-file)
Although I haven't done much testing, I confirmed that it works well within the range I need (reading and writing files, extracting metadata, and intellisense support).
I don't know if this is the best way to support intellisense (there may be a way to expose it automatically).
However, I think OpenEXR is a very stable project.
And the number of interfaces exposed in the Python runtime environment is small.
Therefore, I think this method will also be easy to maintain.
from openexr.
Your solution does look easy to maintain, thanks for putting it together.
I'm not a Python expert, so please forgive my basic questions.
- Is this something we could incorporate into our project to solve the problem, or is it an example?
- will this benefit other systems, such as LSP, or environments like PyCharm?
- Is the problem solvable at the cpython level (or should we be investigating the problem at the c level?)
from openexr.
- Is this something we could incorporate into our project to solve the problem, or is it an example?
This is a project I created for my convenience, but since it's just a simple wrapper, I think it can be integrated into your project without any problems.
- will this benefit other systems, such as LSP, or environments like PyCharm?
As a result of the experiment, PyCharm reads the cython file and creates an OpenEXR.py file. (It automatically generates python code, just like automatically generating a document with code and comments.)
Therefore, in PyCharm, intellisense works for the methods in OpenEXR and I was able to read them.
But PyCharm failed to read the file completely.
I knew the name of each method, but I couldn't tell what the parameters were.
ex: It is written as InputFile(*args, **kwargs), so it is impossible to guess what the parameters are.
- Is the problem solvable at the cpython level (or should we be investigating the problem at the c level?)
In order for all IDEs to support this, it is assumed that the code must exist as *.py rather than solving it at the C or CPython level.
from openexr.
Thanks @404Vector !
@reinecke is there any guidance from the OpenTimelineIO project on this? I think OTIO went through a couple of iterations to get this working across the board.
from openexr.
Related Issues (20)
- exrenvmap: observed imprecise conversion of cubemap to lat/lon HOT 11
- Provide an API using numpy arrays in python HOT 11
- An integer overflow in file exrmultipart.cpp HOT 3
- Incorrect Values When Reading DWA Compressed Layer With OpenEXRCore HOT 10
- understanding openEXR's 3D coordinate system HOT 9
- tarball at https://github.com/AcademySoftwareFoundation/openexr/releases/download/v3.2.4/openexr-v3.2.4.tar.gz extracts incorrectly HOT 3
- Python crashes when trying to write an output file HOT 2
- Is there any way to write a bigger image?
- [Need suggestions/recommendations] OpenEXR for high-speed images grabbing application scenario. HOT 7
- update metadata without rewriting the entire file HOT 4
- Bazel install target HOT 10
- fatal clang-format error on macOS can't upgrade/install via Homebrew HOT 13
- Cross-compiler target linking failure HOT 1
- Uninitialized sliceOptimizationData::type HOT 2
- [Usage recommendation request] Decompressing large EXRs in real-time. HOT 4
- OpenEXR.OutputFile Fails to Write to BytesIO Buffer HOT 1
- Install openexr 3.2.4 to macOS Big Sur 11.7.10 HOT 9
- Unit tests fail when building UB2 binaries on Mac. HOT 1
- CMP0107 issue
- OpenEXR static build not creating libIlmImf.a HOT 5
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from openexr.