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 |