academic-refchecker 1.2.47__tar.gz → 1.2.48__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.
Files changed (57) hide show
  1. {academic_refchecker-1.2.47/src/academic_refchecker.egg-info → academic_refchecker-1.2.48}/PKG-INFO +1 -1
  2. {academic_refchecker-1.2.47 → academic_refchecker-1.2.48}/src/__version__.py +1 -1
  3. {academic_refchecker-1.2.47 → academic_refchecker-1.2.48/src/academic_refchecker.egg-info}/PKG-INFO +1 -1
  4. {academic_refchecker-1.2.47 → academic_refchecker-1.2.48}/src/core/refchecker.py +50 -9
  5. {academic_refchecker-1.2.47 → academic_refchecker-1.2.48}/src/utils/text_utils.py +1 -1
  6. {academic_refchecker-1.2.47 → academic_refchecker-1.2.48}/LICENSE +0 -0
  7. {academic_refchecker-1.2.47 → academic_refchecker-1.2.48}/MANIFEST.in +0 -0
  8. {academic_refchecker-1.2.47 → academic_refchecker-1.2.48}/README.md +0 -0
  9. {academic_refchecker-1.2.47 → academic_refchecker-1.2.48}/pyproject.toml +0 -0
  10. {academic_refchecker-1.2.47 → academic_refchecker-1.2.48}/requirements.txt +0 -0
  11. {academic_refchecker-1.2.47 → academic_refchecker-1.2.48}/scripts/download_db.py +0 -0
  12. {academic_refchecker-1.2.47 → academic_refchecker-1.2.48}/scripts/run_tests.py +0 -0
  13. {academic_refchecker-1.2.47 → academic_refchecker-1.2.48}/scripts/start_vllm_server.py +0 -0
  14. {academic_refchecker-1.2.47 → academic_refchecker-1.2.48}/setup.cfg +0 -0
  15. {academic_refchecker-1.2.47 → academic_refchecker-1.2.48}/src/__init__.py +0 -0
  16. {academic_refchecker-1.2.47 → academic_refchecker-1.2.48}/src/academic_refchecker.egg-info/SOURCES.txt +0 -0
  17. {academic_refchecker-1.2.47 → academic_refchecker-1.2.48}/src/academic_refchecker.egg-info/dependency_links.txt +0 -0
  18. {academic_refchecker-1.2.47 → academic_refchecker-1.2.48}/src/academic_refchecker.egg-info/entry_points.txt +0 -0
  19. {academic_refchecker-1.2.47 → academic_refchecker-1.2.48}/src/academic_refchecker.egg-info/requires.txt +0 -0
  20. {academic_refchecker-1.2.47 → academic_refchecker-1.2.48}/src/academic_refchecker.egg-info/top_level.txt +0 -0
  21. {academic_refchecker-1.2.47 → academic_refchecker-1.2.48}/src/checkers/__init__.py +0 -0
  22. {academic_refchecker-1.2.47 → academic_refchecker-1.2.48}/src/checkers/crossref.py +0 -0
  23. {academic_refchecker-1.2.47 → academic_refchecker-1.2.48}/src/checkers/enhanced_hybrid_checker.py +0 -0
  24. {academic_refchecker-1.2.47 → academic_refchecker-1.2.48}/src/checkers/github_checker.py +0 -0
  25. {academic_refchecker-1.2.47 → academic_refchecker-1.2.48}/src/checkers/local_semantic_scholar.py +0 -0
  26. {academic_refchecker-1.2.47 → academic_refchecker-1.2.48}/src/checkers/openalex.py +0 -0
  27. {academic_refchecker-1.2.47 → academic_refchecker-1.2.48}/src/checkers/openreview_checker.py +0 -0
  28. {academic_refchecker-1.2.47 → academic_refchecker-1.2.48}/src/checkers/semantic_scholar.py +0 -0
  29. {academic_refchecker-1.2.47 → academic_refchecker-1.2.48}/src/checkers/webpage_checker.py +0 -0
  30. {academic_refchecker-1.2.47 → academic_refchecker-1.2.48}/src/config/__init__.py +0 -0
  31. {academic_refchecker-1.2.47 → academic_refchecker-1.2.48}/src/config/logging.conf +0 -0
  32. {academic_refchecker-1.2.47 → academic_refchecker-1.2.48}/src/config/settings.py +0 -0
  33. {academic_refchecker-1.2.47 → academic_refchecker-1.2.48}/src/core/__init__.py +0 -0
  34. {academic_refchecker-1.2.47 → academic_refchecker-1.2.48}/src/core/db_connection_pool.py +0 -0
  35. {academic_refchecker-1.2.47 → academic_refchecker-1.2.48}/src/core/parallel_processor.py +0 -0
  36. {academic_refchecker-1.2.47 → academic_refchecker-1.2.48}/src/database/__init__.py +0 -0
  37. {academic_refchecker-1.2.47 → academic_refchecker-1.2.48}/src/database/download_semantic_scholar_db.py +0 -0
  38. {academic_refchecker-1.2.47 → academic_refchecker-1.2.48}/src/llm/__init__.py +0 -0
  39. {academic_refchecker-1.2.47 → academic_refchecker-1.2.48}/src/llm/base.py +0 -0
  40. {academic_refchecker-1.2.47 → academic_refchecker-1.2.48}/src/llm/providers.py +0 -0
  41. {academic_refchecker-1.2.47 → academic_refchecker-1.2.48}/src/scripts/__init__.py +0 -0
  42. {academic_refchecker-1.2.47 → academic_refchecker-1.2.48}/src/scripts/start_vllm_server.py +0 -0
  43. {academic_refchecker-1.2.47 → academic_refchecker-1.2.48}/src/services/__init__.py +0 -0
  44. {academic_refchecker-1.2.47 → academic_refchecker-1.2.48}/src/services/pdf_processor.py +0 -0
  45. {academic_refchecker-1.2.47 → academic_refchecker-1.2.48}/src/utils/__init__.py +0 -0
  46. {academic_refchecker-1.2.47 → academic_refchecker-1.2.48}/src/utils/arxiv_utils.py +0 -0
  47. {academic_refchecker-1.2.47 → academic_refchecker-1.2.48}/src/utils/author_utils.py +0 -0
  48. {academic_refchecker-1.2.47 → academic_refchecker-1.2.48}/src/utils/biblatex_parser.py +0 -0
  49. {academic_refchecker-1.2.47 → academic_refchecker-1.2.48}/src/utils/bibliography_utils.py +0 -0
  50. {academic_refchecker-1.2.47 → academic_refchecker-1.2.48}/src/utils/bibtex_parser.py +0 -0
  51. {academic_refchecker-1.2.47 → academic_refchecker-1.2.48}/src/utils/config_validator.py +0 -0
  52. {academic_refchecker-1.2.47 → academic_refchecker-1.2.48}/src/utils/db_utils.py +0 -0
  53. {academic_refchecker-1.2.47 → academic_refchecker-1.2.48}/src/utils/doi_utils.py +0 -0
  54. {academic_refchecker-1.2.47 → academic_refchecker-1.2.48}/src/utils/error_utils.py +0 -0
  55. {academic_refchecker-1.2.47 → academic_refchecker-1.2.48}/src/utils/mock_objects.py +0 -0
  56. {academic_refchecker-1.2.47 → academic_refchecker-1.2.48}/src/utils/unicode_utils.py +0 -0
  57. {academic_refchecker-1.2.47 → academic_refchecker-1.2.48}/src/utils/url_utils.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: academic-refchecker
3
- Version: 1.2.47
3
+ Version: 1.2.48
4
4
  Summary: A comprehensive tool for validating reference accuracy in academic papers
5
5
  Author-email: Mark Russinovich <markrussinovich@hotmail.com>
6
6
  License-Expression: MIT
@@ -1,3 +1,3 @@
1
1
  """Version information for RefChecker."""
2
2
 
3
- __version__ = "1.2.47"
3
+ __version__ = "1.2.48"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: academic-refchecker
3
- Version: 1.2.47
3
+ Version: 1.2.48
4
4
  Summary: A comprehensive tool for validating reference accuracy in academic papers
5
5
  Author-email: Mark Russinovich <markrussinovich@hotmail.com>
6
6
  License-Expression: MIT
@@ -2637,9 +2637,19 @@ class ArxivReferenceChecker:
2637
2637
 
2638
2638
  # Generate corrected reference using all available corrections
2639
2639
  corrected_data = self._extract_corrected_data_from_error(consolidated_entry, verified_data)
2640
- corrected_format = format_corrected_reference(reference, corrected_data, consolidated_entry)
2641
- if corrected_format:
2642
- consolidated_entry['ref_corrected_format'] = corrected_format
2640
+
2641
+ # Generate all three formats for user convenience
2642
+ from utils.text_utils import format_corrected_plaintext, format_corrected_bibtex, format_corrected_bibitem
2643
+ plaintext_format = format_corrected_plaintext(reference, corrected_data, consolidated_entry)
2644
+ bibtex_format = format_corrected_bibtex(reference, corrected_data, consolidated_entry)
2645
+ bibitem_format = format_corrected_bibitem(reference, corrected_data, consolidated_entry)
2646
+
2647
+ if plaintext_format:
2648
+ consolidated_entry['ref_corrected_plaintext'] = plaintext_format
2649
+ if bibtex_format:
2650
+ consolidated_entry['ref_corrected_bibtex'] = bibtex_format
2651
+ if bibitem_format:
2652
+ consolidated_entry['ref_corrected_bibitem'] = bibitem_format
2643
2653
 
2644
2654
  # Store the consolidated entry (write to file at end of run)
2645
2655
  self.errors.append(consolidated_entry)
@@ -2696,11 +2706,21 @@ class ArxivReferenceChecker:
2696
2706
  if error_type != 'unverified':
2697
2707
  error_entry['ref_standard_format'] = self.format_standard_reference(error)
2698
2708
 
2699
- # Generate corrected reference in original format
2709
+ # Generate corrected reference in all formats for user convenience
2700
2710
  corrected_data = self._extract_corrected_data_from_error(error, verified_data)
2701
- corrected_format = format_corrected_reference(reference, corrected_data, error_entry)
2702
- if corrected_format:
2703
- error_entry['ref_corrected_format'] = corrected_format
2711
+
2712
+ # Generate all three formats
2713
+ from utils.text_utils import format_corrected_plaintext, format_corrected_bibtex, format_corrected_bibitem
2714
+ plaintext_format = format_corrected_plaintext(reference, corrected_data, error_entry)
2715
+ bibtex_format = format_corrected_bibtex(reference, corrected_data, error_entry)
2716
+ bibitem_format = format_corrected_bibitem(reference, corrected_data, error_entry)
2717
+
2718
+ if plaintext_format:
2719
+ error_entry['ref_corrected_plaintext'] = plaintext_format
2720
+ if bibtex_format:
2721
+ error_entry['ref_corrected_bibtex'] = bibtex_format
2722
+ if bibitem_format:
2723
+ error_entry['ref_corrected_bibitem'] = bibitem_format
2704
2724
  else:
2705
2725
  error_entry['ref_standard_format'] = None
2706
2726
 
@@ -2772,8 +2792,29 @@ class ArxivReferenceChecker:
2772
2792
  f.write(f" {error_entry['ref_verified_url']}\n")
2773
2793
  f.write("\n")
2774
2794
 
2775
- # Show corrected reference in original format if available
2776
- if error_entry.get('ref_corrected_format'):
2795
+ # Show corrected reference in all formats if available
2796
+ formats_written = False
2797
+
2798
+ # Plain text format
2799
+ if error_entry.get('ref_corrected_plaintext'):
2800
+ f.write("CORRECTED REFERENCE (Plain Text):\n")
2801
+ f.write(f"{error_entry['ref_corrected_plaintext']}\n\n")
2802
+ formats_written = True
2803
+
2804
+ # BibTeX format
2805
+ if error_entry.get('ref_corrected_bibtex'):
2806
+ f.write("CORRECTED REFERENCE (BibTeX):\n")
2807
+ f.write(f"{error_entry['ref_corrected_bibtex']}\n\n")
2808
+ formats_written = True
2809
+
2810
+ # Bibitem/LaTeX format
2811
+ if error_entry.get('ref_corrected_bibitem'):
2812
+ f.write("CORRECTED REFERENCE (LaTeX/Biblatex):\n")
2813
+ f.write(f"{error_entry['ref_corrected_bibitem']}\n\n")
2814
+ formats_written = True
2815
+
2816
+ # Fallback to legacy format if no new formats available
2817
+ if not formats_written and error_entry.get('ref_corrected_format'):
2777
2818
  f.write("CORRECTED REFERENCE:\n")
2778
2819
  f.write(f"{error_entry['ref_corrected_format']}\n\n")
2779
2820
 
@@ -2102,7 +2102,7 @@ def compare_authors(cited_authors: list, correct_authors: list, normalize_func=N
2102
2102
  # Use standardized three-line formatting for author mismatch
2103
2103
  cited_display = format_author_for_display(cited_author)
2104
2104
  full_author_list = ', '.join(correct_names)
2105
- error_msg = format_author_mismatch(i+1, f"{cited_display} (not found in author list - et al case)", f"Correct authors: {full_author_list}")
2105
+ error_msg = format_author_mismatch(i+1, f"{cited_display} (not found in author list - et al case)", f"{full_author_list}")
2106
2106
  return False, error_msg
2107
2107
 
2108
2108
  return True, f"Authors match (verified {len(cleaned_cited)} of {len(correct_names)} with et al)"