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

net/Geomyidae: fix build on SmartOS #133

Closed
wants to merge 1 commit into from

Conversation

wiedi
Copy link

@wiedi wiedi commented Dec 7, 2013

fix build on SmartOS

jperkin pushed a commit that referenced this pull request Dec 9, 2013
What's new in psycopg 2.4.6
---------------------------

  - Fixed 'cursor()' arguments propagation in connection subclasses
    and overriding of the 'cursor_factory' argument.  Thanks to
    Corry Haines for the report and the initial patch (ticket #105).
  - Dropped GIL release during string adaptation around a function call
    invoking a Python API function, which could cause interpreter crash.
    Thanks to Manu Cupcic for the report (ticket #110).
  - Close a green connection if there is an error in the callback.
    Maybe a harsh solution but it leaves the program responsive
    (ticket #113).
  - 'register_hstore()', 'register_composite()', 'tpc_recover()' work with
    RealDictConnection and Cursor (ticket #114).
  - Fixed broken pool for Zope and connections re-init across ZSQL methods
    in the same request (tickets #123, #125, #142).
  - connect() raises an exception instead of swallowing keyword arguments
    when a connection string is specified as well (ticket #131).
  - Discard any result produced by 'executemany()' (ticket #133).
  - Fixed pickling of FixedOffsetTimezone objects (ticket #135).
  - Release the GIL around PQgetResult calls after COPY (ticket #140).
  - Fixed empty strings handling in composite caster (ticket #141).
  - Fixed pickling of DictRow and RealDictRow objects.
jperkin pushed a commit that referenced this pull request Dec 9, 2013
Changelog:

libmp3splt version 0.8.2
-------------------------------------------------------------

- added option to specify the input tags encoding for when writing ID3v2 tags
(SPLT_OPT_INPUT_TAGS_ENCODING)
- enable -O3 by default
- added LIBMP3SPLT_MAJOR_VERSION, LIBMP3SPLT_MINOR_VERSION and LIBMP3SPLT_MICRO_VERSION
(feature request #96)
- added option SPLT_TAGS_ORIGINAL for mp3splt_tags_set
- added option to keep the original tags and just replace them when importing a CUE or CDDB file
(SPLT_OPT_CUE_CDDB_ADD_TAGS_WITH_KEEP_ORIGINAL_TAGS) (feature request #95)
- added 'split into memory' ability with a callback function for use with 'pretend to split'
(feature request #94)
- replaced mp3splt.m4 with pkg-config (bug #145)
- corrected build files (configure.ac, Makefile.am, ...) and check using 'make distcheck' (bug #147)
- fixed a lot of doxygen issues

libmp3splt version 0.8.1a
-------------------------------------------------------------

- corrected ChangeLog file of 0.8.1 release
- added minimal.c in the distribution for the doxygen documentation
- added libmp3splt_ico.svg in the distribution for the doxygen documentation
- added something in the empty_footer.html file to avoid doxygen segfault

libmp3splt version 0.8.1
-------------------------------------------------------------

- fixed a bug - was crashing when removing tags from skippoints
- added option to set output ID3v2 tags encoded in latin1, UTF-8 or UTF16
- forgot to add 'empty_footer.html' in the distribution

libmp3splt version 0.8
-------------------------------------------------------------

- rewritten libmp3splt public API to target future 1.0 stable release
- written complete documentation of the public API
- done issues #40 and #85 - added minimum silence length parameter for auto adjust
- implemented back the proxy feature with basic authentification - feature #50
- added option to generate exactly the same input tags bytes using @o
- added minimum silence length for trim silence mode (minimum silence to trigger a trimming)
- done issue #12 - added option to output the full silence log useful to plot a graph
- enhanced the CUE export to export the tags as REM comments and also the splitpoint names
- fixed bug when detecting the input tags version - output had no tags when the input only had ID3v1
- fixed bug: output tags versions was not equal to the input file tags versions when the user was
setting custom tags without any @o to get the original tags
- done issue #79 - added 0 to the number of digits to output in order to be able to support
the old mp3splt output format
- fixed bug #141 - when input file is a symlink and output directory is the one of the input file
- amplitude more precise with ogg vorbis files
- plugins are now installed in $(libdir)/libmp3splt$(SONAME) instead of $(libdir)/libmp3splt
- fixed bug #131 - use /usr/lib64 instead of /usr/lib on x64 in mp3splt.m4
- fixed bug #133 - updated GPLv2 COPYING file
- fixed bug on mp3 trim silence scan: last frame was skipped
- fixed bug #134 - use of deprecated gethostbyname()

-------------------------------------------------------------
libmp3splt version 0.7.3

- added the trackjoin parameter for silence detection split: tracks shorter than trackjoin will be joined with others
- fixed bug: removing TLEN id3v2 tag from the split files
- fixed bug #3530488 - regression introduced with ogg multiple logical streams

libmp3splt version 0.7.2
-------------------------------------------------------------

- fixed error when ID3v2 was containing what appears a valid frame; make sure we skip the ID3v2 after looking for the first frames
- fixed bug #3497957 libtoolize vs glibtoolize
- fixed #3487543 - compilation without pcre support
- added the shots parameter to silence detection

libmp3splt version 0.7.1
-------------------------------------------------------------

- added minimum track length option for silence scan - closes #2393766
- added option to set original tags when using 'replace tags in tags' - closes #3407314
- added support for multiple ogg/vorbis logical streams (mail)
- fixed mp3 frame mode with skippoint when skippoint too small (on the same frame as previous)
- fixed some regression regarding mp3splt v2.1c - removed some checks relative to the total
time - we cannot rely on the total time - for example with concatenated mp3s
- fixed several audacity labels issues
- fixed inconsistency (extra 0 padding) between @n of custom tags and @n of output filename (mail)
- fixed compilation error without libid3tag
- fixed #3385833 - don't apply debugging flags or warnings flags by default:
added --enable-c-debug --enable-optimise --enable-extra-warnings
- fixed #3385827 - added --disable-doxygen_doc
- fixed #3385829 - building doxygen documentation by itself + installing doxygen files
jperkin pushed a commit that referenced this pull request Dec 9, 2013
Changelog:

#mp3splt version 2.5.2

- added option -I to specify the input tags encoding for when writing ID3v2 tags (ISO-8859-1, UTF-8
or UTF-16)
- added option -K to keep the original tags and just replace them when importing a CUE or CDDB file
(feature request #95)
- fixed bug #149 - use of getline() on mac
- libmp3splt check is now more correct and checks for the exact version of libmp3splt with = instead
of >=; will be changed to >= when final version of libmp3splt will be released
- now using pkg-config instead of mp3splt.m4 (bug #145)
- corrected build files (configure.ac, Makefile.am, ...) and check using 'make distcheck' (bug #147)

#mp3splt version 2.5.1

- fixed a bug when removing the tags from skippoints (libmp3splt)
- added option to set output ID3v2 tags encoded in latin1, UTF-8 or UTF16

#mp3splt version 2.5

- done issues #40 and #85 - added minimum silence length parameter for auto adjust (mainly libmp3splt)
- added minimum silence length for trim silence mode (minimum silence to trigger a trimming)
(mainly libmp3splt)
- done issue #12 - added option to output the full silence log useful to plot a graph
(mainly libmp3splt)
- implemented back the proxy feature with basic authentification - feature #50 (mainly libmp3splt)
- added option to generate exactly the same input tags bytes using @o (mainly libmp3splt)
- enhanced the CUE export to export the tags as REM comments and also the splitpoint names (libmp3splt)
- fixed bug when detecting the input tags version - output had no tags when the input only had ID3v1
(libmp3splt)
- fixed bug: output tags versions was not equal to the input file tags versions when the user was
setting custom tags without any @o to get the original tags (libmp3splt)
- done issue #79 - added 0 to the number of digits to output in order to be able to support
the old mp3splt output format (libmp3splt)
- fixed bug #141 - when input file is a symlink and output directory is the one of the input file
(libmp3splt)
- fixed bug on mp3 trim silence scan: last frame was skipped (libmp3splt)
- fixed bug #133 - updated GPLv2 COPYING file
- fixed bug #142 - skipped splitpoints were handled wrong by '-c'

#mp3splt version 2.4.3

- added the trackjoin parameter for silence detection split: tracks shorter than trackjoin will be joined with others
- fixed bug: removing TLEN id3v2 tag from the split files (libmp3splt)
- fixed bug #3530488 - regression introduced with ogg multiple logical streams (libmp3splt)

#mp3splt version 2.4.2

- fixed error when ID3v2 was containing what appears a valid frame; make sure we skip the ID3v2 after looking for the first frames (libmp3splt)
- added the shots parameter to silence detection
(-p shots=INTEGER - minimum number of shots to be found as non silence after the silence)

#mp3splt version 2.4.1

- added minimum track length option for silence scan: 'trackmin' parameter to '-p' - closes #2393766
- added option to set original tags when using 'replace tags in tags' - use of #t, #a, ... - closes #3407314
- fixed #3399950 - regression on windows regarding the current working directory
- fixed some regression regarding mp3splt v2.1c - removed some checks relative to the total
- fixed #3385833 - don't apply debugging flags or warnings flags by default:
added --enable-c-debug --enable-optimise --enable-extra-warnings
- fixed #3424143 - added a small check for the -O option
- added support for multiple ogg/vorbis logical streams (mail) (libmp3splt)
- fixed mp3 frame mode with skippoint when skippoint too small (on the same frame as previous) (libmp3splt)
- fixed several audacity labels issues (libmp3splt)
- fixed inconsistency (extra 0 padding) between @n of -g and @n of -o (mail)
time - we cannot rely on the total time - for example with concatenated mp3s (libmp3splt)
jperkin pushed a commit that referenced this pull request Dec 9, 2013
Changelog:

-------------------------------------------------------------
mp3splt-gtk version 0.8.2

- fixed important bug in mp3splt-gtk: split using cue file was not splitting the last part
- fixed tags encoding issue in mp3splt-gtk: encode in UTF-8 tags if not valid UTF-8
- implemented "prelisten a section to its ending splitpoint" in mp3splt-gtk (feature request #98)
- libmp3splt check is now more correct and checks for the exact version of libmp3splt with = instead
of >=; will be changed to >= when final version of libmp3splt will be released
- now using pkg-config instead of mp3splt.m4 (bug #145)
- corrected build files (configure.ac, Makefile.am, ...) and check using 'make distcheck' (bug #147)

-------------------------------------------------------------
mp3splt-gtk version 0.8.1

- fixed important bug: application was crashing when pushing the split button without any
splitpoint (libmp3splt)
- fixed important bug: split by time was in hundreths of seconds instead of seconds

-------------------------------------------------------------
mp3splt-gtk version 0.8

- added tags edition from the splitpoints table - closes feature #92
- added cloning features for mass copying of tags using right click on the splitpoints table
- enhanced the CUE export to export the tags as REM comments and also the splitpoint names
- automatically save & restore splitpoints in '~/.mp3splt-gtk/splitpoints.cue'
- better amplitude wave display (wave does not "shake" anymore)
- done issue #37 & #138 - nicer GUI for the option 'same output directory as the input file'
- fixed amplitude wave to be more precise with ogg vorbis files (libmp3splt)
- fixed important bug on mp3splt-gtk 'Queue to player' button
- fixed bug #128 - hash symbol in filename breaks the player
- done feature #38 - reorder filenames in mp3splt-gtk (description_here_partXX)
- fixed bug #133 - updated GPLv2 COPYING file
- fixed bug #137 - autogen.sh should run libtoolize before aclocal/automake
- fixed bug #143 - be able to add splitpoint at the end from the player
- fixed bug #136 - various compilation issues
- fixed issue #90 - added back the icons to split preview and play preview in the splitpoints table
- added a lot of tooltip and GUI renamings
- done feature #91 - amplitude wave now persists in preferences
- added one more interpolation level for the amplitude wave (level 6)
- more precise wave preview in preferences
- fixed bug when detecting the input tags version - output had no tags when the input only had ID3v1
(libmp3splt)
- fixed bug #141 - when input file is a symlink and output directory is the one of the input file
(libmp3splt)
- amplitude more precise with ogg vorbis files (libmp3splt)
- fixed bug on mp3 trim silence scan: last frame was skipped (libmp3splt)

-------------------------------------------------------------
mp3splt-gtk version 0.7.3

- redesigned the mp3splt-gtk user interface
- added option to specify the wave quality in the parameters (for performance reasons)
- wave interpolation is now much correct - we use the douglas peucker algorithm instead of the previous one which was stupid
- added gray areas where no splitpoints - regarding #3520736
- added seek key shortcuts to the player - #1811400 & #3528001
- heavy refactoring of mp3splt-gtk code
- fixed bug: removing TLEN id3v2 tag from the split files (libmp3splt)
- fixed bug #3530488 - regression introduced with ogg multiple logical streams (libmp3splt)

-------------------------------------------------------------
mp3splt-gtk version 0.7.2

- fixed an important bug of memory leak in player drawing when using GTK+-2
- fixed bug not showing icon and image in the about dialog
- fix for the '--disable-gtk3' option; also fixed the gtk 2.x/3.x check
- made some player graphic optimisations
- added player refresh rate option in Preferences->Player
- added expanders to the player history and player splitpoints view
- we don't need gtk 2 version >= 2.20; changed it to 2.18

-------------------------------------------------------------
mp3splt-gtk version 0.7.1

- added minimum track length option for silence scan - closes #2393766
- added gtk3 support (auto detection or --enable-gtk3, --disable-gtk3) - almost closes #3385903
(some tests still need to be done)
- fixed #3385841 - removed scrollkeeper warnings
- fixed #3385827 - added --disable-doxygen_doc
- fixed #3385829 - building doxygen documentation by itself + installing doxygen files
- fixed #3385833 - don't apply debugging flags or warnings flags by default:
added --enable-c-debug --enable-optimise --enable-extra-warnings
- added support for multiple ogg/vorbis logical streams (mail) (libmp3splt)
- fixed mp3 frame mode with skippoint when skippoint too small (on the same frame as previous) (libmp3splt)
- fixed several audacity labels issues (libmp3splt)
- fixed some regression regarding mp3splt v2.1c - removed some checks relative to the total
time - we cannot rely on the total time - for example with concatenated mp3s (libmp3splt)
@jperkin
Copy link
Collaborator

jperkin commented Dec 10, 2013

Fixed upstream, thanks!

@jperkin jperkin closed this Dec 10, 2013
jperkin pushed a commit that referenced this pull request Jan 6, 2014
Release 3.1.1 - 2013/12/29
--------------------------

Improvements
^^^^^^^^^^^^

* [deb] Refined Groonga packages for Debian policy. [groonga-dev,01930]
  [Suggested by Hideki Yamane]
* [deb] Dropped Debian 6.0 (squeeze) support.
* [deb] Dropped Ubuntu 10.04 (lucid) support.
* Supported :doc:`/reference/functions/geo_in_rectangle` in the whole world.
* Supported error report when failed to casting invalid value of geo point type.
* Exported some macros which is used for accessing pseudo column names.
  [groonga-dev,1999] [Suggested by whombx]
* [doc] Refined drilldown documentation. [Reported by @Yahppo]
* Supported :doc:`/reference/functions/between` function which is used for
  filtering the column value in specific range.
* [doc] Updated Travis CI envrinment information. [Patch by cosmo0920]
* [rpm][fedora] Dropped Fedora 19.
* [rpm][fedora] Supported Fedora 20.
* [doc] Updated "Groonga" notation. [Patch by cosmo0920] [GitHub#122, #123, #124, #125, #125, #126, #127, #128, #129, #130, #131, #131, #132, #133, #134]

Fixes
^^^^^

* [munin] Fixed the wrong port number which is specified for GQTP.
* [geo_in_circle] Fixed a bug that if you specify "LONGITUDExLATITUDE" as
  the 3rd argument of :doc:`/reference/functions/geo_in_circle`, Groonga crashes.

Thanks
^^^^^^

* Hideki Yamane
* whombx
* @yappo
* cosmo0920
jperkin pushed a commit that referenced this pull request Jan 21, 2014
Changelog:

libmp3splt version 0.8.2
-------------------------------------------------------------

- added option to specify the input tags encoding for when writing ID3v2 tags
(SPLT_OPT_INPUT_TAGS_ENCODING)
- enable -O3 by default
- added LIBMP3SPLT_MAJOR_VERSION, LIBMP3SPLT_MINOR_VERSION and LIBMP3SPLT_MICRO_VERSION
(feature request #96)
- added option SPLT_TAGS_ORIGINAL for mp3splt_tags_set
- added option to keep the original tags and just replace them when importing a CUE or CDDB file
(SPLT_OPT_CUE_CDDB_ADD_TAGS_WITH_KEEP_ORIGINAL_TAGS) (feature request #95)
- added 'split into memory' ability with a callback function for use with 'pretend to split'
(feature request #94)
- replaced mp3splt.m4 with pkg-config (bug #145)
- corrected build files (configure.ac, Makefile.am, ...) and check using 'make distcheck' (bug #147)
- fixed a lot of doxygen issues

libmp3splt version 0.8.1a
-------------------------------------------------------------

- corrected ChangeLog file of 0.8.1 release
- added minimal.c in the distribution for the doxygen documentation
- added libmp3splt_ico.svg in the distribution for the doxygen documentation
- added something in the empty_footer.html file to avoid doxygen segfault

libmp3splt version 0.8.1
-------------------------------------------------------------

- fixed a bug - was crashing when removing tags from skippoints
- added option to set output ID3v2 tags encoded in latin1, UTF-8 or UTF16
- forgot to add 'empty_footer.html' in the distribution

libmp3splt version 0.8
-------------------------------------------------------------

- rewritten libmp3splt public API to target future 1.0 stable release
- written complete documentation of the public API
- done issues #40 and #85 - added minimum silence length parameter for auto adjust
- implemented back the proxy feature with basic authentification - feature #50
- added option to generate exactly the same input tags bytes using @o
- added minimum silence length for trim silence mode (minimum silence to trigger a trimming)
- done issue #12 - added option to output the full silence log useful to plot a graph
- enhanced the CUE export to export the tags as REM comments and also the splitpoint names
- fixed bug when detecting the input tags version - output had no tags when the input only had ID3v1
- fixed bug: output tags versions was not equal to the input file tags versions when the user was
setting custom tags without any @o to get the original tags
- done issue #79 - added 0 to the number of digits to output in order to be able to support
the old mp3splt output format
- fixed bug #141 - when input file is a symlink and output directory is the one of the input file
- amplitude more precise with ogg vorbis files
- plugins are now installed in $(libdir)/libmp3splt$(SONAME) instead of $(libdir)/libmp3splt
- fixed bug #131 - use /usr/lib64 instead of /usr/lib on x64 in mp3splt.m4
- fixed bug #133 - updated GPLv2 COPYING file
- fixed bug on mp3 trim silence scan: last frame was skipped
- fixed bug #134 - use of deprecated gethostbyname()

-------------------------------------------------------------
libmp3splt version 0.7.3

- added the trackjoin parameter for silence detection split: tracks shorter than trackjoin will be joined with others
- fixed bug: removing TLEN id3v2 tag from the split files
- fixed bug #3530488 - regression introduced with ogg multiple logical streams

libmp3splt version 0.7.2
-------------------------------------------------------------

- fixed error when ID3v2 was containing what appears a valid frame; make sure we skip the ID3v2 after looking for the first frames
- fixed bug #3497957 libtoolize vs glibtoolize
- fixed #3487543 - compilation without pcre support
- added the shots parameter to silence detection

libmp3splt version 0.7.1
-------------------------------------------------------------

- added minimum track length option for silence scan - closes #2393766
- added option to set original tags when using 'replace tags in tags' - closes #3407314
- added support for multiple ogg/vorbis logical streams (mail)
- fixed mp3 frame mode with skippoint when skippoint too small (on the same frame as previous)
- fixed some regression regarding mp3splt v2.1c - removed some checks relative to the total
time - we cannot rely on the total time - for example with concatenated mp3s
- fixed several audacity labels issues
- fixed inconsistency (extra 0 padding) between @n of custom tags and @n of output filename (mail)
- fixed compilation error without libid3tag
- fixed #3385833 - don't apply debugging flags or warnings flags by default:
added --enable-c-debug --enable-optimise --enable-extra-warnings
- fixed #3385827 - added --disable-doxygen_doc
- fixed #3385829 - building doxygen documentation by itself + installing doxygen files
jperkin pushed a commit that referenced this pull request Jan 21, 2014
Changelog:

#mp3splt version 2.5.2

- added option -I to specify the input tags encoding for when writing ID3v2 tags (ISO-8859-1, UTF-8
or UTF-16)
- added option -K to keep the original tags and just replace them when importing a CUE or CDDB file
(feature request #95)
- fixed bug #149 - use of getline() on mac
- libmp3splt check is now more correct and checks for the exact version of libmp3splt with = instead
of >=; will be changed to >= when final version of libmp3splt will be released
- now using pkg-config instead of mp3splt.m4 (bug #145)
- corrected build files (configure.ac, Makefile.am, ...) and check using 'make distcheck' (bug #147)

#mp3splt version 2.5.1

- fixed a bug when removing the tags from skippoints (libmp3splt)
- added option to set output ID3v2 tags encoded in latin1, UTF-8 or UTF16

#mp3splt version 2.5

- done issues #40 and #85 - added minimum silence length parameter for auto adjust (mainly libmp3splt)
- added minimum silence length for trim silence mode (minimum silence to trigger a trimming)
(mainly libmp3splt)
- done issue #12 - added option to output the full silence log useful to plot a graph
(mainly libmp3splt)
- implemented back the proxy feature with basic authentification - feature #50 (mainly libmp3splt)
- added option to generate exactly the same input tags bytes using @o (mainly libmp3splt)
- enhanced the CUE export to export the tags as REM comments and also the splitpoint names (libmp3splt)
- fixed bug when detecting the input tags version - output had no tags when the input only had ID3v1
(libmp3splt)
- fixed bug: output tags versions was not equal to the input file tags versions when the user was
setting custom tags without any @o to get the original tags (libmp3splt)
- done issue #79 - added 0 to the number of digits to output in order to be able to support
the old mp3splt output format (libmp3splt)
- fixed bug #141 - when input file is a symlink and output directory is the one of the input file
(libmp3splt)
- fixed bug on mp3 trim silence scan: last frame was skipped (libmp3splt)
- fixed bug #133 - updated GPLv2 COPYING file
- fixed bug #142 - skipped splitpoints were handled wrong by '-c'

#mp3splt version 2.4.3

- added the trackjoin parameter for silence detection split: tracks shorter than trackjoin will be joined with others
- fixed bug: removing TLEN id3v2 tag from the split files (libmp3splt)
- fixed bug #3530488 - regression introduced with ogg multiple logical streams (libmp3splt)

#mp3splt version 2.4.2

- fixed error when ID3v2 was containing what appears a valid frame; make sure we skip the ID3v2 after looking for the first frames (libmp3splt)
- added the shots parameter to silence detection
(-p shots=INTEGER - minimum number of shots to be found as non silence after the silence)

#mp3splt version 2.4.1

- added minimum track length option for silence scan: 'trackmin' parameter to '-p' - closes #2393766
- added option to set original tags when using 'replace tags in tags' - use of #t, #a, ... - closes #3407314
- fixed #3399950 - regression on windows regarding the current working directory
- fixed some regression regarding mp3splt v2.1c - removed some checks relative to the total
- fixed #3385833 - don't apply debugging flags or warnings flags by default:
added --enable-c-debug --enable-optimise --enable-extra-warnings
- fixed #3424143 - added a small check for the -O option
- added support for multiple ogg/vorbis logical streams (mail) (libmp3splt)
- fixed mp3 frame mode with skippoint when skippoint too small (on the same frame as previous) (libmp3splt)
- fixed several audacity labels issues (libmp3splt)
- fixed inconsistency (extra 0 padding) between @n of -g and @n of -o (mail)
time - we cannot rely on the total time - for example with concatenated mp3s (libmp3splt)
jperkin pushed a commit that referenced this pull request Jan 21, 2014
Changelog:

-------------------------------------------------------------
mp3splt-gtk version 0.8.2

- fixed important bug in mp3splt-gtk: split using cue file was not splitting the last part
- fixed tags encoding issue in mp3splt-gtk: encode in UTF-8 tags if not valid UTF-8
- implemented "prelisten a section to its ending splitpoint" in mp3splt-gtk (feature request #98)
- libmp3splt check is now more correct and checks for the exact version of libmp3splt with = instead
of >=; will be changed to >= when final version of libmp3splt will be released
- now using pkg-config instead of mp3splt.m4 (bug #145)
- corrected build files (configure.ac, Makefile.am, ...) and check using 'make distcheck' (bug #147)

-------------------------------------------------------------
mp3splt-gtk version 0.8.1

- fixed important bug: application was crashing when pushing the split button without any
splitpoint (libmp3splt)
- fixed important bug: split by time was in hundreths of seconds instead of seconds

-------------------------------------------------------------
mp3splt-gtk version 0.8

- added tags edition from the splitpoints table - closes feature #92
- added cloning features for mass copying of tags using right click on the splitpoints table
- enhanced the CUE export to export the tags as REM comments and also the splitpoint names
- automatically save & restore splitpoints in '~/.mp3splt-gtk/splitpoints.cue'
- better amplitude wave display (wave does not "shake" anymore)
- done issue #37 & #138 - nicer GUI for the option 'same output directory as the input file'
- fixed amplitude wave to be more precise with ogg vorbis files (libmp3splt)
- fixed important bug on mp3splt-gtk 'Queue to player' button
- fixed bug #128 - hash symbol in filename breaks the player
- done feature #38 - reorder filenames in mp3splt-gtk (description_here_partXX)
- fixed bug #133 - updated GPLv2 COPYING file
- fixed bug #137 - autogen.sh should run libtoolize before aclocal/automake
- fixed bug #143 - be able to add splitpoint at the end from the player
- fixed bug #136 - various compilation issues
- fixed issue #90 - added back the icons to split preview and play preview in the splitpoints table
- added a lot of tooltip and GUI renamings
- done feature #91 - amplitude wave now persists in preferences
- added one more interpolation level for the amplitude wave (level 6)
- more precise wave preview in preferences
- fixed bug when detecting the input tags version - output had no tags when the input only had ID3v1
(libmp3splt)
- fixed bug #141 - when input file is a symlink and output directory is the one of the input file
(libmp3splt)
- amplitude more precise with ogg vorbis files (libmp3splt)
- fixed bug on mp3 trim silence scan: last frame was skipped (libmp3splt)

-------------------------------------------------------------
mp3splt-gtk version 0.7.3

- redesigned the mp3splt-gtk user interface
- added option to specify the wave quality in the parameters (for performance reasons)
- wave interpolation is now much correct - we use the douglas peucker algorithm instead of the previous one which was stupid
- added gray areas where no splitpoints - regarding #3520736
- added seek key shortcuts to the player - #1811400 & #3528001
- heavy refactoring of mp3splt-gtk code
- fixed bug: removing TLEN id3v2 tag from the split files (libmp3splt)
- fixed bug #3530488 - regression introduced with ogg multiple logical streams (libmp3splt)

-------------------------------------------------------------
mp3splt-gtk version 0.7.2

- fixed an important bug of memory leak in player drawing when using GTK+-2
- fixed bug not showing icon and image in the about dialog
- fix for the '--disable-gtk3' option; also fixed the gtk 2.x/3.x check
- made some player graphic optimisations
- added player refresh rate option in Preferences->Player
- added expanders to the player history and player splitpoints view
- we don't need gtk 2 version >= 2.20; changed it to 2.18

-------------------------------------------------------------
mp3splt-gtk version 0.7.1

- added minimum track length option for silence scan - closes #2393766
- added gtk3 support (auto detection or --enable-gtk3, --disable-gtk3) - almost closes #3385903
(some tests still need to be done)
- fixed #3385841 - removed scrollkeeper warnings
- fixed #3385827 - added --disable-doxygen_doc
- fixed #3385829 - building doxygen documentation by itself + installing doxygen files
- fixed #3385833 - don't apply debugging flags or warnings flags by default:
added --enable-c-debug --enable-optimise --enable-extra-warnings
- added support for multiple ogg/vorbis logical streams (mail) (libmp3splt)
- fixed mp3 frame mode with skippoint when skippoint too small (on the same frame as previous) (libmp3splt)
- fixed several audacity labels issues (libmp3splt)
- fixed some regression regarding mp3splt v2.1c - removed some checks relative to the total
time - we cannot rely on the total time - for example with concatenated mp3s (libmp3splt)
jperkin pushed a commit that referenced this pull request Jan 21, 2014
Release 3.1.1 - 2013/12/29
--------------------------

Improvements
^^^^^^^^^^^^

* [deb] Refined Groonga packages for Debian policy. [groonga-dev,01930]
  [Suggested by Hideki Yamane]
* [deb] Dropped Debian 6.0 (squeeze) support.
* [deb] Dropped Ubuntu 10.04 (lucid) support.
* Supported :doc:`/reference/functions/geo_in_rectangle` in the whole world.
* Supported error report when failed to casting invalid value of geo point type.
* Exported some macros which is used for accessing pseudo column names.
  [groonga-dev,1999] [Suggested by whombx]
* [doc] Refined drilldown documentation. [Reported by @Yahppo]
* Supported :doc:`/reference/functions/between` function which is used for
  filtering the column value in specific range.
* [doc] Updated Travis CI envrinment information. [Patch by cosmo0920]
* [rpm][fedora] Dropped Fedora 19.
* [rpm][fedora] Supported Fedora 20.
* [doc] Updated "Groonga" notation. [Patch by cosmo0920] [GitHub#122, #123, #124, #125, #125, #126, #127, #128, #129, #130, #131, #131, #132, #133, #134]

Fixes
^^^^^

* [munin] Fixed the wrong port number which is specified for GQTP.
* [geo_in_circle] Fixed a bug that if you specify "LONGITUDExLATITUDE" as
  the 3rd argument of :doc:`/reference/functions/geo_in_circle`, Groonga crashes.

Thanks
^^^^^^

* Hideki Yamane
* whombx
* @yappo
* cosmo0920
jperkin pushed a commit that referenced this pull request Jan 21, 2014
FITS (Flexible Image Transport System) is a data format most used in astronomy.
PyFITS is a Python module for reading, writing, and manipulating FITS files.
The module uses Python's object-oriented features to provide quick, easy, and
efficient access to FITS files. The use of Python's array syntax enables
immediate access to any FITS extension, header cards, or data items.

Changes to 2.4.0 (in py-pyfits):

Changelog
===========

3.2 (2013-11-26)
----------------

Highlights
^^^^^^^^^^

- Rewrote CFITSIO-based backend for handling tile compression of FITS files.
  It now uses a standard CFITSIO instead of heavily modified pieces of CFITSIO
  as before.  PyFITS ships with its own copy of CFITSIO v3.35 which supports
  the latest version of the Tiled Image Convention (v2.3), but system
  packagers may choose instead to strip this out in favor of a
  system-installed version of CFITSIO.  Earlier versions may work, but nothing
  earlier than 3.28 has been tested yet. (#169)

- Added support for reading and writing tables using the Q format for columns.
  The Q format is identical to the P format (variable-length arrays) except
  that it uses 64-bit integers for the data descriptors, allowing more than
  4 GB of variable-length array data in a single table. (#160)

- Added initial support for table columns containing pseudo-unsigned integers.
  This is currently enabled by using the ``uint=True`` option when opening
  files; any table columns with the correct BZERO value will be interpreted
  and returned as arrays of unsigned integers.

- Some refactoring of the table and ``FITS_rec`` modules in order to better
  separate the details of the FITS binary and ASCII table data structures from
  the HDU data structures that encapsulate them.  Most of these changes should
  not be apparent to users (but see API Changes below).


API Changes
^^^^^^^^^^^

- Assigning to values in ``ColDefs.names``, ``ColDefs.formats``,
  ``ColDefs.nulls`` and other attributes of ``ColDefs`` instances that return
  lists of column properties is no longer supported.  Assigning to those lists
  will no longer update the corresponding columns.  Instead, please just
  modify the ``Column`` instances directly (``Column.name``, ``Column.null``,
  etc.)

- The ``pyfits.new_table`` function is marked "pending deprecation".  This
  does not mean it will be removed outright or that its functionality has
  changed.  It will likely be replaced in the future for a function with
  similar, if not subtly different functionality.  A better, if not slightly
  more verbose approach is to use ``pyfits.FITS_rec.from_columns`` to create
  a new ``FITS_rec`` table--this has the same interface as
  ``pyfits.new_table``.  The difference is that it returns a plan ``FITS_rec``
  array, and not an HDU instance.  This ``FITS_rec`` object can then be used
  as the data argument in the constructors for ``BinTableHDU`` (for binary
  tables) or ``TableHDU`` (for ASCII tables).  This is analogous to creating
  an ``ImageHDU`` by passing in an image array.
  ``pyfits.FITS_rec.from_columns`` is just a simpler way of creating a
  FITS-compatible recarray from a FITS column specification.

- The ``updateHeader``, ``updateHeaderData``, and ``updateCompressedData``
  methods of the ``CompDataHDU`` class are pending deprecation and moved to
  internal methods.  The operation of these methods depended too much on
  internal state to be used safely by users; instead they are invoked
  automatically in the appropriate places when reading/writing compressed image
  HDUs.

- The ``CompDataHDU.compData`` attribute is pending deprecation in favor of
  the clearer and more PEP-8 compatible ``CompDataHDU.compressed_data``.

- The constructor for ``CompDataHDU`` has been changed to accept new keyword
  arguments.  The new keyword arguments are essentially the same, but are in
  underscore_separated format rather than camelCase format.  The old arguments
  are still pending deprecation.

- The internal attributes of HDU classes ``_hdrLoc``, ``_datLoc``, and
  ``_datSpan`` have been replaced with ``_header_offset``, ``_data_offset``,
  and ``_data_size`` respectively.  The old attribute names are still pending
  deprecation.  This should only be of interest to advanced users who have
  created their own HDU subclasses.

- The following previously deprecated functions and methods have been removed
  entirely: ``createCard``, ``createCardFromString``, ``upperKey``,
  ``ColDefs.data``, ``setExtensionNameCaseSensitive``, ``_File.getfile``,
  ``_TableBaseHDU.get_coldefs``, ``Header.has_key``, ``Header.ascardlist``.

  If you run your code with a previous version of PyFITS (>= 3.0, < 3.2) with
  the ``python -Wd`` argument, warnings for all deprecated interfaces still in
  use will be displayed.

- Interfaces that were pending deprecation are now fully deprecated.  These
  include: ``create_card``, ``create_card_from_string``, ``upper_key``,
  ``Header.get_history``, and ``Header.get_comment``.

- The ``.name`` attribute on HDUs is now directly tied to the HDU's header, so
  that if ``.header['EXTNAME']`` changes so does ``.name`` and vice-versa.

- The ``pyfits.file.PYTHON_MODES`` constant dict was renamed to
  ``pyfits.file.PYFITS_MODES`` which better reflects its purpose.  This is
  rarely used by client code, however.  Support for the old name will be
  removed by PyFITS 3.4.


Other Changes and Additions
^^^^^^^^^^^^^^^^^^^^^^^^^^^

- The new compression code also adds support for the ZQUANTIZ and ZDITHER0
  keywords added in more recent versions of this FITS Tile Compression spec.
  This includes support for lossless compression with GZIP. (#198) By default
  no dithering is used, but the ``SUBTRACTIVE_DITHER_1`` and
  ``SUBTRACTIVE_DITHER_2`` methods can be enabled by passing the correct
  constants to the ``quantize_method`` argument to the ``CompImageHDU``
  constuctor.  A seed can be manually specified, or automatically generated
  using either the system clock or checksum-based methods via the
  ``dither_seed`` argument.  See the documentation for ``CompImageHDU`` for
  more details. (#198) (spacetelescope/PYFITS#32)

- Images compressed with the Tile Compression standard can now be larger than
  4 GB through support of the Q format. (#159)

- All HDUs now have a ``.ver`` ``.level`` attribute that returns the value of
  the EXTVAL and EXTLEVEL keywords from that HDU's header, if the exist.  This
  was added for consistency with the ``.name`` attribute which returns the
  EXTNAME value from the header.

- Then ``Column`` and ``ColDefs`` classes have new ``.dtype`` attributes
  which give the Numpy dtype for the column data in the first case, and the
  full Numpy compound dtype for each table row in the latter case.

- There was an issue where new tables created defaulted the values in all
  string columns to '0.0'.  Now string columns are filled with empty strings
  by default--this seems a less surprising default, but it may cause
  differences with tables created with older versions of PyFITS.

- Improved round-tripping and preservation of manually assigned column
  attributes (``TNULLn``, ``TSCALn``, etc.) in table HDU headers.
  (astropy/astropy#996)


Bug Fixes
^^^^^^^^^

- Binary tables containing compressed images may, optionally, contain other
  columns unrelated to the tile compression convention. Although this is an
  uncommon use case, it is permitted by the standard. (#159)

- Reworked some of the file I/O routines to allow simpler, more consistent
  mapping between OS-level file modes ('rb', 'wb', 'ab', etc.) and the more
  "PyFITS-specific" modes used by PyFITS like "readonly" and "update".
  That is, if reading a FITS file from an open file object, it doesn't matter
  as much what "mode" it was opened in so long as it has the right
  capabilities (read/write/etc.)  Also works around bugs in the Python io
  module in 2.6+ with regard to file modes. (spacetelescope/PyFITS#33)

- Fixed an obscure issue that can occur on systems that don't have flush to
  memory-mapped files implemented (namely GNU Hurd). (astropy/astropy#968)


3.1.3 (2013-11-26)
------------------

- Disallowed assigning NaN and Inf floating point values as header values,
  since the FITS standard does not define a way to represent them in. Because
  this is undefined, the previous behavior did not make sense and produced
  invalid FITS files. (spacetelescope/PyFITS#11)

- Added a workaround for a bug in 64-bit OSX that could cause truncation when
  writing files greater than 2^32 bytes in size. (spacetelescope/PyFITS#28)

- Fixed a long-standing issue where writing binary tables did not correctly
  write the TFORMn keywords for variable-length array columns (they ommitted
  the max array length parameter of the format).  This was thought fixed in
  v3.1.2, but it was only fixed there for compressed image HDUs and not for
  binary tables in general.

- Fixed an obscure issue that can occur on systems that don't have flush to
  memory-mapped files implemented (namely GNU Hurd). (Backported from 3.2)


3.0.12 (2013-11-26)
-------------------

- Disallowed assigning NaN and Inf floating point values as header values,
  since the FITS standard does not define a way to represent them in. Because
  this is undefined, the previous behavior did not make sense and produced
  invalid FITS files. (Backported from 3.1.3)

- Added a workaround for a bug in 64-bit OSX that could cause truncation when
  writing files greater than 2^32 bytes in size. (Backported from 3.1.3)

- Fixed a long-standing issue where writing binary tables did not correctly
  write the TFORMn keywords for variable-length array columns (they ommitted
  the max array length parameter of the format).  This was thought fixed in
  v3.1.2, but it was only fixed there for compressed image HDUs and not for
  binary tables in general. (Backported from 3.1.3)

- Fixed an obscure issue that can occur on systems that don't have flush to
  memory-mapped files implemented (namely GNU Hurd). (Backported from 3.2)


3.1.2 (2013-04-22)
------------------

- When an error occurs opening a file in fitsdiff the exception message will
  now at least mention which file had the error. (#168)

- Fixed support for opening gzipped FITS files by filename in a writeable mode
  (PyFITS has supported writing to gzip files for some time now, but only
  enabled it when GzipFile objects were passed to ``pyfits.open()`` due to
  some legacy code preventing full gzip support. (#195)

- Added a more helpful error message in the case of malformatted FITS files
  that contain non-float NULL values in an ASCII table but are missing the
  required TNULLn keywords in the header. (#197)

- Fixed an (apparently long-standing) issue where writing compressed images
  did not correctly write the TFORMn keywords for variable-length array
  columns (they ommitted the max array length parameter of the format). (#199)

- Slightly refactored how tables containing variable-length array columns are
  handled to add two improvements: Fixes an issue where accessing the data
  after a call to the `pyfits.getdata` convenience function caused an
  exception, and allows the VLA data to be read from an existing mmap of the
  FITS file. (#200)

- Fixed a bug that could occur when opening a table containing
  multi-dimensional columns (i.e. via the TDIMn keyword) and then writing it
  out to a new file. (#201)

- Added use of the console_scripts entry point to install the fitsdiff and
  fitscheck scripts, which if nothing else provides better Windows support.
  The generated scripts now override the ones explicitly defined in the
  scripts/ directory (which were just trivial stubs to begin with). (#202)

- Fixed a bug on Python 3 where attempting to open a non-existent file on
  Python 3 caused a seemingly unrelated traceback. (#203)

- Fixed a bug in fitsdiff that reported two header keywords containing NaN
  as value as different. (#204)

- Fixed an issue in the tests that caused some tests to fail if pyfits is
  installed with read-only permissions. (#208)

- Fixed a bug where instantiating a ``BinTableHDU`` from a numpy array
  containing boolean fields converted all the values to ``False``. (#215)

- Fixed an issue where passing an array of integers into the constructor of
  ``Column()`` when the column type is floats of the same byte width caused the
  column array to become garbled. (#218)

- Fixed inconsistent behavior in creating CONTINUE cards from byte strings
  versus unicode strings in Python 2--CONTINUE cards can now be created
  properly from unicode strings (so long as they are convertable to ASCII).
  (spacetelescope/PyFITS#1)

- Fixed a couple cases where creating a new table using TDIMn in some of the
  columns could caused a crash. (spacetelescope/PyFITS#3)

- Fixed a bug in parsing HIERARCH keywords that do not have a space after
  the first equals sign (before the value). (spacetelescope/PyFITS#5)

- Prevented extra leading whitespace on HIERARCH keywords from being treated
  as part of the keyword. (spacetelescope/PyFITS#6)

- Fixed a bug where HIERARCH keywords containing lower-case letters was
  mistakenly marked as invalid during header validation.
  (spacetelescope/PyFITS#7)

- Fixed an issue that was ancillary to (spacetelescope/PyFITS#7) where the
  ``Header.index()`` method did not work correctly with HIERARCH keywords
  containing lower-case letters.


3.0.11 (2013-04-17)
-------------------

- Fixed support for opening gzipped FITS files by filename in a writeable mode
  (PyFITS has supported writing to gzip files for some time now, but only
  enabled it when GzipFile objects were passed to ``pyfits.open()`` due to
  some legacy code preventing full gzip support. Backported from 3.1.2. (#195)

- Added a more helpful error message in the case of malformatted FITS files
  that contain non-float NULL values in an ASCII table but are missing the
  required TNULLn keywords in the header. Backported from 3.1.2. (#197)

- Fixed an (apparently long-standing) issue where writing compressed images did
  not correctly write the TFORMn keywords for variable-length array columns
  (they ommitted the max array length parameter of the format). Backported from
  3.1.2. (#199)

- Slightly refactored how tables containing variable-length array columns are
  handled to add two improvements: Fixes an issue where accessing the data
  after a call to the `pyfits.getdata` convenience function caused an
  exception, and allows the VLA data to be read from an existing mmap of the
  FITS file. Backported from 3.1.2. (#200)

- Fixed a bug that could occur when opening a table containing
  multi-dimensional columns (i.e. via the TDIMn keyword) and then writing it
  out to a new file. Backported from 3.1.2. (#201)

- Fixed a bug on Python 3 where attempting to open a non-existent file on
  Python 3 caused a seemingly unrelated traceback. Backported from 3.1.2.
  (#203)

- Fixed a bug in fitsdiff that reported two header keywords containing NaN
  as value as different. Backported from 3.1.2. (#204)

- Fixed an issue in the tests that caused some tests to fail if pyfits is
  installed with read-only permissions. Backported from 3.1.2. (#208)

- Fixed a bug where instantiating a ``BinTableHDU`` from a numpy array
  containing boolean fields converted all the values to ``False``. Backported
  from 3.1.2. (#215)

- Fixed an issue where passing an array of integers into the constructor of
  ``Column()`` when the column type is floats of the same byte width caused the
  column array to become garbled. Backported from 3.1.2. (#218)

- Fixed a couple cases where creating a new table using TDIMn in some of the
  columns could caused a crash. Backported from 3.1.2.
  (spacetelescope/PyFITS#3)


3.1.1 (2013-01-02)
------------------

This is a bug fix release for the 3.1.x series.

Bug Fixes
^^^^^^^^^

- Improved handling of scaled images and pseudo-unsigned integer images in
  compressed image HDUs.  They now work more transparently like normal image
  HDUs with support for the ``do_not_scale_image_data`` and ``uint`` options,
  as well as ``scale_back`` and ``save_backup``.  The ``.scale()`` method
  works better too. (#88)

- Permits non-string values for the EXTNAME keyword when reading in a file,
  rather than throwing an exception due to the malformatting.  Added
  verification for the format of the EXTNAME keyword when writing. (#96)

- Added support for EXTNAME and EXTVER in PRIMARY HDUs.  That is, if EXTNAME
  is specified in the header, it will also be reflected in the ``.name``
  attribute and in ``pyfits.info()``.  These keywords used to be verboten in
  PRIMARY HDUs, but the latest version of the FITS standard allows them.
  (#151)

- HCOMPRESS can again be used to compress data cubes (and higher-dimensional
  arrays) so long as the tile size is effectively 2-dimensional. In fact,
  PyFITS will automatically use compatible tile sizes even if they're not
  explicitly specified. (#171)

- Added support for the optional ``endcard`` parameter in the
  ``Header.fromtextfile()`` and ``Header.totextfile()`` methods.  Although
  ``endcard=False`` was a reasonable default assumption, there are still text
  dumps of FITS headers that include the END card, so this should have been
  more flexible. (#176)

- Fixed a crash when running fitsdiff on two empty (that is, zero row) tables.
  (#178)

- Fixed an issue where opening files containing random groups HDUs in update
  mode could cause an unnecessary rewrite of the file even if none of the
  data is modified. (#179)

- Fixed a bug that could caused a deadlock in the filesystem on OSX if PyFITS
  is used with Numpy 1.7 in some cases. (#180)

- Fixed a crash when generating diff reports from diffs using the
  ``ignore_comments`` options. (#181)

- Fixed some bugs with WCS Paper IV record-valued keyword cards:

  - Cards that looked kind of like RVKCs but were not intended to be were
    over-permissively treated as such--commentary keywords like COMMENT and
    HISTORY were particularly affected. (#183)

  - Looking up a card in a header by its standard FITS keyword only should
    always return the raw value of that card.  That way cards containing
    values that happen to valid RVKCs but were not intended to be will still
    be treated like normal cards. (#184)

  - Looking up a RVKC in a header with only part of the field-specifier (for
    example "DP1.AXIS" instead of "DP1.AXIS.1") was implicitly treated as a
    wildcard lookup. (#184)

- Fixed a crash when diffing two FITS files where at least one contains a
  compressed image HDU which was not recognized as an image instead of a
  table. (#187)

- Fixed bugs in the backwards compatibility layer for the ``CardList.index``
  and ``CardList.count`` methods. (#190)

- Improved ``__repr__`` and text file representation of cards with long values
  that are split into CONTINUE cards. (#193)

- Fixed a crash when trying to assign a long (> 72 character) value to blank
  ('') keywords. This also changed how blank keywords are represented--there
  are still exactly 8 spaces before any commentary content can begin; this
  *may* affect the exact display of header cards that assumed there could be
  fewer spaces in a blank keyword card before the content begins. However, the
  current approach is more in line with the requirements of the FITS standard.
  (#194)


3.0.10 (2013-01-02)
-------------------

- Improved handling of scaled images and pseudo-unsigned integer images in
  compressed image HDUs.  They now work more transparently like normal image
  HDUs with support for the ``do_not_scale_image_data`` and ``uint`` options,
  as well as ``scale_back`` and ``save_backup``.  The ``.scale()`` method
  works better too.  Backported from 3.1.1. (#88)

- Permits non-string values for the EXTNAME keyword when reading in a file,
  rather than throwing an exception due to the malformatting.  Added
  verification for the format of the EXTNAME keyword when writing.  Backported
  from 3.1.1. (#96)

- Added support for EXTNAME and EXTVER in PRIMARY HDUs.  That is, if EXTNAME
  is specified in the header, it will also be reflected in the ``.name``
  attribute and in ``pyfits.info()``.  These keywords used to be verbotten in
  PRIMARY HDUs, but the latest version of the FITS standard allows them.
  Backported from 3.1.1. (#151)

- HCOMPRESS can again be used to compress data cubes (and higher-dimensional
  arrays) so long as the tile size is effectively 2-dimensional. In fact,
  PyFITS will not automatically use compatible tile sizes even if they're not
  explicitly specified.  Backported from 3.1.1. (#171)

- Fixed a bug when writing out files containing zero-width table columns,
  where the TFIELDS keyword would be updated incorrectly, leaving the table
  largely unreadable.  Backported from 3.1.0. (#174)

- Fixed an issue where opening files containing random groups HDUs in update
  mode could cause an unnecessary rewrite of the file even if none of the
  data is modified.  Backported from 3.1.1. (#179)

- Fixed a bug that could caused a deadlock in the filesystem on OSX if PyFITS
  is used with Numpy 1.7 in some cases. Backported from 3.1.1. (#180)


3.1 (2012-08-08)
----------------

Highlights
^^^^^^^^^^

- The ``Header`` object has been significantly reworked, and ``CardList``
  objects are now deprecated (their functionality folded into the ``Header``
  class).  See API Changes below for more details.

- Memory maps are now used by default to access HDU data.  See API Changes
  below for more details.

- Now includes a new version of the ``fitsdiff`` program for comparing two
  FITS files, and a new FITS comparison API used by ``fitsdiff``.  See New
  Features below.

API Changes
^^^^^^^^^^^

- The ``Header`` class has been rewritten, and the ``CardList`` class is
  deprecated.  Most of the basic details of working with FITS headers are
  unchanged, and will not be noticed by most users.  But there are differences
  in some areas that will be of interest to advanced users, and to application
  developers.  For full details of the changes, see the "Header Interface
  Transition Guide" section in the PyFITS documentation.  See ticket #64 on
  the PyFITS Trac for futher details and background. Some highlights are
  listed below:

  * The Header class now fully implements the Python dict interface, and can
    be used interchangably with a dict, where the keys are header keywords.

  * New keywords can be added to the header using normal keyword assignment
    (previously it was necessary to use ``Header.update`` to add new
    keywords).  For example::

        >>> header['NAXIS'] = 2

    will update the existing 'FOO' keyword if it already exists, or add a new
    one if it doesn't exist, just like a dict.

  * It is possible to assign both a value and a comment at the same time using
    a tuple::

        >>> header['NAXIS'] = (2, 'Number of axes')

  * To add/update a new card and ensure it's added in a specific location, use
    ``Header.set()``::

        >>> header.set('NAXIS', 2, 'Number of axes', after='BITPIX')

    This works the same as the old ``Header.update()``.  ``Header.update()``
    still works in the old way too, but is deprecated.

  * Although ``Card`` objects still exist, it generally is not necessary to
    work with them directly.  ``Header.ascardlist()``/``Header.ascard`` are
    deprecated and should not be used.  To directly access the ``Card``
    objects in a header, use ``Header.cards``.

  * To access card comments, it is still possible to either go through the
    card itself, or through ``Header.comments``.  For example::

       >>> header.cards['NAXIS'].comment
       Number of axes
       >>> header.comments['NAXIS']
       Number of axes

  * ``Card`` objects can now be used interchangeably with
    ``(keyword, value, comment)`` 3-tuples.  They still have ``.value`` and
    ``.comment`` attributes as well.  The ``.key`` attribute has been renamed
    to ``.keyword`` for consistency, though ``.key`` is still supported (but
    deprecated).

- Memory mapping is now used by default to access HDU data.  That is,
  ``pyfits.open()`` uses ``memmap=True`` as the default.  This provides better
  performance in the majority of use cases--there are only some I/O intensive
  applications where it might not be desirable.  Enabling mmap by default also
  enabled finding and fixing a large number of bugs in PyFITS' handling of
  memory-mapped data (most of these bug fixes were backported to PyFITS
  3.0.5). (#85)

  * A new ``pyfits.USE_MEMMAP`` global variable was added.  Set
    ``pyfits.USE_MEMMAP = False`` to change the default memmap setting for
    opening files.  This is especially useful for controlling the behavior in
    applications where pyfits is deeply embedded.

  * Likewise, a new ``PYFITS_USE_MEMMAP`` environment variable is supported.
    Set ``PYFITS_USE_MEMMAP = 0`` in your environment to change the default
    behavior.

- The ``size()`` method on HDU objects is now a ``.size`` property--this
  returns the size in bytes of the data portion of the HDU, and in most cases
  is equivalent to ``hdu.data.nbytes`` (#83)

- ``BinTableHDU.tdump`` and ``BinTableHDU.tcreate`` are deprecated--use
  ``BinTableHDU.dump`` and ``BinTableHDU.load`` instead.  The new methods
  output the table data in a slightly different format from previous versions,
  which places quotes around each value.  This format is compatible with data
  dumps from previous versions of PyFITS, but not vice-versa due to a parsing
  bug in older versions.

- Likewise the ``pyfits.tdump`` and ``pyfits.tcreate`` convenience function
  versions of these methods have been renamed ``pyfits.tabledump`` and
  ``pyfits.tableload``.  The old deprecated, but currently retained for
  backwards compatibility. (r1125)

- A new global variable ``pyfits.EXTENSION_NAME_CASE_SENSITIVE`` was added.
  This serves as a replacement for ``pyfits.setExtensionNameCaseSensitive``
  which is not deprecated and may be removed in a future version.  To enable
  case-sensitivity of extension names (i.e. treat 'sci' as distict from 'SCI')
  set ``pyfits.EXTENSION_NAME_CASE_SENSITIVE = True``.  The default is
  ``False``. (r1139)

- A new global configuration variable ``pyfits.STRIP_HEADER_WHITESPACE`` was
  added.  By default, if a string value in a header contains trailing
  whitespace, that whitespace is automatically removed when the value is read.
  Now if you set ``pyfits.STRIP_HEADER_WHITESPACE = False`` all whitespace is
  preserved. (#146)

- The old ``classExtensions`` extension mechanism (which was deprecated in
  PyFITS 3.0) is removed outright.  To our knowledge it was no longer used
  anywhere. (r1309)

- Warning messages from PyFITS issued through the Python warnings API are now
  output to stderr instead of stdout, as is the default.  PyFITS no longer
  modifies the default behavior of the warnings module with respect to which
  stream it outputs to. (r1319)

- The ``checksum`` argument to ``pyfits.open()`` now accepts a value of
  'remove', which causes any existing CHECKSUM/DATASUM keywords to be ignored,
  and removed when the file is saved.

New Features
^^^^^^^^^^^^

- Added support for the proposed "FITS" extension HDU type.  See
  http://listmgr.cv.nrao.edu/pipermail/fitsbits/2002-April/001094.html.  FITS
  HDUs contain an entire FITS file embedded in their data section.  `FitsHDU`
  objects work like other HDU types in PyFITS.  Their ``.data`` attribute
  returns the raw data array.  However, they have a special ``.hdulist``
  attribute which processes the data as a FITS file and returns it as an
  in-memory HDUList object.  FitsHDU objects also support a
  ``FitsHDU.fromhdulist()`` classmethod which returns a new `FitsHDU` object
  that embeds the supplied HDUList. (#80)

- Added a new ``.is_image`` attribute on HDU objects, which is True if the HDU
  data is an 'image' as opposed to a table or something else.  Here the
  meaning of 'image' is fairly loose, and mostly just means a Primary or Image
  extension HDU, or possibly a compressed image HDU (#71)

- Added an ``HDUList.fromstring`` classmethod which can parse a FITS file
  already in memory and instantiate and ``HDUList`` object from it.  This
  could be useful for integrating PyFITS with other libraries that work on
  FITS file, such as CFITSIO.  It may also be useful in streaming
  applications.  The name is a slight misnomer, in that it actually accepts
  any Python object that implements the buffer interface, which includes
  ``bytes``, ``bytearray``, ``memoryview``, ``numpy.ndarray``, etc. (#90)

- Added a new ``pyfits.diff`` module which contains facilities for comparing
  FITS files.  One can use the ``pyfits.diff.FITSDiff`` class to compare two
  FITS files in their entirety.  There is also a ``pyfits.diff.HeaderDiff``
  class for just comparing two FITS headers, and other similar interfaces.
  See the PyFITS Documentation for more details on this interface.  The
  ``pyfits.diff`` module powers the new ``fitsdiff`` program installed with
  PyFITS.  After installing PyFITS, run ``fitsdiff --help`` for usage details.

- ``pyfits.open()`` now accepts a ``scale_back`` argument.  If set to
  ``True``, this automatically scales the data using the original BZERO and
  BSCALE parameters the file had when it was first opened, if any, as well as
  the original BITPIX.  For example, if the original BITPIX were 16, this
  would be equivalent to calling ``hdu.scale('int16', 'old')`` just before
  calling ``flush()`` or ``close()`` on the file.  This option applies to all
  HDUs in the file. (#120)

- ``pyfits.open()`` now accepts a ``save_backup`` argument.  If set to
  ``True``, this automatically saves a backup of the original file before
  flushing any changes to it (this of course only applies to update and append
  mode).  This may be especially useful when working with scaled image data.
  (#121)

Changes in Behavior
^^^^^^^^^^^^^^^^^^^

- Warnings from PyFITS are not output to stderr by default, instead of stdout
  as it has been for some time.  This is contrary to most users' expectations
  and makes it more difficult for them to separate output from PyFITS from the
  desired output for their scripts. (r1319)

Bug Fixes
^^^^^^^^^

- Fixed ``pyfits.tcreate()`` (now ``pyfits.tableload()``) to be more robust
  when encountering blank lines in a column definition file (#14)

- Fixed a fairly rare crash that could occur in the handling of CONTINUE cards
  when using Numpy 1.4 or lower (though 1.4 is the oldest version supported by
  PyFITS). (r1330)

- Fixed ``_BaseHDU.fromstring`` to actually correctly instantiate an HDU
  object from a string/buffer containing the header and data of that HDU.
  This allowed for the implementation of ``HDUList.fromstring`` described
  above. (#90)

- Fixed a rare corner case where, in some use cases, (mildly, recoverably)
  malformatted float values in headers were not properly returned as floats.
  (#137)

- Fixed a corollary to the previous bug where float values with a leading zero
  before the decimal point had the leading zero unnecessarily removed when
  saving changes to the file (eg. "0.001" would be written back as ".001" even
  if no changes were otherwise made to the file). (#137)

- When opening a file containing CHECKSUM and/or DATASUM keywords in update
  mode, the CHECKSUM/DATASUM are updated and preserved even if the file was
  opened with checksum=False.  This change in behavior prevents checksums from
  being unintentionally removed. (#148)

- Fixed a bug where ``ImageHDU.scale(option='old')`` wasn't working at all--it
  was not restoring the image to its original BSCALE and BZERO values. (#162)

- Fixed a bug when writing out files containing zero-width table columns,
  where the TFIELDS keyword would be updated incorrectly, leaving the table
  largely unreadable.  This fix will be backported to the 3.0.x series in
  version 3.0.10.  (#174)


3.0.9 (2012-08-06)
------------------

This is a bug fix release for the 3.0.x series.

Bug Fixes
^^^^^^^^^

- Fixed ``Header.values()``/``Header.itervalues()`` and ``Header.items()``/
  ``Header.iteritems()`` to correctly return the different values for
  duplicate keywords (particularly commentary keywords like HISTORY and
  COMMENT).  This makes the old Header implementation slightly more compatible
  with the new implementation in PyFITS 3.1. (#127)

  .. note::
      This fix did not change the existing behavior from earlier PyFITS
      versions where ``Header.keys()`` returns all keywords in the header with
      duplicates removed.  PyFITS 3.1 changes that behavior, so that
      ``Header.keys()`` includes duplicates.

- Fixed a bug where ``ImageHDU.scale(option='old')`` wasn't working at all--it
  was not restoring the image to its original BSCALE and BZERO values. (#162)

- Fixed a bug where opening a file containing compressed image HDUs in
  'update' mode and then immediately closing it without making any changes
  caused the file to be rewritten unncessarily. (#167)

- Fixed two memory leaks that could occur when writing compressed image data,
  or in some cases when opening files containing compressed image HDUs in
  'update' mode. (#168)


3.0.8 (2012-06-04)
------------------

Changes in Behavior
^^^^^^^^^^^^^^^^^^^

- Prior to this release, image data sections did not work with scaled
  data--that is, images with non-trivial BSCALE and/or BZERO values.
  Previously, in order to read such images in sections, it was necessary to
  manually apply the BSCALE+BZERO to each section.  It's worth noting that
  sections *did* support pseudo-unsigned ints (flakily).  This change just
  extends that support for general BSCALE+BZERO values.

Bug Fixes
^^^^^^^^^

- Fixed a bug that prevented updates to values in boolean table columns from
  being saved.  This turned out to be a symptom of a deeper problem that could
  prevent other table updates from being saved as well. (#139)

- Fixed a corner case in which a keyword comment ending with the string "END"
  could, in some circumstances, cause headers (and the rest of the file after
  that point) to be misread. (#142)

- Fixed support for scaled image data and psuedo-unsigned ints in image data
  sections (``hdu.section``).  Previously this was not supported at all.  At
  some point support was supposedly added, but it was buggy and incomplete.
  Now the feature seems to work much better. (#143)

- Fixed the documentation to point out that image data sections *do* support
  non-contiguous slices (and have for a long time).  The documentation was
  never updated to reflect this, and misinformed users that only contiguous
  slices were supported, leading to some confusion. (#144)

- Fixed a bug where creating an ``HDUList`` object containing multiple PRIMARY
  HDUs caused an infinite recursion when validating the object prior to
  writing to a file. (#145)

- Fixed a rare but serious case where saving an update to a file that
  previously had a CHECKSUM and/or DATASUM keyword, but removed the checksum
  in saving, could cause the file to be slightly corrupted and unreadable.
  (#147)

- Fixed problems with reading "non-standard" FITS files with primary headers
  containing SIMPLE = F.  PyFITS has never made many guarantees as to how such
  files are handled.  But it should at least be possible to read their
  headers, and the data if possible.  Saving changes to such a file should not
  try to prepend an unwanted valid PRIMARY HDU. (#157)

- Fixed a bug where opening an image with ``disable_image_compression = True``
  caused compression to be disabled for all subsequent ``pyfits.open()`` calls.
  (r1651)


3.0.7 (2012-04-10)
------------------

Changes in Behavior
^^^^^^^^^^^^^^^^^^^

- Slices of GroupData objects now return new GroupData objects instead of
  extended multi-row _Group objects. This is analogous to how PyFITS 3.0 fixed
  FITS_rec slicing, and should have been fixed for GroupData at the same time.
  The old behavior caused bugs where functions internal to Numpy expected that
  slicing an ndarray would return a new ndarray.  As this is a rare usecase
  with a rare feature most users are unlikely to be affected by this change.

- The previously internal _Group object for representing individual group
  records in a GroupData object are renamed Group and are now a public
  interface.  However, there's almost no good reason to create Group objects
  directly, so it shouldn't be considered a "new feature".

- An annoyance from PyFITS 3.0.6 was fixed, where the value of the EXTEND
  keyword was always being set to F if there are not actually any extension
  HDUs.  It was unnecessary to modify this value.

Bug Fixes
^^^^^^^^^

- Fixed GroupData objects to return new GroupData objects when sliced instead
  of _Group record objects.  See "Changes in behavior" above for more details.

- Fixed slicing of Group objects--previously it was not possible to slice
  slice them at all.

- Made it possible to assign `np.bool_` objects as header values. (#123)

- Fixed overly strict handling of the EXTEND keyword; see "Changes in
  behavior" above. (#124)

- Fixed many cases where an HDU's header would be marked as "modified" by
  PyFITS and rewritten, even when no changes to the header are necessary.
  (#125)

- Fixed a bug where the values of the PTYPEn keywords in a random groups HDU
  were forced to be all lower-case when saving the file. (#130)

- Removed an unnecessary inline import in `ExtensionHDU.__setattr__` that was
  causing some slowdown when opening files containing a large number of
  extensions, plus a few other small (but not insignficant) performance
  improvements thanks to Julian Taylor. (#133)

- Fixed a regression where header blocks containing invalid end-of-header
  padding (i.e. null bytes instead of spaces) couldn't be parsed by PyFITS.
  Such headers can be parsed again, but a warning is raised, as such headers
  are not valid FITS. (#136)

- Fixed a memory leak where table data in random groups HDUs weren't being
  garbage collected. (#138)


3.0.6 (2012-02-29)
------------------

Highlights
^^^^^^^^^^

The main reason for this release is to fix an issue that was introduced in
PyFITS 3.0.5 where merely opening a file containing scaled data (that is, with
non-trivial BSCALE and BZERO keywords) in 'update' mode would cause the data
to be automatically rescaled--possibly converting the data from ints to
floats--as soon as the file is closed, even if the application did not touch
the data.  Now PyFITS will only rescale the data in an extension when the data
is actually accessed by the application.  So opening a file in 'update' mode
in order to modify the header or append new extensions will not cause any
change to the data in existing extensions.

This release also fixes a few Windows-specific bugs found through more
extensive Windows testing, and other miscellaneous bugs.

Bug Fixes
^^^^^^^^^

- More accurate error messages when opening files containing invalid header
  cards. (#109)

- Fixed a possible reference cycle/memory leak that was caught through more
  extensive testing on Windows. (#112)

- Fixed 'ostream' mode to open the underlying file in 'wb' mode instead of 'w'
  mode. (#112)

- Fixed a Windows-only issue where trying to save updates to a resized FITS
  file could result in a crash due to there being open mmaps on that file.
  (#112)

- Fixed a crash when trying to create a FITS table (i.e. with new_table())
  from a Numpy array containing bool fields. (#113)

- Fixed a bug where manually initializing an ``HDUList`` with a list of of
  HDUs wouldn't set the correct EXTEND keyword value on the primary HDU.
  (#114)

- Fixed a crash that could occur when trying to deepcopy a Header in Python <
  2.7. (#115)

- Fixed an issue where merely opening a scaled image in 'update' mode would
  cause the data to be converted to floats when the file is closed. (#119)


3.0.5 (2012-01-30)
------------------

- Fixed a crash that could occur when accessing image sections of files
  opened with memmap=True. (r1211)

- Fixed the inconsistency in the behavior of files opened in 'readonly' mode
  when memmap=True vs. when memmap=False.  In the latter case, although
  changes to array data were not saved to disk, it was possible to update the
  array data in memory.  On the other hand with memmap=True, 'readonly' mode
  prevented even in-memory modification to the data.  This is what
  'copyonwrite' mode was for, but difference in behavior was confusing.  Now
  'readonly' is equivalent to 'copyonwrite' when using memmap.  If the old
  behavior of denying changes to the array data is necessary, a new
  'denywrite' mode may be used, though it is only applicable to files opened
  with memmap. (r1275)

- Fixed an issue where files opened with memmap=True would return image data
  as a raw numpy.memmap object, which can cause some unexpected
  behaviors--instead memmap object is viewed as a numpy.ndarray. (r1285)

- Fixed an issue in Python 3 where a workaround for a bug in Numpy on Python 3
  interacted badly with some other software, namely to vo.table package (and
  possibly others). (r1320, r1337, and #110)

- Fixed buggy behavior in the handling of SIGINTs (i.e. Ctrl-C keyboard
  interrupts) while flushing changes to a FITS file.  PyFITS already prevented
  SIGINTs from causing an incomplete flush, but did not clean up the signal
  handlers properly afterwards, or reraise the keyboard interrupt once the
  flush was complete. (r1321)

- Fixed a crash that could occur in Python 3 when opening files with checksum
  checking enabled. (r1336)

- Fixed a small bug that could cause a crash in the `StreamingHDU` interface
  when using Numpy below version 1.5.

- Fixed a crash that could occur when creating a new `CompImageHDU` from an
  array of big-endian data. (#104)

- Fixed a crash when opening a file with extra zero padding at the end.
  Though FITS files should not have such padding, it's not explictly forbidden
  by the format either, and PyFITS shouldn't stumble over it. (#106)

- Fixed a major slowdown in opening tables containing large columns of string
  values.  (#111)


3.0.4 (2011-11-22)
------------------

- Fixed a crash when writing HCOMPRESS compressed images that could happen on
  Python 2.5 and 2.6. (r1217)

- Fixed a crash when slicing an table in a file opened in 'readonly' mode with
  memmap=True. (r1230)

- Writing changes to a file or writing to a new file verifies the output in
  'fix' mode by default instead of 'exception'--that is, PyFITS will
  automatically fix common FITS format errors rather than raising an
  exception. (r1243)

- Fixed a bug where convenience functions such as getval() and getheader()
  crashed when specifying just 'PRIMARY' as the extension to use (r1263).

- Fixed a bug that prevented passing keyword arguments (beyond the standard
  data and header arguments) as positional arguments to the constructors of
  extension HDU classes.

- Fixed some tests that were failing on Windows--in this case the tests
  themselves failed to close some temp files and Windows refused to delete them
  while there were still open handles on them. (r1295)

- Fixed an issue with floating point formatting in header values on Python 2.5
  for Windows (and possibly other platforms).  The exponent was zero-padded to
  3 digits; although the FITS standard makes no specification on this, the
  formatting is now normalized to always pad the exponent to two digits.
  (r1295)

- Fixed a bug where long commentary cards (such as HISTORY and COMMENT) were
  broken into multiple CONTINUE cards.  However, commentary cards are not
  expected to be found in CONTINUE cards.  Instead these long cards are broken
  into multiple commentary cards. (#97)

- GZIP/ZIP-compressed FITS files can be detected and opened regardless of
  their filename extension. (#99)

- Fixed a serious bug where opening scaled images in 'update' mode and then
  closing the file without touching the data would cause the file to be
  corrupted. (#101)


3.0.3 (2011-10-05)
------------------

- Fixed several small bugs involving corner cases in record-valued keyword
  cards (#70)

- In some cases HDU creation failed if the first keyword value in the header
  was not a string value (#89)

- Fixed a crash when trying to compute the HDU checksum when the data array
  contains an odd number of bytes (#91)

- Disabled an unnecessary warning that was displayed on opening compressed
  HDUs with disable_image_compression = True (#92)

- Fixed a typo in code for handling HCOMPRESS compressed images.


3.0.2 (2011-09-23)
------------------

- The ``BinTableHDU.tcreate`` method and by extension the ``pyfits.tcreate``
  function don't get tripped up by blank lines anymore (#14)

- The presence, value, and position of the EXTEND keyword in Primary HDUs is
  verified when reading/writing a FITS file (#32)

- Improved documentation (in warning messages as well as in the handbook) that
  PyFITS uses zero-based indexing (as one would expect for C/Python code, but
  contrary to the PyFITS standard which was written with FORTRAN in mind)
  (#68)

- Fixed a bug where updating a header card comment could cause the value to be
  lost if it had not already been read from the card image string.

- Fixed a related bug where changes made directly to Card object in a header
  (i.e. assigning directly to card.value or card.comment) would not propagate
  when flushing changes to the file (#69) [Note: This and the bug above it
  were originally reported as being fixed in version 3.0.1, but the fix was
  never included in the release.]

- Improved file handling, particularly in Python 3 which had a few small file
  I/O-related bugs (#76)

- Fixed a bug where updating a FITS file would sometimes cause it to lose its
  original file permissions (#79)

- Fixed the handling of TDIMn keywords; 3.0 added support for them, but got
  the axis order backards (they were treated as though they were row-major)
  (#82)

- Fixed a crash when a FITS file containing scaled data is opened and
  immediately written to a new file without explicitly viewing the data first
  (#84)

- Fixed a bug where creating a table with columns named either 'names' or
  'formats' resulted in an infinite recursion (#86)


3.0.1 (2011-09-12)
------------------

- Fixed a bug where updating a header card comment could cause the value to be
  lost if it had not already been read from the card image string.

- Changed ``_TableBaseHDU.data`` so that if the data contain an empty table a
  ``FITS_rec`` object with zero rows is returned rather than ``None``.

- The ``.key`` attribute of ``RecordValuedKeywordCards`` now returns the full
  keyword+field-specifier value, instead of just the plain keyword (#46)

- Fixed a related bug where changes made directly to Card object in a header
  (i.e. assigning directly to card.value or card.comment) would not propagate
  when flushing changes to the file (#69)

- Fixed a bug where writing a table with zero rows could fail in some cases
  (#72)

- Miscellanous small bug fixes that were causing some tests to fail,
  particularly on Python 3 (#74, #75)

- Fixed a bug where creating a table column from an array in non-native byte
  order would not preserve the byte order, thus interpreting the column array
  using the wrong byte order (#77)


3.0.0 (2011-08-23)
--------------------

- Contains major changes, bumping the version to 3.0

- Large amounts of refactoring and reorganization of the code; tried to
  preserve public API backwards-compatibility with older versions (private API
  has many changes and is not guaranteed to be backwards-compatible).  There
  are a few small public API changes to be aware of:

  * The pyfits.rec module has been removed completely.  If your version of
    numpy does not have the numpy.core.records module it is too old to be used
    with PyFITS.

  * The ``Header.ascardlist()`` method is deprecated--use the ``.ascard``
    attribute instead.

  * ``Card`` instances have a new ``.cardimage`` attribute that should be used
    rather than ``.ascardimage()``, which may become deprecated.

  * The ``Card.fromstring()`` method is now a classmethod.  It returns a new
    ``Card`` instance rather than modifying an existing instance.

  * The ``req_cards()`` method on HDU instances has changed:  The ``pos``
    argument is not longer a string.  It is either an integer value (meaning
    the card's position must match that value) or it can be a function that
    takes the card's position as it's argument, and returns True if the
    position is valid.  Likewise, the ``test`` argument no longer takes a
    string, but instead a function that validates the card's value and returns
    True or False.

  * The ``get_coldefs()`` method of table HDUs is deprecated.  Use the
    ``.columns`` attribute instead.

  * The ``ColDefs.data`` attribute is deprecated--use ``ColDefs.columns``
    instead (though in general you shouldn't mess with it directly--it might
    become internal at some point).

  * ``FITS_record`` objects take ``start`` and ``end`` as arguments instead of
    ``startColumn`` and ``endColumn`` (these are rarely created manually, so
    it's unlikely that this change will affect anyone).

  * ``BinTableHDU.tcreate()`` is now a classmethod, and returns a new
    ``BinTableHDU`` instance.

  * Use ``ExtensionHDU`` and ``NonstandardExtHDU`` for making new extension HDU
    classes.  They are now public interfaces, wheres previously they were
    private and prefixed with underscores.

  * Possibly others--please report if you find any changes that cause
    difficulties.

- Calls to deprecated functions will display a Deprecation warning.  However,
  in Python 2.7 and up Deprecation warnings are ignored by default, so run
  Python with the `-Wd` option to see if you're using any deprecated
  functions.  If we get close to actually removing any functions, we might
  make the Deprecation warnings display by default.

- Added basic Python 3 support

- Added support for multi-dimensional columns in tables as specified by the
  TDIMn keywords (#47)

- Fixed a major memory leak that occurred when creating new tables with the
  ``new_table()`` function (#49)
  be padded with zero-bytes) vs ASCII tables (where strings are padded with
  spaces) (#15)

- Fixed a bug in which the case of Random Access Group parameters names was not
  preserved when writing (#41)

- Added support for binary table fields with zero width (#42)

- Added support for wider integer types in ASCII tables; although this is non-
  standard, some GEIS images require it (#45)

- Fixed a bug that caused the index_of() method of HDULists to crash when the
  HDUList object is created from scratch (#48)

- Fixed the behavior of string padding in binary tables (where strings should
  be padded with nulls instead of spaces)

- Fixed a rare issue that caused excessive memory usage when computing
  checksums using a non-standard block size (see r818)

- Add support for forced uint data in image sections (#53)

- Fixed an issue where variable-length array columns were not extended when
  creating a new table with more rows than the original (#54)

- Fixed tuple and list-based indexing of FITS_rec objects (#55)

- Fixed an issue where BZERO and BSCALE keywords were appended to headers in
  the wrong location (#56)

- ``FITS_record`` objects (table rows) have full slicing support, including
  stepping, etc. (#59)

- Fixed a bug where updating multiple files simultaneously (such as when
  running parallel processes) could lead to a race condition with mktemp()
  (#61)

- Fixed a bug where compressed image headers were not in the order expected by
  the funpack utility (#62)
jperkin pushed a commit that referenced this pull request Mar 14, 2014
What's new in psycopg 2.4.6
---------------------------

  - Fixed 'cursor()' arguments propagation in connection subclasses
    and overriding of the 'cursor_factory' argument.  Thanks to
    Corry Haines for the report and the initial patch (ticket #105).
  - Dropped GIL release during string adaptation around a function call
    invoking a Python API function, which could cause interpreter crash.
    Thanks to Manu Cupcic for the report (ticket #110).
  - Close a green connection if there is an error in the callback.
    Maybe a harsh solution but it leaves the program responsive
    (ticket #113).
  - 'register_hstore()', 'register_composite()', 'tpc_recover()' work with
    RealDictConnection and Cursor (ticket #114).
  - Fixed broken pool for Zope and connections re-init across ZSQL methods
    in the same request (tickets #123, #125, #142).
  - connect() raises an exception instead of swallowing keyword arguments
    when a connection string is specified as well (ticket #131).
  - Discard any result produced by 'executemany()' (ticket #133).
  - Fixed pickling of FixedOffsetTimezone objects (ticket #135).
  - Release the GIL around PQgetResult calls after COPY (ticket #140).
  - Fixed empty strings handling in composite caster (ticket #141).
  - Fixed pickling of DictRow and RealDictRow objects.
jperkin pushed a commit that referenced this pull request Mar 14, 2014
Changelog:

libmp3splt version 0.8.2
-------------------------------------------------------------

- added option to specify the input tags encoding for when writing ID3v2 tags
(SPLT_OPT_INPUT_TAGS_ENCODING)
- enable -O3 by default
- added LIBMP3SPLT_MAJOR_VERSION, LIBMP3SPLT_MINOR_VERSION and LIBMP3SPLT_MICRO_VERSION
(feature request #96)
- added option SPLT_TAGS_ORIGINAL for mp3splt_tags_set
- added option to keep the original tags and just replace them when importing a CUE or CDDB file
(SPLT_OPT_CUE_CDDB_ADD_TAGS_WITH_KEEP_ORIGINAL_TAGS) (feature request #95)
- added 'split into memory' ability with a callback function for use with 'pretend to split'
(feature request #94)
- replaced mp3splt.m4 with pkg-config (bug #145)
- corrected build files (configure.ac, Makefile.am, ...) and check using 'make distcheck' (bug #147)
- fixed a lot of doxygen issues

libmp3splt version 0.8.1a
-------------------------------------------------------------

- corrected ChangeLog file of 0.8.1 release
- added minimal.c in the distribution for the doxygen documentation
- added libmp3splt_ico.svg in the distribution for the doxygen documentation
- added something in the empty_footer.html file to avoid doxygen segfault

libmp3splt version 0.8.1
-------------------------------------------------------------

- fixed a bug - was crashing when removing tags from skippoints
- added option to set output ID3v2 tags encoded in latin1, UTF-8 or UTF16
- forgot to add 'empty_footer.html' in the distribution

libmp3splt version 0.8
-------------------------------------------------------------

- rewritten libmp3splt public API to target future 1.0 stable release
- written complete documentation of the public API
- done issues #40 and #85 - added minimum silence length parameter for auto adjust
- implemented back the proxy feature with basic authentification - feature #50
- added option to generate exactly the same input tags bytes using @o
- added minimum silence length for trim silence mode (minimum silence to trigger a trimming)
- done issue #12 - added option to output the full silence log useful to plot a graph
- enhanced the CUE export to export the tags as REM comments and also the splitpoint names
- fixed bug when detecting the input tags version - output had no tags when the input only had ID3v1
- fixed bug: output tags versions was not equal to the input file tags versions when the user was
setting custom tags without any @o to get the original tags
- done issue #79 - added 0 to the number of digits to output in order to be able to support
the old mp3splt output format
- fixed bug #141 - when input file is a symlink and output directory is the one of the input file
- amplitude more precise with ogg vorbis files
- plugins are now installed in $(libdir)/libmp3splt$(SONAME) instead of $(libdir)/libmp3splt
- fixed bug #131 - use /usr/lib64 instead of /usr/lib on x64 in mp3splt.m4
- fixed bug #133 - updated GPLv2 COPYING file
- fixed bug on mp3 trim silence scan: last frame was skipped
- fixed bug #134 - use of deprecated gethostbyname()

-------------------------------------------------------------
libmp3splt version 0.7.3

- added the trackjoin parameter for silence detection split: tracks shorter than trackjoin will be joined with others
- fixed bug: removing TLEN id3v2 tag from the split files
- fixed bug #3530488 - regression introduced with ogg multiple logical streams

libmp3splt version 0.7.2
-------------------------------------------------------------

- fixed error when ID3v2 was containing what appears a valid frame; make sure we skip the ID3v2 after looking for the first frames
- fixed bug #3497957 libtoolize vs glibtoolize
- fixed #3487543 - compilation without pcre support
- added the shots parameter to silence detection

libmp3splt version 0.7.1
-------------------------------------------------------------

- added minimum track length option for silence scan - closes #2393766
- added option to set original tags when using 'replace tags in tags' - closes #3407314
- added support for multiple ogg/vorbis logical streams (mail)
- fixed mp3 frame mode with skippoint when skippoint too small (on the same frame as previous)
- fixed some regression regarding mp3splt v2.1c - removed some checks relative to the total
time - we cannot rely on the total time - for example with concatenated mp3s
- fixed several audacity labels issues
- fixed inconsistency (extra 0 padding) between @n of custom tags and @n of output filename (mail)
- fixed compilation error without libid3tag
- fixed #3385833 - don't apply debugging flags or warnings flags by default:
added --enable-c-debug --enable-optimise --enable-extra-warnings
- fixed #3385827 - added --disable-doxygen_doc
- fixed #3385829 - building doxygen documentation by itself + installing doxygen files
jperkin pushed a commit that referenced this pull request Mar 14, 2014
Changelog:

#mp3splt version 2.5.2

- added option -I to specify the input tags encoding for when writing ID3v2 tags (ISO-8859-1, UTF-8
or UTF-16)
- added option -K to keep the original tags and just replace them when importing a CUE or CDDB file
(feature request #95)
- fixed bug #149 - use of getline() on mac
- libmp3splt check is now more correct and checks for the exact version of libmp3splt with = instead
of >=; will be changed to >= when final version of libmp3splt will be released
- now using pkg-config instead of mp3splt.m4 (bug #145)
- corrected build files (configure.ac, Makefile.am, ...) and check using 'make distcheck' (bug #147)

#mp3splt version 2.5.1

- fixed a bug when removing the tags from skippoints (libmp3splt)
- added option to set output ID3v2 tags encoded in latin1, UTF-8 or UTF16

#mp3splt version 2.5

- done issues #40 and #85 - added minimum silence length parameter for auto adjust (mainly libmp3splt)
- added minimum silence length for trim silence mode (minimum silence to trigger a trimming)
(mainly libmp3splt)
- done issue #12 - added option to output the full silence log useful to plot a graph
(mainly libmp3splt)
- implemented back the proxy feature with basic authentification - feature #50 (mainly libmp3splt)
- added option to generate exactly the same input tags bytes using @o (mainly libmp3splt)
- enhanced the CUE export to export the tags as REM comments and also the splitpoint names (libmp3splt)
- fixed bug when detecting the input tags version - output had no tags when the input only had ID3v1
(libmp3splt)
- fixed bug: output tags versions was not equal to the input file tags versions when the user was
setting custom tags without any @o to get the original tags (libmp3splt)
- done issue #79 - added 0 to the number of digits to output in order to be able to support
the old mp3splt output format (libmp3splt)
- fixed bug #141 - when input file is a symlink and output directory is the one of the input file
(libmp3splt)
- fixed bug on mp3 trim silence scan: last frame was skipped (libmp3splt)
- fixed bug #133 - updated GPLv2 COPYING file
- fixed bug #142 - skipped splitpoints were handled wrong by '-c'

#mp3splt version 2.4.3

- added the trackjoin parameter for silence detection split: tracks shorter than trackjoin will be joined with others
- fixed bug: removing TLEN id3v2 tag from the split files (libmp3splt)
- fixed bug #3530488 - regression introduced with ogg multiple logical streams (libmp3splt)

#mp3splt version 2.4.2

- fixed error when ID3v2 was containing what appears a valid frame; make sure we skip the ID3v2 after looking for the first frames (libmp3splt)
- added the shots parameter to silence detection
(-p shots=INTEGER - minimum number of shots to be found as non silence after the silence)

#mp3splt version 2.4.1

- added minimum track length option for silence scan: 'trackmin' parameter to '-p' - closes #2393766
- added option to set original tags when using 'replace tags in tags' - use of #t, #a, ... - closes #3407314
- fixed #3399950 - regression on windows regarding the current working directory
- fixed some regression regarding mp3splt v2.1c - removed some checks relative to the total
- fixed #3385833 - don't apply debugging flags or warnings flags by default:
added --enable-c-debug --enable-optimise --enable-extra-warnings
- fixed #3424143 - added a small check for the -O option
- added support for multiple ogg/vorbis logical streams (mail) (libmp3splt)
- fixed mp3 frame mode with skippoint when skippoint too small (on the same frame as previous) (libmp3splt)
- fixed several audacity labels issues (libmp3splt)
- fixed inconsistency (extra 0 padding) between @n of -g and @n of -o (mail)
time - we cannot rely on the total time - for example with concatenated mp3s (libmp3splt)
jperkin pushed a commit that referenced this pull request Mar 14, 2014
Changelog:

-------------------------------------------------------------
mp3splt-gtk version 0.8.2

- fixed important bug in mp3splt-gtk: split using cue file was not splitting the last part
- fixed tags encoding issue in mp3splt-gtk: encode in UTF-8 tags if not valid UTF-8
- implemented "prelisten a section to its ending splitpoint" in mp3splt-gtk (feature request #98)
- libmp3splt check is now more correct and checks for the exact version of libmp3splt with = instead
of >=; will be changed to >= when final version of libmp3splt will be released
- now using pkg-config instead of mp3splt.m4 (bug #145)
- corrected build files (configure.ac, Makefile.am, ...) and check using 'make distcheck' (bug #147)

-------------------------------------------------------------
mp3splt-gtk version 0.8.1

- fixed important bug: application was crashing when pushing the split button without any
splitpoint (libmp3splt)
- fixed important bug: split by time was in hundreths of seconds instead of seconds

-------------------------------------------------------------
mp3splt-gtk version 0.8

- added tags edition from the splitpoints table - closes feature #92
- added cloning features for mass copying of tags using right click on the splitpoints table
- enhanced the CUE export to export the tags as REM comments and also the splitpoint names
- automatically save & restore splitpoints in '~/.mp3splt-gtk/splitpoints.cue'
- better amplitude wave display (wave does not "shake" anymore)
- done issue #37 & #138 - nicer GUI for the option 'same output directory as the input file'
- fixed amplitude wave to be more precise with ogg vorbis files (libmp3splt)
- fixed important bug on mp3splt-gtk 'Queue to player' button
- fixed bug #128 - hash symbol in filename breaks the player
- done feature #38 - reorder filenames in mp3splt-gtk (description_here_partXX)
- fixed bug #133 - updated GPLv2 COPYING file
- fixed bug #137 - autogen.sh should run libtoolize before aclocal/automake
- fixed bug #143 - be able to add splitpoint at the end from the player
- fixed bug #136 - various compilation issues
- fixed issue #90 - added back the icons to split preview and play preview in the splitpoints table
- added a lot of tooltip and GUI renamings
- done feature #91 - amplitude wave now persists in preferences
- added one more interpolation level for the amplitude wave (level 6)
- more precise wave preview in preferences
- fixed bug when detecting the input tags version - output had no tags when the input only had ID3v1
(libmp3splt)
- fixed bug #141 - when input file is a symlink and output directory is the one of the input file
(libmp3splt)
- amplitude more precise with ogg vorbis files (libmp3splt)
- fixed bug on mp3 trim silence scan: last frame was skipped (libmp3splt)

-------------------------------------------------------------
mp3splt-gtk version 0.7.3

- redesigned the mp3splt-gtk user interface
- added option to specify the wave quality in the parameters (for performance reasons)
- wave interpolation is now much correct - we use the douglas peucker algorithm instead of the previous one which was stupid
- added gray areas where no splitpoints - regarding #3520736
- added seek key shortcuts to the player - #1811400 & #3528001
- heavy refactoring of mp3splt-gtk code
- fixed bug: removing TLEN id3v2 tag from the split files (libmp3splt)
- fixed bug #3530488 - regression introduced with ogg multiple logical streams (libmp3splt)

-------------------------------------------------------------
mp3splt-gtk version 0.7.2

- fixed an important bug of memory leak in player drawing when using GTK+-2
- fixed bug not showing icon and image in the about dialog
- fix for the '--disable-gtk3' option; also fixed the gtk 2.x/3.x check
- made some player graphic optimisations
- added player refresh rate option in Preferences->Player
- added expanders to the player history and player splitpoints view
- we don't need gtk 2 version >= 2.20; changed it to 2.18

-------------------------------------------------------------
mp3splt-gtk version 0.7.1

- added minimum track length option for silence scan - closes #2393766
- added gtk3 support (auto detection or --enable-gtk3, --disable-gtk3) - almost closes #3385903
(some tests still need to be done)
- fixed #3385841 - removed scrollkeeper warnings
- fixed #3385827 - added --disable-doxygen_doc
- fixed #3385829 - building doxygen documentation by itself + installing doxygen files
- fixed #3385833 - don't apply debugging flags or warnings flags by default:
added --enable-c-debug --enable-optimise --enable-extra-warnings
- added support for multiple ogg/vorbis logical streams (mail) (libmp3splt)
- fixed mp3 frame mode with skippoint when skippoint too small (on the same frame as previous) (libmp3splt)
- fixed several audacity labels issues (libmp3splt)
- fixed some regression regarding mp3splt v2.1c - removed some checks relative to the total
time - we cannot rely on the total time - for example with concatenated mp3s (libmp3splt)
jperkin pushed a commit that referenced this pull request Mar 14, 2014
Release 3.1.1 - 2013/12/29
--------------------------

Improvements
^^^^^^^^^^^^

* [deb] Refined Groonga packages for Debian policy. [groonga-dev,01930]
  [Suggested by Hideki Yamane]
* [deb] Dropped Debian 6.0 (squeeze) support.
* [deb] Dropped Ubuntu 10.04 (lucid) support.
* Supported :doc:`/reference/functions/geo_in_rectangle` in the whole world.
* Supported error report when failed to casting invalid value of geo point type.
* Exported some macros which is used for accessing pseudo column names.
  [groonga-dev,1999] [Suggested by whombx]
* [doc] Refined drilldown documentation. [Reported by @Yahppo]
* Supported :doc:`/reference/functions/between` function which is used for
  filtering the column value in specific range.
* [doc] Updated Travis CI envrinment information. [Patch by cosmo0920]
* [rpm][fedora] Dropped Fedora 19.
* [rpm][fedora] Supported Fedora 20.
* [doc] Updated "Groonga" notation. [Patch by cosmo0920] [GitHub#122, #123, #124, #125, #125, #126, #127, #128, #129, #130, #131, #131, #132, #133, #134]

Fixes
^^^^^

* [munin] Fixed the wrong port number which is specified for GQTP.
* [geo_in_circle] Fixed a bug that if you specify "LONGITUDExLATITUDE" as
  the 3rd argument of :doc:`/reference/functions/geo_in_circle`, Groonga crashes.

Thanks
^^^^^^

* Hideki Yamane
* whombx
* @yappo
* cosmo0920
jperkin pushed a commit that referenced this pull request Mar 14, 2014
FITS (Flexible Image Transport System) is a data format most used in astronomy.
PyFITS is a Python module for reading, writing, and manipulating FITS files.
The module uses Python's object-oriented features to provide quick, easy, and
efficient access to FITS files. The use of Python's array syntax enables
immediate access to any FITS extension, header cards, or data items.

Changes to 2.4.0 (in py-pyfits):

Changelog
===========

3.2 (2013-11-26)
----------------

Highlights
^^^^^^^^^^

- Rewrote CFITSIO-based backend for handling tile compression of FITS files.
  It now uses a standard CFITSIO instead of heavily modified pieces of CFITSIO
  as before.  PyFITS ships with its own copy of CFITSIO v3.35 which supports
  the latest version of the Tiled Image Convention (v2.3), but system
  packagers may choose instead to strip this out in favor of a
  system-installed version of CFITSIO.  Earlier versions may work, but nothing
  earlier than 3.28 has been tested yet. (#169)

- Added support for reading and writing tables using the Q format for columns.
  The Q format is identical to the P format (variable-length arrays) except
  that it uses 64-bit integers for the data descriptors, allowing more than
  4 GB of variable-length array data in a single table. (#160)

- Added initial support for table columns containing pseudo-unsigned integers.
  This is currently enabled by using the ``uint=True`` option when opening
  files; any table columns with the correct BZERO value will be interpreted
  and returned as arrays of unsigned integers.

- Some refactoring of the table and ``FITS_rec`` modules in order to better
  separate the details of the FITS binary and ASCII table data structures from
  the HDU data structures that encapsulate them.  Most of these changes should
  not be apparent to users (but see API Changes below).


API Changes
^^^^^^^^^^^

- Assigning to values in ``ColDefs.names``, ``ColDefs.formats``,
  ``ColDefs.nulls`` and other attributes of ``ColDefs`` instances that return
  lists of column properties is no longer supported.  Assigning to those lists
  will no longer update the corresponding columns.  Instead, please just
  modify the ``Column`` instances directly (``Column.name``, ``Column.null``,
  etc.)

- The ``pyfits.new_table`` function is marked "pending deprecation".  This
  does not mean it will be removed outright or that its functionality has
  changed.  It will likely be replaced in the future for a function with
  similar, if not subtly different functionality.  A better, if not slightly
  more verbose approach is to use ``pyfits.FITS_rec.from_columns`` to create
  a new ``FITS_rec`` table--this has the same interface as
  ``pyfits.new_table``.  The difference is that it returns a plan ``FITS_rec``
  array, and not an HDU instance.  This ``FITS_rec`` object can then be used
  as the data argument in the constructors for ``BinTableHDU`` (for binary
  tables) or ``TableHDU`` (for ASCII tables).  This is analogous to creating
  an ``ImageHDU`` by passing in an image array.
  ``pyfits.FITS_rec.from_columns`` is just a simpler way of creating a
  FITS-compatible recarray from a FITS column specification.

- The ``updateHeader``, ``updateHeaderData``, and ``updateCompressedData``
  methods of the ``CompDataHDU`` class are pending deprecation and moved to
  internal methods.  The operation of these methods depended too much on
  internal state to be used safely by users; instead they are invoked
  automatically in the appropriate places when reading/writing compressed image
  HDUs.

- The ``CompDataHDU.compData`` attribute is pending deprecation in favor of
  the clearer and more PEP-8 compatible ``CompDataHDU.compressed_data``.

- The constructor for ``CompDataHDU`` has been changed to accept new keyword
  arguments.  The new keyword arguments are essentially the same, but are in
  underscore_separated format rather than camelCase format.  The old arguments
  are still pending deprecation.

- The internal attributes of HDU classes ``_hdrLoc``, ``_datLoc``, and
  ``_datSpan`` have been replaced with ``_header_offset``, ``_data_offset``,
  and ``_data_size`` respectively.  The old attribute names are still pending
  deprecation.  This should only be of interest to advanced users who have
  created their own HDU subclasses.

- The following previously deprecated functions and methods have been removed
  entirely: ``createCard``, ``createCardFromString``, ``upperKey``,
  ``ColDefs.data``, ``setExtensionNameCaseSensitive``, ``_File.getfile``,
  ``_TableBaseHDU.get_coldefs``, ``Header.has_key``, ``Header.ascardlist``.

  If you run your code with a previous version of PyFITS (>= 3.0, < 3.2) with
  the ``python -Wd`` argument, warnings for all deprecated interfaces still in
  use will be displayed.

- Interfaces that were pending deprecation are now fully deprecated.  These
  include: ``create_card``, ``create_card_from_string``, ``upper_key``,
  ``Header.get_history``, and ``Header.get_comment``.

- The ``.name`` attribute on HDUs is now directly tied to the HDU's header, so
  that if ``.header['EXTNAME']`` changes so does ``.name`` and vice-versa.

- The ``pyfits.file.PYTHON_MODES`` constant dict was renamed to
  ``pyfits.file.PYFITS_MODES`` which better reflects its purpose.  This is
  rarely used by client code, however.  Support for the old name will be
  removed by PyFITS 3.4.


Other Changes and Additions
^^^^^^^^^^^^^^^^^^^^^^^^^^^

- The new compression code also adds support for the ZQUANTIZ and ZDITHER0
  keywords added in more recent versions of this FITS Tile Compression spec.
  This includes support for lossless compression with GZIP. (#198) By default
  no dithering is used, but the ``SUBTRACTIVE_DITHER_1`` and
  ``SUBTRACTIVE_DITHER_2`` methods can be enabled by passing the correct
  constants to the ``quantize_method`` argument to the ``CompImageHDU``
  constuctor.  A seed can be manually specified, or automatically generated
  using either the system clock or checksum-based methods via the
  ``dither_seed`` argument.  See the documentation for ``CompImageHDU`` for
  more details. (#198) (spacetelescope/PYFITS#32)

- Images compressed with the Tile Compression standard can now be larger than
  4 GB through support of the Q format. (#159)

- All HDUs now have a ``.ver`` ``.level`` attribute that returns the value of
  the EXTVAL and EXTLEVEL keywords from that HDU's header, if the exist.  This
  was added for consistency with the ``.name`` attribute which returns the
  EXTNAME value from the header.

- Then ``Column`` and ``ColDefs`` classes have new ``.dtype`` attributes
  which give the Numpy dtype for the column data in the first case, and the
  full Numpy compound dtype for each table row in the latter case.

- There was an issue where new tables created defaulted the values in all
  string columns to '0.0'.  Now string columns are filled with empty strings
  by default--this seems a less surprising default, but it may cause
  differences with tables created with older versions of PyFITS.

- Improved round-tripping and preservation of manually assigned column
  attributes (``TNULLn``, ``TSCALn``, etc.) in table HDU headers.
  (astropy/astropy#996)


Bug Fixes
^^^^^^^^^

- Binary tables containing compressed images may, optionally, contain other
  columns unrelated to the tile compression convention. Although this is an
  uncommon use case, it is permitted by the standard. (#159)

- Reworked some of the file I/O routines to allow simpler, more consistent
  mapping between OS-level file modes ('rb', 'wb', 'ab', etc.) and the more
  "PyFITS-specific" modes used by PyFITS like "readonly" and "update".
  That is, if reading a FITS file from an open file object, it doesn't matter
  as much what "mode" it was opened in so long as it has the right
  capabilities (read/write/etc.)  Also works around bugs in the Python io
  module in 2.6+ with regard to file modes. (spacetelescope/PyFITS#33)

- Fixed an obscure issue that can occur on systems that don't have flush to
  memory-mapped files implemented (namely GNU Hurd). (astropy/astropy#968)


3.1.3 (2013-11-26)
------------------

- Disallowed assigning NaN and Inf floating point values as header values,
  since the FITS standard does not define a way to represent them in. Because
  this is undefined, the previous behavior did not make sense and produced
  invalid FITS files. (spacetelescope/PyFITS#11)

- Added a workaround for a bug in 64-bit OSX that could cause truncation when
  writing files greater than 2^32 bytes in size. (spacetelescope/PyFITS#28)

- Fixed a long-standing issue where writing binary tables did not correctly
  write the TFORMn keywords for variable-length array columns (they ommitted
  the max array length parameter of the format).  This was thought fixed in
  v3.1.2, but it was only fixed there for compressed image HDUs and not for
  binary tables in general.

- Fixed an obscure issue that can occur on systems that don't have flush to
  memory-mapped files implemented (namely GNU Hurd). (Backported from 3.2)


3.0.12 (2013-11-26)
-------------------

- Disallowed assigning NaN and Inf floating point values as header values,
  since the FITS standard does not define a way to represent them in. Because
  this is undefined, the previous behavior did not make sense and produced
  invalid FITS files. (Backported from 3.1.3)

- Added a workaround for a bug in 64-bit OSX that could cause truncation when
  writing files greater than 2^32 bytes in size. (Backported from 3.1.3)

- Fixed a long-standing issue where writing binary tables did not correctly
  write the TFORMn keywords for variable-length array columns (they ommitted
  the max array length parameter of the format).  This was thought fixed in
  v3.1.2, but it was only fixed there for compressed image HDUs and not for
  binary tables in general. (Backported from 3.1.3)

- Fixed an obscure issue that can occur on systems that don't have flush to
  memory-mapped files implemented (namely GNU Hurd). (Backported from 3.2)


3.1.2 (2013-04-22)
------------------

- When an error occurs opening a file in fitsdiff the exception message will
  now at least mention which file had the error. (#168)

- Fixed support for opening gzipped FITS files by filename in a writeable mode
  (PyFITS has supported writing to gzip files for some time now, but only
  enabled it when GzipFile objects were passed to ``pyfits.open()`` due to
  some legacy code preventing full gzip support. (#195)

- Added a more helpful error message in the case of malformatted FITS files
  that contain non-float NULL values in an ASCII table but are missing the
  required TNULLn keywords in the header. (#197)

- Fixed an (apparently long-standing) issue where writing compressed images
  did not correctly write the TFORMn keywords for variable-length array
  columns (they ommitted the max array length parameter of the format). (#199)

- Slightly refactored how tables containing variable-length array columns are
  handled to add two improvements: Fixes an issue where accessing the data
  after a call to the `pyfits.getdata` convenience function caused an
  exception, and allows the VLA data to be read from an existing mmap of the
  FITS file. (#200)

- Fixed a bug that could occur when opening a table containing
  multi-dimensional columns (i.e. via the TDIMn keyword) and then writing it
  out to a new file. (#201)

- Added use of the console_scripts entry point to install the fitsdiff and
  fitscheck scripts, which if nothing else provides better Windows support.
  The generated scripts now override the ones explicitly defined in the
  scripts/ directory (which were just trivial stubs to begin with). (#202)

- Fixed a bug on Python 3 where attempting to open a non-existent file on
  Python 3 caused a seemingly unrelated traceback. (#203)

- Fixed a bug in fitsdiff that reported two header keywords containing NaN
  as value as different. (#204)

- Fixed an issue in the tests that caused some tests to fail if pyfits is
  installed with read-only permissions. (#208)

- Fixed a bug where instantiating a ``BinTableHDU`` from a numpy array
  containing boolean fields converted all the values to ``False``. (#215)

- Fixed an issue where passing an array of integers into the constructor of
  ``Column()`` when the column type is floats of the same byte width caused the
  column array to become garbled. (#218)

- Fixed inconsistent behavior in creating CONTINUE cards from byte strings
  versus unicode strings in Python 2--CONTINUE cards can now be created
  properly from unicode strings (so long as they are convertable to ASCII).
  (spacetelescope/PyFITS#1)

- Fixed a couple cases where creating a new table using TDIMn in some of the
  columns could caused a crash. (spacetelescope/PyFITS#3)

- Fixed a bug in parsing HIERARCH keywords that do not have a space after
  the first equals sign (before the value). (spacetelescope/PyFITS#5)

- Prevented extra leading whitespace on HIERARCH keywords from being treated
  as part of the keyword. (spacetelescope/PyFITS#6)

- Fixed a bug where HIERARCH keywords containing lower-case letters was
  mistakenly marked as invalid during header validation.
  (spacetelescope/PyFITS#7)

- Fixed an issue that was ancillary to (spacetelescope/PyFITS#7) where the
  ``Header.index()`` method did not work correctly with HIERARCH keywords
  containing lower-case letters.


3.0.11 (2013-04-17)
-------------------

- Fixed support for opening gzipped FITS files by filename in a writeable mode
  (PyFITS has supported writing to gzip files for some time now, but only
  enabled it when GzipFile objects were passed to ``pyfits.open()`` due to
  some legacy code preventing full gzip support. Backported from 3.1.2. (#195)

- Added a more helpful error message in the case of malformatted FITS files
  that contain non-float NULL values in an ASCII table but are missing the
  required TNULLn keywords in the header. Backported from 3.1.2. (#197)

- Fixed an (apparently long-standing) issue where writing compressed images did
  not correctly write the TFORMn keywords for variable-length array columns
  (they ommitted the max array length parameter of the format). Backported from
  3.1.2. (#199)

- Slightly refactored how tables containing variable-length array columns are
  handled to add two improvements: Fixes an issue where accessing the data
  after a call to the `pyfits.getdata` convenience function caused an
  exception, and allows the VLA data to be read from an existing mmap of the
  FITS file. Backported from 3.1.2. (#200)

- Fixed a bug that could occur when opening a table containing
  multi-dimensional columns (i.e. via the TDIMn keyword) and then writing it
  out to a new file. Backported from 3.1.2. (#201)

- Fixed a bug on Python 3 where attempting to open a non-existent file on
  Python 3 caused a seemingly unrelated traceback. Backported from 3.1.2.
  (#203)

- Fixed a bug in fitsdiff that reported two header keywords containing NaN
  as value as different. Backported from 3.1.2. (#204)

- Fixed an issue in the tests that caused some tests to fail if pyfits is
  installed with read-only permissions. Backported from 3.1.2. (#208)

- Fixed a bug where instantiating a ``BinTableHDU`` from a numpy array
  containing boolean fields converted all the values to ``False``. Backported
  from 3.1.2. (#215)

- Fixed an issue where passing an array of integers into the constructor of
  ``Column()`` when the column type is floats of the same byte width caused the
  column array to become garbled. Backported from 3.1.2. (#218)

- Fixed a couple cases where creating a new table using TDIMn in some of the
  columns could caused a crash. Backported from 3.1.2.
  (spacetelescope/PyFITS#3)


3.1.1 (2013-01-02)
------------------

This is a bug fix release for the 3.1.x series.

Bug Fixes
^^^^^^^^^

- Improved handling of scaled images and pseudo-unsigned integer images in
  compressed image HDUs.  They now work more transparently like normal image
  HDUs with support for the ``do_not_scale_image_data`` and ``uint`` options,
  as well as ``scale_back`` and ``save_backup``.  The ``.scale()`` method
  works better too. (#88)

- Permits non-string values for the EXTNAME keyword when reading in a file,
  rather than throwing an exception due to the malformatting.  Added
  verification for the format of the EXTNAME keyword when writing. (#96)

- Added support for EXTNAME and EXTVER in PRIMARY HDUs.  That is, if EXTNAME
  is specified in the header, it will also be reflected in the ``.name``
  attribute and in ``pyfits.info()``.  These keywords used to be verboten in
  PRIMARY HDUs, but the latest version of the FITS standard allows them.
  (#151)

- HCOMPRESS can again be used to compress data cubes (and higher-dimensional
  arrays) so long as the tile size is effectively 2-dimensional. In fact,
  PyFITS will automatically use compatible tile sizes even if they're not
  explicitly specified. (#171)

- Added support for the optional ``endcard`` parameter in the
  ``Header.fromtextfile()`` and ``Header.totextfile()`` methods.  Although
  ``endcard=False`` was a reasonable default assumption, there are still text
  dumps of FITS headers that include the END card, so this should have been
  more flexible. (#176)

- Fixed a crash when running fitsdiff on two empty (that is, zero row) tables.
  (#178)

- Fixed an issue where opening files containing random groups HDUs in update
  mode could cause an unnecessary rewrite of the file even if none of the
  data is modified. (#179)

- Fixed a bug that could caused a deadlock in the filesystem on OSX if PyFITS
  is used with Numpy 1.7 in some cases. (#180)

- Fixed a crash when generating diff reports from diffs using the
  ``ignore_comments`` options. (#181)

- Fixed some bugs with WCS Paper IV record-valued keyword cards:

  - Cards that looked kind of like RVKCs but were not intended to be were
    over-permissively treated as such--commentary keywords like COMMENT and
    HISTORY were particularly affected. (#183)

  - Looking up a card in a header by its standard FITS keyword only should
    always return the raw value of that card.  That way cards containing
    values that happen to valid RVKCs but were not intended to be will still
    be treated like normal cards. (#184)

  - Looking up a RVKC in a header with only part of the field-specifier (for
    example "DP1.AXIS" instead of "DP1.AXIS.1") was implicitly treated as a
    wildcard lookup. (#184)

- Fixed a crash when diffing two FITS files where at least one contains a
  compressed image HDU which was not recognized as an image instead of a
  table. (#187)

- Fixed bugs in the backwards compatibility layer for the ``CardList.index``
  and ``CardList.count`` methods. (#190)

- Improved ``__repr__`` and text file representation of cards with long values
  that are split into CONTINUE cards. (#193)

- Fixed a crash when trying to assign a long (> 72 character) value to blank
  ('') keywords. This also changed how blank keywords are represented--there
  are still exactly 8 spaces before any commentary content can begin; this
  *may* affect the exact display of header cards that assumed there could be
  fewer spaces in a blank keyword card before the content begins. However, the
  current approach is more in line with the requirements of the FITS standard.
  (#194)


3.0.10 (2013-01-02)
-------------------

- Improved handling of scaled images and pseudo-unsigned integer images in
  compressed image HDUs.  They now work more transparently like normal image
  HDUs with support for the ``do_not_scale_image_data`` and ``uint`` options,
  as well as ``scale_back`` and ``save_backup``.  The ``.scale()`` method
  works better too.  Backported from 3.1.1. (#88)

- Permits non-string values for the EXTNAME keyword when reading in a file,
  rather than throwing an exception due to the malformatting.  Added
  verification for the format of the EXTNAME keyword when writing.  Backported
  from 3.1.1. (#96)

- Added support for EXTNAME and EXTVER in PRIMARY HDUs.  That is, if EXTNAME
  is specified in the header, it will also be reflected in the ``.name``
  attribute and in ``pyfits.info()``.  These keywords used to be verbotten in
  PRIMARY HDUs, but the latest version of the FITS standard allows them.
  Backported from 3.1.1. (#151)

- HCOMPRESS can again be used to compress data cubes (and higher-dimensional
  arrays) so long as the tile size is effectively 2-dimensional. In fact,
  PyFITS will not automatically use compatible tile sizes even if they're not
  explicitly specified.  Backported from 3.1.1. (#171)

- Fixed a bug when writing out files containing zero-width table columns,
  where the TFIELDS keyword would be updated incorrectly, leaving the table
  largely unreadable.  Backported from 3.1.0. (#174)

- Fixed an issue where opening files containing random groups HDUs in update
  mode could cause an unnecessary rewrite of the file even if none of the
  data is modified.  Backported from 3.1.1. (#179)

- Fixed a bug that could caused a deadlock in the filesystem on OSX if PyFITS
  is used with Numpy 1.7 in some cases. Backported from 3.1.1. (#180)


3.1 (2012-08-08)
----------------

Highlights
^^^^^^^^^^

- The ``Header`` object has been significantly reworked, and ``CardList``
  objects are now deprecated (their functionality folded into the ``Header``
  class).  See API Changes below for more details.

- Memory maps are now used by default to access HDU data.  See API Changes
  below for more details.

- Now includes a new version of the ``fitsdiff`` program for comparing two
  FITS files, and a new FITS comparison API used by ``fitsdiff``.  See New
  Features below.

API Changes
^^^^^^^^^^^

- The ``Header`` class has been rewritten, and the ``CardList`` class is
  deprecated.  Most of the basic details of working with FITS headers are
  unchanged, and will not be noticed by most users.  But there are differences
  in some areas that will be of interest to advanced users, and to application
  developers.  For full details of the changes, see the "Header Interface
  Transition Guide" section in the PyFITS documentation.  See ticket #64 on
  the PyFITS Trac for futher details and background. Some highlights are
  listed below:

  * The Header class now fully implements the Python dict interface, and can
    be used interchangably with a dict, where the keys are header keywords.

  * New keywords can be added to the header using normal keyword assignment
    (previously it was necessary to use ``Header.update`` to add new
    keywords).  For example::

        >>> header['NAXIS'] = 2

    will update the existing 'FOO' keyword if it already exists, or add a new
    one if it doesn't exist, just like a dict.

  * It is possible to assign both a value and a comment at the same time using
    a tuple::

        >>> header['NAXIS'] = (2, 'Number of axes')

  * To add/update a new card and ensure it's added in a specific location, use
    ``Header.set()``::

        >>> header.set('NAXIS', 2, 'Number of axes', after='BITPIX')

    This works the same as the old ``Header.update()``.  ``Header.update()``
    still works in the old way too, but is deprecated.

  * Although ``Card`` objects still exist, it generally is not necessary to
    work with them directly.  ``Header.ascardlist()``/``Header.ascard`` are
    deprecated and should not be used.  To directly access the ``Card``
    objects in a header, use ``Header.cards``.

  * To access card comments, it is still possible to either go through the
    card itself, or through ``Header.comments``.  For example::

       >>> header.cards['NAXIS'].comment
       Number of axes
       >>> header.comments['NAXIS']
       Number of axes

  * ``Card`` objects can now be used interchangeably with
    ``(keyword, value, comment)`` 3-tuples.  They still have ``.value`` and
    ``.comment`` attributes as well.  The ``.key`` attribute has been renamed
    to ``.keyword`` for consistency, though ``.key`` is still supported (but
    deprecated).

- Memory mapping is now used by default to access HDU data.  That is,
  ``pyfits.open()`` uses ``memmap=True`` as the default.  This provides better
  performance in the majority of use cases--there are only some I/O intensive
  applications where it might not be desirable.  Enabling mmap by default also
  enabled finding and fixing a large number of bugs in PyFITS' handling of
  memory-mapped data (most of these bug fixes were backported to PyFITS
  3.0.5). (#85)

  * A new ``pyfits.USE_MEMMAP`` global variable was added.  Set
    ``pyfits.USE_MEMMAP = False`` to change the default memmap setting for
    opening files.  This is especially useful for controlling the behavior in
    applications where pyfits is deeply embedded.

  * Likewise, a new ``PYFITS_USE_MEMMAP`` environment variable is supported.
    Set ``PYFITS_USE_MEMMAP = 0`` in your environment to change the default
    behavior.

- The ``size()`` method on HDU objects is now a ``.size`` property--this
  returns the size in bytes of the data portion of the HDU, and in most cases
  is equivalent to ``hdu.data.nbytes`` (#83)

- ``BinTableHDU.tdump`` and ``BinTableHDU.tcreate`` are deprecated--use
  ``BinTableHDU.dump`` and ``BinTableHDU.load`` instead.  The new methods
  output the table data in a slightly different format from previous versions,
  which places quotes around each value.  This format is compatible with data
  dumps from previous versions of PyFITS, but not vice-versa due to a parsing
  bug in older versions.

- Likewise the ``pyfits.tdump`` and ``pyfits.tcreate`` convenience function
  versions of these methods have been renamed ``pyfits.tabledump`` and
  ``pyfits.tableload``.  The old deprecated, but currently retained for
  backwards compatibility. (r1125)

- A new global variable ``pyfits.EXTENSION_NAME_CASE_SENSITIVE`` was added.
  This serves as a replacement for ``pyfits.setExtensionNameCaseSensitive``
  which is not deprecated and may be removed in a future version.  To enable
  case-sensitivity of extension names (i.e. treat 'sci' as distict from 'SCI')
  set ``pyfits.EXTENSION_NAME_CASE_SENSITIVE = True``.  The default is
  ``False``. (r1139)

- A new global configuration variable ``pyfits.STRIP_HEADER_WHITESPACE`` was
  added.  By default, if a string value in a header contains trailing
  whitespace, that whitespace is automatically removed when the value is read.
  Now if you set ``pyfits.STRIP_HEADER_WHITESPACE = False`` all whitespace is
  preserved. (#146)

- The old ``classExtensions`` extension mechanism (which was deprecated in
  PyFITS 3.0) is removed outright.  To our knowledge it was no longer used
  anywhere. (r1309)

- Warning messages from PyFITS issued through the Python warnings API are now
  output to stderr instead of stdout, as is the default.  PyFITS no longer
  modifies the default behavior of the warnings module with respect to which
  stream it outputs to. (r1319)

- The ``checksum`` argument to ``pyfits.open()`` now accepts a value of
  'remove', which causes any existing CHECKSUM/DATASUM keywords to be ignored,
  and removed when the file is saved.

New Features
^^^^^^^^^^^^

- Added support for the proposed "FITS" extension HDU type.  See
  http://listmgr.cv.nrao.edu/pipermail/fitsbits/2002-April/001094.html.  FITS
  HDUs contain an entire FITS file embedded in their data section.  `FitsHDU`
  objects work like other HDU types in PyFITS.  Their ``.data`` attribute
  returns the raw data array.  However, they have a special ``.hdulist``
  attribute which processes the data as a FITS file and returns it as an
  in-memory HDUList object.  FitsHDU objects also support a
  ``FitsHDU.fromhdulist()`` classmethod which returns a new `FitsHDU` object
  that embeds the supplied HDUList. (#80)

- Added a new ``.is_image`` attribute on HDU objects, which is True if the HDU
  data is an 'image' as opposed to a table or something else.  Here the
  meaning of 'image' is fairly loose, and mostly just means a Primary or Image
  extension HDU, or possibly a compressed image HDU (#71)

- Added an ``HDUList.fromstring`` classmethod which can parse a FITS file
  already in memory and instantiate and ``HDUList`` object from it.  This
  could be useful for integrating PyFITS with other libraries that work on
  FITS file, such as CFITSIO.  It may also be useful in streaming
  applications.  The name is a slight misnomer, in that it actually accepts
  any Python object that implements the buffer interface, which includes
  ``bytes``, ``bytearray``, ``memoryview``, ``numpy.ndarray``, etc. (#90)

- Added a new ``pyfits.diff`` module which contains facilities for comparing
  FITS files.  One can use the ``pyfits.diff.FITSDiff`` class to compare two
  FITS files in their entirety.  There is also a ``pyfits.diff.HeaderDiff``
  class for just comparing two FITS headers, and other similar interfaces.
  See the PyFITS Documentation for more details on this interface.  The
  ``pyfits.diff`` module powers the new ``fitsdiff`` program installed with
  PyFITS.  After installing PyFITS, run ``fitsdiff --help`` for usage details.

- ``pyfits.open()`` now accepts a ``scale_back`` argument.  If set to
  ``True``, this automatically scales the data using the original BZERO and
  BSCALE parameters the file had when it was first opened, if any, as well as
  the original BITPIX.  For example, if the original BITPIX were 16, this
  would be equivalent to calling ``hdu.scale('int16', 'old')`` just before
  calling ``flush()`` or ``close()`` on the file.  This option applies to all
  HDUs in the file. (#120)

- ``pyfits.open()`` now accepts a ``save_backup`` argument.  If set to
  ``True``, this automatically saves a backup of the original file before
  flushing any changes to it (this of course only applies to update and append
  mode).  This may be especially useful when working with scaled image data.
  (#121)

Changes in Behavior
^^^^^^^^^^^^^^^^^^^

- Warnings from PyFITS are not output to stderr by default, instead of stdout
  as it has been for some time.  This is contrary to most users' expectations
  and makes it more difficult for them to separate output from PyFITS from the
  desired output for their scripts. (r1319)

Bug Fixes
^^^^^^^^^

- Fixed ``pyfits.tcreate()`` (now ``pyfits.tableload()``) to be more robust
  when encountering blank lines in a column definition file (#14)

- Fixed a fairly rare crash that could occur in the handling of CONTINUE cards
  when using Numpy 1.4 or lower (though 1.4 is the oldest version supported by
  PyFITS). (r1330)

- Fixed ``_BaseHDU.fromstring`` to actually correctly instantiate an HDU
  object from a string/buffer containing the header and data of that HDU.
  This allowed for the implementation of ``HDUList.fromstring`` described
  above. (#90)

- Fixed a rare corner case where, in some use cases, (mildly, recoverably)
  malformatted float values in headers were not properly returned as floats.
  (#137)

- Fixed a corollary to the previous bug where float values with a leading zero
  before the decimal point had the leading zero unnecessarily removed when
  saving changes to the file (eg. "0.001" would be written back as ".001" even
  if no changes were otherwise made to the file). (#137)

- When opening a file containing CHECKSUM and/or DATASUM keywords in update
  mode, the CHECKSUM/DATASUM are updated and preserved even if the file was
  opened with checksum=False.  This change in behavior prevents checksums from
  being unintentionally removed. (#148)

- Fixed a bug where ``ImageHDU.scale(option='old')`` wasn't working at all--it
  was not restoring the image to its original BSCALE and BZERO values. (#162)

- Fixed a bug when writing out files containing zero-width table columns,
  where the TFIELDS keyword would be updated incorrectly, leaving the table
  largely unreadable.  This fix will be backported to the 3.0.x series in
  version 3.0.10.  (#174)


3.0.9 (2012-08-06)
------------------

This is a bug fix release for the 3.0.x series.

Bug Fixes
^^^^^^^^^

- Fixed ``Header.values()``/``Header.itervalues()`` and ``Header.items()``/
  ``Header.iteritems()`` to correctly return the different values for
  duplicate keywords (particularly commentary keywords like HISTORY and
  COMMENT).  This makes the old Header implementation slightly more compatible
  with the new implementation in PyFITS 3.1. (#127)

  .. note::
      This fix did not change the existing behavior from earlier PyFITS
      versions where ``Header.keys()`` returns all keywords in the header with
      duplicates removed.  PyFITS 3.1 changes that behavior, so that
      ``Header.keys()`` includes duplicates.

- Fixed a bug where ``ImageHDU.scale(option='old')`` wasn't working at all--it
  was not restoring the image to its original BSCALE and BZERO values. (#162)

- Fixed a bug where opening a file containing compressed image HDUs in
  'update' mode and then immediately closing it without making any changes
  caused the file to be rewritten unncessarily. (#167)

- Fixed two memory leaks that could occur when writing compressed image data,
  or in some cases when opening files containing compressed image HDUs in
  'update' mode. (#168)


3.0.8 (2012-06-04)
------------------

Changes in Behavior
^^^^^^^^^^^^^^^^^^^

- Prior to this release, image data sections did not work with scaled
  data--that is, images with non-trivial BSCALE and/or BZERO values.
  Previously, in order to read such images in sections, it was necessary to
  manually apply the BSCALE+BZERO to each section.  It's worth noting that
  sections *did* support pseudo-unsigned ints (flakily).  This change just
  extends that support for general BSCALE+BZERO values.

Bug Fixes
^^^^^^^^^

- Fixed a bug that prevented updates to values in boolean table columns from
  being saved.  This turned out to be a symptom of a deeper problem that could
  prevent other table updates from being saved as well. (#139)

- Fixed a corner case in which a keyword comment ending with the string "END"
  could, in some circumstances, cause headers (and the rest of the file after
  that point) to be misread. (#142)

- Fixed support for scaled image data and psuedo-unsigned ints in image data
  sections (``hdu.section``).  Previously this was not supported at all.  At
  some point support was supposedly added, but it was buggy and incomplete.
  Now the feature seems to work much better. (#143)

- Fixed the documentation to point out that image data sections *do* support
  non-contiguous slices (and have for a long time).  The documentation was
  never updated to reflect this, and misinformed users that only contiguous
  slices were supported, leading to some confusion. (#144)

- Fixed a bug where creating an ``HDUList`` object containing multiple PRIMARY
  HDUs caused an infinite recursion when validating the object prior to
  writing to a file. (#145)

- Fixed a rare but serious case where saving an update to a file that
  previously had a CHECKSUM and/or DATASUM keyword, but removed the checksum
  in saving, could cause the file to be slightly corrupted and unreadable.
  (#147)

- Fixed problems with reading "non-standard" FITS files with primary headers
  containing SIMPLE = F.  PyFITS has never made many guarantees as to how such
  files are handled.  But it should at least be possible to read their
  headers, and the data if possible.  Saving changes to such a file should not
  try to prepend an unwanted valid PRIMARY HDU. (#157)

- Fixed a bug where opening an image with ``disable_image_compression = True``
  caused compression to be disabled for all subsequent ``pyfits.open()`` calls.
  (r1651)


3.0.7 (2012-04-10)
------------------

Changes in Behavior
^^^^^^^^^^^^^^^^^^^

- Slices of GroupData objects now return new GroupData objects instead of
  extended multi-row _Group objects. This is analogous to how PyFITS 3.0 fixed
  FITS_rec slicing, and should have been fixed for GroupData at the same time.
  The old behavior caused bugs where functions internal to Numpy expected that
  slicing an ndarray would return a new ndarray.  As this is a rare usecase
  with a rare feature most users are unlikely to be affected by this change.

- The previously internal _Group object for representing individual group
  records in a GroupData object are renamed Group and are now a public
  interface.  However, there's almost no good reason to create Group objects
  directly, so it shouldn't be considered a "new feature".

- An annoyance from PyFITS 3.0.6 was fixed, where the value of the EXTEND
  keyword was always being set to F if there are not actually any extension
  HDUs.  It was unnecessary to modify this value.

Bug Fixes
^^^^^^^^^

- Fixed GroupData objects to return new GroupData objects when sliced instead
  of _Group record objects.  See "Changes in behavior" above for more details.

- Fixed slicing of Group objects--previously it was not possible to slice
  slice them at all.

- Made it possible to assign `np.bool_` objects as header values. (#123)

- Fixed overly strict handling of the EXTEND keyword; see "Changes in
  behavior" above. (#124)

- Fixed many cases where an HDU's header would be marked as "modified" by
  PyFITS and rewritten, even when no changes to the header are necessary.
  (#125)

- Fixed a bug where the values of the PTYPEn keywords in a random groups HDU
  were forced to be all lower-case when saving the file. (#130)

- Removed an unnecessary inline import in `ExtensionHDU.__setattr__` that was
  causing some slowdown when opening files containing a large number of
  extensions, plus a few other small (but not insignficant) performance
  improvements thanks to Julian Taylor. (#133)

- Fixed a regression where header blocks containing invalid end-of-header
  padding (i.e. null bytes instead of spaces) couldn't be parsed by PyFITS.
  Such headers can be parsed again, but a warning is raised, as such headers
  are not valid FITS. (#136)

- Fixed a memory leak where table data in random groups HDUs weren't being
  garbage collected. (#138)


3.0.6 (2012-02-29)
------------------

Highlights
^^^^^^^^^^

The main reason for this release is to fix an issue that was introduced in
PyFITS 3.0.5 where merely opening a file containing scaled data (that is, with
non-trivial BSCALE and BZERO keywords) in 'update' mode would cause the data
to be automatically rescaled--possibly converting the data from ints to
floats--as soon as the file is closed, even if the application did not touch
the data.  Now PyFITS will only rescale the data in an extension when the data
is actually accessed by the application.  So opening a file in 'update' mode
in order to modify the header or append new extensions will not cause any
change to the data in existing extensions.

This release also fixes a few Windows-specific bugs found through more
extensive Windows testing, and other miscellaneous bugs.

Bug Fixes
^^^^^^^^^

- More accurate error messages when opening files containing invalid header
  cards. (#109)

- Fixed a possible reference cycle/memory leak that was caught through more
  extensive testing on Windows. (#112)

- Fixed 'ostream' mode to open the underlying file in 'wb' mode instead of 'w'
  mode. (#112)

- Fixed a Windows-only issue where trying to save updates to a resized FITS
  file could result in a crash due to there being open mmaps on that file.
  (#112)

- Fixed a crash when trying to create a FITS table (i.e. with new_table())
  from a Numpy array containing bool fields. (#113)

- Fixed a bug where manually initializing an ``HDUList`` with a list of of
  HDUs wouldn't set the correct EXTEND keyword value on the primary HDU.
  (#114)

- Fixed a crash that could occur when trying to deepcopy a Header in Python <
  2.7. (#115)

- Fixed an issue where merely opening a scaled image in 'update' mode would
  cause the data to be converted to floats when the file is closed. (#119)


3.0.5 (2012-01-30)
------------------

- Fixed a crash that could occur when accessing image sections of files
  opened with memmap=True. (r1211)

- Fixed the inconsistency in the behavior of files opened in 'readonly' mode
  when memmap=True vs. when memmap=False.  In the latter case, although
  changes to array data were not saved to disk, it was possible to update the
  array data in memory.  On the other hand with memmap=True, 'readonly' mode
  prevented even in-memory modification to the data.  This is what
  'copyonwrite' mode was for, but difference in behavior was confusing.  Now
  'readonly' is equivalent to 'copyonwrite' when using memmap.  If the old
  behavior of denying changes to the array data is necessary, a new
  'denywrite' mode may be used, though it is only applicable to files opened
  with memmap. (r1275)

- Fixed an issue where files opened with memmap=True would return image data
  as a raw numpy.memmap object, which can cause some unexpected
  behaviors--instead memmap object is viewed as a numpy.ndarray. (r1285)

- Fixed an issue in Python 3 where a workaround for a bug in Numpy on Python 3
  interacted badly with some other software, namely to vo.table package (and
  possibly others). (r1320, r1337, and #110)

- Fixed buggy behavior in the handling of SIGINTs (i.e. Ctrl-C keyboard
  interrupts) while flushing changes to a FITS file.  PyFITS already prevented
  SIGINTs from causing an incomplete flush, but did not clean up the signal
  handlers properly afterwards, or reraise the keyboard interrupt once the
  flush was complete. (r1321)

- Fixed a crash that could occur in Python 3 when opening files with checksum
  checking enabled. (r1336)

- Fixed a small bug that could cause a crash in the `StreamingHDU` interface
  when using Numpy below version 1.5.

- Fixed a crash that could occur when creating a new `CompImageHDU` from an
  array of big-endian data. (#104)

- Fixed a crash when opening a file with extra zero padding at the end.
  Though FITS files should not have such padding, it's not explictly forbidden
  by the format either, and PyFITS shouldn't stumble over it. (#106)

- Fixed a major slowdown in opening tables containing large columns of string
  values.  (#111)


3.0.4 (2011-11-22)
------------------

- Fixed a crash when writing HCOMPRESS compressed images that could happen on
  Python 2.5 and 2.6. (r1217)

- Fixed a crash when slicing an table in a file opened in 'readonly' mode with
  memmap=True. (r1230)

- Writing changes to a file or writing to a new file verifies the output in
  'fix' mode by default instead of 'exception'--that is, PyFITS will
  automatically fix common FITS format errors rather than raising an
  exception. (r1243)

- Fixed a bug where convenience functions such as getval() and getheader()
  crashed when specifying just 'PRIMARY' as the extension to use (r1263).

- Fixed a bug that prevented passing keyword arguments (beyond the standard
  data and header arguments) as positional arguments to the constructors of
  extension HDU classes.

- Fixed some tests that were failing on Windows--in this case the tests
  themselves failed to close some temp files and Windows refused to delete them
  while there were still open handles on them. (r1295)

- Fixed an issue with floating point formatting in header values on Python 2.5
  for Windows (and possibly other platforms).  The exponent was zero-padded to
  3 digits; although the FITS standard makes no specification on this, the
  formatting is now normalized to always pad the exponent to two digits.
  (r1295)

- Fixed a bug where long commentary cards (such as HISTORY and COMMENT) were
  broken into multiple CONTINUE cards.  However, commentary cards are not
  expected to be found in CONTINUE cards.  Instead these long cards are broken
  into multiple commentary cards. (#97)

- GZIP/ZIP-compressed FITS files can be detected and opened regardless of
  their filename extension. (#99)

- Fixed a serious bug where opening scaled images in 'update' mode and then
  closing the file without touching the data would cause the file to be
  corrupted. (#101)


3.0.3 (2011-10-05)
------------------

- Fixed several small bugs involving corner cases in record-valued keyword
  cards (#70)

- In some cases HDU creation failed if the first keyword value in the header
  was not a string value (#89)

- Fixed a crash when trying to compute the HDU checksum when the data array
  contains an odd number of bytes (#91)

- Disabled an unnecessary warning that was displayed on opening compressed
  HDUs with disable_image_compression = True (#92)

- Fixed a typo in code for handling HCOMPRESS compressed images.


3.0.2 (2011-09-23)
------------------

- The ``BinTableHDU.tcreate`` method and by extension the ``pyfits.tcreate``
  function don't get tripped up by blank lines anymore (#14)

- The presence, value, and position of the EXTEND keyword in Primary HDUs is
  verified when reading/writing a FITS file (#32)

- Improved documentation (in warning messages as well as in the handbook) that
  PyFITS uses zero-based indexing (as one would expect for C/Python code, but
  contrary to the PyFITS standard which was written with FORTRAN in mind)
  (#68)

- Fixed a bug where updating a header card comment could cause the value to be
  lost if it had not already been read from the card image string.

- Fixed a related bug where changes made directly to Card object in a header
  (i.e. assigning directly to card.value or card.comment) would not propagate
  when flushing changes to the file (#69) [Note: This and the bug above it
  were originally reported as being fixed in version 3.0.1, but the fix was
  never included in the release.]

- Improved file handling, particularly in Python 3 which had a few small file
  I/O-related bugs (#76)

- Fixed a bug where updating a FITS file would sometimes cause it to lose its
  original file permissions (#79)

- Fixed the handling of TDIMn keywords; 3.0 added support for them, but got
  the axis order backards (they were treated as though they were row-major)
  (#82)

- Fixed a crash when a FITS file containing scaled data is opened and
  immediately written to a new file without explicitly viewing the data first
  (#84)

- Fixed a bug where creating a table with columns named either 'names' or
  'formats' resulted in an infinite recursion (#86)


3.0.1 (2011-09-12)
------------------

- Fixed a bug where updating a header card comment could cause the value to be
  lost if it had not already been read from the card image string.

- Changed ``_TableBaseHDU.data`` so that if the data contain an empty table a
  ``FITS_rec`` object with zero rows is returned rather than ``None``.

- The ``.key`` attribute of ``RecordValuedKeywordCards`` now returns the full
  keyword+field-specifier value, instead of just the plain keyword (#46)

- Fixed a related bug where changes made directly to Card object in a header
  (i.e. assigning directly to card.value or card.comment) would not propagate
  when flushing changes to the file (#69)

- Fixed a bug where writing a table with zero rows could fail in some cases
  (#72)

- Miscellanous small bug fixes that were causing some tests to fail,
  particularly on Python 3 (#74, #75)

- Fixed a bug where creating a table column from an array in non-native byte
  order would not preserve the byte order, thus interpreting the column array
  using the wrong byte order (#77)


3.0.0 (2011-08-23)
--------------------

- Contains major changes, bumping the version to 3.0

- Large amounts of refactoring and reorganization of the code; tried to
  preserve public API backwards-compatibility with older versions (private API
  has many changes and is not guaranteed to be backwards-compatible).  There
  are a few small public API changes to be aware of:

  * The pyfits.rec module has been removed completely.  If your version of
    numpy does not have the numpy.core.records module it is too old to be used
    with PyFITS.

  * The ``Header.ascardlist()`` method is deprecated--use the ``.ascard``
    attribute instead.

  * ``Card`` instances have a new ``.cardimage`` attribute that should be used
    rather than ``.ascardimage()``, which may become deprecated.

  * The ``Card.fromstring()`` method is now a classmethod.  It returns a new
    ``Card`` instance rather than modifying an existing instance.

  * The ``req_cards()`` method on HDU instances has changed:  The ``pos``
    argument is not longer a string.  It is either an integer value (meaning
    the card's position must match that value) or it can be a function that
    takes the card's position as it's argument, and returns True if the
    position is valid.  Likewise, the ``test`` argument no longer takes a
    string, but instead a function that validates the card's value and returns
    True or False.

  * The ``get_coldefs()`` method of table HDUs is deprecated.  Use the
    ``.columns`` attribute instead.

  * The ``ColDefs.data`` attribute is deprecated--use ``ColDefs.columns``
    instead (though in general you shouldn't mess with it directly--it might
    become internal at some point).

  * ``FITS_record`` objects take ``start`` and ``end`` as arguments instead of
    ``startColumn`` and ``endColumn`` (these are rarely created manually, so
    it's unlikely that this change will affect anyone).

  * ``BinTableHDU.tcreate()`` is now a classmethod, and returns a new
    ``BinTableHDU`` instance.

  * Use ``ExtensionHDU`` and ``NonstandardExtHDU`` for making new extension HDU
    classes.  They are now public interfaces, wheres previously they were
    private and prefixed with underscores.

  * Possibly others--please report if you find any changes that cause
    difficulties.

- Calls to deprecated functions will display a Deprecation warning.  However,
  in Python 2.7 and up Deprecation warnings are ignored by default, so run
  Python with the `-Wd` option to see if you're using any deprecated
  functions.  If we get close to actually removing any functions, we might
  make the Deprecation warnings display by default.

- Added basic Python 3 support

- Added support for multi-dimensional columns in tables as specified by the
  TDIMn keywords (#47)

- Fixed a major memory leak that occurred when creating new tables with the
  ``new_table()`` function (#49)
  be padded with zero-bytes) vs ASCII tables (where strings are padded with
  spaces) (#15)

- Fixed a bug in which the case of Random Access Group parameters names was not
  preserved when writing (#41)

- Added support for binary table fields with zero width (#42)

- Added support for wider integer types in ASCII tables; although this is non-
  standard, some GEIS images require it (#45)

- Fixed a bug that caused the index_of() method of HDULists to crash when the
  HDUList object is created from scratch (#48)

- Fixed the behavior of string padding in binary tables (where strings should
  be padded with nulls instead of spaces)

- Fixed a rare issue that caused excessive memory usage when computing
  checksums using a non-standard block size (see r818)

- Add support for forced uint data in image sections (#53)

- Fixed an issue where variable-length array columns were not extended when
  creating a new table with more rows than the original (#54)

- Fixed tuple and list-based indexing of FITS_rec objects (#55)

- Fixed an issue where BZERO and BSCALE keywords were appended to headers in
  the wrong location (#56)

- ``FITS_record`` objects (table rows) have full slicing support, including
  stepping, etc. (#59)

- Fixed a bug where updating multiple files simultaneously (such as when
  running parallel processes) could lead to a race condition with mktemp()
  (#61)

- Fixed a bug where compressed image headers were not in the order expected by
  the funpack utility (#62)
jperkin pushed a commit that referenced this pull request Aug 12, 2014
----------

- issue #146, #147: The "python" binary in MyApp.app/Contents/MacOS was
  the small stub exetable from framework builds, instead of the actual
  command-line interpreter. The result is that you couldn't use
  ``sys.executable`` to start a new interpreter, which (amongst others)
  breaks multiprocessing.

- pull request #7: Add support for PyQt5 to the sip recipe. Patch by
  Mark Montague.

- pull request #4: Copying PySide plugins was broken due to bad
  indentation.

- pull request #5: py2app was broken for python versions that
  don't use _sysconfigdata.

- issue #135: Don't sleep for a second after compiling a XIB file

- issue #134: Remove target location before copying files into
  the bundle.

- issue #133: Ensure that the application's "Framework" folder
  is on the search path for ``ctypes.util.find_library``.

- issue #132: Depend on modulegraph 0.12 to avoid build errors
  when the python code contains references to compatibility modules
  that contain SyntaxErrors for the current python version.

- Explicitly report modules that cannot be found at the end of
  the run (for non-alias builds)

  Note: This is just a warning, missing modules are not necessarily
  a problem because modulegraph can detect imports for modules that
  aren't used on OSX (for example)

- Report modules that contain syntax errors at the end of
  the run (for non-alias builds)

  Note: This is just a warning, syntax errors be valid when the
  dependency tree contains modules for the other major release
  of python (e.g a compat_py2 module that contains compatibility
  code for Python 2 and contains code that isn't valid Python 3)
jperkin pushed a commit that referenced this pull request Aug 12, 2014
## python-markdown2 2.2.1

- [issue #142 pull #141] Fix parentheses and spaces in urls.
- [issue #88 issue #95 pull #145] Fix code blocks in code blocks with syntax highlighting.
- [issue #113 issue #127 via pull #144] Fix fenced-code-blocks html and code output.
- [pull #133] Unify the -/= and ## style headers and fix TOC order
- [pull #146] tag-friendly extra to require that atx headers have a space after #
jperkin pushed a commit that referenced this pull request Mar 16, 2015
0.7.2

* Fix angle-bracket links starting with https:// at the beginning of a
  line. #126
* Fix error in footnote generation. #129
* Fix for ellipses dissapearing at the end of a line. #131
* Reimplement smartypants for a large overall speed improvement. #132
* #maruku_error will now respect :on_error => :ignore. #133
jperkin pushed a commit that referenced this pull request Apr 16, 2015
Update DEPENDS
Add test target

Upstream changes:
2015-03-14 -- 1.4.3

    * Remove three warnings: star-args, abstract-class-little-used,
      abstract-class-not-used. These warnings don't add any real value
      and they don't imply errors or problems in the code.

    * Added a new option for controlling the peephole optimizer in astroid.
      The option ``--optimize-ast`` will control the peephole optimizer,
      which is used to optimize a couple of AST subtrees. The current problem
      solved by the peephole optimizer is when multiple joined strings,
      with the addition operator, are encountered. If the numbers of such
      strings is high enough, Pylint will then fail with a maximum recursion
      depth exceeded error, due to its visitor architecture. The peephole
      just transforms such calls, if it can, into the final resulting string
      and this exhibit a problem, because the visit_binop method stops being
      called (in the optimized AST it will be a Const node).


2015-03-11 -- 1.4.2

    * Don't require a docstring for empty modules. Closes issue #261.

    * Fix a false positive with `too-few-format-args` string warning,
      emitted when the string format contained a normal positional
      argument ('{0}'), mixed with a positional argument which did
      an attribute access ('{0.__class__}').
      Closes issue #463.

    * Take in account all the methods from the ancestors
      when checking for too-few-public-methods. Closes issue #471.

    * Catch enchant errors and emit 'invalid-characters-in-docstring'
      when checking for spelling errors. Closes issue #469.

    * Use all the inferred statements for the super-init-not-called
      check. Closes issue #389.

    * Add a new warning, 'unichr-builtin', emitted by the Python 3
      porting checker, when the unichr builtin is found. Closes issue #472.

    * Add a new warning, 'intern-builtin', emitted by the Python 3
      porting checker, when the intern builtin is found. Closes issue #473.

    * Add support for editable installations.

    * The HTML output accepts the `--msg-template` option. Patch by
      Dan Goldsmith.

    * Add 'map-builtin-not-iterating' (replacing 'implicit-map-evaluation'),
      'zip-builtin-not-iterating', 'range-builtin-not-iterating', and
      'filter-builtin-not-iterating' which are emitted by `--py3k` when the
      appropriate built-in is not used in an iterating context (semantics
      taken from 2to3).

    * Add a new warning, 'unidiomatic-typecheck', emitted when an explicit
      typecheck uses type() instead of isinstance(). For example,
      `type(x) == Y` instead of `isinstance(x, Y)`. Patch by Chris Rebert.
      Closes issue #299.

    * Add support for combining the Python 3 checker mode with the --jobs
      flag (--py3k and --jobs). Closes issue #467.

    * Add a new warning for the Python 3 porting checker, 'using-cmp-argument',
      emitted when the `cmp` argument for the `list.sort` or `sorted builtin`
      is encountered.

    * Make the --py3k flag commutative with the -E flag. Also, this patch
      fixes the leaks of error messages from the Python 3 checker when
      the errors mode was activated. Closes issue #437.


2015-01-16 -- 1.4.1

    * Look only in the current function's scope for bad-super-call.
      Closes issue #403.

    * Check the return of properties when checking for not-callable.
      Closes issue #406.

    * Warn about using the input() or round() built-ins for Python 3.
      Closes issue #411.

    * Proper abstract method lookup while checking for
      abstract-class-instantiated. Closes issue #401.

    * Use a mro traversal for finding abstract methods. Closes issue #415.

    * Fix a false positive with catching-non-exception and tuples of
      exceptions.

    * Fix a false negative with raising-non-exception, when the raise used
      an uninferrable exception context.

    * Fix a false positive on Python 2 for raising-bad-type, when
      raising tuples in the form 'raise (ZeroDivisionError, None)'.

    * Fix a false positive with invalid-slots-objects, where the slot entry
      was an unicode string on Python 2. Closes issue #421.

    * Add a new warning, 'redundant-unittest-assert', emitted when using
      unittest's methods assertTrue and assertFalse with constant value
      as argument. Patch by Vlad Temian.

    * Add a new JSON reporter, usable through -f flag.

    * Add the method names for the 'signature-differs' and 'argument-differs'
      warnings. Closes issue #433.

    * Don't compile test files when installing.

    * Fix a crash which occurred when using multiple jobs and the files
      given as argument didn't exist at all.


2014-11-23 -- 1.4.0

    * Added new options for controlling the loading of C extensions.
      By default, only C extensions from the stdlib will be loaded
      into the active Python interpreter for inspection, because they
      can run arbitrary code on import. The option
      `--extension-pkg-whitelist` can be used to specify modules
      or packages that are safe to load.

    * Change default max-line-length to 100 rather than 80

    * Drop BaseRawChecker class which were only there for backward
      compat for a while now

    * Don't try to analyze string formatting with objects coming from
      function arguments. Closes issue #373.

    * Port source code to be Python 2/3 compatible. This drops the
      need for 2to3, but does drop support for Python 2.5.

    * Each message now comes with a confidence level attached, and
      can be filtered base on this level. This allows to filter out
      all messages that were emitted even though an inference failure
      happened during checking.

    * Improved presenting unused-import message. Closes issue #293.

    * Add new checker for finding spelling errors. New messages:
      wrong-spelling-in-comment, wrong-spelling-in-docstring.
      New options: spelling-dict, spelling-ignore-words.

    * Add new '-j' option for running checks in sub-processes.

    * Added new checks for line endings if they are mixed (LF vs CRLF)
      or if they are not as expected. New messages: mixed-line-endings,
      unexpected-line-ending-format. New option: expected-line-ending-format.

    * 'dangerous-default-value' no longer evaluates the value of the arguments,
      which could result in long error messages or sensitive data being leaked.
      Closes issue #282

    * Fix a false positive with string formatting checker, when
      encountering a string which uses only position-based arguments.
      Closes issue #285.

    * Fix a false positive with string formatting checker, when using
      keyword argument packing. Closes issue #288.

    * Proper handle class level scope for lambdas.

    * Handle 'too-few-format-args' or 'too-many-format-args' for format
      strings with both named and positional fields. Closes issue #286.

    * Analyze only strings by the string format checker. Closes issue #287.

    * Properly handle nested format string fields. Closes issue #294.

    * Don't emit 'attribute-defined-outside-init' if the attribute
      was set by a function call in a defining method. Closes issue #192.

    * Properly handle unicode format strings for Python 2.
      Closes issue #296.

    * Don't emit 'import-error' if an import was protected by a try-except,
      which excepted ImportError.

    * Fix an 'unused-import' false positive, when the error was emitted
      for all the members imported with 'from import' form.
      Closes issue #304.

    * Don't emit 'invalid-name' when assigning a name in an
      ImportError handler. Closes issue #302.

    * Don't count branches from nested functions.

    * Fix a false positive with 'too-few-format-args', when the format
      strings contains duplicate manual position arguments.
      Closes issue #310.

    * fixme regex handles comments without spaces after the hash.
      Closes issue #311.

    * Don't emit 'unused-import' when a special object is imported
      (__all__, __doc__ etc.). Closes issue #309.

    * Look in the metaclass, if defined, for members not found in the current
      class. Closes issue #306.

    * Don't emit 'protected-access' if the attribute is accessed using
      a property defined at the class level.

    * Detect calls of the parent's __init__, through a binded super() call.

    * Check that a class has an explicitly defined metaclass before
      emitting 'old-style-class' for Python 2.

    * Emit 'catching-non-exception' for non-class nodes. Closes issue #303.

    * Order of reporting is consistent.

    * Add a new warning, 'boolean-datetime', emitted when an instance
      of 'datetime.time' is used in a boolean context. Closes issue #239.

    * Fix a crash which ocurred while checking for 'method-hidden',
      when the parent frame was something different than a function.

    * Generate html output for missing files. Closes issue #320.

    * Fix a false positive with 'too-many-format-args', when the format
      string contains mixed attribute access arguments and manual
      fields. Closes issue #322.

    * Extend the cases where 'undefined-variable' and 'used-before-assignment'
      can be detected. Closes issue #291.

    * Add support for customising callback identifiers, by adding a new
      '--callbacks' command line option. Closes issue #326.

    * Add a new warning, 'logging-format-interpolation', emitted when .format()
      string interpolation is used within logging function calls.

    * Don't emit 'unbalanced-tuple-unpacking' when the rhs of the assignment
      is a variable length argument. Closes issue #329.

    * Add a new warning, 'inherit-non-class', emitted when a class inherits
      from something which is not a class. Closes issue #331.

    * Fix another false positives with 'undefined-variable', where the variable
      can be found as a class assignment and used in a function annotation.
      Closes issue #342.

    * Handle assignment of the string format method to a variable.
      Closes issue #351.

    * Support wheel packaging format for PyPi. Closes issue #334.

    * Check that various built-ins that do not exist in Python 3 are not
      used: apply, basestring, buffer, cmp, coerce, execfile, file, long
      raw_input, reduce, StandardError, unicode, reload and xrange.

    * Warn for magic methods which are not used in any way in Python 3:
      __coerce__, __delslice__, __getslice__, __setslice__, __cmp__,
      __oct__, __nonzero__ and __hex__.

    * Don't emit 'assigning-non-slot' when the assignment is for a property.
      Closes issue #359.

    * Fix for regression: '{path}' was no longer accepted in '--msg-template'.

    * Report the percentage of all messages, not just for errors and warnings.
      Closes issue #319.

    * 'too-many-public-methods' is reported only for methods defined in a class,
      not in its ancestors. Closes issue #248.

    * 'too-many-lines' disable pragma can be located on any line, not only the
      first. Closes issue #321.

    * Warn in Python 2 when an import statement is found without a
      corresponding `from __future__ import absolute_import`.

    * Warn in Python 2 when a non-floor division operation is found without
      a corresponding `from __future__ import division`.

    * Add a new option, 'exclude-protected', for excluding members
      from the protected-access warning. Closes issue #48.

    * Warn in Python 2 when using dict.iter*(), dict.view*(); none of these
      methods are available in Python 3.

    * Warn in Python 2 when calling an object's next() method; Python 3 uses
      __next__() instead.

    * Warn when assigning to __metaclass__ at a class scope; in Python 3 a
      metaclass is specified as an argument to the 'class' statement.

    * Warn when performing parameter tuple unpacking; it is not supported in
      Python 3.

    * 'abstract-class-instantiated' is also emitted for Python 2.
      It was previously disabled.

    * Add 'long-suffix' error, emitted when encountering the long suffix
      on numbers.

    * Add support for disabling a checker, by specifying an 'enabled'
      attribute on the checker class.

    * Add a new CLI option, --py3k, for enabling Python 3 porting mode. This
      mode will disable all other checkers and will emit warnings and
      errors for constructs which are invalid or removed in Python 3.

    * Add 'old-octal-literal' to Python 3 porting checker, emitted when
      encountering octals with the old syntax.

    * Add 'implicit-map-evaluation' to Python 3 porting checker, emitted
      when encountering the use of map builtin, without explicit evaluation.



2014-07-26  --  1.3.0

    * Allow hanging continued indentation for implicitly concatenated
      strings. Closes issue #232.

    * Pylint works under Python 2.5 again, and its test suite passes.

    * Fix some false positives for the cellvar-from-loop warnings.
      Closes issue #233.

    * Return new astroid class nodes when the inferencer can detect that
      that result of a function invocation on a type (like `type` or
      `abc.ABCMeta`) is requested. Closes #205.

    * Emit 'undefined-variable' for undefined names when using the
      Python 3 `metaclass=` argument.

    * Checkers respect priority now. Close issue #229.

    * Fix a false positive regarding W0511. Closes issue #149.

    * Fix unused-import false positive with Python 3 metaclasses (#143).

    * Don't warn with 'bad-format-character' when encountering
      the 'a' format on Python 3.

    * Add multiple checks for PEP 3101 advanced string formatting:
      'bad-format-string', 'missing-format-argument-key',
      'unused-format-string-argument', 'format-combined-specification',
      'missing-format-attribute' and 'invalid-format-index'.

    * Issue broad-except and bare-except even if the number
      of except handlers is different than 1. Fixes issue #113.

    * Issue attribute-defined-outside-init for all cases, not just
      for the last assignment. Closes issue #262.

    * Emit 'not-callable' when calling properties. Closes issue #268.

    * Fix a false positive with unbalanced iterable unpacking,
      when encountering starred nodes. Closes issue #273.

    * Add new checks, 'invalid-slice-index' and 'invalid-sequence-index'
      for invalid sequence and slice indices.

    * Add 'assigning-non-slot' warning, which detects assignments to
      attributes not defined in slots.

    * Don't emit 'no-name-in-module' for ignored modules.
      Closes issue #223.

    * Fix an 'unused-variable' false positive, where the variable is
      assigned through an import. Closes issue #196.

    * Definition order is considered for classes, function arguments
      and annotations. Closes issue #257.

    * Don't emit 'unused-variable' when assigning to a nonlocal.
      Closes issue #275.

    * Do not let ImportError propagate from the import checker, leading to crash
      in some namespace package related cases. Closes issue #203.

    * Don't emit 'pointless-string-statement' for attribute docstrings.
      Closes issue #193.

    * Use the proper mode for pickle when opening and writing the stats file.
      Closes issue #148.

    * Don't emit hidden-method message when the attribute has been
      monkey-patched, you're on your own when you do that.

    * Only emit attribute-defined-outside-init for definition within the same
      module as the offended class, avoiding to mangle the output in some cases.

    * Don't emit 'unnecessary-lambda' if the body of the lambda call contains
      call chaining. Closes issue #243.

    * Don't emit 'missing-docstring' when the actual docstring uses `.format`.
      Closes issue #281.


2014-04-30  --  1.2.1
    * Restore the ability to specify the init-hook option via the
      configuration file, which was accidentally broken in 1.2.0.

    * Add a new warning [bad-continuation] for badly indentend continued
      lines.

    * Emit [assignment-from-none] when the function contains bare returns.
      Fixes BitBucket issue #191.

    * Added a new warning for closing over variables that are
      defined in loops. Fixes Bitbucket issue #176.

    * Do not warn about \u escapes in string literals when Unicode literals
      are used for Python 2.*. Fixes BitBucket issue #151.

    * Extend the checking for unbalanced-tuple-unpacking and
      unpacking-non-sequence to instance attribute unpacking as well.

    * Fix explicit checking of python script (1.2 regression, #219)

    * Restore --init-hook, renamed accidentally into --init-hooks in 1.2.0
      (#211)

    * Add 'indexing-exception' warning, which detects that indexing
      an exception occurs in Python 2 (behaviour removed in Python 3).



2014-04-18  --  1.2.0
    * Pass the current python paths to pylint process when invoked via
      epylint.  Fixes BitBucket issue #133.

    * Add -i / --include-ids and -s / --symbols back as completely ignored
      options. Fixes BitBucket issue #180.

    * Extend the number of cases in which logging calls are detected. Fixes
      bitbucket issue #182.

    * Improve pragma handling to not detect pylint:* strings in non-comments.
      Fixes BitBucket issue #79.

    * Do not crash with UnknownMessage if an unknown message ID/name appears
      in disable or enable in the configuration. Patch by Cole Robinson.
      Fixes bitbucket issue #170.

    * Add new warning 'eval-used', checking that the builtin function `eval`
      was used.

    * Make it possible to show a naming hint for invalid name by setting
      include-naming-hint. Also make the naming hints configurable. Fixes
      BitBucket issue #138.

    * Added support for enforcing multiple, but consistent name styles for
      different name types inside a single module; based on a patch written
      by [email protected].

    * Also warn about empty docstrings on overridden methods; contributed
      by [email protected].

    * Also inspect arguments to constructor calls, and emit relevant
      warnings; contributed by [email protected].

    * Added a new configuration option logging-modules to make the list
      of module names that can be checked for 'logging-not-lazy' et. al.
      configurable; contributed by [email protected].

    * ensure init-hooks is evaluated before other options, notably load-plugins
      (#166)

    * Python 2.5 support restored: fixed small issues preventing pylint to run
      on python 2.5. Bitbucket issues #50 and #62.

    * bitbucket #128: pylint doesn't crash when looking
      for used-before-assignment in context manager
      assignments.

    * Add new warning, 'bad-reversed-sequence', for checking that the
      reversed() builtin receive a sequence (implements __getitem__ and __len__,
      without being a dict or a dict subclass) or an instance which implements
      __reversed__.

    * Mark `file` as a bad function when using python2 (closes #8).

    * Add new warning 'bad-exception-context', checking
      that `raise ... from ...` uses a proper exception context
      (None or an exception).

    * Enhance the check for 'used-before-assignment' to look
      for 'nonlocal' uses.

    * Emit 'undefined-all-variable' if a package's __all__
      variable contains a missing submodule (closes #126).

    * Add a new warning 'abstract-class-instantiated' for checking
      that abstract classes created with `abc` module and
      with abstract methods are instantied.

    * Do not warn about 'return-arg-in-generator' in Python 3.3+.

    * Do not warn about 'abstract-method' when the abstract method
      is implemented through assignment (#155).

    * Improve cyclic import detection in the case of packages, patch by Buck
      Golemon

    * Add new warnings for checking proper class __slots__:
      `invalid-slots-object` and `invalid-slots`.

    * Search for rc file in `~/.config/pylintrc` if `~/.pylintrc`
      doesn't exists (#121)

    * Don't register the newstyle checker w/ python >= 3

    * Fix unused-import false positive w/ augment assignment (#78)

    * Fix access-member-before-definition false negative wrt aug assign (#164)

    * Do not attempt to analyze non python file, eg .so file (#122)
jperkin pushed a commit that referenced this pull request May 22, 2015
Upstream changes:
1.2.0 2015-04-14 07:13:00+0000
	- [core] bundle libyaml #248 (Kazuho Oku)
	- [core] implement master-worker process mode and daemon mode (bundles Server::Starter) #258 #270 (Kazuho Oku)
	- [file] more mime-types by default #250 #254 #280 (Tatsuhiko Kubo, George Liu, Kazuho Oku)
	- [file][http1] fix connection being closed if the length of content is zero #276 (Kazuho Oku)
	- [headers] fix heap overrun during configuration #251 (Kazuho Oku)
	- [http2] do not delay sending PUSH_PROMISE #221 (Kazuho Oku)
	- [http2] reduce memory footprint under high load #271 (Kazuho Oku)
	- [http2] fix incorrect error sent when number of streams exceed the limit #268 (Kazuho Oku)
	- [proxy] fix heap overrun when building request sent to upstream #266 #269 (Moto Ishizawa, Kazuho Oku)
	- [proxy] fix laggy response in case the length of content is zero #274 #276 (Kazuho Oku)
	- [SSL] fix potential stall while reading data from client #268 (Kazuho Oku)
	- [SSL] bundle LibreSSL #236 #272 (Kazuho Oku)
	- [SSL] obtain source-level compatibility with BoringSSL #228 (Kazuho Oku)
	- [SSL] add directive `listen.ssl.cipher-preference` for controlling the selection logic of cipher-suites #233 (Kazuho Oku)
	- [SSL] disable TLS compression #252 (bisho)
	- [libh2o] fix C++ compatibility (do not use empty struct) #225 (Kazuho Oku)
	- [libh2o] search external dependencies using pkg-config #227 (Kazuho Oku)
	- [misc] fix GCC version detection bug used for controlling compiler warnings #224 (Kazuho Oku)
	- [misc] check merory allocation failures in socket pool #265 (Tatsuhiko Kubo)

1.1.1 2015-03-09 06:12:00+0000
	- [proxy] fix crash on NetBSD when upstream connection is persistent #217 (Kazuho Oku)
	- [misc] fix compile error on FreeBSD #211 #212 (Syohei Yoshida)

1.1.0 2015-03-06 06:41:00+0000
	- [core][file] send redirects appending '/' as abs-path redirects #209 (Kazuho Oku)
	- [headers] add directives for manipulating response headers #204 (Kazuho Oku)
	- [http2] do not send a corrupt response if header value is longer than 126 bytes #193 (Kazuho Oku)
	- [http2] fix interoperability issue with nghttp2 0.7.5 and above 5c42eb1 (Kazuho Oku)
	- [proxy] send `via` header to upstream #191 (Kazuho Oku)
	- [proxy] resolve hostname asynchronously #207 (Kazuho Oku)
	- [proxy] distribute load between upstream servers (using `rand()`) #208 (Kazuho Oku)
	- [proxy] fix a bug that may cause a corrupt `location` header being forwarded #190 (Kazuho Oku)
	- [reproxy] add support for `x-reproxy-url` header #187 #197 (Daisuke Maki, Kazuho Oku)

1.0.1 2015-02-23 05:50:00+0000
	- [core] change backlog size from 65,536 to 65,535 #183 (Tatsuhiko Kubo)
	- [http2] fix assertion failure in HPACK encoder #186 (Kazuho Oku)
	- [http2] add `extern` to some global variables that were not marked as such #178 (Kazuho Oku)
	- [proxy] close persistent upstream connection if client abruptly closes the stream #188 (Kazuho Oku)
	- [proxy] fix internal state corruption in case upstream sends response headers divided into multpile packets #189 (Kazuho Oku)
	- [SSL] add host header to OCSP request #176 (Masaaki Hirose)
	- [libh2o] do not require header files under `deps/` when using libh2o #173 (Kazuho Oku)
	- [libh2o] fix compile error in examples when compiled with `H2O_USE_LIBUV=0` #177 (Kazuho Oku)
	- [libh2o] in example, add missing / after the reference path #180 (Matthieu Garrigues)
	- [misc] fix invalid HTML in sample page #175 (Deepak Prakash)

1.0.0 2015-02-18 20:01:00+0000
	- [core] add redirect handler #150 (Kazuho Oku)
	- [core] add `pid-file` directive for specifying the pid file #164 (Kazuho Oku)
	- [core] connections accepted by host-specific listeners should not be handled by handlers of other hosts #163 (Kazuho Oku)
	- [core] (FreeBSD) fix a bug that prevented the standalone server from booting when run as root #160 (Kazuho Oku)
	- [core] switch to pipe-based interthread messaging #154 (Kazuho Oku)
	- [core] use kqueue on all BSDs #156 (Kazuho Oku)
	- [access-log] more logging directives: %H, %m, %q, %U, %V, %v #158 (Kazuho Oku)
	- [access-log] bugfix: header values were not logged when specified using uppercase letters #157 (Kazuho Oku)
	- [file] add application/json to defalt MIME-types #159 (Tatsuhiko Kubo)
	- [http2] add support for the finalized version of HTTP/2 #166 (Kazuho Oku)
	- [http2] fix issues reported by h2spec v0.0.6 #165 (Kazuho Oku)
	- [proxy] merge the cookie headers before sending to upstream #161 (Kazuho Oku)
	- [proxy] simplify the configuration directives (and make persistent upstream connections as default) #162 (Kazuho Oku)
	- [SSL] add configuration directive to preload DH params #148 (Jeff Marrison)
	- [libh2o] separate versioning scheme using H2O_LIBRARY_VERSION_* #167 (Kazuho Oku)

0.9.2 2015-02-10 04:17:00+0000
	- [core] graceful shutdown on SIGTERM #119 (Kazuho Oku)
	- [core] less TCP errors under high load #81 (Kazuho Oku)
	- [file] add support for HEAD requests #110 (Mark Hoersken)
	- [http1] MSIE workaround (send `Cache-Control: private` in place of Vary) #114 (Kazuho Oku)
	- [http2] support server-push #133 (Kazuho Oku)
	- [http2] fix spurious RST_STREAMS being sent #132 (Kazuho Oku)
	- [http2] weight-based distribution of bandwidth #135 (Kazuho Oku)
	- [proxy] added configuration directive `proxy.preserve-host` #112 (Masahiro Nagano)
	- [proxy] sends X-Forwarded-For and X-Forwarded-Proto headers #112 (Masahiro Nagano)
	- [proxy] stability improvements #61 (Kazuho Oku)
	- [misc] adjustments to make the source code more analyzer-friendly #113,#117 (Nick Desaulniers, Maks Naumov)

0.9.1 2015-01-19 21:13:00+0000
	- added configuration directives: ssl/cipher-suite, ssl/ocsp-update-interval, ssl/ocsp-max-failures, expires, file.send-gzip
	- [http2] added support for draft-16 (draft-14 is also supported)
	- [http2] dependency-based prioritization
	- [http2] improved conformance to the specification
	- [SSL] OCSP stapling (automatically enabled by default)
	- [SSL] fix compile error with OpenSSL below version 1.0.1
	- [file] content negotiation (serving .gz files)
	- [expires] added support for Cache-Control: max-age
	- [libh2o] libh2o and the header files installed by `make install`
	- [libh2o] fix compile error when used from C++
	- automatically setuids to nobody when run as root and if `user` directive is not set
	- automatically raises RLIMIT_NOFILE
	- uses all CPU cores by default
	- now compiles on NetBSD and other BSD-based systems
jperkin pushed a commit that referenced this pull request Jun 1, 2015
----
16.0
----

* Pull Request #130: Better error messages for errors in
  parsed requirements.
* Pull Request #133: Removed ``setuptools.tests`` from the
  installed packages.
jperkin pushed a commit that referenced this pull request Jun 17, 2015
### 1.7.2 / 2015-04-19

#### Bug fixes
* Fix #138 (a regression of #131). PR #139.

### 1.7.1 / 2015-02-24

#### Enhancements
* Add travis CI configuration (Eli Young (@elyscape), #130)
* Add Rubinius to Build Matrix with Allowed Failure (Brandon Fish
(bjfish), #132)
* Make some adjustments on tests (Abinoam Marques Jr., #133, #134)
* Drop support for Ruby 1.8 (Abinoam Marques Jr., #134)

#### Bug fixes
* Fix IO.console.winsize returning reversed column and line values (Fission Xuiptz (@fissionxuiptz)), #131)

### 1.7.0 / 2015-02-18

#### Bug fixes
* Fix correct encoding of statements to output encoding (Dāvis (davispuh), #110)
* Fix character echoing when echo is false and multibyte character is typed (Abinoam Marques Jr., #117 #118)
* Fix backspace support on Cyrillic (Abinoam Marques Jr., #115 #118)
* Fix returning wrong encoding when echo is false (Abinoam Marques Jr., #116 #118)
* Fix Question #limit and #realine incompatibilities (Abinoam Marques Jr. #113 #120)
* Fix/improve string coercion on #say (Abinoam Marques Jr., #98 #122)
* Fix #terminal_size returning nil in some terminals (Abinoam Marques Jr., #85 #123)

#### Enhancements
* Improve #format_statement String coercion (Michael Bishop
(michaeljbishop), #104)
* Update homepage url on gemspec (Rubyforge->GitHub) (Edward Anderson
(nilbus), #107)
* Update COPYING file (Vít Ondruch (voxik), #109)
* Improve multi-byte encoding support (Abinoam Marques Jr., #115 #116 #117 #118)
* Make :grey -> :gray and :light -> :bright aliases (Abinoam Marques Jr., #114 #119)
* Return the default object (as it is) when no answer given (Abinoam Marques Jr., #112 #121)
* Added test for Yaml serialization of HighLine::String (Abinoam Marques Jr., #69 #124)
* Make improvements on Changelog and Rakefile (Abinoam Marques Jr., #126 #127 #128)
jperkin pushed a commit that referenced this pull request Jun 17, 2015
## 1.3.2

### Changes

  - now works and passes tests with Lua 5.3
  - utils.import will NOT override global symbols (import 'math' caused global type() to be clobbered)
  - Updated pl.dir.file_op to return true on success and false on failure...
  - workaround for issues with pl.lapp with amalg.lua - will look at global LAPP_SCRIPT if arg[0] is nil

### Fixes

  - func was broken: do NOT use ipairs to iterate if __index is overriden!
  - issue #133 pretty.read (naively) confused by unbalanced brackets
  - xml attribute underscore fix for simple parser
  - Fix path.normpath
  - lexer: fix parsing block comments/string. fix hang on empty string.
  -  Fixed utils.execute returning different values for Lua 5.1 and Lua 5.2
  - Issue #97; fixed attempt to put a month into a day
  -  problem with tablex.count_map with custom comparison

### Features

  -  Add Python style url module for quote and unquote.
  -  stringx.quote_string, which scans for embedded long-string quote matches and escapes them by creating a long-string quote.
  -  issue #117: tablex.range now works with decreasing numbers, consistent with numerical for loop
  -  utils.import will NOT override global symbols (import 'math' caused global type() to be clobbered)
  - issue #125: DOCTYPE ignored in xml documents as well
  - Allow XML tostring() function to customize the default prefacing with <?xml...>
  - More Robust Quoted Strings
  - lapp: improved detection of unsupported short flags

## 1.3.0

### Changes

  - class: RIP base method - not possible to implement correctly
  - lapp: short flags can now always be followed directly by their value, for instance,
`-I/usr/include/lua/5.1`
  - Date: new explicit `Date.Interval` class; `toUTC/toLocal` return new object; `Date.__tostring`
always returns ISO 8601 times for exact serialization.  `+/-` explicit operators. Date objects
are explicitly flagged as being UTC or not.

### Fixes

  - class: super method fixed.
  - Date: DST is now accounted for properly.
  - Date: weekday calculation borked.

### Features

  - All tests pass with no-5.1-compatible Lua 5.2; now always uses `utils.load` and
`utils.unpack` is always available.
  - types: new module containing `utils.is_xxx` methods plus new `to_bool`.
  - class: can be passed methods in a table (see `test=klass.lua`). This is
particularly convenient for using from Moonscript.
  - general documentation improvements, e.g `class`

## 1.2.1

### Changes

  - utils.set(get)fenv always defined (_not_ set as globals for 5.2 anymore!).
    These are defined in new module pl.compat, but still available through utils.
  - class.Frodo now puts 'Frodo' in _current environment_

### Fixes

  - lapp.add_type was broken (Pete Kazmier)
  - class broke with classes that redefined __newindex
  - Set.isdisjoint was broken because of misspelling; default ctor Set() now works as expected
  - tablex.transform was broken; result now has same keys as original (CoolistheName007)
  - xml match not handling empty matches (royalbee)
  - pl.strict: assigning nil to global declares it, as God intended. (Pierre Chapuis)
  - tests all work with pl.strict
  - 5.2 compatible load now respects mode
  - tablex.difference thought that a value of `false` meant 'not present' (Andrew Starke)

### Features

  - tablex.sort(t) iterates over sorted keys, tablex.sortv(t) iterates over sorted values (Pete Kazmier)
  - tablex.readonly(t) creates a read-only proxy for a table (John Schember)
  - utils.is_empty(o) true if o==nil, o is an empty table, or o is an empty string (John Schember)
  - utils.executeex(cmd,bin) returns true if successful, return code, plus stdout and stderr output as strings. (tieske)
  - class method base for calling inherited methods (theypsilon)
  - class supports pre-constructor _create for making a custom self (used in pl.List)
  - xml HTML mode improvements - can parse non-trivial well-formed HTML documents.
    xml.parsehtml is a parse function, no longer a flag
  - if a LOM document has ordered attributes, use these when stringifying
  - xml.tostring has yet another extra parm to force prefacing with <?xml...>
  - lapp boolean flags may have `true` default
  - lapp slack mode where 'short' flags can be multi-char
  - test.asserteq etc take extra arg, which is extra level where error must be reported at
  - path.currentdir,chdir,rmdir,mkdir and dir as alias to lfs are exported; no dependencies on luafilesystem outside pl.path, making it easier to plug in different implementations.
jperkin pushed a commit that referenced this pull request Jul 24, 2015
Changes since 2.5.1:

rebar/203: Pluggable proto compilers gpb
rebar/273: Use target_dir as source of new version in generate-appups
rebar/293: Check C source dependencies in needs_compile
rebar/305: Fix compiler invocation on multiarch Linux
rebar/322: Treat vsn mismatch as warning if -k/--keep-going
rebar/336: Add details on Dialyzer with "make check"
rebar/337: Implement eflame -p/--profile support
rebar/338: Processing .app.src.script expects a single value to be returned.
rebar/344: Manually clean up paths.
rebar/351: fish shell completions for rebar
rebar/352: Add typer target (rebase of #309)
rebar/354: compiler respects 'keep_going' flag
rebar/355: Fix 'make build_plt'
rebar/356: Fix minor typo in CONTRIBUTING.md
rebar/360: Minor follow-up fixes for #293
rebar/368: Escape more characters in path (fix #367)
rebar/371: Fix cover print truncation when coverage is 100%
rebar/372: Implement eval command via nodetool
rebar/376: Remove check adding ebin to path for edoc target
rebar/378: deps: fix delete-deps if deps_dir ends with dot
rebar/382: Adapt dialyzer_reference to ba466e2d changes
rebar/385: Fix Dialyzer warning introduced in 0caf047f
rebar/386: Recompile .proto files with gpb also with prefix/suffix
rebar/386: Recompile .proto files with gpb also with prefix/suffix
rebar/386: Recompile .proto files with gpb also with prefix/suffix
rebar/399: Increase the timeout for the inttest/proto_gpb
rebar/400: add Emacs/vi header to non-dummy test modules
rebar/403: Update reference to installation notes
rebar/404: Consistently format export attributes
rebar/405: Generate cachegrind file if erlgrind is available
rebar/406: Fix deps path check in rebar_ct:collect_glob/3
rebar/408: Fix/remove duplicate console message
rebar/411: Fix app.config argument passing when using ct_run (take 2)
rebar/413: Revert "Merge pull request #386 ...
           gpb-recompilation...detection"
rebar/418: Fix #415 (reltool vsn check)
rebar/420: Mock gpb and protobuffs, in inttest, replacing external
           dependencies
rebar/421: inttest/ct3: fix travis-ci breakage
rebar/424: Gpb recompilation detection (using base compiler)
rebar/425: Copy instead of rsync gpb and protobuffs inttest mocks
rebar/426: Fixed #133. Release upgrade now handle long and short names
           properly.
rebar/428: Remove a git url in gpb and protobuffs inttest configs
rebar/430: Exit with proper status code if 'eval' fails
rebar/432: Document recursive_cmds in -r help string as well
rebar/433: inttest/ct3: fix overlong line
rebar/437: Fix .app.src.script bug introduced in b44b4f4
rebar/440: Delete obsolete file
rebar/442: .travis.yml: print information before running script
rebar/444: Fix incorrect "not an app dir" warning
rebar/445: rebar doesn't respect the order of erl_first_files given
           in the rebar.conf file
rebar/447: Support custom protobuf directory
rebar/449: Support .appup.src files
rebar/452: added 'shell' command to bash-completion
rebar/456: Generate json output from cover
rebar/458: Change env var delimiter to match non-word
rebar/459: Remove -m64 flag.
rebar/460: Add Dialyzer plugin
rebar/461: Fix OTP .appup.src processing on empty lists
rebar/463: Print more info when profiling
rebar/466: Improve test targets in Makefile
rebar/467: Refactor logic and optimizations
           in rebar_erlc_compiler:doterl_compile/4
rebar/469: Fix dialyzer warnings
rebar/470: Fix whitespace errors
rebar/471: Fix whitespace errors
rebar/475: Adapt to 18.x time api changes
rebar/477: Enable parse transformations in rebar config
rebar/478: bootstrap: better warning fix (Thanks James Fish)
rebar/482: Windows runner - CD to node root
rebar/484: /me added to THANKS
rebar/485: avoid pre-compile time errors in expand_include_lib_path
rebar/487: erlc: fix recently introduced whitespace errors
rebar/489: Fix crash on failed build console output
rebar/494: Update line number of allowed dialyzer error
rebar/496: Update PLT detail for make build_plt
rebar/499: Try one more location for the OTP_VERSION file
rebar/500: Makefile: clean only .rebar/erlcinfo
rebar/502: Don't crash if missing OTP_VERSION file (fix #350)
rebar/504: Drop shared PLTs support and change PLT name to .plt
rebar/505: rebar_utils: explain pdict use
rebar/508: rebar_core: add missing newline in log msg
rebar/509: erlc: do not crash if dep file cannot be found
rebar/510: Fix 'make deps'
rebar/511: Add and use memoization server
rebar/512: rmemo: properly handle unsupported call
jperkin pushed a commit that referenced this pull request Dec 14, 2015
Pkgsrc changes:

- use ${PREFIX} for icon path in example.jwmrc
- rename patch files per new format
- add patch comments
- take maintainership


Upstream changes list from
 http://joewing.net/projects/jwm/release-2.3.shtml

JWM v2.3 Release Notes

This is a collection of major changes between JWM v2.2 and JWM v2.3.
Version 2.3.0 was released 20150618.
You can download the latest snapshot of JWM here: jwm-1356.tar.xz.

New Features

  * Added support for client requested XRaiseWindow (issue #117).
  * Added native language support for the confirm dialog.
  * Added support for _NET_RESTACK_WINDOW (issue #118).
  * Added key binding to send the current window to a different desktop (issue
    #119).
  * Support the specification of an alternate configuration file (patch from
    Brian Bidulock)
  * Added Corner option to configure the roundedness of windows.
  * Updated the look of borders around menus and trays.
  * Add support for _NET_WM_MOVERESIZE (issue #142).
  * Add the fullscreen group option (patch from George Shaw).
  * Made window style configuration more consistent (may break old
    configuration files).
  * Add scale background type.
  * Added group options: nomin, nomax, noclose, nomove, noresize (issue #152),
    and nofullscreen (issue #163).
  * Added the Outline tag to MenuStyle to specify the color of menu outlines
    (issue #31).
  * Added the Outline tag to TrayStyle to specify the color of tray outlines.
  * To conform with GNU standards, running "make install" no longer strips the
    executable. To strip the executable, "make install?strip" can be used
    instead.
  * Added the ability to swallow the same client into a tray multiple times.
  * Added the ability to specify where the tray is hidden when auto-hide is
    enabled (issue #34).
  * Menu Includes are now loaded dynamically when a menu is shown rather than
    when JWM starts.
  * Added the sendu, sendd, sendl and sendr key bindings to send a window to a
    different desktop (issue #119).
  * Added the maxh, maxv, maxtop, maxbottom, maxleft and maxright key bindings
    (issues #120 and #157).
  * Added the ability to have separate actions per mouse button for tray
    buttons (issue #171). This is accomplished using the Button tag. For
    example:
    <TrayButton label="My Button">
      <Button mask="1">
        exec:program_for_left_click
      </Button>
      <Button mask="45">
        exec:program_for_scroll_wheel
      </Button>
    </TrayButton>
    The Button tags are optional. By default the action will use mouse button
    mask 123.
  * Add the ability to have separate actions per mouse button for clock tray
    components (issue #171) and the ability to have clock tray components run
    actions like tray buttons (issue #172).
  * Add support for more than 10 menus. Now 26 additional menus can be defined
    using the letters a through z.

Configuration Changes

The following XSLT is available to update JWM v2.2 configuration files for use
with JWM v2.3: jwm-2.3.xslt.

To convert an existing v2.2 configuration file using xsltproc, run:

cp ~/.jwmrc ~/.jwmrc.old
xsltproc jwm-2.3.xslt ~/.jwmrc.old > ~/.jwmrc

If you have multiple configuration files, it may be necessary to apply the XSLT
to some or all of them depending on what configuration options are stored in
the file.

A summary of configuration changes follows.

  * The ActiveBackground and ActiveForeground tags have been replaced by
    Background and Foreground under the Active tag. This applies to TrayStyle,
    TaskListStyle, TrayButtonStyle, PagerStyle, and MenuStyle.
  * The Inactive tag under WindowStyle has been removed. The tags that used to
    go within this tag now go directly under the WindowStyle tag.
  * The autohide attribute in Tray now determines where the tray should be
    hidden (left, right, top, bottom, or off) instead of true or false.
  * Now actions in the Clock tag must be prefixed with exec: to run an external
    program.

See the configuration documentation for documentation on all configuration
options.

Bug Fixes

  * ICCCM 2.0 WM_S selection compliance (patch from Brian Bidulock).
  * Fixed client window position after maximize/restore (issue #115, patch from
    Biran Bidulock).
  * Fixed window mapping bug with show desktop (issue #114).
  * Give focus to the top-most window after show desktop (issue #64).
  * Fix uninitialized memory when loading images (patch from Brian Bidulock).
  * Fix overlapping string issue with FriBidi (patch from Brian Bidulock).
  * Fixed non-UTF8 locales (issue #56).
  * Fixed transparency issue with some applications (issue #130).
  * Fixed focus after key events (patch from Brian Bidulock).
  * Fixed loss of focus after restoring windows (issue #131).
  * Fix setting of _NET_WM_STATE_HIDDEN when a window is minimized (issue #133,
    patch from Brian Bidulock).
  * Grab input focus at startup if not already set (issue #148).

Updated Translations

  * Russian (Aleksandr Samusenko)
  * French (Pierrick)
  * Italian (Flavio aka Man from Mars)
  * Spanish (Pablo Lezaeta)

Changes in 2.3.1 (20150628)

  * Added an option to group windows by class in the task bar. (the group
    attribute of the TrayStyle tag).
  * Fixed an issue with menus showing up across monitors when Xinerama is
    enabled.
  * Added the ability to show Motif-style handles on windows (the decorations
    attribute of WindowStyle).
  * Fixed an issue where the next/prev key bindings would not advance past a
    window that does not accept input focus.
  * Fixed the behavior of the Include tag within menus so that it no longer
    creates a submenu.
  * Menus included using Include are no longer loaded each time the menu is
    accessed.
  * Added a Dynamic submenu that will re-load its menu contents each time it is
    accessed.

Changes in 2.3.2 (20150913)

  * Restored the ability to specifiy that windows should not have an icon
    (using the "icon:" group option).
  * JWM will now try several common extensions when loading icons.
  * Fixed the height and default label for dynamic menus (issue #188).
  * Improved handling of colormaps for pseudo-color displays.
  * Fixed handling of WM_STATE on big-endian machines.
  * Fixed an issue with menus getting stuck open.
  * Removed the TaskListStyle, TrayButtonStyle, and ClockStyle configuration
    options. These options are now set from TrayStyle.
  * Added the Hungarian translation (from Hermit).
  * Added the ability to give a 3D look to menus and trays by specifying
    decorations="motif" in MenuStyle and TrayStyle respectively.
  * Fixed an issue where JWM key bindings would not be available to
    applications (issue #201).
  * JWM now highlights the first menu item when opening a menu with the
    keyboard (issue #102).
  * Add the ability to selectively enable popups (issue #189).
  * Various other fixes.

Changes in 2.3.3 (20151118)

  * JWM windows now set _NET_WM_WINDOW_TYPE (issue #223).
  * Added the Chinese translation (from Christopher Meng).
  * Added the height attribute to TaskList (issue #227).
  * Fixed tray button mouse bindings for the scroll wheel buttons (issue #229).
  * Added the restore key binding (issue #233).
  * Made middle-click on a task list item close the window (issue #232).
  * Added support for tooltips in menus (issue #111).
  * Added Portuguese (Brazil) translation (from Holmes).
  * Fixed an issue where the dock would change size if its size was not
    explicitly set (issue #238).
  * Fixed the height calculation of vertical trays (issue #228).

Changes in 2.3.4 (20151122)

  * Now a negative tray width/height can be specified to subtract from the
    screen width/height (issue #250).
  * Added the list configuration option to TrayStyle to allow displaying
    windows from all desktops (all) or only the current desktop (the default,
    desktop) in task lists.
  * Improved scaling of JPEG and SVG images (issue #253).
  * Fixed the rendering of fixed-aspect background images.
  * Added the drag group option (issue #235).
  * Fixed rendering of window borders without a title bar.
jperkin pushed a commit that referenced this pull request Mar 18, 2016
== 2.1.0 / 2016-03-13

Enhancements
- appender factories now fail explicitly on bad arguments [PR #117]
- console loggers (stdout, stderr) use `write` for compatibility [PR #127]
- allow whitespace in traced method names [PR #128]
- accessor methods for `backtrace` settings [PR #134]
- asynchronous writing from buffered appenders [PR #135]
- improve date format performance when outputting microseconds [PR #136]
- added some thread safety to log level setters [PR #137]
- use `write` everywhere instead of `syswrite` [PR #138]

Bug Fixes
- fixing encodings in tests [PR #116]
- fix Rails4 logger compatibility [PR #121]
- explicitly adding the MIT license [PR #123]
- update `object_id` format in inspect methods [PR #133]
- fixed Travis-CI tests
mamash pushed a commit that referenced this pull request Apr 6, 2016
v2.1
- Issue #156 parsedatetime 2.0 doesn't work on py26

v2.0
- Issue #155 Relative times containing years fail when computed
  from a leap day
- Issue #145 cal.parse('2015-11-18') returns November 19th 2015
- Issue #143 What is the second value returned by `parse`?
- Issue #141 Bad test case in TestComplexDateTimes
- Issue #123 update supporting files for v2.0 release
- Issue #124 Put locales into config-files (yaml)
- Issue #125 Remove extra files
- Issue #137 Year is parsed wrongly if the date is of format
  MMM DD, YYxx xx:SS bug
- Issue #136 Why I see 2016 instead of 2015?
- Issue #133 Bug: "2015-01-01" is parsed as the current date.
- Issue #126 "Unresolved attribute reference 'parse' for class
  'object'... " in Pycharm IDE. bug
- Issue #120 the pdt_locales/en_AU.py file uses en_A for
  the localID instead of en_AU
- Issue #114 Dates in the format 'YYYY-MM-DD HH:MM' give
  the incorrect month and day
- Issue #112 Document getting a time from parsedatetime
  into a standard Python structure
- Issue #110 AttributeError when running in the context
  of an HTTP request
- Issue #109 YearParseStyle is ignored for dates in MM/DD style
- Issue #107 yyyy/mm/dd date format
- Issue #105 "this week" is not parsed
- Issue #103 get UTC times from parseDT - trouble with at 9:30
  clock times being interpreted directly in UTC
- Issue #100 Fractional deltas result in incoherent results.
- PR #118 ADD: improve russian locale
- PR #117 ADD: Russian Locale
- PR #116 Fix spelling of "separator".
- PR #115 Update README.rst
- PR #113 Add datetime example to readme.
- PR #111 Allowed real number appear in text like "5.5 days ago"

v1.5
- Issue #99 Which year is implied when given just a month and day?
  Next and last? question
- Issue #96 Word boundary issues for specials (on, at, in) in nlp
- Issue #94 inconsistent application of sourceTime
  in Calendar.parseDT
- Issue #87 nlp() doesn't recognize some "next ..." expressions
- Issue #84 Afternoon? bug
- Issue #82 'last week' and 'next week' are broken
- Issue #81 parse returns default time of 0900 with dates like
  'next friday' despite passed struct_time bug
- Issue #78 Link for Travis in README is wrong
- Issue #72 Enable travis
- Issue #71 Calendar() class can not be initialized 1.4 (it's
  fine)
- Issue #66 Unexpected struct_time flag with Calendar.parse
  on HTML <a href> string
- Issue #65 NLP false positives
- Issue #63 Supporting multiple shortweekday abbreviations
- Issue #61 Short weekday abbreviations bug
- Issue #56 Parse words to numbers (thirteen => 13)
- Issue #54 testMonths fails
- commit 107c7e4655 fix for issue 95 - parsing 'next june 15'
- commit 2c0c8ec778 Fixed faulty test, "730am" parses as "73:0 am"
  which is a bug for a later day.
- commit 6f244e891d Fix "ones" parsing as "1s." Require a word
  boundary between spelled numbers and units.
- commit 035818edef Fix "1 day ago" parsing like "1d 1y ago"
  where "a" within the word "day" is interpreted as 1.
- commit 45002e6eec Fixes "next week" and similar modifier
  + unit pairs in nlp()
- commit 47d2e1d527 Fixed "last week"

v1.4
- Updated setup.py for wheel compatibility
- renamed README.txt to README.rst
- renamed MANIFEST to MANIFEST.in
- cleaned up a lot of the doc and notes
- Commit 3fc165e701 mafagafo Now it works for Python 3.4.1
- Commit d5883801e7 borgstrom Restore Python 2.6 compatibility

1.3
- Issue #45 make a new release to really fix backwards
  compatibility
- Issue #43 Please tag version 1.3
- Commit 29c5c8961d devainandor fixed Python 3 compatibility
  in pdtLocale_icu
- Commit d7304f18f7 inean Fix support for 'now' when no modifiers
  are present
- Commit 26bfc91c28 sashaacker Added parseDT method.
- Commit 848deb47e2 rmecham Added support for dotted meridians.
- Commit c821e08ce2 ccho-sevenrooms corrected misspelling
  of 'thirteen'
- Biggest change is the addition of the nlp() function
  by Geoffrey Floyd:
    nlp() function that utilizes parse() after making judgements
    about what datetime information belongs together. It makes
    logical groupings based on proximity and returns a parsed
    datetime for each matched grouping of datetime text, along
    with location info within the given inputString.
jperkin pushed a commit that referenced this pull request Apr 7, 2016
v2.1
- Issue #156 parsedatetime 2.0 doesn't work on py26

v2.0
- Issue #155 Relative times containing years fail when computed
  from a leap day
- Issue #145 cal.parse('2015-11-18') returns November 19th 2015
- Issue #143 What is the second value returned by `parse`?
- Issue #141 Bad test case in TestComplexDateTimes
- Issue #123 update supporting files for v2.0 release
- Issue #124 Put locales into config-files (yaml)
- Issue #125 Remove extra files
- Issue #137 Year is parsed wrongly if the date is of format
  MMM DD, YYxx xx:SS bug
- Issue #136 Why I see 2016 instead of 2015?
- Issue #133 Bug: "2015-01-01" is parsed as the current date.
- Issue #126 "Unresolved attribute reference 'parse' for class
  'object'... " in Pycharm IDE. bug
- Issue #120 the pdt_locales/en_AU.py file uses en_A for
  the localID instead of en_AU
- Issue #114 Dates in the format 'YYYY-MM-DD HH:MM' give
  the incorrect month and day
- Issue #112 Document getting a time from parsedatetime
  into a standard Python structure
- Issue #110 AttributeError when running in the context
  of an HTTP request
- Issue #109 YearParseStyle is ignored for dates in MM/DD style
- Issue #107 yyyy/mm/dd date format
- Issue #105 "this week" is not parsed
- Issue #103 get UTC times from parseDT - trouble with at 9:30
  clock times being interpreted directly in UTC
- Issue #100 Fractional deltas result in incoherent results.
- PR #118 ADD: improve russian locale
- PR #117 ADD: Russian Locale
- PR #116 Fix spelling of "separator".
- PR #115 Update README.rst
- PR #113 Add datetime example to readme.
- PR #111 Allowed real number appear in text like "5.5 days ago"

v1.5
- Issue #99 Which year is implied when given just a month and day?
  Next and last? question
- Issue #96 Word boundary issues for specials (on, at, in) in nlp
- Issue #94 inconsistent application of sourceTime
  in Calendar.parseDT
- Issue #87 nlp() doesn't recognize some "next ..." expressions
- Issue #84 Afternoon? bug
- Issue #82 'last week' and 'next week' are broken
- Issue #81 parse returns default time of 0900 with dates like
  'next friday' despite passed struct_time bug
- Issue #78 Link for Travis in README is wrong
- Issue #72 Enable travis
- Issue #71 Calendar() class can not be initialized 1.4 (it's
  fine)
- Issue #66 Unexpected struct_time flag with Calendar.parse
  on HTML <a href> string
- Issue #65 NLP false positives
- Issue #63 Supporting multiple shortweekday abbreviations
- Issue #61 Short weekday abbreviations bug
- Issue #56 Parse words to numbers (thirteen => 13)
- Issue #54 testMonths fails
- commit 107c7e4655 fix for issue 95 - parsing 'next june 15'
- commit 2c0c8ec778 Fixed faulty test, "730am" parses as "73:0 am"
  which is a bug for a later day.
- commit 6f244e891d Fix "ones" parsing as "1s." Require a word
  boundary between spelled numbers and units.
- commit 035818edef Fix "1 day ago" parsing like "1d 1y ago"
  where "a" within the word "day" is interpreted as 1.
- commit 45002e6eec Fixes "next week" and similar modifier
  + unit pairs in nlp()
- commit 47d2e1d527 Fixed "last week"

v1.4
- Updated setup.py for wheel compatibility
- renamed README.txt to README.rst
- renamed MANIFEST to MANIFEST.in
- cleaned up a lot of the doc and notes
- Commit 3fc165e701 mafagafo Now it works for Python 3.4.1
- Commit d5883801e7 borgstrom Restore Python 2.6 compatibility

1.3
- Issue #45 make a new release to really fix backwards
  compatibility
- Issue #43 Please tag version 1.3
- Commit 29c5c8961d devainandor fixed Python 3 compatibility
  in pdtLocale_icu
- Commit d7304f18f7 inean Fix support for 'now' when no modifiers
  are present
- Commit 26bfc91c28 sashaacker Added parseDT method.
- Commit 848deb47e2 rmecham Added support for dotted meridians.
- Commit c821e08ce2 ccho-sevenrooms corrected misspelling
  of 'thirteen'
- Biggest change is the addition of the nlp() function
  by Geoffrey Floyd:
    nlp() function that utilizes parse() after making judgements
    about what datetime information belongs together. It makes
    logical groupings based on proximity and returns a parsed
    datetime for each matched grouping of datetime text, along
    with location info within the given inputString.
jperkin pushed a commit that referenced this pull request Jun 20, 2016
Version 1.4.1 (2016-06-14)
- activate-global-python-argcomplete runs on Homebrew out of the box

Version 1.4.0 (2016-06-10)
- Correctly handle suggestions for positionals with variable-length
  nargs. Thanks to @evanunderscore (#132, #133).
jperkin pushed a commit that referenced this pull request Jul 17, 2016
Fix CPU detection patch while here.

Changes from 2.5.2 to 2.6.0
===========================

- Introduced a new re_evaluate() function for re-evaluating the
  previous executed array expression without any check.  This is meant
  for accelerating loops that are re-evaluating the same expression
  repeatedly without changing anything else than the operands.  If
  unsure, use evaluate() which is safer.

- The BLOCK_SIZE1 and BLOCK_SIZE2 constants have been re-checked in
  order to find a value maximizing most of the benchmarks in bench/
  directory.  The new values (8192 and 16 respectively) give somewhat
  better results (~5%) overall.  The CPU used for fine tuning is a
  relatively new Haswell processor (E3-1240 v3).

- The '--name' flag for `setup.py` returning the name of the package
  is honored now (issue #215).


Changes from 2.5.1 to 2.5.2
===========================

- conj() and abs() actually added as VML-powered functions, preventing
  the same problems than log10() before (PR #212).  Thanks to Tom Kooij
  for the fix!


Changes from 2.5 to 2.5.1
=========================

- Fix for log10() and conj() functions.  These produced wrong results
  when numexpr was compiled with Intel's MKL (which is a popular build
  since Anaconda ships it by default) and non-contiguous data (issue
  #210).  Thanks to Arne de Laat and Tom Kooij for reporting and
  providing a nice test unit.

- Fix that allows numexpr-powered apps to be profiled with pympler.
  Thanks to @nbecker.


Changes from 2.4.6 to 2.5
=========================

- Added locking for allowing the use of numexpr in multi-threaded
  callers (this does not prevent numexpr to use multiple cores
  simultaneously).  (PR #199, Antoine Pitrou, PR #200, Jenn Olsen).

- Added new min() and max() functions (PR #195, CJ Carey).


Changes from 2.4.5 to 2.4.6
===========================

- Fixed some UserWarnings in Solaris (PR #189, Graham Jones).

- Better handling of MSVC defines. (#168, Francesc Alted).


Changes from 2.4.4 to 2.4.5
===========================

- Undone a 'fix' for a harmless data race.  (#185 Benedikt Reinartz,
  Francesc Alted).

- Ignore NumPy warnings (overflow/underflow, divide by zero and
  others) that only show up in Python3.  Masking these warnings in
  tests is fine because all the results are checked to be
  valid. (#183, Francesc Alted).


Changes from 2.4.3 to 2.4.4
===========================

- Fix bad #ifdef for including stdint on Windows (PR #186, Mike Sarahan).


Changes from 2.4.3 to 2.4.4
===========================

* Honor OMP_NUM_THREADS as a fallback in case NUMEXPR_NUM_THREADS is not
  set. Fixes #161. (PR #175, Stefan Erb).

* Added support for AppVeyor (PR #178 Andrea Bedini)

* Fix to allow numexpr to be imported after eventlet.monkey_patch(),
  as suggested in #118 (PR #180 Ben Moran).

* Fix harmless data race that triggers false positives in ThreadSanitizer.
  (PR #179, Clement Courbet).

* Fixed some string tests on Python 3 (PR #182, Antonio Valentino).


Changes from 2.4.2 to 2.4.3
===========================

* Comparisons with empty strings work correctly now.  Fixes #121 and
  PyTables #184.

Changes from 2.4.1 to 2.4.2
===========================

* Improved setup.py so that pip can query the name and version without
  actually doing the installation.  Thanks to Joris Borgdorff.

Changes from 2.4 to 2.4.1
=========================

* Added more configuration examples for compiling with MKL/VML
  support.  Thanks to Davide Del Vento.

* Symbol MKL_VML changed into MKL_DOMAIN_VML because the former is
  deprecated in newer MKL.  Thanks to Nick Papior Andersen.

* Better determination of methods in `cpuinfo` module.  Thanks to Marc
  Jofre.

* Improved NumPy version determination (handy for 1.10.0).  Thanks
  to Åsmund Hjulstad.

* Benchmarks run now with both Python 2 and Python 3.  Thanks to Zoran
  Plesivčak.

Changes from 2.3.1 to 2.4
=========================

* A new `contains()` function has been added for detecting substrings
  in strings.  Only plain strings (bytes) are supported for now.  See
  PR #135 and ticket #142.  Thanks to Marcin Krol.

* New version of setup.py that allows better management of NumPy
  dependency.  See PR #133.  Thanks to Aleks Bunin.

Changes from 2.3 to 2.3.1
=========================

* Added support for shift-left (<<) and shift-right (>>) binary operators.
  See PR #131. Thanks to fish2000!

* Removed the rpath flag for the GCC linker, because it is probably
  not necessary and it chokes to clang.
jperkin pushed a commit that referenced this pull request Aug 4, 2016
Upstream changes:
5.90111 - 2016-07-20
  - Improved documentation around some of the unicode changes; tests (melmothx++)

5.90110 - 2016-07-20
  - Better catching of HTTP style exceptions so that you can reliable use one to
    override many core method.
  - Documention on better ways to catch and handle Unicode errors
  - We now check the unicode in your URL request queries and raise an error if the
    check fails.  This was done to be consistent with what we do in other parts of
    the code (such as in args, or POSTed parameters).  If this breaks your code in
    ways you don't want to fix, you may disable this using the global configuration
    setting, "do_not_check_query_encoding".
  - Removed configuration setting, "decode_query_using_global_encoding" since it no
    longer does anything useful.  Query decoding follows from whatever you set the
    global encoding to, unless you specify an alternative or to not decode.

5.90106 - 2016-07-05
  - Fixed regression in debug screen rendering of the private names in chained
    actions caused by commit 5dd46e24eedec447bdfbc4061ed683b5a17a7b0c.
  - Fixed incorrect date entered for the release of 5.90105
  - Fixed some incorrect code in a test case that might be causing test fails
    in some configurations.

5.90105 - 2016-06-08
  - Tweak some test cases to try and prevent them from failing in limited cases.
  - Changed how we compose traits onto the response, request, and stats class so
    that we compose just once at setup time (performance optimization).  Also added
    a debug screen at startup to display composed classes to help with debugging.
  - Fixed a regressed caused by the changes we made to the way ->state works so that
    now when you forward to an action and that action throws an exception, $c->state
    is set to 0, instead of the value of the exeption (this is to be as indicated by
    the documentation). (cventers++ for reported bug and test case).
  - Changed the code that detects if you try to set HTTP headers after headers are
    finalized to not warn if you are just requested the response header state.  Tweaked
    this error message a bit to help people understand it.

5.90104 - 2016-04-04
  - Merged pull request #131, fix for noisy debug logs when used type constraints
    in your actions.  Additional changes to the developer debug screen output to
    improve reporting details.
  - Merged pull request #133, fix for case when a file upload filename contains
    wide characters which caused the filename to not appear in the uploads hash.
jperkin pushed a commit that referenced this pull request Mar 28, 2017
Changelog:
Version 9.1.4 Feb 2 2017

    [major] Make error message for password reset form more generic - core/#27011
    [major] When sharing autocomplete is disabled, also disable for the email field - core/#26504
    [major] Add command to clean up invalid/expired remote storages - core/#26379
    [major] Fix encryption key storage when using LDAP home folder rules - core/#26820
    [major] Properly react on memcache errors - core/#25692
    [major] Fix random normalizedPathCache log messages / garbage collection issues from PHP 7 - core/#22370
    [major] Properly deal with inconsistent LDAP/memcache or user/group manager responses - core/#26871
    [major] Added configreport app which will help with better bug reports - configreport/#6
    [minor] Fix syncing of file names with colon followed by a number - core/#25479
    [minor] Prevent empty user uid from LDAP - user_ldap/#6
    [minor] Prevent repeated log messages when dealing with broken picture files - core/#26758
    [minor] Fix group-enable option in apps page when memcache is enabled - core/#26638
    [minor] Add AVMaxFileSize config option - files_antivirus/#133
    [minor] Reduce number of federated share requests when dealing with non-existing entries - core/#26324
    [minor] Remove obsolete legacy storage repair routine - core/#26774
    [minor] Fix broken remote avatar image in activities tab - activity/#529
    [minor] When grouping duplicate shares, sort by stime then id - core/#25830
    [minor] Make file upload post hooks consistent between chunking and non-chunking mode - core/#26387
    [minor] Fix wrong German translation in upload progress bar by using momentjs library - core/#26804
    [minor] Skip unavailable storages in background file scan instead of failing - core/#26055
    [minor] Update PHP 7.1 incompatibility warning - core/#26982
    [minor] Warning notification when uploading 4+ GB file in IE11 - core/#27004
jperkin pushed a commit that referenced this pull request Apr 20, 2017
This is a relatively minor release of Miller, containing feature
requests and bugfixes while I've been working on the Windows port
(which is nearly complete).

Features:

    JSON arrays: as described here, Miller being a tabular data
    processor isn't well-position to handle arbitrary JSON. (See
    jq for that.) But as of 5.1.0, arrays are converted to maps
    with integer keys, which are then at least processable using
    Miller. Details are here. The short of it is that you now have
    three options for the main mlr executable:

--json-map-arrays-on-input    Convert JSON array indices to Miller
map keys. (This is the default.) --json-skip-arrays-on-input
Disregard JSON arrays.  --json-fatal-arrays-on-input  Raise a fatal
error when JSON arrays are encountered in the input.

This resolves #133.

    The new mlr fraction verb makes possible in a few keystrokes
    what was only possible before using two-pass DSL logic: here
    you can turn numerical values down a column into their
    fractional/percentage contribution to column totals, optionally
    grouped by other key columns.

    The DSL functions strptime and strftime now handle fractional
    seconds. For parsing, use %S format as always; for formatting,
    there are now %1S through %9S which allow you to configure a
    specified number of decimal places. The return value from
    strptime is now floating-point, not integer, which is a minor
    backward incompatibility not worth labeling this release as
    6.0.0. (You can work around this using int(strptime(...)).) The
    DSL functions gmt2sec and sec2gmt, which are keystroke-savers
    for strptime and strftime, are similarly modified, as is the
    sec2gmt verb. This resolves #125.

    A few nearly-standalone programs -- which do not have anything
    to do with record streams -- are packaged within the Miller.
    (For example, hex-dump, unhex, and show-line-endings commands.)
    These are described here.

    The stats1 and merge-fields verbs now support an antimode
    aggregator, in addition to the existing mode aggregator.

    The join verb now by default does not require sorted input,
    which is the more common use case. (Memory-parsimonious joins
    which require sorted input, while no longer the default, are
    available using -s.) This another minor backward incompatibility
    not worth making a 6.0.0 over. This resolves #134.

    mlr nest has a keystroke-saving --evar option for a common use
    case, namely, exploding a field by value across records.

Documentation:

    The DSL reference now has per-function descriptions.

    There is a new feature-counting example in the cookbook.

Bugfixes:

    mlr join -j -l was not functioning correctly. This resolves
    #136.

    JSON escapes on output (\t and so on) were incorrect. This
    resolves #135.
jperkin pushed a commit that referenced this pull request Jun 21, 2017
V0.92
   added a few arguments to calls added by fmazu. Allows it to compile.

V0.91
   only made the tag point to the proper commit.  --REW
   script now handles that situation (aborted release script) better.

V0.90
   only fixed the release script. Should now contain fmaxullo's
   patch. --rew
   fmazullo (1):
         Add AS number to json output

V0.89
   only made the tag point to the proper commit.  --REW

V0.88
   Antonio Querubin (3):
         Merge remote-tracking branch 'origin/master' into newdns
         Need to error check getnameinfo().
         Merge remote-tracking branch 'origin/master' into newdns

   David Hill (1):
         include <sys/select.h> for fd_set

   Jakub Wilk (1):
         Fix typos

   Joe Bruggeman (2):
         Replace all tabs tabs in net.c with spaces
         cleanup the if blocks in net.c to improve readability

   Jürgen Weigert (1):
         Mention + and - keys in the man page

   Kacper Michajłow (2):
         Relax mtr-packet search rules.
         Add missing errno.h include.

   Matt Kimball (20):
         Added mtr-packet subprocess
         test: Fix mtr-packet tests for Python 3
         cmdline: multiple host names dropped all but one host  (issue #168)
         mtr-packet: IPv6 support
         mtr-packet: UDP probe support
         mtr-packet: packet customization options (size, fill, mark, tos)
         mtr-packet: TCP and SCTP probes
         mtr-packet: MPLS decoding and local UDP port usage
         mtr-packet: allow local address binding
         Merge branch mtr-packet into 'master'
         mtr-packet: drop capabilities + using BSD's linked lists for probes
         build: moved front-end source into ui subdir
         build: use AC_CHECK_LIB for ncurses, rather than pkg-tool
         mtr-packet: Fall back to IPv4 only support if IPv6 sockets fail to open
         build: if linking with ncurses fails, try curses  (for NetBSD)
         build: Fix Solaris build issues
         build: fix compiler warnings when for OpenBSD, NetBSD and Solaris
         mtr-packet: Report probe status on host unreachable (Cygwin)
         cleanup: Fix #ifdef structure which confuses 'ident'
         cleanup: reindented C source with GNU indent

   Narthorn (2):
         Initialize dns process before opening display
         Add displaymode 2 back in

   R.E. Wolff (19):
         Merge branch 'newdns' of https://github.com/traviscross/mtr into newdns
         Merge branch 'newdns'
         fixed double printout of start time, issue 131
         Updated NEWS as in v0.87.1
         format sent and rcvd fields correctly for big numbers #66
         increased default unknownhosts #92 #132 #130     (I give in).
         Merge branch 'master' of github.com:traviscross/mtr
         fixed no-gtk build bug introduced with e2d898cc
         more cleanup
         Partial reverse of 6bb5b6b3b.
         re-initialize ipinfo_no and -max. Fixes #161.
         Merge branch 'master' of github.com:traviscross/mtr
         fixed dynamic DNS on/off switch. Fixed #160
         header alignment issue found&fixed by meingtsla. Fixes #164
         Merge branch 'master' of github.com:traviscross/mtr
         asn fix from meingtsla, fixes #163. Pong!
         put ifdefs around IPV6 only part. Fixes #184
         More whitespace mangling for consistency in net.c
         The release script bumped the version number

   Roger Wolff (22):
         New DNS works for IPV4....
         moved towards IPV6 compatibilty...
         removed the include mess...
         merged antonios's bufsize fixes
         Merge branch 'master' of github.com:traviscross/mtr into newdns
         AQ: Added include for redhat, and fixed salen for BSD
         removed last debug output from dns.c
         One more patch to fix a getnameinfo corruption problem. -- AQ

   Rogier Wolff (5):
         removed AC check for features newdns doesn't use
         Fixed pull #133 another way....
         fixed #27 and #35 where the fix was tested a long time ago.
         fixed #141 compile without SCTP if not available
         fixed typo.

   Sami Kerola (122):
         warnings: remove unnecessary file
         usage: add short and long options and descriptions to usage()
         warnings: stop variable shadowing
         dns: remove unnecessary dns_events() function
         posix: replace bzero() and index() with modern equivelants
         warnings: stop reassigning a value before the old one has been used
         warnings: remove code that cannot be reached
         warnings: fix printf data types
         cleanup: remove unnecessary null check
         build-sys; do not use subdirectory object
         man: use url macro to urls and fix reference manual notations
         build-sys: default to ,/configure --enable-silent-rules
         warnings: do not take abs() when data type is unsigned
         warnings: mark unused function input variables
         warnings: fix couple unsigned vs signed variable comparisions
         warnings: multiply timeval seconds only when the value is small
         warnings: fix some missed unsigned vs signed variable comparisions
         comment: add value range note to initialization
         cast: do not downgrade to float when double should be used
         warnings: remove dead code
         build-sys: fix make distcheck
         build-sys: remove old dist Makefile kludge
         build-sys: use build version script from gnulib
         build-sys: improve configure.am
         build-sys: require automake 1.11.6 or newer
         warnings: fix unused variable when ./configure --without-gtk is used
         readability: always use EXIT_* definitions from stdlib.h
         cleanup: remove unnecessary function
         warnigns: add void to functions that do not take any arguments
         build-sys: fix --without-ipinfo regressions
         build-sys: fix ./configure --disable-ipv6
         warnings: fix --disable-ipv6 --without-ipinfo compilation warnings
         build-sys: check pkg-config availability
         build-sys: use pkg-config to find gtk+-2.0
         build-sys: use pkg-config to find ncurses
         build-sys: get rid of double negative ipinfo autotools settings
         cleanup: remove NO_SPLIT preprocessor check
         build-sys: simplify finding resolver library
         build-sys: remove unused autoconf check values
         cleanup: remove obsolete herror() function
         usage: reflect ./configure choices in available command line options
         cleanup: remove preprocessor missing functions go-arounds
         usage: be careful when parsing numeric user input
         usage: use error(3) error-reporting function
         cleanup: move max port number to be a define in net.h
         build-sys: use system getopt_long() when it is available
         build-sys: tell function locality explicitly
         portability: fix float max check from values.h
         portability: MacOS does not have error() function
         portability: fix MacOS libresolv usage
         data types: set static strings to be read-only
         cleanup: remove redundant redeclaration
         data types: move variable declaration from header to .c file
         data types: check with smatch everything is in resonable scope
         warnings: fix use of uninitialized warning
         data types: get rid of all globals that are easy to remove
         usability: fix --mark documentation
         docs: make manual page versioning automatic
         data types: move global data to control structures
         data types: make control structure smaller
         data types: move rest of the global variables to control structures
         crash fix: make --xml not to dump core
         warnings: correct function pointer prototype argument
         warnings: do not use zero as NULL
         warnings: avoid vla when malloc() is more appropriate
         usability: print usage() if unknown options are used
         cleanup: use definition for a magic value appearing twice in code
         cleanup: remove commented out includes in dns.c
         cleanup: avoid duplicating stdint.h
         cleanup: use ICMP definitions from linux/icmp.h when possible
         cleanup: move generic utility functions to a separate file
         reliability: ensure string copy results to a null determined string
         reliability: further removal of unsave string operation
         reliability: always check malloc() return value
         reliability: always check strdup() return value
         reliability: check writing to stdout and stderr was successful
         usability: use ISO-8601 timestamp
         posix: do not use time(2) input argument
         usability: add bash-completion file
         bug fix: long option --gracetime is correct, --graceperiod is not
         performance: use fewer printw() calls to center text
         cleanup: merge two trim functions to one
         crash fix: add ctl structure to gtk Pause_clicked() handler
         crash fix: never return const string as address
         crash fix: ctl->iiwidth_len was not initialized correctly
         cleanup: make unused and const attributes to look the same
         performance: make get_iiwidth() to be const function
         cleanup: remove more/bottom labels header separation from mpls
         cleanup: set variable only if it is used
         cleanup: correct display_offset variable usage
         cleanup: remove message duplicate
         performance: set few variables read-only
         docs: add Sami Kerola to authors
         performance: make reset in net.c more effective
         portability: fix bsd build
         warnings: ensure printf will not overflow
         misc: improve random initialization
         net: fix net_reopen() initialization
         warnings: fix warnings when everything possible is turned on
         curses: simplify format_number()
         curses: use switch case in mtr_curses_keyaction()
         cleanup: remove dead code
         style: convert c++ comment style to c style
         display: avoid unnecessary switch case clauses
         curses: convert magic numbers to an enum list
         data types: move variables from a file to a function scope
         cleanup: move file scope variables to the beginning of file
         data types: move names list away from global scope
         cleanup: move definitions and struct declarations to mtr.h
         cleanup: clarify preprocessor nesting
         build-sys: use proper check to find if time_t is defined
         build-sys: enable all system extensions
         regression: fix --displaymode=2 argument
         user interface: do not allow out of range --ipinfo arguments
         cleanup: use single logic to handle conditional options
         docs: add very basic --sctp documentation to manual page
         docs: improve mtr-packet(8) manual page
         build-sys: update .gitignore file
         smatch: extern keyword is needed only in header
         smatch: fix couple warnings
         build-sys: update .gitignore file
         docs: FSF moved back in 2005

   Vlad Glagolev (1):
         respect theme foreground color

   aquerubin (5):
         Correct psize for IPv6.
         Merge updates from branch 'master' into newdns
         Merge branch 'master' into newdns
         Merge branch 'newdns' of https://github.com/aquerubin/mtr into newdns
         Fix standard deviation calculation.
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.

2 participants