Set dependency on backward-incompatible version of ‘python-mock’.
[dput.git] / TODO.code-style
blob53c6b69b677b7a8563fb5ccbe26e964a0876ec0b
1 To Do list for improving code idioms
2 ####################################
4 To Do
5 =====
7 * Ensure all files explicitly opened are closed correctly.
9 * Encapsulate application state in a class.
11   * dput.dput.PackageUploadApplication
12   * dput.dcut.CommandUploadApplication
14 * Reduce ‘if __name__ == '__main__'’ block to minimum.
16 * Use idiomatic ‘configparser’ processing.
18   * Migrate to ‘ConfigParser.read’ method.
19   * Remove direct query to ‘DEFAULT’ config section.
21 * Use ‘str.format’ for all string formatting and interpolation.
23   * Remove usage of ‘%’ formatting operator.
25 * Use ‘argparse’ for command-line parsing.
27   * Remove usage of ‘getopt’.
29 * Use ‘logging’ module throughout for all messages.
31   * Remove usage of ‘sys.std{out,err}.write’ for debug-level messages.
32   * Remove usage of ‘sys.std{out,err}.write’ for informational messages.
33   * Remove usage of ‘sys.std{out,err}.write’ for warning message.
34   * Remove usage of ‘sys.std{out,err}.write’ for error messages.
35   * Remove usage of ‘sys.std{out,err}.write’ for critical error messages.
37 * Use a Python native SSH library (e.g. Paramiko or Spur).
39   * Remove usage of subprocess for SSH.
41 * Use a Python native GnuPG library (e.g. ‘python-gnupg’).
43   * Remove usage of subprocess for GnuPG.
46 Done
47 ====
49 * Remove use of global variables.
51   * dput.dcut.progname
52   * dput.dcut.version
53   * dput.dcut.USAGE
54   * dput.dput.dput_version
55   * dput.dput.files_to_remove
56   * dput.dput.files_to_upload
57   * dput.dput.USAGE
58   * dput.dput.config_file
59   * dput.dput.config
60   * dput.dput.check_only
61   * dput.dput.dinstall
62   * dput.dput.delay_upload
63   * dput.dput.unsigned_upload
64   * dput.dput.simulate
65   * dput.dput.upload_methods
67 * Use ‘subprocess’ API for all subprocess interaction.
69   * Remove usage of ‘os.popen3’.
70   * Migrate ‘os.system’ → ‘subprocess.call’.
71   * Migrate ‘os.waitpid’ → ‘subprocess.check_call’.
72   * Migrate ‘os.popen’ → ‘subprocess.Popen’.
73   * Migrate ‘os.spawnv’ → ‘subprocess.check_call’.
75 * Use ‘sys.stdout.write’ for all normal output.
77   * Remove usage of ‘print’ for normal output.
81     Local variables:
82     coding: utf-8
83     mode: text
84     mode: rst
85     End:
86     vim: fileencoding=utf-8 filetype=rst :