From 8f2ab56a195c0c06366238ab3c9699d968197076 Mon Sep 17 00:00:00 2001 From: cinnaboot Date: Sun, 22 Sep 2019 11:21:16 -0400 Subject: [PATCH] fix quirk with python's "mutable default arguments" --- video_metadata/views/tmdb.py | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/video_metadata/views/tmdb.py b/video_metadata/views/tmdb.py index 2ff8f6a..f6295b0 100644 --- a/video_metadata/views/tmdb.py +++ b/video_metadata/views/tmdb.py @@ -1,12 +1,13 @@ import cgi -from dataclasses import dataclass +from dataclasses import dataclass, field from datetime import date from enum import Enum import json import re from sqlite3 import DatabaseError import ssl +from typing import Dict, List from urllib.error import URLError, HTTPError import urllib.parse import urllib.request @@ -43,14 +44,14 @@ class query_type(Enum): @dataclass class query_data: - errors = [] - full_url = '' - movie_year = 0 - parsed_query_str = '' + errors: List[str] = field(default_factory=list) + full_url: str = '' + movie_year: int = 0 + parsed_query_str: str = '' query_params = {} - query_type = query_type.UNKNOWN - raw_query_str = '' - rel_path = '' + query_type: query_type = query_type.UNKNOWN + raw_query_str: str = '' + rel_path: str = '' @dataclass class response_data: @@ -141,9 +142,6 @@ def query_movie(): storeTMDBQueryResults(query, view_results) - errors.extend(query.errors) - errors.extend(response.errors) - if errors: view_results.clear() flash(errors) @@ -217,7 +215,9 @@ def parseQueryStr(query_obj): # TODO: parse tv show titles if query_obj.query_type == query_type.UNKNOWN: - query_obj.errors.append('{}: unable to determine query type'.format(util.getFunctionName())) + query_obj.errors.append('{}: unable to determine query type for {}'.format( + util.getFunctionName(), query_obj.raw_query_str) + ) return False return True