Exemple #1
0
    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