Changelog
### 7.3
```
---------------------------
**Enhancements:**
Added the :func:`humanfriendly.deprecation.deprecate_args()` decorator function
which makes it easy to switch from positional arguments to keyword arguments
without dropping backwards compatibility.
.. note:: I'm still working on the humanfriendly 8.0 release which was going to
break backwards compatibility in several ways if it wasn't for the
tools provided by the new :mod:`humanfriendly.deprecation` module.
.. _Release 7.3: https://github.com/xolox/python-humanfriendly/compare/7.2...7.3
```
### 7.2
```
---------------------------
**Enhancements:**
Support for backwards compatible aliases that emit deprecation warnings
(:mod:`humanfriendly.deprecation`).
.. note:: I'm currently working on several large refactorings that involve
moving things around between modules and dreaded having to extend the
existing maze of (almost but not quite) cyclic import dependencies
between modules. This new functionality will be adopted to untangle
the existing maze in the upcoming humanfriendly 8.0 release, which
bumps the major version number due to this very large change in how
backwards compatibility is implemented. It is my hope that this new
functionality will prove to be robust enough to unburden me from the
less elegant aspects of preserving backwards compatibility 😁.
**Documentation:**
Get rid of broken references and noise in the online documentation once and for all:
- :pypi:`Sphinx` was emitting a screen full of warnings about unknown
references. These were bothering me because testing the integration between
Sphinx and :mod:`humanfriendly.deprecation` involved lots of broken
references as well.
- Additionally the :mod:`humanfriendly.compat` module introduced a lot of noise
into the generated documentation because imported classes and their members
were being included in the documentation, this is now also fixed.
- Finally I decided to start using ``sphinx-build -nW`` to complain loudly when
even just one broken reference is found. This should encourage the discipline
to never introduce broken references again!
**Tests:**
Fixed :mod:`unittest` deprecation warnings in the test suite.
.. _Release 7.2: https://github.com/xolox/python-humanfriendly/compare/7.1.1...7.2
```
### 7.1.1
```
-----------------------------
Fix Python 3 incompatibility (``distutils.spawn``).
Much to my dismay this morning I ran into the following traceback on a Python
```
### 7.1
```
---------------------------
**Enhancements:**
- Enable Windows native support for ANSI escape sequences. This was brought to
my attention in `coloredlogs issue 71`_ and `coloredlogs pull request 72`_.
My experiences with ANSI escape sequences started out as part of the
:pypi:`coloredlogs` package but eventually I moved the support for ANSI
escape sequences to the :pypi:`humanfriendly` package. This explains how it
now makes sense to integrate the Windows native ANSI escape sequence support
in :pypi:`humanfriendly` as well.
**Bug fixes:**
- Accept pluralized disk size units (`26`_). I'm not claiming this is a full
solution to the problem, far from it. It does lessen the pain a bit (IMHO).
- Make sure the selected pager is available before trying to run it. While
testing :pypi:`humanfriendly` on Windows 10 I noticed that ``humanfriendly
--help`` resulted in nothing but a traceback, because :man:`less` wasn't
available. That's not human friendly at all 😕 (even if it is Windows 😈).
.. _Release 7.1: https://github.com/xolox/python-humanfriendly/compare/7.0...7.1
.. _coloredlogs issue 71: https://github.com/xolox/python-coloredlogs/issues/71
.. _coloredlogs pull request 72: https://github.com/xolox/python-coloredlogs/pull/72
.. _26: https://github.com/xolox/python-humanfriendly/issues/26
```
### 7.0
```
---------------------------
After an unplanned but extended hiatus from the development and maintenance of
my open source projects I'm now finally starting to pick up some momentum, so
I'm trying to make the best of it:
- Merge pull request `24`_: Fix bug in :func:`~humanfriendly.parse_length()` that rounded floats.
- Merge pull request `32`_: Update hyperlinks in readme.
- Merge pull request `33`_: Drop support for Python 2.6 and 3.0-3.4
- Merge pull request `35`_: SVG badge in readme.
- Merge pull request `36`_: Add support for nanoseconds and microseconds time units
- Fixed :func:`~humanfriendly.tables.format_rst_table()` omission from
``humanfriendly.tables.__all__``.
- Start testing on Python 3.8 and 3.9-dev.
.. _Release 7.0: https://github.com/xolox/python-humanfriendly/compare/6.1...7.0
.. _24: https://github.com/xolox/python-humanfriendly/pull/24
.. _32: https://github.com/xolox/python-humanfriendly/pull/32
.. _33: https://github.com/xolox/python-humanfriendly/pull/33
.. _35: https://github.com/xolox/python-humanfriendly/pull/35
.. _36: https://github.com/xolox/python-humanfriendly/pull/36
```
### 6.1
```
---------------------------
- Added a ``:pypy:`… role for easy linking to packages on the Python Package
Index, for details refer to :func:`humanfriendly.sphinx.pypi_role()`.
- Wasted quite a bit of time debugging a MacOS failure on Travis CI caused by a
broken :man:`pip` installation, fixed by using ``get-pip.py`` to bootstrap an
installation that actually works 😉.
.. _Release 6.1: https://github.com/xolox/python-humanfriendly/compare/6.0...6.1
```
### 6.0
```
---------------------------
**Noteworthy changes:**
- Enable :class:`~humanfriendly.testing.MockedProgram` to customize the shell
script code of mocked programs. This was added to make it easy to mock a
program that is expected to generate specific output (I'm planning to use
this in the :pypi:`linux-utils` test suite).
- Defined ``__all__`` for all public modules that previously lacked "export
control" and decided to bump the major version number as a precaution:
- These changes should not have any impact on backwards compatibility,
unless I forgot entries, in which case callers can get
:exc:`~exceptions.ImportError` exceptions...
- Imports of public modules were previously exported (implicitly) and this
pollutes code completion suggestions which in turn can encourage bad
practices (not importing things using their "canonical" name).
- I started developing the ``humanfriendly`` package years before I learned
about the value of defining ``__all__`` and so some modules lacked a
definition until now. I decided that now was as good a time as any
to add those definitions 😇.
**Miscellaneous changes:**
- Simplified the headings in ``docs/api.rst`` so that only the module names
remain. This was done because Sphinx doesn't support nested links in HTML
output and thus generated really weird "Table of Contents" listings.
- Fixed the reStructuredText references in the documentation of
:func:`~humanfriendly.prompts.prompt_for_choice()`. This function is imported
from :mod:`humanfriendly.prompts` to :mod:`humanfriendly` (for backwards
compatibility) where it can't use relative references to refer to the other
functions in the :mod:`humanfriendly.prompts` module.
- Changed the ``Makefile`` to default to Python 3 for development, make sure
``flake8`` is always up-to-date and silence the few targets whose commands
were not already silenced.
- Embedded quite a few Python API references into recent changelog entries,
just because I could (I ❤️ what hyperlinks can do for the usability of
technical documentation, it gives a lot more context).
.. _Release 6.0: https://github.com/xolox/python-humanfriendly/compare/5.0...6.0
```
### 5.0
```
---------------------------
- Added custom ``:man:`… role for easy linking to Linux manual pages to
the :mod:`humanfriendly.sphinx` module.
- Changed rendering of pretty tables to expand tab characters to spaces:
Until now pretty tables did not take the variable width of tab characters
into account which resulted in tables whose "line drawing characters" were
visually misaligned. Tabs are now expanded to spaces using
``str.expandtabs()``.
- Stop testing on Python 2.6 and drop official support. The world (including
Travis CI) has moved on and preserving Python 2.6 compatibility was clearly
starting to drag the project down...
I decided to bump the major version number because each of these changes can be
considered backwards incompatible in one way or another and version numbers are
cheap anyway so there 😛.
.. _Release 5.0: https://github.com/xolox/python-humanfriendly/compare/4.18...5.0
```
Links
- PyPI: https://pypi.org/project/humanfriendly
- Changelog: https://pyup.io/changelogs/humanfriendly/
- Docs: https://humanfriendly.readthedocs.io
This PR updates humanfriendly from 4.18 to 7.3.
Changelog
### 7.3 ``` --------------------------- **Enhancements:** Added the :func:`humanfriendly.deprecation.deprecate_args()` decorator function which makes it easy to switch from positional arguments to keyword arguments without dropping backwards compatibility. .. note:: I'm still working on the humanfriendly 8.0 release which was going to break backwards compatibility in several ways if it wasn't for the tools provided by the new :mod:`humanfriendly.deprecation` module. .. _Release 7.3: https://github.com/xolox/python-humanfriendly/compare/7.2...7.3 ``` ### 7.2 ``` --------------------------- **Enhancements:** Support for backwards compatible aliases that emit deprecation warnings (:mod:`humanfriendly.deprecation`). .. note:: I'm currently working on several large refactorings that involve moving things around between modules and dreaded having to extend the existing maze of (almost but not quite) cyclic import dependencies between modules. This new functionality will be adopted to untangle the existing maze in the upcoming humanfriendly 8.0 release, which bumps the major version number due to this very large change in how backwards compatibility is implemented. It is my hope that this new functionality will prove to be robust enough to unburden me from the less elegant aspects of preserving backwards compatibility 😁. **Documentation:** Get rid of broken references and noise in the online documentation once and for all: - :pypi:`Sphinx` was emitting a screen full of warnings about unknown references. These were bothering me because testing the integration between Sphinx and :mod:`humanfriendly.deprecation` involved lots of broken references as well. - Additionally the :mod:`humanfriendly.compat` module introduced a lot of noise into the generated documentation because imported classes and their members were being included in the documentation, this is now also fixed. - Finally I decided to start using ``sphinx-build -nW`` to complain loudly when even just one broken reference is found. This should encourage the discipline to never introduce broken references again! **Tests:** Fixed :mod:`unittest` deprecation warnings in the test suite. .. _Release 7.2: https://github.com/xolox/python-humanfriendly/compare/7.1.1...7.2 ``` ### 7.1.1 ``` ----------------------------- Fix Python 3 incompatibility (``distutils.spawn``). Much to my dismay this morning I ran into the following traceback on a Python ``` ### 7.1 ``` --------------------------- **Enhancements:** - Enable Windows native support for ANSI escape sequences. This was brought to my attention in `coloredlogs issue 71`_ and `coloredlogs pull request 72`_. My experiences with ANSI escape sequences started out as part of the :pypi:`coloredlogs` package but eventually I moved the support for ANSI escape sequences to the :pypi:`humanfriendly` package. This explains how it now makes sense to integrate the Windows native ANSI escape sequence support in :pypi:`humanfriendly` as well. **Bug fixes:** - Accept pluralized disk size units (`26`_). I'm not claiming this is a full solution to the problem, far from it. It does lessen the pain a bit (IMHO). - Make sure the selected pager is available before trying to run it. While testing :pypi:`humanfriendly` on Windows 10 I noticed that ``humanfriendly --help`` resulted in nothing but a traceback, because :man:`less` wasn't available. That's not human friendly at all 😕 (even if it is Windows 😈). .. _Release 7.1: https://github.com/xolox/python-humanfriendly/compare/7.0...7.1 .. _coloredlogs issue 71: https://github.com/xolox/python-coloredlogs/issues/71 .. _coloredlogs pull request 72: https://github.com/xolox/python-coloredlogs/pull/72 .. _26: https://github.com/xolox/python-humanfriendly/issues/26 ``` ### 7.0 ``` --------------------------- After an unplanned but extended hiatus from the development and maintenance of my open source projects I'm now finally starting to pick up some momentum, so I'm trying to make the best of it: - Merge pull request `24`_: Fix bug in :func:`~humanfriendly.parse_length()` that rounded floats. - Merge pull request `32`_: Update hyperlinks in readme. - Merge pull request `33`_: Drop support for Python 2.6 and 3.0-3.4 - Merge pull request `35`_: SVG badge in readme. - Merge pull request `36`_: Add support for nanoseconds and microseconds time units - Fixed :func:`~humanfriendly.tables.format_rst_table()` omission from ``humanfriendly.tables.__all__``. - Start testing on Python 3.8 and 3.9-dev. .. _Release 7.0: https://github.com/xolox/python-humanfriendly/compare/6.1...7.0 .. _24: https://github.com/xolox/python-humanfriendly/pull/24 .. _32: https://github.com/xolox/python-humanfriendly/pull/32 .. _33: https://github.com/xolox/python-humanfriendly/pull/33 .. _35: https://github.com/xolox/python-humanfriendly/pull/35 .. _36: https://github.com/xolox/python-humanfriendly/pull/36 ``` ### 6.1 ``` --------------------------- - Added a ``:pypy:`… role for easy linking to packages on the Python Package Index, for details refer to :func:`humanfriendly.sphinx.pypi_role()`. - Wasted quite a bit of time debugging a MacOS failure on Travis CI caused by a broken :man:`pip` installation, fixed by using ``get-pip.py`` to bootstrap an installation that actually works 😉. .. _Release 6.1: https://github.com/xolox/python-humanfriendly/compare/6.0...6.1 ``` ### 6.0 ``` --------------------------- **Noteworthy changes:** - Enable :class:`~humanfriendly.testing.MockedProgram` to customize the shell script code of mocked programs. This was added to make it easy to mock a program that is expected to generate specific output (I'm planning to use this in the :pypi:`linux-utils` test suite). - Defined ``__all__`` for all public modules that previously lacked "export control" and decided to bump the major version number as a precaution: - These changes should not have any impact on backwards compatibility, unless I forgot entries, in which case callers can get :exc:`~exceptions.ImportError` exceptions... - Imports of public modules were previously exported (implicitly) and this pollutes code completion suggestions which in turn can encourage bad practices (not importing things using their "canonical" name). - I started developing the ``humanfriendly`` package years before I learned about the value of defining ``__all__`` and so some modules lacked a definition until now. I decided that now was as good a time as any to add those definitions 😇. **Miscellaneous changes:** - Simplified the headings in ``docs/api.rst`` so that only the module names remain. This was done because Sphinx doesn't support nested links in HTML output and thus generated really weird "Table of Contents" listings. - Fixed the reStructuredText references in the documentation of :func:`~humanfriendly.prompts.prompt_for_choice()`. This function is imported from :mod:`humanfriendly.prompts` to :mod:`humanfriendly` (for backwards compatibility) where it can't use relative references to refer to the other functions in the :mod:`humanfriendly.prompts` module. - Changed the ``Makefile`` to default to Python 3 for development, make sure ``flake8`` is always up-to-date and silence the few targets whose commands were not already silenced. - Embedded quite a few Python API references into recent changelog entries, just because I could (I ❤️ what hyperlinks can do for the usability of technical documentation, it gives a lot more context). .. _Release 6.0: https://github.com/xolox/python-humanfriendly/compare/5.0...6.0 ``` ### 5.0 ``` --------------------------- - Added custom ``:man:`… role for easy linking to Linux manual pages to the :mod:`humanfriendly.sphinx` module. - Changed rendering of pretty tables to expand tab characters to spaces: Until now pretty tables did not take the variable width of tab characters into account which resulted in tables whose "line drawing characters" were visually misaligned. Tabs are now expanded to spaces using ``str.expandtabs()``. - Stop testing on Python 2.6 and drop official support. The world (including Travis CI) has moved on and preserving Python 2.6 compatibility was clearly starting to drag the project down... I decided to bump the major version number because each of these changes can be considered backwards incompatible in one way or another and version numbers are cheap anyway so there 😛. .. _Release 5.0: https://github.com/xolox/python-humanfriendly/compare/4.18...5.0 ```Links
- PyPI: https://pypi.org/project/humanfriendly - Changelog: https://pyup.io/changelogs/humanfriendly/ - Docs: https://humanfriendly.readthedocs.io