Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commitabde3ea

Browse files
committed
Update Commit.trailer_list to return tuples.
1 parent78424b5 commitabde3ea

File tree

2 files changed

+20
-15
lines changed

2 files changed

+20
-15
lines changed

‎git/objects/commit.py

Lines changed: 16 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -336,7 +336,7 @@ def stats(self) -> Stats:
336336
returnStats._list_from_string(self.repo,text)
337337

338338
@property
339-
deftrailers_list(self)->List[str]:
339+
deftrailers_list(self)->List[Tuple[str,str]]:
340340
"""Get the trailers of the message as a list
341341
342342
Git messages can contain trailer information that are similar to RFC 822
@@ -361,23 +361,29 @@ def trailers_list(self) -> List[str]:
361361
Returned list will look like this::
362362
363363
[
364-
"key1:value1.1",
365-
"key1:value1.2",
366-
"key2 :value 2 with inner spaces",
364+
("key1", "value1.1"),
365+
("key1", "value1.2"),
366+
("key2", "value 2 with inner spaces"),
367367
]
368368
369369
370370
:return:
371-
List containing whitespace stripped trailer information.
371+
List containingkey-value tuples ofwhitespace stripped trailer information.
372372
"""
373373
cmd= ["git","interpret-trailers","--parse"]
374374
proc:Git.AutoInterrupt=self.repo.git.execute(cmd,as_process=True,istream=PIPE)# type: ignore
375375
trailer:str=proc.communicate(str(self.message).encode())[0].decode()
376376
trailer=trailer.strip()
377-
iftrailer:
378-
return [t.strip()fortintrailer.split("\n")]
379377

380-
return []
378+
ifnottrailer:
379+
return []
380+
381+
trailer_list= []
382+
fortintrailer.split("\n"):
383+
key,val=t.split(":",1)
384+
trailer_list.append((key.strip(),val.strip()))
385+
386+
returntrailer_list
381387

382388
@property
383389
deftrailers_dict(self)->Dict[str,List[str]]:
@@ -416,9 +422,8 @@ def trailers_dict(self) -> Dict[str, List[str]]:
416422
Mapping trailer keys to a list of their corresponding values.
417423
"""
418424
d=defaultdict(list)
419-
fortrailerinself.trailers_list:
420-
key,value=trailer.split(":",1)
421-
d[key.strip()].append(value.strip())
425+
forkey,valinself.trailers_list:
426+
d[key].append(val)
422427
returndict(d)
423428

424429
@classmethod

‎test/test_commit.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -515,9 +515,9 @@ def test_trailers(self):
515515
commit=copy.copy(self.rorepo.commit("master"))
516516
commit.message=msg
517517
assertcommit.trailers_list== [
518-
f"{KEY_1}:{VALUE_1_1}",
519-
f"{KEY_2}:{VALUE_2}",
520-
f"{KEY_1}:{VALUE_1_2}",
518+
(KEY_1,VALUE_1_1),
519+
(KEY_2,VALUE_2),
520+
(KEY_1,VALUE_1_2),
521521
]
522522
assertcommit.trailers_dict== {
523523
KEY_1: [VALUE_1_1,VALUE_1_2],
@@ -543,7 +543,7 @@ def test_trailers(self):
543543
# check that only the last key value paragraph is evaluated
544544
commit=copy.copy(self.rorepo.commit("master"))
545545
commit.message=f"Subject\n\nMultiline\nBody\n\n{KEY_1}:{VALUE_1_1}\n\n{KEY_2}:{VALUE_2}\n"
546-
assertcommit.trailers_list== [f"{KEY_2}:{VALUE_2}"]
546+
assertcommit.trailers_list== [(KEY_2,VALUE_2)]
547547
assertcommit.trailers_dict== {KEY_2: [VALUE_2]}
548548

549549
deftest_commit_co_authors(self):

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp