Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Initial Update #8

Open
wants to merge 2 commits into
base: master
Choose a base branch
from
Open

Initial Update #8

wants to merge 2 commits into from

Conversation

pyup-bot
Copy link

This PR sets up pyup.io on this repo and updates all dependencies at once, in a single branch.

Subsequent pull requests will update one dependency at a time, each in their own branch. If you want to start with that right away, simply close this PR.

Update picamera from 1.13 to 1.13.

Changelog

1.13

:mod:`~picamera.mmalobj` layer:

* 10 second captures should now work with the V2 module as the default
``CAPTURE_TIMEOUT`` has been increased to 60 seconds (`284`_)
* A bug in :meth:`~PiCameraCircularIO.copy_to` caused it to copy nothing when
it encountered "unknown" timestamps in the stream (`302`_, `319`_, `357`_)
* A silly typo in code used by :class:`~picamera.array.PiRGBArray` was fixed
(`321`_)
* A bug in :meth:`~PiCamera.capture_continuous` which caused duplicate frames
in the output was fixed (`311`_)
* Bitrate limits were removed on MJPEG, and full checking of H264 bitrates and
macroblocks/s was implemented (`315`_)
* A bug was fixed in the :attr:`~PiCamera.sensor_mode` attribute which
prevented it from being set after construction (`324`_)
* A bug in the custom encoders example was fixed (`337`_)
* Fixed a rare race condition that occurred when multiple splitter ports were
in use (`344`_)
* Recording overlays is now possible, but currently requires using the lower
level :mod:`~picamera.mmalobj` layer (`196`_)
* Capturing YUV arrays via :class:`~picamera.array.PiYUVArray` is faster,
thanks to GitHub user goosst (`308`_)
* Added the ability to specify a restart interval for JPEG encoding (`369`_)
* Added a property allowing users to manually specify a
:attr:`~PiCamera.framerate_range` for the camera (`374`_)
* Added support for partially transparent overlays in RGBA format (`199`_)
* Improved MJPEG web-streaming recipe, many thanks to GitHub user BigNerd95!
(`375`_)

Substantial work has also gone into improving the documentation. In particular:

* The :doc:`recipes2` chapter has been thoroughly re-worked and I would
encourage anyone using the camera for Computer Vision purposes to re-read
that chapter
* The :doc:`fov` chapter has been extended to include a thorough introduction
to the low level operation of the camera module. This is important for
understanding the limitations and peculiarities of the system
* Anyone interested in using a lower level API to control the camera (which
includes capabilities like manipulating frames before they hit the video
encoder) should read the :doc:`api_mmalobj` chapter
* Finally, some work was done on enhancing the PDF and EPub versions of the
documentation. These should now be much more useable in hard-copy and on
e-readers

.. _196: https://github.com/waveform80/picamera/issues/196
.. _199: https://github.com/waveform80/picamera/issues/199
.. _284: https://github.com/waveform80/picamera/issues/284
.. _302: https://github.com/waveform80/picamera/issues/302
.. _308: https://github.com/waveform80/picamera/issues/308
.. _311: https://github.com/waveform80/picamera/issues/311
.. _315: https://github.com/waveform80/picamera/issues/315
.. _319: https://github.com/waveform80/picamera/issues/319
.. _321: https://github.com/waveform80/picamera/issues/321
.. _324: https://github.com/waveform80/picamera/issues/324
.. _337: https://github.com/waveform80/picamera/issues/337
.. _344: https://github.com/waveform80/picamera/issues/344
.. _357: https://github.com/waveform80/picamera/issues/357
.. _369: https://github.com/waveform80/picamera/issues/369
.. _374: https://github.com/waveform80/picamera/issues/374
.. _375: https://github.com/waveform80/picamera/issues/375

1.12

* Fixed issue with unencoded captures in Python 3 (`297`_)
* Fixed several Python 3 bytes/unicode issues that were related to `297`_ (I'd
erroneously run the picamera test suite twice against Python 2 instead of 2
and 3 when releasing 1.11, which is how these snuck in)
* Fixed multi-dimensional arrays for overlays under Python 3
* Finished alternate CIE constructors for the :class:`Color` class

.. _297: https://github.com/waveform80/picamera/issues/297

1.11

includes a major re-write of picamera's core:

* Direct capture to buffer-protocol objects, such as numpy arrays
(`241`_)
* Add :meth:`~PiCamera.request_key_frame` method to permit manual request
of an I-frame during H264 recording; this is now used implicitly by
:meth:`~PiCamera.split_recording` (`257`_)
* Added :attr:`~PiCamera.timestamp` attribute to query camera's clock
(`212`_)
* Added :attr:`~PiCamera.framerate_delta` to permit small adjustments to
the camera's framerate to be performed "live" (`279`_)
* Added :meth:`~PiCameraCircularIO.clear` and
:meth:`~PiCameraCircularIO.copy_to` methods to
:class:`PiCameraCircularIO` (`216`_)
* Prevent setting attributes on the main :class:`PiCamera` class to ease
debugging in educational settings (`240`_)
* Due to the core re-writes in this version, you may require cutting edge
firmware (``sudo rpi-update``) if you are performing unencoded captures,
unencoded video recording, motion estimation vector sampling, or manual
sensor mode setting.
* Added property to control preview's :attr:`~PiPreviewRenderer.resolution`
separately from the camera's :attr:`~PiCamera.resolution` (required for
maximum resolution previews on the V2 module - `296`_).

There are also several bug fixes:

* Fixed basic stereoscopic operation on compute module (`218`_)
* Fixed accessing framerate as a tuple (`228`_)
* Fixed hang when invalid file format is specified (`236`_)
* Fixed multiple bayer captures with :meth:`~PiCamera.capture_sequence`
and :meth:`~PiCamera.capture_continuous` (`264`_)
* Fixed usage of "falsy" custom outputs with ``motion_output`` (`281`_)

Many thanks to the community, and especially thanks to 6by9 (one of the
firmware developers) who's fielded seemingly endless questions and
requests from me in the last couple of months!

.. _241: https://github.com/waveform80/picamera/issues/241
.. _257: https://github.com/waveform80/picamera/issues/257
.. _212: https://github.com/waveform80/picamera/issues/212
.. _279: https://github.com/waveform80/picamera/pull/279
.. _216: https://github.com/waveform80/picamera/issues/216
.. _240: https://github.com/waveform80/picamera/issues/240
.. _218: https://github.com/waveform80/picamera/issues/218
.. _228: https://github.com/waveform80/picamera/issues/228
.. _236: https://github.com/waveform80/picamera/issues/236
.. _264: https://github.com/waveform80/picamera/issues/264
.. _281: https://github.com/waveform80/picamera/issues/281
.. _296: https://github.com/waveform80/picamera/issues/296

1.10

* The major enhancement is the addition of support for the camera's flash
driver. This is relatively complex to configure, but a full recipe has been
included in the documentation (`184`_)
* A new `intra_refresh` attribute is added to the
:meth:`~PiCamera.start_recording` method permitting control of the
intra-frame refresh method (`193`_)
* The GPIO pins controlling the camera's LED are now configurable. This is
mainly for any compute module users, but also for anyone who wishes to use
the device tree blob to reconfigure the pins used (`198`_)
* The new annotate V3 struct is now supported, providing custom background
colors for annotations, and configurable text size. As part of this work a
new :class:`Color` class was introduced for representation and manipulation
of colors (`203`_)
* Reverse enumeration of frames in :class:`PiCameraCircularIO` is now supported
efficiently (without having to convert frames to a list first) (`204`_)
* Finally, the API documentation has been re-worked as it was getting too
large to comfortably load on all platforms (no ticket)

.. _184: https://github.com/waveform80/picamera/issues/184
.. _193: https://github.com/waveform80/picamera/issues/193
.. _198: https://github.com/waveform80/picamera/issues/198
.. _203: https://github.com/waveform80/picamera/issues/203
.. _204: https://github.com/waveform80/picamera/issues/204

1.9

* The camera's sensor mode can now be forced to a particular setting upon
camera initialization with the new ``sensor_mode`` parameter to
:class:`PiCamera` (`165`_)
* The camera's initial framerate and resolution can also be specified as
keyword arguments to the :class:`PiCamera` initializer. This is primarily
intended to reduce initialization time (`180`_)
* Added the :attr:`~PiCamera.still_stats` attribute which controls
whether an extra statistics pass is made when capturing images from the still
port (`166`_)
* Fixed the :attr:`~PiCamera.led` attribute so it should now work on
the Raspberry Pi model B+ (`170`_)
* Fixed a nasty memory leak in overlay renderers which caused the camera to run
out of memory when overlays were repeatedly created and destroyed (`174`_) *
Fixed a long standing issue with MJPEG recording which caused camera lockups
when resolutions greater than VGA were used (`47`_ and `179`_)
* Fixed a bug with incorrect frame metadata in :class:`PiCameraCircularIO`.
Unfortunately this required breaking backwards compatibility to some extent.
If you use this class and rely on the frame metadata, please familiarize
yourself with the new :attr:`~PiVideoFrame.complete` attribute (`177`_)
* Fixed a bug which caused :class:`PiCameraCircularIO` to ignore the splitter
port it was recording against (`176`_)
* Several documentation issues got fixed too (`167`_, `168`_, `171`_,
`172`_, `182`_)

Many thanks to the community for providing several of these fixes as pull
requests, and thanks for all the great bug reports. Happy new year everyone!

.. _47: https://github.com/waveform80/picamera/issues/47
.. _165: https://github.com/waveform80/picamera/issues/165
.. _166: https://github.com/waveform80/picamera/issues/166
.. _167: https://github.com/waveform80/picamera/issues/167
.. _168: https://github.com/waveform80/picamera/issues/168
.. _170: https://github.com/waveform80/picamera/issues/170
.. _171: https://github.com/waveform80/picamera/issues/171
.. _172: https://github.com/waveform80/picamera/pull/172
.. _174: https://github.com/waveform80/picamera/issues/174
.. _176: https://github.com/waveform80/picamera/pull/176
.. _177: https://github.com/waveform80/picamera/issues/177
.. _179: https://github.com/waveform80/picamera/pull/179
.. _180: https://github.com/waveform80/picamera/issues/180
.. _182: https://github.com/waveform80/picamera/issues/182

1.8

* A new chapter on detecting and correcting deprecated functionality was added
to the docs (`149`_)
* Stereoscopic cameras are now tentatively supported on the Pi compute module.
Please note I have no hardware for testing this, so the implementation is
possibly (probably!) wrong; bug reports welcome! (`153`_)
* Text annotation functionality has been extended; up to 255 characters are now
possible, and the new :attr:`~PiCamera.annotate_frame_num` attribute adds
rendering of the current frame number. In addition, the new
:attr:`~PiCamera.annotate_background` flag permits a dark background to be
rendered behind all annotations for contrast (`160`_)
* Arbitrary image overlays can now be drawn on the preview using the new
:meth:`~PiCamera.add_overlay` method. A new recipe has been included
demonstrating overlays from PIL images and numpy arrays. As part of this work
the preview system was substantially changed; all older scripts should
continue to work but please be aware that most preview attributes are now
deprecated; the new :attr:`~PiCamera.preview` attribute replaces them
(`144`_)
* Image effect parameters can now be controlled via the new
:attr:`~PiCamera.image_effect_params` attribute (`143`_)
* A bug in the handling of framerates meant that long exposures (>1s) weren't
operating correctly. This *should* be fixed, but I'd be grateful if users
could test this and let me know for certain (Exif metadata reports the
configured exposure speed so it can't be used to determine if things are
actually working) (`135`_)
* A bug in 1.7 broke compatibility with older firmwares (resulting in an error
message mentioning "mmal_queue_timedwait"). The library should now on older
firmwares (`154`_)
* Finally, the confusingly named :attr:`~PiCamera.crop` attribute was changed
to a deprecated alias for the new :attr:`~PiCamera.zoom` attribute (`146`_)

.. _135: https://github.com/waveform80/picamera/issues/135
.. _143: https://github.com/waveform80/picamera/issues/143
.. _144: https://github.com/waveform80/picamera/issues/144
.. _146: https://github.com/waveform80/picamera/issues/146
.. _149: https://github.com/waveform80/picamera/issues/149
.. _153: https://github.com/waveform80/picamera/issues/153
.. _154: https://github.com/waveform80/picamera/issues/154
.. _160: https://github.com/waveform80/picamera/issues/160

1.7

* Text overlay on preview, image, and video output is now possible (`16`_)
* Support for more than one camera on the compute module has been added, but
hasn't been tested yet (`84`_)
* The :attr:`~PiCamera.exposure_mode` ``'off'`` has been added to allow locking
down the exposure time, along with some new recipes demonstrating this
capability (`116`_)
* The valid values for various attributes including :attr:`~PiCamera.awb_mode`,
:attr:`~PiCamera.meter_mode`, and :attr:`~PiCamera.exposure_mode` are now
automatically included in the documentation (`130`_)
* Support for unencoded formats (YUV, RGB, etc.) has been added to the
:meth:`~PiCamera.start_recording` method (`132`_)
* A couple of analysis classes have been added to :mod:`picamera.array` to
support the new unencoded recording formats (`139`_)
* Several issues in the :class:`~PiBayerArray` class were fixed; this should
now work correctly with Python 3, and the :meth:`~PiBayerArray.demosaic`
method should operate correctly (`133`_, `134`_)
* A major issue with multi-resolution recordings which caused all recordings
to stop prematurely was fixed (`136`_)
* Finally, an issue with the example in the documentation for custom encoders
was fixed (`128`_)

Once again, many thanks to the community for another round of excellent bug
reports - and many thanks to 6by9 and jamesh for their excellent work on the
firmware and official utilities!

.. _16: https://github.com/waveform80/picamera/issues/16
.. _84: https://github.com/waveform80/picamera/issues/84
.. _116: https://github.com/waveform80/picamera/issues/116
.. _128: https://github.com/waveform80/picamera/issues/128
.. _130: https://github.com/waveform80/picamera/issues/130
.. _132: https://github.com/waveform80/picamera/issues/132
.. _133: https://github.com/waveform80/picamera/issues/133
.. _134: https://github.com/waveform80/picamera/issues/134
.. _136: https://github.com/waveform80/picamera/issues/136
.. _139: https://github.com/waveform80/picamera/issues/139

1.6

* The :attr:`~PiCamera.awb_gains` attribute is no longer write-only; you can
now read it to determine the red/blue balance that the camera is using
(`98`_)
* The new read-only :attr:`~PiCamera.exposure_speed` attribute will tell you
the shutter speed the camera's auto-exposure has determined, or the shutter
speed you've forced with a non-zero value of :attr:`~PiCamera.shutter_speed`
(`98`_)
* The new read-only :attr:`~PiCamera.analog_gain` and
:attr:`~PiCamera.digital_gain` attributes can be used to determine the amount
of gain the camera is applying at a couple of crucial points of the image
processing pipeline (`98`_)
* The new :attr:`~PiCamera.drc_strength` attribute can be used to query and set
the amount of dynamic range compression the camera will apply to its output
(`110`_)
* The *intra_period* parameter for :meth:`~PiCamera.start_recording` can now be
set to `0` (which means "produce one initial I-frame, then just P-frames")
(`117`_)
* The *burst* parameter was added to the various :meth:`~PiCamera.capture`
methods; users are strongly advised to read the cautions in the docs before
relying on this parameter (`115`_)
* One of the advanced recipes in the manual ("splitting to/from a circular
stream") failed under 1.5 due to a lack of splitter-port support in the
circular I/O stream class. This has now been rectified by adding a
*splitter_port* parameter to the constructor of :class:`~PiCameraCircularIO`
(`109`_)
* Similarly, the :mod:`array extensions <picamera.array>` introduced in 1.5
failed to work when resizers were present in the pipeline. This has been
fixed by adding a `size` parameter to the constructor of all the custom
output classes defined in that module (`121`_)
* A bug that caused picamera to fail when the display was disabled has been
squashed (`120`_)

As always, many thanks to the community for another great set of bug reports!

.. _98: https://github.com/waveform80/picamera/issues/98
.. _109: https://github.com/waveform80/picamera/issues/109
.. _110: https://github.com/waveform80/picamera/issues/110
.. _115: https://github.com/waveform80/picamera/issues/115
.. _117: https://github.com/waveform80/picamera/issues/117
.. _120: https://github.com/waveform80/picamera/issues/120
.. _121: https://github.com/waveform80/picamera/issues/121

1.5

functionality:

* The new :mod:`picamera.array` module provides a series of custom output
classes which can be used to easily obtain numpy arrays from a variety of
sources (`107`_)
* The *motion_output* parameter was added to :meth:`~PiCamera.start_recording`
to enable output of motion vector data generated by the H.264 encoder. A
couple of new recipes were added to the documentation to demonstrate this
(`94`_)
* The ability to construct custom encoders was added, including some examples
in the documentation. Many thanks to user Oleksandr Sviridenko (d2rk) for
helping with the design of this feature! (`97`_)
* An example recipe was added to the documentation covering loading and
conversion of raw Bayer data (`95`_)
* Speed of unencoded RGB and BGR captures was substantially improved in both
Python 2 and 3 with a little optimization work. The warning about using
alpha-inclusive modes like RGBA has been removed as a result (`103`_)
* An issue with out-of-order calls to :meth:`~PiCamera.stop_recording` when
multiple recordings were active was resolved (`105`_)
* Finally, picamera caught up with raspistill and raspivid by offering a
friendly error message when used with a disabled camera - thanks to Andrew
Scheller (lurch) for the suggestion! (`89`_)

.. _89: https://github.com/waveform80/picamera/issues/89
.. _94: https://github.com/waveform80/picamera/issues/94
.. _95: https://github.com/waveform80/picamera/issues/95
.. _97: https://github.com/waveform80/picamera/issues/97
.. _103: https://github.com/waveform80/picamera/issues/103
.. _105: https://github.com/waveform80/picamera/issues/105
.. _107: https://github.com/waveform80/picamera/issues/107

1.4

* The *sei* parameter was added to :meth:`~PiCamera.start_recording` to permit
inclusion of "Supplemental Enhancement Information" in the output stream
(`77`_)
* The :attr:`~PiCamera.awb_gains` attribute was added to permit manual control
of the auto-white-balance red/blue gains (`74`_)
* A bug which cause :meth:`~PiCamera.split_recording` to fail when low
framerates were configured was fixed (`87`_)
* A bug which caused picamera to fail when used in UNIX-style daemons, unless
the module was imported *after* the double-fork to background was fixed
(`85`_)
* A bug which caused the :attr:`~PiCamera.frame` attribute to fail when queried
in Python 3 was fixed (`80`_)
* A bug which caused raw captures with "odd" resolutions (like 100x100) to
fail was fixed (`83`_)

Known issues:

* Added a workaround for full-resolution YUV captures failing. This
isn't a complete fix, and attempting to capture a JPEG before attempting to
capture full-resolution YUV data will still fail, unless the GPU memory split
is set to something huge like 256Mb (`73`_)

Many thanks to the community for yet more excellent quality bug reports!

.. _73: https://github.com/waveform80/picamera/issues/73
.. _74: https://github.com/waveform80/picamera/issues/74
.. _77: https://github.com/waveform80/picamera/issues/77
.. _80: https://github.com/waveform80/picamera/issues/80
.. _83: https://github.com/waveform80/picamera/issues/83
.. _85: https://github.com/waveform80/picamera/issues/85
.. _87: https://github.com/waveform80/picamera/issues/87

1.3

* The *bayer* parameter was added to the ``'jpeg'`` format in the capture
methods to permit output of the camera's raw sensor data (`52`_)
* The :meth:`~PiCamera.record_sequence` method was added to provide a cleaner
interface for recording multiple consecutive video clips (`53`_)
* The *splitter_port* parameter was added to all capture methods and
:meth:`~PiCamera.start_recording` to permit recording multiple simultaneous
video streams (presumably with different options, primarily *resize*)
(`56`_)
* The limits on the :attr:`~PiCamera.framerate` attribute were increased after
firmware 656 introduced numerous new camera modes including 90fps recording
(at lower resolutions) (`65`_)

And partly bug fixes:

* It was reported that Exif metadata (including thumbnails) wasn't fully
recorded in JPEG output (`59`_)
* Raw captures with :meth:`~PiCamera.capture_continuous` and
:meth:`~PiCamera.capture_sequence` were broken (`55`_)

.. _52: https://github.com/waveform80/picamera/issues/52
.. _53: https://github.com/waveform80/picamera/issues/53
.. _55: https://github.com/waveform80/picamera/issues/55
.. _56: https://github.com/waveform80/picamera/issues/56
.. _59: https://github.com/waveform80/picamera/issues/59
.. _65: https://github.com/waveform80/picamera/issues/65

1.2

* A bug introduced in 1.1 caused :meth:`~PiCamera.split_recording` to fail if
it was preceded by a video-port-based image capture (`49`_)
* The documentation was enhanced to try and full explain the discrepancy
between preview and capture resolution, and to provide some insight into
the underlying workings of the camera (`23`_)
* A new property was introduced for configuring the preview's layer at runtime
although this probably won't find use until OpenGL overlays are explored
(`48`_)

.. _23: https://github.com/waveform80/picamera/issues/23
.. _48: https://github.com/waveform80/picamera/issues/48
.. _49: https://github.com/waveform80/picamera/issues/49

1.1

* A nasty race condition was discovered which led to crashes with long-running
processes (`40`_)
* An assertion error raised when performing raw captures with an active resize
parameter was fixed (`46`_)
* A couple of documentation enhancements made it in (`41`_ and `47`_)

.. _40: https://github.com/waveform80/picamera/issues/40
.. _41: https://github.com/waveform80/picamera/pull/41
.. _46: https://github.com/waveform80/picamera/issues/46
.. _47: https://github.com/waveform80/picamera/issues/47

1.0

========================

In 1.0 the major features added were:

* Debian packaging! (`12`_)
* The new :attr:`~PiCamera.frame` attribute permits querying information about
the frame last written to the output stream (number, timestamp, size,
keyframe, etc.) (`34`_, `36`_)
* All capture methods (:meth:`~PiCamera.capture` et al), and the
:meth:`~PiCamera.start_recording` method now accept a ``resize`` parameter
which invokes a resizer prior to the encoding step (`21`_)
* A new :class:`~PiCameraCircularIO` stream class is provided to permit holding
the last *n* seconds of video in memory, ready for writing out to disk (or
whatever you like) (`39`_)
* There's a new way to specify raw captures - simply use the format you require
with the capture method of your choice. As a result of this, the
:attr:`~PiCamera.raw_format` attribute is now deprecated (`32`_)

Some bugs were also fixed:

* GPIO.cleanup is no longer called on :meth:`~PiCamera.close` (`35`_), and
GPIO set up is only done on first use of the :attr:`~PiCamera.led` attribute
which should resolve issues that users have been having with using picamera
in conjunction with GPIO
* Raw RGB video-port based image captures are now working again too (`32`_)

As this is a new major-version, all deprecated elements were removed:

* The continuous method was removed; this was replaced by
:meth:`~PiCamera.capture_continuous` in 0.5 (`7`_)

.. _7: https://github.com/waveform80/picamera/issues/7
.. _12: https://github.com/waveform80/picamera/issues/12
.. _21: https://github.com/waveform80/picamera/issues/21
.. _32: https://github.com/waveform80/picamera/issues/32
.. _34: https://github.com/waveform80/picamera/issues/34
.. _35: https://github.com/waveform80/picamera/issues/35
.. _36: https://github.com/waveform80/picamera/issues/36
.. _39: https://github.com/waveform80/picamera/issues/39

0.8

========================

In 0.8 the major features added were:

* Capture of images whilst recording without frame-drop. Previously, images
could be captured whilst recording but only from the still port which
resulted in dropped frames in the recorded video due to the mode switch. In
0.8, ``use_video_port=True`` can be specified on capture methods whilst
recording video to avoid this.
* Splitting of video recordings into multiple files. This is done via the new
:meth:`~PiCamera.split_recording` method, and requires that the
:meth:`~PiCamera.start_recording` method was called with *inline_headers* set
to True. The latter has now been made the default (technically this is a
backwards incompatible change, but it's relatively trivial and I don't
anticipate anyone's code breaking because of this change).

In addition a few bugs were fixed:

* Documentation updates that were missing from 0.7 (specifically the new
video recording parameters)
* The ability to perform raw captures through the video port
* Missing exception imports in the encoders module (which caused very confusing
errors in the case that an exception was raised within an encoder thread)

0.7

* Added ``quantisation`` and ``inline_headers`` options to
:meth:`~PiCamera.start_recording` method
* Fixed bugs in the :attr:`~PiCamera.crop` property
* The issue of captures fading to black over time when the preview is not
running has been resolved. This solution was to permanently activate the
preview, but pipe it to a null-sink when not required. Note that this means
rapid capture gets even slower when not using the video port
* LED support is via RPi.GPIO only; the RPIO library simply doesn't support it
at this time
* Numerous documentation fixes

0.6

========================

In 0.6, the major features added were:

* New ``'raw'`` format added to all capture methods (:meth:`~PiCamera.capture`,
:meth:`~PiCamera.capture_continuous`, and :meth:`~PiCamera.capture_sequence`)
to permit capturing of raw sensor data
* New :attr:`~PiCamera.raw_format` attribute to permit control of raw format
(defaults to ``'yuv'``, only other setting currently is ``'rgb'``)
* New :attr:`~PiCamera.shutter_speed` attribute to permit manual control of
shutter speed (defaults to 0 for automatic shutter speed, and requires latest
firmware to operate - use ``sudo rpi-update`` to upgrade)
* New "Recipes" chapter in the documentation which demonstrates a wide variety
of capture techniques ranging from trivial to complex

0.5

========================

In 0.5, the major features added were:

* New :meth:`~PiCamera.capture_sequence` method
* :meth:`~PiCamera.continuous` method renamed to
:meth:`~PiCamera.capture_continuous`. Old method name retained for
compatiblity until 1.0.
* *use_video_port* option for :meth:`~PiCamera.capture_sequence` and
:meth:`~PiCamera.capture_continuous` to allow rapid capture of JPEGs via
video port
* New :attr:`~PiCamera.framerate` attribute to control video
and rapid-image capture frame rates
* Default value for :attr:`~PiCamera.ISO` changed from 400 to 0 (auto) which
fixes :attr:`~PiCamera.exposure_mode` not working by default
* *intraperiod* and *profile* options for :meth:`~PiCamera.start_recording`

In addition a few bugs were fixed:

* Byte strings not being accepted by :meth:`~PiCamera.continuous`
* Erroneous docs for :attr:`~PiCamera.ISO`

Many thanks to the community for the bug reports!

0.4

========================

In 0.4, several new attributes were introduced for configuration of the preview
window:

* :attr:`~PiCamera.preview_alpha`
* :attr:`~PiCamera.preview_fullscreen`
* :attr:`~PiCamera.preview_window`

Also, a new method for rapid continual capture of still images was introduced:
:meth:`~PiCamera.continuous`.

0.3

========================

The major change in 0.3 was the introduction of custom Exif tagging for
captured images, and fixing a silly bug which prevented more than one image
being captured during the lifetime of a PiCamera instance.

0.2

===========

The major change in 0.2 was support for video recording, along with the new
:attr:`~PiCamera.resolution` property which replaced the separate
``preview_resolution`` and ``stills_resolution`` properties.
Links

Update ruamel.yaml from 0.15.42 to 0.15.42.

Changelog

0.14.1

- fix Text not available on 3.5.0 and 3.5.1 (reported by Charles Bouchard-Légaré)

0.14.0

- updates for mypy --strict
- preparation for moving away from inheritance in Loader and Dumper, calls from e.g.
 the Representer to the Serializer.serialize() are now done via the attribute
 .serializer.serialize(). Usage of .serialize() outside of Serializer will be
 deprecated soon
- some extra tests on main.py functions

0.13.14

- fix for issue 97, clipped block scalar followed by empty lines and comment
 would result in two CommentTokens of which the first was dropped.
 (reported by Colm O'Connor)

0.13.13

- fix for issue 96, prevent insertion of extra empty line if indented mapping entries
 are separated by an empty line (reported by Derrick Sawyer)

0.13.11

- allow ':' in flow style scalars if not followed by space. Also don't
 quote such scalar as this is no longer necessary.
- add python 3.6 manylinux wheel to PyPI

0.13.10

- fix for issue 93, insert spurious blank line before single line comment
 between indented sequence elements (reported by Alex)

0.13.9

- fix for issue 92, wrong import name reported by the-corinthian

0.13.8

- fix for issue 91, when a compiler is unavailable reported by Maximilian Hils
- fix for deepcopy issue with TimeStamps not preserving 'T', reported on
 `StackOverflow Q&A <http://stackoverflow.com/a/41577841/1307905>`_ by
 `Quuxplusone <http://stackoverflow.com/users/1424877/quuxplusone>`_

0.13.7

- fix for issue 85, constructor.py importing unicode_literals caused mypy to fail
 on 2.7 (reported by Peter Amstutz)

0.13.6

- fix for issue 83, collections.OrderedDict not representable by SafeRepresenter
 (reported by Frazer McLean)

0.13.5

- fix for issue 84, deepcopy not properly working (reported by Peter Amstutz)

0.13.4

- another fix for issue 82, change to non-global resolver data broke implicit type
 specification

0.13.3

- fix for issue 82, deepcopy not working (reported by code monk)

0.13.2

- fix for comments after empty (null) values  (reported by dsw2127 and cokelaer)

0.13.1

- optimisations on memory usage when loading YAML from large files (py3 -50%, py2 -85%)

0.13.0

- if ``load()`` or ``load_all()`` is called with only a single argument
 (stream or string)
 a UnsafeLoaderWarning will be issued once. If appropriate you can surpress this
 warning by filtering it. Explicitly supplying the ``Loader=ruamel.yaml.Loader``
 argument, will also prevent it from being issued. You should however consider
 using ``safe_load()``, ``safe_load_all()`` if your YAML input does not use tags.
- allow adding comments before and after keys (based on
 `StackOveflow Q&A <http://stackoverflow.com/a/40705671/1307905>`_  by
 `msinn <http://stackoverflow.com/users/7185467/msinn>`_)

0.12.18

- another fix for numpy (re-reported independently by PaulG & Nathanial Burdic)

0.12.17

- only the RoundTripLoader included the Resolver that supports YAML 1.2
 now all loaders do (reported by mixmastamyk)

0.12.16

- allow dot char (and many others) in anchor name
 Fix issue 72 (reported by Shalon Wood)
- |
 Slightly smarter behaviour dumping strings when no style is
 specified. Single string scalars that start with single quotes
 or have newlines now are dumped double quoted "'abc\nklm'" instead of

   '''abc

     klm'''

0.12.14

- preserve round-trip sequences that are mapping keys
(prompted by stackoverflow question 39595807 from Nowox)

0.12.13

- Fix for issue 60 representation of CommentedMap with merge
keys incorrect (reported by Tal Liron)

0.12.11

- Fix issue 58 endless loop in scanning tokens (reported by
Christopher Lambert)

0.12.10

- Make previous fix depend on unicode char width (32 bit unicode support
is a problem on MacOS reported by David Tagatac)

0.12.8

- To be ignored Unicode characters were not properly regex matched
  (no specific tests, PR by Haraguroicha Hsu)

0.12.7

- fixing issue 54 empty lines with spaces (reported by Alex Harvey)

0.12.6

- fixing issue 46 empty lines between top-level keys were gobbled (but
  not between sequence elements, nor between keys in netsted mappings
  (reported by Alex Harvey)

0.12.5

- fixing issue 45 preserving datetime formatting (submitted by altuin)
 Several formatting parameters are preserved with some normalisation:
- preserve 'T', 't' is replaced by 'T', multiple spaces between date
 and time reduced to one.
- optional space before timezone is removed
- still using microseconds, but now rounded (.1234567 -> .123457)
- Z/-5/+01:00 preserved

0.12.4

- Fix for issue 44: missing preserve_quotes keyword argument (reported
 by M. Crusoe)

0.12.3

- correct 'in' operation for merged CommentedMaps in round-trip mode
 (implementation inspired by J.Ngo, but original not working for merges)
- iteration over round-trip loaded mappings, that contain merges. Also
 keys(), items(), values() (Py3/Py2) and iterkeys(), iteritems(),
 itervalues(), viewkeys(), viewitems(), viewvalues() (Py2)
- reuse of anchor name now generates warning, not an error. Round-tripping such
 anchors works correctly. This inherited PyYAML issue was brought to attention
 by G. Coddut (and was long standing https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=515634)
 suppressing the warning::

     import warnings
     from ruamel.yaml.error import ReusedAnchorWarning
     warnings.simplefilter("ignore", ReusedAnchorWarning)

0.12.2

- minor improvements based on feedback from M. Crusoe
 https://bitbucket.org/ruamel/yaml/issues/42/

0.12.0

- drop support for Python 2.6
- include initial Type information (inspired by M. Crusoe)

0.11.15

- Change to prevent FutureWarning in NumPy, as reported by tgehring
 ("comparison to None will result in an elementwise object comparison in the future")

0.11.14

- fix preserve_quotes missing on original Loaders (as reported
 by Leynos, bitbucket issue 38)

0.11.13

- documentation only, automated linux wheels

0.11.12

- added support for roundtrip of single/double quoted scalars using:
 ruamel.yaml.round_trip_load(stream, preserve_quotes=True)

0.11.10

- indent=2, block_seq_indent=2 works as expected

0.11.0

- RoundTripLoader loads 1.2 by default (no sexagesimals, 012 octals nor
 yes/no/on/off booleans

0.10.60.10.9

- Fix for issue 9
- Fix for issue 11: double dump losing comments
- Include libyaml code
- move code from 'py' subdir for proper namespace packaging.

0.10.11

- Fix issue 13: dependency on libyaml to be installed for yaml.h

0.10.10

- Python 3.5 tested with tox
- pypy full test (old PyYAML tests failed on too many open file handles)

0.10.5

- preservation of newlines after block scalars. Contributed by Sam Thursfield.

0.10

- preservation of hand crafted anchor names ( not of the form "idNNN")
- preservation of map merges ( <<< )

0.9

- collections read in by the RoundTripLoader now have a ``lc`` property
that can be quired for line and column ( ``lc.line`` resp. ``lc.col``)

0.8

- bug fix for non-roundtrip save of ordereddict
- adding/replacing end of line comments on block style mappings/sequences

0.7.2

- support for end-of-line comments on flow style sequences and mappings

0.7.1

- RoundTrip capability of flow style sequences ( 'a: b, c, d' )

0.7

- tests (currently failing) for inline sequece and non-standard spacing between
block sequence dash and scalar (Anthony Sottile)
- initial possibility (on list, i.e. CommentedSeq) to set the flow format
explicitly
- RoundTrip capability of flow style sequences ( 'a: b, c, d' )

0.6.1

- setup.py changed so ruamel.ordereddict no longer is a dependency
if not on CPython 2.x (used to test only for 2.x, which breaks pypy 2.5.0
reported by Anthony Sottile)

0.6

- basic support for scalars with preserved newlines
- html option for yaml command
- check if yaml C library is available before trying to compile C extension
- include unreleased change in PyYAML dd 20141128

0.5

- move configobj -> YAML generator to own module
- added dependency on ruamel.base (based on feedback from  Sess
<leycecgmail.com>

0.4

- move comment classes in own module comments
- fix omap pre comment
- make !!omap and !!set take parameters. There are still some restrictions:
- no comments before the !!tag
- extra tests

0.3

- fix value comment occuring as on previous line (looking like eol comment)
- INI conversion in yaml + tests
- (hidden) test in yaml for debugging with auto command
- fix for missing comment in middel of simple map + test

0.2

- add ext/_yaml.c etc to the source tree
- tests for yaml to work on 2.6/3.3/3.4
- change install so that you can include ruamel.yaml instead of ruamel.yaml.py
- add "yaml" utility with initial subcommands (test rt, from json)

0.1

- merge py2 and py3 code bases
- remove support for 2.5/3.0/3.1/3.2 (this merge relies on u"" as
available in 3.3 and . imports not available in 2.5)
- tox.ini for 2.7/3.4/2.6/3.3
- remove lib3/ and tests/lib3 directories and content
- commit
- correct --verbose for test application
- DATA=changed to be relative to __file__ of code
- DATA using os.sep
- remove os.path from imports as os is already imported
- have test_yaml.py exit with value 0 on success, 1 on failures, 2 on
error
- added support for octal integers starting with '0o'
keep support for 01234 as well as 0o1234
- commit
- added test_roundtrip_data:
requirest a .data file and .roundtrip (empty), yaml_load .data
and compare dump against original.
- fix grammar as per David Pursehouse:
https://bitbucket.org/xi/pyyaml/pull-request/5/fix-grammar-in-error-messages/diff
- http://www.json.org/ extra escaped char \/
add .skip-ext as libyaml is not updated
- David Fraser: Extract a method to represent keys in mappings, so that
a subclass can choose not to quote them, used in repesent_mapping
https://bitbucket.org/davidfraser/pyyaml/
- add CommentToken and percolate through parser and composer and constructor
- add Comments to wrapped mapping and sequence constructs (not to scalars)
- generate YAML with comments
- initial README
Links

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant