Browse Source

use yaml.dump for debug strings

master
cinnaboot 7 years ago
parent
commit
544b4ce1b4
  1. 56
      video_metadata/util.py
  2. 23
      video_metadata/views/tmdb.py

56
video_metadata/util.py

@ -14,65 +14,11 @@ def getLogger(is_debug):
handler = logging.StreamHandler(sys.stdout)
handler.setLevel(logging.DEBUG)
handler.setFormatter(formatter)
logger.propagate = False
logger.addHandler(handler)
return logger
# NOTE: modified from here: https://code.activestate.com/recipes/137951-dump-all-the-attributes-of-an-object/
# to only print attributes
def dumpObjAttr(obj):
import types
MethodWrapperType = type(object().__hash__)
objclass = getattr(obj, '__class__')
attrs = []
for slot in dir(obj):
attr = getattr(obj, slot)
if slot == '__class__':
objclass = attr.__name__
elif slot == '__doc__':
pass
elif slot == '__module__':
pass
elif slot == '__dict__':
pass
elif slot == '__weakref__':
pass
elif (isinstance(attr, types.BuiltinMethodType) or
isinstance(attr, MethodWrapperType)):
pass
elif (isinstance(attr, types.MethodType) or
isinstance(attr, types.FunctionType)):
pass
else:
attrs.append( (slot, attr) )
sOut = objclass + ':'
for key, value in attrs:
# NOTE: pretty print for long lists
if isinstance(value, list) or isinstance(value, tuple):
sOut += '\n\t' + key + ':'
sOut += dumpList(value, 2)
else:
sOut += '\n\t' + key + ': ' + str(value)
return sOut
def dumpList(value, indent):
s = ''
if len(value) > 0:
if isinstance(value[0], tuple):
for k, v in value:
s += '\n' + (indent * '\t') + k + ': ' + str(v)
elif isinstance(value, list):
for item in value:
s += '\n' + (indent * '\t') + str(item)
else:
pass
return s
def getFunctionName():
import sys
return sys._getframe(1).f_code.co_name

23
video_metadata/views/tmdb.py

@ -9,6 +9,7 @@ import ssl
from urllib.error import URLError, HTTPError
import urllib.parse
import urllib.request
import yaml
from flask import Blueprint, current_app, flash, Flask, request, render_template
@ -95,10 +96,6 @@ class view_result(object):
@bp.route('/query_movie')
def query_movie():
logger.debug('Flask(__name__): {}'.format(Flask(__name__)))
logger.debug('debug: {}'.format(Flask(__name__).config['DEBUG']))
errors = []
query = query_data()
response = response_data()
@ -143,9 +140,11 @@ def query_movie():
return render_template(
'tmdb/query.html',
view_data = view_results,
debug_str = str(util.dumpObjAttr(query) + '\n'
+ util.dumpObjAttr(response)) + '\n'
+ util.dumpList(view_results, 0) + '\n'
debug_str = '{} \n {} \n {} \n'.format(
yaml.dump(query, indent=4),
yaml.dump(response, indent=4),
yaml.dump(view_results, indent=4)
)
)
@ -156,6 +155,7 @@ def query_movie():
# with legitimate dates in the title
def parseQueryStr(query_obj):
s = query_obj.raw_query_str.replace('.', ' ').strip()
s = re.sub('[(){}\[\]]', '', s).strip() # NOTE: remove some common characters
current_year = date.today().year
# NOTE: find all 4 digit numbers to match the year of queries with 4 digit numbers in the title
@ -199,16 +199,17 @@ def makeLocalQuery(query_obj):
elif query_obj.query_type == query_type.TV_SHOW:
pass
logger.debug('number of rows matched: "{}"'.format(len(cur.fetchall())))
rows = cur.fetchall()
logger.debug('number of rows matched: "{}"'.format(len(rows)))
if len(cur.fetchall()) > 0:
if len(rows) > 0:
logger.debug('query string "{}", match found in local db'.format(
query_obj.parsed_query_str)
)
for row in cur:
for row in rows:
vr = view_result()
vr.title = row["title"]
vr.title = row["query"]
results.append(vr)
else:
logger.debug('query string "{}", no matches found in local db'.format(

Loading…
Cancel
Save