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(