v0.3.0 (2023-04-29)#
Features#
An
uncite
function has been added to remove citations from cited objects, restoring them to their original type. (#11)The
check_citations
(now namedcitedinput
) decorator now automatically uncites all inputs to the functions it decorates. (#13)The
enforcecite
decorator has been implemented (as showcased in the README), combining thecitedinput
decorator with the newcitedreturn
decorator, which adds a citation to the return of the decorated function. (#54, #111)
Bugfixes#
The
check_citations
previously raised a warning as an error whenwarn=True
, rather than usingwarnings.warn
. This has been fixed. (#125)
Improved Documentation#
More detailed docstrings have been added to the core classes. (#6)
Keywords have been added to pyproject.toml for PyPI metadata. (#90)
The simple example in the README had an outdated syntax using
CiteAs
rather thantyping.Annotated
. This has been corrected. (#103)A badge showing the PyPI downloads count has been restored to the README. (#106)
The changelog entry for v0.2.0 had a typo of “pakcage”. This has been corrected. (#114)
Deprecations and Removals#
Using the
CiteAs
class’s item-getting function i.e.CiteAs[..., ...]
is no longer allowed. For now_get_cited_class
can be used instead.
Renamings and Relocations#
The
check_citations
decorator has been renamed tocitedinput
. (#126)
Improved Test Suite#
A few tests were incorrectly typed, using
int
values in place offloat
. This has been fixed.
Development Configuration Changes#
A linter (markdownlint) for Markdown files has been added as a pre-commit, and the README is now compliant with it. (#104)
isort was previously removed in favour of ruff, however ruff had not been properly configured to use its isort rules. This has been rectified. (#119)
0.2.0 (2023-04-21)#
Features#
Mypy has been added to the project for static type checking, in strict mode. Accordingly, comprehensive type annotations have been added to the codebase, excluding the test suite. (#40)
A decorator
check_citations
has been added, which together with a classCite
andtyping.Annotated
automate’s the checking of citation arguments to a function. (#71)The decorator
check_citations
has new behaviour to usetyping.Annotated
together with a instance of the container classCite
, rather thanCiteAs
directly. (#82)An as-yet-unused square logo has been designed and added to the ./doc folder. It is intended to be used as a favicon for the documentation website, but as yet has not been configured to be used for that purpose. Full sized logos have also been added, as used in the README.
Most parts of the core functionality have now been implemented, but also changed significantly; especially
CiteAs
and its dependents.
Improved Documentation#
pyproject.toml has been configured with package metadata for in PyPI. This includes classifiers, project URLs, and the SPDX license identifier. (#5)
Badges in the README have been added and re-ordered. Also, one for the Python version used in development has been removed. (#43)
The README has been improved to include a logo (dark and light mode adaptive), a slogan, a quick example, basic guidance on when to use the package, and explicit reference to pyenv usage.
The changelog entry for v0.1.2 was incorrectly headered as v0.1.1. This used single backticks for the code blocks, whereas these should be double backticks in RST. Both these issues have been addressed.
Renamings and Relocations#
Citand
has been renamed toCitable
. The original name was a nod to the words multiplicand and summand. (#12)
Improved Test Suite#
New tests have been added, corresponding to the re-designed core classes.
Development Configuration Changes#
Dependabot has been configured to work correctly when using pip-compile together with pyproject.toml. To achieve this, the CI requirements.txt file was renamed from requirements-ci.txt to ci-requirements.txt, to follow dependabot’s expected naming pattern for requiremnts files. An empty requirements.in file also needed to be added to signal to dependabot that pip-compile is being used. (#4)
The requirements.txt files (for local development and CI) have been put into a subdirectory to reduce clutter. (#61)
A CI check has been added to ensure the requirements.txt for local development is coherent via a dry-run pip install.
Codecov has been configured to analyze code coverage of the repository.
Custom towncrier fragment types have been added. These are: feature, bugfix, doc, removal, newhome, test, and config.
Dependabot updates are now scheduled for daily, rather than weekly.
Some non-printable characters have been removed from many files, especially carriage returns. Some tools were not able to work properly with these characters.
The
citecheck[dev,check]
extras now use fixed versions of various utilities shared in common with pre-commit, rather than leaving this to pip-compile. When dependabot updates these, the pre-commit config file needs to be manually updated to match the suggested new versions.The license file is now specified to setuptools in pyproject.toml.
The pylint message useless-object-inheritance is now disabled since for mypy, explicit inheritance from object is useful.
0.1.2 (2023-03-30)#
Features#
Added core functionality, including
CiteAs
,Cited
, andcheck_citations
.