|
22 | 22 |
|
23 | 23 | from __future__ import annotations |
24 | 24 |
|
25 | | -from argparse import ArgumentParser, Namespace |
26 | | -from collections.abc import Sequence |
27 | | -from contextlib import suppress, contextmanager |
28 | | -from dataclasses import dataclass |
29 | 25 | import filecmp |
30 | 26 | import json |
31 | 27 | import logging |
32 | 28 | import logging.handlers |
33 | | -from functools import total_ordering |
34 | | -from os import getenv, readlink |
35 | 29 | import re |
36 | 30 | import shlex |
37 | 31 | import shutil |
38 | 32 | import subprocess |
39 | 33 | import sys |
| 34 | +from argparse import ArgumentParser, Namespace |
40 | 35 | from bisect import bisect_left as bisect |
41 | | -from datetime import datetime as dt, timezone |
| 36 | +from collections.abc import Iterable, Sequence |
| 37 | +from contextlib import contextmanager, suppress |
| 38 | +from dataclasses import dataclass |
| 39 | +from datetime import datetime as dt |
| 40 | +from datetime import timezone |
| 41 | +from functools import total_ordering |
| 42 | +from os import getenv, readlink |
42 | 43 | from pathlib import Path |
43 | 44 | from string import Template |
44 | 45 | from time import perf_counter, sleep |
45 | 46 | from typing import Literal |
46 | | -from collections.abc import Iterable |
47 | 47 | from urllib.parse import urljoin |
48 | 48 |
|
49 | 49 | import jinja2 |
|
52 | 52 | import zc.lockfile |
53 | 53 |
|
54 | 54 | try: |
55 | | - from os import EX_OK, EX_SOFTWARE as EX_FAILURE |
| 55 | + from os import EX_OK |
| 56 | + from os import EX_SOFTWARE as EX_FAILURE |
56 | 57 | except ImportError: |
57 | 58 | EX_OK, EX_FAILURE = 0, 1 |
58 | 59 |
|
|
0 commit comments