forked from jsonn/pkgsrc
-
Notifications
You must be signed in to change notification settings - Fork 64
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
Fix build on SunOS for games/scummvm, FILE already exists on SunOS #110
Closed
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Redcarpet is Ruby library for Markdown processing that smells like butterflies and popcorn. Redcarpet used to be a drop-in replacement for Redcloth. This is no longer the case since version 2 -- it now has its own API, but retains the old name. Yes, that does mean that Redcarpet 2 is not backwards-compatible with the 1.X versions. Redcarpet is based on the [Sundown](https://www.github.com/vmg/sundown) library. You might want to find out more about Sundown to see what makes this Ruby library so awesome.
The SafeYAML gem provides an alternative implementation of `YAML.load` suitable for accepting user input in Ruby applications. Unlike Ruby's built-in implementation of `YAML.load`, SafeYAML's version will not expose apps to arbitrary code execution exploits (such as [the ones discovered](http://www.reddit.com/r/netsec/comments/167c11/serious_vulnerability_in_ruby_on_rails_allowing/) [in Rails in early 2013](http://www.h-online.com/open/news/item/Rails-developers-close-another-extremely-critical-flaw-1793511.html)). If you encounter any issues with SafeYAML, check out the 'Common Issues' section below. If you don't see anything that addresses the problem you're experiencing, by all means, [create an issue](https://github.com/dtao/safe_yaml/issues/new)!
Exact changes aren't available. Please refer change log in github.
Exact changes aren't available. It looks a few bug fixes.
= 2.1 === 19th Aug, 2010 (whyday) * Helpers#R now calls to_param on any object it passes in * Fix route generation issue with routes including "." (TritonDataCenter#22) * Improved tests * Improved 1.9 support * Camping::Server is now built upon Rack::Server * Add support for ERB, Haml etc through Tilt * Introducing Camping.options and Camping#set * Camping::Server only loads ActiveRecord when needed
# Changelog ## Version 3.1.0 - 2013-07-07 * Update dependencies * Switch to template contributed by brianflanagan [TritonDataCenter#8] * Add support for multiple independent heel servers [TritonDataCenter#9]
www/camping 2.1.532 www/heel 3.1.0
Cookiejar allows for parsing and returning cookies in Ruby HTTP client code.
Exact changes aren't available. Please refer change log in github.
HTTP::Cookie is a ruby library to handle HTTP cookies in a way both compliant with RFCs and compatible with today's major browsers. It was originally a part of the [Mechanize](https://github.com/sparklemotion/mechanize) library, separated as an independent library in the hope of serving as a common component that is reusable from any HTTP related piece of software. The following is an incomplete list of its features: * Its behavior is highly compatible with that of today's major web browsers. * It is based on and conforms to RFC 6265 (the latest standard for the HTTP cookie mechanism) to a high extent, with real world conventions deeply in mind. * It takes eTLD (effective TLD, also known as "Public Suffix") into account just as major browsers do, to reject cookies with an eTLD domain like "org", "co.jp", or "appspot.com". This feature is brought to you by the domain_name gem. * The number of cookies and the size are properly capped so that a cookie store does not get flooded. * It supports the legacy Netscape cookies.txt format for serialization, maximizing the interoperability with other implementations. * It supports the cookies.sqlite format adopted by Mozilla Firefox for backend store database which can be shared among multiple program instances. * It is relatively easy to add a new serialization format or a backend store because of its modular API.
pinfo-0.6.10, py-setuptools-1.1.5, py-sip-4.15.2, viewvc-1.1.21, wine-devel-1.7.2 [wait until NetBSD gains OSS 4 [kern/46611] or bring OSS 3 support back], x264-devel-20130914.
# colorator Colorize your text for the terminal ## Supported Colors - black - red - green - yellow - blue - magenta - cyan - white - bold ## Why There are a bunch of gems that provide functionality like this, but none have as simple an API as this. Just call `"string".color` and your text will be colorized.
changelog =========== Version 0.5.1 (June 25, 2013) ----------------------------- * Ensure compatability across distros by detecting if `python2` is available Version 0.5.0 (Apr 13, 2013) ----------------------------- * Use #rstrip to fix table mode bug Version 0.4.2 (Feb 25, 2013) ----------------------------- * Add new lexers, including custom lexers
Exact changes aren't available. Please refer change log in github.
2013-9-15 meld 1.8.0 ==================== Fixes: * Minor fixes (Kai Willadsen) Translations: * Matej Urbančič (sl)
jperkin
pushed a commit
that referenced
this pull request
Dec 9, 2013
Release 3.0.9 - 2013/10/29 -------------------------- Improvements ^^^^^^^^^^^^ * [doc][httpd] Added documentation about :ref:`groonga-database-auto-create` directive. * [httpd] Added :ref:`groonga-cache-limit` directive. * [doc] Added description why zlib/lzo compression are disabled by default. [groonga-dev, 01845] [Suggested by Naoya Murakami] * Remove a restriction related to RLIMIT_NOFILE on HTTP server. It enables HTTP server process to handle over 4096 files. * [experimental] Added some API to integrate mruby into groonga. [GitHub#109, #110, #111, #112, #113, #114, #115, #116, #117, #118] [Patch by wanabe] * [travis] Supported CMake build on Travis-CI. * [doc] Added documentation about :doc:`reference/tuning`. * [experimental] Added :doc:`ruby_load` command. * [httpd] Supported multiple buffered body of POST request. The load command caused timeout in such a case. [GitHub #120] [Patch by Motoi Washida] * [gqtp] Supported error message. The body is changed to return raw text insted of double quoted text. This is incompatible changes. * [http] Supported "400 Bad request" for invalid argument error. * [doc] Added examples for :doc:`/suggest/completion` * Supported Ubuntu 13.10 (Saucy Salamander). Fixes ^^^^^ * Fixed a bug that it cause SEGV by arithmetic overflow. This problem occurs when the size of indexes exceeds the size of virtual memory. [groonga-dev,01661] [Reported by Naoya Murakami] * Fixed needless lock for creating table. This change fixes a performance regression instroduced at Groonga 3.0.5. * Fixed a bug that database which has reference column can't be removed. It affects the case that indexed tables/columns and referenced tables are removed at first, then remove operation to index columns and reference columns fails. [Reported by Eito Katagiri] [GitHub Rroonga #13] * Fixed a bug that removing database which uses DAT key may remain garbage. * [http] Fixed a small memory leak which is caused by shared HTTP header buffer in the same worker thread. * [httpd] Fixed a bug that :ref:`groonga-database-auto-create` parameter isn't inherited. It means that these parameters are just ignored in non location blocks. * Fixed a bug that status command may returns invalid cache hit rate. * Fix a bug that casting to Time may causes overflow issue. It affects the case that assignment of the Time value which indicate over 32bit value.
jperkin
pushed a commit
that referenced
this pull request
Jan 21, 2014
Release 3.0.9 - 2013/10/29 -------------------------- Improvements ^^^^^^^^^^^^ * [doc][httpd] Added documentation about :ref:`groonga-database-auto-create` directive. * [httpd] Added :ref:`groonga-cache-limit` directive. * [doc] Added description why zlib/lzo compression are disabled by default. [groonga-dev, 01845] [Suggested by Naoya Murakami] * Remove a restriction related to RLIMIT_NOFILE on HTTP server. It enables HTTP server process to handle over 4096 files. * [experimental] Added some API to integrate mruby into groonga. [GitHub#109, #110, #111, #112, #113, #114, #115, #116, #117, #118] [Patch by wanabe] * [travis] Supported CMake build on Travis-CI. * [doc] Added documentation about :doc:`reference/tuning`. * [experimental] Added :doc:`ruby_load` command. * [httpd] Supported multiple buffered body of POST request. The load command caused timeout in such a case. [GitHub #120] [Patch by Motoi Washida] * [gqtp] Supported error message. The body is changed to return raw text insted of double quoted text. This is incompatible changes. * [http] Supported "400 Bad request" for invalid argument error. * [doc] Added examples for :doc:`/suggest/completion` * Supported Ubuntu 13.10 (Saucy Salamander). Fixes ^^^^^ * Fixed a bug that it cause SEGV by arithmetic overflow. This problem occurs when the size of indexes exceeds the size of virtual memory. [groonga-dev,01661] [Reported by Naoya Murakami] * Fixed needless lock for creating table. This change fixes a performance regression instroduced at Groonga 3.0.5. * Fixed a bug that database which has reference column can't be removed. It affects the case that indexed tables/columns and referenced tables are removed at first, then remove operation to index columns and reference columns fails. [Reported by Eito Katagiri] [GitHub Rroonga #13] * Fixed a bug that removing database which uses DAT key may remain garbage. * [http] Fixed a small memory leak which is caused by shared HTTP header buffer in the same worker thread. * [httpd] Fixed a bug that :ref:`groonga-database-auto-create` parameter isn't inherited. It means that these parameters are just ignored in non location blocks. * Fixed a bug that status command may returns invalid cache hit rate. * Fix a bug that casting to Time may causes overflow issue. It affects the case that assignment of the Time value which indicate over 32bit value.
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
Feb 27, 2014
0.991 2014-01-16T23:24:33Z - Greatly simplified determining the Firebird ISQL client. It no longer tries so hard to find a full path, but does seach through the path list for a likely candidate between fbsql, isql-fb, and isql (or equivalents ending in .exe on Windows). - Removed a bunch of inappropriately pasted stuff from the Firebird tutorial, and updated it a bit. - `HEAD` and `ROOT` are now recognized as aliases for `@HEAD` and `@ROOT`, when querying the database, too. That means that `revert --to HEAD` now works the same as `revert --to @HEAD`, as had been expected in v0.990. - Eliminated "use of uninitialized value" warnings when database connections fail. - Reduced the minimum required DBD::Firebird to v1.11. - Fixed the `--verbose` option to the `target` command. - Eliminated more user-configuration issues in tests, thanks to chromatic. - Fixed test failures when the `$PGPASSWORD` environment variable is set, thanks to Ioan Rogers's test smoker. 0.990 2014-01-04T01:14:24Z [New Features] - Added new command and feature: `target`. Use it to manage multiple database targets, each with an associated URI and, optionally, a registry name and command-line client. Inspired by Git remotes. - Added Firebird engine. Three cheers to Ștefan Suciu for this contribution! - Added support for the generation of arbitrary scripts from templates to the `add` command. Just add template files to subdirectories of the `templates` directory, and scripts will be created in a directory of the same name based on those templates. - Added `--open-editor` option (and aliases) to the `add` and `rework` commands. This option will open the newly-added change scripts in the preferred editor. Thanks to Thomas Sibley for the patch! [Improvements] - Improved database driver loading to ensure the proper version of the driver is required. - Non-fatal but possibly unexpected messages -- which correspond to exit value 1 -- now send their messages to STDOUT instead of STDERR, and respect the `--quiet` option. Thanks to @giorgio-v for the report! - Added or replaced the `--target` option to commands that connect to a database to specify the name of target managed by the new `target` command or a database URI. - `HEAD` and `ROOT` are now recognized as aliases for `@HEAD` and `@ROOT`, respectively, since they are disallowed as change names, anyway, and folks often use them out of habit from Git. [Internals] - Replaced the engine-specific connection attributes with three attributes use by every engine: * `target`: The name of a target managed by the new `target` command. Defaults to a value stored for the `core.$engine.target` configuration variable. If that variable does not exist, the target falls back on the stringification of `uri`. * `uri`: a database URI with the format `db:{engine}:{dbname}` or `db:{engine}://{user}:{password}@{host}:{port}/{dbname}`. If its value is not passed to the constructor, a `uri` value is looked up for the associated `target`. If `target` is not passed or configured, or if it has no URI associated with it, the `config.$engine.uri` configuration variable is used. If that value does not exist, the URI defaults to `db:$engine:`. In any of these cases, if any of the `--db-*` options are passed, they will be merged into the URI. * `registry`: the name to use for the Sqitch registry schema or database, where Sqitch's own data will be stored, as appropriate to each engine. If its value is not passed to the constructor, a `registry` value is looked up for the associated `target`. If `target` is not passed or configured, or if it has no registry associated with it, the `config.$engine.registry` configuration variable is used. If no value is found there, it defaults to an engine-specific value, usually "sqitch". [Bug Fixes] - Fixed a bug when installing under local::lib. Thanks to Thomas Sibley for the pull request! - Eliminated "Wide character in print" warnings when piping the `log` command. - Documented that reworked changes do not have their verify tests run by the `verify` command. They do run when using the `--verify` deploy option. - Removed the documentation for the `add.with_deploy`, `add.with_revert`, and `add.with_verify` configuration variables, which were never implemented. [Deprecations] - Deprecated engine-specific connection attributes and configuration variables. See the "Internals" section for their replacements. The deprecated options are: * `core.$engine.username` * `core.$engine.password` * `core.$engine.db_name` * `core.$engine.host` * `core.$engine.port` * `core.$engine.sqitch_schema` * `core.$engine.sqitch_db` - Deprecated all command-specific options with the string "target" in them, such as `--to-target`, `--upto-target`, etc. They have been replaced with options containing the string "change", instead, such as `--to-change` and `--upto-change`. Few people used these options, preferring their shorter aliases (`--to`, `--upto`, etc.). - Deprecated the `--deploy-template`, `--revert-template`, and `--verify-template` options to the `add` command. They are replaced with a single option, `--use` which takes a key/value pair for the script name and template path. This makes it useful for arbitrary script generation, as well. - Deprecated the `--deploy`, `--revert`, and `--verify` options to the `add` command, as well as their `--no-*` variants. They are replaced with two new options, `--with` and `--without`, to which a script name is passed. These are useful for arbitrary script generation, as well. - Deprecated the `add.deploy_template`, `add.revert_template`, and `add.verify_template` configuration settings. They have been replaced with a section, `add.templates`, which is more general, and supports arbitrary script generation, as well. [Incompatibilities] - Removed the undocumented `--test` option to the `add` command. - Changed the meaning of `--target` from specifying a change to specifying a deployment target. Use the new `--change` option to specify a change. 0.983 2013-11-21T21:50:12Z - Fixed "Use of uninitialized value" in the MySQL engine. Thanks to Jean-Michel REY for the report. - All tests now protect against failures due to the presence of the `$SQITCH_CONFIG` environment variable (issue #114). - The installer now respects the `distdir` option to `Build.PL` when searching for existing templates. Important for packaging. - Fixed the error "Table 'sqitch.changes' doesn't exist" when deploying to a MySQL database that exists but has not been initialized. Thanks to Jean-Michel REY for the report! - Refactored the handling of the C<--log-only> option so it sets an engine attribute, rather than passing the flag to a whole stack of method calls. - Fixed "Argument "en_us" isn't numeric" error on Windows. - Now using `LC_ALL` instead of `LC_MESSAGES` when setting the locale, as the latter is not present on Windows. - The sqitch-pg RPM now requires DBD::Pg 2.0.0 or higher. - Improved handling of invalid command names so that the error message is less ambiguous when triggered by a Perl parse error. - Added `-m` as an alias for `--note`, for you Git folks out there. - Added exception handling to the Postgres and Oracle engines to avoid unexpected errors when deploying to a database that has not been deployed to before. - Updated detection of an uninitialized database to double-check with the engine that it really thinks it's uninitialized, not just that the "changes" table is missing. This should catch the case where the database has its own "changes" table unrelated to Sqitch. 0.982 2013-09-11T18:26:07Z - Errors thrown by Template toolkit are no longer silently ignored. - Variables passed to change templates are now cloned before the execution of each template. This prevents one template from deleting variable values another template might also need. - Fixed "The getpwnam function is unimplemented" errors on Win32. - No longer runs revert scripts when deploying with `--log-only` and a verify script fails, as that could lead to data loss (yikes!). Thanks to BryLo for the report (issue #112). 0.981 2013-09-06T00:22:26Z - Now use Encode::Locale to try to decode the user's full name from the system encoding when fetched from the system on all OSes. Note that this is not necessary if the `user.name` config is explicitly set, as recommended. Issue #107. - Removed the special-case handling of the user's full name fetched from the system on OS X. - Added call to `sleep` to test in an attempt to fix SQLite failures. - The SQLite engine now requires that the SQLite client be 3.3.9 or later, for support of the `-bail` option. - Bug fix: The MySQL engine now properly uses the host, port, and password options when connecting to the database. Thanks to vreb87 for the report! 0.980 2013-08-28T21:40:00Z - Changed the default SQLite Sqitch database name from `$dbname-sqitch.$suffix` to `sqitch.$suffix`. The `$suffix` still comes from the destination database name. This breaks compatibility with previous releases. If you need the old name, set it with `sqitch config core.sqlite.sqitch_db $dbname`. - Fixed encoding of the user's full name when fetched from the system on OS X. Thanks to Tomohiro Hosaka for the pull request! - Fixed test failures when DBD::SQLite is installed but compiled with SQLite 3.7.10 or lower. - Fixed a bug where declaring a dependency on a reworked change would incorrectly result in the error "Key "foo" matches multiple changes". Thanks to BryLo for the report (issue #103). - Modified tests to allow them to run in parallel without stomping on each other. - Bundling of options, such as `-vvv`, now works properly (issue #108). - Added alias `--get-regexp` for `--get-regex` to the `config` command. This brings it in line with the documentation for the `config` command (Issue #110). - Fixed all of the `config` command actions that contain a dash so that they actually work. Thanks to Ștefan Suciu for the report (issue #110). - All leading and trailing white space is now trimmed from plan notes, rather than just vertical white space. Thanks to Ronan Dunklau for the report (issue #106). - The `status` command now notices if the specified database is uninitialized and says as much, rather than dying with an SQL error (issue #109). - When reading the user's username from the system Sqitch now uses Encode::Locale to try to decode the value from the system encoding. Issue #107. - Compatibility change: Changed the location and name of script template files. Previously they were called `deploy.tmpl`, `revert.tmpl`, and `verify.tmpl`, and they lived in the `templates` subdirectory of the system-wide and user-specific configuration directories. They now live in subdirectories of the `templates` directory named for each action (deploy, revert, and verify), and with file names matching engine names (`pg.tmpl`, `sqlite.tmpl`, `oracle.tmpl`, and `mysql.tmpl`). The installer will move old files from the system-wide config directory (`sqitch --etc-path`) to their new homes, named `pg.tmpl` and `sqlite.tmpl`. It assumes no customizations exist for Oracle. If that's not true in your case, simply copy the `pg.tmpl` files to `oracle.tmpl`. - Added the `--template-name` option to the `add` command. By default, it looks for templates named for the current engine. The option allows for the user of task-specific templates. For example, if you create templates named `createtable.tmpl` in the `deploy`, `revert`, and `verify` subdirectories of `~/.sqitch/templates`, You can specify `--template-name createtable` to use those templates when adding a change. - Added the `--exists` option to the `show` command. - Fixed the `--set` option to the `add` command so that duplicate keys have their values passed to the template as an array, as documented. - If Template::Toolkit is installed, the `add` command will use it for processing templates instead of Template::Tiny. This makes it easy to upgrade the templating environment just by installing a module. 0.973 2013-07-03T13:47:22Z - Now Require DBD::SQLite compiled with SQLite 3.7.11 or higher. It always has, but now it throws a meaningful exception if an older version is compiled into DBD::SQLite. Thanks to Damon Buckwalter for the report. - When a deploy fails because of missing dependencies, the list of missing dependencies no longer contains duplicates. Thanks to Damon Buckwalter for the report. 0.972 2013-05-31T23:26:52Z - Fixed test failures on Windows. - Fixed locale configuration on Windows so that `sqitch` will actually run, rather than exiting with an error about `LC_MESSAGES` not being set. - Fixed a test hang on Windows when DBD::Oracle is installed but the Oracle libraries (`OCI.dll`) are not or cannot be found. This was triggering a UI dialog that did not dismiss itself. Using Win32::API to work around this issue. Thanks to Jan Dubois for the fix. 0.971 2013-05-18T21:08:51Z - Removed most uses of the smartmatch operator, since as of Perl 5.17.11 it is marked as experimental, and silenced the warning where it is still used. - Added 0.1s sleep between logging changes back-to-back in the engine tests, mostly to try to get SQLite to generate different timestamps. Pretty sure the recent test failures have been due to the passage of less than a millisecond between the two inserts. - Added the `shell` and `quote_shell` methods to Sqitch.pm for shelling out a command. - Sqitch now shells out to an editor when opening a file for the user to edit. For example, if the `$EDITOR` environment variable is set to `"emacs -nw"`, it will now work. Thanks to Florian Ragwitz for the report (issue #80). - Removed the pod-checking tests from the distribution. 0.970 2013-05-09T00:21:06Z - Fixed the default ordering of changes displayed by the `plan` command. They are now ascending by default. - Switched to PerlIO::utf8_strict for fast character encoding and decoding. - The help emitted when an unknown option is passed to `sqitch` now consists of a usage statement and brief table of options, rather than the entire man page. - Added the project name in a header to the output of the `plan` command. - Added the Oracle engine. - Added `sqitchtutorial-oracle.pod`, a Oracle-specific variant of `sqitchtutorial.pod`. - Added missing version declaration to the App::Sqitch::Plan::* modules. - Devel::StackTrace 1.30 is now properly required (it was previously recommended). - The `--show-tags` and `--show-changes` options to the `status` command now show the changes when the project plan cannot be found (issue #90). 0.965 2013-04-23T16:25:59Z - Fixed failing test due to line-ending character variations on Windows. Many thanks to Jan Dubois for the testing help. - Replaced all uses of `$/` in output to `"\n"`. Thanks to Jan Dubois for pointing out the incorrect use of `$/`. - Fixed build error that prevented installation on Perl 5.10 when the parent module was not installed. 0.964 2013-04-15T18:47:30Z - Fixed test failures on Perl versions lower than 5.14 when DBD::SQLite or DBD::Pg is not installed. - Removed DBD::SQLite from the list of build dependencies. - Fixed test failures due to encoded (wide-character) warnings on triggered on systems with non-english locales. Thanks to Alexandr Ciornii for the smoke testing that revealed this issue. - Removed overriding of Throwable's `previous_exception` in App::Sqitch::X on Throwable 0.200007 and higher, where it is no longer needed. - Changed test comparing file contents that fails on Windows to do a looser comparison and hopefully fix the test failure. 0.963 2013-04-12T19:11:29Z - Fixed a test failure when Git is in the execution path and the test is not run from a Git checkout. - Added `plan` to `sqitchchanges`, the contents of which are shown when Sqitch is run with no command. - Removed the unique constraint on tag names in the database, as it prevented two projects from having the same tag name. Replaced it with a unique constraint on the project and tag names. Folks with production PostgreSQL installs should run these queries: ALTER TABLE sqitch.tags DROP CONSTRAINT tags_tag_key, ADD UNIQUE(project, tag); COMMENT ON COLUMN sqitch.tags.tag IS 'Project-unique tag name.'; - Fixed failing tests when DBD::SQLite is not installed. - Removed dependency on Git::Wrapper. The `checkout` command does things very simply, and we already have tools for running command-line applications. So we just take advantage of that. The code is no more complicated than it was before. - Added the `core.vcs.client` configuration setting. Defaults to `git` (or `git.exe` on Windows). 0.962 2013-04-10T17:10:05Z - Fixed failing test on Perl 5.12 and lower. - Fixed the French translation by re-encoding it in UTF-8 (Ronan Dunklau). - Fixed the loading of the editor with placeholder text to properly encode that text as UTF-8 (Ronan Dunklau).
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
= Changes in 2.3.2 = January 5, 2013 - version 2.3.2 * Changes * #138 Revert Timeout change unintentionally included in v2.3.1. It's reported that the change causes background processes not terminated properly. = Changes in 2.3.1 = January 1, 2013 - version 2.3.1 * Changes * #137 Signing key is expiring for cacert_sha1.p7s. Deleted p7s signature check for default cacerts. Sorry for many troubles in the past. This feature is not useful without having online/real-time CA certs update but I don't think I can implement it in near future. Users depend on this signature check (who puts cacert.p7s in R/W filesystem and ssl_config.rb in R/O filesystem) should take care the tampering by themself. * Bug fixes * #122 Support IPv6 address in URI = Changes in 2.3.0 = October 10, 2012 - version 2.3.0 * Features * Added debug mode CLI. bin/httpclient is installed as CLI. Usage: 1) % httpclient get https://www.google.co.jp/ q=ruby Usage: 2) %httpclient For 1) it issues a GET request to the given URI and shows the wiredump and the parsed result. For 2) it invokes irb shell with the binding that has a HTTPClient as 'self'. You can call HTTPClient instance methods like; > get "https://www.google.co.jp/", :q => :ruby * #119 Addressable gem support (only if it exists); should handle IRI properly. * Bug fixes * #115 Cookies couldn't work properly if the path in an URI is ommited. * #112, #117 Proper handling of sized IO (the IO object that responds to :size) for chunked POST. HTTPClient did read till EOF even if the given IO has :size method. * Handle '303 See Other' properly. RFC2616 says it should be redirected with GET. * #116 Fix "100-continue" support. It was just ignored. * #118 Support for boolean values when making POST/PUT requests with multiipart/form Content-Type. * #110 Allows leading dots in no_proxy hostname suffixes.
jperkin
pushed a commit
that referenced
this pull request
Mar 14, 2014
Release 3.0.9 - 2013/10/29 -------------------------- Improvements ^^^^^^^^^^^^ * [doc][httpd] Added documentation about :ref:`groonga-database-auto-create` directive. * [httpd] Added :ref:`groonga-cache-limit` directive. * [doc] Added description why zlib/lzo compression are disabled by default. [groonga-dev, 01845] [Suggested by Naoya Murakami] * Remove a restriction related to RLIMIT_NOFILE on HTTP server. It enables HTTP server process to handle over 4096 files. * [experimental] Added some API to integrate mruby into groonga. [GitHub#109, #110, #111, #112, #113, #114, #115, #116, #117, #118] [Patch by wanabe] * [travis] Supported CMake build on Travis-CI. * [doc] Added documentation about :doc:`reference/tuning`. * [experimental] Added :doc:`ruby_load` command. * [httpd] Supported multiple buffered body of POST request. The load command caused timeout in such a case. [GitHub #120] [Patch by Motoi Washida] * [gqtp] Supported error message. The body is changed to return raw text insted of double quoted text. This is incompatible changes. * [http] Supported "400 Bad request" for invalid argument error. * [doc] Added examples for :doc:`/suggest/completion` * Supported Ubuntu 13.10 (Saucy Salamander). Fixes ^^^^^ * Fixed a bug that it cause SEGV by arithmetic overflow. This problem occurs when the size of indexes exceeds the size of virtual memory. [groonga-dev,01661] [Reported by Naoya Murakami] * Fixed needless lock for creating table. This change fixes a performance regression instroduced at Groonga 3.0.5. * Fixed a bug that database which has reference column can't be removed. It affects the case that indexed tables/columns and referenced tables are removed at first, then remove operation to index columns and reference columns fails. [Reported by Eito Katagiri] [GitHub Rroonga #13] * Fixed a bug that removing database which uses DAT key may remain garbage. * [http] Fixed a small memory leak which is caused by shared HTTP header buffer in the same worker thread. * [httpd] Fixed a bug that :ref:`groonga-database-auto-create` parameter isn't inherited. It means that these parameters are just ignored in non location blocks. * Fixed a bug that status command may returns invalid cache hit rate. * Fix a bug that casting to Time may causes overflow issue. It affects the case that assignment of the Time value which indicate over 32bit value.
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
Mar 14, 2014
Changes from 2.2.1 to 2.2.2 =========================== * The `copy_args` argument of `NumExpr` function has been brought back. This has been mainly necessary for compatibility with PyTables < 3.0, which I decided to continue to support. Fixed #115. * The `__nonzero__` method in `ExpressionNode` class has been commented out. This is also for compatibility with PyTables < 3.0. See #24 for details. * Fixed the type of some parameters in the C extension so that s390 architecture compiles. Fixes #116. Thank to Antonio Valentino for reporting and the patch. Changes from 2.2 to 2.2.1 ========================= * Fixes a secondary effect of "from numpy.testing import `*`", where division is imported now too, so only then necessary functions from there are imported now. Thanks to Christoph Gohlke for the patch. Changes from 2.1 to 2.2 ======================= * [LICENSE] Fixed a problem with the license of the numexpr/win32/pthread.{c,h} files emulating pthreads on Windows platforms. After persmission from the original authors is granted, these files adopt the MIT license and can be redistributed without problems. See issue #109 for details (https://code.google.com/p/numexpr/issues/detail?id=110). * [ENH] Improved the algorithm to decide the initial number of threads to be used. This was necessary because by default, numexpr was using a number of threads equal to the detected number of cores, and this can be just too much for moder systems where this number can be too high (and counterporductive for performance in many cases). Now, the 'NUMEXPR_NUM_THREADS' environment variable is honored, and in case this is not present, a maximum number of *8* threads are setup initially. The new algorithm is fully described in the Users Guide now in the note of 'General routines' section: https://code.google.com/p/numexpr/wiki/UsersGuide#General_routines. Closes #110. * [ENH] numexpr.test() returns `TestResult` instead of None now. Closes #111. * [FIX] Modulus with zero with integers no longer crashes the interpreter. It nows puts a zero in the result. Fixes #107. * [API CLEAN] Removed `copy_args` argument of `evaluate`. This should only be used by old versions of PyTables (< 3.0). * [DOC] Documented the `optimization` and `truediv` flags of `evaluate` in Users Guide (https://code.google.com/p/numexpr/wiki/UsersGuide). Changes from 2.0.1 to 2.1 =========================== * Dropped compatibility with Python < 2.6. * Improve compatibiity with Python 3: - switch from PyString to PyBytes API (requires Python >= 2.6). - fixed incompatibilities regarding the int/long API - use the Py_TYPE macro - use the PyVarObject_HEAD_INIT macro instead of PyObject_HEAD_INIT * Fixed several issues with different platforms not supporting multithreading or subprocess properly (see tickets #75 and #77). * Now, when trying to use pure Python boolean operators, 'and', 'or' and 'not', an error is issued suggesting that '&', '|' and '~' should be used instead (fixes #24). Changes from 2.0 to 2.0.1 ========================= * Added compatibility with Python 2.5 (2.4 is definitely not supported anymore). * `numexpr.evaluate` is fully documented now, in particular the new `out`, `order` and `casting` parameters. * Reduction operations are fully documented now. * Negative axis in reductions are not supported (they have never been actually), and a `ValueError` will be raised if they are used. Changes from 1.x series to 2.0 ============================== - Added support for the new iterator object in NumPy 1.6 and later. This allows for better performance with operations that implies broadcast operations, fortran-ordered or non-native byte orderings. Performance for other scenarios is preserved (except for very small arrays). - Division in numexpr is consistent now with Python/NumPy. Fixes #22 and #58. - Constants like "2." or "2.0" must be evaluated as float, not integer. Fixes #59. - `evaluate()` function has received a new parameter `out` for storing the result in already allocated arrays. This is very useful when dealing with large arrays, and a allocating new space for keeping the result is not acceptable. Closes #56. - Maximum number of threads raised from 256 to 4096. Machines with a higher number of cores will still be able to import numexpr, but limited to 4096 (which is an absurdly high number already).
jperkin
pushed a commit
that referenced
this pull request
Mar 14, 2014
0.991 2014-01-16T23:24:33Z - Greatly simplified determining the Firebird ISQL client. It no longer tries so hard to find a full path, but does seach through the path list for a likely candidate between fbsql, isql-fb, and isql (or equivalents ending in .exe on Windows). - Removed a bunch of inappropriately pasted stuff from the Firebird tutorial, and updated it a bit. - `HEAD` and `ROOT` are now recognized as aliases for `@HEAD` and `@ROOT`, when querying the database, too. That means that `revert --to HEAD` now works the same as `revert --to @HEAD`, as had been expected in v0.990. - Eliminated "use of uninitialized value" warnings when database connections fail. - Reduced the minimum required DBD::Firebird to v1.11. - Fixed the `--verbose` option to the `target` command. - Eliminated more user-configuration issues in tests, thanks to chromatic. - Fixed test failures when the `$PGPASSWORD` environment variable is set, thanks to Ioan Rogers's test smoker. 0.990 2014-01-04T01:14:24Z [New Features] - Added new command and feature: `target`. Use it to manage multiple database targets, each with an associated URI and, optionally, a registry name and command-line client. Inspired by Git remotes. - Added Firebird engine. Three cheers to Ștefan Suciu for this contribution! - Added support for the generation of arbitrary scripts from templates to the `add` command. Just add template files to subdirectories of the `templates` directory, and scripts will be created in a directory of the same name based on those templates. - Added `--open-editor` option (and aliases) to the `add` and `rework` commands. This option will open the newly-added change scripts in the preferred editor. Thanks to Thomas Sibley for the patch! [Improvements] - Improved database driver loading to ensure the proper version of the driver is required. - Non-fatal but possibly unexpected messages -- which correspond to exit value 1 -- now send their messages to STDOUT instead of STDERR, and respect the `--quiet` option. Thanks to @giorgio-v for the report! - Added or replaced the `--target` option to commands that connect to a database to specify the name of target managed by the new `target` command or a database URI. - `HEAD` and `ROOT` are now recognized as aliases for `@HEAD` and `@ROOT`, respectively, since they are disallowed as change names, anyway, and folks often use them out of habit from Git. [Internals] - Replaced the engine-specific connection attributes with three attributes use by every engine: * `target`: The name of a target managed by the new `target` command. Defaults to a value stored for the `core.$engine.target` configuration variable. If that variable does not exist, the target falls back on the stringification of `uri`. * `uri`: a database URI with the format `db:{engine}:{dbname}` or `db:{engine}://{user}:{password}@{host}:{port}/{dbname}`. If its value is not passed to the constructor, a `uri` value is looked up for the associated `target`. If `target` is not passed or configured, or if it has no URI associated with it, the `config.$engine.uri` configuration variable is used. If that value does not exist, the URI defaults to `db:$engine:`. In any of these cases, if any of the `--db-*` options are passed, they will be merged into the URI. * `registry`: the name to use for the Sqitch registry schema or database, where Sqitch's own data will be stored, as appropriate to each engine. If its value is not passed to the constructor, a `registry` value is looked up for the associated `target`. If `target` is not passed or configured, or if it has no registry associated with it, the `config.$engine.registry` configuration variable is used. If no value is found there, it defaults to an engine-specific value, usually "sqitch". [Bug Fixes] - Fixed a bug when installing under local::lib. Thanks to Thomas Sibley for the pull request! - Eliminated "Wide character in print" warnings when piping the `log` command. - Documented that reworked changes do not have their verify tests run by the `verify` command. They do run when using the `--verify` deploy option. - Removed the documentation for the `add.with_deploy`, `add.with_revert`, and `add.with_verify` configuration variables, which were never implemented. [Deprecations] - Deprecated engine-specific connection attributes and configuration variables. See the "Internals" section for their replacements. The deprecated options are: * `core.$engine.username` * `core.$engine.password` * `core.$engine.db_name` * `core.$engine.host` * `core.$engine.port` * `core.$engine.sqitch_schema` * `core.$engine.sqitch_db` - Deprecated all command-specific options with the string "target" in them, such as `--to-target`, `--upto-target`, etc. They have been replaced with options containing the string "change", instead, such as `--to-change` and `--upto-change`. Few people used these options, preferring their shorter aliases (`--to`, `--upto`, etc.). - Deprecated the `--deploy-template`, `--revert-template`, and `--verify-template` options to the `add` command. They are replaced with a single option, `--use` which takes a key/value pair for the script name and template path. This makes it useful for arbitrary script generation, as well. - Deprecated the `--deploy`, `--revert`, and `--verify` options to the `add` command, as well as their `--no-*` variants. They are replaced with two new options, `--with` and `--without`, to which a script name is passed. These are useful for arbitrary script generation, as well. - Deprecated the `add.deploy_template`, `add.revert_template`, and `add.verify_template` configuration settings. They have been replaced with a section, `add.templates`, which is more general, and supports arbitrary script generation, as well. [Incompatibilities] - Removed the undocumented `--test` option to the `add` command. - Changed the meaning of `--target` from specifying a change to specifying a deployment target. Use the new `--change` option to specify a change. 0.983 2013-11-21T21:50:12Z - Fixed "Use of uninitialized value" in the MySQL engine. Thanks to Jean-Michel REY for the report. - All tests now protect against failures due to the presence of the `$SQITCH_CONFIG` environment variable (issue #114). - The installer now respects the `distdir` option to `Build.PL` when searching for existing templates. Important for packaging. - Fixed the error "Table 'sqitch.changes' doesn't exist" when deploying to a MySQL database that exists but has not been initialized. Thanks to Jean-Michel REY for the report! - Refactored the handling of the C<--log-only> option so it sets an engine attribute, rather than passing the flag to a whole stack of method calls. - Fixed "Argument "en_us" isn't numeric" error on Windows. - Now using `LC_ALL` instead of `LC_MESSAGES` when setting the locale, as the latter is not present on Windows. - The sqitch-pg RPM now requires DBD::Pg 2.0.0 or higher. - Improved handling of invalid command names so that the error message is less ambiguous when triggered by a Perl parse error. - Added `-m` as an alias for `--note`, for you Git folks out there. - Added exception handling to the Postgres and Oracle engines to avoid unexpected errors when deploying to a database that has not been deployed to before. - Updated detection of an uninitialized database to double-check with the engine that it really thinks it's uninitialized, not just that the "changes" table is missing. This should catch the case where the database has its own "changes" table unrelated to Sqitch. 0.982 2013-09-11T18:26:07Z - Errors thrown by Template toolkit are no longer silently ignored. - Variables passed to change templates are now cloned before the execution of each template. This prevents one template from deleting variable values another template might also need. - Fixed "The getpwnam function is unimplemented" errors on Win32. - No longer runs revert scripts when deploying with `--log-only` and a verify script fails, as that could lead to data loss (yikes!). Thanks to BryLo for the report (issue #112). 0.981 2013-09-06T00:22:26Z - Now use Encode::Locale to try to decode the user's full name from the system encoding when fetched from the system on all OSes. Note that this is not necessary if the `user.name` config is explicitly set, as recommended. Issue #107. - Removed the special-case handling of the user's full name fetched from the system on OS X. - Added call to `sleep` to test in an attempt to fix SQLite failures. - The SQLite engine now requires that the SQLite client be 3.3.9 or later, for support of the `-bail` option. - Bug fix: The MySQL engine now properly uses the host, port, and password options when connecting to the database. Thanks to vreb87 for the report! 0.980 2013-08-28T21:40:00Z - Changed the default SQLite Sqitch database name from `$dbname-sqitch.$suffix` to `sqitch.$suffix`. The `$suffix` still comes from the destination database name. This breaks compatibility with previous releases. If you need the old name, set it with `sqitch config core.sqlite.sqitch_db $dbname`. - Fixed encoding of the user's full name when fetched from the system on OS X. Thanks to Tomohiro Hosaka for the pull request! - Fixed test failures when DBD::SQLite is installed but compiled with SQLite 3.7.10 or lower. - Fixed a bug where declaring a dependency on a reworked change would incorrectly result in the error "Key "foo" matches multiple changes". Thanks to BryLo for the report (issue #103). - Modified tests to allow them to run in parallel without stomping on each other. - Bundling of options, such as `-vvv`, now works properly (issue #108). - Added alias `--get-regexp` for `--get-regex` to the `config` command. This brings it in line with the documentation for the `config` command (Issue #110). - Fixed all of the `config` command actions that contain a dash so that they actually work. Thanks to Ștefan Suciu for the report (issue #110). - All leading and trailing white space is now trimmed from plan notes, rather than just vertical white space. Thanks to Ronan Dunklau for the report (issue #106). - The `status` command now notices if the specified database is uninitialized and says as much, rather than dying with an SQL error (issue #109). - When reading the user's username from the system Sqitch now uses Encode::Locale to try to decode the value from the system encoding. Issue #107. - Compatibility change: Changed the location and name of script template files. Previously they were called `deploy.tmpl`, `revert.tmpl`, and `verify.tmpl`, and they lived in the `templates` subdirectory of the system-wide and user-specific configuration directories. They now live in subdirectories of the `templates` directory named for each action (deploy, revert, and verify), and with file names matching engine names (`pg.tmpl`, `sqlite.tmpl`, `oracle.tmpl`, and `mysql.tmpl`). The installer will move old files from the system-wide config directory (`sqitch --etc-path`) to their new homes, named `pg.tmpl` and `sqlite.tmpl`. It assumes no customizations exist for Oracle. If that's not true in your case, simply copy the `pg.tmpl` files to `oracle.tmpl`. - Added the `--template-name` option to the `add` command. By default, it looks for templates named for the current engine. The option allows for the user of task-specific templates. For example, if you create templates named `createtable.tmpl` in the `deploy`, `revert`, and `verify` subdirectories of `~/.sqitch/templates`, You can specify `--template-name createtable` to use those templates when adding a change. - Added the `--exists` option to the `show` command. - Fixed the `--set` option to the `add` command so that duplicate keys have their values passed to the template as an array, as documented. - If Template::Toolkit is installed, the `add` command will use it for processing templates instead of Template::Tiny. This makes it easy to upgrade the templating environment just by installing a module. 0.973 2013-07-03T13:47:22Z - Now Require DBD::SQLite compiled with SQLite 3.7.11 or higher. It always has, but now it throws a meaningful exception if an older version is compiled into DBD::SQLite. Thanks to Damon Buckwalter for the report. - When a deploy fails because of missing dependencies, the list of missing dependencies no longer contains duplicates. Thanks to Damon Buckwalter for the report. 0.972 2013-05-31T23:26:52Z - Fixed test failures on Windows. - Fixed locale configuration on Windows so that `sqitch` will actually run, rather than exiting with an error about `LC_MESSAGES` not being set. - Fixed a test hang on Windows when DBD::Oracle is installed but the Oracle libraries (`OCI.dll`) are not or cannot be found. This was triggering a UI dialog that did not dismiss itself. Using Win32::API to work around this issue. Thanks to Jan Dubois for the fix. 0.971 2013-05-18T21:08:51Z - Removed most uses of the smartmatch operator, since as of Perl 5.17.11 it is marked as experimental, and silenced the warning where it is still used. - Added 0.1s sleep between logging changes back-to-back in the engine tests, mostly to try to get SQLite to generate different timestamps. Pretty sure the recent test failures have been due to the passage of less than a millisecond between the two inserts. - Added the `shell` and `quote_shell` methods to Sqitch.pm for shelling out a command. - Sqitch now shells out to an editor when opening a file for the user to edit. For example, if the `$EDITOR` environment variable is set to `"emacs -nw"`, it will now work. Thanks to Florian Ragwitz for the report (issue #80). - Removed the pod-checking tests from the distribution. 0.970 2013-05-09T00:21:06Z - Fixed the default ordering of changes displayed by the `plan` command. They are now ascending by default. - Switched to PerlIO::utf8_strict for fast character encoding and decoding. - The help emitted when an unknown option is passed to `sqitch` now consists of a usage statement and brief table of options, rather than the entire man page. - Added the project name in a header to the output of the `plan` command. - Added the Oracle engine. - Added `sqitchtutorial-oracle.pod`, a Oracle-specific variant of `sqitchtutorial.pod`. - Added missing version declaration to the App::Sqitch::Plan::* modules. - Devel::StackTrace 1.30 is now properly required (it was previously recommended). - The `--show-tags` and `--show-changes` options to the `status` command now show the changes when the project plan cannot be found (issue #90). 0.965 2013-04-23T16:25:59Z - Fixed failing test due to line-ending character variations on Windows. Many thanks to Jan Dubois for the testing help. - Replaced all uses of `$/` in output to `"\n"`. Thanks to Jan Dubois for pointing out the incorrect use of `$/`. - Fixed build error that prevented installation on Perl 5.10 when the parent module was not installed. 0.964 2013-04-15T18:47:30Z - Fixed test failures on Perl versions lower than 5.14 when DBD::SQLite or DBD::Pg is not installed. - Removed DBD::SQLite from the list of build dependencies. - Fixed test failures due to encoded (wide-character) warnings on triggered on systems with non-english locales. Thanks to Alexandr Ciornii for the smoke testing that revealed this issue. - Removed overriding of Throwable's `previous_exception` in App::Sqitch::X on Throwable 0.200007 and higher, where it is no longer needed. - Changed test comparing file contents that fails on Windows to do a looser comparison and hopefully fix the test failure. 0.963 2013-04-12T19:11:29Z - Fixed a test failure when Git is in the execution path and the test is not run from a Git checkout. - Added `plan` to `sqitchchanges`, the contents of which are shown when Sqitch is run with no command. - Removed the unique constraint on tag names in the database, as it prevented two projects from having the same tag name. Replaced it with a unique constraint on the project and tag names. Folks with production PostgreSQL installs should run these queries: ALTER TABLE sqitch.tags DROP CONSTRAINT tags_tag_key, ADD UNIQUE(project, tag); COMMENT ON COLUMN sqitch.tags.tag IS 'Project-unique tag name.'; - Fixed failing tests when DBD::SQLite is not installed. - Removed dependency on Git::Wrapper. The `checkout` command does things very simply, and we already have tools for running command-line applications. So we just take advantage of that. The code is no more complicated than it was before. - Added the `core.vcs.client` configuration setting. Defaults to `git` (or `git.exe` on Windows). 0.962 2013-04-10T17:10:05Z - Fixed failing test on Perl 5.12 and lower. - Fixed the French translation by re-encoding it in UTF-8 (Ronan Dunklau). - Fixed the loading of the editor with placeholder text to properly encode that text as UTF-8 (Ronan Dunklau).
jperkin
pushed a commit
that referenced
this pull request
Apr 1, 2014
--- 3.7 --- * Gnome keyring no longer relies on the GNOME_KEYRING_CONTROL environment variable. * Issue #140: Restore compatibility for older versions of PyWin32. --- 3.6 --- * `Pull Request #1 (github) <https://github.com/jaraco/keyring/pull/1>`_: Add support for packages that wish to bundle keyring by using relative imports throughout. --- 3.5 --- * Issue #49: Give the backend priorities a 1.5 multiplier bump when an XDG_CURRENT_DESKTOP environment variable matches the keyring's target environment. * Issue #99: Clarified documentation on location of config and data files. Prepared the code base to treat the two differently on Unix-based systems. For now, the behavior is unchanged. --- 3.4 --- * Extracted FileBacked and Encrypted base classes. * Add a pyinstaller hook to expose backend modules. Ref #124 * Pull request #41: Use errno module instead of hardcoding error codes. * SecretService backend: correctly handle cases when user dismissed the collection creation or unlock prompt. --- 3.3 --- * Pull request #40: KWallet backend will now honor the ``KDE_FULL_SESSION`` environment variable as found on openSUSE. ----- 3.2.1 ----- * SecretService backend: use a different function to check that the backend is functional. The default collection may not exist, but the collection will remain usable in that case. Also, make the error message more verbose. Resolves https://bugs.launchpad.net/bugs/1242412. --- 3.2 --- * Issue #120: Invoke KeyringBackend.priority during load_keyring to ensure that any keyring loaded is actually viable (or raises an informative exception). * File keyring: - Issue #123: fix removing items. - Correctly escape item name when removing. - Use with statement when working with files. * Add a test for removing one item in group. * Issue #81: Added experimental support for third-party backends. See `keyring.core._load_library_extensions` for information on supplying a third-party backend. --- 3.1 --- * All code now runs natively on both Python 2 and Python 3, no 2to3 conversion is required. * Testsuite: clean up, and make more use of unittest2 methods. ----- 3.0.5 ----- * Issue #114: Fix logic in pyfs detection. ----- 3.0.4 ----- * Issue #114: Fix detection of pyfs under Mercurial Demand Import. ----- 3.0.3 ----- * Simplified the implementation of ``keyring.core.load_keyring``. It now uses ``__import__`` instead of loading modules explicitly. The ``keyring_path`` parameter to ``load_keyring`` is now deprecated. Callers should instead ensure their module is available on ``sys.path`` before calling ``load_keyring``. Keyring still honors ``keyring-path``. This change fixes Issue #113 in which the explicit module loading of keyring modules was breaking package-relative imports. ----- 3.0.2 ----- * Renamed ``keyring.util.platform`` to ``keyring.util.platform_``. As reported in Issue #112 and `mercurial_keyring #31 <https://bitbucket.org/Mekk/mercurial_keyring/issue/31>`_ and in `Mercurial itself <http://bz.selenic.com/show_bug.cgi?id=4029>`_, Mercurial's Demand Import does not honor ``absolute_import`` directives, so it's not possible to have a module with the same name as another top-level module. A patch is in place to fix this issue upstream, but to support older Mercurial versions, this patch will remain for some time. ----- 3.0.1 ----- * Ensure that modules are actually imported even in Mercurial's Demand Import environment. --- 3.0 --- * Removed support for Python 2.5. * Removed names in ``keyring.backend`` moved in 1.1 and previously retained for compatibilty. ----- 2.1.1 ----- * Restored Python 2.5 compatibility (lost in 2.0). --- 2.1 --- * Issue #10: Added a 'store' attribute to the OS X Keyring, enabling custom instances of the KeyringBackend to use another store, such as the 'internet' store. For example:: keys = keyring.backends.OS_X.Keyring() keys.store = 'internet' keys.set_password(system, user, password) keys.get_password(system, user) The default for all instances can be set in the class:: keyring.backends.OS_X.Keyring.store = 'internet' * GnomeKeyring: fix availability checks, and make sure the warning message from pygobject is not printed. * Fixes to GnomeKeyring and SecretService tests. ----- 2.0.3 ----- * Issue #112: Backend viability/priority checks now are more aggressive about module presence checking, requesting ``__name__`` from imported modules to force the demand importer to actually attempt the import. ----- 2.0.2 ----- * Issue #111: Windows backend isn't viable on non-Windows platforms. ----- 2.0.1 ----- * Issue #110: Fix issues with ``Windows.RegistryKeyring``. --- 2.0 --- * Issue #80: Prioritized backend support. The primary interface for Keyring backend classes has been refactored to now emit a 'priority' based on the current environment (operating system, libraries available, etc). These priorities provide an indication of the applicability of that backend for the current environment. Users are still welcome to specify a particular backend in configuration, but the default behavior should now be to select the most appropriate backend by default. ----- 1.6.1 ----- * Only include pytest-runner in 'setup requirements' when ptr invocation is indicated in the command-line (Issue #105). --- 1.6 --- * GNOME Keyring backend: - Use the same attributes (``username`` / ``service``) as the SecretService backend uses, allow searching for old ones for compatibility. - Also set ``application`` attribute. - Correctly handle all types of errors, not only ``CANCELLED`` and ``NO_MATCH``. - Avoid printing warnings to stderr when GnomeKeyring is not available. * Secret Service backend: - Use a better label for passwords, the same as GNOME Keyring backend uses. --- 1.5 --- * SecretService: allow deleting items created using previous python-keyring versions. Before the switch to secretstorage, python-keyring didn't set "application" attribute. Now in addition to supporting searching for items without that attribute, python-keyring also supports deleting them. * Use ``secretstorage.get_default_collection`` if it's available. On secretstorage 1.0 or later, python-keyring now tries to create the default collection if it doesn't exist, instead of just raising the error. * Improvements for tests, including fix for Issue #102. --- 1.4 --- * Switch GnomeKeyring backend to use native libgnome-keyring via GObject Introspection, not the obsolete python-gnomekeyring module. --- 1.3 --- * Use the `SecretStorage library <https://pypi.python.org/pypi/SecretStorage>`_ to implement the Secret Service backend (instead of using dbus directly). Now the keyring supports prompting for and deleting passwords. Fixes #69, #77, and #93. * Catch `gnomekeyring.IOError` per the issue `reported in Nova client <https://bugs.launchpad.net/python-novaclient/+bug/1116302>`_. * Issue #92 Added support for delete_password on Mac OS X Keychain. ----- 1.2.3 ----- * Fix for Encrypted File backend on Python 3. * Issue #97 Improved support for PyPy. ----- 1.2.2 ----- * Fixed handling situations when user cancels kwallet dialog or denies access for the app. ----- 1.2.1 ----- * Fix for kwallet delete. * Fix for OS X backend on Python 3. * Issue #84: Fix for Google backend on Python 3 (use of raw_input not caught by 2to3). --- 1.2 --- * Implemented delete_password on most keyrings. Keyring 2.0 will require delete_password to implement a Keyring. Fixes #79. ----- 1.1.2 ----- * Issue #78: pyfilesystem backend now works on Windows. ----- 1.1.1 ----- * Fixed MANIFEST.in so .rst files are included. --- 1.1 --- This is the last build that will support installation in a pure-distutils mode. Subsequent releases will require setuptools/distribute to install. Python 3 installs have always had this requirement (for 2to3 install support), but starting with the next minor release (1.2+), setuptools will be required. Additionally, this release has made some substantial refactoring in an attempt to modularize the backends. An attempt has been made to maintain 100% backward-compatibility, although if your library does anything fancy with module structure or clasess, some tweaking may be necessary. The backward-compatible references will be removed in 2.0, so the 1.1+ releases represent a transitional implementation which should work with both legacy and updated module structure. * Added a console-script 'keyring' invoking the command-line interface. * Deprecated _ExtensionKeyring. * Moved PasswordSetError and InitError to an `errors` module (references kept for backward-compatibility). * Moved concrete backend implementations into their own modules (references kept for backward compatibility): - OSXKeychain -> backends.OS_X.Keyring - GnomeKeyring -> backends.Gnome.Keyring - SecretServiceKeyring -> backends.SecretService.Keyring - KDEKWallet -> backends.kwallet.Keyring - BasicFileKeyring -> backends.file.BaseKeyring - CryptedFileKeyring -> backends.file.EncryptedKeyring - UncryptedFileKeyring -> backends.file.PlaintextKeyring - Win32CryptoKeyring -> backends.Windows.EncryptedKeyring - WinVaultKeyring -> backends.Windows.WinVaultKeyring - Win32CryptoRegistry -> backends.Windows.RegistryKeyring - select_windows_backend -> backends.Windows.select_windows_backend - GoogleDocsKeyring -> backends.Google.DocsKeyring - Credential -> keyring.credentials.Credential - BaseCredential -> keyring.credentials.SimpleCredential - EnvironCredential -> keyring.credentials.EnvironCredential - GoogleEnvironCredential -> backends.Google.EnvironCredential - BaseKeyczarCrypter -> backends.keyczar.BaseCrypter - KeyczarCrypter -> backends.keyczar.Crypter - EnvironKeyczarCrypter -> backends.keyczar.EnvironCrypter - EnvironGoogleDocsKeyring -> backends.Google.KeyczarDocsKeyring - BasicPyfilesystemKeyring -> backends.pyfs.BasicKeyring - UnencryptedPyfilesystemKeyring -> backends.pyfs.PlaintextKeyring - EncryptedPyfilesystemKeyring -> backends.pyfs.EncryptedKeyring - EnvironEncryptedPyfilesystemKeyring -> backends.pyfs.KeyczarKeyring - MultipartKeyringWrapper -> backends.multi.MultipartKeyringWrapper * Officially require Python 2.5 or greater (although unofficially, this requirement has been in place since 0.10). --- 1.0 --- This backward-incompatible release attempts to remove some cruft from the codebase that's accumulated over the versions. * Removed legacy file relocation support. `keyring` no longer supports loading configuration or file-based backends from ~. If upgrading from 0.8 or later, the files should already have been migrated to their new proper locations. If upgrading from 0.7.x or earlier, the files will have to be migrated manually. * Removed CryptedFileKeyring migration support. To maintain an existing CryptedFileKeyring, one must first upgrade to 0.9.2 or later and access the keyring before upgrading to 1.0 to retain the existing keyring. * File System backends now create files without group and world permissions. Fixes #67. ------ 0.10.1 ------ * Merged 0.9.3 to include fix for #75. ---- 0.10 ---- * Add support for using `Keyczar <http://www.keyczar.org/>`_ to encrypt keyrings. Keyczar is "an open source cryptographic toolkit designed to make it easier and safer for developers to use cryptography in their applications." * Added support for storing keyrings on Google Docs or any other filesystem supported by pyfilesystem. * Fixed issue in Gnome Keyring when unicode is passed as the service name, username, or password. * Tweaked SecretService code to pass unicode to DBus, as unicode is the preferred format. * Issue #71 - Fixed logic in CryptedFileKeyring. * Unencrypted keyring file will be saved with user read/write (and not group or world read/write). ----- 0.9.3 ----- * Ensure migration is run when get_password is called. Fixes #75. Thanks to Marc Deslauriers for reporting the bug and supplying the patch. ----- 0.9.2 ----- * Keyring 0.9.1 introduced a whole different storage format for the CryptedFileKeyring, but this introduced some potential compatibility issues. This release incorporates the security updates but reverts to the INI file format for storage, only encrypting the passwords and leaving the service and usernames in plaintext. Subsequent releases may incorporate a new keyring to implement a whole-file encrypted version. Fixes #64. * The CryptedFileKeyring now requires simplejson for Python 2.5 clients. ----- 0.9.1 ----- * Fix for issue where SecretServiceBackend.set_password would raise a UnicodeError on Python 3 or when a unicode password was provided on Python 2. * CryptedFileKeyring now uses PBKDF2 to derive the key from the user's password and a random hash. The IV is chosen randomly as well. All the stored passwords are encrypted at once. Any keyrings using the old format will be automatically converted to the new format (but will no longer be compatible with 0.9 and earlier). The user's password is no longer limited to 32 characters. PyCrypto 2.5 or greater is now required for this keyring. --- 0.9 --- * Add support for GTK 3 and secret service D-Bus. Fixes #52. * Issue #60 - Use correct method for decoding. ----- 0.8.1 ----- * Fix regression in keyring lib on Windows XP where the LOCALAPPDATA environment variable is not present. --- 0.8 --- * Mac OS X keyring backend now uses subprocess calls to the `security` command instead of calling the API, which with the latest updates, no longer allows Python to invoke from a virtualenv. Fixes issue #13. * When using file-based storage, the keyring files are no longer stored in the user's home directory, but are instead stored in platform-friendly locations (`%localappdata%\Python Keyring` on Windows and according to the freedesktop.org Base Dir Specification (`$XDG_DATA_HOME/python_keyring` or `$HOME/.local/share/python_keyring`) on other operating systems). This fixes #21. *Backward Compatibility Notice* Due to the new storage location for file-based keyrings, keyring 0.8 supports backward compatibility by automatically moving the password files to the updated location. In general, users can upgrade to 0.8 and continue to operate normally. Any applications that customize the storage location or make assumptions about the storage location will need to take this change into consideration. Additionally, after upgrading to 0.8, it is not possible to downgrade to 0.7 without manually moving configuration files. In 1.0, the backward compatibilty will be removed. ----- 0.7.1 ----- * Removed non-ASCII characters from README and CHANGES docs (required by distutils if we're to include them in the long_description). Fixes #55. --- 0.7 --- * Python 3 is now supported. All tests now pass under Python 3.2 on Windows and Linux (although Linux backend support is limited). Fixes #28. * Extension modules on Mac and Windows replaced by pure-Python ctypes implementations. Thanks to Jerome Laheurte. * WinVaultKeyring now supports multiple passwords for the same service. Fixes #47. * Most of the tests don't require user interaction anymore. * Entries stored in Gnome Keyring appears now with a meaningful name if you try to browser your keyring (for ex. with Seahorse) * Tests from Gnome Keyring no longer pollute the user own keyring. * `keyring.util.escape` now accepts only unicode strings. Don't try to encode strings passed to it. ----- 0.6.2 ----- * fix compiling on OSX with XCode 4.0 ----- 0.6.1 ----- * Gnome keyring should not be used if there is no DISPLAY or if the dbus is not around (https://bugs.launchpad.net/launchpadlib/+bug/752282). --- 0.6 --- * Added `keyring.http` for facilitating HTTP Auth using keyring. * Add a utility to access the keyring from the command line.
jperkin
pushed a commit
that referenced
this pull request
Apr 15, 2014
--- 3.7 --- * Gnome keyring no longer relies on the GNOME_KEYRING_CONTROL environment variable. * Issue #140: Restore compatibility for older versions of PyWin32. --- 3.6 --- * `Pull Request #1 (github) <https://github.com/jaraco/keyring/pull/1>`_: Add support for packages that wish to bundle keyring by using relative imports throughout. --- 3.5 --- * Issue #49: Give the backend priorities a 1.5 multiplier bump when an XDG_CURRENT_DESKTOP environment variable matches the keyring's target environment. * Issue #99: Clarified documentation on location of config and data files. Prepared the code base to treat the two differently on Unix-based systems. For now, the behavior is unchanged. --- 3.4 --- * Extracted FileBacked and Encrypted base classes. * Add a pyinstaller hook to expose backend modules. Ref #124 * Pull request #41: Use errno module instead of hardcoding error codes. * SecretService backend: correctly handle cases when user dismissed the collection creation or unlock prompt. --- 3.3 --- * Pull request #40: KWallet backend will now honor the ``KDE_FULL_SESSION`` environment variable as found on openSUSE. ----- 3.2.1 ----- * SecretService backend: use a different function to check that the backend is functional. The default collection may not exist, but the collection will remain usable in that case. Also, make the error message more verbose. Resolves https://bugs.launchpad.net/bugs/1242412. --- 3.2 --- * Issue #120: Invoke KeyringBackend.priority during load_keyring to ensure that any keyring loaded is actually viable (or raises an informative exception). * File keyring: - Issue #123: fix removing items. - Correctly escape item name when removing. - Use with statement when working with files. * Add a test for removing one item in group. * Issue #81: Added experimental support for third-party backends. See `keyring.core._load_library_extensions` for information on supplying a third-party backend. --- 3.1 --- * All code now runs natively on both Python 2 and Python 3, no 2to3 conversion is required. * Testsuite: clean up, and make more use of unittest2 methods. ----- 3.0.5 ----- * Issue #114: Fix logic in pyfs detection. ----- 3.0.4 ----- * Issue #114: Fix detection of pyfs under Mercurial Demand Import. ----- 3.0.3 ----- * Simplified the implementation of ``keyring.core.load_keyring``. It now uses ``__import__`` instead of loading modules explicitly. The ``keyring_path`` parameter to ``load_keyring`` is now deprecated. Callers should instead ensure their module is available on ``sys.path`` before calling ``load_keyring``. Keyring still honors ``keyring-path``. This change fixes Issue #113 in which the explicit module loading of keyring modules was breaking package-relative imports. ----- 3.0.2 ----- * Renamed ``keyring.util.platform`` to ``keyring.util.platform_``. As reported in Issue #112 and `mercurial_keyring #31 <https://bitbucket.org/Mekk/mercurial_keyring/issue/31>`_ and in `Mercurial itself <http://bz.selenic.com/show_bug.cgi?id=4029>`_, Mercurial's Demand Import does not honor ``absolute_import`` directives, so it's not possible to have a module with the same name as another top-level module. A patch is in place to fix this issue upstream, but to support older Mercurial versions, this patch will remain for some time. ----- 3.0.1 ----- * Ensure that modules are actually imported even in Mercurial's Demand Import environment. --- 3.0 --- * Removed support for Python 2.5. * Removed names in ``keyring.backend`` moved in 1.1 and previously retained for compatibilty. ----- 2.1.1 ----- * Restored Python 2.5 compatibility (lost in 2.0). --- 2.1 --- * Issue #10: Added a 'store' attribute to the OS X Keyring, enabling custom instances of the KeyringBackend to use another store, such as the 'internet' store. For example:: keys = keyring.backends.OS_X.Keyring() keys.store = 'internet' keys.set_password(system, user, password) keys.get_password(system, user) The default for all instances can be set in the class:: keyring.backends.OS_X.Keyring.store = 'internet' * GnomeKeyring: fix availability checks, and make sure the warning message from pygobject is not printed. * Fixes to GnomeKeyring and SecretService tests. ----- 2.0.3 ----- * Issue #112: Backend viability/priority checks now are more aggressive about module presence checking, requesting ``__name__`` from imported modules to force the demand importer to actually attempt the import. ----- 2.0.2 ----- * Issue #111: Windows backend isn't viable on non-Windows platforms. ----- 2.0.1 ----- * Issue #110: Fix issues with ``Windows.RegistryKeyring``. --- 2.0 --- * Issue #80: Prioritized backend support. The primary interface for Keyring backend classes has been refactored to now emit a 'priority' based on the current environment (operating system, libraries available, etc). These priorities provide an indication of the applicability of that backend for the current environment. Users are still welcome to specify a particular backend in configuration, but the default behavior should now be to select the most appropriate backend by default. ----- 1.6.1 ----- * Only include pytest-runner in 'setup requirements' when ptr invocation is indicated in the command-line (Issue #105). --- 1.6 --- * GNOME Keyring backend: - Use the same attributes (``username`` / ``service``) as the SecretService backend uses, allow searching for old ones for compatibility. - Also set ``application`` attribute. - Correctly handle all types of errors, not only ``CANCELLED`` and ``NO_MATCH``. - Avoid printing warnings to stderr when GnomeKeyring is not available. * Secret Service backend: - Use a better label for passwords, the same as GNOME Keyring backend uses. --- 1.5 --- * SecretService: allow deleting items created using previous python-keyring versions. Before the switch to secretstorage, python-keyring didn't set "application" attribute. Now in addition to supporting searching for items without that attribute, python-keyring also supports deleting them. * Use ``secretstorage.get_default_collection`` if it's available. On secretstorage 1.0 or later, python-keyring now tries to create the default collection if it doesn't exist, instead of just raising the error. * Improvements for tests, including fix for Issue #102. --- 1.4 --- * Switch GnomeKeyring backend to use native libgnome-keyring via GObject Introspection, not the obsolete python-gnomekeyring module. --- 1.3 --- * Use the `SecretStorage library <https://pypi.python.org/pypi/SecretStorage>`_ to implement the Secret Service backend (instead of using dbus directly). Now the keyring supports prompting for and deleting passwords. Fixes #69, #77, and #93. * Catch `gnomekeyring.IOError` per the issue `reported in Nova client <https://bugs.launchpad.net/python-novaclient/+bug/1116302>`_. * Issue #92 Added support for delete_password on Mac OS X Keychain. ----- 1.2.3 ----- * Fix for Encrypted File backend on Python 3. * Issue #97 Improved support for PyPy. ----- 1.2.2 ----- * Fixed handling situations when user cancels kwallet dialog or denies access for the app. ----- 1.2.1 ----- * Fix for kwallet delete. * Fix for OS X backend on Python 3. * Issue #84: Fix for Google backend on Python 3 (use of raw_input not caught by 2to3). --- 1.2 --- * Implemented delete_password on most keyrings. Keyring 2.0 will require delete_password to implement a Keyring. Fixes #79. ----- 1.1.2 ----- * Issue #78: pyfilesystem backend now works on Windows. ----- 1.1.1 ----- * Fixed MANIFEST.in so .rst files are included. --- 1.1 --- This is the last build that will support installation in a pure-distutils mode. Subsequent releases will require setuptools/distribute to install. Python 3 installs have always had this requirement (for 2to3 install support), but starting with the next minor release (1.2+), setuptools will be required. Additionally, this release has made some substantial refactoring in an attempt to modularize the backends. An attempt has been made to maintain 100% backward-compatibility, although if your library does anything fancy with module structure or clasess, some tweaking may be necessary. The backward-compatible references will be removed in 2.0, so the 1.1+ releases represent a transitional implementation which should work with both legacy and updated module structure. * Added a console-script 'keyring' invoking the command-line interface. * Deprecated _ExtensionKeyring. * Moved PasswordSetError and InitError to an `errors` module (references kept for backward-compatibility). * Moved concrete backend implementations into their own modules (references kept for backward compatibility): - OSXKeychain -> backends.OS_X.Keyring - GnomeKeyring -> backends.Gnome.Keyring - SecretServiceKeyring -> backends.SecretService.Keyring - KDEKWallet -> backends.kwallet.Keyring - BasicFileKeyring -> backends.file.BaseKeyring - CryptedFileKeyring -> backends.file.EncryptedKeyring - UncryptedFileKeyring -> backends.file.PlaintextKeyring - Win32CryptoKeyring -> backends.Windows.EncryptedKeyring - WinVaultKeyring -> backends.Windows.WinVaultKeyring - Win32CryptoRegistry -> backends.Windows.RegistryKeyring - select_windows_backend -> backends.Windows.select_windows_backend - GoogleDocsKeyring -> backends.Google.DocsKeyring - Credential -> keyring.credentials.Credential - BaseCredential -> keyring.credentials.SimpleCredential - EnvironCredential -> keyring.credentials.EnvironCredential - GoogleEnvironCredential -> backends.Google.EnvironCredential - BaseKeyczarCrypter -> backends.keyczar.BaseCrypter - KeyczarCrypter -> backends.keyczar.Crypter - EnvironKeyczarCrypter -> backends.keyczar.EnvironCrypter - EnvironGoogleDocsKeyring -> backends.Google.KeyczarDocsKeyring - BasicPyfilesystemKeyring -> backends.pyfs.BasicKeyring - UnencryptedPyfilesystemKeyring -> backends.pyfs.PlaintextKeyring - EncryptedPyfilesystemKeyring -> backends.pyfs.EncryptedKeyring - EnvironEncryptedPyfilesystemKeyring -> backends.pyfs.KeyczarKeyring - MultipartKeyringWrapper -> backends.multi.MultipartKeyringWrapper * Officially require Python 2.5 or greater (although unofficially, this requirement has been in place since 0.10). --- 1.0 --- This backward-incompatible release attempts to remove some cruft from the codebase that's accumulated over the versions. * Removed legacy file relocation support. `keyring` no longer supports loading configuration or file-based backends from ~. If upgrading from 0.8 or later, the files should already have been migrated to their new proper locations. If upgrading from 0.7.x or earlier, the files will have to be migrated manually. * Removed CryptedFileKeyring migration support. To maintain an existing CryptedFileKeyring, one must first upgrade to 0.9.2 or later and access the keyring before upgrading to 1.0 to retain the existing keyring. * File System backends now create files without group and world permissions. Fixes #67. ------ 0.10.1 ------ * Merged 0.9.3 to include fix for #75. ---- 0.10 ---- * Add support for using `Keyczar <http://www.keyczar.org/>`_ to encrypt keyrings. Keyczar is "an open source cryptographic toolkit designed to make it easier and safer for developers to use cryptography in their applications." * Added support for storing keyrings on Google Docs or any other filesystem supported by pyfilesystem. * Fixed issue in Gnome Keyring when unicode is passed as the service name, username, or password. * Tweaked SecretService code to pass unicode to DBus, as unicode is the preferred format. * Issue #71 - Fixed logic in CryptedFileKeyring. * Unencrypted keyring file will be saved with user read/write (and not group or world read/write). ----- 0.9.3 ----- * Ensure migration is run when get_password is called. Fixes #75. Thanks to Marc Deslauriers for reporting the bug and supplying the patch. ----- 0.9.2 ----- * Keyring 0.9.1 introduced a whole different storage format for the CryptedFileKeyring, but this introduced some potential compatibility issues. This release incorporates the security updates but reverts to the INI file format for storage, only encrypting the passwords and leaving the service and usernames in plaintext. Subsequent releases may incorporate a new keyring to implement a whole-file encrypted version. Fixes #64. * The CryptedFileKeyring now requires simplejson for Python 2.5 clients. ----- 0.9.1 ----- * Fix for issue where SecretServiceBackend.set_password would raise a UnicodeError on Python 3 or when a unicode password was provided on Python 2. * CryptedFileKeyring now uses PBKDF2 to derive the key from the user's password and a random hash. The IV is chosen randomly as well. All the stored passwords are encrypted at once. Any keyrings using the old format will be automatically converted to the new format (but will no longer be compatible with 0.9 and earlier). The user's password is no longer limited to 32 characters. PyCrypto 2.5 or greater is now required for this keyring. --- 0.9 --- * Add support for GTK 3 and secret service D-Bus. Fixes #52. * Issue #60 - Use correct method for decoding. ----- 0.8.1 ----- * Fix regression in keyring lib on Windows XP where the LOCALAPPDATA environment variable is not present. --- 0.8 --- * Mac OS X keyring backend now uses subprocess calls to the `security` command instead of calling the API, which with the latest updates, no longer allows Python to invoke from a virtualenv. Fixes issue #13. * When using file-based storage, the keyring files are no longer stored in the user's home directory, but are instead stored in platform-friendly locations (`%localappdata%\Python Keyring` on Windows and according to the freedesktop.org Base Dir Specification (`$XDG_DATA_HOME/python_keyring` or `$HOME/.local/share/python_keyring`) on other operating systems). This fixes #21. *Backward Compatibility Notice* Due to the new storage location for file-based keyrings, keyring 0.8 supports backward compatibility by automatically moving the password files to the updated location. In general, users can upgrade to 0.8 and continue to operate normally. Any applications that customize the storage location or make assumptions about the storage location will need to take this change into consideration. Additionally, after upgrading to 0.8, it is not possible to downgrade to 0.7 without manually moving configuration files. In 1.0, the backward compatibilty will be removed. ----- 0.7.1 ----- * Removed non-ASCII characters from README and CHANGES docs (required by distutils if we're to include them in the long_description). Fixes #55. --- 0.7 --- * Python 3 is now supported. All tests now pass under Python 3.2 on Windows and Linux (although Linux backend support is limited). Fixes #28. * Extension modules on Mac and Windows replaced by pure-Python ctypes implementations. Thanks to Jerome Laheurte. * WinVaultKeyring now supports multiple passwords for the same service. Fixes #47. * Most of the tests don't require user interaction anymore. * Entries stored in Gnome Keyring appears now with a meaningful name if you try to browser your keyring (for ex. with Seahorse) * Tests from Gnome Keyring no longer pollute the user own keyring. * `keyring.util.escape` now accepts only unicode strings. Don't try to encode strings passed to it. ----- 0.6.2 ----- * fix compiling on OSX with XCode 4.0 ----- 0.6.1 ----- * Gnome keyring should not be used if there is no DISPLAY or if the dbus is not around (https://bugs.launchpad.net/launchpadlib/+bug/752282). --- 0.6 --- * Added `keyring.http` for facilitating HTTP Auth using keyring. * Add a utility to access the keyring from the command line.
jperkin
pushed a commit
that referenced
this pull request
Apr 28, 2014
Add test Upstream changes: 1.5.6 (2014-04-14) Bug fixes: Check the last line even if it has no end-of-line. (Issue #273) 1.5.5 (2014-04-10) Bug fixes: Fix regression with E22 checks and inline comments. (Issue #271) 1.5.4 (2014-04-07) Bug fixes: Fix negative offset with E303 before a multi-line docstring. (Issue #269) 1.5.3 (2014-04-04) Bug fixes: Fix wrong offset computation when error is on the last char of a physical line. (Issue #268) 1.5.2 (2014-04-04) Changes: Distribute a universal wheel file. Bug fixes: Report correct line number for E303 with comments. (Issue #60) Do not allow newline after parameter equal. (Issue #252) Fix line number reported for multi-line strings. (Issue #220) Fix false positive E121/E126 with multi-line strings. (Issue #265) Fix E501 not detected in comments with Python 2.5. Fix caret position with --show-source when line contains tabs. 1.5.1 (2014-03-27) Bug fixes: Fix a crash with E125 on multi-line strings. (Issue #263) 1.5 (2014-03-26) Changes: Report E129 instead of E125 for visually indented line with same indent as next logical line. (Issue #126) Report E265 for space before block comment. (Issue #190) Report E713 and E714 when operators not in and is not are recommended. (Issue #236) Allow long lines in multiline strings and comments if they cannot be wrapped. (Issue #224). Optionally disable physical line checks inside multiline strings, using # noqa. (Issue #242) Change text for E121 to report "continuation line under-indented for hanging indent" instead of indentation not being a multiple of 4. Report E131 instead of E121 / E126 if the hanging indent is not consistent within the same continuation block. It helps when error E121 or E126 is in the ignore list. Report E126 instead of E121 when the continuation line is hanging with extra indentation, even if indentation is not a multiple of 4. Bug fixes: Allow the checkers to report errors on empty files. (Issue #240) Fix ignoring too many checks when --select is used with codes declared in a flake8 extension. (Issue #216) Fix regression with multiple brackets. (Issue #214) Fix StyleGuide to parse the local configuration if the keyword argument paths is specified. (Issue #246) Fix a false positive E124 for hanging indent. (Issue #254) Fix a false positive E126 with embedded colon. (Issue #144) Fix a false positive E126 when indenting with tabs. (Issue #204) Fix behaviour when exclude is in the configuration file and the current directory is not the project directory. (Issue #247) The logical checks can return None instead of an empty iterator. (Issue #250) Do not report multiple E101 if only the first indentation starts with a tab. (Issue #237) Fix a rare false positive W602. (Issue #34) 1.4.6 (2013-07-02) Changes: Honor # noqa for errors E711 and E712. (Issue #180) When both a tox.ini and a setup.cfg are present in the project directory, merge their contents. The tox.ini file takes precedence (same as before). (Issue #182) Give priority to --select over --ignore. (Issue #188) Compare full path when excluding a file. (Issue #186) New option --hang-closing to switch to the alternative style of closing bracket indentation for hanging indent. Add error E133 for closing bracket which is missing indentation. (Issue #103) Accept both styles of closing bracket indentation for hanging indent. Do not report error E123 in the default configuration. (Issue #103) Bug fixes: Do not crash when running AST checks and the document contains null bytes. (Issue #184) Correctly report other E12 errors when E123 is ignored. (Issue #103) Fix false positive E261/E262 when the file contains a BOM. (Issue #193) Fix E701, E702 and E703 not detected sometimes. (Issue #196) Fix E122 not detected in some cases. (Issue #201 and #208) Fix false positive E121 with multiple brackets. (Issue #203) 1.4.5 (2013-03-06) When no path is specified, do not try to read from stdin. The feature was added in 1.4.3, but it is not supported on Windows. Use - filename argument to read from stdin. This usage is supported since 1.3.4. (Issue #170) Do not require setuptools in setup.py. It works around an issue with pip and Python 3. (Issue #172) Add __pycache__ to the ignore list. Change misleading message for E251. (Issue #171) Do not report false E302 when the source file has a coding cookie or a comment on the first line. (Issue #174) Reorganize the tests and add tests for the API and for the command line usage and options. (Issues #161 and #162) Ignore all checks which are not explicitly selected when select is passed to the StyleGuide constructor. 1.4.4 (2013-02-24) Report E227 or E228 instead of E225 for whitespace around bitwise, shift or modulo operators. (Issue #166) Change the message for E226 to make clear that it is about arithmetic operators. Fix a false positive E128 for continuation line indentation with tabs. Fix regression with the --diff option. (Issue #169) Fix the TestReport class to print the unexpected warnings and errors. 1.4.3 (2013-02-22) Hide the --doctest and --testsuite options when installed. Fix crash with AST checkers when the syntax is invalid. (Issue #160) Read from standard input if no path is specified. Initiate a graceful shutdown on Control+C. Allow to change the checker_class for the StyleGuide. 1.4.2 (2013-02-10) Support AST checkers provided by third-party applications. Register new checkers with register_check(func_or_cls, codes). Allow to construct a StyleGuide with a custom parser. Accept visual indentation without parenthesis after the if statement. (Issue #151) Fix UnboundLocalError when using # noqa with continued lines. (Issue #158) Re-order the lines for the StandardReport. Expand tabs when checking E12 continuation lines. (Issue #155) Refactor the testing class TestReport and the specific test functions into a separate test module. 1.4.1 (2013-01-18) Allow sphinx.ext.autodoc syntax for comments. (Issue #110) Report E703 instead of E702 for the trailing semicolon. (Issue #117) Honor # noqa in addition to # nopep8. (Issue #149) Expose the OptionParser factory for better extensibility. 1.4 (2012-12-22) Report E226 instead of E225 for optional whitespace around common operators (*, **, /, + and -). This new error code is ignored in the default configuration because PEP 8 recommends to "use your own judgement". (Issue #96) Lines with a # nopep8 at the end will not issue errors on line length E501 or continuation line indentation E12*. (Issue #27) Fix AssertionError when the source file contains an invalid line ending "\r\r\n". (Issue #119) Read the [pep8] section of tox.ini or setup.cfg if present. (Issue #93 and #141) Add the Sphinx-based documentation, and publish it on http://pep8.readthedocs.org/. (Issue #105)
jperkin
pushed a commit
that referenced
this pull request
Jun 2, 2014
Add test Upstream changes: 1.5.6 (2014-04-14) Bug fixes: Check the last line even if it has no end-of-line. (Issue #273) 1.5.5 (2014-04-10) Bug fixes: Fix regression with E22 checks and inline comments. (Issue #271) 1.5.4 (2014-04-07) Bug fixes: Fix negative offset with E303 before a multi-line docstring. (Issue #269) 1.5.3 (2014-04-04) Bug fixes: Fix wrong offset computation when error is on the last char of a physical line. (Issue #268) 1.5.2 (2014-04-04) Changes: Distribute a universal wheel file. Bug fixes: Report correct line number for E303 with comments. (Issue #60) Do not allow newline after parameter equal. (Issue #252) Fix line number reported for multi-line strings. (Issue #220) Fix false positive E121/E126 with multi-line strings. (Issue #265) Fix E501 not detected in comments with Python 2.5. Fix caret position with --show-source when line contains tabs. 1.5.1 (2014-03-27) Bug fixes: Fix a crash with E125 on multi-line strings. (Issue #263) 1.5 (2014-03-26) Changes: Report E129 instead of E125 for visually indented line with same indent as next logical line. (Issue #126) Report E265 for space before block comment. (Issue #190) Report E713 and E714 when operators not in and is not are recommended. (Issue #236) Allow long lines in multiline strings and comments if they cannot be wrapped. (Issue #224). Optionally disable physical line checks inside multiline strings, using # noqa. (Issue #242) Change text for E121 to report "continuation line under-indented for hanging indent" instead of indentation not being a multiple of 4. Report E131 instead of E121 / E126 if the hanging indent is not consistent within the same continuation block. It helps when error E121 or E126 is in the ignore list. Report E126 instead of E121 when the continuation line is hanging with extra indentation, even if indentation is not a multiple of 4. Bug fixes: Allow the checkers to report errors on empty files. (Issue #240) Fix ignoring too many checks when --select is used with codes declared in a flake8 extension. (Issue #216) Fix regression with multiple brackets. (Issue #214) Fix StyleGuide to parse the local configuration if the keyword argument paths is specified. (Issue #246) Fix a false positive E124 for hanging indent. (Issue #254) Fix a false positive E126 with embedded colon. (Issue #144) Fix a false positive E126 when indenting with tabs. (Issue #204) Fix behaviour when exclude is in the configuration file and the current directory is not the project directory. (Issue #247) The logical checks can return None instead of an empty iterator. (Issue #250) Do not report multiple E101 if only the first indentation starts with a tab. (Issue #237) Fix a rare false positive W602. (Issue #34) 1.4.6 (2013-07-02) Changes: Honor # noqa for errors E711 and E712. (Issue #180) When both a tox.ini and a setup.cfg are present in the project directory, merge their contents. The tox.ini file takes precedence (same as before). (Issue #182) Give priority to --select over --ignore. (Issue #188) Compare full path when excluding a file. (Issue #186) New option --hang-closing to switch to the alternative style of closing bracket indentation for hanging indent. Add error E133 for closing bracket which is missing indentation. (Issue #103) Accept both styles of closing bracket indentation for hanging indent. Do not report error E123 in the default configuration. (Issue #103) Bug fixes: Do not crash when running AST checks and the document contains null bytes. (Issue #184) Correctly report other E12 errors when E123 is ignored. (Issue #103) Fix false positive E261/E262 when the file contains a BOM. (Issue #193) Fix E701, E702 and E703 not detected sometimes. (Issue #196) Fix E122 not detected in some cases. (Issue #201 and #208) Fix false positive E121 with multiple brackets. (Issue #203) 1.4.5 (2013-03-06) When no path is specified, do not try to read from stdin. The feature was added in 1.4.3, but it is not supported on Windows. Use - filename argument to read from stdin. This usage is supported since 1.3.4. (Issue #170) Do not require setuptools in setup.py. It works around an issue with pip and Python 3. (Issue #172) Add __pycache__ to the ignore list. Change misleading message for E251. (Issue #171) Do not report false E302 when the source file has a coding cookie or a comment on the first line. (Issue #174) Reorganize the tests and add tests for the API and for the command line usage and options. (Issues #161 and #162) Ignore all checks which are not explicitly selected when select is passed to the StyleGuide constructor. 1.4.4 (2013-02-24) Report E227 or E228 instead of E225 for whitespace around bitwise, shift or modulo operators. (Issue #166) Change the message for E226 to make clear that it is about arithmetic operators. Fix a false positive E128 for continuation line indentation with tabs. Fix regression with the --diff option. (Issue #169) Fix the TestReport class to print the unexpected warnings and errors. 1.4.3 (2013-02-22) Hide the --doctest and --testsuite options when installed. Fix crash with AST checkers when the syntax is invalid. (Issue #160) Read from standard input if no path is specified. Initiate a graceful shutdown on Control+C. Allow to change the checker_class for the StyleGuide. 1.4.2 (2013-02-10) Support AST checkers provided by third-party applications. Register new checkers with register_check(func_or_cls, codes). Allow to construct a StyleGuide with a custom parser. Accept visual indentation without parenthesis after the if statement. (Issue #151) Fix UnboundLocalError when using # noqa with continued lines. (Issue #158) Re-order the lines for the StandardReport. Expand tabs when checking E12 continuation lines. (Issue #155) Refactor the testing class TestReport and the specific test functions into a separate test module. 1.4.1 (2013-01-18) Allow sphinx.ext.autodoc syntax for comments. (Issue #110) Report E703 instead of E702 for the trailing semicolon. (Issue #117) Honor # noqa in addition to # nopep8. (Issue #149) Expose the OptionParser factory for better extensibility. 1.4 (2012-12-22) Report E226 instead of E225 for optional whitespace around common operators (*, **, /, + and -). This new error code is ignored in the default configuration because PEP 8 recommends to "use your own judgement". (Issue #96) Lines with a # nopep8 at the end will not issue errors on line length E501 or continuation line indentation E12*. (Issue #27) Fix AssertionError when the source file contains an invalid line ending "\r\r\n". (Issue #119) Read the [pep8] section of tox.ini or setup.cfg if present. (Issue #93 and #141) Add the Sphinx-based documentation, and publish it on http://pep8.readthedocs.org/. (Issue #105)
jperkin
pushed a commit
that referenced
this pull request
Jun 2, 2014
Changes from Relase Notes page: http://www.joewing.net/projects/jwm/release-2.2.shtml Changes in 2.2.1 * JWM no longer waits for an X11 event when exiting. This fixes an issue where Control+C didn't cause JWM to exit immediately (issue #104). * Fixed a crash if a window went away while a JWM confirm dialog was active for the window. * Fixed some issues related to aspect ratios (issue #106). * Fixed handling of window gravity for _NET_MOVERESIZE_WINDOW. * Added support for XBM icons (issue #107). * Fixed an issue with resizing of dock icons. * Fixed an issue with command line argument parsing. Changes in 2.2.2 * More efficient handling of gradient backgrounds. * Fixed an issue _NET_WM_STATE not being updated (issue #109). * Improved the performance of moving/resizing windows. * Made it possible to switch desktops immediately while dragging a window if mod1 is pressed (issue #12). * Fixed an issue with windows mapping behind other windows (issue #110). * Fixed an issue where JWM would attempt to process the last X event multiple times before exiting or restarting. * Made newer desktop background settings override older settings. * Fixed a memory leak with invalid configuration files.
jperkin
pushed a commit
that referenced
this pull request
Dec 1, 2014
Changelog: ## JFlex 1.6.0 - Unicode 7.0 is supported. - In %unicode mode, supplementary code points are now handled properly. . Regular expressions are now code-point based, rather than code-unit/ char based. . Input streams are read as code point sequences - properly paired surrogate code units are read as a single character. . All supported Unicode properties now match supplementary characters when Unicode 3.0 or above is specified, or when no version is specified, causing the default Unicode version, Unicode 7.0 in this release, to be used. - New \u{...} escape sequence allows code points (and whitespace-separated sequences of code points) to be specified as 1-6 hexadecimal digit values. - Characters in matches printed in %debug mode are now Unicode escaped (\uXXXX) when they are outside the range 32..127. - fixed bug #127, detect javadoc class comment when followed by annotation(s) - removed the "switch" and "table" code generation options - By default no InputStream constructor is included in the generated scanner. The capability to include one is deprecated and will be removed in JFlex 1.7. ## JFlex 1.5.1 (Mar 21, 2014) - fixed bug #126, problem calling ./jflex start scripts - fixed bug #125, minor documentation flaws - further documentation and website updates - JFlex now reports the correct version string - added support for CUP2 with %cup2 switch, based on patch by Andreas Wenger ## JFlex 1.5.0 (Jan 21, 2014) - the "switch" and "table" code generation options are deprecated and will be removed in JFlex 1.6 - the JFlex license has been changed from GPL to BSD. - updated JFlex to CUP version 0.11a. - changed the build from Ant to Maven. - JFlex now mostly conforms with Unicode Regular Expressions UTS#18 Basic Unicode Support - Level 1. Supplementary code points (above the Basic Multilingual Plane) are not yet supported. - new meta characters supported: `\s, \S, \d, \D, \w, \W`. - nested character sets now supported, e.g. [[[ABC]D]E[FG]] - new character set operations supported: union (e.g. [A||B]), intersection (e.g. [A&&B]), set-difference (e.g. [A--B]), and symmetric difference (e.g. [A~~B]). - the meaning of the dot (".") meta character has been changed from `[^\n]` to `[^\n\r\u000B\u000C\u0085\u2028\u2029]`. Use the new `--legacydot` option to cause "." to be interpreted as `[^\n]`. - new `\R` meta character matches any newline: `"\r\n" | [\n\r\u000B\u000C\u0085\u2028\u2029]`. - new option --noinputstreamctor to not include an InputStream constructor in the generated scanner. - %include <file> can now be used in the rules section (bug #116) - fixed bug #105 & #106 (yychar and zzAtBOL should be reset for nested input streams) - fixed bug #107 (could not match input for empty string matches.) - fixed bug #110 & #118 (properly update zzFin when reallocating zzBuffer) - fixed bug #114 (noncompileable scanner generation when default locale is Turkish) - fixed bug #113 (zzEOFDone not included with pushed nested stream state) - fixed bug #103 (can't build examples/java/) - fixed bug #104 (impossible char class range should trigger syntax error)
jperkin
pushed a commit
that referenced
this pull request
Mar 16, 2015
# 1.7.3 - Security: redact password in URI from logs (#349 / OSVDB-117461) - Drop monkey patch on MIME::Types (added `type_for_extension` method, use the public interface instead. # 1.7.2 - Ignore duplicate certificates in CA store on Windows # 1.7.1 - Relax mime-types dependency to continue supporting mime-types 1.x series. There seem to be a large number of popular gems that have depended on mime-types '~> 1.16' until very recently. - Improve urlencode performance - Clean up a number of style points # 1.7.0 - This release drops support for Ruby 1.8.7 and breaks compatibility in a few other relatively minor ways - Upgrade to mime-types ~> 2.0 - Don't CGI.unescape cookie values sent to the server (issue #89) - Add support for reading credentials from netrc - Lots of SSL changes and enhancements: (#268) - Enable peer verification by default (setting `VERIFY_PEER` with OpenSSL) - By default, use the system default certificate store for SSL verification, even on Windows (this uses a separate Windows build that pulls in ffi) - Add support for SSL `ca_path` - Add support for SSL `cert_store` - Add support for SSL `verify_callback` (with some caveats for jruby, OS X, #277) - Add support for SSL ciphers, and choose secure ones by default - Run tests under travis - Several other bugfixes and test improvements - Convert Errno::ETIMEDOUT to RestClient::RequestTimeout - Handle more HTTP response codes from recent standards - Save raw responses to binary mode tempfile (#110) - Disable timeouts with :timeout => nil rather than :timeout => -1 - Drop all Net::HTTP monkey patches # 1.6.8 - The 1.6.x series will be the last to support Ruby 1.8.7 - Pin mime-types to < 2.0 to maintain Ruby 1.8.7 support - Add Gemfile, AUTHORS, add license to gemspec - Point homepage at https://github.com/rest-client/rest-client - Clean up and fix various tests and ruby warnings - Backport `ssl_verify_callback` functionality from 1.7.0
jperkin
pushed a commit
that referenced
this pull request
Mar 16, 2015
Fix bug #97: Add ability to change envelope sender, client IP address, client hostname, and HELO value used in test mode, via environment variables. This can be turned into something more formal in a later release. Fix bug #102: Don't lose SPF results and output the "-1" default. Fix bug #103: Fix IgnoreAuthenticatedClients by requesting the right macro value from the MTA. Fix bug #113: Remove "TemporaryDirectory" (unused). LIBOPENDMARC: Fix bug #104: Include <sys/param.h> and <resolv.h> in <opendmarc/dmarc.h> so that MAXPATHLEN and MAXNS get defined consistently. LIBOPENDMARC: Fix bug #105: Get the h_errno definition from <netdb.h> rather than declaring it. LIBOPENDMARC: Fix bug #106: Clean up issues with the types passed to opendmarc_policy_library_dns_hook(). DOCS: Fix bug #99: Update list of constraints on opendmarc_policy_fetch_alignment(). REPORTS: Fix bug #108: Handle malformed mailto URIs in DMARC records (e.g., just "mailto:"). REPORTS: Fix bug #110: Support SQL backend selection in opendmarc-expire.
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 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
Jan 17, 2016
* Disable debug library Changelog: Release 1.6.1 (2015-08-03) ========================== - added project and solution files for Visual Studio 2015 - upgraded bundled SQLite to 3.8.11.1 - fixed GH #782: Poco::JSON::PrintHandler not working for nested arrays - fixed GH #819: JSON Stringifier fails with preserve insert order - fixed GH #878: UUID tryParse - fixed GH #869: FIFOBuffer::read(T*, std::size_t) documentation inaccurate - fixed GH #861: Var BadCastException - fixed GH #779: BUG in 1.6.0 Zip code - fixed GH #769: Poco::Var operator== throws exception - fixed GH #766: Poco::JSON::PrintHandler not working for objects in array - fixed GH #763: Unable to build static with NetSSL_OpenSSL for OS X - fixed GH #750: BsonWriter::write<Binary::Ptr> missing size ? - fixed GH #741: Timestamp anomaly in Poco::Logger on WindowsCE - fixed GH #735: WEC2013 build fails due to missing Poco::Path methods. - fixed GH #722: poco-1.6.0: Unicode Converter Test confuses string and char types - fixed GH #719: StreamSocket::receiveBytes and FIFOBuffer issue in 1.6 - fixed GH #706: POCO1.6 Sample EchoServer BUG - fixed GH #646: Prevent possible data race in access to Timer::_periodicInerval - DeflatingStream: do not flush underlying stream on sync() as these can cause corrupted files in Zip archives Release 1.6.0 (2014-12-22) ========================== - fixed GH #625: MongoDB ensureIndex double insert? - fixed GH #622: Crypto: RSATest::testSign() should verify with public key only - fixed GH #620: Data documentation sample code outdated - fixed GH #618: OS X 10.10 defines PAGE_SIZE macro, conflicts with PAGE_SIZE in Thread_POSIX.cpp - fixed GH #616: Visual Studio warning C4244 - fixed GH #612: OpenSSLInitializer calls OPENSSL_config but not CONF_modules_free - fixed GH #608: (Parallel)SocketAcceptor ctor/dtor call virtual functions - fixed GH #607: Idle Reactor high CPU usage - fixed GH #606: HTMLForm constructor read application/x-www-form-urlencoded UTF-8 request body first parameter with BOM in name - fixed GH #596: For OpenSSL 1.0.1, include openssl/crypto.h not openssl/fips.h - fixed GH #592: Incorrect format string in Poco::Dynamic::Struct - fixed GH #590: Poco::Data::SQlite doesn't support URI filenames - fixed GH #564: URI::encode - fixed GH #560: DateTime class calculates a wrong day - fixed GH #549: Memory allocation is not safe between fork() and execve() - fixed GH #500: SSLManager causes a crash - fixed GH #490: 2 byte frame with payload length of 0 throws "Incomplete Frame Received" exception - fixed GH #483: multiple cases for sqlite_busy - fixed GH #482: Poco::JSON::Stringifier::stringify bad behaviour - fixed GH #478: HTTPCredentials not according to HTTP spec - fixed GH #471: vs2010 release builds have optimization disabled ? - fixed GH #468: HTTPClientSession/HTTPResponse not forwarding exceptions - fixed GH #438: Poco::File::setLastModified() doesn't work - fixed GH #402: StreamSocket::receiveBytes(FIFOBuffer&) and sendBytes(FIFOBuffer&) are not thread safe - fixed GH #345: Linker warning LNK4221 in Foundation for SignalHandler.obj, String.obj and ByteOrder.obj - fixed GH #331: Poco::Zip does not support files with ".." in the name. - fixed GH #318: Logger local time doesn't automatically account for DST - fixed GH #294: Poco::Net::TCPServerParams::setMaxThreads(int count) will not accept count == 0. - fixed GH #215: develop WinCE build broken - fixed GH #63: Net::NameValueCollection::size() returns int - Poco::Logger: formatting methods now support up to 10 arguments. - added Poco::Timestamp::raw() - Poco::DeflatingOutputStream and Poco::InflatingOutputStreams also flush underlying stream on flush()/sync(). - Poco::Util::Timer: prevent re-schedule of cancelled TimerTask - enabled WinRegistryKey and WinRegistryConfiguration for WinCE - Poco::BasicEvent improvements and preparations for future support of lambdas/std::function - upgraded bundled sqlite to 3.8.7.2 - Poco::Thread: added support for starting functors/lambdas - Poco::Net::HTTPClientSession: added support for global proxy configuration - added support for OAuth 1.0/2.0 via Poco::Net::OAuth10Credentials and Poco::Net::OAuth20Credentials classes. - Poco::Net::IPAddress: fixed IPv6 prefix handling issue on Windows - added Poco::Timestamp::TIMEVAL_MIN and Poco::Timestamp::TIMEVAL_MAX - added Poco::Clock::CLOCKVAL_MIN and Poco::Clock::CLOCKVAL_MAX - added poco_assert_msg() and poco_assert_msg_dbg() macros - Poco::Net::Context: fixed a memory leak if the CA file was not found while creating the Context object (the underlying OpenSSL context would leak) - Poco::URI: added new constructor to create URI from Path - Various documentation and style fixes - Removed support (project/solution files) for Visual Studio.NET 2003 and Visual Studio 2005. - Improved CMake support Release 1.5.4 (2014-10-14) ========================== - fixed GH #326: compile Net lib 1.5.2 without UTF8 support enabled - fixed GH #518: NetworkInterface.cpp compile error w/ POCO_NO_WSTRING (1.5.3) - Fixed MSVC 2010 warnings on large alignment - make HTTPAuthenticationParams::parse() add value on end of string - fixed GH #482: Poco::JSON::Stringifier::stringify bad behaviour - fixed GH #508: Can't compile for arm64 architecture - fixed GH #510: Incorrect RSAKey construction from istream - fix SharedMemory for WinCE/WEC2013 - Add NIOS2 double conversion detection, fixes compile errors - added VS2013 project/solution files for Windows Embedded Compact 2013 - added Process::isRunning() - NetSSL: Fix typo in documentation - NetSSL_OpenSSL: support for TLS 1.1 and 1.2 - Zip: Added CM_AUTO, which automatically selects CM_STORE or CM_DEFLATE based on file extension. Used to avoid double-compression of already compressed file formats such as images. - added %L modifier to PatternFormatter to switch to local time - removed unnecessary explicit in some multi-arg constructors - Allow SecureStreamSocket::attach() to be used in server connections - added Var::isBoolean() and fixed JSON stringifier - added poco_unexpected() macro invoking Bugcheck::unexpected() to deal with unexpected exceptions in destructors - fixed GH #538 prevent destructors from throwing exceptions - improved HTTP server handling of errors while reading header - fixed GH #545: use short for sign - upgraded SQLite to 3.8.6 - fixed GH #550 WebSocket fragmented message problem - improved HTTPClientSession handling of network errors while sending the request - updated bundled PCRE to 8.35.0 - fixed GH #552: FIFOBuffer drain() problem - fixed GH #402: StreamSocket::receiveBytes(FIFOBuffer&) and sendBytes(FIFOBuffer&) are not thread safe - HTTPCookie: fix documentation for max age - added Timestamp::raw() and Clock::raw() - Poco::Buffer properly handles zero-sized buffers - GH #512: Poco:Data:ODBC:Binder.h causes a crash - Added Crypto_Win and NetSSL_Win libraries which are re-implementations of existing Crypto and NetSSL_OpenSSL libraries based on WinCrypt/Schannel. The new libraries can be used as an almost drop-in replacement for the OpenSSL based libraries on Windows and Windows Embedded Compact platforms. Only available from GitHub for now. Release 1.5.3 (2014-06-30) ========================== - fixed GH# 316: Poco::DateTimeFormatter::append() gives wrong result for Poco::LocalDateTime - Poco::Data::MySQL: added SQLite thread cleanup handler - Poco::Net::X509Certificate: improved and fixed domain name verification for wildcard domains - added Poco::Clock class, which uses a system-provided monotonic clock (if available) and is thus not affected by system realtime clock changes. Monotonic Clock is available on Windows, Linux, OS X and on POSIX platforms supporting clock_gettime() and CLOCK_MONOTONIC. - Poco::Timer, Poco::Stopwatch, Poco::TimedNotificationQueue and Poco::Util::Timer have been changed to use Poco::Clock instead of Poco::Timestamp and are now unaffected by system realtime clock changes. - fixed GH# 350: Memory leak in Data/ODBC with BLOB - Correctly set MySQL time_type for Poco::Data::Date. - fixed GH #352: Removed redundant #includes and fixed spelling mistakes. - fixed setting of MYSQL_BIND is_unsigned value. - fixed GH #360: CMakeLists foundation: add Clock.cpp in the list of source files - Add extern "C" around <net/if.h> on HPUX platform. - added runtests.sh - fixed CPPUNIT_IGNORE parsing - fixed Glob from start path, for platforms not alowing transverse from root (Android) - added NTPClient (Rangel Reale) - added PowerShell build script - added SmartOS build support - fix warnings in headers - XMLWriter: removed unnecessary apostrophe escaping (&apos) - MongoDB: use Int32 for messageLength - fixed GH #380: SecureSocket+DialogSocket crashes with SIGSEGV when timeout occours - Improve RSADigestEngine, using Poco::Crypto::DigestEngine to calculate hash before signing - added Poco::PBKDF2Engine - Fixed GH #380: SecureSocket+DialogSocket crashes with SIGSEGV when timeout occours - added support for a 'Priority' attribute on cookies. - GH #386: fixed bug in MailMessage without content-transfer-encoding header - GH #384: ew hash algorithms support for RSADigestEngine - fixed Clock overflow bug on Windows - Poco::ByteOrder now uses intrinsics, if available - CMake: added /bigobj option for msvc - Fix typo to restore Net/TestSuite_x64_vs120 build - correct path for CONFIGURE_FILE in CMakeLists.txt - Building Poco 1.5.2 for Synology RS812+ (Intel Atom) (honor POCO_NO_INOTIFY) - added WEC2013 support to buildwin.cmd and buildwin.ps1 - HTMLForm: in URL encoding, percent-encode more characters - Fixed #include <linux/if.h> conflict with other libraries - Poco::Net::X509Certificate::verify() no longer uses DNS reverse lookups to validate host names - cert hostname validation is case insensitive and stricter for wildcard certificates - TCPServer: do not reduce the capacity of the default ThreadPool - added POCO_LOG_DEBUG flag - Zip: fixed a crash caused by an I/O error - added runtest script for windows - added SQlite Full Text Search support - added Thread::trySleep() and Thread::wakeUp() - fixed GH #410: Bug in JSON::Object.stringify() in 1.5.2 - fixed GH #362: Defect in Var::parseString when there is no space between value and newline - fixed GH #314: JSON parsing bug - added GH #313: MetaColumn additions for Data::ODBC and Data::SQLite - fixed GH #346: Make Poco::Data::Date and Poco::Data::Time compare functions const. - fixed GH #341: Compiling poco-1.5.2 for Cygwin - fixed GH #305: There are bugs in Buffer.h - fixed GH #321: trivial build fixes (BB QNX build) - fixed GH #440: MongoDB ObjectId string formatting - added SevenZip library (Guenter Obiltschnig) - fixed GH #442: Use correct prefix length field of Windows IP_ADAPTER_PREFIX structure - improved GH #328: NetworkInterface on Windows XP - fixed GH #154 Add support for MYSQL_TYPE_NEWDECIMAL to Poco::Data::MySQL - fixed GH #290: Unicode support - fixed GH #318: Logger local time doesn't automatically account for DST - fixed GH #363: DateTimeParser tryParse/parse - added HTMLForm Content-Length calculation (Rangel Reale) - Make TemporaryFile append a slash to tempDir - fixed GH #319 android build with cmake - added hasDelegates() method to AbstractEvent - fixed GH #230: Poco::Timer problem - fixed GH #317: Poco::Zip does not support newer Zip file versions. - fixed GH #176: Poco::JSON::Stringifier UTF encoding - fixed GH #458: Broadcast address and subnet mask for IEEE802.11 network interface - fixed GH #456: poco: library install dirs per RUNTIME/LIBRARY/ARCHIVE Release 1.5.2 (2013-09-16) ========================== - added MongoDB library - fixed GH #57: poco-1.5.1: Doesn't compile for Android - added VoidEvent (Arturo Castro) - fixed GH #80: NumberFormatter::append broken - fixed GH #93: ParallelSocketAcceptor virtual functions - optional small object optimization for IPAddress, SocketAddress, Any and Dynamic::Var - SQLite events (insert, update, delete, commit, rollback) handlers - merged GH #91: Improve SQLite multi-threaded use (Rangel Reale) - merged GH #86: Invalid pointers to vector internals (Adrian Imboden) - automatic library initialization macros - fixed GH #110: WebSocket accept() fails when Connection header contains multiple tokens - fixed GH #71: WebSocket and broken Timeouts (POCO_BROKEN_TIMEOUTS) - fixed a warning in Poco/Crypto/OpenSSLInitializer.h - fixed GH #109: Bug in Poco::Net::SMTPClientSession::loginUsingPlain - added clang libc++ build configurations for Darwin and iPhone (Andrea Bigagli) - fixed GH #116: Wrong timezone parsing in DateTimeParse (Matej Knopp) - fixed GH #118: JSON::Object::stringify endless loop - added Recursive and SortedDirectoryIterator (Marian Krivos) - added ListMap (map-like container with preserving insertion order) - MailMessage: attachments saving support and consistent read/write - fixed GH #124: Possible buffer overrun in Foundation/EventLogChannel - fixed GH #119: JSON::Object holds values in ordered map - added JSON::PrintHandler - renamed JSON::DefaultHandler to ParseHandler (breaking change!) - fixed GH #127: Eliminate -Wshadow warnings - fixed GH #79: Poco::Thread leak on Linux - fixed GH #61: static_md build configs for Crypto and NetSSL - fixed GH #130: prefer sysconf over sysctlbyname - fixed GH #131: no timezone global var on OpenBSD - fixed GH #102: Some subprojects don't have x64 solutions for VS 2010 - added GH #75: Poco::Uri addQueryParameter method - Poco::Environment::osDisplayName() now recognizes Windows 8/Server 2012 - fixed GH #140: Poco::Runnable threading cleanup issue - simplified default TCP/HTTPServer construction - fixed GH #141: Application::run() documentation/implementation discrepancy - changed RowFormatter to SharedPtr<RowFormatter> in Data::RecordSet interface (breaking change!) - fixed GH #144: Poco::Dynamic emits invalid JSON - removed naked pointers from Data interfaces - fixed GH #82: name conflict in Data::Keywords::bind - fixed GH #157: MySQL: cannot bind to 'long' data type on Windows/Visual C++ - fixed GH #158: MySQL: MYSQL_BIND 'is_unsigned' member is not set - fixed GH #160: MultipartReader ignores first part, if preamble is missing - fixed GH #156: Possible buffer overrun in Foundation/EventLogChannel - XML: fixed an issue with parsing a memory buffer > 2 GB - upgraded to expat 2.1.0 - Data/ODBC: added support for setting query timeout (via setProperty of "queryTimeout"). Timeout is int, given in seconds. - fixed a potential endless loop in SecureStreamSocketImpl::sendBytes() and also removed unnecessary code. - fixed GH #159: Crash in openssl CRYPTO_thread_id() after library libPocoCrypto.so has been unloaded. - fixed GH #155: MailOutputStream mangles consecutive newline sequences - fixed GH #139: FileChannel::PROP_FLUSH is invalid (contains a tab character) - fixed GH #173: HTTPClientSession::proxyConnect forces DNS lookup of host names - fixed GH #194: MessageNotification constructor is inefficient. - fixed GH #189: Poco::NumberParser::tryParse() documentation bug - fixed GH #172: IPv6 Host field is stripped of Brackets in HTTPClientSession - fixed GH #188: Net: SocketAddress operator < unusable for std::map key - fixed GH #128: DOMWriter incorrectly adds SYSTEM keyword to DTD if PUBLIC is already specified - fixed GH #65: Poco::format() misorders sign and padding specifiers - upgraded bundled SQLite to 3.7.17 - replaced JSON parser with Poco::Web::JSON parser (from sandbox) - added JSON conversion to Dynamic Struct and Array - added VarIterator - modified behavior of empty Var (empty == empty) - added Alignment.h header for C++03 alignment needs - added Data/WebNotifier (DB, WebSocket) example - fixed GH #209: Poco::NumberFormatter double length - fixed GH #204: Upgrade zlib to 1.2.8 - fixed GH #198: The "application.configDir" property is not always created. - fixed GH #185: Poco::NumberFormatter::format(double value, int precision) ignore precision == 0 - fixed GH #138: FreeBSD JSON tests fail - fixed GH #99: JSON::Query an JSON::Object - limited allowed types for JSON::Query to Object, Array, Object::Ptr, Array::Ptr and empty - fixed GH #175: HTMLForm does not read URL parameters on POST or PUT - added GH #187: MySQL: allow access to the underlying connection handle - added GH #186: MySQL: support for MYSQL_SECURE_AUTH - fixed GH #174: MySQL: 4GB allocated when reading any largetext or largeblob field - fixed a potential memory leak in Poco::Net::HTTPClientSession if it is misused (e.g., sendRequest() is sent two times in a row without an intermediate call to receiveResponse(), or by calling receiveResponse() two times in a row without an intermediate call to sendRequest()) - GH #217 - removed a few unnecessary protected accessor methods from Poco::Net::HTTPClientSession that would provide inappropriate access to internal state - merged GH #210: Don't call CloseHandle() twice on Windows; Ability to select the threadpool that will be used to start an Activity(Patrice Tarabbia) - fixed GH #212: JSONConfiguration was missing from the vs90 project(Patrice Tarabbia) - fixed GH #220: add qualifiers for FPEnvironment in C99 (Lucas Clemente) - fixed GH #222: HTTPCookie doesn't support expiry times in the past (Karl Reid) - fixed GH #224: building 1.5.1 on Windows for x64 - fixed GH# 233: ServerSocket::bind6(Poco::UInt16 port, bool reuseAddress, bool ipV6Only) does not work - fixed GH# 231: Compatibility issue with Poco::Net::NetworkInterface - fixed GH# 236: Bug in RecursiveDirectoryIterator - added ColorConsoleChannel and WindowsColorConsoleChannel classes supporting colorizing log messages - fixed GH# 259: Poco::EventLogChannel fails to find 64bit Poco Foundation dll - fixed GH# 254: UTF8::icompare unexpected behavior - Poco::UUID::tryParse() also accepts UUIDs without hyphens. Also updated documentation (links to specifications). - added GH# 268: Method to get JSON object value using Poco::Nullable - fixed GH# 267: JSON 'find' not returning empty result if object is expected but another value is found - Added support for ARM64 architecture and iPhone 5s 64-bit builds (POCO_TARGET_OSARCH=arm64). Release 1.5.1 (2013-01-11) ========================== - using double-conversion library for floating-point numeric/string conversions - added Poco::istring (case-insensitive string) and Poco::isubstr - added SQLite sys.dual (in-memory system table) - applied SF Patch #120: The ExpireLRUCache does not compile with a tuple as key on Visual Studio 2010 - fixed SF Bug #599: JSON::Array and JSON::Object size() member can implicitly lose precision - fixed SF Bug #602: iterating database table rows not correct if no data in table - fixed SF Bug #603: count() is missing in HashMap - fixed GH #23: JSON::Object::stringify throw BadCastException - fixed GH #16: NetworkInterface::firstAddress() should not throw on unconfigured interfaces - Android compile/build support (by Rangel Reale) - TypeHandler::prepare() now takes const-reference - fixed GH #27: Poco::URI::decode() doesn't properly handle '+' - fixed GH #31: JSON implementation bug - fixed SF #597: Configure script ignores cflags - fixed SF #593: Poco 1.5.0 on FreeBSD: cannot find -ldl - added SF #542: SocketAddress() needs port-only constructor - fixed SF #215: Wrong return type in SocketConnector.h - applied SF Patch #97: fix c++0x / clang++ bugs - fixed GH32/SF596: Poco::JSON: Parsing long integer (int64) value fails. - added Net ifconfig sample (contributed by Philip Prindeville) - merged GH #34: add algorithm header (Roger Meier/Philip Prindeville) - fixed GH #26: Cannot compile on gcc - merged SF #111: FTP Client logging (Marian Krivos) - fixed GH #30: Poco::Path::home() throws when called from Windows Service - fixed GH #22: MySQL connection string lowercased - added MySQL support for Date/Time - upgraded SQLite to version 3.7.15.1 (2012-12-19) - improved SQLite execute() return (affected rows) value and added tests - added SQLite::Utility::isThreadSafe() function - added SQLite::Utility::setThreadMode(int mode) function - fixed GH #36: 'distclean' requires 3 traversals of project tree - fixed GH #41: Buffer::resize crash - fixed GH #42: Linux unbundled builds don't link - fixed GH #44: Problems with win x64 build - fixed GH #46: 1.5.1 build fails on OS X when using libc++ - fixed GH #48: Need getArgs() accessor to Util::Application to retrieve start-up arguments - fixed GH #49: NetworkInterface::list doesn't return MAC addresses - fixed GH #51: Android should use isfinite, isinf, isnan and signbit from the std namespace - fixed GH #53: JSON unicode fixes and running tests on invalid unicode JSON - added ParallelAcceptor and ParallelReactor classes - added EOF and error to FIFOBuffer Release 1.5.0 (2012-10-14) ========================== - added JSON library - added Util::JSONConfiguration - added FIFOBuffer and FIFOBufferStream - fixed SF# 3522906: Unregistering handlers from SocketReactor - fixed SF# 3522084: AbstractConfiguration does not support 64-bit integers - HTTPServer::stopAll(): close the socket instead of just shutting it down, as the latter won't wake up a select() on Windows - added SMTPLogger - added cmake support - fixed SF#3538778: NetworkInterface enumeration uses deprecated API - fixed SF#3538779: IPAddress lacks useful constructors: from prefix mask, native SOCKADDR - fixed SF#3538780: SocketAddress needs operator < function - fixed SF#3538775: Issues building on Fedora/Centos, etc. for AMD64 - fixed SF#3538786: Use size_t for describing data-blocks in DigestEngine - added IPAddress bitwise operators (&,|,^,~) - added IPAddress BinaryReader/Writer << and >> operators - modified IPAddress to force IPv6 to lowercase (RFC 5952) - fixed SF#3538785: SMTPClientSession::sendMessage() should take recipient list - added IPAddress::prefixLength() - UTF portability improvements - fixed SF#3556186: Linux shouldn't use <net/if.h> in Net/SocketDefs.h - added IPAddress RFC 4291 compatible site-local prefix support - fixed SF#3012166: IPv6 patch - added SF#3558085: Add formatter to MACAddress object - fixed SF#3552774: Don't hide default target in subordinate makefile - fixed SF#3534307: Building IPv6 for Linux by default - fixed SF#3516844: poco missing symbols with external >=lipcre-8.13 - added SF#3544720: AbstractConfigurator to support 64bit values - fixed SF#3522081: WinRegistryConfiguration unable to read REG_QWORD values - fixed SF#3563626: For Win32 set Up/Running flags on NetworkInterface - fixed SF#3560807: Deprecate setPeerAddress() as this is now done in getifaddrs - fixed SF#3560776: Fix byte-ordering issues with INADDR_* literals - fixed SF#3563627: Set IP address on multicast socket from socket family - fixed SF#3563999: Size BinaryWriter based on buffer's capacity(), not size() - fixed SF#102 Fix building Poco on Debian GNU/kFreeBSD - fixed SF#321 Binding DatTime or Timestamp - fixed SF#307 Detect the SQL driver type at run time - added VS 2012 Projects/Solutions - enhanced and accelerated numeric parsing for integers and floats - fixed SF#590 Segfault on FreeBSD when stack size not rounded - added warn function and warnmsg macro in CppUnit - fixed SF# 3558012 Compilation fails when building with -ansi or -std=c++0x - fixed SF# 3563517 Get rid of loss-of-precision warnings on x64 MacOS - fixed SF#3562244: Portability fix for AF_LINK - fixed SF #3562400: DatagramSocketImpl comment is incorrect Release 1.4.7p1 (2014-11-25) ============================ - Fixed Visual C++ 2010-2013 project files. Release builds now have optimization enabled. - Poco::URI: added constructor to create URI from Path. - fixed GH #618: OS X 10.10 defines PAGE_SIZE macro, conflicts with PAGE_SIZE in Thread_POSIX.cpp - Poco::Net::HTTPClientSession: added support for global proxy configuration - fixed GH #331: Poco::Zip does not support files with .. in the name. - fixed a memory leak in Poco::Net::Context constructor when it fails to load the certificate or private key files. - upgraded bundled SQLite to 3.8.7.2 - fixed GH #229: added missing value() function - fixed GH #69: MySQL empty text/blob Release 1.4.7 (2014-10-06) ========================== - fixed GH #398: PropertyFileConfiguration: input != output - fixed GH #368: Build failure of Poco 1.4.6p2 on FreeBSD 9.2 - fixed GH #318: Logger local time doesn't automatically account for DST - fixed GH #317: Poco::Zip does not support newer Zip file versions. - fixed GH #454: Fix: handle unhandled exceptions - fixed GH #463: XML does not compile with XML_UNICODE_WCHAR_T - fixed GH #282: Using Thread in a global can cause crash on Windows - fixed GH #424: Poco::Timer deadlock - fixed GH #465: Fix result enum type XML_Error -> XML_Status - fixed GH #510: Incorrect RSAKey construction from istream - fixed GH #332: POCO::ConsoleChannnel::initColors() assigns no color to PRIO_TRACE and wrong color to PRIO_FATAL - fixed GH #550: WebSocket fragmented message problem - Poco::Data::MySQL: added SQLite thread cleanup handler - Poco::Net::X509Certificate: improved and fixed domain name verification for wildcard domains - fixed a crash in Foundation testsuite with Visual C++ 2012 - improved and fixed domain name verification for wildcard domains in Poco::Net::X509Certificate - updated TwitterClient sample to use new 1.1 API and OAuth - added Poco::Clock class, which uses a system-provided monotonic clock (if available) and is thus not affected by system realtime clock changes. Monotonic Clock is available on Windows, Linux, OS X and on POSIX platforms supporting clock_gettime() and CLOCK_MONOTONIC. - Poco::Timer, Poco::Stopwatch, Poco::TimedNotificationQueue and Poco::Util::Timer have been changed to use Poco::Clock instead of Poco::Timestamp and are now unaffected by system realtime clock changes. - added Poco::PBKDF2Engine class template - Poco::Net::HTTPCookie: added support for Priority attribute (backport from develop) - fixed makedepend.* scripts to work in paths containing '.o*' (contributed by Per-Erik Bjorkstad, Hakan Bengtsen) - Upgraded bundled SQLite to 3.8.6 - Support for Windows Embedded Compact 2013 (Visual Studio 2012) - Project and solution files for Visual Studio 2013 - Changes for C++11 compatibility. - fixed an issue with receiving empty web socket frames (such as ping) - improved error handling in secure socket classes - Poco::ByteOrder now uses intrinsics if available - added new text encoding classes: Latin2Encoding, Windows1250Encoding, Windows1251Encoding - Zip: Added CM_AUTO, which automatically selects CM_STORE or CM_DEFLATE based on file extension. Used to avoid double-compression of already compressed file formats such as images. Release 1.4.6p4 (2014-04-18) ============================ - no longer use reverse DNS lookups for cert hostname validation - cert hostname validation is case insensitive and more strict - HTMLForm: in URL encoding, percent-encode more special characters - fixed thread priority issues on POSIX platforms with non-standard scheduling policy - XMLWriter no longer escapes apostrophe character - fixed GH #316: Poco::DateTimeFormatter::append() gives wrong result for Poco::LocalDateTime - fixed GH #305 (memcpy in Poco::Buffer uses wrong size if type != char) - Zip: fixed a crash caused by an I/O error (e.g., full disk) while creating a Zip archive Release 1.4.6p3 (2014-04-02) ============================ - Fixed a potential security vulnerability in client-side X509 certificate verification. Release 1.4.6p2 (2013-09-16) ============================ - fixed GH #156: Possible buffer overrun in Foundation/EventLogChannel - XML: fixed an issue with parsing a memory buffer > 2 GB - upgraded to expat 2.1.0 - Data/ODBC: added support for setting query timeout (via setProperty of "queryTimeout"). Timeout is int, given in seconds. - fixed a potential endless loop in SecureStreamSocketImpl::sendBytes() and also removed unnecessary code. - fixed GH #159: Crash in openssl CRYPTO_thread_id() after library libPocoCrypto.so has been unloaded. - fixed GH #155: MailOutputStream mangles consecutive newline sequences - fixed GH# 139: FileChannel::PROP_FLUSH is invalid (contains a tab character) - fixed GH# 173: HTTPClientSession::proxyConnect forces DNS lookup of host names - fixed GH# 194: MessageNotification constructor is inefficient. - fixed GH# 189: Poco::NumberParser::tryParse() documentation bug - fixed GH# 172: IPv6 Host field is stripped of Brackets in HTTPClientSession - fixed GH# 188: Net: SocketAddress operator < unusable for std::map key - fixed GH# 128: DOMWriter incorrectly adds SYSTEM keyword to DTD if PUBLIC is already specified - fixed GH# 65: Poco::format() misorders sign and padding specifiers - upgraded bundled SQLite to 3.7.17 - upgraded bundled zlib to 1.2.8 - fixed a potential memory leak in Poco::Net::HTTPClientSession if it is misused (e.g., sendRequest() is sent two times in a row without an intermediate call to receiveResponse(), or by calling receiveResponse() two times in a row without an intermediate call to sendRequest()) - GH #217 - removed a few unnecessary protected accessor methods from Poco::Net::HTTPClientSession that would provide inappropriate access to internal state - fixed GH# 223 (Poco::Net::HTTPCookie does not support expiry times in the past) - fixed GH# 233: ServerSocket::bind6(Poco::UInt16 port, bool reuseAddress, bool ipV6Only) does not work - added ColorConsoleChannel and WindowsColorConsoleChannel classes supporting colorizing log messages - fixed GH# 259: Poco::EventLogChannel fails to find 64bit Poco Foundation dll - fixed GH# 254: UTF8::icompare unexpected behavior - Poco::UUID::tryParse() also accepts UUIDs without hyphens. Also updated documentation (links to specifications). - Added support for ARM64 architecture and iPhone 5s 64-bit builds (POCO_TARGET_OSARCH=arm64). Release 1.4.6p1 (2013-03-06) ============================ - fixed GH# 71: WebSocket and broken Timeouts (POCO_BROKEN_TIMEOUTS) - fixed an ambiguity error with VC++ 2010 in Data/MySQL testsuite - Poco::Net::NetworkInterface now provides the interface index even for IPv4 - added DNS::reload() as a wrapper for res_init(). - On Linux, Poco::Environment::nodeId() first always tries to obtain the MAC address of eth0, before looking for other interfaces. - Poco::Net::HTTPSession now always resets the buffer in connect() to clear any leftover data from a (failed) previous session - fixed copysign namespace issue in FPEnvironment_DUMMY.h - fixed a warning in Poco/Crypto/OpenSSLInitializer.h - added a build configuration for BeagleBoard/Angstrom - fixed GH# 109: Bug in Poco::Net::SMTPClientSession::loginUsingPlain) - fixed compile errors with clang -std=c++11 - fixed GH# 116: Wrong timezone parsing in DateTimeParse (fix by Matej Knopp) - updated bundled SQLite to 3.7.15.2 Release 1.4.6 (2013-01-10) ========================== - changed FPEnvironment_DUMMY.h to include <cmath> instead of <math.h> - updated bundled SQLite to 3.7.15.1 - fixed GH# 30: Poco::Path::home() throws - fixed SF Patch# 120 The ExpireLRUCache does not compile with a tuple as key on VS2010 - fixed SF# 603 count() is missing in HashMap - Crypto and NetSSL_OpenSSL project files now use OpenSSL *MD.lib library files for static_md builds. Previously, the DLL import libs were used. - Poco::Environment::osDisplayName() now recognizes Windows 8/Server 2012 Release 1.4.5 (2012-11-19) ========================== - added Visual Studio 2012 project files - buildwin.cmd now support building with msbuild for VS2010 and 2012. - added Poco::Optional class - fixed SF# 3558012 Compilation fails when building with -ansi or -std=c++0x - fixed SF# 3563517 Get rid of loss-of-precision warnings on x64 MacOS - fixed SF# 3562244: Portability fix for AF_LINK - fixed SF# 3562400: DatagramSocketImpl comment - fixed SF# 594: Websocket fails with small masked payloads - fixed SF# 588: Missing POCO_ARCH and POCO_ARCH_LITTLE_ENDIAN define for WinCE on SH4 - fixed SF# 581: Out-of-bound array access in Unicode::properties() function. - fixed SF# 590: Segfault on FreeBSD when stack size not rounded - fixed SF# 586: Poco::DateTimeParser and ISO8601 issues when seconds fraction has more than 6 digits - Poco::Net::HTTPSSessionInstantiator::registerInstantiator() now optionally accepts a Poco::Net::Context object. - added Poco::XML::XMLWriter::depth() member function. - added Poco::XML::XMLWriter::uniquePrefix() and Poco::XML::XMLWriter::isNamespaceMapped(). - Poco::FileChannel now supports a new rotateOnOpen property (true/false) which can be used to force rotation of the log file when it's opened. - fixed a bug in Poco::XML::XMLWriter::emptyElement(): need to pop namespace context - OS X builds now use Clang as default compiler - Updated SQLite to 3.7.14.1 - POCO_SERVER_MAIN macro now has a try ... catch block for Poco::Exception and writes the displayText to stderr. - Poco/Platform.h now defines POCO_LOCAL_STATIC_INIT_IS_THREADSAFE macro if the compiler generates thread-safe static local initialization code. Release 1.4.4 (2012-09-03) ========================== - ZipStream now builds correctly in unbundled build. - added proxy digest authentication support to Net library - integrated MySQL BLOB fixes from Franky Braem. - use standard OpenSSL import libraries (libeay32.lib, ssleay32.lib) for Crypto and NetSSL_OpenSSL Visual Studio project files. - fixed a potential buffer corruption issue in Poco::Net::SecureStreamSocket if lazy handshake is enabled and the first attempt to complete the handshake fails - Poco::DateTimeParser::tryParse() without format specifier now correctly parses ISO8601 date/times with fractional seconds. - Poco::Process::launch() now has additional overloads allowing to specify an initial directory and/or environment. - Poco::Net::FTPClientSession: timeout was not applied to data connection, only to control connection. - Fixed potential IPv6 issue with socket constructors if IPv6 SocketAddress is given (contributed by ??????? ????????? <[email protected]>). - Added an additional (optional) parameter to Poco::Thread::setOSPriority() allowing to specify a scheduling policy. Currently this is only used on POSIX platforms and allows specifying SCHED_OTHER (default), SCHED_FIFO or SCHED_RR, as well as other platform-specific policy values. - Added Poco::Crypto::DigestEngine class providing a Poco::DigestEngine interface to the digest algorithms provided by OpenSSL. - Fixed some potential compiler warnings in Crypto library - In some cases, when an SSL exception was unexpectedly closed, a generic Poco::IOException was thrown. This was fixed to throw a SSLConnectionUnexpectedlyClosedException instead. - Added Poco::ObjectPool class template. - Poco::Net::HTTPServer has a new stopAll() method allowing stopping/aborting of all currently active client connections. - The HTTP server framework now actively prevents sending a message body in the response to a HEAD request, or in case of a 204 No Content or 304 Not Modified response status. - fixed a DOM parser performance bug (patch by Peter Klotz) - fixed SF# 3559325: Util Windows broken in non-Unicode - updated iOS build configuration to use xcode-select for finding toolchain - Poco::Net::SecureSocketImpl::shutdown() now also shuts down the underlying socket. - fixed SF# 3552597: Crypto des-ecb error - fixed SF# 3550553: SecureSocketImpl::connect hangs - fixed SF# 3543047: Poco::Timer bug for long startInterval/periodic interval - fixed SF# 3539695: Thread attributes should be destroyed using the pthread_attr_destroy() - fixed SF# 3532311: Not able to set socket option on ServerSocket before bind Added Poco::Net::Socket::init(int af) which can be used to explicitely initialize the underlying socket before calling bind(), connect(), etc. - fixed SF# 3521347: Typo in UnWindows.h undef - fixed SF# 3519474: WinRegistryConfiguration bug Also added tests and fixed another potential issue with an empty root path passed to the constructor. - fixed SF# 3516827: wrong return value of WinRegistryKey::exists() - fixed SF# 3515284: RSA publickey format(X.509 SubjectPublicKeyInfo) - fixed SF# 3503267: VxWorks OS prio is not set in standard constructor - fixed SF# 3500438: HTTPResponse failure when reason is empty - fixed SF# 3495656: numberformater, numberparser error in mingw - fixed SF# 3496493: Reference counting broken in TaskManager postNotification - fixed SF# 3483174: LogFile flushing behavior on Windows Flushing is now configurable for FileChannel and SimpleFileChannel using the "flush" property (true or false). - fixed SF# 3479561: Subsequent IPs on a NIC is not enumerated - fixed SF# 3478665: Permission checks in Poco::File not correct for root - fixed SF# 3475050: Threading bug in initializeNetwork() on Windows - fixed SF# 3552680: websocket small frames bug and proposed fix - fixed a WebSocket interop issue with Firefox - added Poco::Net::MessageHeader::hasToken() - Poco::AtomicCounter now uses GCC 4.3 builtin atomics on more platforms - fixed SF# 3555938: NetSSL: socket closed twice - socket exceptions now include OS error code - fixed SF# 3556975: Need to fix Shared Memory for memory map - Poco::Net::SecureSocketImpl::close() now catches exceptions thrown by its call to shutdown(). - fixed SF# 3535990: POCO_HAVE_IPv6 without POCO_WIN32_UTF8 conflict - fixed SF# 3559665: Poco::InflatingInputStream may not always inflate completely - added Poco::DirectoryWatcher class - fixed SF# 3561464: Poco::File::isDevice() can throw due to sharing violation - Poco::Zip::Compress::addRecursive() has a second variant that allows to specify the compression method. - Upgraded internal SQLite to 3.7.14 Release 1.4.3p1 (2012-01-23) ============================ - fixed SF# 3476926: RegDeleteKeyEx not available on Windows XP 32-bit Release 1.4.3 (2012-01-16) ========================== - fixed a compilation error with Data/MySQL on QNX. - fixed Util project files for WinCE (removed sources not compileable on CE) - removed MD2 license text from Ackowledgements document - fixed iPhone build config for Xcode 4.2 (compiler name changed to llvm-g++) - Poco::Util::XMLConfiguration: delimiter char (default '.') is now configurable. This allows for working with XML documents having element names with '.' in them. - Poco::Util::OptionProcessor: Required option arguments can now be specified as separate command line arguments, as in "--option value" in addition to the "--option=value" format. - Poco::Util::HelpFormatter: improved option help formatting if indentation has been set explicitely. - added Mail sample to NetSSL_OpenSSL, showing use of Poco::Net::SecureSMTPClientSession. - added additional read() overloads to Poco::Net::HTMLForm. - fixed SF# 3440769: Poco::Net::HTTPResponse doesn't like Amazon EC2 cookies. - added support for requiring TLSv1 to Poco::Net::Context. - added an additional constructor to Poco::Net::HTTPBasicCredentials, allowing the object to be created from a string containing a base64-encoded, colon-separated username and password. - Poco::Zip::ZipStreamBuf: fixed a crash if CM_STORE was used. - Added setContentLength64() and getContentLength64() to Poco::Net::HTTPMessage. - added Poco::Environment::osDisplayName(). - fixed SF# 3463096: WinService leaves dangling handles (open() now does not reopen the service handle if it's already open) - fixed SF# 3426537: WinRegistryConfiguration can't read virtualized keys - added Poco::Buffer::resize() - fixed SF# 3441822: thread safety issue in HTTPClientSession: always use getaddrinfo() instead of gethostbyname() on all platforms supporting it - added version resource to POCO DLLs - fixed SF# 3440599: Dir Path in Quotes in PATH cause PathTest::testFind to fail. - fixed SF# 3406030: Glob::collect problem - added Poco::Util::AbstractConfiguration::enableEvents() - Poco::AtomicCounter now uses GCC builtins with GCC 4.1 or newer (contributed by Alexey Milovidov) - made Poco::Logger::formatDump() public as it may be useful for others as well (SF# 3453446) - Poco::Net::DialogSocket now has a proper copy constructor (SF# 3414602) - Poco::Net::MessageHeader and Poco::Net::HTMLForm now limit the maximum number of fields parsed from a message to prevent certain kinds of denial-of-service attacks. The field limit can be changed with the new method setFieldLimit(). The default limit is 100. - Poco::NumberFormatter, Poco::NumberParser and Poco::format() now always use the classic ("C") locale to format and parse floating-point numbers. - added Poco::StreamCopier::copyStream64(), Poco::StreamCopier::copyStreamUnbuffered64() and Poco::StreamCopier::copyToString64(). These functions use a 64-bit integer to count the number of bytes copied. - upgraded internal zlib to 1.2.5 - upgraded internal sqlite to 3.7.9 - XML: integrated bugfix for Expat bug# 2958794 (memory leak in poolGrow) - Added support for HTTP Digest authentication (based on a contribution by Anton V. Yabchinskiy (arn at bestmx dot ru)). For information on how to use this, see the Poco::Net::HTTPCredentials, Poco::Net::HTTPDigestCredentials and Poco::Net::HTTPAuthenticationParams classes. - Poco::Net::HTTPStreamFactory and Poco::Net::HTTPSStreamFactory now support Basic and Digest authentication. Username and password must be provided in the URI. - added Poco::Net::WebSocket, supporting the WebSocket protocol as described in RFC 6455 - NetSSL_OpenSSL: added client-side support for Server Name Indication. Poco::Net::SecureSocketImpl::connectSSL() now calls SSL_set_tlsext_host_name() if its available (OpenSSL 9.8.6f and later). - added Poco::Net::HTTPClientSession::proxyConnect() (factored out from Poco::Net::HTTPSClientSession::connect()) - added Poco::Process::kill(const Poco::ProcessHandle&) which is preferable to kill(pid) on Windows, as process IDs on Windows may be reused. - fixed SF# 3471463: Compiler warnings with -Wformat - Poco::Util::Application::run() now catches and logs exceptions thrown in initialize() - Fixed a WinCE-specific bug in Poco::Util::ServerApplication where uninitialize() would be called twice. - fixed SF# 3471957: WinRegistryKey::deleteKey() unable to delete alt views - Added additional constructor to Poco::ScopedLock and Poco::ScopedLockWithUnlock accepting a timeout as second argument. - Added Poco::Logger::parseLevel() - Poco::format(): an argument that does not match the format specifier no longer results in a BadCastException. The string [ERRFMT] is written to the result string instead. - PageCompiler: added createSession page attribute.
jperkin
pushed a commit
that referenced
this pull request
Mar 7, 2016
Changelog: Release 0.3.7: -------------- - Fix Debian bug #766945: catch 'inskscape' not installed (Andreas Hoenen patch) - Fix Debian bug #792898: improve the PDF metadata setup - Fix Debian bug #684772 and SF bug #85: section @Label is used to force the section counter - Fix Debian bug #684772: a chapter with an empty @Label is not numbered - Fix Debian bug #793077: allow to put a figure anchor at the top even if the caption is at the bottom, thanks to the parameter figure.anchor.top. - Add the parameters body.font.family, sans.font.family, and monospace.font.family to mimic FO parameters, for xetex font setup Release 0.3.6: -------------- - Adapt the debug env_tex script for Windows - Make dblatex work with Xindy, for xetex and pdftex backends. Xindy is selected through the latex.index.tool parameter, and it's sorting is aware of the language used that can be set through the latex.index.language parameter. This is an answer to the Debian bug #756386. - Allow the Texpost script to be a python plugin. - Add the beginpage.as.pagebreak parameter to be able to inhibit the current behaviour. - Fix a bug in index escaping: '"' was not escaped. - Fix a bug in <listitem> to prevent brackets side effects. - Quick fix for <screenshot> SF bug #74. - Fix SF bug #110. - Fix Debian bug #771473 and #684393. Release 0.3.5: -------------- - Fix an HTML table bug when no <colgroup> or <col> is specified - Fix an HTML table bug when cellpadding is expressed in percentage - Fix Debian bug #720624 to have more greek letters correctly translated - Fix bug #108 so that setup.py works even if intall-layout not supported - Fix bug #107 to be compliant with frenchb v2.5 to remove shorthands in listings - Fix bug #106 to have equation label localized - Fix bug #104 to have listings correctly displayed in <listitem>s - Fix bug #103 to have indexes correctly working in db2latex style - Fix Debian bug #682901 to have with XeTeX proper endash in indexes - Fix Debian bugs #682936 and #684391 to support Norwegian Bokmål through lang='nb' - Fix Debian bug #683166 (SF bug #3553962/#98) to avoid chapters erroneously included in parts. - Fix Debian bug #684393 babel setup to allow quote chars for lang='nn' - Adapt URL to work with texlive >= 2009. - Some fixes to be able work with Saxon - Improve setup.py to detect the installed texlive version only on manual install. - Include the package 'ucs' and configure listings to work with pdftex and UTF-8 characters. Release 0.3.4: -------------- - Fix a bug in the missing characters display. - Fix the global template to actually insert a backmatter tag before backmatter elements. - Fix bug #3520152 by changing a template xpath (looks like a libxslt limitation). - Improve the verbatim block display to be able to scale the block width to the page width. - Allow latex instructions within verbatim blocks through Processing Instructions. - Improve the setup script to be close to the debian install rules. - Improve the hyphenation of the inlined literal elements. - Add the parameter example.float.type to give the possibility to have <example> not floating. The attribute 'floatstyle' is also taken into account. - Add the parameter hyphenation.format to specify the inlined format types that must be hyphenated. It replaces the more limited monoseq.hyphenation parameter. Release 0.3.3: -------------- - Fix incomplete image path conversion when subfigures are used. - Fix unicode listings limitation to handle characters greater than 255. - Fix <abstract> environment to prevent from page counter reset. - Fix the <literallayout> limitations by using the same implementation than <screen>. - Fix a texlive 9 french babel and enumitem incompatibility. - Fix to be robust to URL encoded image paths, and to non-latin1 paths. - Fix missing cross-reference to <sidebar> and <qandaset>. - Fix the <sidebar> box width to the actual context witdh. - Fix a french babel bug (unexpected active chars) when used with XeTeX. - Fix Debian bug #627501 to tell the priority policy of --xsl-user option. - Fix Debian bug #632967 to return a non-null code when the compilation fails. - Fix Debian bug #629514 to have draft watermark with XeTeX backend. - Fix Debian bug #634563 to have safe pdftitle content (no images). - Fix setup.py in order to work under Windows. - Fix the HTML table support to correctly render the cells elements. - Fix the HTML table support to correctly nested tables. - Fix the Olink support to allow database user-specific renderings like italics for <i> tags. Reuse of the DocBook Project implementation. - Fix a setup failure that made the listings UTF-8 support failed (extendedchars to set to "true"). - Fix --xslt-opts to be able to pass several arguments by using quotes - Set the TexLive version to 2009 by default. - Update to new Debian Error Handler API. Improvements sponsored by Freexian (http://www.freexian.com) : - Fix #3191550. Remove hard-coded paper size and add some parameters for page layout setup: * Parameters to define page sizes and margins. * Parameters to have crop marks for pre-press PDF output. - Add the parameters literal.environment and literal.extensions to allow the user define its own listing environment. - Add the parameter latex.engine.options to be able to pass options to the TeX engine backend. - Print out warnings about the characters not handled by the selected fonts. - Image display improvements/fixes: * Avoid unexpected paragraph indentation when displaying images. * Strip spurious spaces between subfigures when @ROLE='flow.inline' * Prevents from empty tex subcaptions when no subfigure <caption> is defined. - Add the ability to format <ulink> as a block when @type='block'. - Pass @ROLE to the latex sidebar environment. - Add the literal.class parameter used when <literallayout> class attribute is not set. Default is 'monospaced'. - Add some @ROLE to format literal elements, and literal.role parameter for default role: * Wrap: wrap lines when longer than text width (default) * Overflow: do not wrap lines ; long lines overflow to the left * Scale: automatically scale a listing to have its lines fit the page width The special feature can be disabled with literal.extensions=0
jperkin
pushed a commit
that referenced
this pull request
Mar 10, 2016
Changelog: CHANGES IN Mini-XML 2.9 - mxmlLoad* did not correctly load value nodes with MXML_NO_CALLBACK or MXML_TEXT_CALLBACK (Bug #502) CHANGES IN Mini-XML 2.8 - Now call docsetutil using xcrun on OS X (Bug #458) - mxmldoc did not escape special HTML characters inside @code foo@ comments. - Fixed a memory leak in mxmlElementDeleteAttr (Bug #452) - Added MXML_MAJOR/MINOR_VERSION definitions to mxml.h (Bug $461) - Fixed a bug reading UTF-16 characters from a file (Bug #454) - Fixed a memory leak when loading invalid XML (Bug #496) - Fixed an XML fragment loading problem (Bug #494) CHANGES IN Mini-XML 2.7 - Added 64-bit configurations to the VC++ project files (STR #129) - Fixed conformance of mxmldoc's HTML and CSS output. - Added data accessor ("get") functions and made the mxml_node_t and mxml_index_t structures private but still available in the Mini-XML header to preserve source compatibility (STR #118) - Updated the source headers to reference the Mini-XML license and its exceptions to the LGPL2 (STR #108) - Fixed a memory leak when loading a badly-formed XML file (STR #121) - Added a new mxmlFindPath() function to find the value node of a named element (STR #110) - Building a static version of the library did not work on Windows (STR #112) - The shared library did not include a destructor for the thread- specific data key on UNIX-based operating systems (STR #103) - mxmlLoad* did not error out on XML with multiple root nodes (STR #101) - Fixed an issue with the _mxml_vstrdupf function (STR #107) - mxmlSave* no longer write all siblings of the passed node, just that node and its children (STR #109)
jperkin
pushed a commit
that referenced
this pull request
Mar 18, 2016
Set up a separate user, previous PGUSER/PGGROUP integration didn't make sense. 2016-02-26 - PgBouncer 1.7.2 - "Finally Airborne" - Fix crash on stale pidfile removal. Problem introduced in 1.7.1. - Disable cleanup - it breaks takeover and is not useful for production loads. Problem introduced in 1.7.1. - After takeover, wait until pidfile is gone before booting. Slow shutdown due to memory cleanup exposed existing race. (#113) - Make build reproducible by dropping DBGVER handling. (#112) - Antimake: Sort file list from $(wildcard), newer gmake does not sort it anymore. (#111) - Show libssl version in log. - deb: Turn on full hardening. 2016-02-18 - PgBouncer 1.7.1 - "Forward To Five Friends Or Else" - WARNING: Since version 1.7, server_reset_query is not executed when database is in transaction-pooling mode. Seems this was not highlighted enough in 1.7 announcement. If your apps depend on that happening, use server_reset_query_always to restore previous behaviour. - TLS: Rename sslmode "disabled" to "disable" as that is what PostgreSQL uses. - TLS: client_tls_sslmode=verify-ca/-full now reject connections without client certificate. (#104) - TLS: client_tls_sslmode=allow/require do validate client certificate if sent. Previously they left cert validation unconfigured so connections with client cert failed. (#105) - Fix memleak when freeing database. - Fix potential memleak in tls_handshake(). - Fix EOF handling in tls_handshake(). - Fix too small memset in asn1_time_parse compat. - Fix non-TLS (--without-openssl) build. (#101) - Fix various issues with Windows build. (#100) - TLS: Use SSL_MODE_RELEASE_BUFFERS to decrease memory usage of inactive connections. - Clean allocated memory on exit. Helps to run memory-leak checkers. - Improve server_reset_query documentation. (#110) - Add TLS options to sample config. 2015-12-18 - PgBouncer 1.7 - "Colors Vary After Resurrection" - Support TLS connections. OpenSSL/LibreSSL is used as backend implementation. - Support authentication via TLS client certificate. - Support "peer" authentication on Unix sockets. - Support Host Based Access control file, like pg_hba.conf in Postgres. This allows to configure TLS for network connections and "peer" authentication for local connections. - Set query_wait_timeout to 120s by default. Current default (0) causes infinite queueing, which is not useful. That means if client has pending query and has not been assigned to server connection, the client connection will be dropped. - Disable server_reset_query_always by default. Now reset query is used only in pools that are in session mode. - Increase pkt_buf to 4096 bytes. Improves performance with TLS. The behaviour is probably load-specific, but it should be safe to do as since v1.2 the packet buffers are split from connections and used lazily from pool. - Support pipelining count expected ReadyForQuery packets. This avoids releasing server too early. Fixes #52. - Improved sbuf_loopcnt logic - socket is guarateed to be reprocessed even if there are no event from socket. Required for TLS as it has it's own buffering. - Adapt system tests to work with modern BSD and MacOS. (Eric Radman) - Remove crypt auth. It's obsolete and not supported by PostgreSQL since 8.4. - Fix plain "--with-cares" configure option - without argument it was broken.
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
Jul 17, 2016
- Fix incorrectly reporting files containing disabled formatting as being formatted. - Fix incorrect handling of quoted arguments in the options file (#321). - Fix error in identifying an enum return type as an enumeration (#322, 323). - Fix error in identifying an enum argument as an enumeration (#327). - Fix recognition of Qt keywords when used as variables in C++ (#329). - Fix recognition of a pointer in a C++ cast (#316). - Fix removing trailing whitespace after a changed pointer or reference cast. - Add new bracket style option "style=vtk" (#155). - Add new option "indent-preproc-block" to indent blocks of preprocessor directives (#21, #114, #229, #242, #294). - Add new option, "dry-run", to run AStyle without updating the files (#184, #285). - Add new options, "html" (-!") and "html=###", to display the HTML help documentation in the default browser. - Add tags "*INDENT-OFF*" and "*INDENT_ON*" to disable formatting of source code blocks (#2, #47, #55, #78, #110, #176). - Add tag *NOPAD* to disable selected formatting on a single line. - Add '__attribute__ ((visibility ("default")))' to Linux exported functions. - Remove option "style=ansi" and make it depreciated (#146). - Remove fix for broken 'case' statements from release 2.02.1, Nov 21, 2011. - Improve Korean translation (#256). - Change shared libraries to include the version number as part of the file name (#264) - Change "help" display to stdout to allow piping and redirection (#63). - Change "version" display to stdout. - Change headers to include foreach, forever, Q_FOREACH, and Q_FOREVER (#98, #154). - Change compiler definition ASTYLE_NO_VCX (no Visual Studio exports) to ASTYLE_NO_EXPORTS. - Change shared library error handler argument from "char*" to "const char*". - Fix not recognizing noexcept, interrupt, and autoreleasepool as pre-command headers (#225, #259). - Fix formatting of C++11 uniform initializer brackets (#253, #257, #260, #284). - Fix to not automatically space pad C++11 uniform initializer brackets (#275). - Fix formatting of enums with leading commas (#159, #179, #270). - Fix formatting of logical && operator in class initializers (#290). - Fix flagging a 'const' variable as a 'const' method (#275). - Fix piping and redirection adding an extra character to the output (#245, #252, #305). - Fix "indent-modifiers" to attach class access modifiers to Horstmann style brackets. - Fix ASFormatter to correctly recognize the end of a C++ raw string literal (#261). - Fix to recognize C++11 "enum class" as an enum (#303). - Fix indent of C++11 "noexecpt" statements within a class (#260, #304). - Fix not resetting templateDepth when a template was not found (#295). - Fix formatting of multiplication in a block paren (#144). - Fix whitespace padding when formatting an rvalue references (#297). - Fix to recognize an rvalue reference without a name (#265). - Fix to not identify an operator overload method as a calculation (#296). - Fix concatenating multiplication with a pointer dereference (#291). - Fix recognition of a pointer dereference following a question mark (#213). - Fix extra space after a trailing reference type (#300). - Fix _asm blocks not being identified as a block opener and the variable not cleared on exit (#163). - Fix indentation of line comments before a "class" opening bracket. - Fix indentation of line comments before a "namespace" opening bracket. - Fix isBracketType() method to correctly process a NULL_TYPE. - Fix unpad-paren to recognize additional variables (#43, #132, #143). - Fix indentation of C# "let" statements. - Fix a few omissions with "fill-empty-lines". - Fix file read to read 64K blocks of data. - Refactor to un-obfuscate (clarify) the code, and improve design and decomposition:: - Extract class Utf8_16 from ASConsole. - Replace Linux dependency on iconv with a Utf8_16 class for ASLibrary. - Move global "using" statements to the astyle namespace in astyle.h and ASLocalizer.h. - Move shared library declarations from astyle.h to astyle_main.h. - Move indentable macros from ASEnhancer to ASResource and create static pairs. - Simplify ASBeautifier procedure to identify the colon (:) type. - Major refactoring in ASBeautifier to create separate variables for an enum, a class statement and a class initializer. - This was needed to fix the processing of C++11 uniform initializers in a class initializer. - Minor changes to ASFormatter and ASBeautifier based on results of the Clang analyzer. - Change several methods in astyle_main to "const".
jperkin
pushed a commit
that referenced
this pull request
Aug 24, 2016
Removed !!! ??? ;;; &&& ||| =~ (#167) ~~~ %%% New safer calt code that doesn’t apply ligatures to long sequences of chars, e.g. !!!!, >>>>, etc (#49, #110, #176) Larger + - * and corresponding ligatures (#86) Hexadecimal x (0xFF) is now applied to sequences like 128x128 as well (#161) Added twoTurned (U+218A) and threeTurned (U+218B) (#146) Added whiteFrowningFace (U+2639) (#190) Simplified visual style on markdown headers ## ### #### (#107) Added </> (#147) Provided ttf and webfonts versions (eot, woff, woff2) (#18, #24, #38, #101, #106) Increased spacing in <= >= (#117)
jperkin
pushed a commit
that referenced
this pull request
Mar 6, 2017
Autodetected line-endings, in-place mode, user-defined functions, and more This major release significantly expands the expressiveness of the DSL for mlr put and mlr filter. (The upcoming 5.1.0 release will add the ability to aggregate across all columns for non-DSL verbs such as mlr stats1 and mlr stats2. As well, a Windows port is underway.) Please also see the Miller main docs. Simple but impactful features: Line endings (CRLF vs. LF, Windows-style vs. Unix-style) are now autodetected. For example, files (including CSV) with LF input will lead to LF output unless you specify otherwise. There is now an in-place mode using mlr -I. Major DSL features: You can now define your own functions and subroutines: e.g. func f(x, y) { return x**2 + y**2 }. New local variables are completely analogous to out-of-stream variables: sum retains its value for the duration of the expression it's defined in; @sum retains its value across all records in the record stream. Local variables, function parameters, and function return types may be defined untyped or typed as in x = 1 or int x = 1, respectively. There are also expression-inline type-assertions available. Type-checking is up to you: omit it if you want flexibility with heterogeneous data; use it if you want to help catch misspellings in your DSL code or unexpected irregularities in your input data. There are now four kinds of maps. Out-of-stream variables have always been scalars, maps, or multi-level maps: @A=1, @b[1]=2, @c[1][2]=3. The same is now true for local variables, which are new to 5.0.0. Stream records have always been single-level maps; $* is a map. And as of 5.0.0 there are now map literals, e.g. {"a":1, "b":2}, which can be defined using JSON-like syntax (with either string or integer keys) and which can be nested arbitrarily deeply. You can loop over maps -- $*, out-of-stream variables, local variables, map-literals, and map-valued function return values -- using for (k, v in ...) or the new for (k in ...) (discussed next). All flavors of map may also be used in emit and dump statements. User-defined functions and subroutines may take map-valued arguments, and may return map values. Some built-in functions now accept map-valued input: typeof, length, depth, leafcount, haskey. There are built-in functions producing map-valued output: mapsum and mapdiff. There are now string-to-map and map-to-string functions: splitnv, splitkv, splitnvx, splitkvx, joink, joinv, and joinkv. Minor DSL features: For iterating over maps (namely, local variables, out-of-stream variables, stream records, map literals, or return values from map-valued functions) there is now a key-only for-loop syntax: e.g. for (k in $*) { ... }. This is in addition to the already-existing for (k, v in ...) syntax. There are now triple-statement for-loops (familiar from many other languages), e.g. for (int i = 0; i < 10; i += 1) { ... }. mlr put and mlr filter now accept multiple -f for script files, freely intermixable with -e for expressions. The suggested use case is putting user-defined functions in script files and one-liners calling them using -e. Example: myfuncs.mlr defines the function f(...), then mlr put -f myfuncs.mlr -e '$o = f($i)' myfile.dat. More information is here. mlr filter is now almost identical to mlr put: it can have multiple statements, it can use begin and/or end blocks, it can define and invoke functions. Its final expression must evaluate to boolean which is used as the filter criterion. More details are here. The min and max functions are now variadic: $o = max($a, $b, $c). There is now a substr function. While ENV has long provided read-access to environment variables on the right-hand side of assignments (as a getenv), it now can be at the left-hand side of assignments (as a putenv). This is useful for subsidiary processes created by tee, emit, dump, or print when writing to a pipe. Handling for the # in comments is now handled in the lexer, so you can now (correctly) include # in strings. Separators are now available as read-only variables in the DSL: IPS, IFS, IRS, OPS, OFS, ORS. These are particularly useful with the split and join functions: e.g. with mlr --ifs tab ..., the IFS variable within a DSL expression will evaluate to a string containing a tab character. Syntax errors in DSL expressions now have a little more context. DSL parsing and execution are a bit more transparent. There have long been -v and -t options to mlr put and mlr filter, which print the expression's abstract syntax tree and do a low-level parser trace, respectively. There are now additionally -a which traces stack-variable allocation and -T which traces statements line by line as they execute. While -v, -t, and -a are most useful for development of Miller, the -T option gives you more visibility into what your Miller scripts are doing. See also here. Verbs: most-frequent and least-frequent as requested in #110. seqgen makes it easy to generate data from within Miller: please also see here for a usage example. unsparsify makes it easy to rectangularize data where not all records have the same fields. cat -n now takes a group-by (-g) option, making it easy to number records within categories. count-distinct, uniq, most-frequent, least-frequent, top, and histogram now take a -o option for specifying their output field names, as requested in #122. Median is now a synonym for p50 in stats1. You can now start a then chain with an initial then, which is nice in backslashy/multiline-continuation contexts. This was requested in #130. I/O options: The print statement may now be used with no arguments, which prints a newline, and a no-argument printn prints nothing but creates a zero-length file in redirected-output context. Pretty-print format now has a --pprint --barred option (for output only, not input). For an example, please see here. There are now keystroke-savers of the form --c2p which abbreviate --icsvlite --opprint, and so on. Miller's map literals are JSON-looking but allow integer keys which JSON doesn't. The --jknquoteint and --jvquoteall flags for mlr (when using JSON output) and mlr put (for dump) provide control over double-quoting behavior. Documents new since the previous release: Miller in 10 minutes is a long-overdue addition: while Miller's detailed documentation is evident, there has been a lack of more succinct examples. The cookbook has likewise been expanded, and has been split out into three parts: part 1, part 2, part 3. A bit more background on C performance compared to other languages I experimented with, early on in the development of Miller, is here. On-line help: Help for DSL built-in functions, DSL keywords, and verbs is accessible using mlr -f, mlr -k, and mlr -l respectively; name-only lists are available with mlr -F, mlr -K, and mlr -L. Bugfixes: A corner-case bug causing a segmentation violation on two sub/gsub statements within a single put, the first one matching its pattern and the second one not matching its pattern, has been fixed. Backward incompatibilities: This is Miller 5.0.0, not 4.6.0, due to the following (all relatively minor): The v variables bound in for-loops such as for (k, v in some_multi_level_map) { ... } can now be map-valued if the v specifies a non-terminal in the map. There are new keywords such as var, int, float, num, str, bool, map, IPS, IFS, IRS, OPS, OFS, ORS which can no longer be used as variable names. See mlr -k for the complete list. Unset of the last key in an map-valued variable's map level no longer removes the level: e.g. with @v[1][2]=3 and unset @v[1][2] the @v variable would be empty. As of 5.0.0, @v has key 1 with an empty-map value. There is no longer type-inference on literals: "3"+4 no longer gives 7. (That was never a good idea.) The typeof function used to say things like MT_STRING; now it says things like string.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Fix build on SunOS for games/scummvm. Solaris has typedef __FILE FILE in several places already.