diff options
| author | 2007-09-30 18:34:17 +0200 | |
|---|---|---|
| committer | 2007-09-30 18:34:17 +0200 | |
| commit | 400fc71e7887799b3b55d7d429303275311b3dee (patch) | |
| tree | abe67def2afd45cc5db8ed725c557186c19eeb7d /minidinstall/DpkgDatalist.py | |
| parent | 649a6c98836e828f9b9713cd2aa44fa29a2482b2 (diff) | |
Minor changes for package building
* I'm the new Maintainer (Closes: #414621)
* build package with cdbs
* add XS-Vcs tags to git archive
* move python-dev and python-support to B-Depends (instead of B-D-I) to clam
lintian
Diffstat (limited to 'minidinstall/DpkgDatalist.py')
| -rw-r--r-- | minidinstall/DpkgDatalist.py | 81 |
1 files changed, 81 insertions, 0 deletions
diff --git a/minidinstall/DpkgDatalist.py b/minidinstall/DpkgDatalist.py new file mode 100644 index 0000000..0c11612 --- /dev/null +++ b/minidinstall/DpkgDatalist.py @@ -0,0 +1,81 @@ +# DpkgDatalist.py +# +# This module implements DpkgDatalist, an abstract class for storing +# a list of objects in a file. Children of this class have to implement +# the load and _store methods. +# +# Copyright 2001 Wichert Akkerman <wichert@linux.com> +# +# This file is free software; you can redistribute it and/or modify it +# under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program 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 General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + +import os, sys +from UserDict import UserDict +from OrderedDict import OrderedDict +from minidinstall.SafeWriteFile import SafeWriteFile +from types import StringType + +class DpkgDatalistException(Exception): + UNKNOWN = 0 + SYNTAXERROR = 1 + + def __init__(self, message="", reason=UNKNOWN, file=None, line=None): + self.message=message + self.reason=reason + self.filename=file + self.line=line + +class _DpkgDatalist: + def __init__(self, fn=""): + '''Initialize a DpkgDatalist object. An optional argument is a + file from which we load values.''' + + self.filename=fn + if self.filename: + self.load(self.filename) + + def store(self, fn=None): + "Store variable data in a file." + + if fn==None: + fn=self.filename + # Special case for writing to stdout + if not fn: + self._store(sys.stdout) + return + + # Write to a temporary file first + if type(fn) == StringType: + vf=SafeWriteFile(fn+".new", fn, "w") + else: + vf=fn + try: + self._store(vf) + finally: + if type(fn) == StringType: + vf.close() + + +class DpkgDatalist(UserDict, _DpkgDatalist): + def __init__(self, fn=""): + UserDict.__init__(self) + _DpkgDatalist.__init__(self, fn) + + +class DpkgOrderedDatalist(OrderedDict, _DpkgDatalist): + def __init__(self, fn=""): + OrderedDict.__init__(self) + _DpkgDatalist.__init__(self, fn) + +# vim:ts=4:sw=4:et: |
