def from_decoded_json(data):
     """Creates a Sell transaction from a dictionary."""
     quantity = Decimal(data['quantity'])
     price = Decimal(data['price'])
     fees = Decimal(data['fees'])
     total = Decimal(data['total'])  # quantity * price - fees
     return Sell(utility.from_js_date(data['date']), data['symbol'],
                 quantity, price, fees, total)
 def from_decoded_json(data):
     """Creates a Buy transaction from a dictionary."""
     quantity = Decimal(data['quantity'])
     price = Decimal(data['price'])
     fees = Decimal(data['fees'])
     total = Decimal(data['total'])
     return Buy(utility.from_js_date(data['date']), data['symbol'],
                quantity, price, fees, total, data['wasReinvestment'])
Exemple #3
0
    def _parse_transaction(self, data):
        date = utility.from_js_date(data['date'])
        total = dollars.parse(data['total']) if data['total'] else None

        if data['type'] == 'Dividend':
            return transactions.Dividend(
                date,
                data['symbol'],
                total,
                ast.literal_eval(data['is_qualified']),
                False)
        if data['type'] == 'Transfer':
            return transactions.Transfer(date, total)
        if data['type'] == 'SecurityTransfer':
            return transactions.SecurityTransfer(
                date, data['symbol'], Decimal(data['quantity']))
        if data['type'] == 'Interest':
            return transactions.Interest(date, total)
        if data['type'] == 'CapGain':
            return transactions.CapGain(
                date, data['symbol'], total,
                ast.literal_eval(data['is_long_term']), False)
        assert data['type'] in ('Buy', 'Sell')
        return self._parse_trade(data, date, total)
 def test_dates(self):
     self.assertEqual(utility.from_js_date('2017-01-10T01:12:45.678Z'),
                      datetime.date(2017, 1, 10))
 def from_decoded_json(data):
     """Creates a Dividend transaction from dictionary."""
     return Dividend(utility.from_js_date(data['date']), data['symbol'],
                     Decimal(data['amount']), data['qualified'],
                     data['wasReinvested'])
 def from_decoded_json(data):
     """Creates a SecurityTransfer transaction from a dictionary."""
     return SecurityTransfer(utility.from_js_date(data['date']),
                             data['symbol'], Decimal(data['quantity']))
 def from_decoded_json(data):
     """Creates a Transfer transaction from a dictionary."""
     return Transfer(utility.from_js_date(data['date']),
                     Decimal(data['amount']))
 def from_decoded_json(data):
     """Creates a Liquidation transaction from a dictionary."""
     return Liquidation(utility.from_js_date(data['date']),
                        data['description'], Decimal(data['amount']))
 def from_decoded_json(data):
     """Creates a CapGain transaction from a dictionary."""
     return CapGain(utility.from_js_date(data['date']), data['symbol'],
                    Decimal(data['amount']), data['longTerm'],
                    data['wasReinvested'])