Skip to content

Commit

Permalink
Merge branch 'main' into open_function
Browse files Browse the repository at this point in the history
  • Loading branch information
jan-janssen committed May 12, 2023
2 parents ac142ac + ceb76b2 commit 4db8a58
Showing 1 changed file with 26 additions and 26 deletions.
52 changes: 26 additions & 26 deletions pyfileindex/pyfileindex.py
Original file line number Diff line number Diff line change
Expand Up @@ -64,6 +64,32 @@ def open(self, path):
path=abs_path, filter_function=self._filter_function, debug=self._debug
)

def update(self):
"""
Update file index
"""
df_new, files_changed_lst, path_deleted_lst = self._get_changes_quick()
if self._debug:
print("Changes: ", df_new.path.values, files_changed_lst, path_deleted_lst)
if len(path_deleted_lst) != 0:
self._df = self._df[~self._df.path.isin(path_deleted_lst)]
if len(files_changed_lst) != 0:
df_updated = self._create_df_from_lst(
[self._get_lst_entry_from_path(entry=f) for f in files_changed_lst]
)
self._df = self._df[~self._df.path.isin(df_updated.path)]
self._df = (
pandas.concat([self._df, df_updated])
.drop_duplicates()
.reset_index(drop=True)
)
if len(df_new) != 0:
self._df = (
pandas.concat([self._df, df_new])
.drop_duplicates()
.reset_index(drop=True)
)

def _init_df_lst(self, path_lst, df=None, include_root=True):
"""
Internal function to build the pandas file index from a list of directories
Expand Down Expand Up @@ -147,32 +173,6 @@ def _get_changes_quick(self):
)
return df_new, files_changed_lst, path_deleted_lst

def update(self):
"""
Update file index
"""
df_new, files_changed_lst, path_deleted_lst = self._get_changes_quick()
if self._debug:
print("Changes: ", df_new.path.values, files_changed_lst, path_deleted_lst)
if len(path_deleted_lst) != 0:
self._df = self._df[~self._df.path.isin(path_deleted_lst)]
if len(files_changed_lst) != 0:
df_updated = self._create_df_from_lst(
[self._get_lst_entry_from_path(entry=f) for f in files_changed_lst]
)
self._df = self._df[~self._df.path.isin(df_updated.path)]
self._df = (
pandas.concat([self._df, df_updated])
.drop_duplicates()
.reset_index(drop=True)
)
if len(df_new) != 0:
self._df = (
pandas.concat([self._df, df_new])
.drop_duplicates()
.reset_index(drop=True)
)

def _get_lst_entry_from_path(self, entry):
"""
Internal function to generate file index entry from file system path
Expand Down

0 comments on commit 4db8a58

Please sign in to comment.