Comments (10)
Yes unit tests are indeed a major shortcoming of the library. I've started collecting images but have not yet started writting the actual tests.
I thought it more convenient to put these in another repo to not burden the main repo with a lot of binary data. It could be added as a submodule.
https://github.com/ianare/exif-py-tests
from exif-py.
I took a quick look at your fork, it looks like really good stuff! Things which I have wanted to do for a long time... many thanks.
One thing which troubles me though is the renaming of the class from EXIF to exifpy. While I admit the original name chose is not the best, I'm concerned that changing it would break any existing scripts or applications. As it is the library is used in several applications.
from exif-py.
👍 for keeping the test data in a separate repo, I was thinking about that too.. I'm currently writing some tests for the "utilities" (eg. the functions to read integers with different endianess, etc.); then, I'm going to write some tests to check that the extracted tags match the ones extracted by the old version on all the test images. Do you have any other tool to extract exif data, that can be used for comparison?
For the package rename: I am aware that it would break existing applications, but:
- In any case, the new library is not 100% compatible with the old one (some kwargs changed, the return value is now a lazy object instead of a dict, ...) so, in any case, it would require some checking to make sure everything is still working properly in the application using it.
- If there's the need, we could easily write a "wrapper" module, called EXIF, exposing the exact same interface as the previous version, but using the new library underneath
- I'd bump the major version to clearly mark the changes
- Since it's not in pypi, nor installable from git due to missing setup.py, I don't think there would be any "automatic breakages" due to the new version being pulled in by another application requirements, right?
from exif-py.
Tests still coming?
from exif-py.
I'm not working with this library ATM (not bc of better one, just dropped
the main project for which I needed it :))
Anyways, if there is interest I can see what can I do with resuming
development..
from exif-py.
The develop branch now uses travis for automated testing.
For now all it does is run all images in the test repo, there is no verification of the output, just that it doesn't fail.
This was done mainly for checking the move to python3 compatibility.
from exif-py.
@ianare yeah, I guess I'd have to merge quite a bunch of stuff to keep up with current development.. Did you make any big changes in the meanwhile / integrated something with my fork / ..?
I remember I was replacing eg. all the manual reading of integers to use the struct module, etc. but I'd have to re-read the code, as I worked on it quite a while ago..
from exif-py.
@rshk , your fork still has lots of very good changes. Do you plan on submitting them? There are not significant changes here that conflict with your work.
from exif-py.
I've got the sample exif tests running on a few extra platforms at https://build.opensuse.org/package/show/home:jayvdb:moban/python-ExifRead , using only #58 for Python 3 support, and everything is all green
from exif-py.
Closing this. I want to be able to output to JSON for automated testing. Going the functional rather than unit route.
from exif-py.
Related Issues (20)
- EXIF from this HEIF cannot be read
- EXIF UserComment tag is not being read HOT 1
- Modify exif data HOT 1
- HEIC parser reaches EOF inside `get32()` call HOT 1
- struct.error: unpack requires a buffer of 8 bytes HOT 3
- Assertion error when reading from HEIC file rotated by the Windows Photos app
- Unexpected/unhandled segment type or file content: possibly incomplete read of data
- IdfTag.__str__() returns a list
- Any Documentation for exifread?
- KeyError: hdlr HOT 5
- infinite loop for one rare image HOT 1
- can't read EXIF 0220 or EXIF 0221 version GPS information
- Many useless warnings HOT 2
- str/bytes problems
- exifread return incorrect value HOT 1
- Error: int too big to convert
- Corrupted image causes huge resource consumption HOT 1
- exifread.heic.NoParser: hdlr HOT 1
- KeyError 'E' in process_file HOT 1
- exifread returns empty dict
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 exif-py.