Files @ 1e24bfe30455
Branch filter:

Location: NPO-Accounting/import2ledger/import2ledger/importers/github.py

Brett Smith
github: Turn PRIVATE handle into Anonymous.
import decimal

from . import _csv
from .. import strparse

class SponsorsImporter(_csv.CSVImporterBase):
    DATE_FMT = '%Y-%m-%d %H:%M:%S %z'
    NEEDED_FIELDS = frozenset([
        'processed amount',
        'status',
        'transaction date',
    ])
    COPIED_FIELDS = {
        'sponsor handle': 'handle',
        # 'sponsor profile name': 'name',
        'sponsor email': 'email',
        'transaction id': 'transaction_id',
    }
    ENTRY_SEED = {'currency': 'USD'}
    PAYEE_MAP = {
        'PRIVATE': 'Anonymous',
    }

    def _read_row(self, row):
        amount = strparse.currency_decimal(row['processed amount'])
        if (not amount) or row['status'] != 'settled':
            return None
        payee = row.get('sponsor profile name') or row['sponsor handle']
        return {
            'amount': amount,
            'date': strparse.date(row['transaction date'], self.DATE_FMT),
            'payee': self.PAYEE_MAP.get(payee, payee),
        }