Coverage for /pythoncovmergedfiles/medio/medio/usr/local/lib/python3.11/site-packages/dask/widgets/widgets.py: 26%

Shortcuts on this page

r m x   toggle line displays

j k   next/prev highlighted chunk

0   (zero) top of page

1   (one) first highlighted chunk

19 statements  

1from __future__ import annotations 

2 

3import datetime 

4import html 

5import os.path 

6 

7from jinja2 import Environment, FileSystemLoader, Template 

8from jinja2.exceptions import TemplateNotFound 

9 

10from dask.utils import format_bytes, format_time, format_time_ago, key_split, typename 

11 

12FILTERS = { 

13 "datetime_from_timestamp": datetime.datetime.fromtimestamp, 

14 "format_bytes": format_bytes, 

15 "format_time": format_time, 

16 "format_time_ago": format_time_ago, 

17 "html_escape": html.escape, 

18 "key_split": key_split, 

19 "type": type, 

20 "typename": typename, 

21} 

22 

23TEMPLATE_PATHS = [os.path.join(os.path.dirname(os.path.abspath(__file__)), "templates")] 

24 

25 

26def get_environment() -> Environment: 

27 loader = FileSystemLoader(TEMPLATE_PATHS) 

28 environment = Environment(loader=loader) 

29 environment.filters.update(FILTERS) 

30 

31 return environment 

32 

33 

34def get_template(name: str) -> Template: 

35 try: 

36 return get_environment().get_template(name) 

37 except TemplateNotFound as e: 

38 raise TemplateNotFound( 

39 f"Unable to find {name} in dask.widgets.TEMPLATE_PATHS {TEMPLATE_PATHS}" 

40 ) from e