Update dependency word_search_generator to v5 #186

Merged
tyler merged 2 commits from renovate/word_search_generator-5.x into main 2026-02-17 21:48:36 -08:00
Collaborator

This PR contains the following updates:

Package Change Age Confidence
word_search_generator (changelog) ~=3.5.3~=5.0.0 age confidence

Release Notes

joshbduncan/word-search-generator (word_search_generator)

v5.0.0: 🧩 Word Search Generator v5.0.0

Compare Source

🚀 New Features

  • Themed Word Lists ([#​63])
    Added built-in themed word lists, available in src/word_search_generator/data/ and accessible via the WORD_LISTS dictionary (dict[str, list[str]]).
  • Comprehensive Documentation
    Expanded and refined documentation for all classes and methods.
  • Type Checking Enhancements
    Introduced ty type checker to complement mypy for improved code validation.
  • CLI Improvements
  • -pm/--preview-masks can now preview a specific mask or all masks by default.
  • New -pt/--preview-themes option to list available themed word lists or preview a specific one.
  • New --examples option provides usage examples directly in the CLI help output.

🔧 Changes

  • Python Compatibility
  • Dropped support for Python 3.10.
  • Added full Python 3.14 compatibility (updated configs and CI).
  • Refactors & Codebase Cleanup
  • Major internal refactor across modules for better maintainability.
  • Improved validation and structure within the mask module.
  • method field now uses MaskMethod | MethodLiteral enum instead of plain int.
  • Mask and CompoundMask moved into mask.py.
  • mask.BitmapImage renamed to mask.ImageMask.
  • BUILTIN_MASK_SHAPES now returns a dict[str, type[Mask]].
  • Formatter.save() now expects an ExportFormat enum value for the format argument.
  • utils.get_random_words() now returns a comma-separated string and accepts an optional word_list argument (supports themed lists).
  • Updated dependencies to their latest versions.

🐞 Fixes

  • Corrected mask shape calculations, particularly for smaller puzzles.
  • Improved error handling with more precise and descriptive messages.
  • Strengthened type hints for better type safety and IDE support.

This release marks a major modernization of the codebase, introducing themed content, stronger typing, refined CLI tooling, and expanded compatibility for Python 3.14.

v4.1.0

Compare Source

v4.0.0: Color in the CLI and Extensibility Improvements

Added
  • OOP and ABC all the way down
    • Most key parts of this package have been extracted out into separate units allowing for more extensibility.
    • All games now derive from a base Game object. Each Game can have custom a Generator for generating the puzzle, a Formatter for displaying/outputting the puzzle, and custom word Validators (e.g. no palindromes, no punctuation, no single letter words, no subwords) for validating puzzle words.
  • Validators: Previously, all word validation was done during the WordSearch object initialization (and also after making any changes to the puzzle words). Now, the default validation (no single letter words, no palindromes, no words that fit inside of other words or encase other words) has been abstracted away. Each validator is now based on a Validator() abstract base class, allowing users to create their own or disable the defaults. This thought has come up before but because of issue #​45 I decided to tackle. Normally in a standard word search puzzle you don't want single-letter words, calindromes, or words that are part of other words, as each of these situations could potentially lead to multiple solutions for the same puzzle.
    • validators argument added to WordSearch object
    • --no-validators added to cli arguments to disable default validators
    • Tests updated and added for new functionality
  • require_all_words has been added to Game.init(). When set to True a MissingWordError will be raised if all provided "hidden" words can't be placed successfully. This does not take into account "secret" words. Also added to CLI as -rall, --require-all-words.
  • lowercase argument added to show and save methods which outputs all puzzle letters in lowercase (as opposed to the UPPERCASE default). Added -lc, --lowercase flag to CLI as well. Issue #​58
  • all words get assigned a random color on initialization (for solution)
  • custom iPython profile
    • to use first make a custom profile ipython --profile word-search-generator
    • then copy the include config file to your new profile cp ipython_config.py ~/.ipython/profile_word-search-generator
    • finally load iPython with the custom profile ipython --profile word-search-generator
  • added pretty printed traceback via Rich
  • custom alphabet can now be specified for generators (used for puzzle filler characters)
  • added -hk, --hide-key to cli and WordSearch.show(), and WordSearch.save() methods, allowing user to hide the answer key during output
    • only applies to cli output and saved PDF files
    • the answer key will always be output on the solution page of a pdf
Fixed
  • Bug creating false negatives in WordSearchGenerator.no_duped_words() method that is used when placing new words and filler characters
  • Empty puzzle shown with the show method was called on a puzzle that has not been generated yet, or a puzzle with no placed/valid words.
Changed
  • Minimum Python version updated to 3.10
    • Updating all typing to use the new format (instead of importing from typing)
  • Tox config
  • max_fit_tries raised to 1000 to help more words fitting within smaller puzzles
  • get_random_words() now accepts a max_length argument, helpful when working with puzzles of a smaller size
  • Dependencies updated and tested on latest release
    • Updated word search puzzle export to work with fpdf2 v2.7.5 changes
  • None now allowed as Game or Generator validator.
  • PDF output now highlights puzzle words in color "bubbles" (Issue #​54)
  • Updated PDF layout and formatting to better work with the new solution highlighting
  • "secret" words are now highlighted and included in the word list on the solution page
  • add Rich to dependencies for cli highlighting
  • CLI output now defaults to a 'pretty' version using rich (can be disabled with the --no-pretty flag)
    • solution flag now highlights puzzle words using same coloring as PDF output
    • answer key text reversed to obfuscate (like PDF output) when not using '-c' flag
  • hide_fillers argument added to the base WordSearch.show() method.
Removed
  • reset_size() function no longer needed as it is included inside of _generate() now
  • removed __version__ from init. Version info is loaded from pyproject.toml using importlib.metadata.version

Configuration

📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about this update again.


  • If you want to rebase/retry this PR, check this box

This PR has been generated by Renovate Bot.

This PR contains the following updates: | Package | Change | [Age](https://docs.renovatebot.com/merge-confidence/) | [Confidence](https://docs.renovatebot.com/merge-confidence/) | |---|---|---|---| | [word_search_generator](https://github.com/joshbduncan/word-search-generator) ([changelog](https://github.com/joshbduncan/word-search-generator/blob/main/CHANGLOG.md)) | `~=3.5.3` → `~=5.0.0` | ![age](https://developer.mend.io/api/mc/badges/age/pypi/word-search-generator/5.0.0?slim=true) | ![confidence](https://developer.mend.io/api/mc/badges/confidence/pypi/word-search-generator/3.5.3/5.0.0?slim=true) | --- ### Release Notes <details> <summary>joshbduncan/word-search-generator (word_search_generator)</summary> ### [`v5.0.0`](https://github.com/joshbduncan/word-search-generator/releases/tag/v5.0.0): 🧩 Word Search Generator v5.0.0 [Compare Source](https://github.com/joshbduncan/word-search-generator/compare/v4.1.0...v5.0.0) #### 🚀 New Features - Themed Word Lists (\[[#&#8203;63](https://github.com/joshbduncan/word-search-generator/issues/63)]) Added built-in themed word lists, available in src/word\_search\_generator/data/ and accessible via the WORD\_LISTS dictionary (dict\[str, list\[str]]). - Comprehensive Documentation Expanded and refined documentation for all classes and methods. - Type Checking Enhancements Introduced ty type checker to complement mypy for improved code validation. - CLI Improvements - -pm/--preview-masks can now preview a specific mask or all masks by default. - New -pt/--preview-themes option to list available themed word lists or preview a specific one. - New --examples option provides usage examples directly in the CLI help output. #### 🔧 Changes - Python Compatibility - Dropped support for Python 3.10. - Added full Python 3.14 compatibility (updated configs and CI). - Refactors & Codebase Cleanup - Major internal refactor across modules for better maintainability. - Improved validation and structure within the mask module. - method field now uses MaskMethod | MethodLiteral enum instead of plain int. - Mask and CompoundMask moved into mask.py. - mask.BitmapImage renamed to mask.ImageMask. - BUILTIN\_MASK\_SHAPES now returns a dict\[str, type\[Mask]]. - Formatter.save() now expects an ExportFormat enum value for the format argument. - utils.get\_random\_words() now returns a comma-separated string and accepts an optional word\_list argument (supports themed lists). - Updated dependencies to their latest versions. #### 🐞 Fixes - Corrected mask shape calculations, particularly for smaller puzzles. - Improved error handling with more precise and descriptive messages. - Strengthened type hints for better type safety and IDE support. This release marks a major modernization of the codebase, introducing themed content, stronger typing, refined CLI tooling, and expanded compatibility for Python 3.14. ### [`v4.1.0`](https://github.com/joshbduncan/word-search-generator/compare/v4.0.0...v4.1.0) [Compare Source](https://github.com/joshbduncan/word-search-generator/compare/v4.0.0...v4.1.0) ### [`v4.0.0`](https://github.com/joshbduncan/word-search-generator/releases/tag/v4.0.0): Color in the CLI and Extensibility Improvements ##### Added - OOP and ABC all the way down - Most key parts of this package have been extracted out into separate units allowing for more extensibility. - All games now derive from a base `Game` object. Each `Game` can have custom a `Generator` for generating the puzzle, a `Formatter` for displaying/outputting the puzzle, and custom word `Validator`s (e.g. no palindromes, no punctuation, no single letter words, no subwords) for validating puzzle words. - Validators: Previously, all word validation was done during the `WordSearch` object initialization (and also after making any changes to the puzzle words). Now, the default validation (no single letter words, no palindromes, no words that fit inside of other words or encase other words) has been abstracted away. Each validator is now based on a `Validator()` abstract base class, allowing users to create their own or disable the defaults. This thought has come up before but because of issue [#&#8203;45](https://github.com/joshbduncan/word-search-generator/issues/45) I decided to tackle. Normally in a standard word search puzzle you don't want single-letter words, calindromes, or words that are part of other words, as each of these situations could potentially lead to multiple solutions for the same puzzle. - `validators` argument added to `WordSearch` object - `--no-validators` added to cli arguments to disable default validators - Tests updated and added for new functionality - `require_all_words` has been added to `Game.init()`. When set to `True` a `MissingWordError` will be raised if all provided "hidden" words can't be placed successfully. This does not take into account "secret" words. Also added to CLI as `-rall, --require-all-words`. - `lowercase` argument added to `show` and `save` methods which outputs all puzzle letters in lowercase (as opposed to the UPPERCASE default). Added `-lc, --lowercase` flag to CLI as well. Issue [#&#8203;58](https://github.com/joshbduncan/word-search-generator/issues/58) - all words get assigned a random color on initialization (for solution) - custom iPython profile - to use first make a custom profile `ipython --profile word-search-generator` - then copy the include config file to your new profile `cp ipython_config.py ~/.ipython/profile_word-search-generator` - finally load iPython with the custom profile `ipython --profile word-search-generator` - added pretty printed traceback via Rich - custom alphabet can now be specified for generators (used for puzzle filler characters) - added `-hk`, `--hide-key` to cli and `WordSearch.show()`, and `WordSearch.save()` methods, allowing user to hide the answer key during output - only applies to cli output and saved PDF files - the answer key will always be output on the solution page of a pdf ##### Fixed - Bug creating false negatives in `WordSearchGenerator.no_duped_words()` method that is used when placing new words and filler characters - Empty puzzle shown with the `show` method was called on a puzzle that has not been generated yet, or a puzzle with no placed/valid words. ##### Changed - Minimum Python version updated to 3.10 - Updating all typing to use the new format (instead of importing from typing) - Tox config - `max_fit_tries` raised to 1000 to help more words fitting within smaller puzzles - `get_random_words()` now accepts a `max_length` argument, helpful when working with puzzles of a smaller size - Dependencies updated and tested on latest release - Updated word search puzzle export to work with fpdf2 v2.7.5 changes - None now allowed as `Game` or `Generator` validator. - PDF output now highlights puzzle words in color "bubbles" (Issue [#&#8203;54](https://github.com/joshbduncan/word-search-generator/issues/54)) - Updated PDF layout and formatting to better work with the new solution highlighting - "secret" words are now highlighted and included in the word list on the solution page - add [Rich](https://github.com/Textualize/rich) to dependencies for cli highlighting - CLI output now defaults to a 'pretty' version using rich (can be disabled with the `--no-pretty` flag) - solution flag now highlights puzzle words using same coloring as PDF output - answer key text reversed to obfuscate (like PDF output) when not using '-c' flag - `hide_fillers` argument added to the base `WordSearch.show()` method. ##### Removed - `reset_size()` function no longer needed as it is included inside of `_generate()` now - removed `__version__` from init. Version info is loaded from [pyproject.toml](pyproject.toml) using `importlib.metadata.version` </details> --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4yNC4yIiwidXBkYXRlZEluVmVyIjoiNDMuMjQuMiIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOltdfQ==-->
renovate-bot force-pushed renovate/word_search_generator-5.x from ab265c36cb to 3e117611a3 2026-02-17 21:09:52 -08:00 Compare
tyler merged commit f85a153a4e into main 2026-02-17 21:48:36 -08:00
tyler deleted branch renovate/word_search_generator-5.x 2026-02-17 21:48:40 -08:00
Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
2 participants
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
tyler/dailySummaryEmail!186
No description provided.