Added
* Python 3.10 support was officially added.
Changed
* The User-Agent header sent by `Inventory` when making an HTTP(S) request
now identifies `sphobjinv` and its version (anticipate no API or
behavior change).
* An extraneous newline was removed before tables printed in the
'suggest' CLI mode (cosmetic change).
Fixed
* Previously, `sphobjinv.Inventory` would ignore entries in `objects.inv`
that contained spaces within `name`
(see [181](https://github.com/bskinn/sphobjinv/issues/181));
this is now fixed.
Removed
* Python 3.5 is no longer supported.
* The relaxation of the integer constraint on the `priority` field
introduced in v2.1b1 has been *reverted*, as `objects.inv` data lines
with such non-integer `priority` values are skipped by Sphinx.
Internal
* Where possible, string interpolation has been refactored to use
f-strings.
* A 'speedup' `extras_require` entry has been added to allow simple installation
of `python-Levenshtein` for Linux and MacOS platforms, as
`pip install sphobjinv[speedup]`. This extra does nothing on Windows, since
compilation machinery is anticipated not to be available for most users.
* `objects_mkdoc_zlib0.inv`, which was compressed at `zlib` level 0,
has been added to the test resources directory.
* This file had to be flagged as binary in `.gitattributes` in order to avoid
git EOL auto-conversion on Windows.
* The CLI functionality was refactored from the single `sphobjinv.cmdline` module
into a dedicated set of `sphobjinv.cli.*` submodules.
* Some internal `type(...) is ...` checks were replaced with `isinstance(...)`
Testing
* Added *significant* body of new tests to confirm inventory compatibility
with both `sphobjinv` and Sphinx itself.
* Consistency checks added both for data within `sphobjinv.Inventory` instances
**AND** as emitted from `sphinx.ext.inventory.InventoryFile.load()`.
* The tests in `tests/test_valid_objects.py` strive to bracket as precisely
as possible what content is allowed on an `objects.inv` data line,
in addition to providing guidance on what is allowable, but discouraged.
`docs/source/syntax.rst` was also edited to reflect this guidance.
* Additional tests have been added to probe corner cases involving Windows EOLs.
* A test was added to ensure that the schema in `sphobjinv.schema` is in fact
a valid JSON schema.
* Multiple asserts/checks per test method have been converted to use
`pytest-check` instead of `pytest-subtests`, due to some inconsistent
behavior with the latter.
* `tox` environments and dependencies were updated, and some flake8 configuration
was adjusted.
Administrative
* Standard development Python version bumped to 3.9.
* Standard development Sphinx version bumped to 3.5.0.
* Added `[skip ci]` flag in commit text for skipping Github Actions CI.
* RtD upgraded to use Python 3.8.
* Added 'radio Sphinx' logo to RtD docs.
* Drafted `CONTRIBUTING.md` and added PR & issue templates.
* Tranferred most project metadata from `setup.py` to `setup.cfg`.