Martin Panter added the comment:
If you read the documentation it is clear that gettarfile() requires an OS
file, so won’t work with an internal Python-only file object. Maybe the
documentation could be tweaked, but I don’t think the gettarfile()
implementation should be changed. To me the whole point of it is to call
fstat() on the file and fill in the TarInfo attributes appropriately.
Instead, perhaps an enhancement could be made that allowed something like this:
metadata = TarInfo.make_file('helloworld.txt', len(b))
tarFileObj.addfile(metadata, io.BytesIO(b))
The corresponding TarInfo class could grow new presets looking something like:
class TarInfo:
@classmethod
def make_file(cls, name, size): # Name and size are mandatory
self = cls(name)
self.type = REGTYPE
self.size = size
self.mtime = None # Force addfile() to set it to some default
time.time() value
self.mode = 0o644
return self
@classmethod
def make_executable(cls, name, size):
...
self.mode = 0o755
...
@classmethod
def make_directory(cls, name):
...
self.type = DIRTYPE
...
def make_hard_link(cls, name, target)
def make_symlink(cls, name, target)
def make_block_device(cls, name, major, minor) # Set undocumented
attributes
def make_char_device(cls, name, major, minor)
----------
nosy: +vadmium
_______________________________________
Python tracker <[email protected]>
<http://bugs.python.org/issue22208>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe:
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com