# 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
            # si no se especifica un file name, se toma de la URL
            idx = distribution_download_url.rfind("/") + 1
            distribution_file_name = distribution.get(
                "fileName",
                distribution_download_url[idx:]
            )

            # si no especifica un formato, toma de distribution_file_name
            # asume que formato está al menos en distribution_file_name
            distribution_format = distribution.get(
                "format",
                distribution_file_name[distribution_file_name.rfind(".") + 1:]
            )
            if (include_distribution_formats and
                    (distribution_format
                     not in include_distribution_formats)):
                continue

            if distribution.get('type', 'file') not in ('file', 'file.upload'):
                continue

            # genera el path local donde descargar el archivo
            file_path = get_distribution_path(
                catalog_identifier, dataset_id, distribution_id,
                distribution_file_name, local_catalogs_dir,
                use_short_path=use_short_path)
            ensure_dir_exists(os.path.dirname(file_path))

            # decarga el archivo
            try:

# 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

            # si no se especifica un file name, se toma de la URL
            idx = distribution_download_url.rfind("/") + 1
            distribution_file_name = distribution.get(
                "fileName",
                distribution_download_url[idx:]
            )

            # si no especifica un formato, toma de distribution_file_name
            # asume que formato está al menos en distribution_file_name
            distribution_format = distribution.get(
                "format",
                distribution_file_name[distribution_file_name.rfind(".") + 1:]
            )
            if (include_distribution_formats and
                    (distribution_format
                     not in include_distribution_formats)):
                continue

            if distribution.get('type', 'file') not in ('file', 'file.upload'):
                continue

            # genera el path local donde descargar el archivo
            file_path = get_distribution_path(
                catalog_identifier, dataset_id, distribution_id,
                distribution_file_name, local_catalogs_dir,
                use_short_path=use_short_path)
            ensure_dir_exists(os.path.dirname(file_path))

            # decarga el archivo
            try:

                download_to_file(distribution_download_url, file_path)