in datasets/noaa/pipelines/_images/run_csv_transform_kub/csv_transform.py [0:0]
def ftp_list_of_files(host: str, cwd: str, filter_expr: str = "") -> typing.List[str]:
try_count = 0
while True:
try:
ftp = ftplib.FTP(host)
ftp.login()
ftp.cwd(cwd)
file_list = ftp.nlst()
if filter != "":
file_list = list(
filter(lambda x: str(x).find(filter_expr) >= 0, file_list)
)
ftp.quit()
return file_list
except TimeoutError as e:
try_count += 1
if try_count > 3:
raise e
else:
logging.info(f"{e}, Retrying ...")
time.sleep(try_count * 30)