Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Releases: jmmeus/aioarxiv

aioarxiv v1.1.3

05 Dec 14:02

Choose a tag to compare

This release enhances RSS feed functionality and further unifies the API and RSS interfaces, improving overall code cohesion and maintainability.

What's Changed

Interface Unification

  • Enhanced query structure consistency:
    • Introduced id_list parameter in BaseQuery
    • Unified parameter handling between SearchQuery and RSSQuery
    • Harmonized behavior between API and RSS feed infrastructure

RSS Feed Improvements

  • Enhanced author information parsing:
    • Fixed author parsing for RSS feeds
    • Added new .institutions attribute to Author class
    • Institutions data available when provided in RSS feeds (defaults to None)

Internal Refinements

  • Implemented consistent parameter validation across query types
  • Improved code cohesion between API and RSS implementations
  • Enhanced parameter handling documentation

Installing

$ pip install git+https://github.com/jmmeus/aioarxiv.git

For more information, please visit our GitHub repository.

aioarxiv v1.1.2

30 Nov 00:46

Choose a tag to compare

This release focuses on API cohesion and interface unification, alongside continued architectural improvements for better maintainability and user experience.

What's Changed

Architectural Improvements

  • Enhanced query structure and organization:
    • Converted Search class to a more flexible query system
    • Implemented shared base functionality in BaseQuery
    • Specialized implementations in SearchQuery and RSSQuery

Unified Query Interface

  • Streamlined API interaction for end users:
    • Introduced new class hierarchy with BaseQuery, SearchQuery, and RSSQuery
    • Unified search and RSS feed interfaces for consistent user experience
    • All queries now use identical setup and client.results() method
    • Backend differences abstracted away from end users

Internal Refinements

  • Updated internal documentation to reflect new class hierarchy
  • Refined type hints for improved IDE support
  • Ensured consistent behavior across all query types

Installing

$ pip install git+https://github.com/jmmeus/aioarxiv.git

For more information, please visit our GitHub repository.

aioarxiv v1.1.1

29 Nov 01:26

Choose a tag to compare

This release introduces a major architectural overhaul, improving maintainability and modularity, alongside internal enhancements to the Client class for better resource management.

What's Changed

Modular Architecture Redesign

  • Improved code structure for better maintainability:
    • Split the monolithic __init__.py into smaller, focused modules:
      • client.py for API interaction logic
      • models package for handling search results, RSS results, and enums
      • errors.py for centralized error handling
      • rate_limiter.py for asynchronous rate-limiting logic
      • decorators.py for reusable decorator utilities
    • Introduced models/utilities.py to house shared validation, parsing, and helper functions.

Internal Enhancements

  • Implemented reference-counted context management for the Client class:
    • Simplifies internal session handling in nested contexts.
    • Improves robustness by ensuring proper resource cleanup.

Testing Enhancements

  • Refactored test cases to align with the new modular structure.
  • Verified the reliability of the Client's context management.
  • Expanded test coverage for utility functions and decorators.

Installing

$ pip install git+https://github.com/jmmeus/aioarxiv.git

For more information, please visit our GitHub repository.

aioarxiv v1.1.0

28 Nov 18:52

Choose a tag to compare

This release focuses on implementing RSS feed support, and improved Result class architecture.

What's Changed

RSS Feed Support

  • Added full RSS feed compatibility
  • Introduced new RSSResult class for handling RSS feed responses
  • Implemented flexible feed parsing and data extraction

Architecture Improvements

  • Refactored result handling with new class hierarchy:
    • Introduced BaseResult as the foundation class
    • Split into specialized RSSResult and SearchResult classes
    • Maintained backward compatibility for existing search operations

Testing Enhancements

  • Extended test suite to cover RSS feed functionality
  • Updated existing tests to accommodate new result class structure
  • Improved test reliability and coverage

Example: RSS Feed Usage

from aioarxiv import Client

async with Client() as client:
    # Fetch latest papers in quantum physics
    async for entry in client.get_feed("quant-ph"):
        print(entry.title)

Installing

$ pip install git+https://github.com/jmmeus/aioarxiv.git

For more information, please visit our GitHub repository.

aioarxiv v1.0.2

26 Nov 12:44

Choose a tag to compare

This release focuses on improving test infrastructure and modernizing the rate limiting implementation.

What's Changed

Testing Improvements

  • Updated pytest test suite to ensure all test cases are passing
  • Enhanced GitHub workflow configurations for more reliable CI/CD
  • Improved test coverage and reliability

Core Changes

  • Migrated from legacy rate limit handler to new asynchronous-friendly implementation
  • Improved handling of concurrent requests
  • Better compliance with arXiv API rate limits

Installing

$ pip install git+https://github.com/jmmeus/aioarxiv.git

For more information, please visit our GitHub repository.

arioarxiv v1.0.0

22 Nov 17:46

Choose a tag to compare

πŸš€ First Major Release

aioarxiv is an asynchronous Python wrapper for the arXiv API, designed to provide efficient, non-blocking interactions with scholarly research databases.

✨ Key Features

  • Fully asynchronous API client
  • Support for advanced search queries
  • PDF and source file downloads
  • Flexible configuration options
  • Compatible with modern Python async workflows

πŸ”„ Migrating from arxiv.py

This library is an async reimplementation of the popular arxiv.py by Lukas Schwab. Major differences include:

  • Async/await syntax
  • Non-blocking API interactions
  • Enhanced performance for concurrent searches

πŸ“¦ Installation

pip install git+https://github.com/jmmeus/aioarxiv.git

πŸ’‘ Quick Example

import asyncio
import aioarxiv

async def main():
    search = aioarxiv.Search(query="quantum", max_results=10)
    async with  aioarxiv.Client() as client:
        async for result in client.results(search):
            print(result.title)

asyncio.run(main())

πŸ›  Compatibility

  • Python 3.8+
  • Requires modern async programming practices

Enjoy efficient, non-blocking arXiv research with aioarxiv!