Ejemplo n.º 1
0
def main():
    path_file_base = os.path.join('bases', 'idka_base.csv')

    # faz o download do csv no site da anbima
    url = 'http://www.anbima.com.br/informacoes/idka/IDkA-down.asp'
    name_download_folder = 'idka'
    path_download = utils.prepare_download_folder(name_download_folder)

    # verifica a última data disponível na base
    today = datetime.now().date()
    cal = utils.get_calendar()
    ultima_data_base = cal.offset(today, -6)
    dates_range = list(utils.datetime_range(start=ultima_data_base, end=today))

    for dt_referencia in reversed(dates_range):
        path_file = os.path.join(
            path_download,
            dt_referencia.strftime('%Y%m%d') + '_idka.csv')
        download_file(url, dt_referencia, path_file)

    utils.remove_zero_files(name_download_folder)
    import_files(name_download_folder, path_file_base, ultima_data_base)
    # organizar o arquivo base por dt_referencia
    utils.generate_csv_base(path_file_base)
    print("Arquivos baixados com sucesso e importados para a base de dados")
Ejemplo n.º 2
0
def generate_racedate_folders():

    racedates = [r['date'] for r in utils.get_calendar()]
    for racedate in racedates:
        print(racedate)
        data_dir = os.environ.get('REPLAY_AP_DATA_DIR', '/tmp')
        os.system('mkdir -p %(data_dir)s/%(racedate)s/national/' % {
            'data_dir': data_dir,
            'racedate': racedate
        })
        os.system('touch %(data_dir)s/%(racedate)s/national/__placeholder__' %
                  {
                      'data_dir': data_dir,
                      'racedate': racedate
                  })
        os.system(
            'gsutil cp %(data_dir)s/%(racedate)s/national/__placeholder__ gs://%(bucket)s/%(path)s/'
            % {
                'data_dir':
                data_dir,
                'racedate':
                racedate,
                'bucket':
                os.environ.get('REPLAY_AP_BUCKET', 'int.nyt.com'),
                'path':
                os.environ.get('REPLAY_AP_BASE_PATH',
                               'apps/replay-ap/%s/national' % racedate)
            })
def main():
    # apaga arquivos antigos
    remove_old_files()
    # verifica a última data disponível na base
    name_file_base = 'debentures_base.csv'
    path_file_base = os.path.join('bases', name_file_base)

    # verifica a última data disponível na base
    today = datetime.now().date()
    cal = utils.get_calendar()
    ultima_data_base = cal.offset(today, -6)
    dates_range = list(utils.datetime_range(start=ultima_data_base, end=today))

    # faz o download do csv no site da anbima
    url = 'https://www.anbima.com.br/informacoes/merc-sec-debentures/arqs/db'
    for dt_referencia in reversed(dates_range):
        path_download = os.path.join('downloads')
        if not os.path.exists(path_download):
            os.makedirs(path_download)
        path_download = os.path.join('downloads', 'debentures')
        if not os.path.exists(path_download):
            os.makedirs(path_download)

        file_path = os.path.join(path_download,
                                 dt_referencia.strftime('%y%m%d') + '.txt')

        # faz o download do arquivo caso ele ainda não tiver sido baixado
        if not os.path.exists(file_path):
            download_file(url, dt_referencia, file_path)

    print("Arquivos baixados com sucesso")
Ejemplo n.º 4
0
    def post(self, username, calendar_name):
        add_after_key_urlsafe = self.request.get('addAfter')
        user = utils.get_user_from_username(username)
        calendar = utils.get_calendar(user, calendar_name)
        num_columns = len(calendar.column_names)

        if add_after_key_urlsafe == 'last-row':
            row_index = len(calendar.row_keys)
        else:
            add_after_key = ndb.Key(urlsafe=add_after_key_urlsafe)
            row_index = calendar.row_keys.index(add_after_key)

        utils.insert_row(calendar, user, row_index)
        self.response.write('it worked')
Ejemplo n.º 5
0
    def get(self, username, calendar_name):
        auth_user = users.get_current_user()
        email = self.get_auth_user_email(auth_user)
        user = utils.get_user_from_email(email)
        values = self.get_base_values(auth_user, user)

        calendar_user = utils.get_user_from_username(username)
        calendar = utils.get_calendar(calendar_user, calendar_name)

        values['calendar'] = calendar
        values['user_owns_calendar'] = calendar.owner == user.key

        template = self.get_template()
        self.response.write(template.render(values))
Ejemplo n.º 6
0
def main():
    # apaga arquivos antigos
    remove_old_files()
    # verifica a última data disponível na base
    name_file_base = 'ima_quadro_resumo_base.csv'
    path_file_base = os.path.join('bases', name_file_base)

    # ultima data base dispon[ivel
    ultima_data_base = get_ultima_data_disponivel_base(path_file_base)
    print('Última data base disponível:', ultima_data_base)
    if (ultima_data_base is None):
        ultima_data_base = datetime.date(2010, 11, 17)

    carteiras = [
        'irf-m', 'irf-m 1', 'irf-m 1+', 'ima-b', 'ima-b 5', 'ima-b 5+',
        'ima-c', 'ima-s', 'ima-geral', 'ima-geral ex-c'
    ]

    # faz o download do csv no site da anbima
    url = 'http://www.anbima.com.br/informacoes/ima/ima-carteira-down.asp'

    # verifica a última data disponível na base
    today = datetime.now().date()
    cal = utils.get_calendar()
    ultima_data_base = cal.offset(today, -5)
    dates_range = list(utils.datetime_range(start=ultima_data_base, end=today))

    for dt_referencia in reversed(dates_range):
        for carteira in carteiras:
            path_download = os.path.join('downloads', carteira)
            if not os.path.exists(path_download):
                os.makedirs(path_download)

            file_name = os.path.join(
                path_download,
                dt_referencia.strftime('%Y%m%d') + '_' + carteira + '.csv')

            if utils.check_download(dt_referencia, file_name) is False:
                break

            # faz o download do arquivo caso ele ainda não tiver sido baixado
            if not os.path.exists(file_name):
                download_file_carteira(url, dt_referencia, file_name, carteira)

    print("Arquivos baixados com sucesso e importados para a base de dados")
Ejemplo n.º 7
0
def main():
    # apaga arquivos antigos
    remove_old_files()
    # verifica a última data disponível na base
    name_file_base = 'ima_quadro_resumo_base.csv'
    path_file_base = os.path.join('bases', name_file_base)

    # ultima data base dispon[ivel
    ultima_data_base = get_ultima_data_disponivel_base(path_file_base)
    print('Última data base disponível:', ultima_data_base)
    if (ultima_data_base is None):
        ultima_data_base = datetime.date(2010, 11, 17)

    # faz o download do csv no site da anbima
    # lft
    url = 'http://www.anbima.com.br/informacoes/merc-sec/arqs/ms'

    # verifica a última data disponível na base
    today = datetime.now().date()
    cal = utils.get_calendar()
    ultima_data_base = cal.offset(today, -5)
    dates_range = list(utils.datetime_range(start=ultima_data_base, end=today))

    path_download = os.path.join('downloads',
                                 'titulos-publicos-merc-secundario')
    if not os.path.exists(path_download):
        os.makedirs(path_download)

    for dt_referencia in reversed(dates_range):
        file_path = os.path.join(
            path_download,
            dt_referencia.strftime('%Y%m%d') + '_ms_titulos-publicos.txt')

        # verifica se o arquivo deve ser baixado
        if not utils.check_download(dt_referencia, file_path):
            continue

        print(file_path)
        # faz o download do arquivo caso ele ainda não tiver sido baixado
        if not os.path.exists(file_path):
            download_file(url, dt_referencia, file_path)

    print("Arquivos baixados com sucesso")
Ejemplo n.º 8
0
    def post(self):

        # checking authentication
        auth_user = self.get_auth_user()
        auth_user_email = self.get_auth_user_email(auth_user)
        user = utils.get_user_from_email(auth_user_email)
        calendar_username = self.request.get('username')
        if user.username != calendar_username:
            raise Exception('Change this to be more specific')

        # helpers
        date_format = '%Y-%m-%d'
        str_to_date = lambda d, s: datetime.strptime(d, s).date()

        # getting user input
        calendar_name = self.request.get('calendarName')
        num_days = int(self.request.get('numDays'))
        str_vacation_ranges = json.loads(self.request.get('vacationRanges'))
        str_start_date = self.request.get('startDate')

        # converting user input
        start_date = str_to_date(str_start_date, date_format)
        vacation_date_pairs = map(lambda pair: \
                                  map(lambda d: \
                                      str_to_date(d, date_format), \
                                      pair), \
                                  str_vacation_ranges)

        session_dates = self.get_session_dates(num_days, start_date,
                                               vacation_date_pairs)

        # inserting the rows
        calendar = utils.get_calendar(user, calendar_name)
        calendar_row_keys = calendar.row_keys
        calendar_rows = map(lambda k: k.get(), calendar_row_keys)
        self.update_dates_and_add_rows(calendar_rows, session_dates, calendar,
                                       user)

        self.response.out.write('wow!')