Zimscraperlib

Latest version: v4.0.0

Safety actively analyzes 682244 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 1 of 7

4.0.0

Added

- Add utility function to compute ZIM Tags 164, including deduplication 156
- Metadata does not automatically drops control characters 159
- New `indexing.IndexData` class to hold title, content and keywords to pass to libzim to index an item
- Automatically index PDF documents content 167
- Automatically set proper title on PDF documents 168
- Expose new `optimization.get_optimization_method` to get the proper optimization method to call for a given image format
- Add `optimization.get_optimization_method` to get the proper optimization method to call for a given image format
- New `creator.Creator.convert_and_check_metadata` to convert metadata to bytes or str for known use cases and check proper type is passed to libzim
- Add svg2png image conversion function 113
- Add `conversion.convert_svg2png` image conversion function + support for SVG in `probing.format_for` 113
- Add `i18n.Lang` class used as typed result of i18n operations 151

Changed

- **BREAKING** Renamed `zimscraperlib.image.convertion` to `zimscraperlib.image.conversion` to fix typo
- **BREAKING** Many changes in type hints to match the real underlying code
- **BREAKING** Force all boolean arguments (and some other non-obvious parameters) to be keyword-only in function calls for clarity / disambiguation (see ruff rule FBT002)
- Prefer to use `IO[bytes]` to `io.BytesIO` when possible since it is more generic
- **BREAKING** `i18n.NotFound` renamed `i18n.NotFoundError`
- **BREAKING** `types.get_mime_for_name` now returns `str | None`
- **BREAKING** `creator.Creator.add_metadata` and `creator.Creator.validate_metadata` now only accepts `bytes | str` as value (it must have been converted before call)
- **BREAKING** second argument of `creator.Creator.add_metadata` has been renamed to `value` instead of `content` to align with other methods
- When a type issue arises in metadata checks, wrong value type is displayed in exception
- **BREAKING** `i18n.get_language_details()`, `i18n.get_iso_lang_data()`, `i18n.find_language_names()` and `i18n.update_with_macro` now process / return a new typed `Lang` class 151
- **BREAKING** Rename `i18.NotFound` to `i18n.NotFoundError`

Removed
- **BREAKING** Remove translation features in `i18n`: `Locale` class + `_` and `setlocale` functions 134

Fixed

- Metadata length validation is buggy for unicode strings 158
- Pillow 10.4.0 reveals improper type hints for image probing functions 177
- Enhance error when locale fails to setup 157

3.4.0

Added

- `zim.creator.Creator._log_metadata()` to log (DEBUG) all metadata set on `_metadata` (prior to start()) 155
- New utility function to confirm ZIM can be created at given location / name 163

Changed

- Migrate the **VideoWebmLow** and **VideoWebmHigh** presets to VP9 for smaller file size 79
- New preset versions are v3 and v2 respectively
- Simplify type annotations by replacing Union and Optional with pipe character ("|") for improved readability and clarity 150
- Calling `Creator._log_metadata()` on `Creator.start()` if running in DEBUG 155

Fixed

- Add back the `--runinstalled` flag for test execution to allow smooth testing on other build chains 139

3.3.2

Added

- Add support for `disable_metadata_checks` and `ignore_duplicates` arguments in `make_zim_file` function ("zimwritefs-mode")

Changed

- Relaxed constraints on Python dependencies
- Upgraded optional dependencies used for test and QA

3.3.1

Added

- Set a user-agent for `handle_user_provided_file` 103

Changed

- Migrate to generic syntax in all std collections 140

Fixed

- Do not modify the ffmpeg_args in reencode function 144

3.3.0

Added

- New `disable_metadata_checks` parameter in `zimscraperlib.zim.creator.Creator` initializer, allowing to disable metadata check at startup (assuming the user will validate them on its own) 119

Changed

- Rework the **VideoWebmLow** preset for faster encoding and smaller file size 122
- preset has been bumped to **version 2**
- when using an S3 cache, all videos using this preset will be reencoded and uploaded to cache again (it will replace the same file encoded with preset version 1)
- When reencoding a video, ffmpeg now uses only 1 CPU thread by default (new arg to `reencode` allows to override this default value)
- Using openZIM Python bootstrap conventions (including hatch-openzim plugin) 120
- Add support for Python 3.12, drop Python 3.7 support 118
- Replace "iso-369" by "iso639-lang" library
- Replace "file-magic" by "python-magic" library for Alpine Linux support and better maintenance

Fixed

- Fixed type hints of `zimscraperlib.zim.Item` and subclasses, and `zimscraperlib.image.optimization:convert_image`

3.2.0

Added

- Add utility function to compute/check ZIM descriptions 110

Changed

- Using pylibzim `3.4.0`

Removed

- Support for Python 3.7 (EOL)

Page 1 of 7

© 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.