--- a/RadonMetrics/CodeMetricsCalculator.py Wed Sep 16 20:07:48 2015 +0200 +++ b/RadonMetrics/CodeMetricsCalculator.py Thu Sep 17 19:57:14 2015 +0200 @@ -11,6 +11,7 @@ pass import multiprocessing +import sys def initService(): @@ -136,7 +137,7 @@ res = __raw2Dict(analyze(text)) except Exception as err: res = {"error": str(err)} - return (res, ) + return ("raw", res) def __raw2Dict(obj): @@ -170,10 +171,18 @@ @rtype (tuple of dict) """ from radon.metrics import mi_visit, mi_rank + + # Check type for py2: if not str it's unicode + if sys.version_info[0] == 2: + try: + text = text.encode('utf-8') + except UnicodeError: + pass + try: - mi = mi_visit(text) + mi = mi_visit(text, True) rank = mi_rank(mi) res = {"mi": mi, "rank": rank} except Exception as err: res = {"error": str(err)} - return (res, ) + return ("mi", res)