def save(self): """ Save the investment settings dict to a file """ if self.settings_dir is None or self.auth['email'] is None: return try: self.logger.debug('Save investment settings to file') # Add current profile to the investing JSON file object profile = self.investing.copy() try: # Load existing JSON file to_save = self.read_investment_settings_file() except Exception as e: # Create new JSON to_save = {'profiles': {}} # Add filter_id if 'filters' in profile and type( profile['filters']) is SavedFilter: profile['filter_id'] = profile['filters'].id profile['filters'] = None else: profile['filter_id'] = None # Add profile and version to_save['profiles'][self.auth['email']] = profile to_save['last_profile'] = self.auth['email'] to_save['version'] = util.get_version() to_save['format'] = self.settings_file_version json_out = json.dumps(to_save) # Save self.logger.debug( 'Saving investment settings file: {0}'.format(json_out)) investing_file = os.path.join(self.settings_dir, self.investing_file) f = open(investing_file, 'w') f.write(json_out) f.close() self.logger.debug('Saved') except Exception as e: self.logger.warning( 'Could not save the investment settings to file: {0}'.format( str(e)))
def save(self): """ Save the investment settings dict to a file """ if self.settings_dir is None or self.auth['email'] is None: return try: self.logger.debug('Save investment settings to file') # Add current profile to the investing JSON file object profile = self.investing.copy() try: # Load existing JSON file to_save = self.read_investment_settings_file() except Exception as e: # Create new JSON to_save = { 'profiles': {} } # Add filter_id if 'filters' in profile and type(profile['filters']) is SavedFilter: profile['filter_id'] = profile['filters'].id profile['filters'] = None else: profile['filter_id'] = None # Add profile and version to_save['profiles'][self.auth['email']] = profile to_save['last_profile'] = self.auth['email'] to_save['version'] = util.get_version() to_save['format'] = self.settings_file_version json_out = json.dumps(to_save) # Save self.logger.debug('Saving investment settings file: {0}'.format(json_out)) investing_file = os.path.join(self.settings_dir, self.investing_file) f = open(investing_file, 'w') f.write(json_out) f.close() self.logger.debug('Saved') except Exception as e: self.logger.warning('Could not save the investment settings to file: {0}'.format(str(e)))
def migrate_settings(self, settings): """ Migrate old settings to what they should be now """ # Create profiles object if 'profiles' not in settings: email = 'none' if 'email' in settings: email = settings['email'].lower() self.logger.debug('Creating profiles object with "{0}"'.format(email)) newSettings = { 'version': util.get_version(), 'format': self.settings_file_version, 'last_profile': email, 'profiles': { email: settings } } settings = newSettings # Migrate each profile for email, profile in settings['profiles'].iteritems(): # Investing filters if 'filters' in profile and profile['filters']: self.logger.debug('Normalize profile for "{0}"'.format(email)) if 'filter_id' not in profile: profile['filter_id'] = None if type(profile['filters']) is dict: if 'term' not in profile['filters']: profile['filters']['term'] = {} if '36month' in profile['filters']: profile['filters']['term']['Year3'] = profile['filters']['36month'] del profile['filters']['36month'] if 'term36month' in profile['filters']: profile['filters']['term']['Year3'] = profile['filters']['term36month'] del profile['filters']['term36month'] if '60month' in profile['filters']: profile['filters']['term']['Year5'] = profile['filters']['60month'] del profile['filters']['60month'] if 'term60month' in profile['filters']: profile['filters']['term']['Year5'] = profile['filters']['term60month'] del profile['filters']['term60month'] if 'minPercent' in profile: profile['min_percent'] = profile['minPercent'] del profile['minPercent'] if 'maxPercent' in profile: profile['max_percent'] = profile['maxPercent'] del profile['maxPercent'] if 'minCash' in profile: profile['min_cash'] = profile['minCash'] del profile['minCash'] if 'max_per_note' not in profile: profile['max_per_note'] = 25 return settings
def version(self): """ Return the version number of the Lending Club Investor tool """ return util.get_version();
def version(self): """ Return the version number of the Lending Club Investor tool """ return util.get_version()
def migrate_settings(self, settings): """ Migrate old settings to what they should be now """ # Create profiles object if 'profiles' not in settings: email = 'none' if 'email' in settings: email = settings['email'].lower() self.logger.debug('Creating profiles object with "{0}"'.format(email)) newSettings = { 'version': util.get_version(), 'format': self.settings_file_version, 'last_profile': email, 'profiles': { email: settings } } settings = newSettings # Migrate each profile for email, profile in settings['profiles'].items(): # Investing filters if 'filters' in profile and profile['filters']: self.logger.debug('Normalize profile for "{0}"'.format(email)) if 'filter_id' not in profile: profile['filter_id'] = None if type(profile['filters']) is dict: if 'term' not in profile['filters']: profile['filters']['term'] = {} if '36month' in profile['filters']: profile['filters']['term']['Year3'] = profile['filters']['36month'] del profile['filters']['36month'] if 'term36month' in profile['filters']: profile['filters']['term']['Year3'] = profile['filters']['term36month'] del profile['filters']['term36month'] if '60month' in profile['filters']: profile['filters']['term']['Year5'] = profile['filters']['60month'] del profile['filters']['60month'] if 'term60month' in profile['filters']: profile['filters']['term']['Year5'] = profile['filters']['term60month'] del profile['filters']['term60month'] if 'minPercent' in profile: profile['min_percent'] = profile['minPercent'] del profile['minPercent'] if 'maxPercent' in profile: profile['max_percent'] = profile['maxPercent'] del profile['maxPercent'] if 'minCash' in profile: profile['min_cash'] = profile['minCash'] del profile['minCash'] if 'max_per_note' not in profile: profile['max_per_note'] = 25 return settings