X-Git-Url: http://git.meshlink.io/?a=blobdiff_plain;f=avahi-python%2Favahi%2FServiceTypeDatabase.py.in;fp=avahi-python%2Favahi%2FServiceTypeDatabase.py.in;h=0000000000000000000000000000000000000000;hb=f1de9dcaab953757252d51b4725cbfa36daa10a5;hp=b2035fdf6b5089c0e604522a2e0174d7ea7f9e1c;hpb=7a5b2f69af7d36d6cd4153142f125fa011784e03;p=catta diff --git a/avahi-python/avahi/ServiceTypeDatabase.py.in b/avahi-python/avahi/ServiceTypeDatabase.py.in deleted file mode 100644 index b2035fd..0000000 --- a/avahi-python/avahi/ServiceTypeDatabase.py.in +++ /dev/null @@ -1,161 +0,0 @@ -#!@PYTHON@ -# -*-python-*- -# This file is part of avahi. -# -# avahi is free software; you can redistribute it and/or modify it -# under the terms of the GNU Lesser General Public License as -# published by the Free Software Foundation; either version 2 of the -# License, or (at your option) any later version. -# -# avahi is distributed in the hope that it will be useful, but WITHOUT -# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY -# or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public -# License for more details. -# -# You should have received a copy of the GNU Lesser General Public -# License along with avahi; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 -# USA. - -import @DBM@ -import locale -import re - -locale.setlocale(locale.LC_ALL, '') - -class ServiceTypeDatabase: - """ServiceTypeDatabase maps service types to descriptions""" - - def __init__(self, filename = "@pkglibdatadir@/service-types.db"): - - self.db = @DBM@.open(filename, "r") - - l = locale.getlocale(locale.LC_MESSAGES) - - self.suffixes = () - - if not l[0] is None: - - if not l[1] is None: - self.suffixes += (l[0] + "@" + l[1], ) - - self.suffixes += (l[0], ) - - i = l[0].find("_") - - if i >= 0: - - k = l[0][:i] - - if not l[1] is None: - self.suffixes += (k + "@" + l[1], ) - - self.suffixes += (k, ) - - - self.suffixes = tuple(map(lambda x: "["+x+"]", self.suffixes)) + ("", ) - - def __getitem__(self, key): - - for suffix in self.suffixes: - try: - return self.db[key + suffix] - except KeyError: - pass - - raise KeyError() - - def items(self): - - return list(self.iteritems()) - - def has_key(self, key): - - for suffix in self.suffixes: - - if self.db.has_key(key + suffix): - return True - - return False - - def __contains__(self, item): - - for suffix in self.suffixes: - - if item+suffix in self.db: - return True - - return False - - - def __iter__(self): - - @FIRST_KEY@ - @CHECK_KEY@ - - if re.search('_[a-zA-Z0-9-]+\._[a-zA-Z0-9-]+', key) and not re.search('_[a-zA-Z0-9-]+\._[a-zA-Z0-9-]+\[.*\]', key): - yield key - - @NEXT_KEY@ - - def __len__(self): - - count = 0 - for _ in self: - - count+=1 - - self.__len__ = lambda : count - return len(self) - - def get(self, key, default=None): - - if key in self: - return self[key] - else: - return default - - def iteritems(self): - - return ((key, self[key]) for key in self) - - def iterkeys(self): - - return self.__iter__() - - def itervalues(self): - - return (self[key] for key in self) - - def keys(self): - - return list(self) - - def values(self): - - return list(self.itervalues()) - -if __name__ == "__main__": - - b = ServiceTypeDatabase() - print b.items() - - print b["_http._tcp"] - print b["_ftp._tcp"] - print b["_webdav._tcp"] - print b["_webdavs._tcp"] - - print b.get("gurki._tcp") - print len(b) - - for key, _ in zip(b, xrange(3)): - - print key - - for key, _ in zip(b.iteritems(), xrange(3)): - - print key - - for key, _ in zip(b.itervalues(), xrange(3)): - - print key