# Path: pydatajson/helpers.py
# def ensure_dir_exists(directory):
#     """Se asegura de que un directorio exista."""
#     if directory and not os.path.exists(directory):
#         os.makedirs(directory)
# 
# Path: pydatajson/download.py
# def download_to_file(url, file_path, **kwargs):
#     """
#     Descarga un archivo a través del protocolo HTTP, en uno o más intentos, y
#     escribe el contenido descargado el el path especificado.
# 
#     Args:
#         url (str): URL (schema HTTP) del archivo a descargar.
#         file_path (str): Path del archivo a escribir. Si un archivo ya existe
#             en el path especificado, se sobrescribirá con nuevos contenidos.
#         kwargs: Parámetros para download().
#     """
#     content = download(url, file_path, **kwargs)


import os
import time
import argparse
import logging
import requests
import zipfile
import pydatajson
            import socket
    import multiprocessing
    import sys
from pydatajson.helpers import ensure_dir_exists
from pydatajson.download import download_to_file
            la existente en infra.
    Return:
        None
    """

    try:
        catalog = pydatajson.DataJson(
            catalog, catalog_format="json", verify_ssl=False)
    except:
        catalog = pydatajson.DataJson(
            catalog, catalog_format="xlsx", verify_ssl=False)
    catalog_identifier = catalog_id if catalog_id else catalog["identifier"]

    if include_metadata:
        download_metadata(catalog, catalog_identifier, include_metadata_xlsx,
                          local_catalogs_dir)

    if include_data:
        download_data(catalog, catalog_identifier, include_datasets,
                      include_distribution_formats, local_catalogs_dir,
                      use_short_path)


def download_metadata(catalog, catalog_identifier, include_metadata_xlsx,
                      local_catalogs_dir):
    logger.info(
        "Descargando catálogo {}".format(
            catalog_identifier.ljust(30)))
    # catálogo en json
    catalog_path = get_catalog_path(catalog_identifier, local_catalogs_dir)

# Path: pydatajson/helpers.py
# def ensure_dir_exists(directory):
#     """Se asegura de que un directorio exista."""
#     if directory and not os.path.exists(directory):
#         os.makedirs(directory)
# 
# Path: pydatajson/download.py
# def download_to_file(url, file_path, **kwargs):
#     """
#     Descarga un archivo a través del protocolo HTTP, en uno o más intentos, y
#     escribe el contenido descargado el el path especificado.
# 
#     Args:
#         url (str): URL (schema HTTP) del archivo a descargar.
#         file_path (str): Path del archivo a escribir. Si un archivo ya existe
#             en el path especificado, se sobrescribirá con nuevos contenidos.
#         kwargs: Parámetros para download().
#     """
#     content = download(url, file_path, **kwargs)


# Path: pydatajson/backup.py
import os
import time
import argparse
import logging
import requests
import zipfile
import pydatajson
            import socket
    import multiprocessing
    import sys
from pydatajson.helpers import ensure_dir_exists
from pydatajson.download import download_to_file

            la existente en infra.
    Return:
        None
    """

    try:
        catalog = pydatajson.DataJson(
            catalog, catalog_format="json", verify_ssl=False)
    except:
        catalog = pydatajson.DataJson(
            catalog, catalog_format="xlsx", verify_ssl=False)
    catalog_identifier = catalog_id if catalog_id else catalog["identifier"]

    if include_metadata:
        download_metadata(catalog, catalog_identifier, include_metadata_xlsx,
                          local_catalogs_dir)

    if include_data:
        download_data(catalog, catalog_identifier, include_datasets,
                      include_distribution_formats, local_catalogs_dir,
                      use_short_path)


def download_metadata(catalog, catalog_identifier, include_metadata_xlsx,
                      local_catalogs_dir):
    logger.info(
        "Descargando catálogo {}".format(
            catalog_identifier.ljust(30)))
    # catálogo en json
    catalog_path = get_catalog_path(catalog_identifier, local_catalogs_dir)

    ensure_dir_exists(os.path.dirname(catalog_path))