当前位置: 首页>>代码示例>>Python>>正文


Python Jagare.show方法代码示例

本文整理汇总了Python中ellen.repo.Jagare.show方法的典型用法代码示例。如果您正苦于以下问题:Python Jagare.show方法的具体用法?Python Jagare.show怎么用?Python Jagare.show使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在ellen.repo.Jagare的用法示例。


在下文中一共展示了Jagare.show方法的10个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。

示例1: test_show_blob

# 需要导入模块: from ellen.repo import Jagare [as 别名]
# 或者: from ellen.repo.Jagare import show [as 别名]
 def test_show_blob(self):
     repo = Jagare(self.path)
     ls = repo.ls_tree('master')
     blobs = [item['sha'] for item in ls if item['type'] == 'blob']
     for sha in blobs:
         ret = repo.show(sha)
         assert ret['type'] == 'blob'
开发者ID:CMGS,项目名称:ellen,代码行数:9,代码来源:test_show.py

示例2: show

# 需要导入模块: from ellen.repo import Jagare [as 别名]
# 或者: from ellen.repo.Jagare import show [as 别名]
 def show(self, path, ref):
     try:
         repo = Jagare(path)
         obj_dict = repo.show(ref)
         ret = get_gitobject_from_show(obj_dict)
         return ret
     except Exception as e:
         raise ServiceUnavailable(repr(e))
开发者ID:tclh123,项目名称:jagare-rpc,代码行数:10,代码来源:jagare_handler.py

示例3: test_show_tag

# 需要导入模块: from ellen.repo import Jagare [as 别名]
# 或者: from ellen.repo.Jagare import show [as 别名]
    def test_show_tag(self):
        repo = Jagare(self.path)
        tag_name = repo.tags[0]
        tag_ref = repo.lookup_reference('refs/tags/%s' % tag_name)
        sha = tag_ref.target.hex

        type_ = repo.resolve_type(sha)
        assert type_ == 'tag'

        ret = repo.show(sha)
        assert ret['name'] == BARE_REPO_TAGS[0]
开发者ID:CMGS,项目名称:ellen,代码行数:13,代码来源:test_show.py

示例4: test_show_commit

# 需要导入模块: from ellen.repo import Jagare [as 别名]
# 或者: from ellen.repo.Jagare import show [as 别名]
 def test_show_commit(self):
     repo = Jagare(self.path)
     ret = repo.show('master')
     assert ret
开发者ID:CMGS,项目名称:ellen,代码行数:6,代码来源:test_show.py

示例5: GistRepo

# 需要导入模块: from ellen.repo import Jagare [as 别名]
# 或者: from ellen.repo.Jagare import show [as 别名]
class GistRepo(Repo):
    provided_features = []

    # TODO: move to utils
    PREFIX = 'gistfile'

    def __init__(self, gist):
        self.type = "gist"
        self.gist = gist
        self.name = gist.name
        self.path = gist.repo_path
        self.repo = Jagare(gist.repo_path)

    @classmethod
    def init(cls, gist):
        Jagare.init(gist.repo_path, bare=True)

    def clone(self, gist):
        super(GistRepo, self).clone(gist.repo_path, bare=True)

    def get_files(self):
        files = []
        if self.empty:
            return files
        tree = self.repo.ls_tree('HEAD')
        for f in tree:
            files.append([f['sha'], f['name']])
        return files

    # TODO: move to utils
    def check_filename(self, fn):
        for c in (' ', '<', '>', '|', ';', ':', '&', '`', "'"):
            fn = fn.replace(c, '\%s' % c)
        fn = fn.replace('/', '')
        return fn

    def commit_all_files(self, names, contents, oids, author):
        data = []
        for i, (name, content, oid) in enumerate(zip(names, contents, oids),
                                                 start=1):
            if not name and not content:
                continue
            if not name:
                name = self.PREFIX + str(i)
            name = self.check_filename(name)
            data.append([name, content, 'insert'])
        files = self.get_files()
        for sha, name in files:
            if name in names:
                continue
            data.append([name, '', 'remove'])
        self.repo.commit_file(branch='master',
                              parent='master',
                              author_name=author.name,
                              author_email=author.email,
                              message=' ',
                              reflog=' ',
                              data=data)

    def is_commit(self, ref):
        commit = self.repo.show(ref)
        if commit:
            return True
开发者ID:4T-Shirt,项目名称:code,代码行数:65,代码来源:repo.py

示例6: Repo

# 需要导入模块: from ellen.repo import Jagare [as 别名]
# 或者: from ellen.repo.Jagare import show [as 别名]
class Repo(object):
    provided_features = []

    def __init__(self, path):
        self.type = "repo"
        self.path = path
        self.repo = Jagare(self.path)

    def provide(self, name):
        '''检查是否提供某功能,即是否提供某接口'''
        return name in self.provided_features

    @property
    def is_empty(self):
        return self.repo.empty

    @property
    def default_branch(self):
        branch = None
        head = self.repo.head
        if head:
            branch = head.name.rpartition('/')[-1]
        return branch

    def update_default_branch(self, name):
        branches = self.repo.branches
        if name not in branches:
            return None
        self.repo.update_head(name)

    def clone(self, path, bare=None, branch=None, mirror=None, env=None):
        self.repo.clone(path,
                        bare=bare, branch=branch,
                        mirror=mirror, env=env)

    def archive(self, name):
        content = self.repo.archive(name)
        outbuffer = StringIO()
        zipfile = gzip.GzipFile(mode='wb', compresslevel=6, fileobj=outbuffer)
        zipfile.writelines(content)
        zipfile.close()
        out = outbuffer.getvalue()
        return out

    def get_submodule(self, ref, path):
        path = path.strip()
        gitmodules = self.repo.show("%s:%s" % (ref, '.gitmodules'))
        if not gitmodules:
            return None
        submodules_lines = gitmodules["data"].split('\n')
        modules_str = '\n'.join([line.strip() for line in submodules_lines])
        config = ConfigParser.RawConfigParser()
        config.readfp(StringIO(modules_str))
        for section in config.sections():
            if config.has_option(section, 'path') and config.get(section, 'path')==path:
                url = config.get(section, 'url')
                return Submodule(url, path)
        return None


    def get_file(self, ref, path):
        blob = self.repo.show("%s:%s" % (ref, path))
        if not blob:
            return None
        if blob['type'] != 'blob':
            return None
        # TODO: validate blob
        return Blob(self, blob)

    def get_file_by_lines(self, ref, path):
        blob = self.get_file(ref, path)
        # TODO: blob.size < xxx
        if not blob or blob.binary:
            return None
        if not blob.data:
            return []
        src = blob.data
        return src.splitlines()

    def get_file_n_lines(self, ref, path):
        lines = self.get_file_by_lines(ref, path)
        if lines:
            return len(lines)
        return 0

    def get_commits(self, *w, **kw):
        commits = self.repo.rev_list(*w, **kw)
        # TODO: validate commits
        return [Commit(self, commit) for commit in commits]

    def get_raw_diff(self, ref, from_ref=None, **kw):
        ''' get Jagare formated diff dict '''
        return self.repo.diff(ref, from_ref=from_ref, **kw)

    def get_diff(self, ref=None, from_ref=None,
                 linecomments=[], raw_diff=None, **kw):
        ''' get ngit wrapped diff object '''
        _raw_diff = None
        if raw_diff:
            _raw_diff = raw_diff
#.........这里部分代码省略.........
开发者ID:4T-Shirt,项目名称:code,代码行数:103,代码来源:repo.py

示例7: ProjectRepo

# 需要导入模块: from ellen.repo import Jagare [as 别名]
# 或者: from ellen.repo.Jagare import show [as 别名]
class ProjectRepo(Repo):
    provided_features = ['project', 'fulltext', 'moreline',
                         'side_by_side', 'patch_actions']

    def __init__(self, project, pull=None):
        self.type = "project"
        self.pull = pull
        self.project = project
        self.project_name = project.name
        self.name = project.name
        self.path = project.repo_path
        self.repo = Jagare(self.path)

    # TODO: url
    @property
    def api_url(self):
        return ''

    @property
    def context_url(self):
        return 'moreline'

    @property
    def fulltext_url(self):
        return 'fulltext'

    @property
    def branches(self):
        return self.repo.branches

    @property
    def tags(self):
        return self.repo.tags

    def get_tree(self, ref, path=None, recursive=False):
        tree = self.repo.ls_tree(ref, path=path, recursive=recursive)
        if not tree:
            return None
        return Tree(self, tree)

    def get_file_by_ref(self, ref):
        blob = self.repo.show(ref)
        if not blob:
            return None
        return blob['data']

    def get_contexts(self, ref, path, line_start, line_end):
        def fix_line_index(index, max_i, min_i=0):
            i = index - 1
            i = max(i, min_i)
            i = min(i, max_i)
            return i
        lines = self.get_file_by_lines(ref, path)
        if not lines:
            return None
        n = len(lines)
        start = fix_line_index(line_start, n)
        end = fix_line_index(line_end, n)
        return lines[start:end]

    def blame_file(self, *w, **kw):
        blame = self.repo.blame(*w, **kw)
        return blame

    def get_renamed_files(self, ref, path=None):
        return self.repo.detect_renamed(ref)

    def commit_file(self, *w, **kw):
        return self.repo.commit_file(*w, **kw)

    def get_temp_branch(self):
        commit = self.get_commit('HEAD')
        return 'patch_tmp' + time.strftime('%Y%m%d%H%M%S-') + commit.sha[10]

    def get_patch_file(self, ref, from_ref=None):
        return self.repo.format_patch(ref, from_ref)

    def get_diff_file(self, ref, from_ref=None):
        _raw_diff = self.get_raw_diff(ref, from_ref)
        if not _raw_diff:
            return ''
        return _raw_diff['diff'].patch

    def get_last_update_timestamp(self):
        commit = self.get_last_commit('HEAD')
        if not commit:
            return 0
        return int(commit.author_timestamp)

    @classmethod
    def init(cls, path, work_path=None, bare=True):
        return Jagare.init(path, work_path=work_path, bare=bare)

    @classmethod
    def mirror(cls, url, path, env=None):
        Jagare.mirror(url, path, env=env)

    def add_remote(self, name, url):
        return self.repo.add_remote(name, url)

#.........这里部分代码省略.........
开发者ID:4T-Shirt,项目名称:code,代码行数:103,代码来源:repo.py

示例8: GistRepo

# 需要导入模块: from ellen.repo import Jagare [as 别名]
# 或者: from ellen.repo.Jagare import show [as 别名]
class GistRepo(Repo):
    provided_features = []

    # TODO: move to utils
    PREFIX = "gistfile"

    def __init__(self, gist):
        self.type = "gist"
        self.gist = gist
        self.name = gist.name
        self.path = gist.repo_path
        self.repo = Jagare(gist.repo_path)

    @classmethod
    def init(cls, gist):
        Jagare.init(gist.repo_path, bare=True)

    def clone(self, gist):
        super(GistRepo, self).clone(gist.repo_path, bare=True)

    def get_files(self):
        files = []
        if self.empty:
            return files
        tree = self.repo.ls_tree("HEAD")
        for f in tree:
            files.append([f["sha"], f["name"]])
        return files

    # TODO: move to utils
    def check_filename(self, fn):
        for c in (" ", "<", ">", "|", ";", ":", "&", "`", "'"):
            fn = fn.replace(c, "\%s" % c)
        fn = fn.replace("/", "")
        return fn

    def commit_all_files(self, names, contents, oids, author):
        data = []
        for i, (name, content, oid) in enumerate(zip(names, contents, oids), start=1):
            if not name and not content:
                continue
            if not name:
                name = self.PREFIX + str(i)
            name = self.check_filename(name)
            data.append([name, content, "insert"])
        files = self.get_files()
        for sha, name in files:
            if name in names:
                continue
            data.append([name, "", "remove"])
        self.repo.commit_file(
            branch="master",
            parent="master",
            author_name=author.name,
            author_email=author.email,
            message=" ",
            reflog=" ",
            data=data,
        )

    def is_commit(self, ref):
        commit = self.repo.show(ref)
        if commit:
            return True
开发者ID:jhonHouse-L,项目名称:code,代码行数:66,代码来源:repo.py

示例9: Repo

# 需要导入模块: from ellen.repo import Jagare [as 别名]
# 或者: from ellen.repo.Jagare import show [as 别名]
class Repo(object):
    provided_features = []

    def __init__(self, path):
        self.type = "repo"
        self.path = path
        self.repo = Jagare(self.path)

    def provide(self, name):
        '''检查是否提供某功能,即是否提供某接口'''
        return name in self.provided_features

    @property
    def empty(self):
        return self.is_empty

    @property
    def is_empty(self):
        return self.repo.empty

    @property
    def default_branch(self):
        branch = ''
        head = self.repo.head
        if head:
            branch = head.name[REFS_HEADS_PREFIX_LENGTH:]
        return branch

    def update_default_branch(self, name):
        branches = self.repo.branches
        if name not in branches:
            return None
        self.repo.update_head(name)

    def clone(self, path, bare=None, branch=None,
              mirror=None, env=None, shared=None):
        self.repo.clone(path,
                        bare=bare, branch=branch,
                        mirror=mirror, env=env)
        # shared=shared) why?

    def archive(self, name, ref='master', ext='tar.gz'):
        content = self.repo.archive(name, ref=ref)
        if ext == 'tar':
            return content
        outbuffer = StringIO()
        zipfile = gzip.GzipFile(mode='wb', compresslevel=6, fileobj=outbuffer)
        zipfile.write(content)
        zipfile.close()
        out = outbuffer.getvalue()
        return out

    def get_submodule(self, ref, path):
        path = path.strip()
        gitmodules = self.repo.show("%s:%s" % (ref, '.gitmodules'))
        if not gitmodules:
            return None
        submodules_lines = gitmodules["data"].split('\n')
        modules_str = '\n'.join([line.strip() for line in submodules_lines])
        config = ConfigParser.RawConfigParser()
        config.readfp(StringIO(modules_str))
        for section in config.sections():
            if config.has_option(section, 'path') and config.get(
                    section, 'path') == path:
                url = config.get(section, 'url')
                return Submodule(url, path)
        return None

    def get_file(self, ref, path):
        blob = self.repo.show("%s:%s" % (ref, path))
        if not blob:
            return None
        if blob['type'] != 'blob':
            return None
        # TODO: validate blob
        return Blob(self, blob)

    def get_file_by_lines(self, ref, path):
        blob = self.get_file(ref, path)
        # TODO: blob.size < xxx
        if not blob or blob.binary:
            return None
        if not blob.data:
            return []
        src = blob.data
        return src.splitlines()

    def get_file_n_lines(self, ref, path):
        lines = self.get_file_by_lines(ref, path)
        if lines:
            return len(lines)
        return 0

    def get_commits(self, to_ref, from_ref=None, path=None, skip=0,
                    max_count=0, author=None, query=None, first_parent=None,
                    since=0, no_merges=None):
        commits = self.repo.rev_list(to_ref=to_ref, from_ref=from_ref,
                                     path=path, skip=skip,
                                     max_count=max_count, author=author,
                                     query=query, first_parent=first_parent,
#.........这里部分代码省略.........
开发者ID:000fan000,项目名称:code,代码行数:103,代码来源:repo.py

示例10: ProjectRepo

# 需要导入模块: from ellen.repo import Jagare [as 别名]
# 或者: from ellen.repo.Jagare import show [as 别名]
class ProjectRepo(Repo):
    provided_features = ["project", "fulltext", "moreline", "side_by_side", "patch_actions"]

    def __init__(self, project, pull=None):
        self.type = "project"
        self.pull = pull
        self.project = project
        self.project_name = project.name
        self.name = project.name
        self.path = project.repo_path
        self.repo = Jagare(self.path)

    # TODO: url
    @property
    def api_url(self):
        return ""

    @property
    def context_url(self):
        return "moreline"

    @property
    def fulltext_url(self):
        return "fulltext"

    @property
    def branches(self):
        return self.repo.branches

    @property
    def tags(self):
        return self.repo.tags

    def get_tree(self, ref, path=None, recursive=False, with_commit=False, recursive_with_tree_node=False):
        tree = self.repo.ls_tree(ref, path=path, recursive=recursive, with_commit=with_commit)
        # recursive_with_tree_node=recursive_with_tree_node)
        if not tree:
            return None
        return Tree(self, tree)

    def get_file_by_ref(self, ref):
        blob = self.repo.show(ref)
        if not blob:
            return None
        return blob["data"]

    def get_contexts(self, ref, path, line_start, line_end):
        def fix_line_index(index, max_i, min_i=0):
            i = index - 1
            i = max(i, min_i)
            i = min(i, max_i)
            return i

        lines = self.get_file_by_lines(ref, path)
        if not lines:
            return None
        n = len(lines)
        start = fix_line_index(line_start, n)
        end = fix_line_index(line_end, n)
        return lines[start:end]

    def blame_file(self, *w, **kw):
        blame = self.repo.blame(*w, **kw)
        if not blame:
            return None
        return Blame(self, blame)

    def get_renamed_files(self, ref, path=None):
        return self.repo.detect_renamed(ref)

    def commit_file(self, *w, **kw):
        return self.repo.commit_file(*w, **kw)

    def get_temp_branch(self):
        commit = self.get_commit("HEAD")
        return "patch_tmp" + time.strftime("%Y%m%d%H%M%S-") + commit.sha[10]

    def get_patch_file(self, ref, from_ref=None):
        return self.repo.format_patch(ref, from_ref)

    def get_diff_file(self, ref, from_ref=None):
        _raw_diff = self.get_raw_diff(ref, from_ref)
        if not _raw_diff:
            return ""
        patch = _raw_diff["diff"].patch
        if not patch:
            return ""
        return patch

    @classmethod
    def init(cls, path, work_path=None, bare=True):
        return Jagare.init(path, work_path=work_path, bare=bare)

    @classmethod
    def mirror(cls, url, path, env=None):
        Jagare.mirror(url, path, env=env)

    def add_remote(self, name, url):
        return self.repo.add_remote(name, url)

#.........这里部分代码省略.........
开发者ID:mozillazg,项目名称:code,代码行数:103,代码来源:repo.py


注:本文中的ellen.repo.Jagare.show方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。