- Update to 10.0
**Noteworthy changes:**
* Merged pull request `#45`_ to resolve the issue caused by the conditional
:pypi:`pyreadline` requirement on Windows not supporting Python 3.9+.
* Updated the readme to use Python 3 in the example (reported in issue `#56`_).
Also added a mention of the ``humanfriendly --demo`` command.
* Removed the ``humanfriendly.compat.unittest`` alias that presumably no-one is
using at this point; it had been rendered useless quite a long time ago
(requested in issue `#53`_).
**Internal changes:**
* Merged pull request `#54`_ which migrates the :pypi:`humanfriendly` project
from Travis CI to GitHub Actions and from Coveralls.io to Codecov.
* Fixed a deprecation warning concerning ``setup.cfg`` and some Sphinx
documentation errors.
OBS-URL: https://build.opensuse.org/request/show/932241
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-humanfriendly?expand=0&rev=33
- Update to 9.2
Maintenance release:
* Merged pull request `#46`_ which fixes several :pypi:`flake8` warnings.
* Merged pull request `#49`_ which marks Python 3.9 support final.
* Merged pull request `#51`_ which helps to stabilize the test suite.
* Merged pull request `#52`_ which updates the :mod:`humanfriendly.sphinx`
module to include Sphinx extension metadata that has become mandatory in a
recent Sphinx release. After merging the pull request I added additional
metadata including the version.
- from version 9.1
* Added :func:`~humanfriendly.compat.on_macos()` function to detect Apple MacOS
(I need this in an upcoming :pypi:`coloredlogs` release and don't want to have
to think about how to detect MacOS again in the future 😇).
- from version 9.0
The major version number was bumped because the bug fix for
:func:`~humanfriendly.text.pluralize()` is backwards incompatible
and (even though this seems like very "cosmetic" functionality)
version numbers are cheap, so who cares 😉.
**Bug fixes:**
* Changed :func:`~humanfriendly.format_number()` to properly support negative
numbers (as suggested in `issue #40`_).
* Changed :func:`~humanfriendly.text.pluralize()` to generate "1.5 seconds"
instead of "1.5 second" (as suggested in `issue #43`_).
**Enhancements:**
* Enhanced :func:`~humanfriendly.text.concatenate()` to support ``conjunction``
and ``serial_comma`` keyword arguments (as suggested in `issue #30`_).
* Added :func:`~humanfriendly.text.pluralize_raw()` to select singular or
plural form without prefixing the count to the text that is returned.
- from version 8.2
* Added a simple case insensitive dictionary implementation, for details refer to
OBS-URL: https://build.opensuse.org/request/show/912658
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-humanfriendly?expand=0&rev=32
- Update to 8.1
* Make it possible to opt out of the output capturing that
:func:`humanfriendly.testing.run_cli()` sets up by default.
* Improve feature parity between :class:`humanfriendly.testing.CaptureOutput`
and my :pypi:`capturer` package to the point where most of the
:pypi:`humanfriendly` test suite can now run without :pypi:`capturer`.
* Refactored the test suite to import all names separately instead of referring
to identifiers via their modules (my preferences have changed since this code
was written a long time ago).
* Adopt :func:`functools.wraps()` to make decorator functions more robust.
* Make the :class:`~humanfriendly.terminal.spinners.Spinner` class more
customizable. The interval at which spinners are updated and the characters
used to draw the animation of spinners can now be customized by callers.
This was triggered by `executor issue #2`_.
* Improve test skipping based on exception types.
* The "deprecated imports" feature provided by :mod:`humanfriendly.deprecation`
has been adopted to clean up the maze of (almost but not quite) cyclic import
dependencies between modules.
* HTML to ANSI functionality has been extracted to a new
:mod:`humanfriendly.terminal.html` module.
* Support for spinners has been extracted to a new
:mod:`humanfriendly.terminal.spinners` module.
* The use of positional arguments to initialize
:class:`~humanfriendly.terminal.spinners.Spinner` objects has been deprecated
using the new :func:`humanfriendly.deprecation.deprecated_args()` decorator
function.
* Added the :func:`humanfriendly.deprecation.deprecated_args()` decorator function
which makes it easy to switch from positional arguments to keyword arguments
without dropping backwards compatibility.
* Accept pluralized disk size units (`#26`_). I'm not claiming this is a full
OBS-URL: https://build.opensuse.org/request/show/789694
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-humanfriendly?expand=0&rev=28
- Update to 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 wink.
- 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
innocent.
- Simplified the headings in docs/api.rst so that only the
OBS-URL: https://build.opensuse.org/request/show/774497
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-humanfriendly?expand=0&rev=12
- 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 wink.
- 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
innocent.
- Simplified the headings in docs/api.rst so that only the
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-humanfriendly?expand=0&rev=25
- Update to 4.16.1:
* Added humanfriendly.text.compact_empty_lines() function.
* Enable optional html_to_ansi(data[, callback]) argument.
* Added a code sample and screenshot to the HTMLConverter documentation.
* Emit vertical whitespace for block tags like <div>, <p> and <pre> and post-process the generated output in __call__() to compact empty lines.
* Don’t pre-process preformatted text using the user defined text callback.
* Improve robustness against malformed HTML (previously an IndexError would be raised when a closing </a> tag was encountered without a corresponding opening <a> tag).
* Emit an ANSI reset code when HTMLConverter.close() is called and a style is still active (improves robustness against malformed HTML).
* Support for 24-bit (RGB) terminal colors. Works by accepting a tuple or list with three integers representing an RGB (red, green, blue) color.
* Support for italic text rendering on the terminal.
* Make format_timespan() accept datetime.timedelta objects (fixes#27).
* Add license key to setup.py script (pointed out to me in coloredlogs pull request #53).
* Added the Timer.sleep() method to sleep “no more than” the given number of seconds.
* Added the format_rst_table() function to render RST (reStructuredText) tables.
- Enable and make sure tests are run
OBS-URL: https://build.opensuse.org/request/show/630720
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-humanfriendly?expand=0&rev=6
- Update to version 4.8
* Add coerce_pattern() function
* Improve code consistency
- From version 4.7
* Support background colors and 256 color mode
* Tests for output(), message() and warning()
- From version 4.6
* Support for bright terminal colors
- From version 4.5
* Extend byte ranges, add RAM output to command line
- From version 4.4.2
* Reduce clock source sensitivity* (MacOS on Travis CI)
* Fix `Double requirement given' error
* Try to fix Python 2.6 tests on Travis CI
* Change Sphinx documentation theme
* Bump copyright
* Try to enable MacOS builds on Travis CI
* Fix ImportError exception on Windows
- From version 4.4.1
* Include docs to sdist
* PEP-8 fail
* Change cli test from 1.05 mm to 1.05 km
* Another correction to test_cli
* Corrected CLI format_length test
* Aim for more CLI coverage
* Add CLI tests for format-byte
* Added size test cases
* Size 1z is now valid
- From version 4.4
* Add touch() to __all__
OBS-URL: https://build.opensuse.org/request/show/574412
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-humanfriendly?expand=0&rev=7
- Update to version 2.1
* Release 2.1: Support for sanitizing terminal output
* Support for sanitizing terminal output
* Merge #12: Update README.rst for new unit behaviour
* Update README.rst for new unit behaviour
* Release 2.0: Proper support for IEEE 1541 definitions of units? (fixes#4, merges #8 and #9)
* Proper support for IEEE 1541 definitions of units?
* Merge #9: Add note about IEEE 1541 definitions of units
* Merge #8: Allow correct behavior of 'parse_size' and 'format_size'
* Stop clearing coverage data on Travis CI :-)
* Release 1.44.9 (fixes#10 and #11)
* Restore Python 2.6 compatibility (#10 and #11)
* Resolve timespan formatting issues (#10 and #11)
* Reproduce timespan formatting issues reported in #10 and #11
* Refactor makefile, switch to py.test, wheel support, etc.
* Release 1.44.8 (fixes#7)
* Don't test tags on Travis CI
* Fix issue #7
* Reproduce issue #7 in test suite
* Minor improvements to setup script
* Add note about IEEE 1541 definitions of units
* Added unit tests
* Implemented correct handling of prefixes based on IEEE 1540
- Fix source url
- Minor specfile cleanup
OBS-URL: https://build.opensuse.org/request/show/434195
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-humanfriendly?expand=0&rev=3