diff options
author | Marcel <marcel.beining@gmail.com> | 2019-09-19 10:04:09 +0200 |
---|---|---|
committer | Sebastian Thiel <sebastian.thiel@icloud.com> | 2019-10-15 13:27:48 +0200 |
commit | 1fa1ce2b7dcf7f1643bb494b71b9857cbfb60090 (patch) | |
tree | 835f09f5212c0219d7f7a1c674e9fb42e3da5d48 /git/index | |
parent | 3face9018b70f1db82101bd5173c01e4d8d2b3bf (diff) | |
download | gitpython-1fa1ce2b7dcf7f1643bb494b71b9857cbfb60090.tar.gz |
fixed code repetition
Diffstat (limited to 'git/index')
-rw-r--r-- | git/index/base.py | 59 |
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 |