Escape pango markup properly
[joel/kofoto.git] / src / packages / kofoto / common.py
1 """Common code for Kofoto libraries."""
2
3 ######################################################################
4 ### Public names.
5
6 __all__ = [
7     "KofotoError",
8     "NotImplementedError",
9     "symlink_or_copy_file",
10     ]
11
12 ######################################################################
13 ### Imports.
14
15 import os
16
17 ######################################################################
18 ### Exceptions.
19
20 class KofotoError(Exception):
21     """Base class for Kofoto exceptions."""
22
23 ######################################################################
24 ### Functions.
25
26 def symlink_or_copy_file(source, destination):
27     """Create a symbolic link, or copy if support links are not supported."""
28
29     try:
30         os.unlink(destination)
31     except OSError:
32         pass
33     try:
34         os.symlink(source, destination)
35     except AttributeError:
36         # The platform doesn't support symlinks.
37
38         import shutil
39         if not os.path.dirname(source):
40             # Handle the case of "ln -s foo dir/bar".
41             source = os.path.join(os.path.dirname(destination), source)
42         shutil.copy(source, destination)
43
44 def html_escape(s):
45     return s.replace("&", "&amp;").replace("<", "&lt;").replace(">", "&gt;")