##// END OF EJS Templates
renamed classes as recommended by @takluyver
Greg Caporaso -
Show More
@@ -1,145 +1,145 b''
1 1 """Various display related classes.
2 2
3 3 Authors : MinRK, gregcaporaso
4 4 """
5 5
6 6 from os import walk
7 7 from os.path import join, exists, isfile, splitext
8 8
9 9
10 10 class YouTubeVideo(object):
11 11 """Class for embedding a YouTube Video in an IPython session, based on its video id.
12 12
13 13 e.g. to embed the video on this page:
14 14
15 15 http://www.youtube.com/watch?v=foo
16 16
17 17 you would do:
18 18
19 19 vid = YouTubeVideo("foo")
20 20 display(vid)
21 21 """
22 22
23 23 def __init__(self, id, width=400, height=300):
24 24 self.id = id
25 25 self.width = width
26 26 self.height = height
27 27
28 28 def _repr_html_(self):
29 29 """return YouTube embed iframe for this video id"""
30 30 return """
31 31 <iframe
32 32 width="%i"
33 33 height="%i"
34 34 src="http://www.youtube.com/embed/%s"
35 35 frameborder="0"
36 36 allowfullscreen
37 37 ></iframe>
38 38 """%(self.width, self.height, self.id)
39 39
40 class LocalFile(object):
40 class FileLink(object):
41 41 """Class for embedding a local file link in an IPython session, based on path
42 42
43 43 e.g. to embed a link that was generated in the IPython notebook as my/data.txt
44 44
45 45 you would do:
46 46
47 local_file = LocalFile("my/data.txt")
47 local_file = FileLink("my/data.txt")
48 48 display(local_file)
49 49
50 50 or in the HTML notebook, just
51 51
52 LocalFile("my/data.txt")
52 FileLink("my/data.txt")
53 53 """
54 54
55 55 def __init__(self,
56 56 path,
57 57 _directory_prefix='files',
58 58 _result_html_prefix='',
59 59 _result_html_suffix='<br>'):
60 60 """
61 61 path : path to the file or directory that should be formatted
62 62 directory_prefix : prefix to be prepended to all files to form a
63 63 working link [default: 'files']
64 64 result_html_prefix : text to append to beginning to link
65 65 [default: none]
66 66 result_html_suffix : text to append at the end of link
67 67 [default: '<br>']
68 68 """
69 69 self.path = path
70 70 self._directory_prefix = _directory_prefix
71 71 self._link_str = "<a href='%s' target='_blank'>%s</a>"
72 72 self._result_html_prefix = _result_html_prefix
73 73 self._result_html_suffix = _result_html_suffix
74 74
75 75 def _format_path(self):
76 76 fp = join(self._directory_prefix,self.path)
77 77 return ''.join([self._result_html_prefix,
78 78 self._link_str % (fp, self.path),
79 79 self._result_html_suffix])
80 80
81 81 def _repr_html_(self):
82 82 """return link to local file
83 83 """
84 84 if not exists(self.path):
85 85 return ("Path (<tt>%s</tt>) doesn't exist. "
86 86 "It may still be in the process of "
87 87 "being generated, or you may have the "
88 88 "incorrect path." % self.path)
89 89
90 90 return self._format_path()
91 91
92 92 # Create an alias for formatting a single directory name as a link.
93 93 # Right now this is the same as a formatting for a single file, but
94 94 # we'll encorage users to reference these with a different class in
95 95 # case we want to change this in the future.
96 LocalDirectory = LocalFile
96 DirectoryLink = FileLink
97 97
98 class LocalFiles(LocalFile):
98 class FileLinks(FileLink):
99 99 """Class for embedding local file links in an IPython session, based on path
100 100
101 101 e.g. to embed links to files that were generated in the IPython notebook under my/data
102 102
103 103 you would do:
104 104
105 local_files = LocalFiles("my/data")
105 local_files = FileLinks("my/data")
106 106 display(local_files)
107 107
108 108 or in the HTML notebook, just
109 109
110 LocalFiles("my/data")
110 FileLinks("my/data")
111 111
112 112 """
113 113 def __init__(self,
114 114 path,
115 115 _directory_prefix='files',
116 116 _included_suffixes=None,
117 117 _result_html_prefix='',
118 118 _result_html_suffix='<br>'):
119 119 """
120 120 included_suffixes : list of filename suffixes to include when
121 121 formatting output [default: include all files]
122 122
123 See the LocalFile (baseclass of LocalDirectory) docstring for
123 See the FileLink (baseclass of LocalDirectory) docstring for
124 124 information on additional parameters.
125 125 """
126 126 self._included_suffixes = _included_suffixes
127 LocalFile.__init__(self,
127 FileLink.__init__(self,
128 128 path,
129 129 _directory_prefix,
130 130 _result_html_prefix,
131 131 _result_html_suffix)
132 132
133 133 def _format_path(self):
134 134 result_entries = []
135 135 for root, dirs, files in walk(self.path):
136 136 for fn in files:
137 137 fp = join(self._directory_prefix,root,fn)
138 138 # if all files are being included, or fp has a suffix
139 139 # that is in included_suffix, create a link to fp
140 140 if self._included_suffixes == None or \
141 141 splitext(fn)[1] in self._included_suffixes:
142 142 result_entries.append(''.join([self._result_html_prefix,
143 143 self._link_str % (fp,fn),
144 144 self._result_html_suffix]))
145 145 return '\n'.join(result_entries)
General Comments 0
You need to be logged in to leave comments. Login now