Skip to content

Add missing docstrings for TarInfo objects #12555

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 3 commits into from
Mar 27, 2019
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions Lib/pydoc.py
Original file line number Diff line number Diff line change
Expand Up @@ -997,8 +997,8 @@ def docdata(self, object, name=None, mod=None, cl=None):

if name:
push('<dl><dt><strong>%s</strong></dt>\n' % name)
if object.__doc__ is not None:
doc = self.markup(getdoc(object), self.preformat)
doc = self.markup(getdoc(object), self.preformat)
if doc:
push('<dd><tt>%s</tt></dd>\n' % doc)
push('</dl>\n')

Expand Down
53 changes: 46 additions & 7 deletions Lib/tarfile.py
Original file line number Diff line number Diff line change
Expand Up @@ -717,11 +717,32 @@ class TarInfo(object):
usually created internally.
"""

__slots__ = ("name", "mode", "uid", "gid", "size", "mtime",
"chksum", "type", "linkname", "uname", "gname",
"devmajor", "devminor",
"offset", "offset_data", "pax_headers", "sparse",
"tarfile", "_sparse_structs", "_link_target")
__slots__ = dict(
name = 'Name of the archive member.',
mode = 'Permission bits.',
uid = 'User ID of the user who originally stored this member.',
gid = 'Group ID of the user who originally stored this member.',
size = 'Size in bytes.',
mtime = 'Time of last modification.',
chksum = 'Header checksum.',
type = ('File type. type is usually one of these constants: '
'REGTYPE, AREGTYPE, LNKTYPE, SYMTYPE, DIRTYPE, FIFOTYPE, '
'CONTTYPE, CHRTYPE, BLKTYPE, GNUTYPE_SPARSE.'),
linkname = ('Name of the target file name, which is only present '
'in TarInfo objects of type LNKTYPE and SYMTYPE.'),
uname = 'User name.',
gname = 'Group name.',
devmajor = 'Device major number.',
devminor = 'Device minor number.',
offset = 'The tar header starts here.',
offset_data = "The file's data starts here.",
pax_headers = ('A dictionary containing key-value pairs of an '
'associated pax extended header.'),
sparse = 'Sparse member information.',
tarfile = None,
_sparse_structs = None,
_link_target = None,
)

def __init__(self, name=""):
"""Construct a TarInfo object. name is the optional name
Expand All @@ -747,10 +768,9 @@ def __init__(self, name=""):
self.sparse = None # sparse member information
self.pax_headers = {} # pax header information

# In pax headers the "name" and "linkname" field are called
# "path" and "linkpath".
@property
def path(self):
'In pax headers, "name" is called "path".'
return self.name

@path.setter
Expand All @@ -759,6 +779,7 @@ def path(self, name):

@property
def linkpath(self):
'In pax headers, "linkname" is called "linkpath".'
return self.linkname

@linkpath.setter
Expand Down Expand Up @@ -1350,24 +1371,42 @@ def _block(self, count):
return blocks * BLOCKSIZE

def isreg(self):
'Return True if the Tarinfo object is a regular file.'
return self.type in REGULAR_TYPES

def isfile(self):
'Return True if the Tarinfo object is a regular file.'
return self.isreg()

def isdir(self):
'Return True if it is a directory.'
return self.type == DIRTYPE

def issym(self):
'Return True if it is a symbolic link.'
return self.type == SYMTYPE

def islnk(self):
'Return True if it is a hard link.'
return self.type == LNKTYPE

def ischr(self):
'Return True if it is a character device.'
return self.type == CHRTYPE

def isblk(self):
'Return True if it is a block device.'
return self.type == BLKTYPE

def isfifo(self):
'Return True if it is a FIFO.'
return self.type == FIFOTYPE

def issparse(self):
return self.sparse is not None

def isdev(self):
'Return True if it is one of character device, block device or FIFO.'
return self.type in (CHRTYPE, BLKTYPE, FIFOTYPE)
# class TarInfo

Expand Down