13551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)# Copyright 2013 The Chromium Authors. All rights reserved. 23551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)# Use of this source code is governed by a BSD-style license that can be 33551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)# found in the LICENSE file. 43551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) 5c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdochfrom api_data_source import APIDataSource 6effb81e5f8246d0db0270817048dc992db66e9fbBen Murdochfrom api_list_data_source import APIListDataSource 74e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)from data_source import DataSource 8424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles)from manifest_data_source import ManifestDataSource 91320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tuccifrom owners_data_source import OwnersDataSource 104e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)from permissions_data_source import PermissionsDataSource 116e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)from samples_data_source import SamplesDataSource 1258537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)from sidenav_data_source import SidenavDataSource 133551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)from strings_data_source import StringsDataSource 1423730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)from template_data_source import ( 1523730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) ArticleDataSource, IntroDataSource, PartialDataSource) 165d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)from whats_new_data_source import WhatsNewDataSource 170f1bc08d4cfcc34181b0b5cbf065c40f687bf740Torne (Richard Coles) 183551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) 19424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles)_all_data_sources = { 20c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch 'apis': APIDataSource, 21effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch 'api_list': APIListDataSource, 2223730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) 'articles': ArticleDataSource, 23f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) 'intros': IntroDataSource, 24424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles) 'manifest_source': ManifestDataSource, 251320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 'owners': OwnersDataSource, 2623730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) 'partials': PartialDataSource, 274e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) 'permissions': PermissionsDataSource, 286e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) 'samples': SamplesDataSource, 2958537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) 'sidenavs': SidenavDataSource, 300f1bc08d4cfcc34181b0b5cbf065c40f687bf740Torne (Richard Coles) 'strings': StringsDataSource, 315d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) 'whatsNew' : WhatsNewDataSource 32424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles)} 333551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) 341320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 354e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)assert all(issubclass(cls, DataSource) 364e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) for cls in _all_data_sources.itervalues()) 374e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) 381320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 391320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tuccidef GetDataSourceNames(): 401320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci return _all_data_sources.keys() 411320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 421320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 431320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tuccidef CreateDataSource(name, server_instance, request=None): 441320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci '''Create a single DataSource by name.''' 451320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci assert name in _all_data_sources 461320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci return _all_data_sources[name](server_instance, request) 471320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 481320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 4958537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)def CreateDataSources(server_instance, request=None): 5058537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) '''Create a dictionary of initialized DataSources. DataSources are 5158537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) initialized with |server_instance| and |request|. If the DataSources are 521320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci going to be used for Refresh, |request| should be omitted. 5358537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) 5458537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) The key of each DataSource is the name the template system will use to access 5558537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) the DataSource. 56424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles) ''' 574e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) return dict((name, cls(server_instance, request)) 584e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) for name, cls in _all_data_sources.iteritems()) 59