# Appendix

## Known Issues

> - The version of libexempi that comes via Macports refuses to load via ctypes. As a workaround, you should compile libexempi from source.

## Resources

> - Project website – https://github.com/python-xmp-toolkit/python-xmp-toolkit
> - XMP – http://www.adobe.com/products/xmp/
> - Exempi – http://libopenraw.freedesktop.org/wiki/Exempi
> - Adobe XMP Toolkit – http://www.adobe.com/devnet/xmp/

## Glossary

XMP
  eXtensible Metadata Platform

## TODO list

Todo

Make get_array_item optionally return keywords describing array item’s options

(The original entry is located in /build/python-xmp-toolkit-3EUFvr/python-xmp-toolkit-2.0.1+git20140309.5437b0a/libxmp/core.py:docstring of libxmp.core.XMPMeta.get_array_item, line 16.)

Todo

Make get_property optionally return keywords describing property’s options

(The original entry is located in /build/python-xmp-toolkit-3EUFvr/python-xmp-toolkit-2.0.1+git20140309.5437b0a/libxmp/core.py:docstring of libxmp.core.XMPMeta.get_property, line 18.)

Todo

Make get_property_bool optionally return keywords describing property’s options

(The original entry is located in /build/python-xmp-toolkit-3EUFvr/python-xmp-toolkit-2.0.1+git20140309.5437b0a/libxmp/core.py:docstring of libxmp.core.XMPMeta.get_property_bool, line 13.)

Todo

Make get_property_float optionally return keywords describing property’s options

(The original entry is located in /build/python-xmp-toolkit-3EUFvr/python-xmp-toolkit-2.0.1+git20140309.5437b0a/libxmp/core.py:docstring of libxmp.core.XMPMeta.get_property_float, line 13.)

Todo

Make get_property_int optionally return keywords describing property’s options

(The original entry is located in /build/python-xmp-toolkit-3EUFvr/python-xmp-toolkit-2.0.1+git20140309.5437b0a/libxmp/core.py:docstring of libxmp.core.XMPMeta.get_property_int, line 13.)

Todo

Make get_property_int optionally return keywords describing property’s options

(The original entry is located in /build/python-xmp-toolkit-3EUFvr/python-xmp-toolkit-2.0.1+git20140309.5437b0a/libxmp/core.py:docstring of libxmp.core.XMPMeta.get_property_long, line 13.)

Todo

Suppress this in sphinx docs

(The original entry is located in /build/python-xmp-toolkit-3EUFvr/python-xmp-toolkit-2.0.1+git20140309.5437b0a/libxmp/core.py:docstring of libxmp.core.XMPIterator.next, line 3.)

Todo

Documentation

(The original entry is located in /build/python-xmp-toolkit-3EUFvr/python-xmp-toolkit-2.0.1+git20140309.5437b0a/libxmp/files.py:docstring of libxmp.files.XMPFiles, line 15.)

Todo

Change signature into using kwargs to set option flag

(The original entry is located in /build/python-xmp-toolkit-3EUFvr/python-xmp-toolkit-2.0.1+git20140309.5437b0a/libxmp/files.py:docstring of libxmp.files.XMPFiles.close_file, line 7.)

Todo

Change signature into using kwargs to set option flag

(The original entry is located in /build/python-xmp-toolkit-3EUFvr/python-xmp-toolkit-2.0.1+git20140309.5437b0a/libxmp/files.py:docstring of libxmp.files.XMPFiles.open_file, line 7.)

## License

Copyright (c) 2008-2009, European Space Agency & European Southern Observatory (ESA/ESO) Copyright (c) 2008-2009, CRS4 - Centre for Advanced Studies, Research and Development in Sardinia All rights reserved.

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

> - Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
> - Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
> - Neither the name of the European Space Agency, European Southern Observatory, CRS4 nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY ESA/ESO AND CRS4 ``AS IS’’ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL ESA/ESO BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE

## Changes

Release 2.0.1 ( March 9, 2014 )
  - Fixed documentation code examples (issue #34)
  - Removed print statement.
  - Enabled insertion of new struct into array (issue #33)
  - Thanks to Fenykepy for bug reports.
Release 2.0.0 ( January 17, 2014 )
  - Added support for Python 3.3, dropped support for 2.5.
  - All string outputs in 2.6 and 2.7 are unicode objects with UTF-8 encoding.
  - Added exempi module, a low-level ctypes interface to exempi library.
  - Most XMPMeta methods that formerly returned bool now raise exceptions in case of failure, except for “does_property_exist”, “does_array_item_exist”.
  - Added timezone support for datetime routines.
  - Added delete_localized_text method to XMPMeta
Release 1.0.2 ( June 21, 2011 )
  - Fixed python 2.5 issue (ctypes.c_bool are not available in 2.5, so it was changed to ctypes.c_int).
Release 1.0.1 ( April 11, 2011 )
  - Fixed issue on 32-bit systems.
Release 1.0 ( March 31, 2011 )
  - Known issue #7 documented - issue with TIFF smart handler.
  - Fixed issue #15 - 64-bit issues on Linux and Mac.
  - Fixed issue #11 - Typo in does_property_exist.
  - Thanks to marialaura.clemente for bug reports and patches.
Release 1.0rc2 (Feburary 16, 2010)
  - Fixed issue #4, #5 and related to XMPIterator, file_to_dict and object_to_dict.
  - Fixed issue in file_to_dict which didn’t pass parameters to XMPFiles.open_file() properly.
  - Fixed issue #9 file_to_dict now raises IOError instead of returning an empty dictionary for non-existing files. (backward incompatible)
  - Fixed issue #8 - spelling mistake in function call in XMPMeta.append_array_items
  - Based on Exempi 2.1.1 and Adobe XMP Toolkit 4.4.2
  - Thanks to olsenpk, pitymushroom, rmarianski, cfarrell1980 for bug reports and patches
Release 1.0rc1 (March 6, 2009)
  - Backwards incompatible with previous releases.
  - Based on Exempi 2.1.0 and Adobe XMP Toolkit 4.4.2
  - Initialise and Terminate should no longer be called before usage.
Release 1.0beta1 (July 6, 2008)
  - First public release.