Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Too much repeating conditional imports #1813

@o-murphy

Description

@o-murphy

Bleak has too much repeating conditional imports that do the same things, some of them are deprecated and can be simplified with typing_extensions
It should be refactored to some single module like _compat.py and then imported
It can improve and make simlplier to create and maintain platform dependend backends (as one described in #1812)
I can refactor it and create a PR with just this changes

There are the few examples:

# __init__.py
if sys.version_info < (3, 12):
    from typing_extensions import Buffer
else:
    from collections.abc import Buffer

if sys.version_info < (3, 11):
    from async_timeout import timeout as async_timeout
    from typing_extensions import Never, Self, Unpack, assert_never
else:
    from asyncio import timeout as async_timeout
    from typing import Never, Self, Unpack, assert_never
# client.py

if sys.version_info < (3, 12):
    from typing_extensions import Buffer
else:
    from collections.abc import Buffer
# winrt/client.py
if sys.version_info < (3, 12):
    from typing_extensions import Buffer, override
else:
    from collections.abc import Buffer
    from typing import override

if sys.version_info < (3, 11):
    from async_timeout import timeout as async_timeout
    from typing_extensions import Self, assert_never
else:
    from asyncio import timeout as async_timeout
    from typing import Self, assert_never

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions