| Conditions | 3 |
| Total Lines | 54 |
| Code Lines | 45 |
| 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/python |
||
| 126 | def main(): |
||
| 127 | logging.info('Starting {0} ...', __program__) |
||
| 128 | db = POIBase('{}://{}:{}@{}:{}/{}'.format(config.get_database_type(), config.get_database_writer_username(), |
||
| 129 | config.get_database_writer_password(), |
||
| 130 | config.get_database_writer_host(), |
||
| 131 | config.get_database_writer_port(), |
||
| 132 | config.get_database_poi_database())) |
||
| 133 | pgsql_pool = db.pool |
||
| 134 | session_factory = sessionmaker(pgsql_pool) |
||
| 135 | Session = scoped_session(session_factory) |
||
| 136 | session = Session() |
||
| 137 | try: |
||
| 138 | import_basic_data(db.session) |
||
| 139 | manager = WorkflowManager() |
||
| 140 | manager.start_poi_harvest() |
||
| 141 | manager.join() |
||
| 142 | # Load basic dataset from database |
||
| 143 | poi_addr_data = load_poi_data(db) |
||
| 144 | # Download and load POI dataset to database |
||
| 145 | poi_common_data = load_common_data(db) |
||
| 146 | logging.info('Merging dataframes ...') |
||
| 147 | poi_addr_data = pd.merge(poi_addr_data, poi_common_data, left_on='poi_common_id', right_on='pc_id', how='inner') |
||
| 148 | # Add additional empty fields |
||
| 149 | poi_addr_data['osm_id'] = None |
||
| 150 | poi_addr_data['osm_node'] = None |
||
| 151 | poi_addr_data['osm_version'] = None |
||
| 152 | poi_addr_data['osm_changeset'] = None |
||
| 153 | poi_addr_data['osm_timestamp'] = timestamp_now() |
||
| 154 | poi_addr_data['osm_live_tags'] = None |
||
| 155 | # Export non-transformed data |
||
| 156 | export_raw_poi_data(poi_addr_data, poi_common_data) |
||
| 157 | #export_raw_poi_data_xml(poi_addr_data) |
||
| 158 | logging.info('Saving poi_code grouped filesets...') |
||
| 159 | # Export non-transformed filesets |
||
| 160 | manager.start_exporter(poi_addr_data) |
||
| 161 | manager.join() |
||
| 162 | logging.info('Merging with OSM datasets ...') |
||
| 163 | poi_addr_data['osm_nodes'] = None |
||
| 164 | poi_addr_data['poi_distance'] = None |
||
| 165 | # Enrich POI datasets from online OpenStreetMap database |
||
| 166 | logging.info('Starting online POI matching part...') |
||
| 167 | poi_addr_data = manager.start_matcher(poi_addr_data, poi_common_data) |
||
| 168 | manager.join() |
||
| 169 | # Export filesets |
||
| 170 | export_raw_poi_data(poi_addr_data, poi_common_data, '_merge') |
||
| 171 | manager.start_exporter(poi_addr_data, 'merge_') |
||
| 172 | manager.start_exporter(poi_addr_data, 'merge_', export_grouped_poi_data_with_postcode_groups) |
||
| 173 | manager.join() |
||
| 174 | |||
| 175 | except (KeyboardInterrupt, SystemExit): |
||
| 176 | logging.info('Interrupt signal received') |
||
| 177 | sys.exit(1) |
||
| 178 | except Exception as err: |
||
| 179 | raise err |
||
| 180 | |||
| 188 |