Merge branch '577_denoise_video_transcoding'
[mediagoblin.git] / mediagoblin / tools / common.py
CommitLineData
ae3bc7fa 1# GNU MediaGoblin -- federated, autonomous media hosting
7f4ebeed 2# Copyright (C) 2011, 2012 MediaGoblin contributors. See AUTHORS.
ae3bc7fa
AW
3#
4# This program is free software: you can redistribute it and/or modify
5# it under the terms of the GNU Affero General Public License as published by
6# the Free Software Foundation, either version 3 of the License, or
7# (at your option) any later version.
8#
9# This program is distributed in the hope that it will be useful,
10# but WITHOUT ANY WARRANTY; without even the implied warranty of
11# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12# GNU Affero General Public License for more details.
13#
14# You should have received a copy of the GNU Affero General Public License
15# along with this program. If not, see <http://www.gnu.org/licenses/>.
16
03ae172a
AW
17import sys
18
19DISPLAY_IMAGE_FETCHING_ORDER = [u'medium', u'original', u'thumb']
20
ae3bc7fa
AW
21global TESTS_ENABLED
22TESTS_ENABLED = False
03ae172a 23
ee91c2b8 24
03ae172a
AW
25def import_component(import_string):
26 """
27 Import a module component defined by STRING. Probably a method,
28 class, or global variable.
29
30 Args:
31 - import_string: a string that defines what to import. Written
32 in the format of "module1.module2:component"
33 """
34 module_name, func_name = import_string.split(':', 1)
35 __import__(module_name)
36 module = sys.modules[module_name]
37 func = getattr(module, func_name)
38 return func
35a24fc2
CAW
39
40
41def simple_printer(string):
42 """
43 Prints a string, but without an auto \n at the end.
44
45 Useful for places where we want to dependency inject for printing.
46 """
47 sys.stdout.write(string)
48 sys.stdout.flush()
49
50
51class CollectingPrinter(object):
52 """
53 Another printer object, this one useful for capturing output for
54 examination during testing or otherwise.
55
56 Use this like:
57
58 >>> printer = CollectingPrinter()
59 >>> printer("herp derp\n")
60 >>> printer("lollerskates\n")
61 >>> printer.combined_string
62 "herp derp\nlollerskates\n"
63 """
64 def __init__(self):
65 self.collection = []
66
67 def __call__(self, string):
68 self.collection.append(string)
69
70 @property
71 def combined_string(self):
72 return u''.join(self.collection)
73
74