crossref-local 0.4.0__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.
- crossref_local-0.4.0/.env.example +51 -0
- crossref_local-0.4.0/.github/workflows/test.yml +47 -0
- crossref_local-0.4.0/.gitignore +684 -0
- crossref_local-0.4.0/CHANGELOG.md +87 -0
- crossref_local-0.4.0/Makefile +299 -0
- crossref_local-0.4.0/PKG-INFO +345 -0
- crossref_local-0.4.0/README.md +300 -0
- crossref_local-0.4.0/docs/remote-deployment.md +260 -0
- crossref_local-0.4.0/docs/to_claude/examples/example-python-project-scitex/data/.gitkeep +0 -0
- crossref_local-0.4.0/examples/00_run_all.sh +96 -0
- crossref_local-0.4.0/examples/01_quickstart.py +173 -0
- crossref_local-0.4.0/examples/02_citation_network/citation_network.html +163 -0
- crossref_local-0.4.0/examples/02_citation_network/citation_network.yaml +513 -0
- crossref_local-0.4.0/examples/02_citation_network/generate_visualization.py +107 -0
- crossref_local-0.4.0/examples/03_impact_factor/00_calculate_impact_factor.py +129 -0
- crossref_local-0.4.0/examples/03_impact_factor/01_compare_jcr.py +300 -0
- crossref_local-0.4.0/examples/03_impact_factor/01_compare_jcr_out/all_combined.json +398 -0
- crossref_local-0.4.0/examples/03_impact_factor/01_compare_jcr_out/biomedical_engineering.json +74 -0
- crossref_local-0.4.0/examples/03_impact_factor/01_compare_jcr_out/high_impact.json +110 -0
- crossref_local-0.4.0/examples/03_impact_factor/01_compare_jcr_out/neuroscience.json +218 -0
- crossref_local-0.4.0/examples/03_impact_factor/02_compare_jcr_plot.py +134 -0
- crossref_local-0.4.0/examples/03_impact_factor/02_compare_jcr_plot_out/scatter_calc_vs_jcr.yaml +493 -0
- crossref_local-0.4.0/examples/03_impact_factor/run_all_demos.sh +65 -0
- crossref_local-0.4.0/examples/04_mcp_demo.org +399 -0
- crossref_local-0.4.0/examples/04_mcp_demo_out/demo_mcp.tex +438 -0
- crossref_local-0.4.0/examples/04_mcp_demo_out/evolution.mmd +13 -0
- crossref_local-0.4.0/examples/04_mcp_demo_out/pipeline.mmd +27 -0
- crossref_local-0.4.0/examples/04_mcp_demo_out/states.mmd +11 -0
- crossref_local-0.4.0/examples/04_mcp_demo_out/tradeoff.mmd +14 -0
- crossref_local-0.4.0/examples/Dockerfile.mcp +35 -0
- crossref_local-0.4.0/examples/compose_readme.py +70 -0
- crossref_local-0.4.0/examples/crossref-mcp.service +47 -0
- crossref_local-0.4.0/examples/docker-compose.mcp.yml +44 -0
- crossref_local-0.4.0/examples/readme_figure.yaml +1279 -0
- crossref_local-0.4.0/pyproject.toml +76 -0
- crossref_local-0.4.0/scripts/README.md +132 -0
- crossref_local-0.4.0/scripts/create_test_db.py +273 -0
- crossref_local-0.4.0/scripts/database/00_rebuild_all.sh +230 -0
- crossref_local-0.4.0/scripts/database/02_create_missing_indexes.sh +100 -0
- crossref_local-0.4.0/scripts/database/03_rebuild_citations_table.py +641 -0
- crossref_local-0.4.0/scripts/database/03_rebuild_citations_table_optimized.py +676 -0
- crossref_local-0.4.0/scripts/database/04a_download_openalex_journals.py +243 -0
- crossref_local-0.4.0/scripts/database/04b_build_issn_table.py +176 -0
- crossref_local-0.4.0/scripts/database/04c_build_journals_table.py +153 -0
- crossref_local-0.4.0/scripts/database/04d_build_from_issn_list.py +169 -0
- crossref_local-0.4.0/scripts/database/05_build_fts5_index.py +230 -0
- crossref_local-0.4.0/scripts/database/06_calculate_abstract_ratio.py +166 -0
- crossref_local-0.4.0/scripts/database/99_check_db_connections.py +218 -0
- crossref_local-0.4.0/scripts/database/99_db_info.sh +185 -0
- crossref_local-0.4.0/scripts/database/99_maintain_indexes.sh +322 -0
- crossref_local-0.4.0/scripts/database/99_switch_to_optimized.sh +140 -0
- crossref_local-0.4.0/scripts/database/README.md +117 -0
- crossref_local-0.4.0/scripts/deployment/build_apptainer.sh +105 -0
- crossref_local-0.4.0/scripts/deployment/install_apptainer.sh +105 -0
- crossref_local-0.4.0/scripts/deployment/run_apptainer.sh +109 -0
- crossref_local-0.4.0/scripts/deployment/run_docker.sh +126 -0
- crossref_local-0.4.0/scripts/mcp/install.sh +179 -0
- crossref_local-0.4.0/scripts/mcp/status.sh +39 -0
- crossref_local-0.4.0/scripts/nfs/check.sh +21 -0
- crossref_local-0.4.0/scripts/nfs/setup_nfs.sh +161 -0
- crossref_local-0.4.0/scripts/nfs/status.sh +27 -0
- crossref_local-0.4.0/scripts/nfs/stop.sh +22 -0
- crossref_local-0.4.0/src/crossref_local/__init__.py +142 -0
- crossref_local-0.4.0/src/crossref_local/__main__.py +6 -0
- crossref_local-0.4.0/src/crossref_local/aio.py +236 -0
- crossref_local-0.4.0/src/crossref_local/api.py +296 -0
- crossref_local-0.4.0/src/crossref_local/cache.py +466 -0
- crossref_local-0.4.0/src/crossref_local/cache_export.py +83 -0
- crossref_local-0.4.0/src/crossref_local/cache_viz.py +296 -0
- crossref_local-0.4.0/src/crossref_local/citations.py +413 -0
- crossref_local-0.4.0/src/crossref_local/cli.py +518 -0
- crossref_local-0.4.0/src/crossref_local/cli_cache.py +179 -0
- crossref_local-0.4.0/src/crossref_local/cli_completion.py +245 -0
- crossref_local-0.4.0/src/crossref_local/cli_main.py +20 -0
- crossref_local-0.4.0/src/crossref_local/cli_mcp.py +275 -0
- crossref_local-0.4.0/src/crossref_local/config.py +168 -0
- crossref_local-0.4.0/src/crossref_local/db.py +138 -0
- crossref_local-0.4.0/src/crossref_local/fts.py +172 -0
- crossref_local-0.4.0/src/crossref_local/impact_factor/__init__.py +20 -0
- crossref_local-0.4.0/src/crossref_local/impact_factor/calculator.py +479 -0
- crossref_local-0.4.0/src/crossref_local/impact_factor/journal_lookup.py +274 -0
- crossref_local-0.4.0/src/crossref_local/mcp_server.py +413 -0
- crossref_local-0.4.0/src/crossref_local/models.py +186 -0
- crossref_local-0.4.0/src/crossref_local/remote.py +269 -0
- crossref_local-0.4.0/src/crossref_local/server.py +352 -0
- crossref_local-0.4.0/tests/conftest.py +56 -0
- crossref_local-0.4.0/tests/crossref_local/impact_factor/test_calculator.py +494 -0
- crossref_local-0.4.0/tests/crossref_local/impact_factor/test_journal_lookup.py +289 -0
- crossref_local-0.4.0/tests/crossref_local/test_aio.py +227 -0
- crossref_local-0.4.0/tests/crossref_local/test_api.py +351 -0
- crossref_local-0.4.0/tests/crossref_local/test_cache.py +247 -0
- crossref_local-0.4.0/tests/crossref_local/test_citations.py +250 -0
- crossref_local-0.4.0/tests/crossref_local/test_cli.py +144 -0
- crossref_local-0.4.0/tests/crossref_local/test_cli_completion.py +210 -0
- crossref_local-0.4.0/tests/crossref_local/test_config.py +114 -0
- crossref_local-0.4.0/tests/crossref_local/test_db.py +138 -0
- crossref_local-0.4.0/tests/crossref_local/test_fts.py +147 -0
- crossref_local-0.4.0/tests/crossref_local/test_mcp_server.py +80 -0
- crossref_local-0.4.0/tests/crossref_local/test_models.py +306 -0
- crossref_local-0.4.0/tests/crossref_local/test_remote.py +323 -0
- crossref_local-0.4.0/tests/crossref_local/test_server.py +169 -0
- crossref_local-0.4.0/tests/fixtures/.gitkeep +0 -0
- crossref_local-0.4.0/tests/sync_tests_with_source.sh +167 -0
- crossref_local-0.4.0/vendor/dois2sqlite/.gitignore +161 -0
- crossref_local-0.4.0/vendor/dois2sqlite/LICENSE +21 -0
- crossref_local-0.4.0/vendor/dois2sqlite/NOTES.md +55 -0
- crossref_local-0.4.0/vendor/dois2sqlite/README.md +119 -0
- crossref_local-0.4.0/vendor/dois2sqlite/dois2sqlite/__init__.py +0 -0
- crossref_local-0.4.0/vendor/dois2sqlite/dois2sqlite/cli.py +227 -0
- crossref_local-0.4.0/vendor/dois2sqlite/dois2sqlite/database.py +66 -0
- crossref_local-0.4.0/vendor/dois2sqlite/dois2sqlite/file_handlers.py +150 -0
- crossref_local-0.4.0/vendor/dois2sqlite/dois2sqlite/models.py +14 -0
- crossref_local-0.4.0/vendor/dois2sqlite/dois2sqlite/representations.py +23 -0
- crossref_local-0.4.0/vendor/dois2sqlite/dois2sqlite/utils.py +5 -0
- crossref_local-0.4.0/vendor/dois2sqlite/examples/cnserver/NOTES.md +22 -0
- crossref_local-0.4.0/vendor/dois2sqlite/examples/cnserver/README.md +21 -0
- crossref_local-0.4.0/vendor/dois2sqlite/examples/cnserver/app.py +115 -0
- crossref_local-0.4.0/vendor/dois2sqlite/examples/cnserver/cn-quick-test.py +82 -0
- crossref_local-0.4.0/vendor/dois2sqlite/examples/cnserver/cnserver/__init__.py +0 -0
- crossref_local-0.4.0/vendor/dois2sqlite/examples/cnserver/cnserver/accept_header_utils.py +41 -0
- crossref_local-0.4.0/vendor/dois2sqlite/examples/cnserver/cnserver/cslutils.py +46 -0
- crossref_local-0.4.0/vendor/dois2sqlite/examples/cnserver/cnserver/settings.py +24 -0
- crossref_local-0.4.0/vendor/dois2sqlite/pyproject.toml +54 -0
- crossref_local-0.4.0/vendor/dois2sqlite/quick_convert.sh +23 -0
- crossref_local-0.4.0/vendor/dois2sqlite/quick_no_convert.sh +20 -0
- crossref_local-0.4.0/vendor/dois2sqlite/utils/create-rnd-tar-subset.py +53 -0
- crossref_local-0.4.0/vendor/dois2sqlite/utils/select-rnd-dois-from-db.py +45 -0
- crossref_local-0.4.0/vendor/labs-data-file-api/.gitignore +287 -0
- crossref_local-0.4.0/vendor/labs-data-file-api/LICENSE.md +7 -0
- crossref_local-0.4.0/vendor/labs-data-file-api/README.md +99 -0
- crossref_local-0.4.0/vendor/labs-data-file-api/crossrefDataFile/__init__.py +0 -0
- crossref_local-0.4.0/vendor/labs-data-file-api/crossrefDataFile/api.py +263 -0
- crossref_local-0.4.0/vendor/labs-data-file-api/crossrefDataFile/app_urls.py +27 -0
- crossref_local-0.4.0/vendor/labs-data-file-api/crossrefDataFile/asgi.py +16 -0
- crossref_local-0.4.0/vendor/labs-data-file-api/crossrefDataFile/migrations/0001_initial.py +22 -0
- crossref_local-0.4.0/vendor/labs-data-file-api/crossrefDataFile/migrations/0002_dataindexwithlocation.py +22 -0
- crossref_local-0.4.0/vendor/labs-data-file-api/crossrefDataFile/migrations/__init__.py +0 -0
- crossref_local-0.4.0/vendor/labs-data-file-api/crossrefDataFile/models.py +23 -0
- crossref_local-0.4.0/vendor/labs-data-file-api/crossrefDataFile/urls.py +37 -0
- crossref_local-0.4.0/vendor/labs-data-file-api/crossrefDataFile/views.py +107 -0
- crossref_local-0.4.0/vendor/labs-data-file-api/crossrefDataFile/wsgi.py +29 -0
- crossref_local-0.4.0/vendor/labs-data-file-api/main.py +143 -0
- crossref_local-0.4.0/vendor/labs-data-file-api/manage.py +22 -0
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
# CrossRef Local Configuration
|
|
2
|
+
# Copy this file to .env and customize as needed
|
|
3
|
+
|
|
4
|
+
# =============================================================================
|
|
5
|
+
# DATABASE MODE - Direct database access (default)
|
|
6
|
+
# =============================================================================
|
|
7
|
+
|
|
8
|
+
# Path to CrossRef SQLite database (optional - auto-detected if not set)
|
|
9
|
+
# CROSSREF_LOCAL_DB=/path/to/crossref.db
|
|
10
|
+
|
|
11
|
+
# =============================================================================
|
|
12
|
+
# HTTP MODE - Connect to HTTP API server
|
|
13
|
+
# =============================================================================
|
|
14
|
+
|
|
15
|
+
# Force mode: 'db', 'http', or 'auto' (default: auto)
|
|
16
|
+
# CROSSREF_LOCAL_MODE=http
|
|
17
|
+
|
|
18
|
+
# API URL for http mode (default: auto-detect from localhost ports)
|
|
19
|
+
# CROSSREF_LOCAL_API_URL=http://localhost:8333
|
|
20
|
+
|
|
21
|
+
# =============================================================================
|
|
22
|
+
# SERVER CONFIGURATION
|
|
23
|
+
# =============================================================================
|
|
24
|
+
|
|
25
|
+
# HTTP API server settings
|
|
26
|
+
# CROSSREF_LOCAL_HOST=0.0.0.0
|
|
27
|
+
# CROSSREF_LOCAL_PORT=8333
|
|
28
|
+
|
|
29
|
+
# MCP server settings
|
|
30
|
+
# CROSSREF_LOCAL_MCP_HOST=localhost
|
|
31
|
+
# CROSSREF_LOCAL_MCP_PORT=8082
|
|
32
|
+
|
|
33
|
+
# =============================================================================
|
|
34
|
+
# TYPICAL USAGE
|
|
35
|
+
# =============================================================================
|
|
36
|
+
#
|
|
37
|
+
# Local database (default):
|
|
38
|
+
# crossref-local search "machine learning"
|
|
39
|
+
#
|
|
40
|
+
# HTTP mode (connect to running server):
|
|
41
|
+
# crossref-local --http search "machine learning"
|
|
42
|
+
# # Or set: export CROSSREF_LOCAL_MODE=http
|
|
43
|
+
#
|
|
44
|
+
# SSH tunnel to remote server:
|
|
45
|
+
# ssh -L 8333:127.0.0.1:8333 your-server
|
|
46
|
+
# crossref-local --http search "query"
|
|
47
|
+
#
|
|
48
|
+
# Start servers:
|
|
49
|
+
# crossref-local run-server-http # HTTP API on :8333
|
|
50
|
+
# crossref-local run-server-mcp # MCP server (stdio)
|
|
51
|
+
# crossref-local run-server-mcp -t http # MCP server (HTTP)
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
name: Tests
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
branches: [main, develop]
|
|
6
|
+
pull_request:
|
|
7
|
+
branches: [main, develop]
|
|
8
|
+
|
|
9
|
+
jobs:
|
|
10
|
+
test:
|
|
11
|
+
runs-on: ubuntu-latest
|
|
12
|
+
strategy:
|
|
13
|
+
matrix:
|
|
14
|
+
python-version: ["3.10", "3.11", "3.12"]
|
|
15
|
+
|
|
16
|
+
steps:
|
|
17
|
+
- uses: actions/checkout@v4
|
|
18
|
+
|
|
19
|
+
- name: Set up Python ${{ matrix.python-version }}
|
|
20
|
+
uses: actions/setup-python@v5
|
|
21
|
+
with:
|
|
22
|
+
python-version: ${{ matrix.python-version }}
|
|
23
|
+
|
|
24
|
+
- name: Install dependencies
|
|
25
|
+
run: |
|
|
26
|
+
python -m pip install --upgrade pip
|
|
27
|
+
pip install -e ".[all]"
|
|
28
|
+
|
|
29
|
+
- name: Create test database
|
|
30
|
+
run: |
|
|
31
|
+
python scripts/create_test_db.py --rows 500
|
|
32
|
+
|
|
33
|
+
- name: Run tests with coverage
|
|
34
|
+
run: |
|
|
35
|
+
pytest tests/ -v --tb=short --cov=crossref_local --cov-report=term-missing --cov-report=xml
|
|
36
|
+
|
|
37
|
+
- name: Upload coverage to Codecov
|
|
38
|
+
uses: codecov/codecov-action@v4
|
|
39
|
+
if: matrix.python-version == '3.11'
|
|
40
|
+
with:
|
|
41
|
+
file: ./coverage.xml
|
|
42
|
+
fail_ci_if_error: false
|
|
43
|
+
|
|
44
|
+
- name: Test CLI
|
|
45
|
+
run: |
|
|
46
|
+
crossref-local --help
|
|
47
|
+
crossref-local status || true
|