Coverage for /Users/davegaeddert/Development/dropseed/plain/plain/plain/templates/jinja/filters.py: 70%

10 statements  

« prev     ^ index     » next       coverage.py v7.6.1, created at 2024-10-16 22:03 -0500

1import datetime 

2from itertools import islice 

3 

4from plain.utils.html import json_script 

5from plain.utils.timesince import timesince, timeuntil 

6from plain.utils.timezone import localtime 

7 

8 

9def localtime_filter(value, timezone=None): 

10 """Converts a datetime to local time in a template.""" 

11 if not value: 

12 # Without this, we get the current localtime 

13 # which doesn't make sense as a filter 

14 raise ValueError("localtime filter requires a datetime") 

15 return localtime(value, timezone) 

16 

17 

18default_filters = { 

19 # The standard Python ones 

20 "strftime": datetime.datetime.strftime, 

21 "strptime": datetime.datetime.strptime, 

22 # To convert to user time zone 

23 "localtime": localtime_filter, 

24 "timeuntil": timeuntil, 

25 "timesince": timesince, 

26 "json_script": json_script, 

27 "islice": islice, # slice for dict.items() 

28}