Update dependency word_search_generator to ~=5.1.0 #249
No reviewers
Labels
No labels
Compat/Breaking
Kind/Bug
Kind/Documentation
Kind/Enhancement
Kind/Feature
Kind/Security
Kind/Testing
Priority
Critical
Priority
High
Priority
Low
Priority
Medium
Reviewed
Confirmed
Reviewed
Duplicate
Reviewed
Invalid
Reviewed
Won't Fix
Status
Abandoned
Status
Blocked
Status
Need More Info
No milestone
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
tyler/dailySummaryEmail!249
Loading…
Reference in a new issue
No description provided.
Delete branch "renovate/word_search_generator-5.x"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
This PR contains the following updates:
~=5.0.0→~=5.1.0Release Notes
joshbduncan/word-search-generator (word_search_generator)
v5.1.0Compare Source
Added
ClassVarannotations to all unannotated class-level attributes acrossMask,Game,WordSearch, andWordSearchFormatterto satisfyty'sreportUnannotatedClassAttributeruleargparse.Action.__call__()overrides incli.py(parser,namespace,values: Any,option_string,-> None)-> Noneon exception__init__methods inGame(EmptyPuzzleError,MissingGeneratorError,MissingFormatterError) andGenerator(EmptyAlphabetError,WordFitError)retry()decorator and its innerdecorator/wrapperfunctions ingenerator.pyTraversabletype annotation for thefile_pathparameter of_load_word_list()inwords.py-> Nonereturn type onWord.remove_from_puzzle()booltype and-> strreturn type onWordSearchFormatter.show()Consoletype annotation forWordSearchFormatter.CONSOLEclass attribute (imported underTYPE_CHECKING)Changed
pyproject.toml,uv.lock, andAGENTS.mdaccordinglymypywithtyas the sole type checker; removedmypyfromMakefiletypingandcleantargets and updatedAGENTS.mdDEFAULT_GENERATOR,DEFAULT_FORMATTER, andDEFAULT_VALIDATORSinGamewrapped withClassVar; overrides inWordSearchuse matching base-class types to preserveClassVarinvarianceCallableimport ingenerator.pymoved underTYPE_CHECKING(file already usesfrom __future__ import annotations)EmptyAlphabetError.__init__messageparameter given explicitstrtype annotationtype: ignoresuppression comments in tests andipython_config.pytoty:ignoresyntaxuv.lock(attrs 25.4.0 → 26.1.0, charset-normalizer, and others)WordSearchclass methods (show(),save(),__eq__(),__repr__()) with detailed parameter descriptions, usage examples, and exception documentationclimodule including module docstring, allargparse.Actionsubclasses, and all functionsword_searchmodule: module docstrings for_formatter.py,_generator.py, andword_search.py; class docstrings forWordSearchFormatterandWordSearch; full Args/Returns/Raises on allWordSearchFormattermethods (show(),save(),write_csv_file(),write_json_file(),write_pdf_file(),hide_filler_characters()) and all module-level PDF helpers (draw_page_title(),draw_puzzle(),highlight_solution(),draw_word_list(),draw_puzzle_key(),draw_puzzle_page()); full Args/Returns/Raises on allWordSearchGeneratormethods (generate(),no_duped_words(),capture_fragments(),test_a_fit(),find_a_fit(),fill_words(),try_to_fit_word(),fill_blanks()); expandedWordSearch.__init__()and fixedsecret_directionssetter (wrong arg name) andrandom_words()(placeholder_description_and wrong constant names in Raises)maskmodule includingMask.show(),Mask.__repr__(),CompoundMask.generate(),CompoundMask._apply_mask(),Polygon.split_points,RegularPolygon.generate(),RegularPolygon.cos_sin_from_degrees(),Star.generate(), and all concrete shapegenerate()overrides (Club,Donut,Fish,Flower,Heart,Spade,Tree,Square,Oval) plusDonut.calculate_golden_donut_ratio()Game.__repr__()to focus on core puzzle characteristics (words, level, size) that define puzzle identity according to__eq__. Removedrequire_all_wordsand implementation details like generator/formatter for cleaner, more maintainable outputdatetimeimport incli.main()from lazy inline import to top-level with other stdlib importsformatvariable incli.main()toexport_formatto avoid shadowing theformatbuiltinextend-selectrules directly intoselectarraytyfor type checking across the projectTypeAliasannotation to thetypekeywordx = WordSet()tox: WordSet = OrderedSet()-fpdf2 2.8.7
-pillow 12.2.0
-rich 14.3.3
-ordered-set 4.1.0
Fixed
game.placed_secret_words # type:ignore [attr-defined]inWordSearchFormatter.show()with a properhasattr()guard, eliminating the type suppression comment and making the check safe at runtimecli.main()referencing non-existent--random-fromflag, updated to accurately describe--themedependency on--randomassert mask.bounding_boxincli.preview_masks()with an explicit guard that warns and skips the mask, preventing silent failure when running with-OE402in__init__.pyfiles andTCH004inbitmap.pyWordSearchGenerator.find_a_fit()wherehasattr()assertions forsecret_directionscaused~AlwaysFalsytype inference issues. Replaced withgetattr()pattern for proper type narrowingtest_reprto test repr informativeness and object recreation without relying oneval()magicImage.Image.getdatatoImage.Image.get_flattened_data: Image.Image.getdata is deprecated and will be removed in Pillow 14 (2027-10-15).Configuration
📅 Schedule: (UTC)
🚦 Automerge: Enabled.
♻ Rebasing: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR has been generated by Renovate Bot.