paperguard 2.0.1__py3-none-any.whl

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 (89) hide show
  1. paperguard/__init__.py +3 -0
  2. paperguard/__main__.py +5 -0
  3. paperguard/cli.py +994 -0
  4. paperguard/config.py +36 -0
  5. paperguard/core/__init__.py +0 -0
  6. paperguard/core/audit.py +45 -0
  7. paperguard/core/base_detector.py +69 -0
  8. paperguard/core/registry.py +164 -0
  9. paperguard/core/types.py +107 -0
  10. paperguard/detectors/__init__.py +0 -0
  11. paperguard/detectors/a1_terminal_digit.py +126 -0
  12. paperguard/detectors/a2_benford.py +175 -0
  13. paperguard/detectors/a3_arithmetic.py +167 -0
  14. paperguard/detectors/a5_decimal_consistency.py +126 -0
  15. paperguard/detectors/a6_implausible_values.py +182 -0
  16. paperguard/detectors/a7_last_digit_five_zero.py +133 -0
  17. paperguard/detectors/b1_grim.py +128 -0
  18. paperguard/detectors/b4_statcheck.py +389 -0
  19. paperguard/detectors/b5_tiva.py +122 -0
  20. paperguard/detectors/b6_grimmer.py +181 -0
  21. paperguard/detectors/b7_pcurve.py +148 -0
  22. paperguard/detectors/b8_sprite.py +180 -0
  23. paperguard/detectors/c1_carlisle.py +220 -0
  24. paperguard/detectors/d1_residual_smoothness.py +159 -0
  25. paperguard/detectors/d2_missing_pattern.py +126 -0
  26. paperguard/detectors/f1_image_duplication.py +125 -0
  27. paperguard/detectors/f2_internal_duplication.py +186 -0
  28. paperguard/detectors/f3_splice_forensics.py +194 -0
  29. paperguard/detectors/f4_cross_paper_image.py +201 -0
  30. paperguard/detectors/f5_exif_clustering.py +183 -0
  31. paperguard/detectors/g1_exif_temporal.py +271 -0
  32. paperguard/detectors/g3_rsid_forensics.py +140 -0
  33. paperguard/detectors/g4_metadata_forensics.py +344 -0
  34. paperguard/detectors/m1_paper_mill_graph.py +295 -0
  35. paperguard/detectors/t1_text_similarity.py +137 -0
  36. paperguard/detectors/t2_trial_consistency.py +123 -0
  37. paperguard/detectors/t3_data_availability.py +274 -0
  38. paperguard/detectors/t4_tortured_phrases.py +291 -0
  39. paperguard/detectors/t5_stylometry.py +158 -0
  40. paperguard/detectors/t6_ai_text_heuristic.py +213 -0
  41. paperguard/evidence/__init__.py +0 -0
  42. paperguard/evidence/combiner.py +97 -0
  43. paperguard/extractor/__init__.py +0 -0
  44. paperguard/extractor/baseline_tables.py +258 -0
  45. paperguard/extractor/docx_tables.py +89 -0
  46. paperguard/extractor/excel.py +26 -0
  47. paperguard/extractor/images.py +88 -0
  48. paperguard/extractor/inline_numbers.py +105 -0
  49. paperguard/extractor/metadata.py +24 -0
  50. paperguard/extractor/pdf_text.py +65 -0
  51. paperguard/extractor/trial_ids.py +34 -0
  52. paperguard/fetcher/__init__.py +0 -0
  53. paperguard/fetcher/cache.py +94 -0
  54. paperguard/fetcher/citation_graph.py +150 -0
  55. paperguard/fetcher/clinicaltrials.py +60 -0
  56. paperguard/fetcher/crossref.py +65 -0
  57. paperguard/fetcher/openalex.py +129 -0
  58. paperguard/fetcher/ori_sanctions.py +77 -0
  59. paperguard/fetcher/pubmed.py +79 -0
  60. paperguard/fetcher/pubpeer.py +88 -0
  61. paperguard/fetcher/retraction_watch.py +55 -0
  62. paperguard/fetcher/unpaywall.py +58 -0
  63. paperguard/i18n.py +170 -0
  64. paperguard/llm/__init__.py +0 -0
  65. paperguard/llm/explainer.py +182 -0
  66. paperguard/reporter/__init__.py +0 -0
  67. paperguard/reporter/html_export.py +209 -0
  68. paperguard/reporter/json_export.py +17 -0
  69. paperguard/reporter/schema.py +31 -0
  70. paperguard/reporter/terminal.py +85 -0
  71. paperguard/utils/__init__.py +0 -0
  72. paperguard/utils/float_utils.py +43 -0
  73. paperguard/utils/hash.py +19 -0
  74. paperguard/webui/__init__.py +0 -0
  75. paperguard/webui/admin_bootstrap.py +54 -0
  76. paperguard/webui/app.py +244 -0
  77. paperguard/webui/db.py +89 -0
  78. paperguard/webui/deps.py +67 -0
  79. paperguard/webui/models.py +175 -0
  80. paperguard/webui/routes_app.py +291 -0
  81. paperguard/webui/routes_auth.py +138 -0
  82. paperguard/webui/security.py +120 -0
  83. paperguard/webui/templates.py +360 -0
  84. paperguard-2.0.1.dist-info/METADATA +415 -0
  85. paperguard-2.0.1.dist-info/RECORD +89 -0
  86. paperguard-2.0.1.dist-info/WHEEL +5 -0
  87. paperguard-2.0.1.dist-info/entry_points.txt +2 -0
  88. paperguard-2.0.1.dist-info/licenses/LICENSE +21 -0
  89. paperguard-2.0.1.dist-info/top_level.txt +1 -0
paperguard/__init__.py ADDED
@@ -0,0 +1,3 @@
1
+ """PaperGuard — statistical anomaly screener for tabular research data."""
2
+
3
+ __version__ = "2.0.1"
paperguard/__main__.py ADDED
@@ -0,0 +1,5 @@
1
+ """`python -m paperguard` 入口。"""
2
+ from paperguard.cli import main
3
+
4
+ if __name__ == "__main__":
5
+ main()