Ejemplo n.º 1
0
 def test_any_bundle_id_for_issn_year_volume_suppl(self):
     self.assertEqual(
         scielo_ids_generator.any_bundle_id("ISSN",
                                            "YEAR",
                                            "VOLUME",
                                            supplement="SUPPL"),
         "ISSN-YEAR-vVOLUME-sSUPPL",
     )
Ejemplo n.º 2
0
def issue_to_kernel(issue):
    """Transforma um objeto Issue (xylose) para o formato
    de dados equivalente ao persistido pelo Kernel em um banco
    mongodb"""

    issn_id = issue.data["issue"]["v35"][0]["_"]
    _creation_date = parse_date(issue.publication_date)
    _metadata = {}
    _bundle = {
        "created": _creation_date,
        "updated": _creation_date,
        "items": [],
        "metadata": _metadata,
    }

    _year = str(date_to_datetime(_creation_date).year)
    _month = str(date_to_datetime(_creation_date).month)
    _metadata["publication_year"] = _year

    if issue.volume:
        _metadata["volume"] = issue.volume

    if issue.number:
        _metadata["number"] = issue.number

    _supplement = None
    if issue.type is "supplement":
        _supplement = "0"

        if issue.supplement_volume:
            _supplement = issue.supplement_volume
        elif issue.supplement_number:
            _supplement = issue.supplement_number

        _metadata["supplement"] = _supplement

    if issue.titles:
        _titles = [
            {"language": lang, "value": value} for lang, value in issue.titles.items()
        ]
        _metadata["titles"] = _titles

    publication_months = {}
    if issue.start_month and issue.end_month:
        publication_months["range"] = (int(issue.start_month), int(issue.end_month))
    elif _month:
        publication_months["month"] = int(_month)

    _metadata["publication_months"] = publication_months

    _id = scielo_ids_generator.any_bundle_id(
        issn_id, _year, issue.volume, issue.number, _supplement
    )
    _bundle["_id"] = _id
    _bundle["id"] = _id

    return _bundle
Ejemplo n.º 3
0
 def test_any_bundle_id_returns_ISSN_YEAR_NUM_and_no_vol_because_it_is_00(
         self):
     self.assertEqual(
         scielo_ids_generator.any_bundle_id("ISSN",
                                            "YEAR",
                                            volume="00",
                                            number="19"),
         "ISSN-YEAR-n19",
     )
Ejemplo n.º 4
0
def get_bundle_id(issn_id: str, doc_info: dict) -> None:
    """Obtém o bundle ID através dos dados presentes em `doc_info`, utilizando funções 
    do módulo scielo_ids_generator.
        `issn_id`: ISSN ID do Periódico
        `doc_info`: dados de um registro do arquivo JSON resultado da importação
    Returns:
        str: ID do bundle de fascículo ou do bundle AOP
    """
    return scielo_ids_generator.any_bundle_id(
        issn_id,
        doc_info.get("year"),
        doc_info.get("volume"),
        doc_info.get("number"),
        doc_info.get("supplement"),
    )
Ejemplo n.º 5
0
    def get_bundle_info(issn, document):
        """
        Obtém e retorna os dados do `bundle`: ID e se é um fascículo

        Args:
            issn (str): ISSN
            document (dict): Dados do documento

        Returns:
            tuple (bool, str):
                True para é fascículoID do `bundle` de fascículo ou aop
        """
        bundle_id = scielo_ids_generator.any_bundle_id(
                issn,
                document.get("year"),
                document.get("volume"),
                document.get("number"),
                document.get("supplement"),
            )
        aops_bundle_id = scielo_ids_generator.aops_bundle_id(issn)
        is_issue = bundle_id != aops_bundle_id
        return is_issue, bundle_id
Ejemplo n.º 6
0
 def test_any_bundle_id_returns_aops_bundle_id(self):
     self.assertEqual(
         scielo_ids_generator.any_bundle_id("ISSN",
                                            "YEAR",
                                            volume="00",
                                            number="00"), "ISSN-aop")
Ejemplo n.º 7
0
 def test_any_bundle_id_for_issn_year_number(self):
     self.assertEqual(
         scielo_ids_generator.any_bundle_id("ISSN", "YEAR", number="03"),
         "ISSN-YEAR-n3",
     )
Ejemplo n.º 8
0
 def test_any_bundle_id_for_issn_year_volume(self):
     self.assertEqual(
         scielo_ids_generator.any_bundle_id("ISSN", "YEAR", "VOLUME"),
         "ISSN-YEAR-vVOLUME",
     )