Skip to content

fix mypy errors#1248

Merged
RisingOrange merged 3 commits intoclaude/remove-aqt-import-v1YsXfrom
claude/review-pr-JXYYM
Feb 13, 2026
Merged

fix mypy errors#1248
RisingOrange merged 3 commits intoclaude/remove-aqt-import-v1YsXfrom
claude/review-pr-JXYYM

Conversation

@RisingOrange
Copy link
Collaborator

Related issues

  • Closes #

Proposed changes

Describe the big picture of your changes here to communicate to the reviewers why we should accept this pull request. If it fixes a bug or resolves a feature request, be sure to link to that issue.

How to reproduce

Explain like if someone who doesn't know this project is reviewing your changes and how they can replicate this.

Screenshots and videos

Paste here any screenshots or videos related to your changes, if applicable.

Further comments

If this is a relatively large or complex change, kick off the discussion by explaining why you chose the solution you did and what alternatives you considered, etc...

…orts

Ruff I001 was failing because the typing import ran directly into
the mashumaro import without a blank line separator.

https://claude.ai/code/session_01K8GeVjG7MjJzhZMtrzRh48
Replace `lambda mid: {}` (which would crash with KeyError if the mock
were removed) with a proper empty notetype dict `{"css": "", "tmpls": []}`.
This removes the implicit dependency on the get_media_names_from_notetype
mock and makes each call site self-sufficient.

https://claude.ai/code/session_01K8GeVjG7MjJzhZMtrzRh48
@RisingOrange RisingOrange merged commit ddbb33c into claude/remove-aqt-import-v1YsX Feb 13, 2026
5 checks passed
@RisingOrange RisingOrange deleted the claude/review-pr-JXYYM branch February 13, 2026 12:38
@gemini-code-assist
Copy link
Contributor

Summary of Changes

Hello @RisingOrange, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!

This pull request primarily addresses and resolves mypy type-checking errors across the codebase. The main approach involves explicitly casting notetype identifiers to the NotetypeId type when interacting with Anki's model collection, ensuring type correctness in various operations such as media synchronization, deck creation, and suggestion processing. Additionally, related unit tests have been updated to reflect these type-hinting changes and improve mock consistency.

Highlights

  • Explicit Notetype ID Typing: The NotetypeId type from anki.models is now explicitly used when retrieving notetype information, resolving mypy type-checking errors in various Anki model lookups.
  • Updated Media Extraction Logic: Calls to aqt.mw.col.models.get in media synchronization, deck creation, and suggestion handling now correctly cast IDs to NotetypeId to ensure type correctness.
  • Refined Test Utilities: Unit tests have been updated to align with the new type-hinting requirements, including the introduction of a new _empty_notetype static method for more consistent mocking of notetype data.

🧠 New Feature in Public Preview: You can now enable Memory to help Gemini Code Assist learn from your team's feedback. This makes future code reviews more consistent and personalized to your project's style. Click here to enable Memory in your admin console.

Changelog
  • ankihub/ankihub_client/models.py
    • Added a blank line for formatting.
  • ankihub/gui/media_sync.py
    • Imported NotetypeId from anki.models.
    • Used NotetypeId when calling aqt.mw.col.models.get for notetype retrieval.
  • ankihub/gui/operations/deck_creation.py
    • Imported NotetypeId from anki.models.
    • Applied NotetypeId casting within a lambda function for notetype retrieval during media extraction.
  • ankihub/main/suggestions.py
    • Imported NotetypeId from anki.models.
    • Applied NotetypeId casting within a lambda function for notetype retrieval during media extraction for suggestions.
  • tests/addon/test_unit.py
    • Imported NotetypeId from anki.models.
    • Updated multiple test cases to use NotetypeId casting when retrieving notetype models.
  • tests/client/test_client.py
    • Imported Any and Dict for type hinting.
    • Replaced direct empty dictionary mocks with a new _empty_notetype static method.
    • Added _empty_notetype static method to provide a structured empty notetype dictionary.
    • Removed an unnecessary mocker.patch for get_media_names_from_notetype.
Activity
  • No specific activity (comments, reviews, or progress updates) has been recorded in the pull request description.
Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

You can request assistance from Gemini at any point by creating a comment using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in pull request comments and review comments.
Help /gemini help Displays a list of available commands.

Customization

To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here.

You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension.

Footnotes

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

RisingOrange added a commit that referenced this pull request Feb 13, 2026
* Remove aqt import from client models.py

Refactor get_media_names_from_notetype to accept a note type dict
instead of an ID, removing the aqt dependency from the client layer.
Add a get_notetype_by_id callback parameter to get_media_names_from_notes_data
so callers in the GUI/business layer provide the lookup function.

https://claude.ai/code/session_01ENEZrvFPchRVdnATauZfo9

* Apply suggestion from @RisingOrange

* Fix import formatting in models.py (#1247)

* Fix import sorting: add blank line between stdlib and third-party imports

Ruff I001 was failing because the typing import ran directly into
the mashumaro import without a blank line separator.

https://claude.ai/code/session_01K8GeVjG7MjJzhZMtrzRh48

* Remove fragile get_media_names_from_notetype mock in client tests

Replace `lambda mid: {}` (which would crash with KeyError if the mock
were removed) with a proper empty notetype dict `{"css": "", "tmpls": []}`.
This removes the implicit dependency on the get_media_names_from_notetype
mock and makes each call site self-sufficient.

https://claude.ai/code/session_01K8GeVjG7MjJzhZMtrzRh48

---------

Co-authored-by: Claude <noreply@anthropic.com>

* fix mypy errors (#1248)

* Fix import sorting: add blank line between stdlib and third-party imports

Ruff I001 was failing because the typing import ran directly into
the mashumaro import without a blank line separator.

https://claude.ai/code/session_01K8GeVjG7MjJzhZMtrzRh48

* Remove fragile get_media_names_from_notetype mock in client tests

Replace `lambda mid: {}` (which would crash with KeyError if the mock
were removed) with a proper empty notetype dict `{"css": "", "tmpls": []}`.
This removes the implicit dependency on the get_media_names_from_notetype
mock and makes each call site self-sufficient.

https://claude.ai/code/session_01K8GeVjG7MjJzhZMtrzRh48

* Fix mypy errors: wrap mid with NotetypeId() for ModelManager.get() calls

https://claude.ai/code/session_01K8GeVjG7MjJzhZMtrzRh48

---------

Co-authored-by: Claude <noreply@anthropic.com>

---------

Co-authored-by: Claude <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants