Releases: ilius/pyglossary
5.0.7
What's Changed
Plugins
- Aard2 slob writer: add opus, oga extensions (#618) by @glowinthedark
- Aard2 slob writer: change "already exists" exception to
WriteError
to avoid showing stacktrace - AppleDict writer: Russian index: switch to
pymorphy3
, #620 - Refactoring in many plugins
User interface
- Respect
NO_COLOR
environment variable in command line - Interactive command line interface: fixes / improvements
- Fix 2 bugs: bad formatting (missing colon+space) and extra colon+space
- Add colors to checkbox prompt
- Avoid skipping empty string as config / rw option value
- Gtk4 UI: fix "Browse" buttons not working
- Web UI: get rid of a warning
- Tkinter UI: improvements:
- Layout improvements for About, Authors, License tabs
- Update progress bar text position on window resize
- Optimize progress bar
- Add missing type annotations
- Refactoring in gtk4, tkinter and interactive cmd interface
Full Changelog: 5.0.6...5.0.7
5.0.6
What's Changed since 5.0.4
Skipping 5.0.5
because of a packaging bug
- Fix bug in
ui/main.py
interpretingsys.argv[0]
as input filename - Fix
UnicodeEncodeError
with non-utf8 stdout in frozen envs by @glowinthedark in #617 - Epub and Kobo: fix unclosed
<br>
tags in.xhtml
files - Make
.epub
and.zip
files reproducable for testing (WIP) - Move tools
.toml
files (used to generate docs) into plugin directories - Update docs
- Fix ruff 0.9.0 errors and re-format
- Add
useByteProgress
attribute to all Reader classes - Some refactoring in code base and UI
Full Changelog: 5.0.4...5.0.6
5.0.4
What's Changed
- Fix regression in
glossary_v2.py
effecting deprecatedGlossary
usage - Fix docstring for
glossary_v2.Glossary.write
method - Fix broken script
scripts/view-glossary-plaintext
- Feature: include
write_options
in.info
file with--info
flag - Testing: fix
scripts/test.sh
not testing deprecated stuff - Testing: fix deprecated tests
- Testing: add
SKIP_MISSING
env var to skip testing plugins with missing dependencies - Fix / update automation scripts
- Add recent releases' doc
- Improve and refactor type annotations
- Break up all plugins into directories (with
reader.py
and/orwriter.py
) - Fix ruff 0.8.5 errors
- Some refactoring (as usual)
Full Changelog: 5.0.3...5.0.4
5.0.3
What's Changed
- Fix in PyGlossary icon / logo, visible in light background
- Web UI: update
favicon.ico
- Mobipocket: refactor, run kindlegen with relative file path, #613
- Add back
pkg/pyglossary.desktop
for flathub build, #614 - Rename plugin
ABCMedicalNotes
toMakindoMedical
(#267) - Make plugins' documentation tidier
- Update
project.urls
inpyproject.toml
according to packaging.python.org - Add or update
__all__
in imported modules - Fewer uses of
sys.exit
- Refactor
pyglossary/ui/main.py
and addmainNoExit
function (c19ba56)
Full Changelog: 5.0.2...5.0.3
5.0.2
What's Changed
- New PyGlossary icon logo
- Zimfile: fix possible
NameError
- Web UI: add glossary preview buttons by @glowinthedark in #610
- Remove plugin: IUPAC goldbook (.xml)
- Replace all usages of
OrderedDict
withdict
which is ordered since python 3.6 - FreeDict: improve test coverage
- Refactor Yomichan and Web UI, and cleanup in BGL
- Remove
pyglossary.pyw
,pkg
directory andres/resize-16.png
Full Changelog: 5.0.1...5.0.2
5.0.1
What's Changed
- Glossary info: map "creationTime" metadata to/from "date" metadata (used by StarDict)
- Gettext
.po
: fix broken syntax due to missing quotations, unescape|
, and fix duplicate msgids - Wiktextract: improvements and better testing
- Disable categories by default with an option to enable it
- FreeDict: refactoring
- Web UI: add
setup.py
metadata by @glowinthedark in #609 - Allow disabling in-memory SQLite with an environment variable
- Better testing, fix/add type annotations and (as usual) some refactoring
Full Changelog: 5.0.0...5.0.1
5.0.0
Breaking changes for library users
-
38f8f91
glossary_v2.Glossary
class raisesError
exception if operation failed, instead oflog.critical
andreturn None
- Applies to these methods:
convert
,read
,write
glossary.Glossary
(andpyglossary.Glossary
) still behaves the same way (returnNone
if failed)
- Applies to these methods:
-
a5204bb Breaking changes in
Glossary.detectInputFormat
andGlossary.detectOutputFormat
methods:format
argument is renamed toformatName
quiet
argument is removed (must handleError
exception instead)
-
9cc2887
Glossary.wordTitleStr
: rename_class
argument toclass_
-
Remove
toBytes
andreplaceStringTable
functions fromtext_utils.py
andplugins/formats_common.py
Breaking change for plugins outside this repo
Deprecated API for library users
glossary.Glossary
is deprecated, useglossary_v2.Glossary
format
variable in plugins is deprecated, rename it toname
info
argument toGlossary()
is deprecated. Useglos.setInfo(key, value)
Glossary
:format
arguments toread
,directRead
andwrite
methods are deprecated, rename them toformatName
What's changed since last version?
We have a web-based user interface by @glowinthedark, a new plugin StardictMergeSyns, new options in various plugins/formats, lots of improvements, refactoring and cleanup.
Full Changelog: 4.7.1...5.0.0
New Contributors
4.7.1
Changes since 4.7.0
Breaking changes:
4c78aa4 replace CC-CEDICT
plugin with EDICT2
plugin
Bug fixes and improvements:
f5a420c Bugfix: Glossary: removeHtmlTagsAll was ineffective with --sort same for preventDuplicateWords
01b5606 Yomichan: merge entries with same headword, #574
5fe93f4 Yomichan: add beautifulsoup4 to dependencies, #577
2a23966 use python3
in scripts/view-glossary and scripts/diff-glossary to bypass pyenv
c878cbd zimfile: replace OSError on Windows with a warning, #580
1573d5c Wiktextract: rewrite writeSenseExample and fix #572 - Fix TypeError: got invalid input value of type <class 'list'> - Create a list of examples - Add the example type as prefix in bold
7f64af5 Wiktextract: keep warnings in a Counter, remove duplicate messages and show at end
New Features
aa6765b add new plugin xdxf_css (XdxfCss) based on PR #570 by @soshial
0e9d221 add read_options to .info file
fea2223 StarDict Textual writer: save resource files in res/ folder, #558
3800fac add Dyula language, #575
08c41da add glos.readOptions property
Refactoring, linting and testing
6786880 fix ruff preview error in appledict_bin/init.py
fd09e16 github actions: switch to ruff 0.5.2
019740e fix ruff error
69bcbf9 fix ruff preview error: B909 Mutation to loop iterable during iteration
5596b7f switch to ruff 0.6.4
03a509b fix ruff preview errors, use str.removesuffix
6ca9902 fix some mypy errors
eac286b github test: use lxml==5.2 to fix jmdict test
f2eb39d move info writer out of plugins
578c854 fix tests: test_save_info_json
0f4d885 update pyproject.toml
1e20a1a format pyglossary/glossary_v2.py
e231b64 update scripts/format-code
4aa4f09 github action test: remove test cache
acdbede github test: upload failed test files
1f095ad fix test action
9df1ed6 update jmdict test and switch to lxml==5.3
Full Changelog: 4.7.0...4.7.1
4.7.0
Changes since 4.6.1
- Update README.md by @ilius in #460
- Update pyicu docs for Debian by @master-bob in #461
- AppleDict-bin: support UTF16 4-byte symbols #473 by @soshial in #476
- AppleDict-bin: fix crash for multidirectional dicts by @soshial in #480
- DSL: support substitution of tilda ~ by @soshial in #485
- AppleDict-bin: fix crash for Korean glossary by @soshial in #484
- Update copyright name for ratijas by @ratijas in #488
- Improve Python typing in dsl plugin by @ratijas in #489
- New DSL plugin by @ilius in #492
- stardict xdxf: handle text within
by @Crissium in #511 - ruff by @ilius in #514
- format .github/workflows/*.yml by @ilius in #515
- Replace dictzip with idzip by @bergentroll in #512
- fix: unable to select files from within flatpak by @proletarius101 in #531
- slob: make audio work in AARD2 for android and aard2-web (breaks audio in goldendict desktop) by @glowinthedark in #534
New Contributors
- @master-bob made their first contribution in #461
- @Crissium made their first contribution in #511
- @bergentroll made their first contribution in #512
- @glowinthedark made their first contribution in #534
Full Changelog: 4.6.1...4.7.0
4.6.1
Changes since 4.6.0
Bug fixes
-
Fix a bug causing broken installation if
~/.local/lib
is a symbolic link- or
site-packages
or any of its parents are a symbolic link
- or
-
Fix incompatibilty with Python 3.9 (despite documentation)
-
Fix
scripts/entry-filters-doc.py
,scripts/plugin-doc.py
anddoc/entry-filters.md
-
AppleDict: Fix typos in Chinese language module
Features:
- Use environment variable
VERBOSITY
as default (a number from 0 to 5)
Improvements
-
AppleDict Binary: set
html_full=True
by default -
Update
wcwidth
to0.2.6
Refactoring
-
Add
glos.stripFullHtml(errorHandler)
and use it in 3 plugins- Add entry filter
StripFullHtml
and changeentry.stripFullHtml()
to return error
- Add entry filter
-
Refactor
entryFiltersRules
-
Remove empty plugin gettext_mo.py
-
Remove
glos.titleElement
fromglossary_v2.Glossary
- Add to
glossary.Glossary
for compatibility glossary.Glossary
is a wrapper (child class) on top onglossary_v2.Glossary
- Add to
Documentation
-
Update
doc/entry-filters.md
to list some entry filters that were enabled conditionally (besides config) -
Remove
sdict.md
andsdict_source.md
(removed plugins)
Type checking
- Add missing method in
GlossaryType
class - Fix
mypy
errors on most of code base and some of plugins - Use builtin types
list, dict, tuple, set
for type annotations - Replace
Optional[X]
withX or None
- will not effect runtime, but type checking now only works with Python 3.10+