1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311
|
python-gphoto2 - Python interface to libgphoto2
http://github.com/jim-easterbrook/python-gphoto2
Copyright (C) 2014-24 Jim Easterbrook jim@jim-easterbrook.me.uk
This file is part of python-gphoto2.
python-gphoto2 is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as
published by the Free Software Foundation, either version 3 of the
License, or (at your option) any later version.
python-gphoto2 is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with python-gphoto2. If not, see
<https://www.gnu.org/licenses/>.
Changes in 2.5.1:
1/ Add macOS arm64 "binary wheels".
2/ Add Python 3.12 & 3.13 binary wheels.
3/ Add '__version_tuple__' for easy runtime version checking.
Changes in 2.5.0:
1/ API change: gp_log_add_func callback is passed str instead of bytes
2/ Add some GPPort methods. This allows a port to be reset when an error
occurs.
3/ Pass CameraFile to gp_camera_capture_preview & gp_camera_file_get.
Optional - one will be created if needed.
4/ Remove Context::camera_autodetect method deprecated 3 years ago.
5/ Rename Context, PortInfo & PortInfoList. Add aliases of old names.
6/ Update libgphoto2 to v2.5.31.
Changes in 2.4.0:
1/ API change! gp_file_open no longer creates CameraFile object. It is now
consistent with the C API.
2/ Deprecated functions: gp_abilities_list_append, gp_list_populate,
gp_port_info_list_append, gp_widget_add_choice, gp_widget_set_info,
gp_widget_set_name, gp_widget_set_range, gp_widget_set_readonly.
These will be removed in a future release.
3/ Change licence from GPLv3+ to LGPLv3+.
4/ CameraList behaves like a cross between Python list and dict types.
5/ Added unit tests to check most libgphoto2 functions.
6/ Include virtual camera in "binary wheels".
Changes in 2.3.6:
1/ Use libusb1 instead of libusb0 in Linux binary wheels.
Changes in 2.3.5:
1/ Add Python 3.11 binary wheels.
2/ Drop support for libgphoto2 before version v2.5.10
3/ Clearer installation documentation.
4/ Modernised Python package build system.
Changes in 2.3.4:
1/ Update libgphoto2 to v2.5.30.
2/ Include localisation files in Python package.
Changes in 2.3.3:
1/ Update libgphoto2 to v2.5.29.
Changes in 2.3.2:
1/ Fix "undefined symbol: static_assert" error with Linux binary wheels.
Changes in 2.3.1:
1/ Add MacOS "binary wheels". These have not been thoroughly tested.
2/ Update libgphoto2 to v2.5.28.
Changes in 2.3.0:
1/ Python 2 is no longer supported.
2/ "Binary wheels" are available to simplify installation on some computers.
Changes in 2.2.4:
1/ Built with SWIG version 4.0.2 to provide Python 3.8 compatibility.
Changes in 2.2.3:
1/ Minor improvement in setup.py script.
2/ Minor improvements in example scripts.
Changes in 2.2.2:
1/ Added Camera.autodetect alternative to gp_camera_autodetect.
2/ Added some deprecation warnings. Use 'python -Wd' to see them when running
software under development.
3/ Added gphoto2_version.py example program.
Changes in 2.2.1:
1/ Reinstated Context.camera_autodetect method removed in 2.2.0.
Changes in 2.2.0:
1/ COMPATIBILITY CHANGE: Removed Context.camera_autodetect method.
2/ COMPATIBILITY CHANGE: Removed deprecated widget get/set functions.
3/ Python3 log messages are now str instead of bytes.
4/ Documentation improvements.
Changes in 2.1.0:
1/ COMPATIBILITY CHANGE: gp_file_set_data_and_size and gp_file_append now
take a single buffer parameter (such as a bytes string) instead of a
string and length.
2/ Fixed memory double free bug in gp_file_set_data_and_size.
3/ Removed support for libgphoto2 v2.4.
Changes in 2.0.0:
1/ COMPATIBILITY CHANGE: gp_log_add_func and use_python_logging now return a
Python object which must be stored until logging is no longer needed.
2/ Added cam-conf-view-gui & wait-for-event examples. Thanks to the users who
contributed these.
3/ Various minor bug fixes and improvements.
Changes in 1.9.0:
1/ Enabled use of context callback functions such as
gp_context_set_progress_funcs.
2/ Added a time lapse movie example script.
Changes in 1.8.5:
1/ Fix memory leak in gp_camera_get_config.
Changes in 1.8.4:
1/ Fix segfault if camera disconnected before calling get_storageinfo.
Changes in 1.8.3:
1/ Fix Qt5 usage in examples (thanks fatzh).
2/ Handle GP_EVENT_FILE_CHANGED (new in libgphoto2 2.5.17).
3/ Allow Python threads during gp_camera_init.
Changes in 1.8.2:
1/ Fix bug in v1.8.1 that caused installation problems on some systems.
Changes in 1.8.1:
1/ Logging callbacks now pass 'bytes' objects in Python3.
2/ Increased number of functions allow other Python threads to run.
Changes in 1.8.0:
1/ The 'context' parameter is now optional for most functions.
2/ Some deprecated functions have been removed.
3/ Improved documentation of many functions.
4/ Substantial rework of logging callback processing.
Changes in 1.7.1:
1/ Return string values from gp_camera_wait_for_event.
Changes in 1.7.0:
1/ Include function documentation in Python interface.
2/ Add gp_widget_get_children and gp_widget_get_choices functions that return
Python iterators.
Changes in 1.6.0:
1/ Include interfaces for more versions of libgphoto2.
Changes in 1.5.1:
1/ Added gp_camera_get_single_config(), gp_camera_set_single_config() and
gp_camera_list_config() functions, if used with libgphoto2 v2.5.10+.
2/ Changed version related compilation flags.
Changes in 1.5.0:
1/ API change! The gp_file_open function now allocates and returns a new
CameraFile object.
2/ Compile without -Werror by default. Use PYTHON_GPHOTO2_STRICT to
over-ride.
3/ Improved compatibility with old SWIG versions.
Changes in 1.4.1:
1/ Fix issue #16 (MacOS install problem).
Changes in 1.4.0:
1/ Allow user data to be passed to gp_log_add_func (and then to user callback
function).
2/ Add some member methods to GPPortInfo.
Changes in 1.3.4:
1/ Fix a few minor bugs.
Changes in 1.3.3:
1/ Fix bug in gp_camera_get_storageinfo when camera has more than one storage
card.
Changes in 1.3.2:
1/ Further changes to Python interface to logging callback functions.
Changes in 1.3.1:
1/ Reworked Python interface to logging callback functions.
2/ Renamed submodules and revised build process.
3/ Hid xxx_ref, xxx_unref & xxx_free functions from Python.
4/ Fixed some bugs in error handling.
Changes in 1.2.2:
1/ Temporarily fix build problems with Python 3.5
2/ Added a "choose camera" example showing how to handle multiple cameras.
Changes in 1.2.1:
1/ Camera.get_storageinfo and Camera.capture_preview now allocate their
return value (API change).
2/ Examples include a "focus assist" program for EOS 350d. Will need changes
to work with other cameras.
Changes in 1.2.0:
1/ API change! The get_data_and_size functions now return a new "FileData"
object which has the Python buffer interface.
2/ Added get/set capture target examples.
Changes in 1.1.0:
1/ Can now use gp_camera_file_read to fetch data from camera in chunks.
Changes in 1.0.0:
1/ Bump major version number
2/ Upgrade status from "beta" to "production/stable"
Changes in 0.11.2:
1/ Ignore gp_log_with_source_location as it's not present in all versions of
libgphoto2.
2/ Minor improvements in build process.
Changes in 0.11.1:
1/ Ignore gp_log_data for compatibility with gphoto2 v2.5.6.
2/ Improved robustness of interface compilation.
3/ Made use_python_logging() configurable to control verbosity.
Changes in 0.11.0:
1/ Installation no longer requires SWIG.
2/ Reorganised source file locations and build process.
Changes in 0.10.2:
1/ Fixed failure to build with Python 3.
2/ Made gp_camera_trigger_capture thread aware.
Changes in 0.10.1:
1/ Bug fix: would not build with some versions of SWIG.
Changes in 0.10.0:
1/ gp_file_get_data_and_size() now returns a Python bytes object.
2/ gp_camera_wait_for_event() now returns data for some events.
3/ gp_camera_file_get() now allocates the returned CameraFile.
Changes in 0.9.1:
1/ Improved "docstring" documentation of each function.
2/ Slow operations no longer block other Python threads.
3/ Improved build process.
Changes in 0.9.0:
1/ Added "member functions" to many gphoto2 types to replace the higher level
classes defined in Python.
2/ Removed the "higher level classes" defined in Python.
3/ Added __len__ and __getitem__ members to list-like gphoto2 types.
4/ Improved error handling.
5/ Improved memory safety.
Changes in 0.8.0:
1/ Many more functions now allocate and return their outputs, instead of
requiring a new object as a parameter.
2/ Several of the list-like GPhoto2 types can now be iterated over in Python.
3/ Improved memory safety.
Changes in 0.7.1:
1/ Fixed segfault bug with invalid CameraWidget** return values.
2/ Removed need for type-specific gp_widget_get_value_xxx and
gp_widget_set_value_xxx functions.
Changes in 0.7.0:
1/ Changed API of gp_abilities_list_get_abilities and
gp_camera_get_abilities.
2/ Made check_result() much more user-configurable.
3/ Improved memory safety of several functions.
Changes in 0.6.0:
1/ Helper classes now sub-class the corresponding low-level type.
2/ Improved example scripts.
Changes in 0.5.2:
1/ Fixed some bugs in default destructor code introduced in v0.5.0.
Changes in 0.5.1:
1/ Restored '__exit__' methods removed from helper classes in v0.5.0.
2/ Defined some macros to simplify SWIG interface files.
Changes in 0.5.0:
1/ Added default destructors for most objects created by gp_xxx_new()
functions.
2/ Fixed some memory leaks.
3/ Hid details of some private structures and functions.
Changes in 0.4.0:
1/ Made gp_camera_wait_for_event usable.
2/ Made check_result raise exception for fewer error types.
Changes in 0.3.3:
1/ Fixed segfault bug in logging callback with libgphoto2 v2.4.
Changes in 0.3.2:
1/ Reorganised source directory structure
2/ Include example scripts in pip installs.
3/ Start putting releases on PyPI.
Changes in 0.3.1:
1/ Fixed bug in 0.3.0 logging initialisation.
Changes in 0.3.0:
1/ Changed logging callback signature to include gphoto2 level.
Changes in 0.2.1:
1/ Fix download URL broken in 0.2.0.
Changes in 0.2.0:
1/ Added Python helper classes.
2/ Added interface to gphoto2-version.h.
3/ Made compatible with Python 3.
4/ Now works with gphoto2 versions 2.4 and 2.5.
Changes in 0.1:
1/ Early development work, not fit for use.
|