From 98b0a2b3dff141d96ecabf1594cc72b90f80fff7 Mon Sep 17 00:00:00 2001 From: Egor Tensin Date: Tue, 23 Jun 2026 18:02:35 +0200 Subject: use default settings for Black --- vk/tracking/__init__.py | 4 +- vk/tracking/db/__init__.py | 2 +- vk/tracking/db/backend/__init__.py | 6 +-- vk/tracking/db/backend/log.py | 14 ++--- vk/tracking/db/format.py | 22 ++++---- vk/tracking/db/timestamp.py | 4 +- vk/tracking/sessions.py | 104 ++++++++++++++++++------------------- vk/tracking/status.py | 48 ++++++++--------- 8 files changed, 102 insertions(+), 102 deletions(-) (limited to 'vk/tracking') diff --git a/vk/tracking/__init__.py b/vk/tracking/__init__.py index d0809e7..76bc1b4 100644 --- a/vk/tracking/__init__.py +++ b/vk/tracking/__init__.py @@ -3,6 +3,6 @@ # See LICENSE.txt for details. __all__ = ( - 'sessions', - 'status', + "sessions", + "status", ) diff --git a/vk/tracking/db/__init__.py b/vk/tracking/db/__init__.py index 51b1a7c..7095cf3 100644 --- a/vk/tracking/db/__init__.py +++ b/vk/tracking/db/__init__.py @@ -5,4 +5,4 @@ from .format import Format -__all__ = ('format',) +__all__ = ("format",) diff --git a/vk/tracking/db/backend/__init__.py b/vk/tracking/db/backend/__init__.py index 0d3153f..8a1a7d7 100644 --- a/vk/tracking/db/backend/__init__.py +++ b/vk/tracking/db/backend/__init__.py @@ -6,7 +6,7 @@ from . import csv, log, null __all__ = ( - 'csv', - 'log', - 'null', + "csv", + "log", + "null", ) diff --git a/vk/tracking/db/backend/log.py b/vk/tracking/db/backend/log.py index 0ffee5c..6f3ebaa 100644 --- a/vk/tracking/db/backend/log.py +++ b/vk/tracking/db/backend/log.py @@ -15,7 +15,7 @@ class Writer(meta.Writer): handler = logging.StreamHandler(fd) handler.setFormatter( logging.Formatter( - fmt='[%(asctime)s] %(message)s', datefmt='%Y-%m-%d %H:%M:%S%z' + fmt="[%(asctime)s] %(message)s", datefmt="%Y-%m-%d %H:%M:%S%z" ) ) self._logger.addHandler(handler) @@ -71,24 +71,24 @@ class Writer(meta.Writer): @staticmethod def _format_user_is_online(user): - return f'{user.full_name} is ONLINE.' + return f"{user.full_name} is ONLINE." @staticmethod def _format_user_is_offline(user): - return f'{user.full_name} is OFFLINE.' + return f"{user.full_name} is OFFLINE." @staticmethod def _format_user_last_seen(user): - return f'{user.full_name} was last seen at {user.last_seen.time_local} using {user.last_seen.platform.descr}.' + return f"{user.full_name} was last seen at {user.last_seen.time_local} using {user.last_seen.platform.descr}." @staticmethod def _format_user_went_online(user): - return f'{user.full_name} went ONLINE.' + return f"{user.full_name} went ONLINE." @staticmethod def _format_user_went_offline(user): - return f'{user.full_name} went OFFLINE.' + return f"{user.full_name} went OFFLINE." @staticmethod def _format_another_connection_error(e): - return f'Encountered a connection error which looks like the previous one: {e}' + return f"Encountered a connection error which looks like the previous one: {e}" diff --git a/vk/tracking/db/format.py b/vk/tracking/db/format.py index 5c88cb7..66d9132 100644 --- a/vk/tracking/db/format.py +++ b/vk/tracking/db/format.py @@ -12,9 +12,9 @@ from . import backend class Format(Enum): - CSV = 'csv' - LOG = 'log' - NULL = 'null' + CSV = "csv" + LOG = "log" + NULL = "null" def __str__(self): return self.value @@ -26,7 +26,7 @@ class Format(Enum): return backend.log.Writer(fd) if self is Format.NULL: return backend.null.Writer() - raise NotImplementedError(f'unsupported database format: {self}') + raise NotImplementedError(f"unsupported database format: {self}") def open_output_file(self, path=None): if self is Format.CSV: @@ -35,30 +35,30 @@ class Format(Enum): return self._open_output_log_file(path) if self is Format.NULL: return self._open_output_database_file(None) - raise NotImplementedError('unsupported database format: ' + str(self)) + raise NotImplementedError("unsupported database format: " + str(self)) @staticmethod def _open_output_log_file(path): - return io.open_output_text_file(path, mode='a') + return io.open_output_text_file(path, mode="a") @staticmethod def _open_output_database_file(path): - return io.open_output_text_file(path, mode='x') + return io.open_output_text_file(path, mode="x") def create_reader(self, fd=sys.stdin): if self is Format.CSV: return backend.csv.Reader(fd) if self is Format.LOG: - return NotImplementedError('cannot read from a log file') + return NotImplementedError("cannot read from a log file") if self is Format.NULL: return backend.null.Reader() - raise NotImplementedError('unsupported database format: ' + str(self)) + raise NotImplementedError("unsupported database format: " + str(self)) def open_input_file(self, path=None): if self is Format.CSV: return io.open_input_text_file(path) if self is Format.LOG: - raise NotImplementedError('cannot read from a log file') + raise NotImplementedError("cannot read from a log file") if self is Format.NULL: return io.open_input_text_file(None) - raise NotImplementedError('unsupported database format: ' + str(self)) + raise NotImplementedError("unsupported database format: " + str(self)) diff --git a/vk/tracking/db/timestamp.py b/vk/tracking/db/timestamp.py index 4a3892f..c9ed293 100644 --- a/vk/tracking/db/timestamp.py +++ b/vk/tracking/db/timestamp.py @@ -30,7 +30,7 @@ class Timestamp: @staticmethod def from_string(s): - return Timestamp(datetime.strptime(s, '%Y-%m-%dT%H:%M:%SZ')) + return Timestamp(datetime.strptime(s, "%Y-%m-%dT%H:%M:%SZ")) def __str__(self): - return f'{self.dt.isoformat()}Z' + return f"{self.dt.isoformat()}Z" diff --git a/vk/tracking/sessions.py b/vk/tracking/sessions.py index 5d545f1..843977d 100644 --- a/vk/tracking/sessions.py +++ b/vk/tracking/sessions.py @@ -144,10 +144,10 @@ class OnlineSessionEnumerator(MutableMapping): class GroupBy(Enum): - USER = 'user' - DATE = 'date' - WEEKDAY = 'weekday' - HOUR = 'hour' + USER = "user" + DATE = "date" + WEEKDAY = "weekday" + HOUR = "hour" def __str__(self): return self.value @@ -162,7 +162,7 @@ class GroupBy(Enum): return online_streaks.group_by_weekday(db_reader) if self is GroupBy.HOUR: return online_streaks.group_by_hour(db_reader) - raise NotImplementedError(f'unsupported grouping: {self}') + raise NotImplementedError(f"unsupported grouping: {self}") _OUTPUT_USER_FIELDS = ( @@ -211,7 +211,7 @@ class OutputSinkCSV(OutputSinkOnlineSessions): @staticmethod def _key_to_row(group_by, key): if group_by not in OutputSinkCSV._CONVERT_KEY: - raise NotImplementedError(f'unsupported grouping: {group_by}') + raise NotImplementedError(f"unsupported grouping: {group_by}") return OutputSinkCSV._CONVERT_KEY[group_by](key) def process_database(self, group_by, db_reader, time_from=None, time_to=None): @@ -222,9 +222,9 @@ class OutputSinkCSV(OutputSinkOnlineSessions): class OutputConverterJSON: - _DATE_FIELD = 'date' - _WEEKDAY_FIELD = 'weekday' - _HOUR_FIELD = 'hour' + _DATE_FIELD = "date" + _WEEKDAY_FIELD = "weekday" + _HOUR_FIELD = "hour" assert _DATE_FIELD not in map(str, _OUTPUT_USER_FIELDS) assert _WEEKDAY_FIELD not in map(str, _OUTPUT_USER_FIELDS) @@ -260,7 +260,7 @@ class OutputSinkJSON(OutputSinkOnlineSessions): def __init__(self, fd=sys.stdout): self._writer = io.FileWriterJSON(fd) - _DURATION_FIELD = 'duration' + _DURATION_FIELD = "duration" assert _DURATION_FIELD not in map(str, _OUTPUT_USER_FIELDS) @@ -274,7 +274,7 @@ class OutputSinkJSON(OutputSinkOnlineSessions): @staticmethod def _key_to_object(group_by, key): if group_by not in OutputSinkJSON._CONVERT_KEY: - raise NotImplementedError(f'unsupported grouping: {group_by}') + raise NotImplementedError(f"unsupported grouping: {group_by}") return OutputSinkJSON._CONVERT_KEY[group_by](key) def process_database(self, group_by, db_reader, time_from=None, time_to=None): @@ -289,7 +289,7 @@ class OutputSinkJSON(OutputSinkOnlineSessions): class OutputConverterPlot: @staticmethod def convert_user(user): - return f'{user.first_name}\n{user.last_name}' + return f"{user.first_name}\n{user.last_name}" @staticmethod def convert_date(date): @@ -301,14 +301,14 @@ class OutputConverterPlot: @staticmethod def convert_hour(hour): - return f'{hour}:00' + return f"{hour}:00" class OutputSinkPlot(OutputSinkOnlineSessions): def __init__(self, fd=sys.stdout): self._fd = fd - TITLE = 'How much time people spend online' + TITLE = "How much time people spend online" _FORMAT_KEY = { GroupBy.USER: OutputConverterPlot.convert_user, @@ -320,7 +320,7 @@ class OutputSinkPlot(OutputSinkOnlineSessions): @staticmethod def _format_key(group_by, key): if group_by not in OutputSinkPlot._FORMAT_KEY: - raise NotImplementedError(f'unsupported grouping: {group_by}') + raise NotImplementedError(f"unsupported grouping: {group_by}") return OutputSinkPlot._FORMAT_KEY[group_by](key) @staticmethod @@ -351,7 +351,7 @@ class OutputSinkPlot(OutputSinkOnlineSessions): bar_chart.enable_grid_for_values() bar_chart.only_integer_values() bar_chart.set_property( - bar_chart.get_values_labels(), fontsize='small', rotation=30 + bar_chart.get_values_labels(), fontsize="small", rotation=30 ) bar_chart.set_value_label_formatter(self._format_duration) @@ -374,9 +374,9 @@ class OutputSinkPlot(OutputSinkOnlineSessions): class OutputFormat(Enum): - CSV = 'csv' - JSON = 'json' - PLOT = 'plot' + CSV = "csv" + JSON = "json" + PLOT = "plot" def __str__(self): return self.value @@ -388,7 +388,7 @@ class OutputFormat(Enum): return OutputSinkJSON(fd) if self is OutputFormat.PLOT: return OutputSinkPlot(fd) - raise NotImplementedError(f'unsupported output format: {self}') + raise NotImplementedError(f"unsupported output format: {self}") def open_file(self, path=None): if self is OutputFormat.PLOT: @@ -407,17 +407,17 @@ def _parse_database_format(s): try: return DatabaseFormat(s) except ValueError: - raise argparse.ArgumentTypeError(f'invalid database format: {s}') + raise argparse.ArgumentTypeError(f"invalid database format: {s}") def _parse_output_format(s): try: return OutputFormat(s) except ValueError: - raise argparse.ArgumentTypeError(f'invalid output format: {s}') + raise argparse.ArgumentTypeError(f"invalid output format: {s}") -_DATE_RANGE_LIMIT_FORMAT = '%Y-%m-%dT%H:%M:%SZ' +_DATE_RANGE_LIMIT_FORMAT = "%Y-%m-%dT%H:%M:%SZ" def _parse_date_range_limit(s): @@ -435,64 +435,64 @@ def _parse_args(args=None): args = sys.argv[1:] parser = argparse.ArgumentParser( - description='View/visualize the amount of time people spend online.' + description="View/visualize the amount of time people spend online." ) vk.version.add_to_arg_parser(parser) parser.add_argument( - 'db_path', - metavar='input', - nargs='?', - help='database file path (standard input by default)', + "db_path", + metavar="input", + nargs="?", + help="database file path (standard input by default)", ) parser.add_argument( - 'out_path', - metavar='output', - nargs='?', - help='output file path (standard output by default)', + "out_path", + metavar="output", + nargs="?", + help="output file path (standard output by default)", ) parser.add_argument( - '-g', - '--group-by', + "-g", + "--group-by", type=_parse_group_by, choices=GroupBy, default=GroupBy.USER, - help='group online sessions by user/date/etc.', + help="group online sessions by user/date/etc.", ) parser.add_argument( - '-i', - '--input-format', - dest='db_fmt', + "-i", + "--input-format", + dest="db_fmt", type=_parse_database_format, default=DatabaseFormat.CSV, choices=DatabaseFormat, - help='specify database format', + help="specify database format", ) parser.add_argument( - '-o', - '--output-format', - dest='out_fmt', + "-o", + "--output-format", + dest="out_fmt", type=_parse_output_format, choices=OutputFormat, default=OutputFormat.CSV, - help='specify output format', + help="specify output format", ) parser.add_argument( - '-a', - '--from', - dest='time_from', + "-a", + "--from", + dest="time_from", type=_parse_date_range_limit, default=None, - help='discard online activity prior to this moment', + help="discard online activity prior to this moment", ) parser.add_argument( - '-b', - '--to', - dest='time_to', + "-b", + "--to", + dest="time_to", type=_parse_date_range_limit, default=None, - help='discard online activity after this moment', + help="discard online activity after this moment", ) return parser.parse_args(args) @@ -525,5 +525,5 @@ def main(args=None): process_online_sessions(**vars(_parse_args(args))) -if __name__ == '__main__': +if __name__ == "__main__": main() diff --git a/vk/tracking/status.py b/vk/tracking/status.py index 7ef0b3c..8f1665e 100644 --- a/vk/tracking/status.py +++ b/vk/tracking/status.py @@ -155,9 +155,9 @@ def _parse_positive_integer(s): try: n = int(s) except ValueError: - raise argparse.ArgumentTypeError(f'must be a positive integer: {s}') + raise argparse.ArgumentTypeError(f"must be a positive integer: {s}") if n < 1: - raise argparse.ArgumentTypeError(f'must be a positive integer: {s}') + raise argparse.ArgumentTypeError(f"must be a positive integer: {s}") return n @@ -165,52 +165,52 @@ def _parse_database_format(s): try: return DatabaseFormat(s) except ValueError: - raise argparse.ArgumentTypeError(f'invalid database format: {s}') + raise argparse.ArgumentTypeError(f"invalid database format: {s}") def _parse_args(args=None): if args is None: args = sys.argv[1:] - parser = argparse.ArgumentParser(description='Track when people go online/offline.') + parser = argparse.ArgumentParser(description="Track when people go online/offline.") vk.version.add_to_arg_parser(parser) parser.add_argument( - 'uids', metavar='UID', nargs='+', help='user IDs or "screen names"' + "uids", metavar="UID", nargs="+", help='user IDs or "screen names"' ) parser.add_argument( - '-t', - '--timeout', - metavar='SECONDS', + "-t", + "--timeout", + metavar="SECONDS", type=_parse_positive_integer, default=DEFAULT_TIMEOUT, - help='set refresh interval', + help="set refresh interval", ) parser.add_argument( - '-O', - '--only-once', - action='store_true', - help='query the status only once and exit', + "-O", + "--only-once", + action="store_true", + help="query the status only once and exit", ) parser.add_argument( - '-l', - '--log', - metavar='PATH', - dest='log_path', - help='set log file path (standard output by default)', + "-l", + "--log", + metavar="PATH", + dest="log_path", + help="set log file path (standard output by default)", ) parser.add_argument( - '-f', - '--format', - dest='db_fmt', + "-f", + "--format", + dest="db_fmt", type=_parse_database_format, choices=DatabaseFormat, default=DEFAULT_DB_FORMAT, - help='specify database format', + help="specify database format", ) parser.add_argument( - '-o', '--output', metavar='PATH', dest='db_path', help='set database file path' + "-o", "--output", metavar="PATH", dest="db_path", help="set database file path" ) return parser.parse_args(args) @@ -248,5 +248,5 @@ def main(args=None): track_status(**vars(_parse_args(args))) -if __name__ == '__main__': +if __name__ == "__main__": main() -- cgit v1.3