diff options
Diffstat (limited to '97suifangqa/apps/utils')
-rw-r--r-- | 97suifangqa/apps/utils/templatetags/__init__.py | 0 | ||||
-rw-r--r-- | 97suifangqa/apps/utils/templatetags/dict_get.py | 14 | ||||
-rw-r--r-- | 97suifangqa/apps/utils/templatetags/divisible_by.py | 30 | ||||
-rw-r--r-- | 97suifangqa/apps/utils/tools.py | 30 |
4 files changed, 74 insertions, 0 deletions
diff --git a/97suifangqa/apps/utils/templatetags/__init__.py b/97suifangqa/apps/utils/templatetags/__init__.py new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/97suifangqa/apps/utils/templatetags/__init__.py diff --git a/97suifangqa/apps/utils/templatetags/dict_get.py b/97suifangqa/apps/utils/templatetags/dict_get.py new file mode 100644 index 0000000..49de3cd --- /dev/null +++ b/97suifangqa/apps/utils/templatetags/dict_get.py @@ -0,0 +1,14 @@ +# -*- coding: utf-8 -*- + +from django import template + +register = template.Library() + +@register.filter +def dict_get(dict, key): + """ + filter to get the value of key in the dict: + return dict[key] + """ + return dict.get(key) + diff --git a/97suifangqa/apps/utils/templatetags/divisible_by.py b/97suifangqa/apps/utils/templatetags/divisible_by.py new file mode 100644 index 0000000..96638e7 --- /dev/null +++ b/97suifangqa/apps/utils/templatetags/divisible_by.py @@ -0,0 +1,30 @@ +# -*- coding: utf-8 -*- + +from django import template + +register = template.Library() + +@register.filter +def divisible_by(dividend, divisor): + """ + if 'dividend' can be *exactly* divided by 'divisor', + return True; + else, return False. + + input parameters: + dividend: <type 'int'> + divisor: <class 'django.utils.safestring.SafeUnicode'> + """ + if not isinstance(dividend, int): + raise ValueError(u'Error: dividend="%s" not int type' % dividend) + try: + divisor = int(divisor) + except ValueError, TypeError: + raise ValueError(u'Error: divisor="%s" cannot convert to int' + % divisor) + # + if dividend % divisor == 0: + return True + else: + return False + diff --git a/97suifangqa/apps/utils/tools.py b/97suifangqa/apps/utils/tools.py new file mode 100644 index 0000000..33cf012 --- /dev/null +++ b/97suifangqa/apps/utils/tools.py @@ -0,0 +1,30 @@ +# -*- coding: utf-8 -*- +# +# generic tools for apps +# + + +def format_float(number): # {{{ + """ + format the display style of a float number + """ + threshold_min = 0.001 + threshold_max = 9999.9 + fix_fmt = '{:,.1f}' # comma as a thousands separator + exp_fmt = '{:.1e}' + # + if isinstance(number, int) or isinstance(number, float): + #return type(number) + pass + else: + return False + # + if (number > threshold_max) or (number < threshold_min): + str = exp_fmt.format(number) + else: + str = fix_fmt.format(number) + # + return str +# }}} + + |