To install the unreleased unihan-db version, see developmental releases.
pip:
$ pip install --user --upgrade --pre unihan-db
- Automatically linkify links that were previously only text.
- Bump unihan-etl 0.27.0 -> 0.34.0
- 15.1.0: kHKSCS, kIRGDaiKanwaZiten, kKPS0, kKPS1, kKSC0, kKSC1, kRSKangXi
- 13.0.0: kRSJapanese, kRSKanWa, kRSKorean
- 12.0.0: kDefaultSortKey (private property)
-
Aggressive automated lint fixes via
ruff
(#333)via ruff v0.3.4, all automated lint fixes, including unsafe and previews were applied:
ruff check --select ALL . --fix --unsafe-fixes --preview --show-fixes; ruff format .
Branches were treated with:
git rebase \ --strategy-option=theirs \ --exec 'poetry run ruff check --select ALL . --fix --unsafe-fixes --preview --show-fixes; poetry run ruff format .; git add src tests; git commit --amend --no-edit' \ origin/master
-
poetry: 1.7.1 -> 1.8.2
See also: https://github.com/python-poetry/poetry/blob/1.8.2/CHANGELOG.md
-
ruff 0.2.2 -> 0.3.0 (#332)
Related formattings. Update CI to use
ruff check .
instead ofruff .
.See also: https://github.com/astral-sh/ruff/blob/v0.3.0/CHANGELOG.md
-
Strengthen linting (#331)
-
Add flake8-commas (COM)
-
Add flake8-builtins (A)
-
Add flake8-errmsg (EM)
-
-
SQLAlchemy: Fix
add_to_dict()
event mapper bug (#325)This allows
Unhn
rows to userow.as_dict()
once more. -
Importer bug fixes (#327):
kXHC1983
,kHanyuPinyin
,kHanyuPinlu
,kCCCII
-
Bump unihan-etl 0.30.0post0 -> 0.30.1
Fix
kRSUnicode
double apostrophes.
-
unihan-etl: 0.29.0 -> 0.30.0post0
Documentation updates
- Move CodeQL from advanced configuration file to GitHub's default
- ci: Add pydocstyle rule to ruff (#322)
- Add docstrings to functions, methods, classes, and packages (#322)
- Split API docs into multiple pages (#328)
-
Test
examples/
(#324)These are high-level integrative tests of the same example code the project uses in documentation.
This brings code coverage from 69.77 to 93.92%.
A note on test times
-
CI (GitHub Actions) can take 5-6 minutes per test
This may change in future cases when UNIHAN is cached.
-
Initial (cold) py.tests on local environments won't be cached and will take similar times. Subsequent tests can be <0.6 seconds.
-
-
Move pytest configuration to
pyproject.toml
(#318) -
unihan-etl: 0.28.0 -> 0.29.0
-
Add Python 3.12 to trove classifiers
-
Packaging (poetry): Fix development dependencies
Per Poetry's docs on managing dependencies and
poetry check
, we had it wrong: Instead of using extras, we should create these:[tool.poetry.group.group-name.dependencies] dev-dependency = "1.0.0"
Which we now do.
-
ruff: Remove ERA /
eradicate
pluginThis rule had too many false positives to trust. Other ruff rules have been beneficial.
-
Poetry: 1.6.1 -> 1.7.0
See also: https://github.com/python-poetry/poetry/blob/1.7.0/CHANGELOG.md
-
Move formatting from
black
toruff format
(#321)This retains the same formatting style of
black
while eliminating a dev dependency by using our existing rust-basedruff
linter. -
CI: Update action packages to fix warnings
- dorny/paths-filter: 2.7.0 -> 2.11.1
-
unihan-etl:
-
0.26.0 -> 0.27.0 (#317)
Fixes for pytest plugin data locations.
-
0.25.0 -> 0.26.0
pytest plugin with cached UNIHAN data.
-
-
ruff: Code quality fixes (#316)
Maintenance only, no bug fixes, or new features
-
ruff: Improve code quality stringency (#315)
-
unihan-etl: 0.24.0 -> 0.25.0
Improve code quality via
ruff
rules strictness
Maintenance only, no bug fixes, or new features
-
unihan-etl:
-
0.23.1 -> 0.24.0 (#314)
Subdependency updated for zhon: 1.1.5 -> 2.0.0 (#289, fixes #282)
Fixes pytest warning related to regular expressions.
-
0.22.1 -> 0.23.0 (#314):
Package introduces configurable application directories (for test purposes)
-
0.21.1 -> 0.22.1 (#348):
{obj}
dataclasses.dataclass
-based configuration -
0.19.2 -> 0.20.0
Drops python 3.7, normalizes
typing
imports
-
-
SQLAlchemy: Upgraded to v2 (#311)
Downstream packages will require SQLAlchemy v2 at a minimum.
Benefits in include: Built-in types for mypy, being able to use SQLAlchemy core API against ORM entities.
See also: What's new in SQLAlchemy 2.0, Migrating to SQLAlchemy 2.0
-
Python 3.7 Dropped
Python 3.7 support has been dropped (#309)
Its end-of-life is June 27th, 2023 and Python 3.8 will add support for
typing.TypedDict
andtyping.Protocol
out of the box without needingtyping_extensions
.
-
Improved typings
Move to strict mypy typings (#311)
This will make future refactoring simplifications easier and maintain code quality in the long term, in addition to more intelligent completions.
Maintenance only, no bug fixes or features
- Final Python 3.7 release
-
Move formatting, import sorting, and linting to ruff.
This rust-based checker has dramatically improved performance. Linting and formatting can be done almost instantly.
This change replaces isort, flake8 and flake8 plugins.
-
poetry: 1.4.0 -> 1.5.0
See also: https://github.com/python-poetry/poetry/releases/tag/1.5.0
-
Bump unihan-etl from 0.18.1 -> 0.18.2
Typing update for
merge_dict
- Update unihan-etl to v0.18.1+ (Add missing PyYAML dependency)
-
CI speedups (#305)
- Split out release to separate job so the PyPI Upload docker image isn't pulled on normal runs
- Clean up CodeQL
-
Poetry: Update 1.1.x to 1.2.x
- mypy: Unignore unihan-etl package (which is now typed)
Maintenance only release, no fixes or features
- Add flake8-bugbear (#300)
- Add flake8-comprehensions (#301)
- Render changelog in
linkify_issues
(#303) - Fix Table of contents rendering with sphinx autodoc with
sphinx_toctree_autodoc_fix
(#303) - Test doctests in our docs via
pytest_doctest_docutils
(built ondoctest_docutils
) (#303)
-
Update unihan-etl 0.16.0 -> 0.17.2:
- unihan-etl 0.16.0 adds
--no-cache
/cache
as an option - unihan-etl 0.17.0 adds type annotations (
mypy --strict
) - unihan-etl 0.17.1 fixes bugs from 0.17.0's annotations
- unihan-etl 0.17.2 docs / changelog issue linking update
- unihan-etl 0.16.0 adds
-
Bump in unison with other cihai projects deprecating compat modules, via #299.
Python 2.x was already dropped in 0.2.0 (2021-06-15). There was no compat module in this project, and it only only removed a duplicate function (
merge_dict()
) and imported the one fromunihan_etl
.- Bump unihan-etl to 0.15.0+ (to avoid any chance of using compat imports from it in the future)
- Drop python 3.6 (#292)
- Add python 3.10 (#292)
Infrastructure updates for static type checking and doctest examples.
-
Update poetry to 1.1
- CI: Use poetry 1.1.7 and
install-poetry.py
installer (#274, #292) - Relock poetry.lock at 1.1 (w/ 1.1.7's fix)
- CI: Use poetry 1.1.7 and
-
Tests:
tmpdir
->tmp_path
-
Run pyupgrade @ python 3.7
-
Initial doctests support added, via #297
-
Initial mypy validation, via #297
-
CI (tests, docs): Improve caching of python dependencies via
action/setup-python
's v3/4's new poetry caching, via #297 -
CI (docs): Skip if no
PUBLISH
condition triggered, via #297
- Move to
furo
theme
- #269: Convert to markdown
- Update
black
to 21.6b0 - Update trove classifiers to 3.9
- #267 Drop python 2.7, 3.5. Remove unused
__future__
and modesets.
- Major overhaul of docs (self-host + add icons and metadata) #262
- Move from travis to github actions #262
- Move build / publish of packaging to poetry #263
- Add README docs on publishing versions, linting, and development
- Move from Pipfile to Poetry (#261)
- Speed up importing initial data
- Support for more fields
- Support for appdirs (XDG directory specification)
- Zero-config sqlite default
- Bump unihan-etl to 0.9.5
- Add
project_urls
to setup.py - Use
collections
import that's compatible with python 2 and 3 - Loosen version constraints
This had no pypi release
- Initial commit