Skip to content

Dictionary support not reflected in type annotations #1380

@PicardParis

Description

@PicardParis

Issue

  • This is a follow-up to #986 (closed). Retesting the recent google-cloud-documentai==1.5.0 version, the issue is still present.
  • This code is valid:
    import google.cloud.documentai_v1 as documentai
    
    client_options = dict(api_endpoint="eu-documentai.googleapis.com")
    client = documentai.DocumentProcessorServiceClient(client_options=client_options)
    
  • But it triggers the following type checker warning:
    Argument of type "dict[str, str]" cannot be assigned to parameter "client_options" of type "ClientOptions | None" in function "__init__"
    Type "dict[str, str]" cannot be assigned to type "ClientOptions | None"
    "dict[str, str]" is incompatible with "ClientOptions"
    
  • If you check the source, client_options can be a dict, yet its declaration says otherwise:
    def __init__(
        ...
        client_options: Optional[client_options_lib.ClientOptions] = None,
        ...
    ) -> None:
        ...
        if isinstance(client_options, dict):
            client_options = client_options_lib.from_dict(client_options)

Expected

def __init__(
    ...
    client_options: Union[client_options_lib.ClientOptions, dict, None] = None,
    ...
) -> None:
    ...

Metadata

Metadata

Assignees

No one assigned

    Labels

    priority: p3Desirable enhancement or fix. May not be included in next release.type: bugError or flaw in code with unintended results or allowing sub-optimal usage patterns.

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions