scholarcli 1.20__tar.gz → 1.21__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {scholarcli-1.20/src/scholarcli.egg-info → scholarcli-1.21}/PKG-INFO +3 -2
- {scholarcli-1.20 → scholarcli-1.21}/pyproject.toml +4 -3
- {scholarcli-1.20 → scholarcli-1.21}/src/scholar/__init__.py +2 -1
- {scholarcli-1.20 → scholarcli-1.21}/src/scholar/cli.py +947 -52
- scholarcli-1.21/src/scholar/crossref.py +210 -0
- {scholarcli-1.20 → scholarcli-1.21}/src/scholar/llm_review.py +78 -3
- {scholarcli-1.20 → scholarcli-1.21}/src/scholar/pdf.py +384 -1
- {scholarcli-1.20 → scholarcli-1.21}/src/scholar/review.py +84 -21
- {scholarcli-1.20 → scholarcli-1.21}/src/scholar/scholar.py +149 -23
- {scholarcli-1.20 → scholarcli-1.21/src/scholarcli.egg-info}/PKG-INFO +3 -2
- {scholarcli-1.20 → scholarcli-1.21}/src/scholarcli.egg-info/SOURCES.txt +2 -0
- {scholarcli-1.20 → scholarcli-1.21}/src/scholarcli.egg-info/requires.txt +1 -0
- scholarcli-1.21/tests/test_cli.py +1626 -0
- scholarcli-1.21/tests/test_crossref.py +205 -0
- {scholarcli-1.20 → scholarcli-1.21}/tests/test_llm_review.py +42 -0
- {scholarcli-1.20 → scholarcli-1.21}/tests/test_pdf.py +145 -1
- {scholarcli-1.20 → scholarcli-1.21}/tests/test_review.py +52 -0
- {scholarcli-1.20 → scholarcli-1.21}/tests/test_scholar.py +227 -0
- scholarcli-1.20/tests/test_cli.py +0 -739
- {scholarcli-1.20 → scholarcli-1.21}/LICENSE +0 -0
- {scholarcli-1.20 → scholarcli-1.21}/README.md +0 -0
- {scholarcli-1.20 → scholarcli-1.21}/setup.cfg +0 -0
- {scholarcli-1.20 → scholarcli-1.21}/src/scholar/__main__.py +0 -0
- {scholarcli-1.20 → scholarcli-1.21}/src/scholar/cache.py +0 -0
- {scholarcli-1.20 → scholarcli-1.21}/src/scholar/enrich.py +0 -0
- {scholarcli-1.20 → scholarcli-1.21}/src/scholar/notes.py +0 -0
- {scholarcli-1.20 → scholarcli-1.21}/src/scholar/providers.py +0 -0
- {scholarcli-1.20 → scholarcli-1.21}/src/scholar/questionary.py +0 -0
- {scholarcli-1.20 → scholarcli-1.21}/src/scholar/tui.py +0 -0
- {scholarcli-1.20 → scholarcli-1.21}/src/scholar/utils.py +0 -0
- {scholarcli-1.20 → scholarcli-1.21}/src/scholarcli.egg-info/dependency_links.txt +0 -0
- {scholarcli-1.20 → scholarcli-1.21}/src/scholarcli.egg-info/entry_points.txt +0 -0
- {scholarcli-1.20 → scholarcli-1.21}/src/scholarcli.egg-info/top_level.txt +0 -0
- {scholarcli-1.20 → scholarcli-1.21}/src/snowball/__init__.py +0 -0
- {scholarcli-1.20 → scholarcli-1.21}/src/snowball/apis/__init__.py +0 -0
- {scholarcli-1.20 → scholarcli-1.21}/src/snowball/apis/aggregator.py +0 -0
- {scholarcli-1.20 → scholarcli-1.21}/src/snowball/apis/arxiv.py +0 -0
- {scholarcli-1.20 → scholarcli-1.21}/src/snowball/apis/base.py +0 -0
- {scholarcli-1.20 → scholarcli-1.21}/src/snowball/apis/crossref.py +0 -0
- {scholarcli-1.20 → scholarcli-1.21}/src/snowball/apis/google_scholar.py +0 -0
- {scholarcli-1.20 → scholarcli-1.21}/src/snowball/apis/openalex.py +0 -0
- {scholarcli-1.20 → scholarcli-1.21}/src/snowball/apis/opencitations.py +0 -0
- {scholarcli-1.20 → scholarcli-1.21}/src/snowball/apis/semantic_scholar.py +0 -0
- {scholarcli-1.20 → scholarcli-1.21}/src/snowball/cli.py +0 -0
- {scholarcli-1.20 → scholarcli-1.21}/src/snowball/exporters/__init__.py +0 -0
- {scholarcli-1.20 → scholarcli-1.21}/src/snowball/exporters/bibtex.py +0 -0
- {scholarcli-1.20 → scholarcli-1.21}/src/snowball/exporters/csv_exporter.py +0 -0
- {scholarcli-1.20 → scholarcli-1.21}/src/snowball/exporters/tikz.py +0 -0
- {scholarcli-1.20 → scholarcli-1.21}/src/snowball/filters/__init__.py +0 -0
- {scholarcli-1.20 → scholarcli-1.21}/src/snowball/filters/filter_engine.py +0 -0
- {scholarcli-1.20 → scholarcli-1.21}/src/snowball/models.py +0 -0
- {scholarcli-1.20 → scholarcli-1.21}/src/snowball/paper_utils.py +0 -0
- {scholarcli-1.20 → scholarcli-1.21}/src/snowball/parsers/__init__.py +0 -0
- {scholarcli-1.20 → scholarcli-1.21}/src/snowball/parsers/pdf_parser.py +0 -0
- {scholarcli-1.20 → scholarcli-1.21}/src/snowball/scoring/__init__.py +0 -0
- {scholarcli-1.20 → scholarcli-1.21}/src/snowball/scoring/base.py +0 -0
- {scholarcli-1.20 → scholarcli-1.21}/src/snowball/scoring/llm_scorer.py +0 -0
- {scholarcli-1.20 → scholarcli-1.21}/src/snowball/scoring/tfidf_scorer.py +0 -0
- {scholarcli-1.20 → scholarcli-1.21}/src/snowball/services.py +0 -0
- {scholarcli-1.20 → scholarcli-1.21}/src/snowball/snowballing.py +0 -0
- {scholarcli-1.20 → scholarcli-1.21}/src/snowball/storage/__init__.py +0 -0
- {scholarcli-1.20 → scholarcli-1.21}/src/snowball/storage/json_storage.py +0 -0
- {scholarcli-1.20 → scholarcli-1.21}/src/snowball/tui/__init__.py +0 -0
- {scholarcli-1.20 → scholarcli-1.21}/src/snowball/tui/app.py +0 -0
- {scholarcli-1.20 → scholarcli-1.21}/src/snowball/tui/dialogs.py +0 -0
- {scholarcli-1.20 → scholarcli-1.21}/src/snowball/tui/setup.py +0 -0
- {scholarcli-1.20 → scholarcli-1.21}/src/snowball/visualization.py +0 -0
- {scholarcli-1.20 → scholarcli-1.21}/src/tuxedo/__init__.py +0 -0
- {scholarcli-1.20 → scholarcli-1.21}/src/tuxedo/analysis.py +0 -0
- {scholarcli-1.20 → scholarcli-1.21}/src/tuxedo/cli.py +0 -0
- {scholarcli-1.20 → scholarcli-1.21}/src/tuxedo/clustering.py +0 -0
- {scholarcli-1.20 → scholarcli-1.21}/src/tuxedo/database.py +0 -0
- {scholarcli-1.20 → scholarcli-1.21}/src/tuxedo/grobid.py +0 -0
- {scholarcli-1.20 → scholarcli-1.21}/src/tuxedo/logging.py +0 -0
- {scholarcli-1.20 → scholarcli-1.21}/src/tuxedo/models.py +0 -0
- {scholarcli-1.20 → scholarcli-1.21}/src/tuxedo/project.py +0 -0
- {scholarcli-1.20 → scholarcli-1.21}/src/tuxedo/tui.py +0 -0
- {scholarcli-1.20 → scholarcli-1.21}/tests/test_cache.py +0 -0
- {scholarcli-1.20 → scholarcli-1.21}/tests/test_enrich.py +0 -0
- {scholarcli-1.20 → scholarcli-1.21}/tests/test_notes.py +0 -0
- {scholarcli-1.20 → scholarcli-1.21}/tests/test_providers.py +0 -0
- {scholarcli-1.20 → scholarcli-1.21}/tests/test_tui.py +0 -0
- {scholarcli-1.20 → scholarcli-1.21}/tests/test_utils.py +0 -0
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: scholarcli
|
|
3
|
-
Version: 1.
|
|
3
|
+
Version: 1.21
|
|
4
4
|
Summary: A tool for structured literature searches across bibliographic databases
|
|
5
5
|
Author-email: Daniel Bosk <dbosk@kth.se>, Ric Glassey <glassey@kth.se>
|
|
6
6
|
License-Expression: MIT
|
|
7
|
-
Requires-Python:
|
|
7
|
+
Requires-Python: <4.0,>=3.12
|
|
8
8
|
Description-Content-Type: text/markdown
|
|
9
9
|
License-File: LICENSE
|
|
10
10
|
Requires-Dist: requests>=2.32.5
|
|
@@ -35,6 +35,7 @@ Requires-Dist: openai>=1.0.0
|
|
|
35
35
|
Requires-Dist: pyyaml>=6.0
|
|
36
36
|
Requires-Dist: questionary>=2.0.0
|
|
37
37
|
Requires-Dist: llm-github-copilot>=0.3.1
|
|
38
|
+
Requires-Dist: llm-mistral<0.16,>=0.15
|
|
38
39
|
Dynamic: license-file
|
|
39
40
|
|
|
40
41
|
# Scholar
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "scholarcli"
|
|
3
|
-
version = "1.
|
|
3
|
+
version = "1.21"
|
|
4
4
|
description = "A tool for structured literature searches across bibliographic databases"
|
|
5
5
|
authors = [{ name = "Daniel Bosk", email = "dbosk@kth.se" },
|
|
6
6
|
{ name = "Ric Glassey", email = "glassey@kth.se" }]
|
|
7
7
|
readme = "README.md"
|
|
8
8
|
license = "MIT"
|
|
9
|
-
requires-python = ">=
|
|
9
|
+
requires-python = ">=3.12,<4.0"
|
|
10
10
|
dependencies = [
|
|
11
11
|
"requests>=2.32.5",
|
|
12
12
|
"typer>=0.21.0",
|
|
@@ -38,6 +38,7 @@ dependencies = [
|
|
|
38
38
|
"pyyaml>=6.0",
|
|
39
39
|
"questionary>=2.0.0",
|
|
40
40
|
"llm-github-copilot>=0.3.1",
|
|
41
|
+
"llm-mistral (>=0.15,<0.16)",
|
|
41
42
|
]
|
|
42
43
|
|
|
43
44
|
[project.scripts]
|
|
@@ -64,6 +65,6 @@ line-length = 78
|
|
|
64
65
|
dev = [
|
|
65
66
|
"pytest (>=9.0.2,<10.0.0)",
|
|
66
67
|
"pytest-cov (>=7.0.0,<8.0.0)",
|
|
67
|
-
"black
|
|
68
|
+
"black>=25.12.0,<27.0.0",
|
|
68
69
|
"mypy (>=1.19.1,<2.0.0)"
|
|
69
70
|
]
|
|
@@ -3,7 +3,7 @@ Scholar package for structured literature searches.
|
|
|
3
3
|
"""
|
|
4
4
|
|
|
5
5
|
from .scholar import Search, SearchResult, Paper, SearchFilters
|
|
6
|
-
from .scholar import search, filter_papers
|
|
6
|
+
from .scholar import search, filter_papers, deduplicate_papers
|
|
7
7
|
from .scholar import get_registry, isolated_registry
|
|
8
8
|
from .utils import safe_get_nested, ensure_list
|
|
9
9
|
|
|
@@ -14,6 +14,7 @@ __all__ = [
|
|
|
14
14
|
"SearchFilters",
|
|
15
15
|
"search",
|
|
16
16
|
"filter_papers",
|
|
17
|
+
"deduplicate_papers",
|
|
17
18
|
"get_registry",
|
|
18
19
|
"isolated_registry",
|
|
19
20
|
"safe_get_nested",
|