Commit | Line | Data |
---|---|---|
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 |
17 | import sys |
18 | ||
19 | DISPLAY_IMAGE_FETCHING_ORDER = [u'medium', u'original', u'thumb'] | |
20 | ||
ae3bc7fa AW |
21 | global TESTS_ENABLED |
22 | TESTS_ENABLED = False | |
03ae172a | 23 | |
ee91c2b8 | 24 | |
03ae172a AW |
25 | def 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 | ||
41 | def 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 | ||
51 | class 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 |