Disable view source for Developer Tools.
[chromium-blink-merge.git] / chrome / common / extensions / docs / server2 / docs_server_utils.py
blob442c5cadf65c658e75218cfe8fda49dcfd889359
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
3 # found in the LICENSE file.
5 from base64 import b64encode
6 from hashlib import sha1
7 import os
9 def FormatKey(key):
10 '''Normalize a key by making sure it has a .html extension, and convert any
11 '.'s to '_'s.
12 '''
13 if key.endswith('.html'):
14 key = key[:-len('.html')]
15 safe_key = key.replace('.', '_')
16 return '%s.html' % safe_key
18 def SanitizeAPIName(name):
19 '''Sanitizes API filenames that are in subdirectories.
20 '''
21 filename = os.path.splitext(name)[0].replace(os.sep, '_')
22 if 'experimental' in filename:
23 filename = 'experimental_' + filename.replace('experimental_', '')
24 return filename
26 def StringIdentity(string):
27 '''Creates a small hash of a string.
28 '''
29 return b64encode(sha1(string).digest())[:8]
31 def MarkLast(dicts):
32 '''Adds a property 'last' == True to the last element in a list of dicts.
33 '''
34 if len(dicts) > 0:
35 dicts[-1]['last'] = True
37 def ToUnicode(data):
38 '''Returns the str |data| as a unicode object. It's expected to be utf8, but
39 there are also latin-1 encodings in there for some reason. Fall back to that.
40 '''
41 try:
42 return unicode(data, 'utf-8')
43 except:
44 return unicode(data, 'latin-1')