Skip to content

Commit dfbc682

Browse files
committed
Sort imports
- annotations import in all files using typehints - typehint specific imports under type_checking condition - native library imports > installed libs > module import
1 parent 90db72c commit dfbc682

File tree

14 files changed

+119
-55
lines changed

14 files changed

+119
-55
lines changed

plexapi/base.py

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
# -*- coding: utf-8 -*-
22
from __future__ import annotations
3-
from datetime import datetime
43

54
import re
6-
from typing import Any, Callable, Dict, List, Optional, Set, Type, TypeVar, Union, cast, overload, TYPE_CHECKING
75
import weakref
86
from functools import cached_property
7+
from typing import (TYPE_CHECKING, Any, Callable, Dict, List, Optional, Set,
8+
Type, TypeVar, Union, cast, overload)
99
from urllib.parse import urlencode
1010
from xml.etree import ElementTree
1111
from xml.etree.ElementTree import Element
@@ -14,9 +14,11 @@
1414
from plexapi.exceptions import BadRequest, NotFound, UnknownType, Unsupported
1515

1616
if TYPE_CHECKING:
17+
from datetime import datetime
18+
19+
from plexapi.library import LibrarySection
1720
from plexapi.media import Session
1821
from plexapi.server import PlexServer
19-
from plexapi.library import LibrarySection
2022

2123
FunctionCheck = Callable[[Any, Any], bool]
2224
PlexObjectT = TypeVar('PlexObjectT', bound='PlexObject')

plexapi/client.py

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,21 @@
11
# -*- coding: utf-8 -*-
2+
from __future__ import annotations
3+
24
import time
5+
from typing import TYPE_CHECKING
36
from xml.etree import ElementTree
4-
from xml.etree.ElementTree import Element
57

68
import requests
9+
from requests.status_codes import _codes as codes
710

811
from plexapi import BASE_HEADERS, CONFIG, TIMEOUT, log, logfilter, utils
912
from plexapi.base import PlexObject
1013
from plexapi.exceptions import BadRequest, NotFound, Unauthorized, Unsupported
1114
from plexapi.playqueue import PlayQueue
12-
from requests.status_codes import _codes as codes
15+
16+
if TYPE_CHECKING:
17+
from xml.etree.ElementTree import Element
18+
1319

1420
DEFAULT_MTYPE = 'video'
1521

plexapi/collection.py

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,22 @@
11
# -*- coding: utf-8 -*-
2+
from __future__ import annotations
3+
24
from pathlib import Path
5+
from typing import TYPE_CHECKING
36
from urllib.parse import quote_plus
4-
from xml.etree.ElementTree import Element
57

68
from plexapi import media, utils
79
from plexapi.base import PlexPartialObject
810
from plexapi.exceptions import BadRequest, NotFound, Unsupported
911
from plexapi.library import LibrarySection, ManagedHub
10-
from plexapi.mixins import (
11-
AdvancedSettingsMixin, SmartFilterMixin, HubsMixin, RatingMixin,
12-
ArtMixin, PosterMixin, ThemeMixin,
13-
CollectionEditMixins
14-
)
12+
from plexapi.mixins import (AdvancedSettingsMixin, ArtMixin,
13+
CollectionEditMixins, HubsMixin, PosterMixin,
14+
RatingMixin, SmartFilterMixin, ThemeMixin)
1515
from plexapi.utils import deprecated
1616

17+
if TYPE_CHECKING:
18+
from xml.etree.ElementTree import Element
19+
1720

1821
@utils.registerPlexObject
1922
class Collection(

plexapi/library.py

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,25 @@
11
# -*- coding: utf-8 -*-
2+
from __future__ import annotations
3+
24
import re
35
from datetime import datetime
46
from functools import cached_property
7+
from typing import TYPE_CHECKING
58
from urllib.parse import parse_qs, quote_plus, urlencode, urlparse
6-
from xml.etree.ElementTree import Element
79

810
from plexapi import log, media, utils
911
from plexapi.base import OPERATORS, PlexObject
1012
from plexapi.exceptions import BadRequest, NotFound
11-
from plexapi.mixins import (
12-
MovieEditMixins, ShowEditMixins, SeasonEditMixins, EpisodeEditMixins,
13-
ArtistEditMixins, AlbumEditMixins, TrackEditMixins, PhotoalbumEditMixins, PhotoEditMixins
14-
)
13+
from plexapi.mixins import (AlbumEditMixins, ArtistEditMixins,
14+
EpisodeEditMixins, MovieEditMixins,
15+
PhotoalbumEditMixins, PhotoEditMixins,
16+
SeasonEditMixins, ShowEditMixins, TrackEditMixins)
1517
from plexapi.settings import Setting
1618
from plexapi.utils import deprecated
1719

20+
if TYPE_CHECKING:
21+
from xml.etree.ElementTree import Element
22+
1823

1924
class Library(PlexObject):
2025
""" Represents a PlexServer library. This contains all sections of media defined

plexapi/media.py

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,20 @@
11
# -*- coding: utf-8 -*-
2+
from __future__ import annotations
3+
24
import xml
35
from pathlib import Path
6+
from typing import TYPE_CHECKING
47
from urllib.parse import quote_plus
5-
from xml.etree.ElementTree import Element
68

79
from plexapi import log, settings, utils
810
from plexapi.base import PlexObject
911
from plexapi.exceptions import BadRequest
1012
from plexapi.utils import deprecated
1113

14+
if TYPE_CHECKING:
15+
from xml.etree.ElementTree import Element
16+
17+
1218

1319
@utils.registerPlexObject
1420
class Media(PlexObject):

plexapi/myplex.py

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,29 @@
11
# -*- coding: utf-8 -*-
2+
from __future__ import annotations
3+
24
import copy
35
import html
46
import threading
57
import time
8+
from typing import TYPE_CHECKING
69
from urllib.parse import parse_qsl, urlencode, urlsplit, urlunsplit
710
from xml.etree import ElementTree
8-
from xml.etree.ElementTree import Element
911

1012
import requests
13+
from requests.status_codes import _codes as codes
1114

12-
from plexapi import (BASE_HEADERS, CONFIG, TIMEOUT, X_PLEX_ENABLE_FAST_CONNECT, X_PLEX_IDENTIFIER,
13-
log, logfilter, utils)
15+
from plexapi import (BASE_HEADERS, CONFIG, TIMEOUT, X_PLEX_ENABLE_FAST_CONNECT,
16+
X_PLEX_IDENTIFIER, log, logfilter, utils)
1417
from plexapi.base import PlexObject
1518
from plexapi.client import PlexClient
1619
from plexapi.exceptions import BadRequest, NotFound, Unauthorized
1720
from plexapi.library import LibrarySection
1821
from plexapi.server import PlexServer
1922
from plexapi.sonos import PlexSonosClient
2023
from plexapi.sync import SyncItem, SyncList
21-
from requests.status_codes import _codes as codes
24+
25+
if TYPE_CHECKING:
26+
from xml.etree.ElementTree import Element
2227

2328

2429
class MyPlexAccount(PlexObject):

plexapi/photo.py

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,20 @@
11
# -*- coding: utf-8 -*-
2+
from __future__ import annotations
3+
24
import os
35
from pathlib import Path
6+
from typing import TYPE_CHECKING
47
from urllib.parse import quote_plus
5-
from xml.etree.ElementTree import Element
68

79
from plexapi import media, utils, video
810
from plexapi.base import Playable, PlexPartialObject, PlexSession
911
from plexapi.exceptions import BadRequest
10-
from plexapi.mixins import (
11-
RatingMixin,
12-
ArtUrlMixin, ArtMixin, PosterUrlMixin, PosterMixin,
13-
PhotoalbumEditMixins, PhotoEditMixins
14-
)
12+
from plexapi.mixins import (ArtMixin, ArtUrlMixin, PhotoalbumEditMixins,
13+
PhotoEditMixins, PosterMixin, PosterUrlMixin,
14+
RatingMixin)
15+
16+
if TYPE_CHECKING:
17+
from xml.etree.ElementTree import Element
1518

1619

1720
@utils.registerPlexObject

plexapi/playlist.py

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,21 @@
11
# -*- coding: utf-8 -*-
2+
from __future__ import annotations
3+
24
import re
35
from pathlib import Path
6+
from typing import TYPE_CHECKING
47
from urllib.parse import quote_plus, unquote
5-
from xml.etree.ElementTree import Element
68

79
from plexapi import media, utils
810
from plexapi.base import Playable
911
from plexapi.exceptions import BadRequest, NotFound, Unsupported
1012
from plexapi.library import LibrarySection, MusicSection
11-
from plexapi.mixins import SmartFilterMixin, ArtMixin, PosterMixin
13+
from plexapi.mixins import ArtMixin, PosterMixin, SmartFilterMixin
1214
from plexapi.utils import deprecated
1315

16+
if TYPE_CHECKING:
17+
from xml.etree.ElementTree import Element
18+
1419

1520
@utils.registerPlexObject
1621
class Playlist(

plexapi/playqueue.py

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,16 @@
11
# -*- coding: utf-8 -*-
2+
from __future__ import annotations
3+
4+
from typing import TYPE_CHECKING
25
from urllib.parse import quote_plus
3-
from xml.etree.ElementTree import Element
46

57
from plexapi import utils
68
from plexapi.base import PlexObject
79
from plexapi.exceptions import BadRequest
810

11+
if TYPE_CHECKING:
12+
from xml.etree.ElementTree import Element
13+
914

1015
class PlayQueue(PlexObject):
1116
"""Control a PlayQueue.

plexapi/server.py

Lines changed: 17 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,36 +1,40 @@
11
# -*- coding: utf-8 -*-
2-
from datetime import datetime
2+
from __future__ import annotations
3+
34
import os
5+
from datetime import datetime
46
from functools import cached_property
5-
from typing import Optional, Union
7+
from typing import TYPE_CHECKING, Optional, Union
68
from urllib.parse import urlencode
79
from xml.etree import ElementTree
8-
from xml.etree.ElementTree import Element
910

1011
import requests
12+
from requests.status_codes import _codes as codes
1113

12-
from plexapi import BASE_HEADERS, CONFIG, TIMEOUT, log, logfilter
14+
# Need these imports to populate utils.PLEXOBJECTS
15+
from plexapi import BASE_HEADERS, CONFIG, TIMEOUT
16+
from plexapi import audio as _audio # noqa: F401
17+
from plexapi import collection as _collection # noqa: F401
18+
from plexapi import log, logfilter
19+
from plexapi import media as _media # noqa: F401
20+
from plexapi import photo as _photo # noqa: F401
21+
from plexapi import playlist as _playlist # noqa: F401
1322
from plexapi import utils
23+
from plexapi import video as _video # noqa: F401
1424
from plexapi.alert import AlertListener
1525
from plexapi.base import PlexObject
1626
from plexapi.client import PlexClient
1727
from plexapi.collection import Collection
1828
from plexapi.exceptions import BadRequest, NotFound, Unauthorized
19-
from plexapi.library import Hub, Library, Path, File
29+
from plexapi.library import File, Hub, Library, Path
2030
from plexapi.media import Conversion, Optimized
2131
from plexapi.playlist import Playlist
2232
from plexapi.playqueue import PlayQueue
2333
from plexapi.settings import Settings
2434
from plexapi.utils import deprecated
25-
from requests.status_codes import _codes as codes
2635

27-
# Need these imports to populate utils.PLEXOBJECTS
28-
from plexapi import audio as _audio # noqa: F401
29-
from plexapi import collection as _collection # noqa: F401
30-
from plexapi import media as _media # noqa: F401
31-
from plexapi import photo as _photo # noqa: F401
32-
from plexapi import playlist as _playlist # noqa: F401
33-
from plexapi import video as _video # noqa: F401
36+
if TYPE_CHECKING:
37+
from xml.etree.ElementTree import Element
3438

3539

3640
class PlexServer(PlexObject):

0 commit comments

Comments
 (0)