{ "info": { "author": "Simon Pantzare", "author_email": "simon@narrativeteam.com", "bugtrack_url": null, "classifiers": [], "description": "# exifyay\n\nYay, [Exif][exif-wp]! This module provides routines for reading and\n**writing** Exif data in Python, backed by strong and time-tested C\nlibraries.\n\nThe bindings are generated by [Cython][cython] and we use static\nlinking to produce a self-contained Python C module.\n\n## Sources\nlibexif and libjpeg are based on version 0.6.21. We have removed some\ni18n related stuff and added a GPS routine from the same source where\nJpegEncoderEXIF comes from.\n\nJpegEncoderEXIF uses libexif and provides a higher-level interface to\nset Exif data. We have added a function to unset tags and have extended\nthe GPS support.\n\nlibexif performs the heavy lifting that lets us read and write Exif\ndata. libjpeg is part of the exif tool closely related to libexif.\n\nlibexif and libjpeg use autotools, we use [CMake][cmake] because Simon\ncould not figure out how to cleanly build static libraries that work\nboth on OS X and Linux.\n\n## Build\n```shell\ncmake .\nmake\npython setup.py install\n```\n\nTo build you must have CMake, make, gcc, g++, Python headers, and\nCython installed.\n\n## Install using pip\nYou can install exifyay using [pip][pip] but you must still have the\nbuild requirements installed. To create binary distrbutions, you\nmay want to have a look at [fpm][fpm].\n\n## Check for memory leaks\nWe use [Valgrind][valgrind] and Python built with `--with-valgrind` on\ntest scripts and make sure that no directly nor indirectly lost memory\nis reported. Possibly lost memory is reported, however, but our sanity\ncheck is to remove all libexif unref calls and such and verify that the\npossibly lost memory value is unchanged.\n\n## Correctness\nWe verify that running the same operations on the same data more than\nonce do not change it. We also verify that outputs can be parsed with\ntools like [ExifTool][exiftool]\n\n## Contributors\n\n* [Simon Pantzare](https://github.com/pilt)\n* [Felipe A. Hernandez](https://github.com/ergoithz)\n\n\n## Licenses\n * exifyay (LGPL v3)\n * [libexif](http://libexif.sourceforge.net/) (LGPL v2.1)\n * [libjpeg (part of exif)](http://libexif.sourceforge.net/) (LGPL v2.1)\n * [JpegEncoderEXIF](https://github.com/tpruvot/android_hardware_ti_omap4/tree/master/omap3/camera-omap3) (LGPL v2.1)\n * [thewtex/cython-cmake-example](https://github.com/thewtex/cython-cmake-example) (Apache License v2.0)\n\n[exif-wp]: http://en.wikipedia.org/wiki/Exchangeable_image_file_format\n[cython]: http://cython.org/\n[valgrind]: http://valgrind.org/\n[exiftool]: http://www.sno.phy.queensu.ca/~phil/exiftool/\n[cmake]: http://www.cmake.org/\n[pip]: http://www.pip-installer.org/en/latest/\n[fpm]: https://github.com/jordansissel/fpm\n", "description_content_type": null, "docs_url": null, "download_url": "UNKNOWN", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "http://github.com/Memoto/exifyay", "keywords": "exif", "license": "LGPL", "maintainer": null, "maintainer_email": null, "name": "exifyay", "package_url": "https://pypi.org/project/exifyay/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/exifyay/", "project_urls": { "Download": "UNKNOWN", "Homepage": "http://github.com/Memoto/exifyay" }, "release_url": "https://pypi.org/project/exifyay/0.2.0/", "requires_dist": null, "requires_python": null, "summary": "Yay, Exif!", "version": "0.2.0" }, "last_serial": 1752069, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "bc7eeca76a403fc3107c670743047d49", "sha256": "9f7f6552130bb0d33ce4584fe39d7de54a0babc700855f9ea472cbcfe2c961e4" }, "downloads": -1, "filename": "exifyay-0.1.0.tar.gz", "has_sig": false, "md5_digest": "bc7eeca76a403fc3107c670743047d49", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 115776, "upload_time": "2013-12-08T14:44:45", "url": "https://files.pythonhosted.org/packages/33/6f/1cfb7d681daeee954ebf9a388ab89d87fa179a77535e394fffb65a97d0ad/exifyay-0.1.0.tar.gz" } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "f2a3882040c0b72c868917e3a1a24399", "sha256": "38048087a815c27a4aee42b835ae40ed6ef92d694f49d46dddac1d5ba87bcd82" }, "downloads": -1, "filename": "exifyay-0.1.1.tar.gz", "has_sig": false, "md5_digest": "f2a3882040c0b72c868917e3a1a24399", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 159988, "upload_time": "2013-12-09T10:54:08", "url": "https://files.pythonhosted.org/packages/fc/67/538321f54a9d2b88526f4c7a254849e136cd77edea81d47657b1531a3fa9/exifyay-0.1.1.tar.gz" } ], "0.1.2": [ { "comment_text": "", "digests": { "md5": "5e9049fe7257454edc5804054ab0050a", "sha256": "88acd91f0dab66b871a52f6905d5ab661fdb155a0f02fb66d9c852e1d593c056" }, "downloads": -1, "filename": "exifyay-0.1.2.tar.gz", "has_sig": false, "md5_digest": "5e9049fe7257454edc5804054ab0050a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 160382, "upload_time": "2013-12-09T13:49:09", "url": "https://files.pythonhosted.org/packages/c3/99/d59910e724f00bf77358bc7541650a967b799ee4315fe14ad4da76d1e4c0/exifyay-0.1.2.tar.gz" } ], "0.1.3": [ { "comment_text": "", "digests": { "md5": "a9369c1cb4c99ce1f669f520fd17821d", "sha256": "9b64acc70093a7b3436e09193f1a98e9d2b68266ffa7fa797d33f13eff4c6957" }, "downloads": -1, "filename": "exifyay-0.1.3.tar.gz", "has_sig": false, "md5_digest": "a9369c1cb4c99ce1f669f520fd17821d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 169651, "upload_time": "2015-03-21T11:40:48", "url": "https://files.pythonhosted.org/packages/74/72/7493bf15535fd61381a37e2b9adc20e78fa3f40aeea6a711a0b64948a21d/exifyay-0.1.3.tar.gz" } ], "0.1.4": [ { "comment_text": "", "digests": { "md5": "7792647890a835b5e52e28b276785418", "sha256": "cc96981a9808231d5853dd89fc853219e13b72d8700f7aa614e2c9d605138304" }, "downloads": -1, "filename": "exifyay-0.1.4.tar.gz", "has_sig": false, "md5_digest": "7792647890a835b5e52e28b276785418", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 169722, "upload_time": "2015-03-21T12:37:26", "url": "https://files.pythonhosted.org/packages/8e/eb/13ec74b3967589d59f26b0a250f801ed915267b71b07484242d3fd6fa6be/exifyay-0.1.4.tar.gz" } ], "0.1.5": [ { "comment_text": "", "digests": { "md5": "bb3aba641ad97d3f6e7fd3aa4224fcfc", "sha256": "e13b5be02f9fc3fd28de53d7cec13455cc2dea064bdba2d62a0590982dd4f7f6" }, "downloads": -1, "filename": "exifyay-0.1.5.tar.gz", "has_sig": false, "md5_digest": "bb3aba641ad97d3f6e7fd3aa4224fcfc", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 117345, "upload_time": "2015-03-21T13:33:39", "url": "https://files.pythonhosted.org/packages/ee/df/47709e2dbf61596fddba0170ca2943fcd9436eb61266a5c72fede30281e9/exifyay-0.1.5.tar.gz" } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "5f65c2cadf76d8399a4d6f8846846aca", "sha256": "d43e6603f6686d4c967f7187057dedfae05cb131aa53467557d5e7d58c7d80cd" }, "downloads": -1, "filename": "exifyay-0.2.0.tar.gz", "has_sig": false, "md5_digest": "5f65c2cadf76d8399a4d6f8846846aca", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 175515, "upload_time": "2015-10-05T08:25:51", "url": "https://files.pythonhosted.org/packages/10/8e/cf621802c8aad0f7377f508d3d6601e1b579d16f546146c11a21b45a0ef6/exifyay-0.2.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "5f65c2cadf76d8399a4d6f8846846aca", "sha256": "d43e6603f6686d4c967f7187057dedfae05cb131aa53467557d5e7d58c7d80cd" }, "downloads": -1, "filename": "exifyay-0.2.0.tar.gz", "has_sig": false, "md5_digest": "5f65c2cadf76d8399a4d6f8846846aca", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 175515, "upload_time": "2015-10-05T08:25:51", "url": "https://files.pythonhosted.org/packages/10/8e/cf621802c8aad0f7377f508d3d6601e1b579d16f546146c11a21b45a0ef6/exifyay-0.2.0.tar.gz" } ] }