/usr/share/pyftpd/conf_speed.py is in pyftpd 0.8.5+nmu1.
This file is owned by root:root, with mode 0o755.
The actual contents of the file can be viewed below.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 | #! /usr/bin/python
from utils import isdir, defaultdir
speedlist = []
try:
    from speed_config import *
except:
    pass
from Tkinter import *
import string, pprint, os, StringIO
import tkSimpleDialog, tkMessageBox, tkFileDialog, FileDialog
import TkinterConfigList
config_file = "speed_config.py"
class App(TkinterConfigList.App):
    def askval(self, initval=("anonymous", 0., 0.)):
        "ask for the user and path"
        u = tkSimpleDialog.askstring("username", "username", initialvalue=initval[0])
        if u == None:
            return None
        rs = tkSimpleDialog.askfloat("RETR limit [B/s]", "RETR limit [B/s].", initialvalue=initval[1])
        if rs == None:
            return None
        ss = tkSimpleDialog.askfloat("STOR limit [B/s]", "STOR limit [B/s].", initialvalue=initval[2])
        if ss == None:
            return None
        return u, rs, ss
    def stringify(self, tup):
        return "%s : %.5g, %.5g" % tup
    def prepare_for_save(self):
        stream = StringIO.StringIO()
        pprint.pprint(self.list, stream)
        s = stream.getvalue()
        stream.close()
        return "speedlist = "+s+"\n"
        
TkinterConfigList.go(Frame=App, title="configure speed limit", list=speedlist,
                default_config_file=config_file, hf="speed_README.txt")
 |