def main(today, lapse='month', testing=False, beta=False, local=False, local_file=None, github=True): """Main function""" # Check repository name consistency between CartoDB and GitHub checkNameConsistency.main() # Get API key, depending on whether or not it is in testing mode key = apikey(testing=testing) # (1) Extract downloads data: extractStats module if local is False: pubs = extractStats.main(today=today, lapse=lapse, testing=testing) else: logging.info("Loading from local file {0}".format(local_file)) with open(local_file, 'rb') as inp_file: pubs = pickle.load(inp_file) # (2) Generate reports and models: generateReports module reports, models = generateReports.main(pubs=pubs, lapse=lapse, today=today) if github is True: # (3) Put reports and models in GitHub: uploadToGithub module git_urls = uploadToGithub.main(reports=reports, models=models, key=key, today=today, testing=testing, beta=beta) # (4) Create issues to notify users: addIssueToGithub module addIssueToGithub.main(git_urls=git_urls, key=key, today=today, testing=testing) return else: return reports
import monthlyStatReports __author__ = '@jotegui' today = datetime.now() file_name = '/home/jotegui/VertNet/PublisherStats/pubs_{0}.pk'.format(format(today, '%Y_%m_%d')) logging.basicConfig(filename='/home/jotegui/VertNet/PublisherStats/logs/with_local_{0}.log'.format(format(today, '%Y_%m_%d')), format='%(levelname)s:%(asctime)s %(message)s', level=logging.DEBUG) lapse = 'month' testing = False beta = False pubs = extractStats.main(today=today, lapse=lapse, testing=testing) # Piece of code to store pubs in disk (to avoid 1h+ of downloads) logging.info('Writing to local file {0}'.format(file_name)) with open(file_name, 'wb') as output: pickle.dump(pubs, output, pickle.HIGHEST_PROTOCOL) # After saving output, continue monthlyStatReports.main(today=today, lapse=lapse, testing=testing, beta=beta, local=True, local_file=file_name) end = datetime.now() dif = end - today logging.info('elapsed {0}'.format(dif)) logging.info('done')