• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# Copyright 2013 The Chromium Authors. All rights reserved.
2# Use of this source code is governed by a BSD-style license that can be
3# found in the LICENSE file.
4
5from api_data_source import APIDataSource
6from api_list_data_source import APIListDataSource
7from data_source import DataSource
8from manifest_data_source import ManifestDataSource
9from permissions_data_source import PermissionsDataSource
10from sidenav_data_source import SidenavDataSource
11from strings_data_source import StringsDataSource
12from template_data_source import (
13    ArticleDataSource, IntroDataSource, PartialDataSource)
14from whats_new_data_source import WhatsNewDataSource
15
16
17_all_data_sources = {
18  'apis': APIDataSource,
19  'api_list': APIListDataSource,
20  'articles': ArticleDataSource,
21  'intros': IntroDataSource,
22  'manifest_source': ManifestDataSource,
23  'partials': PartialDataSource,
24  'permissions': PermissionsDataSource,
25  'sidenavs': SidenavDataSource,
26  'strings': StringsDataSource,
27  'whatsNew' : WhatsNewDataSource
28}
29
30assert all(issubclass(cls, DataSource)
31           for cls in _all_data_sources.itervalues())
32
33def CreateDataSources(server_instance, request=None):
34  '''Create a dictionary of initialized DataSources. DataSources are
35  initialized with |server_instance| and |request|. If the DataSources are
36  going to be used for Cron, |request| should be omitted.
37
38  The key of each DataSource is the name the template system will use to access
39  the DataSource.
40  '''
41  return dict((name, cls(server_instance, request))
42              for name, cls in _all_data_sources.iteritems())
43