0
|
1 import logging
|
|
2 from decorators import lazy_property
|
|
3
|
|
4
|
|
5 logger = logging.getLogger(__name__)
|
|
6
|
|
7
|
|
8 class PageRepository(object):
|
|
9 pass
|
|
10
|
|
11
|
|
12 class ExecutionContext(object):
|
|
13 pass
|
|
14
|
|
15
|
|
16 class Environment(object):
|
|
17 def __init__(self):
|
|
18 self.page_repository = PageRepository()
|
|
19 self._execution_ctx = None
|
|
20
|
|
21 def initialize(self, app):
|
|
22 pass
|
|
23
|
|
24 @lazy_property
|
|
25 def pages(self):
|
|
26 logger.debug("Loading pages...")
|
|
27 return self._loadPages()
|
|
28
|
|
29 @lazy_property
|
|
30 def posts(self):
|
|
31 logger.debug("Loading posts...")
|
|
32 return self._loadPosts()
|
|
33
|
|
34 @lazy_property
|
|
35 def file_system(self):
|
|
36 return None
|
|
37
|
|
38 def get_execution_context(self, auto_create=False):
|
|
39 if auto_create and self._execution_ctx is None:
|
|
40 self._execution_ctx = ExecutionContext()
|
|
41 return self._execution_ctx
|
|
42
|
|
43 def _loadPages(self):
|
|
44 raise NotImplementedError()
|
|
45
|
|
46 def _loadPosts(self):
|
|
47 raise NotImplementedError()
|
|
48
|
|
49
|
|
50 class StandardEnvironment(Environment):
|
|
51 pass
|
|
52
|