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