# Path: bormeparser/exceptions.py
# class BormeDoesntExistException(BormeparserException):
#     pass
# 
# Path: bormeparser/parser.py
# def parse(data, seccion):
#     module = importlib.import_module(DEFAULT_PARSER[seccion][0])
#     parser = getattr(module, DEFAULT_PARSER[seccion][1])
#     if os.path.isfile(data):
#         borme = parser(data).parse()
#     elif data.startswith('http'):
#         # TODO
#         # req = requests.get(data)
#         # content = req.text
#         borme = parser(data).parse()
#     else:
#         raise IOError(data)
# 
#     return borme
# 
# Path: bormeparser/seccion.py
# class SECCION:
#     A = 'A'
#     B = 'B'
#     C = 'C'
# 
#     # TODO: No detecta tipo C, viene el texto comprimido
#     @staticmethod
#     def from_borme(seccion, subseccion):
#         if seccion in ('SECCIÓN PRIMERA', 'SECCIÓN PRIMERA'):
#             if subseccion == 'Actos inscritos':
#                 return SECCION.A
#             elif subseccion == 'Otros actos publicados en el Registro Mercantil':
#                 return SECCION.B
#             else:
#                 raise ValueError('InvalidSeccion: %s %s' % (seccion, subseccion))
#         else:
#             raise ValueError('InvalidSeccion: %s %s' % (seccion, subseccion))


import datetime
import os
import requests
import time
import logging
from lxml import etree
from threading import Thread
from .exceptions import BormeDoesntExistException
from .parser import parse as parse_borme
from .seccion import SECCION
from queue import Queue

    if tree.getroot().tag != 'sumario':
        raise BormeDoesntExistException

    url_base = URL_BASE % protocol
    urls = {}
    for item in tree.xpath('//sumario/diario/seccion/emisor/item'):
        prov = item.xpath('titulo')[0].text
        if prov != provincia:
            continue
        url = url_base + item.xpath('urlPdf')[0].text
        seccion = item.getparent().getparent().get('num')
        urls[seccion] = url

    return urls


def get_url_pdfs_seccion(date, seccion, secure=USE_HTTPS):
    """
    Obtiene las URLs para descargar los BORMEs de la seccion y fecha indicada

    {'A CORUÑA': 'https://www.boe.es/borme/dias/2016/04/20/pdfs/BORME-A-2016-75-15.pdf',
     'ALBACETE': 'https://www.boe.es/borme/dias/2016/04/20/pdfs/BORME-A-2016-75-02.pdf',
     'ALICANTE': 'https://www.boe.es/borme/dias/2016/04/20/pdfs/BORME-A-2016-75-03.pdf',
     'ALMERÍA': 'https://www.boe.es/borme/dias/2016/04/20/pdfs/BORME-A-2016-75-04.pdf',
     'ASTURIAS': 'https://www.boe.es/borme/dias/2016/04/20/pdfs/BORME-A-2016-75-33.pdf',
     'BADAJOZ': 'https://www.boe.es/borme/dias/2016/04/20/pdfs/BORME-A-2016-75-06.pdf'
    }
    """


# Path: bormeparser/exceptions.py
# class BormeDoesntExistException(BormeparserException):
#     pass
# 
# Path: bormeparser/parser.py
# def parse(data, seccion):
#     module = importlib.import_module(DEFAULT_PARSER[seccion][0])
#     parser = getattr(module, DEFAULT_PARSER[seccion][1])
#     if os.path.isfile(data):
#         borme = parser(data).parse()
#     elif data.startswith('http'):
#         # TODO
#         # req = requests.get(data)
#         # content = req.text
#         borme = parser(data).parse()
#     else:
#         raise IOError(data)
# 
#     return borme
# 
# Path: bormeparser/seccion.py
# class SECCION:
#     A = 'A'
#     B = 'B'
#     C = 'C'
# 
#     # TODO: No detecta tipo C, viene el texto comprimido
#     @staticmethod
#     def from_borme(seccion, subseccion):
#         if seccion in ('SECCIÓN PRIMERA', 'SECCIÓN PRIMERA'):
#             if subseccion == 'Actos inscritos':
#                 return SECCION.A
#             elif subseccion == 'Otros actos publicados en el Registro Mercantil':
#                 return SECCION.B
#             else:
#                 raise ValueError('InvalidSeccion: %s %s' % (seccion, subseccion))
#         else:
#             raise ValueError('InvalidSeccion: %s %s' % (seccion, subseccion))


# Path: bormeparser/download.py
import datetime
import os
import requests
import time
import logging
from lxml import etree
from threading import Thread
from .exceptions import BormeDoesntExistException
from .parser import parse as parse_borme
from .seccion import SECCION
from queue import Queue


    if tree.getroot().tag != 'sumario':
        raise BormeDoesntExistException

    url_base = URL_BASE % protocol
    urls = {}
    for item in tree.xpath('//sumario/diario/seccion/emisor/item'):
        prov = item.xpath('titulo')[0].text
        if prov != provincia:
            continue
        url = url_base + item.xpath('urlPdf')[0].text
        seccion = item.getparent().getparent().get('num')
        urls[seccion] = url

    return urls


def get_url_pdfs_seccion(date, seccion, secure=USE_HTTPS):
    """
    Obtiene las URLs para descargar los BORMEs de la seccion y fecha indicada

    {'A CORUÑA': 'https://www.boe.es/borme/dias/2016/04/20/pdfs/BORME-A-2016-75-15.pdf',
     'ALBACETE': 'https://www.boe.es/borme/dias/2016/04/20/pdfs/BORME-A-2016-75-02.pdf',
     'ALICANTE': 'https://www.boe.es/borme/dias/2016/04/20/pdfs/BORME-A-2016-75-03.pdf',
     'ALMERÍA': 'https://www.boe.es/borme/dias/2016/04/20/pdfs/BORME-A-2016-75-04.pdf',
     'ASTURIAS': 'https://www.boe.es/borme/dias/2016/04/20/pdfs/BORME-A-2016-75-33.pdf',
     'BADAJOZ': 'https://www.boe.es/borme/dias/2016/04/20/pdfs/BORME-A-2016-75-06.pdf'
    }
    """


    if seccion not in (SECCION.A, SECCION.B):