Skip to content

Fix type annotations for year_low/year_high parameters (int -> Optional[int]) #584

@chengjilai

Description

@chengjilai

The year_low and year_high parameters in search_pubs and _construct_url are annotated as int but default to None, which means they should be Optional[int].

Affected methods:

  • _Scholarly.search_pubs (scholarly/_scholarly.py:93-94)
  • _Scholarly._construct_url (scholarly/_scholarly.py:572-573)

This causes type checkers (e.g., ty, mypy, pyright) to incorrectly flag passing None or int | None values as invalid:

error[invalid-argument-type]: Argument to bound method search_pubs is incorrect
  year_low=...,  Expected `int`, found `int | None`

The code already handles None internally (lines 579-580 check if year_low is not None), so the fix is simply to update the annotations to Optional[int].

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions