lixplore-cli 1.0.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.
- lixplore_cli-1.0.0/.gitattributes +16 -0
- lixplore_cli-1.0.0/.github/workflows/docs.yml +33 -0
- lixplore_cli-1.0.0/.github/workflows/publish.yml +38 -0
- lixplore_cli-1.0.0/.github/workflows/test.yml +51 -0
- lixplore_cli-1.0.0/.gitignore +99 -0
- lixplore_cli-1.0.0/.python-version +1 -0
- lixplore_cli-1.0.0/CHANGELOG.md +136 -0
- lixplore_cli-1.0.0/LICENSE +21 -0
- lixplore_cli-1.0.0/MANIFEST.in +24 -0
- lixplore_cli-1.0.0/PKG-INFO +619 -0
- lixplore_cli-1.0.0/README.md +568 -0
- lixplore_cli-1.0.0/docs/README.md +133 -0
- lixplore_cli-1.0.0/docs/about/changelog.md +93 -0
- lixplore_cli-1.0.0/docs/about/contributing.md +427 -0
- lixplore_cli-1.0.0/docs/about/faq.md +407 -0
- lixplore_cli-1.0.0/docs/about/license.md +82 -0
- lixplore_cli-1.0.0/docs/advanced/ai-integration.md +209 -0
- lixplore_cli-1.0.0/docs/advanced/automation.md +308 -0
- lixplore_cli-1.0.0/docs/advanced/custom-apis.md +448 -0
- lixplore_cli-1.0.0/docs/advanced/profiles.md +392 -0
- lixplore_cli-1.0.0/docs/advanced/zotero.md +382 -0
- lixplore_cli-1.0.0/docs/examples/automation-examples.md +820 -0
- lixplore_cli-1.0.0/docs/examples/integrations.md +510 -0
- lixplore_cli-1.0.0/docs/examples/use-cases.md +475 -0
- lixplore_cli-1.0.0/docs/examples/workflows.md +468 -0
- lixplore_cli-1.0.0/docs/getting-started/basic-usage.md +100 -0
- lixplore_cli-1.0.0/docs/getting-started/first-search.md +196 -0
- lixplore_cli-1.0.0/docs/getting-started/installation.md +127 -0
- lixplore_cli-1.0.0/docs/getting-started/quickstart.md +253 -0
- lixplore_cli-1.0.0/docs/guide/annotations.md +0 -0
- lixplore_cli-1.0.0/docs/guide/export.md +0 -0
- lixplore_cli-1.0.0/docs/guide/filtering.md +517 -0
- lixplore_cli-1.0.0/docs/guide/interactive.md +0 -0
- lixplore_cli-1.0.0/docs/guide/pdf.md +461 -0
- lixplore_cli-1.0.0/docs/guide/search-sources.md +436 -0
- lixplore_cli-1.0.0/docs/guide/search.md +0 -0
- lixplore_cli-1.0.0/docs/index.md +117 -0
- lixplore_cli-1.0.0/docs/install_man_page.sh +59 -0
- lixplore_cli-1.0.0/docs/lixplore.1 +770 -0
- lixplore_cli-1.0.0/docs/lixplore.md +89 -0
- lixplore_cli-1.0.0/docs/lixplore.tldr +256 -0
- lixplore_cli-1.0.0/docs/reference/annotation-flags.md +703 -0
- lixplore_cli-1.0.0/docs/reference/display-flags.md +353 -0
- lixplore_cli-1.0.0/docs/reference/export-flags.md +549 -0
- lixplore_cli-1.0.0/docs/reference/filter-flags.md +642 -0
- lixplore_cli-1.0.0/docs/reference/flags-overview.md +490 -0
- lixplore_cli-1.0.0/docs/reference/flags.md +0 -0
- lixplore_cli-1.0.0/docs/reference/interactive-flags.md +160 -0
- lixplore_cli-1.0.0/docs/reference/search-flags.md +790 -0
- lixplore_cli-1.0.0/docs/reference/source-flags.md +800 -0
- lixplore_cli-1.0.0/docs/reference/utility-flags.md +636 -0
- lixplore_cli-1.0.0/docs/robots.txt +8 -0
- lixplore_cli-1.0.0/docs/stylesheets/extra.css +23 -0
- lixplore_cli-1.0.0/lixplore/__init__.py +0 -0
- lixplore_cli-1.0.0/lixplore/__main__.py +10 -0
- lixplore_cli-1.0.0/lixplore/cli.py +57 -0
- lixplore_cli-1.0.0/lixplore/commands.py +1543 -0
- lixplore_cli-1.0.0/lixplore/dispatcher.py +814 -0
- lixplore_cli-1.0.0/lixplore/search.py +33 -0
- lixplore_cli-1.0.0/lixplore/sources/__init__.py +0 -0
- lixplore_cli-1.0.0/lixplore/sources/arxiv.py +108 -0
- lixplore_cli-1.0.0/lixplore/sources/crossref.py +102 -0
- lixplore_cli-1.0.0/lixplore/sources/doaj.py +108 -0
- lixplore_cli-1.0.0/lixplore/sources/europepmc.py +96 -0
- lixplore_cli-1.0.0/lixplore/sources/pubmed.py +131 -0
- lixplore_cli-1.0.0/lixplore/templates/__init__.py +1 -0
- lixplore_cli-1.0.0/lixplore/templates/ieee.json +15 -0
- lixplore_cli-1.0.0/lixplore/templates/nature.json +15 -0
- lixplore_cli-1.0.0/lixplore/templates/science.json +15 -0
- lixplore_cli-1.0.0/lixplore/utils/annotations.py +486 -0
- lixplore_cli-1.0.0/lixplore/utils/cache.py +20 -0
- lixplore_cli-1.0.0/lixplore/utils/citations.py +269 -0
- lixplore_cli-1.0.0/lixplore/utils/custom_apis.py +291 -0
- lixplore_cli-1.0.0/lixplore/utils/enhanced_tui.py +849 -0
- lixplore_cli-1.0.0/lixplore/utils/enrichment.py +338 -0
- lixplore_cli-1.0.0/lixplore/utils/export.py +833 -0
- lixplore_cli-1.0.0/lixplore/utils/interactive_tui.py +425 -0
- lixplore_cli-1.0.0/lixplore/utils/pdf_downloader.py +495 -0
- lixplore_cli-1.0.0/lixplore/utils/profiles.py +213 -0
- lixplore_cli-1.0.0/lixplore/utils/reference_managers.py +302 -0
- lixplore_cli-1.0.0/lixplore/utils/shell_mode.py +563 -0
- lixplore_cli-1.0.0/lixplore/utils/statistics.py +355 -0
- lixplore_cli-1.0.0/lixplore/utils/template_engine.py +187 -0
- lixplore_cli-1.0.0/lixplore/utils/terminal.py +246 -0
- lixplore_cli-1.0.0/lixplore/utils/wizard_mode.py +334 -0
- lixplore_cli-1.0.0/lixplore_cli.egg-info/PKG-INFO +619 -0
- lixplore_cli-1.0.0/lixplore_cli.egg-info/SOURCES.txt +98 -0
- lixplore_cli-1.0.0/lixplore_cli.egg-info/dependency_links.txt +1 -0
- lixplore_cli-1.0.0/lixplore_cli.egg-info/entry_points.txt +2 -0
- lixplore_cli-1.0.0/lixplore_cli.egg-info/requires.txt +11 -0
- lixplore_cli-1.0.0/lixplore_cli.egg-info/top_level.txt +1 -0
- lixplore_cli-1.0.0/mkdocs.yml +145 -0
- lixplore_cli-1.0.0/pyproject.toml +82 -0
- lixplore_cli-1.0.0/requirements.txt +20 -0
- lixplore_cli-1.0.0/scripts/README.md +90 -0
- lixplore_cli-1.0.0/scripts/deploy_docs.sh +119 -0
- lixplore_cli-1.0.0/scripts/quick_docs_setup.sh +27 -0
- lixplore_cli-1.0.0/scripts/test_docs.sh +154 -0
- lixplore_cli-1.0.0/setup.cfg +4 -0
- lixplore_cli-1.0.0/setup.py +71 -0
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
# GitHub linguist configuration
|
|
2
|
+
# Exclude generated files and documentation builds from language statistics
|
|
3
|
+
|
|
4
|
+
# Documentation build outputs
|
|
5
|
+
site/** linguist-generated
|
|
6
|
+
docs/_build/** linguist-generated
|
|
7
|
+
|
|
8
|
+
# Python bytecode
|
|
9
|
+
*.pyc linguist-generated
|
|
10
|
+
__pycache__/** linguist-generated
|
|
11
|
+
|
|
12
|
+
# Mark documentation source as documentation
|
|
13
|
+
docs/**/*.md linguist-documentation
|
|
14
|
+
|
|
15
|
+
# Ensure Python is detected as primary language
|
|
16
|
+
*.py linguist-detectable
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
name: Deploy Documentation
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
branches:
|
|
6
|
+
- main
|
|
7
|
+
paths:
|
|
8
|
+
- 'docs/**'
|
|
9
|
+
- 'mkdocs.yml'
|
|
10
|
+
- '.github/workflows/docs.yml'
|
|
11
|
+
|
|
12
|
+
workflow_dispatch:
|
|
13
|
+
|
|
14
|
+
permissions:
|
|
15
|
+
contents: write
|
|
16
|
+
|
|
17
|
+
jobs:
|
|
18
|
+
deploy:
|
|
19
|
+
runs-on: ubuntu-latest
|
|
20
|
+
steps:
|
|
21
|
+
- uses: actions/checkout@v4
|
|
22
|
+
|
|
23
|
+
- name: Setup Python
|
|
24
|
+
uses: actions/setup-python@v5
|
|
25
|
+
with:
|
|
26
|
+
python-version: 3.x
|
|
27
|
+
|
|
28
|
+
- name: Install dependencies
|
|
29
|
+
run: |
|
|
30
|
+
pip install mkdocs mkdocs-material
|
|
31
|
+
|
|
32
|
+
- name: Deploy documentation
|
|
33
|
+
run: mkdocs gh-deploy --force
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
name: Publish to PyPI
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
release:
|
|
5
|
+
types: [published]
|
|
6
|
+
workflow_dispatch:
|
|
7
|
+
|
|
8
|
+
jobs:
|
|
9
|
+
build-and-publish:
|
|
10
|
+
runs-on: ubuntu-latest
|
|
11
|
+
env:
|
|
12
|
+
PYTHONUTF8: '1'
|
|
13
|
+
PYTHONIOENCODING: 'utf-8'
|
|
14
|
+
|
|
15
|
+
steps:
|
|
16
|
+
- uses: actions/checkout@v4
|
|
17
|
+
|
|
18
|
+
- name: Set up Python
|
|
19
|
+
uses: actions/setup-python@v5
|
|
20
|
+
with:
|
|
21
|
+
python-version: '3.12'
|
|
22
|
+
|
|
23
|
+
- name: Install dependencies
|
|
24
|
+
run: |
|
|
25
|
+
python -m pip install --upgrade pip
|
|
26
|
+
pip install build twine
|
|
27
|
+
|
|
28
|
+
- name: Build package
|
|
29
|
+
run: python -m build
|
|
30
|
+
|
|
31
|
+
- name: Check package
|
|
32
|
+
run: twine check dist/*
|
|
33
|
+
|
|
34
|
+
- name: Publish to PyPI
|
|
35
|
+
env:
|
|
36
|
+
TWINE_USERNAME: __token__
|
|
37
|
+
TWINE_PASSWORD: ${{ secrets.PYPI_API_TOKEN }}
|
|
38
|
+
run: twine upload dist/*
|
|
@@ -0,0 +1,51 @@
|
|
|
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: ${{ matrix.os }}
|
|
12
|
+
env:
|
|
13
|
+
PYTHONUTF8: '1'
|
|
14
|
+
PYTHONIOENCODING: 'utf-8'
|
|
15
|
+
strategy:
|
|
16
|
+
fail-fast: false
|
|
17
|
+
matrix:
|
|
18
|
+
os: [ubuntu-latest, macos-latest, windows-latest]
|
|
19
|
+
python-version: ['3.8', '3.9', '3.10', '3.11', '3.12']
|
|
20
|
+
|
|
21
|
+
steps:
|
|
22
|
+
- uses: actions/checkout@v4
|
|
23
|
+
|
|
24
|
+
- name: Set up Python ${{ matrix.python-version }}
|
|
25
|
+
uses: actions/setup-python@v5
|
|
26
|
+
with:
|
|
27
|
+
python-version: ${{ matrix.python-version }}
|
|
28
|
+
cache: 'pip'
|
|
29
|
+
|
|
30
|
+
- name: Configure Windows UTF-8 console
|
|
31
|
+
if: runner.os == 'Windows'
|
|
32
|
+
shell: pwsh
|
|
33
|
+
run: |
|
|
34
|
+
chcp 65001
|
|
35
|
+
$OutputEncoding = [Console]::OutputEncoding = [Text.UTF8Encoding]::new()
|
|
36
|
+
[Console]::InputEncoding = [Text.UTF8Encoding]::new()
|
|
37
|
+
|
|
38
|
+
- name: Install dependencies
|
|
39
|
+
run: |
|
|
40
|
+
python -m pip install --upgrade pip setuptools wheel
|
|
41
|
+
pip install -r requirements.txt
|
|
42
|
+
pip install -e .
|
|
43
|
+
|
|
44
|
+
- name: Test basic functionality
|
|
45
|
+
run: |
|
|
46
|
+
lixplore -P -q "test" -m 2
|
|
47
|
+
|
|
48
|
+
- name: Test installation
|
|
49
|
+
run: |
|
|
50
|
+
lixplore --help
|
|
51
|
+
lixplore --examples
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
# Python
|
|
2
|
+
__pycache__/
|
|
3
|
+
*.py[cod]
|
|
4
|
+
*$py.class
|
|
5
|
+
*.so
|
|
6
|
+
.Python
|
|
7
|
+
build/
|
|
8
|
+
develop-eggs/
|
|
9
|
+
dist/
|
|
10
|
+
downloads/
|
|
11
|
+
eggs/
|
|
12
|
+
.eggs/
|
|
13
|
+
lib/
|
|
14
|
+
lib64/
|
|
15
|
+
parts/
|
|
16
|
+
sdist/
|
|
17
|
+
var/
|
|
18
|
+
wheels/
|
|
19
|
+
pip-wheel-metadata/
|
|
20
|
+
share/python-wheels/
|
|
21
|
+
*.egg-info/
|
|
22
|
+
.installed.cfg
|
|
23
|
+
*.egg
|
|
24
|
+
MANIFEST
|
|
25
|
+
|
|
26
|
+
# Virtual Environment
|
|
27
|
+
venv/
|
|
28
|
+
ENV/
|
|
29
|
+
env/
|
|
30
|
+
.venv
|
|
31
|
+
|
|
32
|
+
# IDEs
|
|
33
|
+
.vscode/
|
|
34
|
+
.idea/
|
|
35
|
+
*.swp
|
|
36
|
+
*.swo
|
|
37
|
+
*~
|
|
38
|
+
.DS_Store
|
|
39
|
+
|
|
40
|
+
# Lixplore specific - User generated files
|
|
41
|
+
exports/
|
|
42
|
+
results.json
|
|
43
|
+
.lixplore_cache.json
|
|
44
|
+
.crossref
|
|
45
|
+
.semantischolar
|
|
46
|
+
config.json
|
|
47
|
+
lixplore_annotations_*.*
|
|
48
|
+
|
|
49
|
+
# Test files and debugging
|
|
50
|
+
tmp_rovodev_*
|
|
51
|
+
*.tmp
|
|
52
|
+
test.py
|
|
53
|
+
test1.py
|
|
54
|
+
test_*.py
|
|
55
|
+
troubleshoot.py
|
|
56
|
+
pub.py
|
|
57
|
+
|
|
58
|
+
# All markdown files in root directory except README and CHANGELOG
|
|
59
|
+
# Documentation is available at https://pryndor.github.io/Lixplore_cli/
|
|
60
|
+
# Source files in docs/ directory are kept for building documentation site
|
|
61
|
+
/*.md
|
|
62
|
+
!README.md
|
|
63
|
+
!CHANGELOG.md
|
|
64
|
+
|
|
65
|
+
# Distribution / packaging
|
|
66
|
+
*.whl
|
|
67
|
+
*.tar.gz
|
|
68
|
+
|
|
69
|
+
# Coverage reports
|
|
70
|
+
htmlcov/
|
|
71
|
+
.tox/
|
|
72
|
+
.coverage
|
|
73
|
+
.coverage.*
|
|
74
|
+
.cache
|
|
75
|
+
nosetests.xml
|
|
76
|
+
coverage.xml
|
|
77
|
+
*.cover
|
|
78
|
+
.hypothesis/
|
|
79
|
+
.pytest_cache/
|
|
80
|
+
|
|
81
|
+
# Jupyter Notebook
|
|
82
|
+
.ipynb_checkpoints
|
|
83
|
+
|
|
84
|
+
# pyenv
|
|
85
|
+
.python-version
|
|
86
|
+
|
|
87
|
+
# Logs
|
|
88
|
+
*.log
|
|
89
|
+
|
|
90
|
+
# Documentation builds
|
|
91
|
+
docs/_build/
|
|
92
|
+
site/
|
|
93
|
+
|
|
94
|
+
# OS specific
|
|
95
|
+
Thumbs.db
|
|
96
|
+
|
|
97
|
+
# Keep structure but ignore contents
|
|
98
|
+
exports/*
|
|
99
|
+
!exports/.gitignore
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
lixplore-env
|
|
@@ -0,0 +1,136 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
All notable changes to this project will be documented in this file.
|
|
4
|
+
|
|
5
|
+
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
|
6
|
+
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
|
+
|
|
8
|
+
## [2.0.0] - 2024-12-24
|
|
9
|
+
|
|
10
|
+
### Added - Major Export Enhancement Update
|
|
11
|
+
|
|
12
|
+
**New Export Features:**
|
|
13
|
+
- **Citation Style Export** - Export formatted citations in APA, MLA, Chicago, IEEE styles (`-C`)
|
|
14
|
+
- **Batch Export** - Export to multiple formats simultaneously (`-X csv,ris,bibtex`)
|
|
15
|
+
- **Export Field Filtering** - Select specific fields to export (`--export-fields title authors year doi`)
|
|
16
|
+
- **Metadata Enrichment** - Enrich results using CrossRef, PubMed, arXiv APIs (`--enrich`)
|
|
17
|
+
- **DOI Resolution** - Automatically validate and find missing DOIs (integrated with enrichment)
|
|
18
|
+
- **Export Templates** - Use predefined templates for journals (`--template nature`)
|
|
19
|
+
- **Export Compression** - Auto-compress exports to ZIP (`--zip`)
|
|
20
|
+
- **Export Profiles** - Save and reuse export configurations (`--save-profile`, `--load-profile`)
|
|
21
|
+
- **Enhanced Deduplication** - Advanced strategies with metadata merging (`-D strict --dedup-merge`)
|
|
22
|
+
|
|
23
|
+
**New CLI Flags:**
|
|
24
|
+
- `-C, --citation STYLE` - Export as formatted citations (apa|mla|chicago|ieee)
|
|
25
|
+
- `-X FORMAT[,FORMAT...]` - Batch export to multiple formats (comma-separated)
|
|
26
|
+
- `--export-fields FIELD [FIELD ...]` - Select specific fields to export
|
|
27
|
+
- `--enrich [API ...]` - Enrich metadata (crossref|pubmed|arxiv|all)
|
|
28
|
+
- `--template NAME` - Use predefined export template (nature|science|ieee)
|
|
29
|
+
- `--zip` - Compress exported files to ZIP
|
|
30
|
+
- `--save-profile NAME` - Save current export settings as profile
|
|
31
|
+
- `--load-profile NAME` - Load saved export profile
|
|
32
|
+
- `--list-profiles` - List all saved profiles
|
|
33
|
+
- `--delete-profile NAME` - Delete saved profile
|
|
34
|
+
- `--list-templates` - List all available templates
|
|
35
|
+
- `-D [STRATEGY]` - Enhanced deduplication (auto|strict|loose|doi_only|title_only)
|
|
36
|
+
- `--dedup-threshold FLOAT` - Title similarity threshold (0.0-1.0, default: 0.85)
|
|
37
|
+
- `--dedup-keep STRATEGY` - Which duplicate to keep (first|most_complete|prefer_doi)
|
|
38
|
+
- `--dedup-merge` - Merge metadata from duplicates
|
|
39
|
+
|
|
40
|
+
**New Modules:**
|
|
41
|
+
- `lixplore/utils/citations.py` - Citation formatting engine
|
|
42
|
+
- `lixplore/utils/enrichment.py` - Metadata enrichment and DOI resolution
|
|
43
|
+
- `lixplore/utils/profiles.py` - Profile management
|
|
44
|
+
- `lixplore/utils/template_engine.py` - Template processing
|
|
45
|
+
- `lixplore/templates/` - Built-in templates (nature, science, ieee)
|
|
46
|
+
|
|
47
|
+
**New Export Features:**
|
|
48
|
+
- `exports/citations/` - Citation format exports folder
|
|
49
|
+
- `~/.lixplore/profiles.json` - User profiles storage
|
|
50
|
+
- `~/.lixplore/templates/` - User custom templates folder
|
|
51
|
+
|
|
52
|
+
### Changed
|
|
53
|
+
- `-D, --deduplicate` now accepts optional strategy parameter
|
|
54
|
+
- `-X, --export` now supports comma-separated format list for batch export
|
|
55
|
+
- Enhanced deduplication with configurable strategies and metadata merging
|
|
56
|
+
- Improved field filtering across all export formats
|
|
57
|
+
|
|
58
|
+
### Removed
|
|
59
|
+
- `-Z, --zotero` flag (replaced by RIS export which works with Zotero)
|
|
60
|
+
- Stub Zotero integration function (use `-X ris` instead)
|
|
61
|
+
|
|
62
|
+
### Fixed
|
|
63
|
+
- Deduplication now properly handles metadata completeness scoring
|
|
64
|
+
- Export field filtering now validates field names
|
|
65
|
+
- Better handling of missing metadata fields
|
|
66
|
+
|
|
67
|
+
## [1.0.0] - 2024-12-19
|
|
68
|
+
|
|
69
|
+
### Added
|
|
70
|
+
- Multi-source search across 5 academic databases (PubMed, arXiv, Crossref, DOAJ, EuropePMC)
|
|
71
|
+
- Boolean operator support (AND, OR, NOT, parentheses)
|
|
72
|
+
- 8 export formats (CSV, Excel, JSON, BibTeX, RIS, EndNote XML, EndNote Tagged, XML)
|
|
73
|
+
- Smart selection patterns (odd, even, ranges, first:N, last:N, top:N)
|
|
74
|
+
- Sorting options (relevant, newest, oldest, journal, author)
|
|
75
|
+
- Review feature - view articles in separate terminal windows
|
|
76
|
+
- Deduplication across multiple sources
|
|
77
|
+
- Organized export folders by format type
|
|
78
|
+
- Date range filtering
|
|
79
|
+
- Author and DOI search
|
|
80
|
+
- Complete documentation (man page, help, examples, TLDR)
|
|
81
|
+
- Cross-platform support (Linux, macOS, Windows)
|
|
82
|
+
|
|
83
|
+
### Features
|
|
84
|
+
- `-P, --pubmed` - Search PubMed
|
|
85
|
+
- `-C, --crossref` - Search Crossref
|
|
86
|
+
- `-J, --doaj` - Search DOAJ
|
|
87
|
+
- `-E, --europepmc` - Search EuropePMC
|
|
88
|
+
- `-x, --arxiv` - Search arXiv
|
|
89
|
+
- `-A, --all` - Search all sources
|
|
90
|
+
- `-s, --sources` - Combined source selection
|
|
91
|
+
- `-q, --query` - Search query with Boolean operators
|
|
92
|
+
- `-au, --author` - Search by author
|
|
93
|
+
- `-DOI, --doi` - Search by DOI
|
|
94
|
+
- `-m, --max_results` - Maximum results (default: 10)
|
|
95
|
+
- `-d, --date` - Date range filter
|
|
96
|
+
- `-D, --deduplicate` - Remove duplicates
|
|
97
|
+
- `--sort` - Sort results (relevant, newest, oldest, journal, author)
|
|
98
|
+
- `-a, --abstract` - Show abstracts
|
|
99
|
+
- `-N, --number` - View details in console
|
|
100
|
+
- `-R, --review` - Review in separate terminal
|
|
101
|
+
- `-st, --stat` - Get statistics
|
|
102
|
+
- `-X, --export` - Export format
|
|
103
|
+
- `-o, --output` - Custom output filename
|
|
104
|
+
- `-S, --select` - Smart selection
|
|
105
|
+
- `-H, --history` - Show search history
|
|
106
|
+
- `--examples` - Show quick examples
|
|
107
|
+
- `-h, --help` - Show help message
|
|
108
|
+
|
|
109
|
+
### Documentation
|
|
110
|
+
- Comprehensive README with examples
|
|
111
|
+
- Professional Unix man page
|
|
112
|
+
- Quick examples (TLDR-style)
|
|
113
|
+
- Complete help system
|
|
114
|
+
- API documentation
|
|
115
|
+
|
|
116
|
+
### Package Distribution
|
|
117
|
+
- PyPI package support
|
|
118
|
+
- Cross-platform compatibility (Linux, macOS, Windows)
|
|
119
|
+
- Python 3.7+ support
|
|
120
|
+
- Modern packaging with pyproject.toml
|
|
121
|
+
- GitHub Actions for CI/CD
|
|
122
|
+
- Automated testing across platforms
|
|
123
|
+
|
|
124
|
+
## [Unreleased]
|
|
125
|
+
|
|
126
|
+
### Planned Features
|
|
127
|
+
- PDF download support
|
|
128
|
+
- Citation network visualization
|
|
129
|
+
- Bookmarking system
|
|
130
|
+
- Search profiles
|
|
131
|
+
- Web interface
|
|
132
|
+
- Batch processing from file
|
|
133
|
+
|
|
134
|
+
---
|
|
135
|
+
|
|
136
|
+
For more details, see the [README](README.md).
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2024 Lixplore Contributors
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
# Include documentation
|
|
2
|
+
include README.md
|
|
3
|
+
include LICENSE
|
|
4
|
+
include requirements.txt
|
|
5
|
+
include CHANGELOG.md
|
|
6
|
+
|
|
7
|
+
# Include documentation files
|
|
8
|
+
recursive-include docs *.md *.1
|
|
9
|
+
|
|
10
|
+
# Exclude unnecessary files
|
|
11
|
+
global-exclude __pycache__
|
|
12
|
+
global-exclude *.py[co]
|
|
13
|
+
global-exclude .DS_Store
|
|
14
|
+
global-exclude *.so
|
|
15
|
+
|
|
16
|
+
# Exclude test files
|
|
17
|
+
prune tests
|
|
18
|
+
prune exports
|
|
19
|
+
|
|
20
|
+
# Exclude cache and temp files
|
|
21
|
+
exclude .lixplore_cache.json
|
|
22
|
+
exclude results.json
|
|
23
|
+
exclude .crossref
|
|
24
|
+
exclude .semantischolar
|