Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(662)

Side by Side Diff: chrome/common/extensions/docs/server2/file_system.py

Issue 10828235: Extensions Docs Server: Efficient MemcacheFileSystem (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Tests! Created 8 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 # Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 # Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 # Use of this source code is governed by a BSD-style license that can be 2 # Use of this source code is governed by a BSD-style license that can be
3 # found in the LICENSE file. 3 # found in the LICENSE file.
4 4
5 import os 5 import os
6 6
7 class FileNotFoundError(Exception): 7 class FileNotFoundError(Exception):
8 def __init__(self, filename): 8 def __init__(self, filename):
9 Exception.__init__(self, filename) 9 Exception.__init__(self, filename)
10 10
11 def _ProcessFileData(data, path): 11 def _ProcessFileData(data, path):
12 if os.path.splitext(path)[-1] not in ['.js', '.html', '.json']: 12 if os.path.splitext(path)[-1] not in ['.js', '.html', '.json']:
13 return data 13 return data
14 try: 14 try:
15 return unicode(data, 'utf-8') 15 return unicode(data, 'utf-8')
16 except: 16 except:
17 return unicode(data, 'latin-1') 17 return unicode(data, 'latin-1')
18 18
19 class FileSystem(object): 19 class FileSystem(object):
20 """A FileSystem interface that can read files and directories. 20 """A FileSystem interface that can read files and directories.
21 """ 21 """
22 class StatInfo(object): 22 class StatInfo(object):
23 """The result of calling Stat on a FileSystem. 23 """The result of calling Stat on a FileSystem.
24 """ 24 """
25 def __init__(self, version): 25 def __init__(self, version, child_versions):
26 self.version = version 26 self.version = version
27 self.child_versions = child_versions
27 28
28 def Read(self, paths, binary=False): 29 def Read(self, paths, binary=False):
29 """Reads each file in paths and returns a dictionary mapping the path to the 30 """Reads each file in paths and returns a dictionary mapping the path to the
30 contents. If a path in paths ends with a '/', it is assumed to be a 31 contents. If a path in paths ends with a '/', it is assumed to be a
31 directory, and a list of files in the directory is mapped to the path. 32 directory, and a list of files in the directory is mapped to the path.
32 33
33 If binary=False, the contents of each file will be unicode parsed as utf-8, 34 If binary=False, the contents of each file will be unicode parsed as utf-8,
34 and failing that as latin-1 (some extension docs use latin-1). If 35 and failing that as latin-1 (some extension docs use latin-1). If
35 binary=True then the contents will be a str. 36 binary=True then the contents will be a str.
36 """ 37 """
37 raise NotImplementedError() 38 raise NotImplementedError()
38 39
39 def ReadSingle(self, path): 40 def ReadSingle(self, path):
40 """Reads a single file from the FileSystem. 41 """Reads a single file from the FileSystem.
41 """ 42 """
42 return self.Read([path]).Get()[path] 43 return self.Read([path]).Get()[path]
43 44
44 def Stat(self, path): 45 def Stat(self, path):
45 """Gets the version number of |path| if it is a directory, or the parent 46 """Returns a |StatInfo| object containing the version of |path|. If |path|
46 directory if it is a file. 47 is a directory, |StatInfo| will have the versions of all the children of
48 the directory in |StatInfo.child_versions|.
47 """ 49 """
48 raise NotImplementedError() 50 raise NotImplementedError()
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698