Skip to content

Numerous significant improvements Beta #12811

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 34 commits into
base: master
Choose a base branch
from

Conversation

lighting9999
Copy link
Contributor

@lighting9999 lighting9999 commented Jun 28, 2025

Describe your change:

butterfly_pattern.py

  • Add doctests

minimum_spanning_tree_kruskal2.py

  • Removed Generic and TypeVar imports since they're no longer needed
  • Updated class declarations to use new-style generics with [T]
  • Removed the top-level T = TypeVar("T") as it's now redundant

lru_cache.py

  • Removed top-level TypeVar definitions for T and U since they're no longer needed
  • Converted class definitions to use new type parameter syntax:
    • class DoubleLinkedListNode(Generic[T, U])class DoubleLinkedListNode[T, U]
    • class DoubleLinkedList(Generic[T, U])class DoubleLinkedList[T, U]
    • class LRUCache(Generic[T, U])class LRUCache[T, U]

lfu_cache.py

  • UpdatedDoubleLinkedListNode,DoubleLinkedList,andLFUCache to use modern Python 3.12+ generic syntax.
  • Replaced class ClassName(Generic[T, U]) with cleaner class ClassName[T, U].
  • Maintained identical functionality while fixing flake8 UP046 errors.

stack_with_doubly_linked_list.py

  • Removed the Generic import and TypeVar declaration
  • Updated class definitions to use the new [T] syntax instead of subclassing Generic[T]

skew_heap.py

  • Added Comparable Protocol
    Implemented a Comparable protocol requiring __lt__ and __gt__ methods to ensure type safety for comparison operations.
  • Fixed Type Constraint
    Constrained the generic type T with bound=Comparable to resolve mypy errors about unsupported comparison operations.
  • Corrected Import Order
    Reorganized imports to satisfy ruff's I001 check by following PEP8 import sorting rules and adding proper blank lines.

test_digital_image_processing.py

  • Replaced array() with np.array(): Due to removal of from numpy import array
  • Replaced uint8 with np.uint8: Due to removal of from numpy import uint8

minimum_spanning_tree_prims2.py

  • Fixed missing colon in for loop syntax
  • Changed Optional[T] to T | None
  • Replaced dict comprehensions with dict.fromkeys()
  • Corrected weight calculation in Prim's algorithm
  • Optimized priority queue initialization
  • Added precise type annotations
  • Improved neighbor iteration using items()
  • Updated docstring tests and expected results
  • Fixed import ordering issues
  • Add an algorithm?
  • Fix a bug or typo in an existing algorithm?
  • Add or change doctests? -- Note: Please avoid changing both code and tests in a single pull request.
  • Documentation change?

Checklist:

  • I have read CONTRIBUTING.md.
  • This pull request is all my own work -- I have not plagiarized.
  • I know that pull requests will not be merged if they fail the automated tests.
  • This PR only changes one algorithm file. To ease review, please open separate PRs for separate algorithms.
  • All new Python files are placed inside an existing directory.
  • All filenames are in all lowercase characters with no spaces or dashes.
  • All functions and variable names follow Python naming conventions.
  • All function parameters and return values are annotated with Python type hints.
  • All functions have doctests that pass the automated testing.
  • All new algorithms include at least one URL that points to Wikipedia or another similar explanation.
  • If this pull request resolves one or more open issues then the description above includes the issue number(s) with a closing keyword: "Fixes #ISSUE-NUMBER".

@algorithms-keeper algorithms-keeper bot added the tests are failing Do not merge until tests pass label Jun 28, 2025
@algorithms-keeper algorithms-keeper bot added the awaiting reviews This PR is ready to be reviewed label Jun 28, 2025
@lighting9999 lighting9999 changed the title Numerous significant improvements(Beta and view) Numerous significant improvements Beta Jun 28, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
awaiting reviews This PR is ready to be reviewed tests are failing Do not merge until tests pass
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant