本文整理匯總了Python中tarfile.GNU_FORMAT屬性的典型用法代碼示例。如果您正苦於以下問題:Python tarfile.GNU_FORMAT屬性的具體用法?Python tarfile.GNU_FORMAT怎麽用?Python tarfile.GNU_FORMAT使用的例子?那麽, 這裏精選的屬性代碼示例或許可以為您提供幫助。您也可以進一步了解該屬性所在類tarfile
的用法示例。
在下文中一共展示了tarfile.GNU_FORMAT屬性的9個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Python代碼示例。
示例1: _test
# 需要導入模塊: import tarfile [as 別名]
# 或者: from tarfile import GNU_FORMAT [as 別名]
def _test(self, name, link=None):
tarinfo = tarfile.TarInfo(name)
if link:
tarinfo.linkname = link
tarinfo.type = tarfile.LNKTYPE
tar = tarfile.open(tmpname, "w")
tar.format = tarfile.GNU_FORMAT
tar.addfile(tarinfo)
v1 = self._calc_size(name, link)
v2 = tar.offset
self.assertTrue(v1 == v2, "GNU longname/longlink creation failed")
tar.close()
tar = tarfile.open(tmpname)
member = tar.next()
self.assertIsNotNone(member,
"unable to read longname member")
self.assertEqual(tarinfo.name, member.name,
"unable to read longname member")
self.assertEqual(tarinfo.linkname, member.linkname,
"unable to read longname member")
示例2: tarbuilder
# 需要導入模塊: import tarfile [as 別名]
# 或者: from tarfile import GNU_FORMAT [as 別名]
def tarbuilder(asset_list=None):
"""Create a tar file from rendered assets.
Add each asset in ``asset_list`` to a tar file with the defined
path and permission. The assets need to have the rendered_bytes field
populated. Return a tarfile.TarFile.
:param hostname: the hostname the tar is destined for
:param balltype: the type of assets being included
:param asset_list: list of objects.BootActionAsset instances
"""
tarbytes = io.BytesIO()
tarball = tarfile.open(
mode='w:gz', fileobj=tarbytes, format=tarfile.GNU_FORMAT)
asset_list = asset_list or []
for a in asset_list:
fileobj = io.BytesIO(a.rendered_bytes)
tarasset = tarfile.TarInfo(name=a.path)
tarasset.size = len(a.rendered_bytes)
tarasset.mode = a.permissions if a.permissions else 0o600
tarasset.uid = 0
tarasset.gid = 0
tarball.addfile(tarasset, fileobj=fileobj)
tarball.close()
return tarbytes.getvalue()
示例3: tarbuilder
# 需要導入模塊: import tarfile [as 別名]
# 或者: from tarfile import GNU_FORMAT [as 別名]
def tarbuilder(asset_list=None):
"""Create a tar file from rendered assets.
Add each asset in ``asset_list`` to a tar file with the defined
path and permission. The assets need to have the rendered_bytes field
populated. Return a tarfile.TarFile.
:param hostname: the hostname the tar is destined for
:param balltype: the type of assets being included
:param asset_list: list of objects.BootActionAsset instances
"""
tarbytes = io.BytesIO()
tarball = tarfile.open(
mode='w:gz', fileobj=tarbytes, format=tarfile.GNU_FORMAT)
asset_list = [
a for a in asset_list if a.type != BootactionAssetType.PackageList
]
for a in asset_list:
fileobj = io.BytesIO(a.rendered_bytes)
tarasset = tarfile.TarInfo(name=a.path)
tarasset.size = len(a.rendered_bytes)
tarasset.mode = a.permissions if a.permissions else 0o600
tarasset.uid = 0
tarasset.gid = 0
tarball.addfile(tarasset, fileobj=fileobj)
tarball.close()
return tarbytes.getvalue()
示例4: _test
# 需要導入模塊: import tarfile [as 別名]
# 或者: from tarfile import GNU_FORMAT [as 別名]
def _test(self, name, link=None):
tarinfo = tarfile.TarInfo(name)
if link:
tarinfo.linkname = link
tarinfo.type = tarfile.LNKTYPE
tar = tarfile.open(tmpname, "w")
try:
tar.format = tarfile.GNU_FORMAT
tar.addfile(tarinfo)
v1 = self._calc_size(name, link)
v2 = tar.offset
self.assertTrue(v1 == v2, "GNU longname/longlink creation failed")
finally:
tar.close()
tar = tarfile.open(tmpname)
try:
member = tar.next()
self.assertIsNotNone(member,
"unable to read longname member")
self.assertEqual(tarinfo.name, member.name,
"unable to read longname member")
self.assertEqual(tarinfo.linkname, member.linkname,
"unable to read longname member")
finally:
tar.close()
示例5: test_gnu_limits
# 需要導入模塊: import tarfile [as 別名]
# 或者: from tarfile import GNU_FORMAT [as 別名]
def test_gnu_limits(self):
tarinfo = tarfile.TarInfo("123/" * 126 + "longname")
tarinfo.tobuf(tarfile.GNU_FORMAT)
tarinfo = tarfile.TarInfo("longlink")
tarinfo.linkname = "123/" * 126 + "longname"
tarinfo.tobuf(tarfile.GNU_FORMAT)
# uid >= 256 ** 7
tarinfo = tarfile.TarInfo("name")
tarinfo.uid = 04000000000000000000L
self.assertRaises(ValueError, tarinfo.tobuf, tarfile.GNU_FORMAT)
示例6: _test
# 需要導入模塊: import tarfile [as 別名]
# 或者: from tarfile import GNU_FORMAT [as 別名]
def _test(self, name, link=None):
tarinfo = tarfile.TarInfo(name)
if link:
tarinfo.linkname = link
tarinfo.type = tarfile.LNKTYPE
tar = tarfile.open(tmpname, "w")
try:
tar.format = tarfile.GNU_FORMAT
tar.addfile(tarinfo)
v1 = self._calc_size(name, link)
v2 = tar.offset
self.assertEqual(v1, v2, "GNU longname/longlink creation failed")
finally:
tar.close()
tar = tarfile.open(tmpname)
try:
member = tar.next()
self.assertIsNotNone(member,
"unable to read longname member")
self.assertEqual(tarinfo.name, member.name,
"unable to read longname member")
self.assertEqual(tarinfo.linkname, member.linkname,
"unable to read longname member")
finally:
tar.close()
示例7: test_gnu_limits
# 需要導入模塊: import tarfile [as 別名]
# 或者: from tarfile import GNU_FORMAT [as 別名]
def test_gnu_limits(self):
tarinfo = tarfile.TarInfo("123/" * 126 + "longname")
tarinfo.tobuf(tarfile.GNU_FORMAT)
tarinfo = tarfile.TarInfo("longlink")
tarinfo.linkname = "123/" * 126 + "longname"
tarinfo.tobuf(tarfile.GNU_FORMAT)
# uid >= 256 ** 7
tarinfo = tarfile.TarInfo("name")
tarinfo.uid = 0o4000000000000000000
self.assertRaises(ValueError, tarinfo.tobuf, tarfile.GNU_FORMAT)
示例8: test_number_field_limits
# 需要導入模塊: import tarfile [as 別名]
# 或者: from tarfile import GNU_FORMAT [as 別名]
def test_number_field_limits(self):
with self.assertRaises(ValueError):
tarfile.itn(-1, 8, tarfile.USTAR_FORMAT)
with self.assertRaises(ValueError):
tarfile.itn(0o10000000, 8, tarfile.USTAR_FORMAT)
with self.assertRaises(ValueError):
tarfile.itn(-0x10000000001, 6, tarfile.GNU_FORMAT)
with self.assertRaises(ValueError):
tarfile.itn(0x10000000000, 6, tarfile.GNU_FORMAT)
示例9: package_chaincode
# 需要導入模塊: import tarfile [as 別名]
# 或者: from tarfile import GNU_FORMAT [as 別名]
def package_chaincode(cc_path, cc_type=CC_TYPE_GOLANG):
"""Package all chaincode env into a tar.gz file
:param cc_path: path to the chaincode
:param cc_type: chaincode type (Default value = CC_TYPE_GOLANG)
:return: The chaincode pkg path or None
"""
_logger.debug('Packaging chaincode path={}, chaincode type={}'.format(
cc_path, cc_type))
if cc_type == CC_TYPE_GOLANG:
go_path = os.environ['GOPATH']
if not cc_path:
raise ValueError("Missing chaincode path parameter "
"in install proposal request")
if not go_path:
raise ValueError("No GOPATH env variable is found")
proj_path = go_path + '/src/' + cc_path
_logger.debug('Project path={}'.format(proj_path))
if not os.listdir(proj_path):
raise ValueError("No chaincode file found!")
tar_stream = io.BytesIO()
with zeroTimeContextManager():
dist = tarfile.open(fileobj=tar_stream,
mode='w|gz', format=tarfile.GNU_FORMAT)
for dir_path, _, file_names in os.walk(proj_path):
for filename in file_names:
file_path = os.path.join(dir_path, filename)
with open(file_path, mode='rb') as f:
arcname = os.path.relpath(file_path, go_path)
tarinfo = dist.gettarinfo(file_path, arcname)
tarinfo = zeroTarInfo(tarinfo)
dist.addfile(tarinfo, f)
dist.close()
tar_stream.seek(0)
code_content = tar_stream.read()
if code_content:
return code_content
else:
raise ValueError('No chaincode found')
else:
raise ValueError('Currently only support install GOLANG chaincode')