{5} Assigned, Active Tickets by Owner (Full Description) (4 matches)

List tickets assigned, group by ticket owner. This report demonstrates the use of full-row display.

schwa (4 matches)

Ticket Summary Component Milestone Type Created
Description
#84 ftputil.sync.Syncer should check for local directory Library defect 2014-07-15

See sync, line 159:

http://hg.sschwarzer.net/ftputil/file/963488f28417/ftputil/sync.py#l159

When syncing two directories of source contains invalid path syncer should rise exception. Now it just ends silently.


#108 Broken symlinks generate needless lstat calls Library 4.0.0 defect 2017-01-27

Hi,

I'm trying to walk() a directory on an FTP site that contains a large amount of broken symlinks to files in a different directory. The site in question is:

ftp://anonymous:anonymous@ftp.ebi.ac.uk/pub/databases/embl/new/

When walk('/pub/databases/embl/new/') runs, it sees a symlink to e.g. '../tsa/tsa_gfcx01_inv.dat.gz', and tries to follow it (even though followlinks is False). This starts an lstat of '/pub/databases/embl/tsa/' and the result of the directory listing is cached. If finds the file is missing and discards it.

However, when walk() hits the next broken symlink, it finds there's a cache miss for the file and does a new lstat of '/pub/databases/embl/tsa/' even though we just did it some milliseconds ago. This is then repeated for the hundreds of broken symlinks.

I have found two possible solutions:

1) Use the cache to detect that the directory has already been visited, and interpret a cache miss on the file as a broken link.

2) Change the semantics of walk(dir, followlinks=False) to not just discard directory symlinks, but also file symlinks. This is a small change in 'host.py':

--- host.py.orig	2017-01-27 16:20:04.633080980 +0100
+++ host.py	2017-01-27 16:20:22.027566063 +0100
@@ -905,7 +905,10 @@
             return
         dirs, nondirs = [], []
         for name in names:
-            if self.path.isdir(self.path.join(top, name)):
+            path = self.path.join(top, name)
+            if self.path.islink(path) and not followlinks:
+                continue
+            if self.path.isdir(path):
                 dirs.append(name)
             else:
                 nondirs.append(name)

#6 Add an FTP mirror script Other enhancement 2006-02-01

Despite there are many syncing/mirroring scripts for FTP servers out there, it might be worthwhile to bundle such a script with ftputil to:

  • provide a working example of ftputil code
  • learn more about ftputil usage and by that find out about functionality that should be added
  • serve as a benchmark for measurements before and after implementation regarding issue #3

I classify this issue as "minor" because the mirror script isn't that important for the functioning of ftputil.


#15 Add support for FXP (FTP to FTP copy) Library enhancement 2006-05-13

I think it extremely useful for ftp admins, but neither ftplib nor ftputil support it.

Of course, download from one host then upload to another is a workaround, but it's really not a efficient way.


Note: See TracReports for help on using and creating reports.