Mercurial > hg > TagInTheMiddle
comparison taginthemiddle/model.py @ 19:57ca873ed9bf default tip
make this a pluggable system and start reorging infrastructure for that
author | Jeff Hammel <jhammel@mozilla.com> |
---|---|
date | Tue, 25 May 2010 07:48:53 -0700 |
parents | c85d42296c06 |
children |
comparison
equal
deleted
inserted
replaced
18:3bf478cb3166 | 19:57ca873ed9bf |
---|---|
5 - someone that tagged the resource | 5 - someone that tagged the resource |
6 """ | 6 """ |
7 | 7 |
8 import os | 8 import os |
9 import time | 9 import time |
10 from pkg_resources import iter_entry_points | |
11 | |
12 ### interface | |
10 | 13 |
11 class Tags(object): | 14 class Tags(object): |
12 """ | 15 """ |
13 abstract base class for tagging | 16 abstract base class for tagging |
14 """ | 17 """ |
28 | 31 |
29 def urls(self, *tags): | 32 def urls(self, *tags): |
30 """ | 33 """ |
31 get the URLs for a set of tags | 34 get the URLs for a set of tags |
32 """ | 35 """ |
36 | |
37 def make_tags(string): | |
38 """ | |
39 Instantiate and return a tag engine from a setuptools entry point | |
40 - string: "URL" of tagger (e.g. 'file:///path/to/file?author=whoami') | |
41 """ | |
42 | |
43 # have to split out the schema ourselves or urlparse is too smart for | |
44 # its own good | |
45 assert '://' in string # XXX could also not have this for no parameters | |
46 name, value = string.split('://', 1) | |
47 | |
48 import pdb; pdb.set_trace() | |
49 | |
50 ### implementation | |
33 | 51 |
34 class FileTags(Tags): | 52 class FileTags(Tags): |
35 """ | 53 """ |
36 file (e.g. .ini) based tagging scheme | 54 file (e.g. .ini) based tagging scheme |
37 | 55 |
126 | 144 |
127 def urls(self, *tags): | 145 def urls(self, *tags): |
128 """ | 146 """ |
129 select * from tags where tag='' | 147 select * from tags where tag='' |
130 """ | 148 """ |
149 | |
150 ### command line | |
151 | |
152 if __name__ == '__main__': | |
153 foo = make_tags('file:///tmp/foo.tags?author=bar') |