Skip to main content
Pre-release

This release is a pre-release and may not be stable for production use.

ScholarSort

A powerful Python library for academic research with integrated impact factor analysis, similar to the scholarly package but with enhanced features.

Features

  • 🔍 Academic Search: Search academic papers, authors, and journals
  • 📊 Impact Factor Analysis: Get journal impact factors, CiteScore, SJR and other metrics
  • 👨‍🎓 Author Analysis: Analyze researcher metrics and publication history
  • 📖 Journal Analysis: Journal rankings, metric trends, and recommendation system
  • 🚀 Async Support: Asynchronous operations for improved performance
  • 💾 Caching: Built-in caching to reduce duplicate requests

Installation

pip install scholarsort

Quick Start

from scholarsort import ScholarlySearch

# Create search instance
searcher = ScholarlySearch()

# Search publications
publications = searcher.search_publications("machine learning", num_results=10)
for pub in publications:
    print(f"Title: {pub['title']}")
    print(f"Citations: {pub['citations']}")
    print(f"Authors: {pub['authors']}")
    print("-" * 50)

# Search author
author_info = searcher.search_author("Geoffrey Hinton")
if author_info:
    print(f"Author: {author_info['name']}")
    print(f"Affiliation: {author_info['affiliation']}")
    print(f"Total Citations: {author_info['total_citations']}")

Impact Factor Analysis

from scholarsort import ImpactFactorAnalyzer

# Create impact factor analyzer
if_analyzer = ImpactFactorAnalyzer()

# Get journal impact factor
journal_metrics = if_analyzer.get_journal_impact_factor("Nature")
if journal_metrics:
    print(f"Journal: {journal_metrics['journal_name']}")
    print(f"Impact Factor: {journal_metrics['impact_factor']}")
    print(f"CiteScore: {journal_metrics['citescore']}")
    print(f"Quartile: {journal_metrics['quartile']}")

# Compare multiple journals
journals = ["Nature", "Science", "Cell"]
comparison = if_analyzer.compare_journals(journals)
print(comparison)

# Get top journals in specific field
top_journals = if_analyzer.get_journal_ranking("Computer Science", limit=20)
for i, journal in enumerate(top_journals, 1):
    print(f"{i}. {journal['journal_name']} (IF: {journal['impact_factor']})")

Author Deep Analysis

from scholarsort import AuthorAnalyzer

# Create author analyzer
author_analyzer = AuthorAnalyzer()

# Get detailed author profile
profile = author_analyzer.get_author_profile("Yann LeCun")
if profile:
    print(f"H-Index: {profile['h_index']}")
    print(f"i10-Index: {profile['i10_index']}")
    print(f"Research Interests: {', '.join(profile['interests'])}")
    
    # Analyze publications
    publications = profile['publications']
    metrics = author_analyzer.calculate_author_metrics(publications)
    print(f"Total Publications: {metrics['total_publications']}")
    print(f"Average Citations: {metrics['avg_citations_per_paper']}")

# Compare multiple authors
authors = ["Geoffrey Hinton", "Yann LeCun", "Yoshua Bengio"]
comparison = author_analyzer.compare_authors(authors)
print(comparison)

Journal Analysis and Recommendation

from scholarsort import JournalAnalyzer

# Create journal analyzer
journal_analyzer = JournalAnalyzer()

# Get journal detailed information
journal_info = journal_analyzer.get_journal_info("Nature Machine Intelligence")
if journal_info:
    print(f"Journal: {journal_info['title']}")
    print(f"Publisher: {journal_info['publisher']}")
    print(f"Open Access: {journal_info.get('open_access', False)}")

# Search journals by subject
ai_journals = journal_analyzer.search_journals_by_subject("Artificial Intelligence")
for journal in ai_journals[:5]:
    print(f"- {journal['title']} ({journal['publisher']})")

# Journal recommendations
keywords = ["machine learning", "artificial intelligence"]
recommendations = journal_analyzer.recommend_journals(
    keywords=keywords,
    min_if=2.0,
    max_if=8.0,
    open_access=True
)

print("Recommended Journals:")
for rec in recommendations[:5]:
    print(f"- {rec['journal_name']} (IF: {rec['impact_factor']}, Relevance: {rec['relevance_score']:.2f})")

Advanced Features

import asyncio
from scholarsort import ScholarlySearch, ImpactFactorAnalyzer

async def advanced_analysis():
    # Async search
    searcher = ScholarlySearch()
    results = await searcher.async_search_publications("deep learning")
    
    # Impact factor trend analysis
    if_analyzer = ImpactFactorAnalyzer()
    years = [2020, 2021, 2022, 2023, 2024]
    trend_data = if_analyzer.analyze_journal_trend("Nature", years)
    
    if trend_data is not None:
        print("Nature Journal Impact Factor Trends:")
        print(trend_data)

# Run async analysis
# asyncio.run(advanced_analysis())

Data Sources

  • Google Scholar: Paper search, author information, citation data
  • Scopus: CiteScore and journal metrics
  • Journal Citation Reports (JCR): Impact factor data
  • ScimagoJR: SJR rankings and journal metrics
  • DOAJ: Open access journal information
  • Crossref: Journal metadata

Important Notes

  1. Request Rate: Built-in request delay mechanism to avoid being blocked by search engines
  2. Data Accuracy: Metrics may vary between different data sources
  3. API Limitations: Some features require appropriate API access permissions
  4. Cache Usage: Automatic result caching to reduce duplicate requests

License

MIT License

Contributing

Issues and feature requests are welcome!

Changelog

v0.1.0a1 (2025)

  • Initial pre-release version
  • Basic academic search functionality
  • Impact factor analysis
  • Author and journal analysis
  • Async support

Contact

Metadata

Release files for scholarsort 0.1.0a1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for scholarsort 0.1.0a1
File Size Uploaded Provenance Actions
scholarsort-0.1.0a1.tar.gz 17.6 kB Without provenance Details for scholarsort-0.1.0a1.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for scholarsort 0.1.0a1
File Interpreter ABI Platform Actions
scholarsort-0.1.0a1-py3-none-any.whl Python 3 none any Details for scholarsort-0.1.0a1-py3-none-any.whl

Total release size: 35.4 kB

Release files / scholarsort-0.1.0a1.tar.gz

Download URL scholarsort-0.1.0a1.tar.gz
Size 17.6 kB
Tags Source
SHA-256 checksum
How to use checksums
28548a3a7e425289ca0a2da97b6794203d3daf40563919cfe2a69eda462eb90e
BLAKE2b-256 checksum
How to use checksums
37328b6c76617b984982c998ef4cdac0e3e501cd9ce7a7d90dd582b31890787a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.11.1

Release files / scholarsort-0.1.0a1-py3-none-any.whl

Download URL scholarsort-0.1.0a1-py3-none-any.whl
Size 17.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
15200a3cd3ce3375587f93699082c3d6e56ae160220ffcae6878915df3a0250e
BLAKE2b-256 checksum
How to use checksums
7f61803e7e93c2f4a1e79568d573cb7833c44662fc004592e522ff88795f150b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.11.1

Security for scholarsort 0.1.0a1

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release
Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page