| Conditions | 1 | 
| Total Lines | 212 | 
| Code Lines | 204 | 
| Lines | 0 | 
| Ratio | 0 % | 
| Changes | 0 | ||
Small methods make your code easier to understand, in particular if combined with a good name. Besides, if your method is small, finding a good name is usually much easier.
For example, if you find yourself adding comments to a method's body, this is usually a good sign to extract the commented part to a new method, and use the comment as a starting point when coming up with a good name for this new method.
Commonly applied refactorings include:
If many parameters/temporary variables are present:
| 1 | #!/usr/bin/env python3 | ||
| 48 | def get_arguments(args): | ||
| 49 | """ | ||
| 50 | Parses and returns script arguments | ||
| 51 | :param args: | ||
| 52 | :return: | ||
| 53 | """ | ||
| 54 | parser = argparse.ArgumentParser(prog='db_sync_tool', | ||
| 55 | description='A tool for automatic database synchronization from ' | ||
| 56 | 'and to host systems.') | ||
| 57 |     parser.add_argument('origin', | ||
| 58 | help='Origin database defined in host file', | ||
| 59 | nargs='?', | ||
| 60 | type=str) | ||
| 61 |     parser.add_argument('target', | ||
| 62 | help='Target database defined in host file', | ||
| 63 | nargs='?', | ||
| 64 | type=str) | ||
| 65 |     parser.add_argument('-f', '--config-file', | ||
| 66 | help='Path to configuration file', | ||
| 67 | required=False, | ||
| 68 | type=str) | ||
| 69 |     parser.add_argument('-v', '--verbose', | ||
| 70 | help='Enable extended console output', | ||
| 71 | required=False, | ||
| 72 | action='store_true') | ||
| 73 |     parser.add_argument('-y', '--yes', | ||
| 74 | help='Skipping user confirmation for database import', | ||
| 75 | required=False, | ||
| 76 | action='store_true') | ||
| 77 |     parser.add_argument('-m', '--mute', | ||
| 78 | help='Mute console output', | ||
| 79 | required=False, | ||
| 80 | action='store_true') | ||
| 81 |     parser.add_argument('-dr', '--dry-run', | ||
| 82 | help='Testing process without running database export, transfer or import.', | ||
| 83 | required=False, | ||
| 84 | action='store_true') | ||
| 85 |     parser.add_argument('-i', '--import-file', | ||
| 86 | help='Import database from a specific file dump', | ||
| 87 | required=False, | ||
| 88 | type=str) | ||
| 89 |     parser.add_argument('-dn', '--dump-name', | ||
| 90 | help='Set a specific dump file name (default is "_[dbname]_[date]")', | ||
| 91 | required=False, | ||
| 92 | type=str) | ||
| 93 |     parser.add_argument('-kd', '--keep-dump', | ||
| 94 | help='Skipping target import of the database dump and saving the available dump file in the ' | ||
| 95 | 'given directory', | ||
| 96 | required=False, | ||
| 97 | type=str) | ||
| 98 |     parser.add_argument('-o', '--host-file', | ||
| 99 | help='Using an additional hosts file for merging hosts information with the configuration file', | ||
| 100 | required=False, | ||
| 101 | type=str) | ||
| 102 |     parser.add_argument('-l', '--log-file', | ||
| 103 | help='File path for creating a additional log file', | ||
| 104 | required=False, | ||
| 105 | type=str) | ||
| 106 |     parser.add_argument('-cd', '--clear-database', | ||
| 107 | help='Dropping all tables before importing a new sync to get a clean database.', | ||
| 108 | required=False, | ||
| 109 | action='store_true') | ||
| 110 |     parser.add_argument('-ta', '--tables', | ||
| 111 | help='Defining specific tables to export, e.g. --tables=table1,table2', | ||
| 112 | required=False, | ||
| 113 | type=str) | ||
| 114 |     parser.add_argument('-r', '--reverse', | ||
| 115 | help='Reverse origin and target hosts', | ||
| 116 | required=False, | ||
| 117 | action='store_true') | ||
| 118 |     parser.add_argument('-t', '--type', | ||
| 119 | help='Defining the framework type [TYPO3, Symfony, Drupal, Wordpress]', | ||
| 120 | required=False, | ||
| 121 | type=str) | ||
| 122 |     parser.add_argument('-tp', '--target-path', | ||
| 123 | help='File path to target database credential file depending on the framework type', | ||
| 124 | required=False, | ||
| 125 | type=str) | ||
| 126 |     parser.add_argument('-tn', '--target-name', | ||
| 127 | help='Providing a name for the target system', | ||
| 128 | required=False, | ||
| 129 | type=str) | ||
| 130 |     parser.add_argument('-th', '--target-host', | ||
| 131 | help='SSH host to target system', | ||
| 132 | required=False, | ||
| 133 | type=str) | ||
| 134 |     parser.add_argument('-tu', '--target-user', | ||
| 135 | help='SSH user for target system', | ||
| 136 | required=False, | ||
| 137 | type=str) | ||
| 138 |     parser.add_argument('-tpw', '--target-password', | ||
| 139 | help='SSH password for target system', | ||
| 140 | required=False, | ||
| 141 | type=str) | ||
| 142 |     parser.add_argument('-tk', '--target-key', | ||
| 143 | help='File path to SSH key for target system', | ||
| 144 | required=False, | ||
| 145 | type=str) | ||
| 146 |     parser.add_argument('-tpo', '--target-port', | ||
| 147 | help='SSH port for target system', | ||
| 148 | required=False, | ||
| 149 | type=int) | ||
| 150 |     parser.add_argument('-tdd', '--target-dump-dir', | ||
| 151 | help='Directory path for database dump file on target system', | ||
| 152 | required=False, | ||
| 153 | type=str) | ||
| 154 |     parser.add_argument('-tkd', '--target-keep-dumps', | ||
| 155 | help='Keep dump file count for target system', | ||
| 156 | required=False, | ||
| 157 | type=int) | ||
| 158 |     parser.add_argument('-tdn', '--target-db-name', | ||
| 159 | help='Database name for target system', | ||
| 160 | required=False, | ||
| 161 | type=str) | ||
| 162 |     parser.add_argument('-tdh', '--target-db-host', | ||
| 163 | help='Database host for target system', | ||
| 164 | required=False, | ||
| 165 | type=str) | ||
| 166 |     parser.add_argument('-tdu', '--target-db-user', | ||
| 167 | help='Database user for target system', | ||
| 168 | required=False, | ||
| 169 | type=str) | ||
| 170 |     parser.add_argument('-tdpw', '--target-db-password', | ||
| 171 | help='Database password for target system', | ||
| 172 | required=False, | ||
| 173 | type=str) | ||
| 174 |     parser.add_argument('-tdpo', '--target-db-port', | ||
| 175 | help='Database port for target system', | ||
| 176 | required=False, | ||
| 177 | type=int) | ||
| 178 |     parser.add_argument('-tad', '--target-after-dump', | ||
| 179 | help='Additional dump file to insert after the regular database import', | ||
| 180 | required=False, | ||
| 181 | type=int) | ||
| 182 |     parser.add_argument('-op', '--origin-path', | ||
| 183 | help='File path to origin database credential file depending on the framework type', | ||
| 184 | required=False, | ||
| 185 | type=str) | ||
| 186 |     parser.add_argument('-on', '--origin-name', | ||
| 187 | help='Providing a name for the origin system', | ||
| 188 | required=False, | ||
| 189 | type=str) | ||
| 190 |     parser.add_argument('-oh', '--origin-host', | ||
| 191 | help='SSH host to origin system', | ||
| 192 | required=False, | ||
| 193 | type=str) | ||
| 194 |     parser.add_argument('-ou', '--origin-user', | ||
| 195 | help='SSH user for origin system', | ||
| 196 | required=False, | ||
| 197 | type=str) | ||
| 198 |     parser.add_argument('-opw', '--origin-password', | ||
| 199 | help='SSH password for origin system', | ||
| 200 | required=False, | ||
| 201 | type=str) | ||
| 202 |     parser.add_argument('-ok', '--origin-key', | ||
| 203 | help='File path to SSH key for origin system', | ||
| 204 | required=False, | ||
| 205 | type=str) | ||
| 206 |     parser.add_argument('-opo', '--origin-port', | ||
| 207 | help='SSH port for origin system', | ||
| 208 | required=False, | ||
| 209 | type=int) | ||
| 210 |     parser.add_argument('-odd', '--origin-dump-dir', | ||
| 211 | help='Directory path for database dump file on origin system', | ||
| 212 | required=False, | ||
| 213 | type=str) | ||
| 214 |     parser.add_argument('-okd', '--origin-keep-dumps', | ||
| 215 | help='Keep dump file count for origin system', | ||
| 216 | required=False, | ||
| 217 | type=int) | ||
| 218 |     parser.add_argument('-odn', '--origin-db-name', | ||
| 219 | help='Database name for origin system', | ||
| 220 | required=False, | ||
| 221 | type=str) | ||
| 222 |     parser.add_argument('-odh', '--origin-db-host', | ||
| 223 | help='Database host for origin system', | ||
| 224 | required=False, | ||
| 225 | type=str) | ||
| 226 |     parser.add_argument('-odu', '--origin-db-user', | ||
| 227 | help='Database user for origin system', | ||
| 228 | required=False, | ||
| 229 | type=str) | ||
| 230 |     parser.add_argument('-odpw', '--origin-db-password', | ||
| 231 | help='Database password for origin system', | ||
| 232 | required=False, | ||
| 233 | type=str) | ||
| 234 |     parser.add_argument('-odpo', '--origin-db-port', | ||
| 235 | help='Database port for origin system', | ||
| 236 | required=False, | ||
| 237 | type=int) | ||
| 238 |     parser.add_argument('-fpw', '--force-password', | ||
| 239 | help='Force password user query', | ||
| 240 | required=False, | ||
| 241 | action='store_true') | ||
| 242 |     parser.add_argument('-ur', '--use-rsync', | ||
| 243 | help='Use rsync as transfer method', | ||
| 244 | required=False, | ||
| 245 | action='store_true') | ||
| 246 |     parser.add_argument('-uro', '--use-rsync-options', | ||
| 247 | help='Additional rsync options', | ||
| 248 | required=False, | ||
| 249 | type=str) | ||
| 250 |     parser.add_argument('-w', '--where', | ||
| 251 | help='Additional where clause for mysql dump to sync only selected rows', | ||
| 252 | required=False, | ||
| 253 | type=str) | ||
| 254 |     parser.add_argument('-amo', '--additional-mysqldump-options', | ||
| 255 | help='Additional mysqldump options for creating the database dump, e.g. --additional-mysqldump-options="--where="deleted=0"', | ||
| 256 | required=False, | ||
| 257 | type=str) | ||
| 258 | |||
| 259 | return parser.parse_args(helper.dict_to_args(args)) | ||
| 260 | |||
| 264 |