def test_aum_formatter(self): thousands = '99000' million = '99000000' billion = '9900000000' self.failUnless(format_aum(thousands) == '$99.0M') self.failUnless(format_aum(million) == '$99.0B') self.failUnless(format_aum(billion) == '$9.9B')
def format_institutional(self, filing): alert = {'type': '/13F/', 'cik': int(filing['cik']), 'original': filing['url']} company = truncator(filing['name'], 40) if filing['amendment'] == 'A': amended_wording = 'an amended 13F' elif filing['amendment'] == 'R': amended_wording = 'a replacement 13F' else: amended_wording = 'a 13F' date_filed = self.format_date_filed(filing['date_filed']) period_of_report = pretty_date(filing['period_of_report']) positions = format_number(filing['positions']) aum = format_aum(filing['aum']) alert['subject'] = '%s filed %s for %s' % \ (company, amended_wording, period_of_report) """Create the text body""" alert['text'] = [alert['subject']] alert['text'].append(date_filed) alert['text'].append('Period: ' + period_of_report) alert['text'].append('Positions: ' + positions + ' (%s)' % aum) """Create the tweet""" if float(filing['aum']) > 100000 and filing['amendment'] == 'O': alert['tweet'] = [alert['subject']] alert['tweet'].append(positions + ' positions ' + '(' + aum + ')') self.raw_alerts.append(alert)
def institutional_search(): """13F Autocomplete""" params = {'term': request.args.get('term'), 'number': 10} response = make_api_request('/13F/search/', params, True) for f in response['_results_']: f['aum'] = format_aum(f['aum']) latest_filing = datetime.strptime(f['latest_filing'], '%Y-%m-%d') latest_filing = datetime.strftime(latest_filing, '%m/%d/%Y') if latest_filing.startswith('0'): latest_filing = latest_filing.replace('0', '', 1) f['latest_filing'] = latest_filing return jsonify(results=response['_results_'])