本文整理汇总了Python中dulwich.objects.ShaFile.from_raw_string方法的典型用法代码示例。如果您正苦于以下问题:Python ShaFile.from_raw_string方法的具体用法?Python ShaFile.from_raw_string怎么用?Python ShaFile.from_raw_string使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类dulwich.objects.ShaFile
的用法示例。
在下文中一共展示了ShaFile.from_raw_string方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: iterobjects
# 需要导入模块: from dulwich.objects import ShaFile [as 别名]
# 或者: from dulwich.objects.ShaFile import from_raw_string [as 别名]
def iterobjects(self, get_raw=None):
"""Iterate over the objects in this pack."""
if get_raw is None:
get_raw = self.get_raw
for offset, type, obj, crc32 in self.data.iterobjects():
assert isinstance(offset, int)
yield ShaFile.from_raw_string(
*self.data.resolve_object(offset, type, obj, get_raw))
示例2: iterentries
# 需要导入模块: from dulwich.objects import ShaFile [as 别名]
# 或者: from dulwich.objects.ShaFile import from_raw_string [as 别名]
def iterentries(self, ext_resolve_ref=None, progress=None):
"""Yield entries summarizing the contents of this pack.
:param ext_resolve_ref: Optional function to resolve base
objects (in case this is a thin pack)
:param progress: Progress function, called with current and
total object count.
This will yield tuples with (sha, offset, crc32)
"""
found = {}
postponed = defaultdict(list)
class Postpone(Exception):
"""Raised to postpone delta resolving."""
def get_ref_text(sha):
assert len(sha) == 20
if sha in found:
return self.get_object_at(found[sha])
if ext_resolve_ref:
try:
return ext_resolve_ref(sha)
except KeyError:
pass
raise Postpone, (sha, )
extra = []
todo = chain(self.iterobjects(progress=progress), extra)
for (offset, type, obj, crc32) in todo:
assert isinstance(offset, int)
assert isinstance(type, int)
assert isinstance(obj, tuple) or isinstance(obj, str)
try:
type, obj = self.resolve_object(offset, type, obj, get_ref_text)
except Postpone, (sha, ):
postponed[sha].append((offset, type, obj))
else:
shafile = ShaFile.from_raw_string(type, obj)
sha = shafile.sha().digest()
found[sha] = offset
yield sha, offset, crc32
extra.extend(postponed.get(sha, []))
示例3: __getitem__
# 需要导入模块: from dulwich.objects import ShaFile [as 别名]
# 或者: from dulwich.objects.ShaFile import from_raw_string [as 别名]
def __getitem__(self, sha):
"""Obtain an object by SHA1."""
type_num, uncomp = self.get_raw(sha)
return ShaFile.from_raw_string(type_num, uncomp)
示例4: __getitem__
# 需要导入模块: from dulwich.objects import ShaFile [as 别名]
# 或者: from dulwich.objects.ShaFile import from_raw_string [as 别名]
def __getitem__(self, sha1):
"""Retrieve the specified SHA1."""
type, uncomp = self.get_raw(sha1)
return ShaFile.from_raw_string(type, uncomp)
示例5: store
# 需要导入模块: from dulwich.objects import ShaFile [as 别名]
# 或者: from dulwich.objects.ShaFile import from_raw_string [as 别名]
def store(self, istream):
obj = ShaFile.from_raw_string(type_to_type_id_map[istream.type], istream.read())
self._dw_repo.object_store.add_object(obj)
istream.binsha = obj.sha().digest()
return istream