diff --git a/paperqa/agents/main.py b/paperqa/agents/main.py index 7443b15c..d1bd0483 100644 --- a/paperqa/agents/main.py +++ b/paperqa/agents/main.py @@ -2,8 +2,7 @@ import logging import os from collections.abc import Awaitable, Callable -from pydoc import locate -from typing import TYPE_CHECKING, Any, cast +from typing import TYPE_CHECKING, Any from aviary.message import MalformedMessageError, Message from aviary.tools import ( @@ -13,7 +12,8 @@ ToolSelector, ToolSelectorLedger, ) -from pydantic import BaseModel, TypeAdapter +from pydantic import BaseModel +from rich.console import Console from tenacity import ( Retrying, before_sleep_log, @@ -21,28 +21,7 @@ stop_after_attempt, ) -try: - from ldp.agent import ( - Agent, - HTTPAgentClient, - MemoryAgent, - ReActAgent, - SimpleAgent, - SimpleAgentState, - ) - from ldp.graph.memory import Memory, UIndexMemoryModel - from ldp.graph.op_utils import set_training_mode - from ldp.llms import EmbeddingModel - - _Memories = TypeAdapter(dict[int, Memory] | list[Memory]) # type: ignore[var-annotated] - - HAS_LDP_INSTALLED = True -except ImportError: - HAS_LDP_INSTALLED = False -from rich.console import Console - from paperqa.docs import Docs -from paperqa.settings import Settings from paperqa.types import Answer from paperqa.utils import pqa_directory @@ -53,6 +32,7 @@ from .tools import EnvironmentState, GatherEvidence, GenerateAnswer, PaperSearch if TYPE_CHECKING: + from ldp.agent import Agent, SimpleAgentState from ldp.graph.ops import OpResult logger = logging.getLogger(__name__) @@ -96,85 +76,6 @@ async def agent_query( return response -def to_aviary_tool_selector( - agent_type: str | type, settings: Settings -) -> ToolSelector | None: - """Attempt to convert the agent type to an aviary ToolSelector.""" - if agent_type is ToolSelector or ( - isinstance(agent_type, str) - and ( - agent_type == ToolSelector.__name__ - or ( - agent_type.startswith(ToolSelector.__module__.split(".", maxsplit=1)[0]) - and locate(agent_type) is ToolSelector - ) - ) - ): - return ToolSelector( - model_name=settings.agent.agent_llm, - acompletion=settings.get_agent_llm().router.acompletion, - **(settings.agent.agent_config or {}), - ) - return None - - -async def to_ldp_agent( - agent_type: str | type, settings: Settings -) -> "Agent[SimpleAgentState] | None": - """Attempt to convert the agent type to an ldp Agent.""" - if not isinstance(agent_type, str): # Convert to fully qualified name - agent_type = f"{agent_type.__module__}.{agent_type.__name__}" - if not agent_type.startswith("ldp"): - return None - if not HAS_LDP_INSTALLED: - raise ImportError( - "ldp agents requires the 'ldp' extra for 'ldp'. Please:" - " `pip install paper-qa[ldp]`." - ) - - # TODO: support general agents - agent_cls = cast(type[Agent], locate(agent_type)) - agent_settings = settings.agent - agent_llm, config = agent_settings.agent_llm, agent_settings.agent_config or {} - if issubclass(agent_cls, ReActAgent | MemoryAgent): - if ( - issubclass(agent_cls, MemoryAgent) - and "memory_model" in config - and "memories" in config - ): - if "embedding_model" in config["memory_model"]: - # Work around EmbeddingModel not yet supporting deserialization - config["memory_model"]["embedding_model"] = EmbeddingModel.from_name( - embedding=config["memory_model"].pop("embedding_model")["name"] - ) - config["memory_model"] = UIndexMemoryModel(**config["memory_model"]) - memories = _Memories.validate_python(config.pop("memories")) - await asyncio.gather( - *( - config["memory_model"].add_memory(memory) - for memory in ( - memories.values() if isinstance(memories, dict) else memories - ) - ) - ) - return agent_cls( - llm_model={"model": agent_llm, "temperature": settings.temperature}, - **config, - ) - if issubclass(agent_cls, SimpleAgent): - return agent_cls( - llm_model={"model": agent_llm, "temperature": settings.temperature}, - sys_prompt=agent_settings.agent_system_prompt, - **config, - ) - if issubclass(agent_cls, HTTPAgentClient): - set_training_mode(False) - return HTTPAgentClient[SimpleAgentState]( - agent_state_type=SimpleAgentState, **config - ) - raise NotImplementedError(f"Didn't yet handle agent type {agent_type}.") - - async def run_agent( docs: Docs, query: QueryRequest, @@ -205,11 +106,11 @@ async def run_agent( if agent_type == "fake": answer, agent_status = await run_fake_agent(query, docs, **runner_kwargs) - elif tool_selector_or_none := to_aviary_tool_selector(agent_type, query.settings): + elif tool_selector_or_none := query.settings.make_aviary_tool_selector(agent_type): answer, agent_status = await run_aviary_agent( query, docs, tool_selector_or_none, **runner_kwargs ) - elif ldp_agent_or_none := await to_ldp_agent(agent_type, query.settings): + elif ldp_agent_or_none := await query.settings.make_ldp_agent(agent_type): answer, agent_status = await run_ldp_agent( query, docs, ldp_agent_or_none, **runner_kwargs ) diff --git a/paperqa/clients/__init__.py b/paperqa/clients/__init__.py index 5505eaf6..9e7eb18c 100644 --- a/paperqa/clients/__init__.py +++ b/paperqa/clients/__init__.py @@ -14,7 +14,7 @@ from .client_models import MetadataPostProcessor, MetadataProvider from .crossref import CrossrefProvider from .journal_quality import JournalQualityPostProcessor -from .retractions import RetrationDataPostProcessor +from .retractions import RetractionDataPostProcessor from .semantic_scholar import SemanticScholarProvider from .unpaywall import UnpaywallProvider @@ -29,7 +29,7 @@ ALL_CLIENTS: Collection[type[MetadataPostProcessor | MetadataProvider]] = { *DEFAULT_CLIENTS, UnpaywallProvider, - RetrationDataPostProcessor, + RetractionDataPostProcessor, } @@ -89,12 +89,19 @@ def __init__( # pylint: disable=dangerous-default-value self.tasks.append( DocMetadataTask( providers=[ - c() for c in sub_clients if issubclass(c, MetadataProvider) + c if isinstance(c, MetadataProvider) else c() + for c in sub_clients + if (isinstance(c, type) and issubclass(c, MetadataProvider)) + or isinstance(c, MetadataProvider) ], processors=[ - c() + c if isinstance(c, MetadataPostProcessor) else c() for c in sub_clients - if issubclass(c, MetadataPostProcessor) + if ( + isinstance(c, type) + and issubclass(c, MetadataPostProcessor) + ) + or isinstance(c, MetadataPostProcessor) ], ) ) @@ -102,9 +109,19 @@ def __init__( # pylint: disable=dangerous-default-value if not self.tasks and all(not isinstance(c, Collection) for c in clients): self.tasks.append( DocMetadataTask( - providers=[c() for c in clients if issubclass(c, MetadataProvider)], # type: ignore[operator, arg-type] + providers=[ + c if isinstance(c, MetadataProvider) else c() # type: ignore[redundant-expr] + for c in clients + if (isinstance(c, type) and issubclass(c, MetadataProvider)) + or isinstance(c, MetadataProvider) + ], processors=[ - c() for c in clients if issubclass(c, MetadataPostProcessor) # type: ignore[operator, arg-type] + c if isinstance(c, MetadataPostProcessor) else c() # type: ignore[redundant-expr] + for c in clients + if ( + isinstance(c, type) and issubclass(c, MetadataPostProcessor) + ) + or isinstance(c, MetadataPostProcessor) ], ) ) diff --git a/paperqa/clients/retractions.py b/paperqa/clients/retractions.py index 40163581..1ee8516a 100644 --- a/paperqa/clients/retractions.py +++ b/paperqa/clients/retractions.py @@ -15,7 +15,7 @@ logger = logging.getLogger(__name__) -class RetrationDataPostProcessor(MetadataPostProcessor[DOIQuery]): +class RetractionDataPostProcessor(MetadataPostProcessor[DOIQuery]): def __init__(self, retraction_data_path: os.PathLike | str | None = None) -> None: if retraction_data_path is None: diff --git a/paperqa/settings.py b/paperqa/settings.py index c058c7ec..0720abcc 100644 --- a/paperqa/settings.py +++ b/paperqa/settings.py @@ -1,12 +1,41 @@ +import asyncio import importlib.resources import os from enum import StrEnum from pathlib import Path +from pydoc import locate from typing import Any, ClassVar, assert_never, cast -from pydantic import BaseModel, ConfigDict, Field, computed_field, field_validator +from aviary.tools import ToolSelector +from pydantic import ( + BaseModel, + ConfigDict, + Field, + TypeAdapter, + computed_field, + field_validator, +) from pydantic_settings import BaseSettings, CliSettingsSource, SettingsConfigDict +try: + from ldp.agent import ( + Agent, + HTTPAgentClient, + MemoryAgent, + ReActAgent, + SimpleAgent, + SimpleAgentState, + ) + from ldp.graph.memory import Memory, UIndexMemoryModel + from ldp.graph.op_utils import set_training_mode + from ldp.llms import EmbeddingModel as LDPEmbeddingModel + + _Memories = TypeAdapter(dict[int, Memory] | list[Memory]) # type: ignore[var-annotated] + + HAS_LDP_INSTALLED = True +except ImportError: + HAS_LDP_INSTALLED = False + from paperqa.llms import EmbeddingModel, LiteLLMModel, embedding_model_factory from paperqa.prompts import ( citation_prompt, @@ -520,6 +549,89 @@ def get_agent_llm(self) -> LiteLLMModel: def get_embedding_model(self) -> EmbeddingModel: return embedding_model_factory(self.embedding, **(self.embedding_config or {})) + def make_aviary_tool_selector(self, agent_type: str | type) -> ToolSelector | None: + """Attempt to convert the input agent type to an aviary ToolSelector.""" + if agent_type is ToolSelector or ( + isinstance(agent_type, str) + and ( + agent_type == ToolSelector.__name__ + or ( + agent_type.startswith( + ToolSelector.__module__.split(".", maxsplit=1)[0] + ) + and locate(agent_type) is ToolSelector + ) + ) + ): + return ToolSelector( + model_name=self.agent.agent_llm, + acompletion=self.get_agent_llm().router.acompletion, + **(self.agent.agent_config or {}), + ) + return None + + async def make_ldp_agent( + self, agent_type: str | type + ) -> "Agent[SimpleAgentState] | None": + """Attempt to convert the input agent type to an ldp Agent.""" + if not isinstance(agent_type, str): # Convert to fully qualified name + agent_type = f"{agent_type.__module__}.{agent_type.__name__}" + if not agent_type.startswith("ldp"): + return None + if not HAS_LDP_INSTALLED: + raise ImportError( + "ldp agents requires the 'ldp' extra for 'ldp'. Please:" + " `pip install paper-qa[ldp]`." + ) + + # TODO: support general agents + agent_cls = cast(type[Agent], locate(agent_type)) + agent_settings = self.agent + agent_llm, config = agent_settings.agent_llm, agent_settings.agent_config or {} + if issubclass(agent_cls, ReActAgent | MemoryAgent): + if ( + issubclass(agent_cls, MemoryAgent) + and "memory_model" in config + and "memories" in config + ): + if "embedding_model" in config["memory_model"]: + # Work around LDPEmbeddingModel not yet supporting deserialization + config["memory_model"]["embedding_model"] = ( + LDPEmbeddingModel.from_name( + embedding=config["memory_model"].pop("embedding_model")[ + "name" + ] + ) + ) + config["memory_model"] = UIndexMemoryModel(**config["memory_model"]) + memories = _Memories.validate_python(config.pop("memories")) + await asyncio.gather( + *( + config["memory_model"].add_memory(memory) + for memory in ( + memories.values() + if isinstance(memories, dict) + else memories + ) + ) + ) + return agent_cls( + llm_model={"model": agent_llm, "temperature": self.temperature}, + **config, + ) + if issubclass(agent_cls, SimpleAgent): + return agent_cls( + llm_model={"model": agent_llm, "temperature": self.temperature}, + sys_prompt=agent_settings.agent_system_prompt, + **config, + ) + if issubclass(agent_cls, HTTPAgentClient): + set_training_mode(False) + return HTTPAgentClient[SimpleAgentState]( + agent_state_type=SimpleAgentState, **config + ) + raise NotImplementedError(f"Didn't yet handle agent type {agent_type}.") + MaybeSettings = Settings | str | None diff --git a/paperqa/types.py b/paperqa/types.py index ce83e7e2..03716879 100644 --- a/paperqa/types.py +++ b/paperqa/types.py @@ -344,8 +344,6 @@ class DocDetails(Doc): "http://dx.doi.org/", } AUTHOR_NAMES_TO_REMOVE: ClassVar[Collection[str]] = {"et al", "et al."} - # https://regex101.com/r/3LE9Mt/1 - CITATION_COUNT_REGEX_PATTERN: ClassVar[str] = r"(This article has )\d+( citations?)" @field_validator("key") @classmethod @@ -567,6 +565,7 @@ def formatted_citation(self) -> str: or self.citation_count is None or self.source_quality is None ): + print(f"citation: {self.citation}, citation_count: {self.citation_count}") raise ValueError( "Citation, citationCount, and sourceQuality are not set -- do you need" " to call `hydrate`?" @@ -606,7 +605,9 @@ def repopulate_doc_id_from_doi(self) -> None: if self.doi: self.doc_id = encode_id(self.doi) - def __add__(self, other: DocDetails | int) -> DocDetails: + def __add__( + self, other: DocDetails | int + ) -> DocDetails: # pylint: disable=too-many-branches """Merge two DocDetails objects together.""" # control for usage w. Python's sum() function if isinstance(other, int): @@ -652,13 +653,16 @@ def __add__(self, other: DocDetails | int) -> DocDetails: # if we have multiple keys, we wipe them and allow regeneration merged_data[field] = None # type: ignore[assignment] - elif ( - field in {"citation_count", "year", "publication_date"} - and self_value is not None - and other_value is not None - ): + elif field in {"citation_count", "year", "publication_date"}: # get the latest data - merged_data[field] = max(self_value, other_value) + if self_value is None or other_value is None: + merged_data[field] = ( + # if self_value is 0, it's evaluated as falsy and will fallback to other_value even if other_value is None + # 0 is a valid value here + self_value if self_value is not None else other_value + ) + else: + merged_data[field] = max(self_value, other_value) else: # Prefer non-null values, default preference for 'other' object. diff --git a/tests/cassettes/test_crossref_journalquality_fields_filtering.yaml b/tests/cassettes/test_crossref_journalquality_fields_filtering.yaml index 6cf0b910..2ce8843e 100644 --- a/tests/cassettes/test_crossref_journalquality_fields_filtering.yaml +++ b/tests/cassettes/test_crossref_journalquality_fields_filtering.yaml @@ -49,4 +49,342 @@ interactions: status: code: 200 message: OK + - request: + body: null + headers: {} + method: GET + uri: https://api.crossref.org/works?mailto=example@papercrow.ai&query.title=Beta-Blocker+Interruption+or+Continuation+after+Myocardial+Infarction&rows=1&select=DOI,author,container-title,title + response: + body: + string: + '{"status":"ok","message-type":"work-list","message-version":"1.0.0","message":{"facets":{},"total-results":1782625,"items":[{"DOI":"10.1056\/nejmoa2404204","author":[{"ORCID":"http:\/\/orcid.org\/0000-0002-1901-2808","authenticated-orcid":false,"given":"Johanne","family":"Silvain","sequence":"first","affiliation":[{"name":"From + Sorbonne Universit\u00e9, ACTION Group, INSERM Unit\u00e9 Mixte de Recherche + (UMRS) 1166, H\u00f4pital Piti\u00e9\u2013Salp\u00eatri\u00e8re Assistance + Publique\u2013H\u00f4pitaux de Paris (AP-HP) (J.S., P.G., N.P., K.A., G.M.), + the Department of Cardiology, H\u00f4pital Europ\u00e9en Georges Pompidou, + AP-HP, Universit\u00e9 Paris Cit\u00e9 (E.P.), FACT (French Alliance for Cardiovascular + Trials) (G.L.), the Department of Cardiology, Universit\u00e9 Paris Cit\u00e9, + H\u00f4pital Lariboisi\u00e8re, AP-HP, INSERM Unit\u00e9 942 (J.-G.D.), the + Cardiology Department, H\u00f4pital Saint..."}]},{"given":"Guillaume","family":"Cayla","sequence":"additional","affiliation":[{"name":"From + Sorbonne Universit\u00e9, ACTION Group, INSERM Unit\u00e9 Mixte de Recherche + (UMRS) 1166, H\u00f4pital Piti\u00e9\u2013Salp\u00eatri\u00e8re Assistance + Publique\u2013H\u00f4pitaux de Paris (AP-HP) (J.S., P.G., N.P., K.A., G.M.), + the Department of Cardiology, H\u00f4pital Europ\u00e9en Georges Pompidou, + AP-HP, Universit\u00e9 Paris Cit\u00e9 (E.P.), FACT (French Alliance for Cardiovascular + Trials) (G.L.), the Department of Cardiology, Universit\u00e9 Paris Cit\u00e9, + H\u00f4pital Lariboisi\u00e8re, AP-HP, INSERM Unit\u00e9 942 (J.-G.D.), the + Cardiology Department, H\u00f4pital Saint..."}]},{"given":"Emile","family":"Ferrari","sequence":"additional","affiliation":[{"name":"From + Sorbonne Universit\u00e9, ACTION Group, INSERM Unit\u00e9 Mixte de Recherche + (UMRS) 1166, H\u00f4pital Piti\u00e9\u2013Salp\u00eatri\u00e8re Assistance + Publique\u2013H\u00f4pitaux de Paris (AP-HP) (J.S., P.G., N.P., K.A., G.M.), + the Department of Cardiology, H\u00f4pital Europ\u00e9en Georges Pompidou, + AP-HP, Universit\u00e9 Paris Cit\u00e9 (E.P.), FACT (French Alliance for Cardiovascular + Trials) (G.L.), the Department of Cardiology, Universit\u00e9 Paris Cit\u00e9, + H\u00f4pital Lariboisi\u00e8re, AP-HP, INSERM Unit\u00e9 942 (J.-G.D.), the + Cardiology Department, H\u00f4pital Saint..."}]},{"given":"Gr\u00e9goire","family":"Range","sequence":"additional","affiliation":[{"name":"From + Sorbonne Universit\u00e9, ACTION Group, INSERM Unit\u00e9 Mixte de Recherche + (UMRS) 1166, H\u00f4pital Piti\u00e9\u2013Salp\u00eatri\u00e8re Assistance + Publique\u2013H\u00f4pitaux de Paris (AP-HP) (J.S., P.G., N.P., K.A., G.M.), + the Department of Cardiology, H\u00f4pital Europ\u00e9en Georges Pompidou, + AP-HP, Universit\u00e9 Paris Cit\u00e9 (E.P.), FACT (French Alliance for Cardiovascular + Trials) (G.L.), the Department of Cardiology, Universit\u00e9 Paris Cit\u00e9, + H\u00f4pital Lariboisi\u00e8re, AP-HP, INSERM Unit\u00e9 942 (J.-G.D.), the + Cardiology Department, H\u00f4pital Saint..."}]},{"given":"Etienne","family":"Puymirat","sequence":"additional","affiliation":[{"name":"From + Sorbonne Universit\u00e9, ACTION Group, INSERM Unit\u00e9 Mixte de Recherche + (UMRS) 1166, H\u00f4pital Piti\u00e9\u2013Salp\u00eatri\u00e8re Assistance + Publique\u2013H\u00f4pitaux de Paris (AP-HP) (J.S., P.G., N.P., K.A., G.M.), + the Department of Cardiology, H\u00f4pital Europ\u00e9en Georges Pompidou, + AP-HP, Universit\u00e9 Paris Cit\u00e9 (E.P.), FACT (French Alliance for Cardiovascular + Trials) (G.L.), the Department of Cardiology, Universit\u00e9 Paris Cit\u00e9, + H\u00f4pital Lariboisi\u00e8re, AP-HP, INSERM Unit\u00e9 942 (J.-G.D.), the + Cardiology Department, H\u00f4pital Saint..."}]},{"given":"Nicolas","family":"Delarche","sequence":"additional","affiliation":[{"name":"From + Sorbonne Universit\u00e9, ACTION Group, INSERM Unit\u00e9 Mixte de Recherche + (UMRS) 1166, H\u00f4pital Piti\u00e9\u2013Salp\u00eatri\u00e8re Assistance + Publique\u2013H\u00f4pitaux de Paris (AP-HP) (J.S., P.G., N.P., K.A., G.M.), + the Department of Cardiology, H\u00f4pital Europ\u00e9en Georges Pompidou, + AP-HP, Universit\u00e9 Paris Cit\u00e9 (E.P.), FACT (French Alliance for Cardiovascular + Trials) (G.L.), the Department of Cardiology, Universit\u00e9 Paris Cit\u00e9, + H\u00f4pital Lariboisi\u00e8re, AP-HP, INSERM Unit\u00e9 942 (J.-G.D.), the + Cardiology Department, H\u00f4pital Saint..."}]},{"given":"Paul","family":"Guedeney","sequence":"additional","affiliation":[{"name":"From + Sorbonne Universit\u00e9, ACTION Group, INSERM Unit\u00e9 Mixte de Recherche + (UMRS) 1166, H\u00f4pital Piti\u00e9\u2013Salp\u00eatri\u00e8re Assistance + Publique\u2013H\u00f4pitaux de Paris (AP-HP) (J.S., P.G., N.P., K.A., G.M.), + the Department of Cardiology, H\u00f4pital Europ\u00e9en Georges Pompidou, + AP-HP, Universit\u00e9 Paris Cit\u00e9 (E.P.), FACT (French Alliance for Cardiovascular + Trials) (G.L.), the Department of Cardiology, Universit\u00e9 Paris Cit\u00e9, + H\u00f4pital Lariboisi\u00e8re, AP-HP, INSERM Unit\u00e9 942 (J.-G.D.), the + Cardiology Department, H\u00f4pital Saint..."}]},{"given":"Thomas","family":"Cuisset","sequence":"additional","affiliation":[{"name":"From + Sorbonne Universit\u00e9, ACTION Group, INSERM Unit\u00e9 Mixte de Recherche + (UMRS) 1166, H\u00f4pital Piti\u00e9\u2013Salp\u00eatri\u00e8re Assistance + Publique\u2013H\u00f4pitaux de Paris (AP-HP) (J.S., P.G., N.P., K.A., G.M.), + the Department of Cardiology, H\u00f4pital Europ\u00e9en Georges Pompidou, + AP-HP, Universit\u00e9 Paris Cit\u00e9 (E.P.), FACT (French Alliance for Cardiovascular + Trials) (G.L.), the Department of Cardiology, Universit\u00e9 Paris Cit\u00e9, + H\u00f4pital Lariboisi\u00e8re, AP-HP, INSERM Unit\u00e9 942 (J.-G.D.), the + Cardiology Department, H\u00f4pital Saint..."}]},{"given":"Fabrice","family":"Ivanes","sequence":"additional","affiliation":[{"name":"From + Sorbonne Universit\u00e9, ACTION Group, INSERM Unit\u00e9 Mixte de Recherche + (UMRS) 1166, H\u00f4pital Piti\u00e9\u2013Salp\u00eatri\u00e8re Assistance + Publique\u2013H\u00f4pitaux de Paris (AP-HP) (J.S., P.G., N.P., K.A., G.M.), + the Department of Cardiology, H\u00f4pital Europ\u00e9en Georges Pompidou, + AP-HP, Universit\u00e9 Paris Cit\u00e9 (E.P.), FACT (French Alliance for Cardiovascular + Trials) (G.L.), the Department of Cardiology, Universit\u00e9 Paris Cit\u00e9, + H\u00f4pital Lariboisi\u00e8re, AP-HP, INSERM Unit\u00e9 942 (J.-G.D.), the + Cardiology Department, H\u00f4pital Saint..."}]},{"given":"Thibault","family":"Lhermusier","sequence":"additional","affiliation":[{"name":"From + Sorbonne Universit\u00e9, ACTION Group, INSERM Unit\u00e9 Mixte de Recherche + (UMRS) 1166, H\u00f4pital Piti\u00e9\u2013Salp\u00eatri\u00e8re Assistance + Publique\u2013H\u00f4pitaux de Paris (AP-HP) (J.S., P.G., N.P., K.A., G.M.), + the Department of Cardiology, H\u00f4pital Europ\u00e9en Georges Pompidou, + AP-HP, Universit\u00e9 Paris Cit\u00e9 (E.P.), FACT (French Alliance for Cardiovascular + Trials) (G.L.), the Department of Cardiology, Universit\u00e9 Paris Cit\u00e9, + H\u00f4pital Lariboisi\u00e8re, AP-HP, INSERM Unit\u00e9 942 (J.-G.D.), the + Cardiology Department, H\u00f4pital Saint..."}]},{"given":"Thibault","family":"Petroni","sequence":"additional","affiliation":[{"name":"From + Sorbonne Universit\u00e9, ACTION Group, INSERM Unit\u00e9 Mixte de Recherche + (UMRS) 1166, H\u00f4pital Piti\u00e9\u2013Salp\u00eatri\u00e8re Assistance + Publique\u2013H\u00f4pitaux de Paris (AP-HP) (J.S., P.G., N.P., K.A., G.M.), + the Department of Cardiology, H\u00f4pital Europ\u00e9en Georges Pompidou, + AP-HP, Universit\u00e9 Paris Cit\u00e9 (E.P.), FACT (French Alliance for Cardiovascular + Trials) (G.L.), the Department of Cardiology, Universit\u00e9 Paris Cit\u00e9, + H\u00f4pital Lariboisi\u00e8re, AP-HP, INSERM Unit\u00e9 942 (J.-G.D.), the + Cardiology Department, H\u00f4pital Saint..."}]},{"given":"Gilles","family":"Lemesle","sequence":"additional","affiliation":[{"name":"From + Sorbonne Universit\u00e9, ACTION Group, INSERM Unit\u00e9 Mixte de Recherche + (UMRS) 1166, H\u00f4pital Piti\u00e9\u2013Salp\u00eatri\u00e8re Assistance + Publique\u2013H\u00f4pitaux de Paris (AP-HP) (J.S., P.G., N.P., K.A., G.M.), + the Department of Cardiology, H\u00f4pital Europ\u00e9en Georges Pompidou, + AP-HP, Universit\u00e9 Paris Cit\u00e9 (E.P.), FACT (French Alliance for Cardiovascular + Trials) (G.L.), the Department of Cardiology, Universit\u00e9 Paris Cit\u00e9, + H\u00f4pital Lariboisi\u00e8re, AP-HP, INSERM Unit\u00e9 942 (J.-G.D.), the + Cardiology Department, H\u00f4pital Saint..."}]},{"given":"Fran\u00e7ois","family":"Bresoles","sequence":"additional","affiliation":[{"name":"From + Sorbonne Universit\u00e9, ACTION Group, INSERM Unit\u00e9 Mixte de Recherche + (UMRS) 1166, H\u00f4pital Piti\u00e9\u2013Salp\u00eatri\u00e8re Assistance + Publique\u2013H\u00f4pitaux de Paris (AP-HP) (J.S., P.G., N.P., K.A., G.M.), + the Department of Cardiology, H\u00f4pital Europ\u00e9en Georges Pompidou, + AP-HP, Universit\u00e9 Paris Cit\u00e9 (E.P.), FACT (French Alliance for Cardiovascular + Trials) (G.L.), the Department of Cardiology, Universit\u00e9 Paris Cit\u00e9, + H\u00f4pital Lariboisi\u00e8re, AP-HP, INSERM Unit\u00e9 942 (J.-G.D.), the + Cardiology Department, H\u00f4pital Saint..."}]},{"given":"Jean-No\u00ebl","family":"Labeque","sequence":"additional","affiliation":[{"name":"From + Sorbonne Universit\u00e9, ACTION Group, INSERM Unit\u00e9 Mixte de Recherche + (UMRS) 1166, H\u00f4pital Piti\u00e9\u2013Salp\u00eatri\u00e8re Assistance + Publique\u2013H\u00f4pitaux de Paris (AP-HP) (J.S., P.G., N.P., K.A., G.M.), + the Department of Cardiology, H\u00f4pital Europ\u00e9en Georges Pompidou, + AP-HP, Universit\u00e9 Paris Cit\u00e9 (E.P.), FACT (French Alliance for Cardiovascular + Trials) (G.L.), the Department of Cardiology, Universit\u00e9 Paris Cit\u00e9, + H\u00f4pital Lariboisi\u00e8re, AP-HP, INSERM Unit\u00e9 942 (J.-G.D.), the + Cardiology Department, H\u00f4pital Saint..."}]},{"given":"Thibaut","family":"Pommier","sequence":"additional","affiliation":[{"name":"From + Sorbonne Universit\u00e9, ACTION Group, INSERM Unit\u00e9 Mixte de Recherche + (UMRS) 1166, H\u00f4pital Piti\u00e9\u2013Salp\u00eatri\u00e8re Assistance + Publique\u2013H\u00f4pitaux de Paris (AP-HP) (J.S., P.G., N.P., K.A., G.M.), + the Department of Cardiology, H\u00f4pital Europ\u00e9en Georges Pompidou, + AP-HP, Universit\u00e9 Paris Cit\u00e9 (E.P.), FACT (French Alliance for Cardiovascular + Trials) (G.L.), the Department of Cardiology, Universit\u00e9 Paris Cit\u00e9, + H\u00f4pital Lariboisi\u00e8re, AP-HP, INSERM Unit\u00e9 942 (J.-G.D.), the + Cardiology Department, H\u00f4pital Saint..."}]},{"given":"Jean-Guillaume","family":"Dillinger","sequence":"additional","affiliation":[{"name":"From + Sorbonne Universit\u00e9, ACTION Group, INSERM Unit\u00e9 Mixte de Recherche + (UMRS) 1166, H\u00f4pital Piti\u00e9\u2013Salp\u00eatri\u00e8re Assistance + Publique\u2013H\u00f4pitaux de Paris (AP-HP) (J.S., P.G., N.P., K.A., G.M.), + the Department of Cardiology, H\u00f4pital Europ\u00e9en Georges Pompidou, + AP-HP, Universit\u00e9 Paris Cit\u00e9 (E.P.), FACT (French Alliance for Cardiovascular + Trials) (G.L.), the Department of Cardiology, Universit\u00e9 Paris Cit\u00e9, + H\u00f4pital Lariboisi\u00e8re, AP-HP, INSERM Unit\u00e9 942 (J.-G.D.), the + Cardiology Department, H\u00f4pital Saint..."}]},{"given":"Florence","family":"Leclercq","sequence":"additional","affiliation":[{"name":"From + Sorbonne Universit\u00e9, ACTION Group, INSERM Unit\u00e9 Mixte de Recherche + (UMRS) 1166, H\u00f4pital Piti\u00e9\u2013Salp\u00eatri\u00e8re Assistance + Publique\u2013H\u00f4pitaux de Paris (AP-HP) (J.S., P.G., N.P., K.A., G.M.), + the Department of Cardiology, H\u00f4pital Europ\u00e9en Georges Pompidou, + AP-HP, Universit\u00e9 Paris Cit\u00e9 (E.P.), FACT (French Alliance for Cardiovascular + Trials) (G.L.), the Department of Cardiology, Universit\u00e9 Paris Cit\u00e9, + H\u00f4pital Lariboisi\u00e8re, AP-HP, INSERM Unit\u00e9 942 (J.-G.D.), the + Cardiology Department, H\u00f4pital Saint..."}]},{"given":"Franck","family":"Boccara","sequence":"additional","affiliation":[{"name":"From + Sorbonne Universit\u00e9, ACTION Group, INSERM Unit\u00e9 Mixte de Recherche + (UMRS) 1166, H\u00f4pital Piti\u00e9\u2013Salp\u00eatri\u00e8re Assistance + Publique\u2013H\u00f4pitaux de Paris (AP-HP) (J.S., P.G., N.P., K.A., G.M.), + the Department of Cardiology, H\u00f4pital Europ\u00e9en Georges Pompidou, + AP-HP, Universit\u00e9 Paris Cit\u00e9 (E.P.), FACT (French Alliance for Cardiovascular + Trials) (G.L.), the Department of Cardiology, Universit\u00e9 Paris Cit\u00e9, + H\u00f4pital Lariboisi\u00e8re, AP-HP, INSERM Unit\u00e9 942 (J.-G.D.), the + Cardiology Department, H\u00f4pital Saint..."}]},{"given":"Pascal","family":"Lim","sequence":"additional","affiliation":[{"name":"From + Sorbonne Universit\u00e9, ACTION Group, INSERM Unit\u00e9 Mixte de Recherche + (UMRS) 1166, H\u00f4pital Piti\u00e9\u2013Salp\u00eatri\u00e8re Assistance + Publique\u2013H\u00f4pitaux de Paris (AP-HP) (J.S., P.G., N.P., K.A., G.M.), + the Department of Cardiology, H\u00f4pital Europ\u00e9en Georges Pompidou, + AP-HP, Universit\u00e9 Paris Cit\u00e9 (E.P.), FACT (French Alliance for Cardiovascular + Trials) (G.L.), the Department of Cardiology, Universit\u00e9 Paris Cit\u00e9, + H\u00f4pital Lariboisi\u00e8re, AP-HP, INSERM Unit\u00e9 942 (J.-G.D.), the + Cardiology Department, H\u00f4pital Saint..."}]},{"given":"Timoth\u00e9e","family":"Besseyre + des Horts","sequence":"additional","affiliation":[{"name":"From Sorbonne Universit\u00e9, + ACTION Group, INSERM Unit\u00e9 Mixte de Recherche (UMRS) 1166, H\u00f4pital + Piti\u00e9\u2013Salp\u00eatri\u00e8re Assistance Publique\u2013H\u00f4pitaux + de Paris (AP-HP) (J.S., P.G., N.P., K.A., G.M.), the Department of Cardiology, + H\u00f4pital Europ\u00e9en Georges Pompidou, AP-HP, Universit\u00e9 Paris + Cit\u00e9 (E.P.), FACT (French Alliance for Cardiovascular Trials) (G.L.), + the Department of Cardiology, Universit\u00e9 Paris Cit\u00e9, H\u00f4pital + Lariboisi\u00e8re, AP-HP, INSERM Unit\u00e9 942 (J.-G.D.), the Cardiology + Department, H\u00f4pital Saint..."}]},{"given":"Thierry","family":"Fourme","sequence":"additional","affiliation":[{"name":"From + Sorbonne Universit\u00e9, ACTION Group, INSERM Unit\u00e9 Mixte de Recherche + (UMRS) 1166, H\u00f4pital Piti\u00e9\u2013Salp\u00eatri\u00e8re Assistance + Publique\u2013H\u00f4pitaux de Paris (AP-HP) (J.S., P.G., N.P., K.A., G.M.), + the Department of Cardiology, H\u00f4pital Europ\u00e9en Georges Pompidou, + AP-HP, Universit\u00e9 Paris Cit\u00e9 (E.P.), FACT (French Alliance for Cardiovascular + Trials) (G.L.), the Department of Cardiology, Universit\u00e9 Paris Cit\u00e9, + H\u00f4pital Lariboisi\u00e8re, AP-HP, INSERM Unit\u00e9 942 (J.-G.D.), the + Cardiology Department, H\u00f4pital Saint..."}]},{"given":"Fran\u00e7ois","family":"Jourda","sequence":"additional","affiliation":[{"name":"From + Sorbonne Universit\u00e9, ACTION Group, INSERM Unit\u00e9 Mixte de Recherche + (UMRS) 1166, H\u00f4pital Piti\u00e9\u2013Salp\u00eatri\u00e8re Assistance + Publique\u2013H\u00f4pitaux de Paris (AP-HP) (J.S., P.G., N.P., K.A., G.M.), + the Department of Cardiology, H\u00f4pital Europ\u00e9en Georges Pompidou, + AP-HP, Universit\u00e9 Paris Cit\u00e9 (E.P.), FACT (French Alliance for Cardiovascular + Trials) (G.L.), the Department of Cardiology, Universit\u00e9 Paris Cit\u00e9, + H\u00f4pital Lariboisi\u00e8re, AP-HP, INSERM Unit\u00e9 942 (J.-G.D.), the + Cardiology Department, H\u00f4pital Saint..."}]},{"given":"Alain","family":"Furber","sequence":"additional","affiliation":[{"name":"From + Sorbonne Universit\u00e9, ACTION Group, INSERM Unit\u00e9 Mixte de Recherche + (UMRS) 1166, H\u00f4pital Piti\u00e9\u2013Salp\u00eatri\u00e8re Assistance + Publique\u2013H\u00f4pitaux de Paris (AP-HP) (J.S., P.G., N.P., K.A., G.M.), + the Department of Cardiology, H\u00f4pital Europ\u00e9en Georges Pompidou, + AP-HP, Universit\u00e9 Paris Cit\u00e9 (E.P.), FACT (French Alliance for Cardiovascular + Trials) (G.L.), the Department of Cardiology, Universit\u00e9 Paris Cit\u00e9, + H\u00f4pital Lariboisi\u00e8re, AP-HP, INSERM Unit\u00e9 942 (J.-G.D.), the + Cardiology Department, H\u00f4pital Saint..."}]},{"given":"Benoit","family":"Lattuca","sequence":"additional","affiliation":[{"name":"From + Sorbonne Universit\u00e9, ACTION Group, INSERM Unit\u00e9 Mixte de Recherche + (UMRS) 1166, H\u00f4pital Piti\u00e9\u2013Salp\u00eatri\u00e8re Assistance + Publique\u2013H\u00f4pitaux de Paris (AP-HP) (J.S., P.G., N.P., K.A., G.M.), + the Department of Cardiology, H\u00f4pital Europ\u00e9en Georges Pompidou, + AP-HP, Universit\u00e9 Paris Cit\u00e9 (E.P.), FACT (French Alliance for Cardiovascular + Trials) (G.L.), the Department of Cardiology, Universit\u00e9 Paris Cit\u00e9, + H\u00f4pital Lariboisi\u00e8re, AP-HP, INSERM Unit\u00e9 942 (J.-G.D.), the + Cardiology Department, H\u00f4pital Saint..."}]},{"given":"Nassim","family":"Redjimi","sequence":"additional","affiliation":[{"name":"From + Sorbonne Universit\u00e9, ACTION Group, INSERM Unit\u00e9 Mixte de Recherche + (UMRS) 1166, H\u00f4pital Piti\u00e9\u2013Salp\u00eatri\u00e8re Assistance + Publique\u2013H\u00f4pitaux de Paris (AP-HP) (J.S., P.G., N.P., K.A., G.M.), + the Department of Cardiology, H\u00f4pital Europ\u00e9en Georges Pompidou, + AP-HP, Universit\u00e9 Paris Cit\u00e9 (E.P.), FACT (French Alliance for Cardiovascular + Trials) (G.L.), the Department of Cardiology, Universit\u00e9 Paris Cit\u00e9, + H\u00f4pital Lariboisi\u00e8re, AP-HP, INSERM Unit\u00e9 942 (J.-G.D.), the + Cardiology Department, H\u00f4pital Saint..."}]},{"ORCID":"http:\/\/orcid.org\/0000-0003-3134-6875","authenticated-orcid":false,"given":"Christophe","family":"Thuaire","sequence":"additional","affiliation":[{"name":"From + Sorbonne Universit\u00e9, ACTION Group, INSERM Unit\u00e9 Mixte de Recherche + (UMRS) 1166, H\u00f4pital Piti\u00e9\u2013Salp\u00eatri\u00e8re Assistance + Publique\u2013H\u00f4pitaux de Paris (AP-HP) (J.S., P.G., N.P., K.A., G.M.), + the Department of Cardiology, H\u00f4pital Europ\u00e9en Georges Pompidou, + AP-HP, Universit\u00e9 Paris Cit\u00e9 (E.P.), FACT (French Alliance for Cardiovascular + Trials) (G.L.), the Department of Cardiology, Universit\u00e9 Paris Cit\u00e9, + H\u00f4pital Lariboisi\u00e8re, AP-HP, INSERM Unit\u00e9 942 (J.-G.D.), the + Cardiology Department, H\u00f4pital Saint..."}]},{"ORCID":"http:\/\/orcid.org\/0000-0001-5910-3002","authenticated-orcid":false,"given":"Pierre","family":"Deharo","sequence":"additional","affiliation":[{"name":"From + Sorbonne Universit\u00e9, ACTION Group, INSERM Unit\u00e9 Mixte de Recherche + (UMRS) 1166, H\u00f4pital Piti\u00e9\u2013Salp\u00eatri\u00e8re Assistance + Publique\u2013H\u00f4pitaux de Paris (AP-HP) (J.S., P.G., N.P., K.A., G.M.), + the Department of Cardiology, H\u00f4pital Europ\u00e9en Georges Pompidou, + AP-HP, Universit\u00e9 Paris Cit\u00e9 (E.P.), FACT (French Alliance for Cardiovascular + Trials) (G.L.), the Department of Cardiology, Universit\u00e9 Paris Cit\u00e9, + H\u00f4pital Lariboisi\u00e8re, AP-HP, INSERM Unit\u00e9 942 (J.-G.D.), the + Cardiology Department, H\u00f4pital Saint..."}]},{"given":"Niki","family":"Procopi","sequence":"additional","affiliation":[{"name":"From + Sorbonne Universit\u00e9, ACTION Group, INSERM Unit\u00e9 Mixte de Recherche + (UMRS) 1166, H\u00f4pital Piti\u00e9\u2013Salp\u00eatri\u00e8re Assistance + Publique\u2013H\u00f4pitaux de Paris (AP-HP) (J.S., P.G., N.P., K.A., G.M.), + the Department of Cardiology, H\u00f4pital Europ\u00e9en Georges Pompidou, + AP-HP, Universit\u00e9 Paris Cit\u00e9 (E.P.), FACT (French Alliance for Cardiovascular + Trials) (G.L.), the Department of Cardiology, Universit\u00e9 Paris Cit\u00e9, + H\u00f4pital Lariboisi\u00e8re, AP-HP, INSERM Unit\u00e9 942 (J.-G.D.), the + Cardiology Department, H\u00f4pital Saint..."}]},{"given":"Raphaelle","family":"Dumaine","sequence":"additional","affiliation":[{"name":"From + Sorbonne Universit\u00e9, ACTION Group, INSERM Unit\u00e9 Mixte de Recherche + (UMRS) 1166, H\u00f4pital Piti\u00e9\u2013Salp\u00eatri\u00e8re Assistance + Publique\u2013H\u00f4pitaux de Paris (AP-HP) (J.S., P.G., N.P., K.A., G.M.), + the Department of Cardiology, H\u00f4pital Europ\u00e9en Georges Pompidou, + AP-HP, Universit\u00e9 Paris Cit\u00e9 (E.P.), FACT (French Alliance for Cardiovascular + Trials) (G.L.), the Department of Cardiology, Universit\u00e9 Paris Cit\u00e9, + H\u00f4pital Lariboisi\u00e8re, AP-HP, INSERM Unit\u00e9 942 (J.-G.D.), the + Cardiology Department, H\u00f4pital Saint..."}]},{"given":"Michel","family":"Slama","sequence":"additional","affiliation":[{"name":"From + Sorbonne Universit\u00e9, ACTION Group, INSERM Unit\u00e9 Mixte de Recherche + (UMRS) 1166, H\u00f4pital Piti\u00e9\u2013Salp\u00eatri\u00e8re Assistance + Publique\u2013H\u00f4pitaux de Paris (AP-HP) (J.S., P.G., N.P., K.A., G.M.), + the Department of Cardiology, H\u00f4pital Europ\u00e9en Georges Pompidou, + AP-HP, Universit\u00e9 Paris Cit\u00e9 (E.P.), FACT (French Alliance for Cardiovascular + Trials) (G.L.), the Department of Cardiology, Universit\u00e9 Paris Cit\u00e9, + H\u00f4pital Lariboisi\u00e8re, AP-HP, INSERM Unit\u00e9 942 (J.-G.D.), the + Cardiology Department, H\u00f4pital Saint..."}]},{"given":"Laurent","family":"Payot","sequence":"additional","affiliation":[{"name":"From + Sorbonne Universit\u00e9, ACTION Group, INSERM Unit\u00e9 Mixte de Recherche + (UMRS) 1166, H\u00f4pital Piti\u00e9\u2013Salp\u00eatri\u00e8re Assistance + Publique\u2013H\u00f4pitaux de Paris (AP-HP) (J.S., P.G., N.P., K.A., G.M.), + the Department of Cardiology, H\u00f4pital Europ\u00e9en Georges Pompidou, + AP-HP, Universit\u00e9 Paris Cit\u00e9 (E.P.), FACT (French Alliance for Cardiovascular + Trials) (G.L.), the Department of Cardiology, Universit\u00e9 Paris Cit\u00e9, + H\u00f4pital Lariboisi\u00e8re, AP-HP, INSERM Unit\u00e9 942 (J.-G.D.), the + Cardiology Department, H\u00f4pital Saint..."}]},{"given":"Mohamad","family":"El + Kasty","sequence":"additional","affiliation":[{"name":"From Sorbonne Universit\u00e9, + ACTION Group, INSERM Unit\u00e9 Mixte de Recherche (UMRS) 1166, H\u00f4pital + Piti\u00e9\u2013Salp\u00eatri\u00e8re Assistance Publique\u2013H\u00f4pitaux + de Paris (AP-HP) (J.S., P.G., N.P., K.A., G.M.), the Department of Cardiology, + H\u00f4pital Europ\u00e9en Georges Pompidou, AP-HP, Universit\u00e9 Paris + Cit\u00e9 (E.P.), FACT (French Alliance for Cardiovascular Trials) (G.L.), + the Department of Cardiology, Universit\u00e9 Paris Cit\u00e9, H\u00f4pital + Lariboisi\u00e8re, AP-HP, INSERM Unit\u00e9 942 (J.-G.D.), the Cardiology + Department, H\u00f4pital Saint..."}]},{"given":"Karim","family":"Aacha","sequence":"additional","affiliation":[{"name":"From + Sorbonne Universit\u00e9, ACTION Group, INSERM Unit\u00e9 Mixte de Recherche + (UMRS) 1166, H\u00f4pital Piti\u00e9\u2013Salp\u00eatri\u00e8re Assistance + Publique\u2013H\u00f4pitaux de Paris (AP-HP) (J.S., P.G., N.P., K.A., G.M.), + the Department of Cardiology, H\u00f4pital Europ\u00e9en Georges Pompidou, + AP-HP, Universit\u00e9 Paris Cit\u00e9 (E.P.), FACT (French Alliance for Cardiovascular + Trials) (G.L.), the Department of Cardiology, Universit\u00e9 Paris Cit\u00e9, + H\u00f4pital Lariboisi\u00e8re, AP-HP, INSERM Unit\u00e9 942 (J.-G.D.), the + Cardiology Department, H\u00f4pital Saint..."}]},{"given":"Abdourahmane","family":"Diallo","sequence":"additional","affiliation":[{"name":"From + Sorbonne Universit\u00e9, ACTION Group, INSERM Unit\u00e9 Mixte de Recherche + (UMRS) 1166, H\u00f4pital Piti\u00e9\u2013Salp\u00eatri\u00e8re Assistance + Publique\u2013H\u00f4pitaux de Paris (AP-HP) (J.S., P.G., N.P., K.A., G.M.), + the Department of Cardiology, H\u00f4pital Europ\u00e9en Georges Pompidou, + AP-HP, Universit\u00e9 Paris Cit\u00e9 (E.P.), FACT (French Alliance for Cardiovascular + Trials) (G.L.), the Department of Cardiology, Universit\u00e9 Paris Cit\u00e9, + H\u00f4pital Lariboisi\u00e8re, AP-HP, INSERM Unit\u00e9 942 (J.-G.D.), the + Cardiology Department, H\u00f4pital Saint..."}]},{"given":"Eric","family":"Vicaut","sequence":"additional","affiliation":[{"name":"From + Sorbonne Universit\u00e9, ACTION Group, INSERM Unit\u00e9 Mixte de Recherche + (UMRS) 1166, H\u00f4pital Piti\u00e9\u2013Salp\u00eatri\u00e8re Assistance + Publique\u2013H\u00f4pitaux de Paris (AP-HP) (J.S., P.G., N.P., K.A., G.M.), + the Department of Cardiology, H\u00f4pital Europ\u00e9en Georges Pompidou, + AP-HP, Universit\u00e9 Paris Cit\u00e9 (E.P.), FACT (French Alliance for Cardiovascular + Trials) (G.L.), the Department of Cardiology, Universit\u00e9 Paris Cit\u00e9, + H\u00f4pital Lariboisi\u00e8re, AP-HP, INSERM Unit\u00e9 942 (J.-G.D.), the + Cardiology Department, H\u00f4pital Saint..."}]},{"given":"Gilles","family":"Montalescot","sequence":"additional","affiliation":[{"name":"From + Sorbonne Universit\u00e9, ACTION Group, INSERM Unit\u00e9 Mixte de Recherche + (UMRS) 1166, H\u00f4pital Piti\u00e9\u2013Salp\u00eatri\u00e8re Assistance + Publique\u2013H\u00f4pitaux de Paris (AP-HP) (J.S., P.G., N.P., K.A., G.M.), + the Department of Cardiology, H\u00f4pital Europ\u00e9en Georges Pompidou, + AP-HP, Universit\u00e9 Paris Cit\u00e9 (E.P.), FACT (French Alliance for Cardiovascular + Trials) (G.L.), the Department of Cardiology, Universit\u00e9 Paris Cit\u00e9, + H\u00f4pital Lariboisi\u00e8re, AP-HP, INSERM Unit\u00e9 942 (J.-G.D.), the + Cardiology Department, H\u00f4pital Saint..."}]}],"container-title":["New + England Journal of Medicine"],"title":["Beta-Blocker Interruption or Continuation + after Myocardial Infarction"]}],"items-per-page":1,"query":{"start-index":0,"search-terms":null}}}' + headers: + Access-Control-Allow-Headers: + - X-Requested-With, Accept, Accept-Encoding, Accept-Charset, Accept-Language, + Accept-Ranges, Cache-Control + Access-Control-Allow-Origin: + - "*" + Access-Control-Expose-Headers: + - Link + Connection: + - close + Content-Encoding: + - gzip + Content-Length: + - "1356" + Content-Type: + - application/json + Date: + - Mon, 16 Sep 2024 16:00:11 GMT + Server: + - Jetty(9.4.40.v20210413) + Vary: + - Accept-Encoding + permissions-policy: + - interest-cohort=() + x-api-pool: + - plus + x-rate-limit-interval: + - 1s + x-rate-limit-limit: + - "150" + x-ratelimit-interval: + - 1s + x-ratelimit-limit: + - "150" + status: + code: 200 + message: OK version: 1 diff --git a/tests/cassettes/test_title_search[paper_attributes0].yaml b/tests/cassettes/test_title_search[paper_attributes0].yaml index 4f3b1e10..72d477b0 100644 --- a/tests/cassettes/test_title_search[paper_attributes0].yaml +++ b/tests/cassettes/test_title_search[paper_attributes0].yaml @@ -1,4 +1,58 @@ interactions: + - request: + body: null + headers: {} + method: GET + uri: https://api.unpaywall.org/v2/search?query=Effect%20of%20native%20oxide%20layers%20on%20copper%20thin-film%20tensile%20properties:%20A%20reactive%20molecular%20dynamics%20study&email=example@papercrow.ai + response: + body: + string: + '{"elapsed_seconds":0.293,"results":[{"response":{"best_oa_location":null,"data_standard":2,"doi":"10.1063/1.4938384","doi_url":"https://doi.org/10.1063/1.4938384","first_oa_location":null,"genre":"journal-article","has_repository_copy":false,"is_oa":false,"is_paratext":false,"journal_is_in_doaj":false,"journal_is_oa":false,"journal_issn_l":"0021-8979","journal_issns":"0021-8979,1089-7550","journal_name":"Journal + of Applied Physics","oa_locations":[],"oa_locations_embargoed":[],"oa_status":"closed","published_date":"2015-12-21","publisher":"AIP + Publishing","title":"Effect of native oxide layers on copper thin-film tensile + properties: A reactive molecular dynamics study","updated":"2023-07-31T05:28:57.007821","year":2015,"z_authors":[{"affiliation":[{"name":"University + of Rochester 1 Materials Science Program, , Rochester, New York 14627, USA"}],"family":"Skarlinski","given":"Michael + D.","sequence":"first"},{"affiliation":[{"name":"University of Rochester 1 + Materials Science Program, , Rochester, New York 14627, USA"},{"name":"University + of Rochester 2 Department of Mechanical Engineering, , Rochester, New York + 14627, USA"}],"family":"Quesnel","given":"David J.","sequence":"additional"}]},"score":0.009231734,"snippet":"Effect + of native oxide layers on copper thin-film + tensile properties: A reactive molecular dynamics + study"}]} + + ' + headers: + Access-Control-Allow-Headers: + - origin, content-type, accept, x-requested-with + Access-Control-Allow-Methods: + - POST, GET, OPTIONS, PUT, DELETE, PATCH + Access-Control-Allow-Origin: + - "*" + Connection: + - keep-alive + Content-Encoding: + - gzip + Content-Length: + - "706" + Content-Type: + - application/json + Date: + - Mon, 16 Sep 2024 14:27:14 GMT + Nel: + - '{"report_to":"heroku-nel","max_age":3600,"success_fraction":0.005,"failure_fraction":0.05,"response_headers":["Via"]}' + Report-To: + - '{"group":"heroku-nel","max_age":3600,"endpoints":[{"url":"https://nel.heroku.com/reports?ts=1726496834&sid=c46efe9b-d3d2-4a0c-8c76-bfafa16c5add&s=8Yb6yS3oBlsm7GItef5gXCaZZ5ZTUCpWzHxYNQaGnzk%3D"}]}' + Reporting-Endpoints: + - heroku-nel=https://nel.heroku.com/reports?ts=1726496834&sid=c46efe9b-d3d2-4a0c-8c76-bfafa16c5add&s=8Yb6yS3oBlsm7GItef5gXCaZZ5ZTUCpWzHxYNQaGnzk%3D + Server: + - gunicorn + Vary: + - Accept-Encoding + Via: + - 1.1 vegur + status: + code: 200 + message: OK - request: body: null headers: {} @@ -21,7 +75,7 @@ interactions: tensile properties: A reactive molecular dynamics study},\n volume = {118},\n year = {2015}\n}\n"}, "authors": [{"authorId": "9821934", "name": "Michael Skarlinski"}, {"authorId": "37723150", "name": "D. Quesnel"}], "matchScore": - 283.23224}]} + 283.16406}]} ' headers: @@ -34,27 +88,27 @@ interactions: Content-Type: - application/json Date: - - Wed, 04 Sep 2024 22:54:18 GMT + - Mon, 16 Sep 2024 14:27:15 GMT Via: - - 1.1 e8075a4d83e15c8c6543597e1a8de938.cloudfront.net (CloudFront) + - 1.1 ad82d8a3c91257adecf18541576c7e72.cloudfront.net (CloudFront) X-Amz-Cf-Id: - - vB0latP66Hte1od43bgj7T8qLdb6UzgZtdqHNa2gxDLLvDKO6z_zQg== + - tzP7nmuXE6ItJQWbUpPZ2NM0OcRWRQnHsH4xNcUm1ww6zfKlEeF7Qg== X-Amz-Cf-Pop: - SFO53-C1 X-Cache: - Miss from cloudfront x-amz-apigw-id: - - dmi8GFhlvHcErEg= + - eM76cF3EPHcEbeQ= x-amzn-Remapped-Connection: - keep-alive x-amzn-Remapped-Content-Length: - "1109" x-amzn-Remapped-Date: - - Wed, 04 Sep 2024 22:54:18 GMT + - Mon, 16 Sep 2024 14:27:15 GMT x-amzn-Remapped-Server: - gunicorn x-amzn-RequestId: - - 88340ebb-a44f-4660-aa0f-f42e231133a9 + - 63c346cc-8764-4aea-a3d2-f29ca40b0d70 status: code: 200 message: OK @@ -66,7 +120,7 @@ interactions: response: body: string: - '{"status":"ok","message-type":"work-list","message-version":"1.0.0","message":{"facets":{},"total-results":11790075,"items":[{"indexed":{"date-parts":[[2023,9,29]],"date-time":"2023-09-29T22:47:50Z","timestamp":1696027670718},"reference-count":57,"publisher":"AIP + '{"status":"ok","message-type":"work-list","message-version":"1.0.0","message":{"facets":{},"total-results":11817992,"items":[{"indexed":{"date-parts":[[2023,9,29]],"date-time":"2023-09-29T22:47:50Z","timestamp":1696027670718},"reference-count":57,"publisher":"AIP Publishing","issue":"23","funder":[{"DOI":"10.13039\/100000006","name":"Office of Naval Research","doi-asserted-by":"publisher","award":["N00014-12-1-0542"],"id":[{"id":"10.13039\/100000006","id-type":"DOI","asserted-by":"publisher"}]}],"content-domain":{"domain":["pubs.aip.org"],"crossmark-restriction":true},"published-print":{"date-parts":[[2015,12,21]]},"abstract":"Metal-oxide layers are likely to be present on metallic nano-structures due to either @@ -160,7 +214,7 @@ interactions: Sci. Eng. A"},{"key":"2023062402360541600_c55","doi-asserted-by":"publisher","first-page":"057129","DOI":"10.1063\/1.4880241","volume":"4","year":"2014","journal-title":"AIP Adv."},{"key":"2023062402360541600_c56","doi-asserted-by":"publisher","first-page":"94","DOI":"10.1016\/j.susc.2014.10.017","volume":"633","year":"2015","journal-title":"Surf. Sci."},{"key":"2023062402360541600_c57","doi-asserted-by":"publisher","first-page":"710","DOI":"10.1016\/j.pmatsci.2010.04.001","volume":"55","year":"2010","journal-title":"Prog. - Mater. Sci."}],"container-title":["Journal of Applied Physics"],"language":"en","link":[{"URL":"https:\/\/pubs.aip.org\/aip\/jap\/article-pdf\/doi\/10.1063\/1.4938384\/15174088\/235306_1_online.pdf","content-type":"application\/pdf","content-version":"vor","intended-application":"syndication"},{"URL":"https:\/\/pubs.aip.org\/aip\/jap\/article-pdf\/doi\/10.1063\/1.4938384\/15174088\/235306_1_online.pdf","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2023,6,24]],"date-time":"2023-06-24T15:07:33Z","timestamp":1687619253000},"score":64.015274,"resource":{"primary":{"URL":"https:\/\/pubs.aip.org\/jap\/article\/118\/23\/235306\/141678\/Effect-of-native-oxide-layers-on-copper-thin-film"}},"issued":{"date-parts":[[2015,12,21]]},"references-count":57,"journal-issue":{"issue":"23","published-print":{"date-parts":[[2015,12,21]]}},"URL":"http:\/\/dx.doi.org\/10.1063\/1.4938384","ISSN":["0021-8979","1089-7550"],"issn-type":[{"value":"0021-8979","type":"print"},{"value":"1089-7550","type":"electronic"}],"published-other":{"date-parts":[[2015,12,21]]},"published":{"date-parts":[[2015,12,21]]}}],"items-per-page":1,"query":{"start-index":0,"search-terms":null}}}' + Mater. Sci."}],"container-title":["Journal of Applied Physics"],"language":"en","link":[{"URL":"https:\/\/pubs.aip.org\/aip\/jap\/article-pdf\/doi\/10.1063\/1.4938384\/15174088\/235306_1_online.pdf","content-type":"application\/pdf","content-version":"vor","intended-application":"syndication"},{"URL":"https:\/\/pubs.aip.org\/aip\/jap\/article-pdf\/doi\/10.1063\/1.4938384\/15174088\/235306_1_online.pdf","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2023,6,24]],"date-time":"2023-06-24T15:07:33Z","timestamp":1687619253000},"score":63.781567,"resource":{"primary":{"URL":"https:\/\/pubs.aip.org\/jap\/article\/118\/23\/235306\/141678\/Effect-of-native-oxide-layers-on-copper-thin-film"}},"issued":{"date-parts":[[2015,12,21]]},"references-count":57,"journal-issue":{"issue":"23","published-print":{"date-parts":[[2015,12,21]]}},"URL":"http:\/\/dx.doi.org\/10.1063\/1.4938384","ISSN":["0021-8979","1089-7550"],"issn-type":[{"value":"0021-8979","type":"print"},{"value":"1089-7550","type":"electronic"}],"published-other":{"date-parts":[[2015,12,21]]},"published":{"date-parts":[[2015,12,21]]}}],"items-per-page":1,"query":{"start-index":0,"search-terms":null}}}' headers: Access-Control-Allow-Headers: - X-Requested-With, Accept, Accept-Encoding, Accept-Charset, Accept-Language, @@ -174,11 +228,11 @@ interactions: Content-Encoding: - gzip Content-Length: - - "3945" + - "3947" Content-Type: - application/json Date: - - Wed, 04 Sep 2024 22:54:18 GMT + - Mon, 16 Sep 2024 14:27:15 GMT Server: - Jetty(9.4.40.v20210413) Vary: @@ -225,7 +279,7 @@ interactions: Connection: - close Date: - - Wed, 04 Sep 2024 22:54:19 GMT + - Mon, 16 Sep 2024 14:27:16 GMT Server: - Jetty(9.4.40.v20210413) Transfer-Encoding: @@ -245,58 +299,4 @@ interactions: status: code: 200 message: OK - - request: - body: null - headers: {} - method: GET - uri: https://api.unpaywall.org/v2/search?query=Effect%20of%20native%20oxide%20layers%20on%20copper%20thin-film%20tensile%20properties:%20A%20reactive%20molecular%20dynamics%20study&email=example@papercrow.ai - response: - body: - string: - '{"elapsed_seconds":0.357,"results":[{"response":{"best_oa_location":null,"data_standard":2,"doi":"10.1063/1.4938384","doi_url":"https://doi.org/10.1063/1.4938384","first_oa_location":null,"genre":"journal-article","has_repository_copy":false,"is_oa":false,"is_paratext":false,"journal_is_in_doaj":false,"journal_is_oa":false,"journal_issn_l":"0021-8979","journal_issns":"0021-8979,1089-7550","journal_name":"Journal - of Applied Physics","oa_locations":[],"oa_locations_embargoed":[],"oa_status":"closed","published_date":"2015-12-21","publisher":"AIP - Publishing","title":"Effect of native oxide layers on copper thin-film tensile - properties: A reactive molecular dynamics study","updated":"2023-07-31T05:28:57.007821","year":2015,"z_authors":[{"affiliation":[{"name":"University - of Rochester 1 Materials Science Program, , Rochester, New York 14627, USA"}],"family":"Skarlinski","given":"Michael - D.","sequence":"first"},{"affiliation":[{"name":"University of Rochester 1 - Materials Science Program, , Rochester, New York 14627, USA"},{"name":"University - of Rochester 2 Department of Mechanical Engineering, , Rochester, New York - 14627, USA"}],"family":"Quesnel","given":"David J.","sequence":"additional"}]},"score":0.009231734,"snippet":"Effect - of native oxide layers on copper thin-film - tensile properties: A reactive molecular dynamics - study"}]} - - ' - headers: - Access-Control-Allow-Headers: - - origin, content-type, accept, x-requested-with - Access-Control-Allow-Methods: - - POST, GET, OPTIONS, PUT, DELETE, PATCH - Access-Control-Allow-Origin: - - "*" - Connection: - - keep-alive - Content-Encoding: - - gzip - Content-Length: - - "706" - Content-Type: - - application/json - Date: - - Wed, 04 Sep 2024 22:54:20 GMT - Nel: - - '{"report_to":"heroku-nel","max_age":3600,"success_fraction":0.005,"failure_fraction":0.05,"response_headers":["Via"]}' - Report-To: - - '{"group":"heroku-nel","max_age":3600,"endpoints":[{"url":"https://nel.heroku.com/reports?ts=1725490458&sid=c46efe9b-d3d2-4a0c-8c76-bfafa16c5add&s=3iH3mreiGrF6hHOFWXTx5avt8oC7DhAjNvJhBq5sqs8%3D"}]}' - Reporting-Endpoints: - - heroku-nel=https://nel.heroku.com/reports?ts=1725490458&sid=c46efe9b-d3d2-4a0c-8c76-bfafa16c5add&s=3iH3mreiGrF6hHOFWXTx5avt8oC7DhAjNvJhBq5sqs8%3D - Server: - - gunicorn - Vary: - - Accept-Encoding - Via: - - 1.1 vegur - status: - code: 200 - message: OK version: 1 diff --git a/tests/cassettes/test_title_search[paper_attributes1].yaml b/tests/cassettes/test_title_search[paper_attributes1].yaml index 3973edff..d7cabab8 100644 --- a/tests/cassettes/test_title_search[paper_attributes1].yaml +++ b/tests/cassettes/test_title_search[paper_attributes1].yaml @@ -6,7 +6,7 @@ interactions: uri: https://api.unpaywall.org/v2/search?query=PaperQA:%20Retrieval-Augmented%20Generative%20Agent%20for%20Scientific%20Research&email=example@papercrow.ai response: body: - string: '{"elapsed_seconds":0.018,"results":[]} + string: '{"elapsed_seconds":0.021,"results":[]} ' headers: @@ -23,13 +23,13 @@ interactions: Content-Type: - application/json Date: - - Wed, 04 Sep 2024 22:54:20 GMT + - Mon, 16 Sep 2024 14:27:24 GMT Nel: - '{"report_to":"heroku-nel","max_age":3600,"success_fraction":0.005,"failure_fraction":0.05,"response_headers":["Via"]}' Report-To: - - '{"group":"heroku-nel","max_age":3600,"endpoints":[{"url":"https://nel.heroku.com/reports?ts=1725490460&sid=c46efe9b-d3d2-4a0c-8c76-bfafa16c5add&s=HLxBN33rMeUOx491OpwKHBqFWhk%2F47Zh%2FMQMQA3ZIc0%3D"}]}' + - '{"group":"heroku-nel","max_age":3600,"endpoints":[{"url":"https://nel.heroku.com/reports?ts=1726496844&sid=c46efe9b-d3d2-4a0c-8c76-bfafa16c5add&s=8R%2FkS7ZX7kIO47oqQL9k7%2F0TOIAIV7TNhokT4OBh6HQ%3D"}]}' Reporting-Endpoints: - - heroku-nel=https://nel.heroku.com/reports?ts=1725490460&sid=c46efe9b-d3d2-4a0c-8c76-bfafa16c5add&s=HLxBN33rMeUOx491OpwKHBqFWhk%2F47Zh%2FMQMQA3ZIc0%3D + - heroku-nel=https://nel.heroku.com/reports?ts=1726496844&sid=c46efe9b-d3d2-4a0c-8c76-bfafa16c5add&s=8R%2FkS7ZX7kIO47oqQL9k7%2F0TOIAIV7TNhokT4OBh6HQ%3D Server: - gunicorn Via: @@ -37,6 +37,67 @@ interactions: status: code: 200 message: OK + - request: + body: null + headers: {} + method: GET + uri: https://api.semanticscholar.org/graph/v1/paper/search/match?query=PaperQA:+Retrieval-Augmented+Generative+Agent+for+Scientific+Research&fields=authors,citationCount,citationStyles,externalIds,influentialCitationCount,isOpenAccess,journal,openAccessPdf,publicationDate,publicationTypes,title,url,venue,year + response: + body: + string: + '{"data": [{"paperId": "7e55d8701785818776323b4147cb13354c820469", "externalIds": + {"ArXiv": "2312.07559", "DBLP": "journals/corr/abs-2312-07559", "DOI": "10.48550/arXiv.2312.07559", + "CorpusId": 266191420}, "url": "https://www.semanticscholar.org/paper/7e55d8701785818776323b4147cb13354c820469", + "title": "PaperQA: Retrieval-Augmented Generative Agent for Scientific Research", + "venue": "arXiv.org", "year": 2023, "citationCount": 25, "influentialCitationCount": + 1, "isOpenAccess": false, "openAccessPdf": null, "publicationTypes": ["JournalArticle"], + "publicationDate": "2023-12-08", "journal": {"name": "ArXiv", "volume": "abs/2312.07559"}, + "citationStyles": {"bibtex": "@Article{L''ala2023PaperQARG,\n author = {Jakub + L''ala and Odhran O''Donoghue and Aleksandar Shtedritski and Sam Cox and Samuel + G. Rodriques and Andrew D. White},\n booktitle = {arXiv.org},\n journal = + {ArXiv},\n title = {PaperQA: Retrieval-Augmented Generative Agent for Scientific + Research},\n volume = {abs/2312.07559},\n year = {2023}\n}\n"}, "authors": + [{"authorId": "2219926382", "name": "Jakub L''ala"}, {"authorId": "2258961056", + "name": "Odhran O''Donoghue"}, {"authorId": "2258961451", "name": "Aleksandar + Shtedritski"}, {"authorId": "2161337138", "name": "Sam Cox"}, {"authorId": + "2258964497", "name": "Samuel G. Rodriques"}, {"authorId": "2273941271", "name": + "Andrew D. White"}], "matchScore": 245.30392}]} + + ' + headers: + Access-Control-Allow-Origin: + - "*" + Connection: + - keep-alive + Content-Length: + - "1386" + Content-Type: + - application/json + Date: + - Mon, 16 Sep 2024 14:27:24 GMT + Via: + - 1.1 cc58556a6e846289f4d3105969536e4c.cloudfront.net (CloudFront) + X-Amz-Cf-Id: + - vYVSmPNOxrNMlkPspTDYwQvTEjEt_FnRdoOcXM_xqzHzattndSdWnA== + X-Amz-Cf-Pop: + - SFO53-C1 + X-Cache: + - Miss from cloudfront + x-amz-apigw-id: + - eM78AGtAPHcElCw= + x-amzn-Remapped-Connection: + - keep-alive + x-amzn-Remapped-Content-Length: + - "1386" + x-amzn-Remapped-Date: + - Mon, 16 Sep 2024 14:27:24 GMT + x-amzn-Remapped-Server: + - gunicorn + x-amzn-RequestId: + - 20898718-6cb6-472f-95a9-0dce2bb43279 + status: + code: 200 + message: OK - request: body: null headers: {} @@ -45,7 +106,7 @@ interactions: response: body: string: - '{"status":"ok","message-type":"work-list","message-version":"1.0.0","message":{"facets":{},"total-results":2016375,"items":[{"indexed":{"date-parts":[[2024,3,8]],"date-time":"2024-03-08T00:26:06Z","timestamp":1709857566241},"reference-count":48,"publisher":"Oxford + '{"status":"ok","message-type":"work-list","message-version":"1.0.0","message":{"facets":{},"total-results":2022077,"items":[{"indexed":{"date-parts":[[2024,3,8]],"date-time":"2024-03-08T00:26:06Z","timestamp":1709857566241},"reference-count":48,"publisher":"Oxford University Press (OUP)","issue":"1","license":[{"start":{"date-parts":[[2024,2,21]],"date-time":"2024-02-21T00:00:00Z","timestamp":1708473600000},"content-version":"vor","delay-in-days":48,"URL":"https:\/\/creativecommons.org\/licenses\/by\/4.0\/"}],"funder":[{"DOI":"10.13039\/100000092","name":"National Library of Medicine","doi-asserted-by":"publisher","award":["R01LM009886","R01LM014344"],"id":[{"id":"10.13039\/100000092","id-type":"DOI","asserted-by":"publisher"}]},{"DOI":"10.13039\/100006108","name":"National Center for Advancing Translational Sciences","doi-asserted-by":"publisher","award":["UL1TR001873"],"id":[{"id":"10.13039\/100006108","id-type":"DOI","asserted-by":"publisher"}]},{"DOI":"10.13039\/100000002","name":"National @@ -132,7 +193,7 @@ interactions: gain-based evaluation of IR techniques","volume":"20","author":"J\u00e4rvelin","year":"2002","journal-title":"ACM Trans Inf Syst"},{"key":"2024030720490192400_ooae021-B46","volume-title":"Evidence-Based Practice in Nursing & Healthcare: A Guide to Best Practice","author":"Melnyk","year":"2022"},{"key":"2024030720490192400_ooae021-B47","first-page":"206","author":"Gupta","year":"2017"},{"key":"2024030720490192400_ooae021-B48","first-page":"1","author":"Park","year":"2012"}],"container-title":["JAMIA - Open"],"language":"en","link":[{"URL":"https:\/\/academic.oup.com\/jamiaopen\/advance-article-pdf\/doi\/10.1093\/jamiaopen\/ooae021\/56732770\/ooae021.pdf","content-type":"application\/pdf","content-version":"am","intended-application":"syndication"},{"URL":"https:\/\/academic.oup.com\/jamiaopen\/article-pdf\/7\/1\/ooae021\/56904263\/ooae021.pdf","content-type":"application\/pdf","content-version":"vor","intended-application":"syndication"},{"URL":"https:\/\/academic.oup.com\/jamiaopen\/article-pdf\/7\/1\/ooae021\/56904263\/ooae021.pdf","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2024,3,7]],"date-time":"2024-03-07T20:49:23Z","timestamp":1709844563000},"score":28.21724,"resource":{"primary":{"URL":"https:\/\/academic.oup.com\/jamiaopen\/article\/doi\/10.1093\/jamiaopen\/ooae021\/7612234"}},"issued":{"date-parts":[[2024,1,4]]},"references-count":48,"journal-issue":{"issue":"1","published-print":{"date-parts":[[2024,1,4]]}},"URL":"http:\/\/dx.doi.org\/10.1093\/jamiaopen\/ooae021","ISSN":["2574-2531"],"issn-type":[{"value":"2574-2531","type":"electronic"}],"published-other":{"date-parts":[[2024,4,1]]},"published":{"date-parts":[[2024,1,4]]}}],"items-per-page":1,"query":{"start-index":0,"search-terms":null}}}' + Open"],"language":"en","link":[{"URL":"https:\/\/academic.oup.com\/jamiaopen\/advance-article-pdf\/doi\/10.1093\/jamiaopen\/ooae021\/56732770\/ooae021.pdf","content-type":"application\/pdf","content-version":"am","intended-application":"syndication"},{"URL":"https:\/\/academic.oup.com\/jamiaopen\/article-pdf\/7\/1\/ooae021\/56904263\/ooae021.pdf","content-type":"application\/pdf","content-version":"vor","intended-application":"syndication"},{"URL":"https:\/\/academic.oup.com\/jamiaopen\/article-pdf\/7\/1\/ooae021\/56904263\/ooae021.pdf","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2024,3,7]],"date-time":"2024-03-07T20:49:23Z","timestamp":1709844563000},"score":27.98084,"resource":{"primary":{"URL":"https:\/\/academic.oup.com\/jamiaopen\/article\/doi\/10.1093\/jamiaopen\/ooae021\/7612234"}},"issued":{"date-parts":[[2024,1,4]]},"references-count":48,"journal-issue":{"issue":"1","published-print":{"date-parts":[[2024,1,4]]}},"URL":"http:\/\/dx.doi.org\/10.1093\/jamiaopen\/ooae021","ISSN":["2574-2531"],"issn-type":[{"value":"2574-2531","type":"electronic"}],"published-other":{"date-parts":[[2024,4,1]]},"published":{"date-parts":[[2024,1,4]]}}],"items-per-page":1,"query":{"start-index":0,"search-terms":null}}}' headers: Access-Control-Allow-Headers: - X-Requested-With, Accept, Accept-Encoding, Accept-Charset, Accept-Language, @@ -146,11 +207,11 @@ interactions: Content-Encoding: - gzip Content-Length: - - "4501" + - "4502" Content-Type: - application/json Date: - - Wed, 04 Sep 2024 22:54:20 GMT + - Mon, 16 Sep 2024 14:27:24 GMT Server: - Jetty(9.4.40.v20210413) Vary: @@ -170,65 +231,4 @@ interactions: status: code: 200 message: OK - - request: - body: null - headers: {} - method: GET - uri: https://api.semanticscholar.org/graph/v1/paper/search/match?query=PaperQA:+Retrieval-Augmented+Generative+Agent+for+Scientific+Research&fields=authors,citationCount,citationStyles,externalIds,influentialCitationCount,isOpenAccess,journal,openAccessPdf,publicationDate,publicationTypes,title,url,venue,year - response: - body: - string: - '{"data": [{"paperId": "7e55d8701785818776323b4147cb13354c820469", "externalIds": - {"ArXiv": "2312.07559", "DBLP": "journals/corr/abs-2312-07559", "DOI": "10.48550/arXiv.2312.07559", - "CorpusId": 266191420}, "url": "https://www.semanticscholar.org/paper/7e55d8701785818776323b4147cb13354c820469", - "title": "PaperQA: Retrieval-Augmented Generative Agent for Scientific Research", - "venue": "arXiv.org", "year": 2023, "citationCount": 23, "influentialCitationCount": - 1, "isOpenAccess": false, "openAccessPdf": null, "publicationTypes": ["JournalArticle"], - "publicationDate": "2023-12-08", "journal": {"name": "ArXiv", "volume": "abs/2312.07559"}, - "citationStyles": {"bibtex": "@Article{L''ala2023PaperQARG,\n author = {Jakub - L''ala and Odhran O''Donoghue and Aleksandar Shtedritski and Sam Cox and Samuel - G. Rodriques and Andrew D. White},\n booktitle = {arXiv.org},\n journal = - {ArXiv},\n title = {PaperQA: Retrieval-Augmented Generative Agent for Scientific - Research},\n volume = {abs/2312.07559},\n year = {2023}\n}\n"}, "authors": - [{"authorId": "2219926382", "name": "Jakub L''ala"}, {"authorId": "2258961056", - "name": "Odhran O''Donoghue"}, {"authorId": "2258961451", "name": "Aleksandar - Shtedritski"}, {"authorId": "2161337138", "name": "Sam Cox"}, {"authorId": - "2258964497", "name": "Samuel G. Rodriques"}, {"authorId": "2273941271", "name": - "Andrew D. White"}], "matchScore": 245.32262}]} - - ' - headers: - Access-Control-Allow-Origin: - - "*" - Connection: - - keep-alive - Content-Length: - - "1386" - Content-Type: - - application/json - Date: - - Wed, 04 Sep 2024 22:54:21 GMT - Via: - - 1.1 22dc875d744f932282ce89367c98a9de.cloudfront.net (CloudFront) - X-Amz-Cf-Id: - - wPdXFyJ6K74yqvcthCmUvijgxfYiphfPhTqPkAOi1NLDO3OTHvZfVQ== - X-Amz-Cf-Pop: - - SFO53-C1 - X-Cache: - - Miss from cloudfront - x-amz-apigw-id: - - dmi8gHlpvHcEFBg= - x-amzn-Remapped-Connection: - - keep-alive - x-amzn-Remapped-Content-Length: - - "1386" - x-amzn-Remapped-Date: - - Wed, 04 Sep 2024 22:54:21 GMT - x-amzn-Remapped-Server: - - gunicorn - x-amzn-RequestId: - - 3f4118a6-9ea7-482d-b995-b6732d7193e3 - status: - code: 200 - message: OK version: 1 diff --git a/tests/cassettes/test_title_search[paper_attributes2].yaml b/tests/cassettes/test_title_search[paper_attributes2].yaml index fa3c5b27..5fab5b72 100644 --- a/tests/cassettes/test_title_search[paper_attributes2].yaml +++ b/tests/cassettes/test_title_search[paper_attributes2].yaml @@ -7,7 +7,7 @@ interactions: response: body: string: - '{"status":"ok","message-type":"work-list","message-version":"1.0.0","message":{"facets":{},"total-results":2296021,"items":[{"indexed":{"date-parts":[[2024,9,4]],"date-time":"2024-09-04T17:39:08Z","timestamp":1725471548702},"reference-count":103,"publisher":"Springer + '{"status":"ok","message-type":"work-list","message-version":"1.0.0","message":{"facets":{},"total-results":2302135,"items":[{"indexed":{"date-parts":[[2024,9,13]],"date-time":"2024-09-13T07:49:27Z","timestamp":1726213767507},"reference-count":103,"publisher":"Springer Science and Business Media LLC","issue":"5","license":[{"start":{"date-parts":[[2024,5,8]],"date-time":"2024-05-08T00:00:00Z","timestamp":1715126400000},"content-version":"tdm","delay-in-days":0,"URL":"https:\/\/creativecommons.org\/licenses\/by\/4.0"},{"start":{"date-parts":[[2024,5,8]],"date-time":"2024-05-08T00:00:00Z","timestamp":1715126400000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/creativecommons.org\/licenses\/by\/4.0"}],"funder":[{"DOI":"10.13039\/501100001711","name":"Schweizerischer Nationalfonds zur F\u00f6rderung der Wissenschaftlichen Forschung","doi-asserted-by":"publisher","award":["180544","180544","180544"],"id":[{"id":"10.13039\/501100001711","id-type":"DOI","asserted-by":"publisher"}]},{"DOI":"10.13039\/100000001","name":"National Science Foundation","doi-asserted-by":"publisher","award":["1751471","1751471"],"id":[{"id":"10.13039\/100000001","id-type":"DOI","asserted-by":"publisher"}]}],"content-domain":{"domain":["link.springer.com"],"crossmark-restriction":false},"short-container-title":["Nat @@ -24,7 +24,7 @@ interactions: both LLM and expert assessments, demonstrates ChemCrow\u2019s effectiveness in automating a diverse set of chemical tasks. Our work not only aids expert chemists and lowers barriers for non-experts but also fosters scientific advancement - by bridging the gap between experimental and computational chemistry.<\/jats:p>","DOI":"10.1038\/s42256-024-00832-8","type":"journal-article","created":{"date-parts":[[2024,5,8]],"date-time":"2024-05-08T10:03:31Z","timestamp":1715162611000},"page":"525-535","update-policy":"http:\/\/dx.doi.org\/10.1007\/springer_crossmark_policy","source":"Crossref","is-referenced-by-count":17,"title":["Augmenting + by bridging the gap between experimental and computational chemistry.<\/jats:p>","DOI":"10.1038\/s42256-024-00832-8","type":"journal-article","created":{"date-parts":[[2024,5,8]],"date-time":"2024-05-08T10:03:31Z","timestamp":1715162611000},"page":"525-535","update-policy":"http:\/\/dx.doi.org\/10.1007\/springer_crossmark_policy","source":"Crossref","is-referenced-by-count":20,"title":["Augmenting large language models with chemistry tools"],"prefix":"10.1038","volume":"6","author":[{"given":"Andres","family":"M. Bran","sequence":"first","affiliation":[]},{"given":"Sam","family":"Cox","sequence":"additional","affiliation":[]},{"ORCID":"http:\/\/orcid.org\/0000-0003-0310-0851","authenticated-orcid":false,"given":"Oliver","family":"Schilter","sequence":"additional","affiliation":[]},{"given":"Carlo","family":"Baldassari","sequence":"additional","affiliation":[]},{"ORCID":"http:\/\/orcid.org\/0000-0002-6647-3965","authenticated-orcid":false,"given":"Andrew D.","family":"White","sequence":"additional","affiliation":[]},{"ORCID":"http:\/\/orcid.org\/0000-0003-3046-6576","authenticated-orcid":false,"given":"Philippe","family":"Schwaller","sequence":"additional","affiliation":[]}],"member":"297","published-online":{"date-parts":[[2024,5,8]]},"reference":[{"key":"832_CR1","unstructured":"Devlin, @@ -313,7 +313,7 @@ interactions: (2024).","DOI":"10.5281\/zenodo.10884645"},{"key":"832_CR103","doi-asserted-by":"publisher","unstructured":"Bran, A., Cox, S., White, A. & Schwaller, P. ur-whitelab\/chemcrow-public: v0.3.24. Zenodo https:\/\/doi.org\/10.5281\/zenodo.10884639 (2024).","DOI":"10.5281\/zenodo.10884639"}],"container-title":["Nature - Machine Intelligence"],"language":"en","link":[{"URL":"https:\/\/www.nature.com\/articles\/s42256-024-00832-8.pdf","content-type":"application\/pdf","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/www.nature.com\/articles\/s42256-024-00832-8","content-type":"text\/html","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/www.nature.com\/articles\/s42256-024-00832-8.pdf","content-type":"application\/pdf","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2024,5,23]],"date-time":"2024-05-23T23:03:31Z","timestamp":1716505411000},"score":46.731644,"resource":{"primary":{"URL":"https:\/\/www.nature.com\/articles\/s42256-024-00832-8"}},"issued":{"date-parts":[[2024,5,8]]},"references-count":103,"journal-issue":{"issue":"5","published-online":{"date-parts":[[2024,5]]}},"alternative-id":["832"],"URL":"http:\/\/dx.doi.org\/10.1038\/s42256-024-00832-8","ISSN":["2522-5839"],"issn-type":[{"value":"2522-5839","type":"electronic"}],"published":{"date-parts":[[2024,5,8]]},"assertion":[{"value":"13 + Machine Intelligence"],"language":"en","link":[{"URL":"https:\/\/www.nature.com\/articles\/s42256-024-00832-8.pdf","content-type":"application\/pdf","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/www.nature.com\/articles\/s42256-024-00832-8","content-type":"text\/html","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/www.nature.com\/articles\/s42256-024-00832-8.pdf","content-type":"application\/pdf","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2024,5,23]],"date-time":"2024-05-23T23:03:31Z","timestamp":1716505411000},"score":46.488018,"resource":{"primary":{"URL":"https:\/\/www.nature.com\/articles\/s42256-024-00832-8"}},"issued":{"date-parts":[[2024,5,8]]},"references-count":103,"journal-issue":{"issue":"5","published-online":{"date-parts":[[2024,5]]}},"alternative-id":["832"],"URL":"http:\/\/dx.doi.org\/10.1038\/s42256-024-00832-8","ISSN":["2522-5839"],"issn-type":[{"value":"2522-5839","type":"electronic"}],"published":{"date-parts":[[2024,5,8]]},"assertion":[{"value":"13 September 2023","order":1,"name":"received","label":"Received","group":{"name":"ArticleHistory","label":"Article History"}},{"value":"27 March 2024","order":2,"name":"accepted","label":"Accepted","group":{"name":"ArticleHistory","label":"Article History"}},{"value":"8 May 2024","order":3,"name":"first_online","label":"First @@ -334,11 +334,11 @@ interactions: Content-Encoding: - gzip Content-Length: - - "10574" + - "10575" Content-Type: - application/json Date: - - Wed, 04 Sep 2024 22:54:22 GMT + - Mon, 16 Sep 2024 14:27:33 GMT Server: - Jetty(9.4.40.v20210413) Vary: @@ -366,7 +366,7 @@ interactions: response: body: string: - '{"elapsed_seconds":0.298,"results":[{"response":{"best_oa_location":{"endpoint_id":null,"evidence":"open + '{"elapsed_seconds":0.315,"results":[{"response":{"best_oa_location":{"endpoint_id":null,"evidence":"open (via crossref license)","host_type":"publisher","is_best":true,"license":"cc-by","oa_date":"2024-05-08","pmh_id":null,"repository_institution":null,"updated":"2024-07-28T13:13:26.235272","url":"https://www.nature.com/articles/s42256-024-00832-8.pdf","url_for_landing_page":"https://doi.org/10.1038/s42256-024-00832-8","url_for_pdf":"https://www.nature.com/articles/s42256-024-00832-8.pdf","version":"publishedVersion"},"data_standard":2,"doi":"10.1038/s42256-024-00832-8","doi_url":"https://doi.org/10.1038/s42256-024-00832-8","first_oa_location":{"endpoint_id":null,"evidence":"open (via crossref license)","host_type":"publisher","is_best":true,"license":"cc-by","oa_date":"2024-05-08","pmh_id":null,"repository_institution":null,"updated":"2024-07-28T13:13:26.235272","url":"https://www.nature.com/articles/s42256-024-00832-8.pdf","url_for_landing_page":"https://doi.org/10.1038/s42256-024-00832-8","url_for_pdf":"https://www.nature.com/articles/s42256-024-00832-8.pdf","version":"publishedVersion"},"genre":"journal-article","has_repository_copy":true,"is_oa":true,"is_paratext":false,"journal_is_in_doaj":false,"journal_is_oa":false,"journal_issn_l":"2522-5839","journal_issns":"2522-5839","journal_name":"Nature Machine Intelligence","oa_locations":[{"endpoint_id":null,"evidence":"open @@ -1936,17 +1936,17 @@ interactions: Content-Encoding: - gzip Content-Length: - - "39585" + - "39584" Content-Type: - application/json Date: - - Wed, 04 Sep 2024 22:54:22 GMT + - Mon, 16 Sep 2024 14:27:33 GMT Nel: - '{"report_to":"heroku-nel","max_age":3600,"success_fraction":0.005,"failure_fraction":0.05,"response_headers":["Via"]}' Report-To: - - '{"group":"heroku-nel","max_age":3600,"endpoints":[{"url":"https://nel.heroku.com/reports?ts=1725490461&sid=c46efe9b-d3d2-4a0c-8c76-bfafa16c5add&s=j0vwwBQJBKSjl7xJkMYB4ksAyr6H3jKPUYltKx2FaWA%3D"}]}' + - '{"group":"heroku-nel","max_age":3600,"endpoints":[{"url":"https://nel.heroku.com/reports?ts=1726496853&sid=c46efe9b-d3d2-4a0c-8c76-bfafa16c5add&s=sp2SR2LAkKeYFx5X3Aha4VFoyxSXyXrEe1am8ilyHDk%3D"}]}' Reporting-Endpoints: - - heroku-nel=https://nel.heroku.com/reports?ts=1725490461&sid=c46efe9b-d3d2-4a0c-8c76-bfafa16c5add&s=j0vwwBQJBKSjl7xJkMYB4ksAyr6H3jKPUYltKx2FaWA%3D + - heroku-nel=https://nel.heroku.com/reports?ts=1726496853&sid=c46efe9b-d3d2-4a0c-8c76-bfafa16c5add&s=sp2SR2LAkKeYFx5X3Aha4VFoyxSXyXrEe1am8ilyHDk%3D Server: - gunicorn Vary: @@ -1969,7 +1969,7 @@ interactions: "11116106", "DOI": "10.1038/s42256-024-00832-8", "CorpusId": 258059792, "PubMed": "38799228"}, "url": "https://www.semanticscholar.org/paper/354dcdebf3f8b5feeed5c62090e0bc1f0c28db06", "title": "Augmenting large language models with chemistry tools", "venue": - "Nat. Mac. Intell.", "year": 2023, "citationCount": 191, "influentialCitationCount": + "Nat. Mac. Intell.", "year": 2023, "citationCount": 196, "influentialCitationCount": 12, "isOpenAccess": true, "openAccessPdf": {"url": "https://www.nature.com/articles/s42256-024-00832-8.pdf", "status": "HYBRID"}, "publicationTypes": ["JournalArticle"], "publicationDate": "2023-04-11", "journal": {"name": "Nature Machine Intelligence", "pages": @@ -1982,7 +1982,7 @@ interactions: M Bran"}, {"authorId": "2161337138", "name": "Sam Cox"}, {"authorId": "1820929773", "name": "Oliver Schilter"}, {"authorId": "2251414370", "name": "Carlo Baldassari"}, {"authorId": "2150199535", "name": "Andrew D. White"}, {"authorId": "1379965853", - "name": "P. Schwaller"}], "matchScore": 179.3787}]} + "name": "P. Schwaller"}], "matchScore": 177.60979}]} ' headers: @@ -1991,31 +1991,31 @@ interactions: Connection: - keep-alive Content-Length: - - "1550" + - "1551" Content-Type: - application/json Date: - - Wed, 04 Sep 2024 22:54:22 GMT + - Mon, 16 Sep 2024 14:27:33 GMT Via: - - 1.1 62c71b579b931f194fbc7abcc843d132.cloudfront.net (CloudFront) + - 1.1 0f4013a0af68dcba176ca4372e470df4.cloudfront.net (CloudFront) X-Amz-Cf-Id: - - VwbnXhY_A5M45lRneO76qNYDmL4RnBGAb0pjfkEcjJruMewyZUvaQQ== + - dd4-81xSX7SU7omkJU1Mlys_dal7O5oWEAfaDWM3J1pAk_F4JBFIbg== X-Amz-Cf-Pop: - SFO53-C1 X-Cache: - Miss from cloudfront x-amz-apigw-id: - - dmi8sEt4vHcEvHw= + - eM79WGChvHcElGQ= x-amzn-Remapped-Connection: - keep-alive x-amzn-Remapped-Content-Length: - - "1550" + - "1551" x-amzn-Remapped-Date: - - Wed, 04 Sep 2024 22:54:22 GMT + - Mon, 16 Sep 2024 14:27:33 GMT x-amzn-Remapped-Server: - gunicorn x-amzn-RequestId: - - 797ca22d-1ce8-48ae-b214-3271d15e4a9e + - 9c34751f-334f-48b1-a2ed-ceb7953d2e78 status: code: 200 message: OK @@ -2045,7 +2045,7 @@ interactions: Connection: - close Date: - - Wed, 04 Sep 2024 22:54:22 GMT + - Mon, 16 Sep 2024 14:27:36 GMT Server: - Jetty(9.4.40.v20210413) Transfer-Encoding: diff --git a/tests/stub_data/stub_retractions.csv b/tests/stub_data/stub_retractions.csv new file mode 100644 index 00000000..66f12ad5 --- /dev/null +++ b/tests/stub_data/stub_retractions.csv @@ -0,0 +1,21 @@ +Record ID,Title,Subject,Institution,Journal,Publisher,Country,Author,URLS,ArticleType,RetractionDate,RetractionDOI,RetractionPubMedID,OriginalPaperDate,OriginalPaperDOI,OriginalPaperPubMedID,RetractionNature,Reason,Paywalled,Notes +56416,The Feature Recognition of Motor Noise Based on the Improved EEMD Model,(B/T) Computer Science;(PHY) Engineering - Mechanical;,"Intelligent Manufacturing College of Wuhan Guanggu Vocational College, Wuhan 430079, Hubei, China; Wuhan Technology and Business University, Wuhan 430065, Hubei, China;",Computational Intelligence and Neuroscience,Hindawi,China,Qing Liao;Long Li;Jiaqi Luo,https://retractionwatch.com/2022/09/28/exclusive-hindawi-and-wiley-to-retract-over-500-papers-linked-to-peer-review-rings/;https://retractionwatch.com/2023/04/05/wiley-and-hindawi-to-retract-1200-more-papers-for-compromised-peer-review/;https://retractionwatch.com/2023/12/19/hindawi-reveals-process-for-retracting-more-than-8000-paper-mill-articles/,Research Article;,7/12/2023 0:00,10.1155/2023/9756480,37476288.0,8/18/2022 0:00,10.1155/2022/9172719,36035816.0,Retraction,+Concerns/Issues About Data;+Concerns/Issues About Results;+Concerns/Issues about Referencing/Attributions;+Concerns/Issues with Peer Review;+Investigation by Journal/Publisher;+Investigation by Third Party;+Paper Mill;+Randomly Generated Content;+Unreliable Results;,No, +56415,Technical Evaluation of Commercial Sperm DFI Quality Control Products in SCSA Testing,(BLS) Biochemistry;(BLS) Genetics;(HSC) Medicine - Urology/Nephrology;,"NHC Key Laboratory of Male Reproduction and Genetics, Guangdong Provincial Reproductive Science Institute (Guangdong Provincial Fertility Hospital), Guangzhou 510600, Guangdong, China;",Journal of Healthcare Engineering,Hindawi,China,Tao Pang;Xinzong Zhang,https://retractionwatch.com/2022/09/28/exclusive-hindawi-and-wiley-to-retract-over-500-papers-linked-to-peer-review-rings/;https://retractionwatch.com/2023/04/05/wiley-and-hindawi-to-retract-1200-more-papers-for-compromised-peer-review/;https://retractionwatch.com/2023/12/19/hindawi-reveals-process-for-retracting-more-than-8000-paper-mill-articles/,Research Article;,7/12/2023 0:00,10.1155/2023/9812053,37476804.0,3/4/2022 0:00,10.1155/2022/9552123,35281543.0,Retraction,+Concerns/Issues About Data;+Concerns/Issues About Results;+Concerns/Issues about Referencing/Attributions;+Concerns/Issues with Peer Review;+Investigation by Journal/Publisher;+Investigation by Third Party;+Paper Mill;+Randomly Generated Content;+Unreliable Results;,No, +56414,Study on Syndrome Intervention of Nonalcoholic Fatty Liver Disease from the Perspective of Deficiency and Excess,(HSC) Medicine - Gastroenterology;(HSC) Public Health and Safety;,"Zhang Zhongjing School of TCM, Nanyang Institute of Technology, Nanyang 473004, Henan, China;",Journal of Healthcare Engineering,Hindawi,China,Sanhang Wang;Hu Jiu lüe;Jiao Zhao,https://retractionwatch.com/2022/09/28/exclusive-hindawi-and-wiley-to-retract-over-500-papers-linked-to-peer-review-rings/;https://retractionwatch.com/2023/04/05/wiley-and-hindawi-to-retract-1200-more-papers-for-compromised-peer-review/;https://retractionwatch.com/2023/12/19/hindawi-reveals-process-for-retracting-more-than-8000-paper-mill-articles/,Research Article;,7/12/2023 0:00,10.1155/2023/9863546,37476791.0,9/16/2021 0:00,10.1155/2021/9928160,34567490.0,Retraction,+Concerns/Issues About Data;+Concerns/Issues About Results;+Concerns/Issues about Referencing/Attributions;+Concerns/Issues with Peer Review;+Informed/Patient Consent - None/Withdrawn;+Investigation by Journal/Publisher;+Investigation by Third Party;+Lack of IRB/IACUC Approval;+Paper Mill;+Randomly Generated Content;+Unreliable Results;,No, +56413,Study of Deep Learning-Based Legal Judgment Prediction in Internet of Things Era,(B/T) Computer Science;(SOC) Law/Legal Issues;,"Hubei University of Science and Technology, Xianning, Hubei, China; Nanjing University of Information Science and Technology, Nanjing, China;",Computational Intelligence and Neuroscience,Hindawi,China,Min Zheng;Bo Liu;Le Sun,https://retractionwatch.com/2022/09/28/exclusive-hindawi-and-wiley-to-retract-over-500-papers-linked-to-peer-review-rings/;https://retractionwatch.com/2023/04/05/wiley-and-hindawi-to-retract-1200-more-papers-for-compromised-peer-review/;https://retractionwatch.com/2023/12/19/hindawi-reveals-process-for-retracting-more-than-8000-paper-mill-articles/,Research Article;,7/12/2023 0:00,10.1155/2023/9856834,37476266.0,8/8/2022 0:00,10.1155/2022/8490760,35978889.0,Retraction,+Concerns/Issues About Data;+Concerns/Issues About Results;+Concerns/Issues about Referencing/Attributions;+Concerns/Issues with Peer Review;+Investigation by Journal/Publisher;+Investigation by Third Party;+Paper Mill;+Randomly Generated Content;+Unreliable Results;,No, +56412,Research on Modular Management of Railway Bridge Technology Innovation in Complex and Difficult Mountainous Areas,(B/T) Computer Science;(B/T) Transportation;,"School of Civil Engineering, Central South University, Changsha 410083, Hunan, China; Guangzhou Municipal Engineering Design & Research Institute Co.,Ltd., Guangzhou 510000, China; China Academy of Railway Science Corporation Limited, Beijing 100081, China;",Computational Intelligence and Neuroscience,Hindawi,China,Huihua Chen;Qintao Cheng;Yingxue Xie;Chaoxun Cai;Xinlin Ban;Xiaodong Hu,https://retractionwatch.com/2022/09/28/exclusive-hindawi-and-wiley-to-retract-over-500-papers-linked-to-peer-review-rings/;https://retractionwatch.com/2023/04/05/wiley-and-hindawi-to-retract-1200-more-papers-for-compromised-peer-review/;https://retractionwatch.com/2023/12/19/hindawi-reveals-process-for-retracting-more-than-8000-paper-mill-articles/,Research Article;,7/12/2023 0:00,10.1155/2023/9789261,37476212.0,8/11/2022 0:00,10.1155/2022/8799586,35990112.0,Retraction,+Concerns/Issues About Data;+Concerns/Issues About Results;+Concerns/Issues about Referencing/Attributions;+Concerns/Issues with Peer Review;+Investigation by Journal/Publisher;+Investigation by Third Party;+Paper Mill;+Randomly Generated Content;+Unreliable Results;,No, +56411,Research and Implementation of Intelligent Evaluation System of Teaching Quality in Universities Based on Artificial Intelligence Neural Network Model,(B/T) Computer Science;(SOC) Education;,"Education Department, Shaanxi Normal University, Xi’an 710062, Shaanxi, China;",Mathematical Problems in Engineering,Hindawi,China,Bo Gao,https://retractionwatch.com/2022/09/28/exclusive-hindawi-and-wiley-to-retract-over-500-papers-linked-to-peer-review-rings/;https://retractionwatch.com/2023/04/05/wiley-and-hindawi-to-retract-1200-more-papers-for-compromised-peer-review/;https://retractionwatch.com/2023/12/19/hindawi-reveals-process-for-retracting-more-than-8000-paper-mill-articles/,Research Article;,7/12/2023 0:00,10.1155/2023/9860810,0.0,3/16/2022 0:00,10.1155/2022/8224184,0.0,Retraction,+Concerns/Issues About Data;+Concerns/Issues About Results;+Concerns/Issues about Referencing/Attributions;+Concerns/Issues with Peer Review;+Investigation by Journal/Publisher;+Investigation by Third Party;+Paper Mill;+Randomly Generated Content;+Unreliable Results;,No, +56410,Relationship between Long Noncoding RNA H19 Polymorphisms and Risk of Coronary Artery Disease in a Chinese Population: A Case-Control Study,(BLS) Genetics;(HSC) Biostatistics/Epidemiology;(HSC) Medicine - Cardiovascular;,"Department of Cardiology, The Fourth Affiliated Hospital of China Medical University, Shenyang, Liaoning 110034, China; Tumor Etiology and Screening Department of Cancer Institute and General Surgery, The First Affiliated Hospital of China Medical University, Key Laboratory of Cancer Etiology and Prevention (China Medical University), Liaoning Provincial Education Department, Shenyang, Liaoning 110001, China; China Medical University, China;",Disease Markers,Hindawi,China,Weina Hu;Hanxi Ding;Qian Xu;Xueying Zhang;Datong Yang;Yuanzhe Jin,https://retractionwatch.com/2022/09/28/exclusive-hindawi-and-wiley-to-retract-over-500-papers-linked-to-peer-review-rings/;https://retractionwatch.com/2023/04/05/wiley-and-hindawi-to-retract-1200-more-papers-for-compromised-peer-review/;https://retractionwatch.com/2023/12/19/hindawi-reveals-process-for-retracting-more-than-8000-paper-mill-articles/,Research Article;,7/12/2023 0:00,10.1155/2023/9761794,37476633.0,5/11/2020 0:00,10.1155/2020/9839612,32454910.0,Retraction,+Concerns/Issues About Data;+Concerns/Issues About Results;+Concerns/Issues about Referencing/Attributions;+Concerns/Issues with Peer Review;+Investigation by Journal/Publisher;+Investigation by Third Party;+Paper Mill;+Randomly Generated Content;+Unreliable Results;,No, +56409,Preliminary Evaluation of Artificial Intelligence-Based Anti-Hepatocellular Carcinoma Molecular Target Study in Hepatocellular Carcinoma Diagnosis Research,(B/T) Computer Science;(BLS) Biology - Molecular;(HSC) Medicine - Gastroenterology;(HSC) Medicine - Oncology;,"Infectious Disease Department, Hospital of Chengdu University of Traditional Chinese Medicine, Chengdu, Sichuan 610072, China; Qijiang Hospital of The First Affiliated Hospital of Chongqing Medical University, Chongqing 401420, China; Wenlong Hospital of Qijiang, Chongqing 401420, China; Taiyuan Hospital of Traditional Chinese Medicine, Taiyuan, Shanxi 030000, China;",BioMed Research International,Hindawi,China,Yuan Wang;Chao Wei;Xiangui Deng;Shudi Gao;Jing Chen,https://retractionwatch.com/2022/09/28/exclusive-hindawi-and-wiley-to-retract-over-500-papers-linked-to-peer-review-rings/;https://retractionwatch.com/2023/04/05/wiley-and-hindawi-to-retract-1200-more-papers-for-compromised-peer-review/;https://retractionwatch.com/2023/12/19/hindawi-reveals-process-for-retracting-more-than-8000-paper-mill-articles/,Research Article;,7/12/2023 0:00,10.1155/2023/9850584,37475788.0,9/19/2022 0:00,10.1155/2022/8365565,36193305.0,Retraction,+Concerns/Issues About Data;+Concerns/Issues About Results;+Concerns/Issues about Referencing/Attributions;+Concerns/Issues with Peer Review;+Informed/Patient Consent - None/Withdrawn;+Investigation by Journal/Publisher;+Investigation by Third Party;+Lack of IRB/IACUC Approval;+Paper Mill;+Randomly Generated Content;+Unreliable Results;,No, +56406,The Identification and Dissemination of Creative Elements of New Media Original Film and Television Works Based on Review Text Mining and Machine Learning,(B/T) Computer Science;(B/T) Data Science;(B/T) Technology;(HUM) Arts - Film Studies;,"Deputy Director of Graduate Office, Shandong College of Arts, Jinan, Shandong 250300, China;",Mathematical Problems in Engineering,Hindawi,China,Xiaonan Yu,https://retractionwatch.com/2022/09/28/exclusive-hindawi-and-wiley-to-retract-over-500-papers-linked-to-peer-review-rings/;https://retractionwatch.com/2023/04/05/wiley-and-hindawi-to-retract-1200-more-papers-for-compromised-peer-review/;https://retractionwatch.com/2023/12/19/hindawi-reveals-process-for-retracting-more-than-8000-paper-mill-articles/,Research Article;,10/4/2023 0:00,10.1155/2023/9838340,0.0,7/16/2022 0:00,10.1155/2022/5856069,0.0,Retraction,+Concerns/Issues About Data;+Concerns/Issues About Results;+Concerns/Issues about Referencing/Attributions;+Concerns/Issues with Peer Review;+Investigation by Journal/Publisher;+Investigation by Third Party;+Paper Mill;+Randomly Generated Content;+Unreliable Results;,No,See also: https://pubpeer.com/publications/83D596FB181C1E3A7426780D29CB70 +56397,Teaching Innovation and Development of Ideological and Political Courses in Colleges and Universities: Based on the Background of Wireless Communication and Artificial Intelligence Decision Making,(B/T) Computer Science;(B/T) Technology;(SOC) Education;(SOC) Philosophy;(SOC) Political Science;,"School of Marxism, Huaiyin Institute of Technology, Huaian 223003, China;",Mathematical Problems in Engineering,Hindawi,China,Zhenpeng Xia;Juan Liu,https://retractionwatch.com/2022/09/28/exclusive-hindawi-and-wiley-to-retract-over-500-papers-linked-to-peer-review-rings/;https://retractionwatch.com/2023/04/05/wiley-and-hindawi-to-retract-1200-more-papers-for-compromised-peer-review/;https://retractionwatch.com/2023/12/19/hindawi-reveals-process-for-retracting-more-than-8000-paper-mill-articles/,Research Article;,10/4/2023 0:00,10.1155/2023/9784298,0.0,5/6/2022 0:00,10.1155/2022/3768224,0.0,Retraction,+Concerns/Issues About Data;+Concerns/Issues About Results;+Concerns/Issues about Referencing/Attributions;+Concerns/Issues with Peer Review;+Investigation by Journal/Publisher;+Investigation by Third Party;+Paper Mill;+Randomly Generated Content;+Unreliable Results;,No,See also: https://pubpeer.com/publications/DC5E7901F6266F9A6FA6F7B2C4BDFF +56396,TCM Physical Health Management Training and Nursing Effect Evaluation Based on Digital Twin,(B/T) Computer Science;(B/T) Technology;(BLS) Anatomy/Physiology;(HSC) Medicine - General;(HSC) Medicine - Nursing;,"Hospital of Chengdu University of Traditional Chinese Medicine, Chengdu 610072, Sichuan, China;",Scientific Programming,Hindawi,China,Jing Jiang;Qijia Li;Fei Yang,https://retractionwatch.com/2022/09/28/exclusive-hindawi-and-wiley-to-retract-over-500-papers-linked-to-peer-review-rings/;https://retractionwatch.com/2023/04/05/wiley-and-hindawi-to-retract-1200-more-papers-for-compromised-peer-review/;https://retractionwatch.com/2023/12/19/hindawi-reveals-process-for-retracting-more-than-8000-paper-mill-articles/,Research Article;,10/4/2023 0:00,10.1155/2023/9840830,0.0,9/27/2022 0:00,10.1155/2022/3907481,0.0,Retraction,+Concerns/Issues About Data;+Concerns/Issues About Results;+Concerns/Issues about Referencing/Attributions;+Concerns/Issues with Peer Review;+Informed/Patient Consent - None/Withdrawn;+Investigation by Journal/Publisher;+Investigation by Third Party;+Lack of IRB/IACUC Approval;+Paper Mill;+Randomly Generated Content;+Unreliable Results;,No,See also: https://pubpeer.com/publications/8F8D76C66942A80D70FA3563489298 +56380,Curriculum Reform and Adaptive Teaching of Computer Education Based on Online Education and B5G Model,(B/T) Computer Science;(B/T) Technology;(SOC) Education;,"School of Big Data and Automation Engineering, Chongqing Chemical Industry Vocational College, Chongqing 401228, China",Wireless Communications and Mobile Computing,Hindawi,China,Rongming Tian;Yan Tang,https://retractionwatch.com/2022/09/28/exclusive-hindawi-and-wiley-to-retract-over-500-papers-linked-to-peer-review-rings/;https://retractionwatch.com/2023/04/05/wiley-and-hindawi-to-retract-1200-more-papers-for-compromised-peer-review/;https://retractionwatch.com/2023/12/19/hindawi-reveals-process-for-retracting-more-than-8000-paper-mill-articles/,Research Article;,9/27/2023 0:00,10.1155/2023/9818904,0.0,8/25/2022 0:00,10.1155/2022/9636452,0.0,Retraction,+Concerns/Issues About Data;+Concerns/Issues About Results;+Concerns/Issues about Referencing/Attributions;+Concerns/Issues with Peer Review;+Investigation by Journal/Publisher;+Investigation by Third Party;+Paper Mill;+Randomly Generated Content;+Unreliable Results;,No,See also: https://pubpeer.com/publications/EDB42A43B4671D904792B70576E086 +56379,Application of Support Vector Machine Model Based on Machine Learning in Art Teaching,(B/T) Computer Science;(B/T) Technology;(HUM) Arts - General;,"Department of Fine Arts, Changji University, Changji, 831100 Xinjiang, China; Department of Computer Engineering, Changji University, Changji, 831100 Xinjiang, China; Department of Fine Arts, Chongqing Normal University, Chongqing 401331, China",Wireless Communications and Mobile Computing,Hindawi,China,YongMing Hua;Fang Li;Shuwen Yang,https://retractionwatch.com/2022/09/28/exclusive-hindawi-and-wiley-to-retract-over-500-papers-linked-to-peer-review-rings/;https://retractionwatch.com/2023/04/05/wiley-and-hindawi-to-retract-1200-more-papers-for-compromised-peer-review/;https://retractionwatch.com/2023/12/19/hindawi-reveals-process-for-retracting-more-than-8000-paper-mill-articles/,Research Article;,9/27/2023 0:00,10.1155/2023/9789170,0.0,6/20/2022 0:00,10.1155/2022/7954589,0.0,Retraction,+Concerns/Issues About Data;+Concerns/Issues About Results;+Concerns/Issues about Referencing/Attributions;+Concerns/Issues with Peer Review;+Investigation by Journal/Publisher;+Investigation by Third Party;+Paper Mill;+Randomly Generated Content;+Unreliable Results;,No,See also: https://pubpeer.com/publications/82357471108F95B6112C5ED9DEC534 +56378,Application of Emotional Education in College Physical Education Based on Mobile Internet of Things Model,(B/T) Technology;(SOC) Education;(SOC) Psychology;,"Department of Public Basic Education, Henan Vocational University of Science and Technology, Zhoukou, 466000 Henan, China; Office of International Cooperation and Exchange, Zhoukou Normal University, Zhoukou, 466000 Henan, China",Wireless Communications and Mobile Computing,Hindawi,China,Yanqun Huang;Kun Li,https://retractionwatch.com/2022/09/28/exclusive-hindawi-and-wiley-to-retract-over-500-papers-linked-to-peer-review-rings/;https://retractionwatch.com/2023/04/05/wiley-and-hindawi-to-retract-1200-more-papers-for-compromised-peer-review/;https://retractionwatch.com/2023/12/19/hindawi-reveals-process-for-retracting-more-than-8000-paper-mill-articles/,Research Article;,9/27/2023 0:00,10.1155/2023/9807147,0.0,11/19/2022 0:00,10.1155/2022/8728925,0.0,Retraction,+Concerns/Issues About Data;+Concerns/Issues About Results;+Concerns/Issues about Referencing/Attributions;+Concerns/Issues with Peer Review;+Investigation by Journal/Publisher;+Investigation by Third Party;+Paper Mill;+Randomly Generated Content;+Unreliable Results;,No,See also: https://pubpeer.com/publications/091C35C103E4A33487FED77346B68C +56363,Preliminary Study on the Evaluation of Multimodal Effects of Type 2 Diabetic Nephropathy,(HSC) Medicine - Diabetes;(HSC) Medicine - Urology/Nephrology;,"Henan University of Chinese Medicine, Zhengzhou 450000, China;",Scientific Programming,Hindawi,China,Huandong Zhao,https://retractionwatch.com/2022/09/28/exclusive-hindawi-and-wiley-to-retract-over-500-papers-linked-to-peer-review-rings/;https://retractionwatch.com/2023/04/05/wiley-and-hindawi-to-retract-1200-more-papers-for-compromised-peer-review/;https://retractionwatch.com/2023/12/19/hindawi-reveals-process-for-retracting-more-than-8000-paper-mill-articles/,Research Article;,10/4/2023 0:00,10.1155/2023/9820827,0.0,9/13/2021 0:00,10.1155/2021/2563477,0.0,Retraction,+Concerns/Issues About Data;+Concerns/Issues About Results;+Concerns/Issues about Referencing/Attributions;+Concerns/Issues with Peer Review;+Informed/Patient Consent - None/Withdrawn;+Investigation by Journal/Publisher;+Investigation by Third Party;+Lack of IRB/IACUC Approval;+Paper Mill;+Randomly Generated Content;+Unreliable Results;,No,See also: https://pubpeer.com/publications/A88D39F9DC3A72A2E62560C028738D +56362,The Dilemma and Countermeasures of Music Education under the Background of Big Data,(B/T) Data Science;(B/T) Technology;(HUM) Arts - Music;(SOC) Education;,"Pingdingshan Polytechnic College, PingDingShan, Henan 467001, China; National University of Life and Environmental Sciences of Ukraine, Kyiv 03041, Ukraine",Wireless Communications and Mobile Computing,Hindawi,China;Ukraine,Jiaye Han,https://retractionwatch.com/2022/09/28/exclusive-hindawi-and-wiley-to-retract-over-500-papers-linked-to-peer-review-rings/;https://retractionwatch.com/2023/04/05/wiley-and-hindawi-to-retract-1200-more-papers-for-compromised-peer-review/;https://retractionwatch.com/2023/12/19/hindawi-reveals-process-for-retracting-more-than-8000-paper-mill-articles/,Research Article;,9/27/2023 0:00,10.1155/2023/9753475,0.0,9/16/2022 0:00,10.1155/2022/8341966,0.0,Retraction,+Concerns/Issues About Data;+Concerns/Issues About Results;+Concerns/Issues about Referencing/Attributions;+Concerns/Issues with Peer Review;+Informed/Patient Consent - None/Withdrawn;+Investigation by Journal/Publisher;+Investigation by Third Party;+Lack of IRB/IACUC Approval;+Paper Mill;+Randomly Generated Content;+Unreliable Results;,No,See also: https://pubpeer.com/publications/09293BF5BE20A9DF8B659F90FD4D77 +56360,The Components of Smart Sports in Universities with the Assistance of Smart Devices,(B/T) Technology;(SOC) Education;(SOC) Sports and Recreation;,"Northeast Normal University, Changchun, 130000 Jilin, China",Wireless Communications and Mobile Computing,Hindawi,China,Zhengyang Shi,https://retractionwatch.com/2022/09/28/exclusive-hindawi-and-wiley-to-retract-over-500-papers-linked-to-peer-review-rings/;https://retractionwatch.com/2023/04/05/wiley-and-hindawi-to-retract-1200-more-papers-for-compromised-peer-review/;https://retractionwatch.com/2023/12/19/hindawi-reveals-process-for-retracting-more-than-8000-paper-mill-articles/,Research Article;,9/27/2023 0:00,10.1155/2023/9868041,0.0,9/19/2022 0:00,10.1155/2022/6469162,0.0,Retraction,+Concerns/Issues About Data;+Concerns/Issues About Results;+Concerns/Issues about Referencing/Attributions;+Concerns/Issues with Peer Review;+Investigation by Journal/Publisher;+Investigation by Third Party;+Paper Mill;+Randomly Generated Content;+Unreliable Results;,No,See also: https://pubpeer.com/publications/CA854C2400CA247C3AB481D9FFD7D0 +56358,Reform and Challenges of Ideological and Political Education for College Students Based on Wireless Communication and Virtual Reality Technology,(B/T) Technology;(SOC) Education;(SOC) Political Science;,"Business School, Chengdu University, Chengdu, Sichuan 610106, China",Wireless Communications and Mobile Computing,Hindawi,China,Xing Hang,https://retractionwatch.com/2022/09/28/exclusive-hindawi-and-wiley-to-retract-over-500-papers-linked-to-peer-review-rings/;https://retractionwatch.com/2023/04/05/wiley-and-hindawi-to-retract-1200-more-papers-for-compromised-peer-review/;https://retractionwatch.com/2023/12/19/hindawi-reveals-process-for-retracting-more-than-8000-paper-mill-articles/,Research Article;,9/27/2023 0:00,10.1155/2023/9797068,0.0,8/15/2021 0:00,10.1155/2021/6151249,0.0,Retraction,+Concerns/Issues About Data;+Concerns/Issues About Results;+Concerns/Issues about Referencing/Attributions;+Concerns/Issues with Peer Review;+Investigation by Journal/Publisher;+Investigation by Third Party;+Paper Mill;+Randomly Generated Content;+Unreliable Results;,No,See also: https://pubpeer.com/publications/C3CDE7309B893622FDF6ADB2337E14 +56357,Construction of Intelligent Textbook Courseware Management System Based on Artificial Intelligence Technology,(B/T) Technology;(SOC) Education;,"Educational Administration, Chengdu Normal University, Chengdu 611130, China",Wireless Communications and Mobile Computing,Hindawi,China,Qiu Zhao,https://retractionwatch.com/2022/09/28/exclusive-hindawi-and-wiley-to-retract-over-500-papers-linked-to-peer-review-rings/;https://retractionwatch.com/2023/04/05/wiley-and-hindawi-to-retract-1200-more-papers-for-compromised-peer-review/;https://retractionwatch.com/2023/12/19/hindawi-reveals-process-for-retracting-more-than-8000-paper-mill-articles/,Research Article;,9/27/2023 0:00,10.1155/2023/9826149,0.0,8/12/2022 0:00,10.1155/2022/9993183,0.0,Retraction,+Concerns/Issues About Data;+Concerns/Issues About Results;+Concerns/Issues about Referencing/Attributions;+Concerns/Issues with Peer Review;+Investigation by Journal/Publisher;+Investigation by Third Party;+Paper Mill;+Randomly Generated Content;+Unreliable Results;,No,See also: https://pubpeer.com/publications/CBCF6814AB30FC8EB062AE4105C1CF +56355,Construction of Ideological and Political Practice Teaching System of Documentary Creation Course Based on Deep Learning,(B/T) Computer Science;(B/T) Data Science;(B/T) Technology;(HUM) Arts - Film Studies;(SOC) Education;(SOC) Political Science;,"School of Culture and Media Huanghuai University, Zhumadian City, Henan Province 463000, China; School of Arts Cheongju University, Cheongju City, Republic of Korea",Wireless Communications and Mobile Computing,Hindawi,China;South Korea,Qiwei Ren,https://retractionwatch.com/2022/09/28/exclusive-hindawi-and-wiley-to-retract-over-500-papers-linked-to-peer-review-rings/;https://retractionwatch.com/2023/04/05/wiley-and-hindawi-to-retract-1200-more-papers-for-compromised-peer-review/;https://retractionwatch.com/2023/12/19/hindawi-reveals-process-for-retracting-more-than-8000-paper-mill-articles/,Research Article;,9/27/2023 0:00,10.1155/2023/9818015,0.0,8/28/2022 0:00,10.1155/2022/6299168,0.0,Retraction,+Concerns/Issues About Data;+Concerns/Issues About Results;+Concerns/Issues about Referencing/Attributions;+Concerns/Issues with Peer Review;+Investigation by Journal/Publisher;+Investigation by Third Party;+Paper Mill;+Randomly Generated Content;+Unreliable Results;,No,See also: https://pubpeer.com/publications/76B5A8D5923D6901935160551185DB diff --git a/tests/test_clients.py b/tests/test_clients.py index 89868084..8c695c6a 100644 --- a/tests/test_clients.py +++ b/tests/test_clients.py @@ -1,7 +1,6 @@ from __future__ import annotations import logging -import re from collections.abc import Collection, Sequence from typing import Any, cast from unittest.mock import patch @@ -18,8 +17,7 @@ ) from paperqa.clients.client_models import MetadataPostProcessor, MetadataProvider from paperqa.clients.journal_quality import JournalQualityPostProcessor -from paperqa.clients.retractions import RetrationDataPostProcessor -from paperqa.types import DocDetails +from paperqa.clients.retractions import RetractionDataPostProcessor @pytest.mark.vcr @@ -68,7 +66,7 @@ " Samuel G. Rodriques, and Andrew D. White. Paperqa:" " retrieval-augmented generative agent for scientific research. ArXiv," " Dec 2023. URL: https://doi.org/10.48550/arxiv.2312.07559," - " doi:10.48550/arxiv.2312.07559. This article has 23 citations." + " doi:10.48550/arxiv.2312.07559. This article has 25 citations." ), "is_oa": None, }, @@ -92,7 +90,7 @@ " White, and Philippe Schwaller. Augmenting large language models with" " chemistry tools. Nature Machine Intelligence, 6:525-535, May 2024." " URL: https://doi.org/10.1038/s42256-024-00832-8," - " doi:10.1038/s42256-024-00832-8. This article has 191 citations and is" + " doi:10.1038/s42256-024-00832-8. This article has 196 citations and is" " from a domain leading peer-reviewed journal." ), "is_oa": True, @@ -102,8 +100,9 @@ @pytest.mark.asyncio async def test_title_search(paper_attributes: dict[str, str]) -> None: async with aiohttp.ClientSession() as session: - client_list = list(ALL_CLIENTS) - client_list.remove(RetrationDataPostProcessor) + client_list = [ + client for client in ALL_CLIENTS if client != RetractionDataPostProcessor + ] client = DocMetadataClient( session, clients=cast( @@ -113,30 +112,12 @@ async def test_title_search(paper_attributes: dict[str, str]) -> None: client_list, ), ) - details = await client.query(title=paper_attributes["title"]) - expected_citation_str = re.sub( - DocDetails.CITATION_COUNT_REGEX_PATTERN, - r"\1n\2", - paper_attributes["formatted_citation"], - ) - actual_citation_str = re.sub( - DocDetails.CITATION_COUNT_REGEX_PATTERN, - r"\1n\2", - details.formatted_citation, # type: ignore[union-attr] - ) - - # Assert that the normalized strings are identical - assert ( - expected_citation_str == actual_citation_str - ), "Formatted citation text should match except for citation count" - assert set(details.other["client_source"]) == set( # type: ignore[union-attr] paper_attributes["source"] ), "Should have the correct source" for key, value in paper_attributes.items(): - # Equality check all attributes but the ones in the below set - if key not in {"is_oa", "source", "formatted_citation"}: + if key not in {"is_oa", "source"}: assert getattr(details, key) == value, f"Should have the correct {key}" elif key == "is_oa": assert ( @@ -226,8 +207,9 @@ async def test_title_search(paper_attributes: dict[str, str]) -> None: @pytest.mark.asyncio async def test_doi_search(paper_attributes: dict[str, str]) -> None: async with aiohttp.ClientSession() as session: - client_list = list(ALL_CLIENTS) - client_list.remove(RetrationDataPostProcessor) + client_list = [ + client for client in ALL_CLIENTS if client != RetractionDataPostProcessor + ] client = DocMetadataClient( session, clients=cast( @@ -592,16 +574,20 @@ async def test_ensure_sequential_run_early_stop( assert record_indices["early_stop"] != -1, "We should stop early." +@pytest.mark.vcr @pytest.mark.asyncio async def test_crossref_retraction_status(): async with aiohttp.ClientSession() as session: + retract_processor = RetractionDataPostProcessor( + "stub_data/stub_retractions.csv" + ) crossref_client = DocMetadataClient( session, clients=cast( Collection[ type[MetadataPostProcessor[Any]] | type[MetadataProvider[Any]] ], - [CrossrefProvider, RetrationDataPostProcessor], + [CrossrefProvider, retract_processor], ), ) crossref_details = await crossref_client.query(