def load_adjustment_data(self, data_date, adjustment_filename):
        """ Read the adjustment CSV file and create. """

        with open(adjustment_filename) as adjustment_csv:
            adjustment_reader = reader(adjustment_csv, delimiter="\t")

            iteradjustment = iter(adjustment_reader)
            next(iteradjustment)

            adjustments = []
            for row in iteradjustment:
                a = Adjustment()

                a.product_id = int(row[0])
                a.rule_id = int(row[1])
                a.affect_rate_type = row[2]
                a.adj_value = self.nullable_decimal(row[3])
                a.min_loan_amt = self.nullable_decimal(row[4])
                a.max_loan_amt = self.nullable_decimal(row[5].strip())
                a.prop_type = self.nullable_string(row[6])
                a.min_fico = self.nullable_int(row[7])
                a.max_fico = self.nullable_int(row[8])
                a.min_ltv = self.nullable_float(row[9])
                a.max_ltv = self.nullable_float(row[10])
                a.state = row[11]
                a.data_timestamp = data_date
                adjustments.append(a)

                if len(adjustments) > 1000:
                    Adjustment.objects.bulk_create(adjustments)
                    adjustments[:] = []

            Adjustment.objects.bulk_create(adjustments)
Exemplo n.º 2
0
    def load_adjustment_data(self, data_date, zfile):
        """ Read the adjustment CSV file and create. """

        filename = "%s_adjustment.txt" % data_date
        data_date = timezone.make_aware(datetime.strptime(data_date, '%Y%m%d'),
                                        timezone.get_current_timezone())
        adjustment_reader = reader(StringIO.StringIO(zfile.read(filename)),
                                   delimiter='\t')

        iteradjustment = iter(adjustment_reader)
        next(iteradjustment)

        adjustments = []
        total_adjustments = 0
        for row in iteradjustment:
            total_adjustments += 1
            a = Adjustment()
            a.product_id = int(row[0])
            a.rule_id = int(row[1])
            a.affect_rate_type = row[2]
            adj_value = self.nullable_decimal(row[3])
            a.adj_value = adj_value if adj_value is not None else 0
            a.min_loan_amt = self.nullable_decimal(row[4])
            a.max_loan_amt = self.nullable_decimal(row[5].strip())
            a.prop_type = self.nullable_string(row[6])
            a.min_fico = self.nullable_int(row[7])
            a.max_fico = self.nullable_int(row[8])
            a.min_ltv = self.nullable_decimal(row[9])
            a.max_ltv = self.nullable_decimal(row[10])
            a.state = row[11]
            a.data_timestamp = data_date
            adjustments.append(a)

            if len(adjustments) > 1000:
                Adjustment.objects.bulk_create(adjustments)
                adjustments[:] = []

        Adjustment.objects.bulk_create(adjustments)
        if not total_adjustments or Adjustment.objects.count(
        ) != total_adjustments:
            raise OaHException("Couldn't load adjustment data from %s" %
                               zfile.filename)
    def load_adjustment_data(self, data_date, zfile):
        """ Read the adjustment CSV file and create. """

        filename = "%s_adjustment.txt" % data_date
        data_date = timezone.make_aware(
            datetime.strptime(data_date, '%Y%m%d'),
            timezone.get_current_timezone())
        adjustment_reader = reader(StringIO.StringIO(zfile.read(filename)), delimiter='\t')

        iteradjustment = iter(adjustment_reader)
        next(iteradjustment)

        adjustments = []
        total_adjustments = 0
        for row in iteradjustment:
            total_adjustments += 1
            a = Adjustment()
            a.product_id = int(row[0])
            a.rule_id = int(row[1])
            a.affect_rate_type = row[2]
            adj_value = self.nullable_decimal(row[3])
            a.adj_value = adj_value if adj_value is not None else 0
            a.min_loan_amt = self.nullable_decimal(row[4])
            a.max_loan_amt = self.nullable_decimal(row[5].strip())
            a.prop_type = self.nullable_string(row[6])
            a.min_fico = self.nullable_int(row[7])
            a.max_fico = self.nullable_int(row[8])
            a.min_ltv = self.nullable_float(row[9])
            a.max_ltv = self.nullable_float(row[10])
            a.state = row[11]
            a.data_timestamp = data_date
            adjustments.append(a)

            if len(adjustments) > 1000:
                Adjustment.objects.bulk_create(adjustments)
                adjustments[:] = []

        Adjustment.objects.bulk_create(adjustments)
        if not total_adjustments or Adjustment.objects.count() != total_adjustments:
            raise OaHException("Couldn't load adjustment data from %s" % zfile.filename)