summaryrefslogtreecommitdiff
path: root/git/index
diff options
context:
space:
mode:
authorMarcel <marcel.beining@gmail.com>2019-09-19 10:04:09 +0200
committerSebastian Thiel <sebastian.thiel@icloud.com>2019-10-15 13:27:48 +0200
commit1fa1ce2b7dcf7f1643bb494b71b9857cbfb60090 (patch)
tree835f09f5212c0219d7f7a1c674e9fb42e3da5d48 /git/index
parent3face9018b70f1db82101bd5173c01e4d8d2b3bf (diff)
downloadgitpython-1fa1ce2b7dcf7f1643bb494b71b9857cbfb60090.tar.gz
fixed code repetition
Diffstat (limited to 'git/index')
-rw-r--r--git/index/base.py59
1 files changed, 29 insertions, 30 deletions
diff --git a/git/index/base.py b/git/index/base.py
index c34fe78a..9ca663f4 100644
--- a/git/index/base.py
+++ b/git/index/base.py
@@ -569,25 +569,23 @@ class IndexFile(LazyMixin, diff.Diffable, Serializable):
""" Split the items into two lists of path strings and BaseEntries. """
paths = []
entries = []
-
- if isinstance(items, string_types):
- paths.append(self._to_relative_path(items))
- elif isinstance(items, (Blob, Submodule)):
- entries.append(BaseIndexEntry.from_blob(items))
- elif isinstance(items, BaseIndexEntry):
- entries.append(items)
- else:
- for item in items:
- if isinstance(item, string_types):
- paths.append(self._to_relative_path(item))
- elif isinstance(item, (Blob, Submodule)):
- entries.append(BaseIndexEntry.from_blob(item))
- elif isinstance(item, BaseIndexEntry):
- entries.append(item)
- else:
- raise TypeError("Invalid Type: %r" % item)
+ # check if is iterable, else put in list
+ try:
+ test_item = iter(items)
+ except TypeError:
+ items = [items]
+
+ for item in items:
+ if isinstance(item, string_types):
+ paths.append(self._to_relative_path(item))
+ elif isinstance(item, (Blob, Submodule)):
+ entries.append(BaseIndexEntry.from_blob(item))
+ elif isinstance(item, BaseIndexEntry):
+ entries.append(item)
+ else:
+ raise TypeError("Invalid Type: %r" % item)
# END for each item
- return (paths, entries)
+ return paths, entries
def _store_path(self, filepath, fprogress):
"""Store file at filepath in the database and return the base index entry
@@ -808,18 +806,19 @@ class IndexFile(LazyMixin, diff.Diffable, Serializable):
"""Returns a list of repo-relative paths from the given items which
may be absolute or relative paths, entries or blobs"""
paths = []
- if isinstance(items, (BaseIndexEntry, (Blob, Submodule))):
- paths.append(self._to_relative_path(items.path))
- elif isinstance(items, string_types):
- paths.append(self._to_relative_path(items))
- else:
- for item in items:
- if isinstance(item, (BaseIndexEntry, (Blob, Submodule))):
- paths.append(self._to_relative_path(item.path))
- elif isinstance(item, string_types):
- paths.append(self._to_relative_path(item))
- else:
- raise TypeError("Invalid item type: %r" % item)
+ # check if is iterable, else put in list
+ try:
+ test_item = iter(items)
+ except TypeError:
+ items = [items]
+
+ for item in items:
+ if isinstance(item, (BaseIndexEntry, (Blob, Submodule))):
+ paths.append(self._to_relative_path(item.path))
+ elif isinstance(item, string_types):
+ paths.append(self._to_relative_path(item))
+ else:
+ raise TypeError("Invalid item type: %r" % item)
# END for each item
return paths