blob: 51b4fb79cc69b740f56aa0d07a39024ed70437c7 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
|
"""This module implements different readers for package files."""
from io import IOBase
from Bcfg2.Compat import walk_packages
def get_readers():
""" Return all available packages readers. """
return [m[1] # pylint: disable=C0103
for m in walk_packages(path=__path__)]
class Reader(IOBase):
extension = None
def __init__(self, name):
self.name = name
self._file = self._open(name)
def _open(self, filename):
raise NotImplementedError
def read(self, size=-1):
return self._file.read(size)
def readable(self):
return self._file.readable()
def readline(self, size=-1):
return self._file.readline(size)
def readlines(self, hint=None):
return self._file.readlines(size)
def writelines(self, lines):
self._unsupported("writelines")
|