sciwrite-lint 0.5.0__tar.gz → 0.5.1__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.
- {sciwrite_lint-0.5.0/sciwrite_lint.egg-info → sciwrite_lint-0.5.1}/PKG-INFO +21 -5
- {sciwrite_lint-0.5.0 → sciwrite_lint-0.5.1}/README.md +20 -4
- {sciwrite_lint-0.5.0 → sciwrite_lint-0.5.1}/pyproject.toml +1 -1
- {sciwrite_lint-0.5.0 → sciwrite_lint-0.5.1}/sciwrite_lint/__init__.py +1 -1
- {sciwrite_lint-0.5.0 → sciwrite_lint-0.5.1}/sciwrite_lint/manuscript_store.py +6 -1
- {sciwrite_lint-0.5.0 → sciwrite_lint-0.5.1}/sciwrite_lint/tex_parser.py +74 -0
- {sciwrite_lint-0.5.0 → sciwrite_lint-0.5.1/sciwrite_lint.egg-info}/PKG-INFO +21 -5
- {sciwrite_lint-0.5.0 → sciwrite_lint-0.5.1}/LICENSE +0 -0
- {sciwrite_lint-0.5.0 → sciwrite_lint-0.5.1}/sciwrite_lint/__main__.py +0 -0
- {sciwrite_lint-0.5.0 → sciwrite_lint-0.5.1}/sciwrite_lint/_network.py +0 -0
- {sciwrite_lint-0.5.0 → sciwrite_lint-0.5.1}/sciwrite_lint/api.py +0 -0
- {sciwrite_lint-0.5.0 → sciwrite_lint-0.5.1}/sciwrite_lint/api_keys.py +0 -0
- {sciwrite_lint-0.5.0 → sciwrite_lint-0.5.1}/sciwrite_lint/checks/__init__.py +0 -0
- {sciwrite_lint-0.5.0 → sciwrite_lint-0.5.1}/sciwrite_lint/checks/_diagnostics.py +0 -0
- {sciwrite_lint-0.5.0 → sciwrite_lint-0.5.1}/sciwrite_lint/checks/_section_utils.py +0 -0
- {sciwrite_lint-0.5.0 → sciwrite_lint-0.5.1}/sciwrite_lint/checks/cite_purpose.py +0 -0
- {sciwrite_lint-0.5.0 → sciwrite_lint-0.5.1}/sciwrite_lint/checks/claim_support.py +0 -0
- {sciwrite_lint-0.5.0 → sciwrite_lint-0.5.1}/sciwrite_lint/checks/cross_section_consistency.py +0 -0
- {sciwrite_lint-0.5.0 → sciwrite_lint-0.5.1}/sciwrite_lint/checks/dangling_cite.py +0 -0
- {sciwrite_lint-0.5.0 → sciwrite_lint-0.5.1}/sciwrite_lint/checks/dangling_ref.py +0 -0
- {sciwrite_lint-0.5.0 → sciwrite_lint-0.5.1}/sciwrite_lint/checks/full_paper_consistency.py +0 -0
- {sciwrite_lint-0.5.0 → sciwrite_lint-0.5.1}/sciwrite_lint/checks/internal_consistency_pairs.py +0 -0
- {sciwrite_lint-0.5.0 → sciwrite_lint-0.5.1}/sciwrite_lint/checks/prose_quality.py +0 -0
- {sciwrite_lint-0.5.0 → sciwrite_lint-0.5.1}/sciwrite_lint/checks/ref_internal_checks.py +0 -0
- {sciwrite_lint-0.5.0 → sciwrite_lint-0.5.1}/sciwrite_lint/checks/reference_accuracy.py +0 -0
- {sciwrite_lint-0.5.0 → sciwrite_lint-0.5.1}/sciwrite_lint/checks/reference_exists.py +0 -0
- {sciwrite_lint-0.5.0 → sciwrite_lint-0.5.1}/sciwrite_lint/checks/reference_unreliable.py +0 -0
- {sciwrite_lint-0.5.0 → sciwrite_lint-0.5.1}/sciwrite_lint/checks/registry.py +0 -0
- {sciwrite_lint-0.5.0 → sciwrite_lint-0.5.1}/sciwrite_lint/checks/retracted_cite.py +0 -0
- {sciwrite_lint-0.5.0 → sciwrite_lint-0.5.1}/sciwrite_lint/checks/structure_promises.py +0 -0
- {sciwrite_lint-0.5.0 → sciwrite_lint-0.5.1}/sciwrite_lint/checks/unreferenced_figure.py +0 -0
- {sciwrite_lint-0.5.0 → sciwrite_lint-0.5.1}/sciwrite_lint/claims.py +0 -0
- {sciwrite_lint-0.5.0 → sciwrite_lint-0.5.1}/sciwrite_lint/claude_cli.py +0 -0
- {sciwrite_lint-0.5.0 → sciwrite_lint-0.5.1}/sciwrite_lint/cli/__init__.py +0 -0
- {sciwrite_lint-0.5.0 → sciwrite_lint-0.5.1}/sciwrite_lint/cli/_common.py +0 -0
- {sciwrite_lint-0.5.0 → sciwrite_lint-0.5.1}/sciwrite_lint/cli/check.py +0 -0
- {sciwrite_lint-0.5.0 → sciwrite_lint-0.5.1}/sciwrite_lint/cli/config.py +0 -0
- {sciwrite_lint-0.5.0 → sciwrite_lint-0.5.1}/sciwrite_lint/cli/fetch.py +0 -0
- {sciwrite_lint-0.5.0 → sciwrite_lint-0.5.1}/sciwrite_lint/cli/misc/__init__.py +0 -0
- {sciwrite_lint-0.5.0 → sciwrite_lint-0.5.1}/sciwrite_lint/cli/misc/_monitor.py +0 -0
- {sciwrite_lint-0.5.0 → sciwrite_lint-0.5.1}/sciwrite_lint/cli/misc/containers.py +0 -0
- {sciwrite_lint-0.5.0 → sciwrite_lint-0.5.1}/sciwrite_lint/cli/misc/dismiss_claim.py +0 -0
- {sciwrite_lint-0.5.0 → sciwrite_lint-0.5.1}/sciwrite_lint/cli/misc/grobid.py +0 -0
- {sciwrite_lint-0.5.0 → sciwrite_lint-0.5.1}/sciwrite_lint/cli/misc/init.py +0 -0
- {sciwrite_lint-0.5.0 → sciwrite_lint-0.5.1}/sciwrite_lint/cli/misc/override.py +0 -0
- {sciwrite_lint-0.5.0 → sciwrite_lint-0.5.1}/sciwrite_lint/cli/misc/parse.py +0 -0
- {sciwrite_lint-0.5.0 → sciwrite_lint-0.5.1}/sciwrite_lint/cli/misc/vision.py +0 -0
- {sciwrite_lint-0.5.0 → sciwrite_lint-0.5.1}/sciwrite_lint/cli/misc/vllm.py +0 -0
- {sciwrite_lint-0.5.0 → sciwrite_lint-0.5.1}/sciwrite_lint/cli/rank.py +0 -0
- {sciwrite_lint-0.5.0 → sciwrite_lint-0.5.1}/sciwrite_lint/cli/verify.py +0 -0
- {sciwrite_lint-0.5.0 → sciwrite_lint-0.5.1}/sciwrite_lint/config.py +0 -0
- {sciwrite_lint-0.5.0 → sciwrite_lint-0.5.1}/sciwrite_lint/cross_paper.py +0 -0
- {sciwrite_lint-0.5.0 → sciwrite_lint-0.5.1}/sciwrite_lint/eval_claims.py +0 -0
- {sciwrite_lint-0.5.0 → sciwrite_lint-0.5.1}/sciwrite_lint/exceptions.py +0 -0
- {sciwrite_lint-0.5.0 → sciwrite_lint-0.5.1}/sciwrite_lint/footnote_urls.py +0 -0
- {sciwrite_lint-0.5.0 → sciwrite_lint-0.5.1}/sciwrite_lint/fulltext/__init__.py +0 -0
- {sciwrite_lint-0.5.0 → sciwrite_lint-0.5.1}/sciwrite_lint/fulltext/_common.py +0 -0
- {sciwrite_lint-0.5.0 → sciwrite_lint-0.5.1}/sciwrite_lint/fulltext/_download.py +0 -0
- {sciwrite_lint-0.5.0 → sciwrite_lint-0.5.1}/sciwrite_lint/fulltext/_orchestrator.py +0 -0
- {sciwrite_lint-0.5.0 → sciwrite_lint-0.5.1}/sciwrite_lint/fulltext/_search.py +0 -0
- {sciwrite_lint-0.5.0 → sciwrite_lint-0.5.1}/sciwrite_lint/fulltext/_validation.py +0 -0
- {sciwrite_lint-0.5.0 → sciwrite_lint-0.5.1}/sciwrite_lint/fulltext/arxiv.py +0 -0
- {sciwrite_lint-0.5.0 → sciwrite_lint-0.5.1}/sciwrite_lint/fulltext/biorxiv.py +0 -0
- {sciwrite_lint-0.5.0 → sciwrite_lint-0.5.1}/sciwrite_lint/fulltext/core.py +0 -0
- {sciwrite_lint-0.5.0 → sciwrite_lint-0.5.1}/sciwrite_lint/fulltext/eric.py +0 -0
- {sciwrite_lint-0.5.0 → sciwrite_lint-0.5.1}/sciwrite_lint/fulltext/europepmc.py +0 -0
- {sciwrite_lint-0.5.0 → sciwrite_lint-0.5.1}/sciwrite_lint/fulltext/hal.py +0 -0
- {sciwrite_lint-0.5.0 → sciwrite_lint-0.5.1}/sciwrite_lint/fulltext/ideas.py +0 -0
- {sciwrite_lint-0.5.0 → sciwrite_lint-0.5.1}/sciwrite_lint/fulltext/nasa_ads.py +0 -0
- {sciwrite_lint-0.5.0 → sciwrite_lint-0.5.1}/sciwrite_lint/fulltext/nber.py +0 -0
- {sciwrite_lint-0.5.0 → sciwrite_lint-0.5.1}/sciwrite_lint/fulltext/osf.py +0 -0
- {sciwrite_lint-0.5.0 → sciwrite_lint-0.5.1}/sciwrite_lint/fulltext/pmc.py +0 -0
- {sciwrite_lint-0.5.0 → sciwrite_lint-0.5.1}/sciwrite_lint/fulltext/s2.py +0 -0
- {sciwrite_lint-0.5.0 → sciwrite_lint-0.5.1}/sciwrite_lint/fulltext/unpaywall.py +0 -0
- {sciwrite_lint-0.5.0 → sciwrite_lint-0.5.1}/sciwrite_lint/latex_to_markdown.py +0 -0
- {sciwrite_lint-0.5.0 → sciwrite_lint-0.5.1}/sciwrite_lint/llm/__init__.py +0 -0
- {sciwrite_lint-0.5.0 → sciwrite_lint-0.5.1}/sciwrite_lint/llm/concurrency_optimizer/__init__.py +0 -0
- {sciwrite_lint-0.5.0 → sciwrite_lint-0.5.1}/sciwrite_lint/llm/concurrency_optimizer/compute_cap.py +0 -0
- {sciwrite_lint-0.5.0 → sciwrite_lint-0.5.1}/sciwrite_lint/llm/concurrency_optimizer/controller.py +0 -0
- {sciwrite_lint-0.5.0 → sciwrite_lint-0.5.1}/sciwrite_lint/llm/concurrency_optimizer/decide.py +0 -0
- {sciwrite_lint-0.5.0 → sciwrite_lint-0.5.1}/sciwrite_lint/llm/concurrency_optimizer/host_metrics.py +0 -0
- {sciwrite_lint-0.5.0 → sciwrite_lint-0.5.1}/sciwrite_lint/llm/concurrency_optimizer/metrics_probe.py +0 -0
- {sciwrite_lint-0.5.0 → sciwrite_lint-0.5.1}/sciwrite_lint/llm/concurrency_optimizer/registry.py +0 -0
- {sciwrite_lint-0.5.0 → sciwrite_lint-0.5.1}/sciwrite_lint/llm/concurrency_optimizer/telemetry.py +0 -0
- {sciwrite_lint-0.5.0 → sciwrite_lint-0.5.1}/sciwrite_lint/llm/concurrency_optimizer/vllm_metrics.py +0 -0
- {sciwrite_lint-0.5.0 → sciwrite_lint-0.5.1}/sciwrite_lint/llm/concurrency_optimizer/wiring.py +0 -0
- {sciwrite_lint-0.5.0 → sciwrite_lint-0.5.1}/sciwrite_lint/llm/manuscript_cache.py +0 -0
- {sciwrite_lint-0.5.0 → sciwrite_lint-0.5.1}/sciwrite_lint/llm_utils.py +0 -0
- {sciwrite_lint-0.5.0 → sciwrite_lint-0.5.1}/sciwrite_lint/local_sources.py +0 -0
- {sciwrite_lint-0.5.0 → sciwrite_lint-0.5.1}/sciwrite_lint/mhtml.py +0 -0
- {sciwrite_lint-0.5.0 → sciwrite_lint-0.5.1}/sciwrite_lint/models.py +0 -0
- {sciwrite_lint-0.5.0 → sciwrite_lint-0.5.1}/sciwrite_lint/oa/__init__.py +0 -0
- {sciwrite_lint-0.5.0 → sciwrite_lint-0.5.1}/sciwrite_lint/oa/_models.py +0 -0
- {sciwrite_lint-0.5.0 → sciwrite_lint-0.5.1}/sciwrite_lint/oa/_pdf.py +0 -0
- {sciwrite_lint-0.5.0 → sciwrite_lint-0.5.1}/sciwrite_lint/oa/_search.py +0 -0
- {sciwrite_lint-0.5.0 → sciwrite_lint-0.5.1}/sciwrite_lint/oa/_web.py +0 -0
- {sciwrite_lint-0.5.0 → sciwrite_lint-0.5.1}/sciwrite_lint/pdf/__init__.py +0 -0
- {sciwrite_lint-0.5.0 → sciwrite_lint-0.5.1}/sciwrite_lint/pdf/grobid.py +0 -0
- {sciwrite_lint-0.5.0 → sciwrite_lint-0.5.1}/sciwrite_lint/pdf/pdf_download.py +0 -0
- {sciwrite_lint-0.5.0 → sciwrite_lint-0.5.1}/sciwrite_lint/pipeline/__init__.py +0 -0
- {sciwrite_lint-0.5.0 → sciwrite_lint-0.5.1}/sciwrite_lint/pipeline/checks.py +0 -0
- {sciwrite_lint-0.5.0 → sciwrite_lint-0.5.1}/sciwrite_lint/pipeline/claims.py +0 -0
- {sciwrite_lint-0.5.0 → sciwrite_lint-0.5.1}/sciwrite_lint/pipeline/embeddings.py +0 -0
- {sciwrite_lint-0.5.0 → sciwrite_lint-0.5.1}/sciwrite_lint/pipeline/fetch.py +0 -0
- {sciwrite_lint-0.5.0 → sciwrite_lint-0.5.1}/sciwrite_lint/pipeline/orchestration.py +0 -0
- {sciwrite_lint-0.5.0 → sciwrite_lint-0.5.1}/sciwrite_lint/pipeline/parse.py +0 -0
- {sciwrite_lint-0.5.0 → sciwrite_lint-0.5.1}/sciwrite_lint/pipeline/pdf_context.py +0 -0
- {sciwrite_lint-0.5.0 → sciwrite_lint-0.5.1}/sciwrite_lint/pipeline/ref_internal.py +0 -0
- {sciwrite_lint-0.5.0 → sciwrite_lint-0.5.1}/sciwrite_lint/pipeline/runners.py +0 -0
- {sciwrite_lint-0.5.0 → sciwrite_lint-0.5.1}/sciwrite_lint/pipeline/staged.py +0 -0
- {sciwrite_lint-0.5.0 → sciwrite_lint-0.5.1}/sciwrite_lint/pipeline/swap.py +0 -0
- {sciwrite_lint-0.5.0 → sciwrite_lint-0.5.1}/sciwrite_lint/pipeline/tracking.py +0 -0
- {sciwrite_lint-0.5.0 → sciwrite_lint-0.5.1}/sciwrite_lint/pipeline/unreliable.py +0 -0
- {sciwrite_lint-0.5.0 → sciwrite_lint-0.5.1}/sciwrite_lint/pipeline/verify.py +0 -0
- {sciwrite_lint-0.5.0 → sciwrite_lint-0.5.1}/sciwrite_lint/pipeline/vision.py +0 -0
- {sciwrite_lint-0.5.0 → sciwrite_lint-0.5.1}/sciwrite_lint/prompt_safety.py +0 -0
- {sciwrite_lint-0.5.0 → sciwrite_lint-0.5.1}/sciwrite_lint/py.typed +0 -0
- {sciwrite_lint-0.5.0 → sciwrite_lint-0.5.1}/sciwrite_lint/rate_limiter.py +0 -0
- {sciwrite_lint-0.5.0 → sciwrite_lint-0.5.1}/sciwrite_lint/references/__init__.py +0 -0
- {sciwrite_lint-0.5.0 → sciwrite_lint-0.5.1}/sciwrite_lint/references/_embed_timing.py +0 -0
- {sciwrite_lint-0.5.0 → sciwrite_lint-0.5.1}/sciwrite_lint/references/chain.py +0 -0
- {sciwrite_lint-0.5.0 → sciwrite_lint-0.5.1}/sciwrite_lint/references/citations.py +0 -0
- {sciwrite_lint-0.5.0 → sciwrite_lint-0.5.1}/sciwrite_lint/references/crossref.py +0 -0
- {sciwrite_lint-0.5.0 → sciwrite_lint-0.5.1}/sciwrite_lint/references/embedding_store.py +0 -0
- {sciwrite_lint-0.5.0 → sciwrite_lint-0.5.1}/sciwrite_lint/references/matching.py +0 -0
- {sciwrite_lint-0.5.0 → sciwrite_lint-0.5.1}/sciwrite_lint/references/metadata.py +0 -0
- {sciwrite_lint-0.5.0 → sciwrite_lint-0.5.1}/sciwrite_lint/references/reference_store.py +0 -0
- {sciwrite_lint-0.5.0 → sciwrite_lint-0.5.1}/sciwrite_lint/references/retraction_watch.py +0 -0
- {sciwrite_lint-0.5.0 → sciwrite_lint-0.5.1}/sciwrite_lint/references/workspace_db/__init__.py +0 -0
- {sciwrite_lint-0.5.0 → sciwrite_lint-0.5.1}/sciwrite_lint/references/workspace_db/_core.py +0 -0
- {sciwrite_lint-0.5.0 → sciwrite_lint-0.5.1}/sciwrite_lint/references/workspace_db/bib_checks.py +0 -0
- {sciwrite_lint-0.5.0 → sciwrite_lint-0.5.1}/sciwrite_lint/references/workspace_db/citation_metadata.py +0 -0
- {sciwrite_lint-0.5.0 → sciwrite_lint-0.5.1}/sciwrite_lint/references/workspace_db/claim_results.py +0 -0
- {sciwrite_lint-0.5.0 → sciwrite_lint-0.5.1}/sciwrite_lint/references/workspace_db/manuscript_check_cache.py +0 -0
- {sciwrite_lint-0.5.0 → sciwrite_lint-0.5.1}/sciwrite_lint/references/workspace_db/manuscript_citations.py +0 -0
- {sciwrite_lint-0.5.0 → sciwrite_lint-0.5.1}/sciwrite_lint/references/workspace_db/parse_cache.py +0 -0
- {sciwrite_lint-0.5.0 → sciwrite_lint-0.5.1}/sciwrite_lint/references/workspace_db/pipeline_stage.py +0 -0
- {sciwrite_lint-0.5.0 → sciwrite_lint-0.5.1}/sciwrite_lint/references/workspace_db/query_vectors.py +0 -0
- {sciwrite_lint-0.5.0 → sciwrite_lint-0.5.1}/sciwrite_lint/references/workspace_db/ref_internal.py +0 -0
- {sciwrite_lint-0.5.0 → sciwrite_lint-0.5.1}/sciwrite_lint/references/workspace_db/registry.py +0 -0
- {sciwrite_lint-0.5.0 → sciwrite_lint-0.5.1}/sciwrite_lint/references/workspace_db/vision_cache.py +0 -0
- {sciwrite_lint-0.5.0 → sciwrite_lint-0.5.1}/sciwrite_lint/report.py +0 -0
- {sciwrite_lint-0.5.0 → sciwrite_lint-0.5.1}/sciwrite_lint/schemas.py +0 -0
- {sciwrite_lint-0.5.0 → sciwrite_lint-0.5.1}/sciwrite_lint/scoring/__init__.py +0 -0
- {sciwrite_lint-0.5.0 → sciwrite_lint-0.5.1}/sciwrite_lint/scoring/contribution.py +0 -0
- {sciwrite_lint-0.5.0 → sciwrite_lint-0.5.1}/sciwrite_lint/scoring/scilint_score.py +0 -0
- {sciwrite_lint-0.5.0 → sciwrite_lint-0.5.1}/sciwrite_lint/usage.py +0 -0
- {sciwrite_lint-0.5.0 → sciwrite_lint-0.5.1}/sciwrite_lint/vision/__init__.py +0 -0
- {sciwrite_lint-0.5.0 → sciwrite_lint-0.5.1}/sciwrite_lint/vision/cache.py +0 -0
- {sciwrite_lint-0.5.0 → sciwrite_lint-0.5.1}/sciwrite_lint/vision/describe.py +0 -0
- {sciwrite_lint-0.5.0 → sciwrite_lint-0.5.1}/sciwrite_lint/vision/image_extraction.py +0 -0
- {sciwrite_lint-0.5.0 → sciwrite_lint-0.5.1}/sciwrite_lint/vision/pipeline.py +0 -0
- {sciwrite_lint-0.5.0 → sciwrite_lint-0.5.1}/sciwrite_lint/vllm/__init__.py +0 -0
- {sciwrite_lint-0.5.0 → sciwrite_lint-0.5.1}/sciwrite_lint/vllm/metrics.py +0 -0
- {sciwrite_lint-0.5.0 → sciwrite_lint-0.5.1}/sciwrite_lint/vllm/vllm_server.py +0 -0
- {sciwrite_lint-0.5.0 → sciwrite_lint-0.5.1}/sciwrite_lint/web.py +0 -0
- {sciwrite_lint-0.5.0 → sciwrite_lint-0.5.1}/sciwrite_lint.egg-info/SOURCES.txt +0 -0
- {sciwrite_lint-0.5.0 → sciwrite_lint-0.5.1}/sciwrite_lint.egg-info/dependency_links.txt +0 -0
- {sciwrite_lint-0.5.0 → sciwrite_lint-0.5.1}/sciwrite_lint.egg-info/entry_points.txt +0 -0
- {sciwrite_lint-0.5.0 → sciwrite_lint-0.5.1}/sciwrite_lint.egg-info/requires.txt +0 -0
- {sciwrite_lint-0.5.0 → sciwrite_lint-0.5.1}/sciwrite_lint.egg-info/top_level.txt +0 -0
- {sciwrite_lint-0.5.0 → sciwrite_lint-0.5.1}/setup.cfg +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: sciwrite-lint
|
|
3
|
-
Version: 0.5.
|
|
3
|
+
Version: 0.5.1
|
|
4
4
|
Summary: A linter for scientific manuscripts — reference verification, consistency checking, and structural validation.
|
|
5
5
|
Author: Sergey Samsonau
|
|
6
6
|
Maintainer-email: Authentic Research Partners LLC <info@arpconnect.com>
|
|
@@ -158,11 +158,11 @@ Three models — a vision model (Qwen3-VL-2B default, or 8B FP8 via `--vision-ba
|
|
|
158
158
|
- **14-source full-text cascade** — early exit on first successful download across arXiv, Semantic Scholar, OpenAlex, PubMed Central, Europe PMC, Unpaywall, bioRxiv, NBER, RePEc/IDEAS, HAL, ERIC, NASA ADS, OSF Preprints, CORE
|
|
159
159
|
- **Live monitoring** *(advanced)* — `sciwrite-lint containers monitor` shows service health, VRAM usage, and KV cache utilization in a terminal dashboard
|
|
160
160
|
|
|
161
|
-
|
|
161
|
+
The pipeline automatically swaps vLLM containers to free GPU for embedding and vision stages (~50× faster than CPU).
|
|
162
162
|
|
|
163
163
|
## Install
|
|
164
164
|
|
|
165
|
-
**Assumed setup:** A workstation with an NVIDIA GPU (16+ GB VRAM). Tested on WSL2 with NVIDIA driver 546.01+. Native Linux
|
|
165
|
+
**Assumed setup:** A workstation with an NVIDIA GPU (16+ GB VRAM). Tested on WSL2 with NVIDIA driver 546.01+. Native Linux uses the same GPU-sequencing code path with no extra configuration (see [docs/services.md](https://github.com/authentic-research-partners/sciwrite-lint/blob/main/docs/services.md#embedding-device)), though it isn't actively tested. Not tested on macOS.
|
|
166
166
|
|
|
167
167
|
Requires [uv](https://docs.astral.sh/uv/getting-started/installation/), a container runtime (podman or docker), CUDA drivers, and [NVIDIA Container Toolkit](https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/latest/install-guide.html).
|
|
168
168
|
|
|
@@ -207,6 +207,8 @@ sciwrite-lint containers start # start GROBID + vLLM (needs GPU for vLLM
|
|
|
207
207
|
sciwrite-lint containers monitor # live dashboard: service health, VRAM, KV cache
|
|
208
208
|
```
|
|
209
209
|
|
|
210
|
+
`init` detects `.tex` files and their `.bib` references and generates a `.sciwrite-lint.toml` config. Review to confirm the right files were detected.
|
|
211
|
+
|
|
210
212
|
### WSL2: disable CUDA Sysmem Fallback (recommended)
|
|
211
213
|
|
|
212
214
|
By default Windows silently spills GPU overflow into system RAM via PCIe (30–100× slower than VRAM); you'll see this as a sudden throughput collapse during the heaviest pipeline stages with no error in the logs. Tell the NVIDIA driver to fail loudly instead:
|
|
@@ -217,8 +219,6 @@ Driver 546.01+. After this, WSL2 behaves like native Linux on overflow (CUDA OOM
|
|
|
217
219
|
|
|
218
220
|

|
|
219
221
|
|
|
220
|
-
`init` detects `.tex` files and their `.bib` references and generates a `.sciwrite-lint.toml` config. Review to confirm the right files were detected.
|
|
221
|
-
|
|
222
222
|
**Providing references manually — two drop folders.** sciwrite-lint reads two local directories before going to the open-access waterfall, kept separate because the folder itself signals how much to trust the source:
|
|
223
223
|
|
|
224
224
|
- `local_pdfs/` — **academic sources**. Accepts `.pdf` (primary) and `.md` summaries you've written yourself. Use this for paywalled papers, for OA papers whose publisher requires a browser (Cloudflare/JS walls, Cell, Springer, some PMC pages), and for anything you'd cite as peer-reviewed evidence.
|
|
@@ -280,6 +280,22 @@ sciwrite-lint contributions --paper my_paper # add contribution axes to SciLi
|
|
|
280
280
|
sciwrite-lint contributions paper.pdf # standalone file scoring
|
|
281
281
|
```
|
|
282
282
|
|
|
283
|
+
**Supported inputs.**
|
|
284
|
+
|
|
285
|
+
*The manuscript you check:*
|
|
286
|
+
|
|
287
|
+
| Format | Notes |
|
|
288
|
+
|---|---|
|
|
289
|
+
| `.tex` | LaTeX — hand-written, or pandoc-generated (e.g. from Markdown); pandoc's heading anchors are unwrapped automatically. |
|
|
290
|
+
| `.pdf` | Parsed via GROBID (container required). |
|
|
291
|
+
|
|
292
|
+
*Cited sources you optionally supply (drop folders — see [Setup](#setup)):*
|
|
293
|
+
|
|
294
|
+
| Folder | Accepts | Trust level |
|
|
295
|
+
|---|---|---|
|
|
296
|
+
| `local_pdfs/` | `.pdf`, `.md` (your own summaries) | academic |
|
|
297
|
+
| `local_web/` | `.mhtml` / `.mht`, `.md` | web capture |
|
|
298
|
+
|
|
283
299
|
`check` runs the full pipeline in one command: text checks → figure analysis → LLM consistency → reference verification via APIs → download and parse cited papers → claim verification → consistency checks on cited papers → bibliography verification → aggregate reliability scores → SciLint Score. An initial run on a 50-reference paper takes up to 30 minutes (dominated by downloads and claim verification); subsequent cached runs complete in minutes.
|
|
284
300
|
|
|
285
301
|
### Iterative editing — no `--fresh` needed
|
|
@@ -92,11 +92,11 @@ Three models — a vision model (Qwen3-VL-2B default, or 8B FP8 via `--vision-ba
|
|
|
92
92
|
- **14-source full-text cascade** — early exit on first successful download across arXiv, Semantic Scholar, OpenAlex, PubMed Central, Europe PMC, Unpaywall, bioRxiv, NBER, RePEc/IDEAS, HAL, ERIC, NASA ADS, OSF Preprints, CORE
|
|
93
93
|
- **Live monitoring** *(advanced)* — `sciwrite-lint containers monitor` shows service health, VRAM usage, and KV cache utilization in a terminal dashboard
|
|
94
94
|
|
|
95
|
-
|
|
95
|
+
The pipeline automatically swaps vLLM containers to free GPU for embedding and vision stages (~50× faster than CPU).
|
|
96
96
|
|
|
97
97
|
## Install
|
|
98
98
|
|
|
99
|
-
**Assumed setup:** A workstation with an NVIDIA GPU (16+ GB VRAM). Tested on WSL2 with NVIDIA driver 546.01+. Native Linux
|
|
99
|
+
**Assumed setup:** A workstation with an NVIDIA GPU (16+ GB VRAM). Tested on WSL2 with NVIDIA driver 546.01+. Native Linux uses the same GPU-sequencing code path with no extra configuration (see [docs/services.md](https://github.com/authentic-research-partners/sciwrite-lint/blob/main/docs/services.md#embedding-device)), though it isn't actively tested. Not tested on macOS.
|
|
100
100
|
|
|
101
101
|
Requires [uv](https://docs.astral.sh/uv/getting-started/installation/), a container runtime (podman or docker), CUDA drivers, and [NVIDIA Container Toolkit](https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/latest/install-guide.html).
|
|
102
102
|
|
|
@@ -141,6 +141,8 @@ sciwrite-lint containers start # start GROBID + vLLM (needs GPU for vLLM
|
|
|
141
141
|
sciwrite-lint containers monitor # live dashboard: service health, VRAM, KV cache
|
|
142
142
|
```
|
|
143
143
|
|
|
144
|
+
`init` detects `.tex` files and their `.bib` references and generates a `.sciwrite-lint.toml` config. Review to confirm the right files were detected.
|
|
145
|
+
|
|
144
146
|
### WSL2: disable CUDA Sysmem Fallback (recommended)
|
|
145
147
|
|
|
146
148
|
By default Windows silently spills GPU overflow into system RAM via PCIe (30–100× slower than VRAM); you'll see this as a sudden throughput collapse during the heaviest pipeline stages with no error in the logs. Tell the NVIDIA driver to fail loudly instead:
|
|
@@ -151,8 +153,6 @@ Driver 546.01+. After this, WSL2 behaves like native Linux on overflow (CUDA OOM
|
|
|
151
153
|
|
|
152
154
|

|
|
153
155
|
|
|
154
|
-
`init` detects `.tex` files and their `.bib` references and generates a `.sciwrite-lint.toml` config. Review to confirm the right files were detected.
|
|
155
|
-
|
|
156
156
|
**Providing references manually — two drop folders.** sciwrite-lint reads two local directories before going to the open-access waterfall, kept separate because the folder itself signals how much to trust the source:
|
|
157
157
|
|
|
158
158
|
- `local_pdfs/` — **academic sources**. Accepts `.pdf` (primary) and `.md` summaries you've written yourself. Use this for paywalled papers, for OA papers whose publisher requires a browser (Cloudflare/JS walls, Cell, Springer, some PMC pages), and for anything you'd cite as peer-reviewed evidence.
|
|
@@ -214,6 +214,22 @@ sciwrite-lint contributions --paper my_paper # add contribution axes to SciLi
|
|
|
214
214
|
sciwrite-lint contributions paper.pdf # standalone file scoring
|
|
215
215
|
```
|
|
216
216
|
|
|
217
|
+
**Supported inputs.**
|
|
218
|
+
|
|
219
|
+
*The manuscript you check:*
|
|
220
|
+
|
|
221
|
+
| Format | Notes |
|
|
222
|
+
|---|---|
|
|
223
|
+
| `.tex` | LaTeX — hand-written, or pandoc-generated (e.g. from Markdown); pandoc's heading anchors are unwrapped automatically. |
|
|
224
|
+
| `.pdf` | Parsed via GROBID (container required). |
|
|
225
|
+
|
|
226
|
+
*Cited sources you optionally supply (drop folders — see [Setup](#setup)):*
|
|
227
|
+
|
|
228
|
+
| Folder | Accepts | Trust level |
|
|
229
|
+
|---|---|---|
|
|
230
|
+
| `local_pdfs/` | `.pdf`, `.md` (your own summaries) | academic |
|
|
231
|
+
| `local_web/` | `.mhtml` / `.mht`, `.md` | web capture |
|
|
232
|
+
|
|
217
233
|
`check` runs the full pipeline in one command: text checks → figure analysis → LLM consistency → reference verification via APIs → download and parse cited papers → claim verification → consistency checks on cited papers → bibliography verification → aggregate reliability scores → SciLint Score. An initial run on a 50-reference paper takes up to 30 minutes (dominated by downloads and claim verification); subsequent cached runs complete in minutes.
|
|
218
234
|
|
|
219
235
|
### Iterative editing — no `--fresh` needed
|
|
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "sciwrite-lint"
|
|
7
|
-
version = "0.5.
|
|
7
|
+
version = "0.5.1"
|
|
8
8
|
description = "A linter for scientific manuscripts — reference verification, consistency checking, and structural validation."
|
|
9
9
|
requires-python = ">=3.13,<3.14"
|
|
10
10
|
license = "MIT"
|
|
@@ -450,12 +450,17 @@ def _build_context_latex(tex_path: Path, config: LintConfig) -> ManuscriptContex
|
|
|
450
450
|
split_paragraphs,
|
|
451
451
|
strip_comments,
|
|
452
452
|
strip_non_prose_environments_preserve_lines,
|
|
453
|
+
unwrap_hypertarget,
|
|
453
454
|
)
|
|
454
455
|
|
|
455
456
|
# Read + strip_comments exactly once, then pass through to the
|
|
456
457
|
# section/abstract extractors. They each used to re-read the file
|
|
457
458
|
# and re-strip comments — three round trips for the same data.
|
|
458
|
-
|
|
459
|
+
# unwrap_hypertarget normalises pandoc's two-line ``\hypertarget{id}{%
|
|
460
|
+
# \section{...}}`` heading envelope to plain LaTeX; without it the
|
|
461
|
+
# section splitter strands the opening brace in the prior section and
|
|
462
|
+
# pandoc rejects the unbalanced paragraph below.
|
|
463
|
+
text = unwrap_hypertarget(strip_comments(tex_path.read_text(encoding="utf-8")))
|
|
459
464
|
|
|
460
465
|
raw_sections = analyze_sections_with_text(tex_path, text=text)
|
|
461
466
|
abstract_raw = get_abstract_text(tex_path, text=text)
|
|
@@ -55,6 +55,80 @@ def strip_verbatim(text: str) -> str:
|
|
|
55
55
|
return text
|
|
56
56
|
|
|
57
57
|
|
|
58
|
+
def unwrap_hypertarget(text: str) -> str:
|
|
59
|
+
r"""Unwrap pandoc ``\hypertarget{id}{content}`` envelopes to ``content``.
|
|
60
|
+
|
|
61
|
+
Pandoc renders every markdown heading as a two-line anchor wrapper::
|
|
62
|
+
|
|
63
|
+
\hypertarget{the-id}{%
|
|
64
|
+
\section{Title}\label{the-id}}
|
|
65
|
+
|
|
66
|
+
The opening ``\hypertarget{the-id}{`` and its matching ``}`` sit on
|
|
67
|
+
different lines, straddling the heading. Section splitting keys off the
|
|
68
|
+
``\section`` line and assigns the line above it to the *preceding*
|
|
69
|
+
section, which strands the unbalanced opening brace at the end of that
|
|
70
|
+
section's body. Balanced-brace consumers downstream (the pandoc prose
|
|
71
|
+
conversion in ``paragraphs_to_markdown``) then choke on the lone brace.
|
|
72
|
+
|
|
73
|
+
The anchor is a hyperlink target with no prose meaning, so we drop the
|
|
74
|
+
wrapper and keep its content, normalising pandoc output to standard
|
|
75
|
+
LaTeX. Only the wrapper tokens are removed; newlines inside the content
|
|
76
|
+
are preserved, so source line numbers are unchanged. Nested wrappers are
|
|
77
|
+
handled (scanning continues inside each content span).
|
|
78
|
+
"""
|
|
79
|
+
marker = "\\hypertarget{"
|
|
80
|
+
n = len(text)
|
|
81
|
+
delete_spans: list[tuple[int, int]] = []
|
|
82
|
+
i = 0
|
|
83
|
+
while True:
|
|
84
|
+
idx = text.find(marker, i)
|
|
85
|
+
if idx == -1:
|
|
86
|
+
break
|
|
87
|
+
# Skip the first argument {id} via balanced-brace matching.
|
|
88
|
+
j = idx + len(marker)
|
|
89
|
+
depth = 1
|
|
90
|
+
while j < n and depth > 0:
|
|
91
|
+
if text[j] == "{":
|
|
92
|
+
depth += 1
|
|
93
|
+
elif text[j] == "}":
|
|
94
|
+
depth -= 1
|
|
95
|
+
j += 1
|
|
96
|
+
# The two-arg form requires the content brace immediately after.
|
|
97
|
+
if j >= n or text[j] != "{":
|
|
98
|
+
i = j
|
|
99
|
+
continue
|
|
100
|
+
content_start = j + 1
|
|
101
|
+
depth = 1
|
|
102
|
+
k = content_start
|
|
103
|
+
while k < n and depth > 0:
|
|
104
|
+
if text[k] == "{":
|
|
105
|
+
depth += 1
|
|
106
|
+
elif text[k] == "}":
|
|
107
|
+
depth -= 1
|
|
108
|
+
k += 1
|
|
109
|
+
if depth != 0:
|
|
110
|
+
break # unbalanced input — leave the remainder untouched
|
|
111
|
+
# Remove "\hypertarget{id}{" and the matching content-closing "}".
|
|
112
|
+
delete_spans.append((idx, content_start))
|
|
113
|
+
delete_spans.append((k - 1, k))
|
|
114
|
+
# Resume inside the content so nested wrappers are also unwrapped.
|
|
115
|
+
i = content_start
|
|
116
|
+
|
|
117
|
+
if not delete_spans:
|
|
118
|
+
return text
|
|
119
|
+
|
|
120
|
+
# Nested wrappers append the outer closing brace before the inner
|
|
121
|
+
# spans, so sort before stitching the kept slices back together.
|
|
122
|
+
delete_spans.sort()
|
|
123
|
+
out: list[str] = []
|
|
124
|
+
prev = 0
|
|
125
|
+
for start, end in delete_spans:
|
|
126
|
+
out.append(text[prev:start])
|
|
127
|
+
prev = end
|
|
128
|
+
out.append(text[prev:])
|
|
129
|
+
return "".join(out)
|
|
130
|
+
|
|
131
|
+
|
|
58
132
|
def extract_body(text: str) -> str:
|
|
59
133
|
r"""Extract content between \begin{document} and \end{document}."""
|
|
60
134
|
start = text.find("\\begin{document}")
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: sciwrite-lint
|
|
3
|
-
Version: 0.5.
|
|
3
|
+
Version: 0.5.1
|
|
4
4
|
Summary: A linter for scientific manuscripts — reference verification, consistency checking, and structural validation.
|
|
5
5
|
Author: Sergey Samsonau
|
|
6
6
|
Maintainer-email: Authentic Research Partners LLC <info@arpconnect.com>
|
|
@@ -158,11 +158,11 @@ Three models — a vision model (Qwen3-VL-2B default, or 8B FP8 via `--vision-ba
|
|
|
158
158
|
- **14-source full-text cascade** — early exit on first successful download across arXiv, Semantic Scholar, OpenAlex, PubMed Central, Europe PMC, Unpaywall, bioRxiv, NBER, RePEc/IDEAS, HAL, ERIC, NASA ADS, OSF Preprints, CORE
|
|
159
159
|
- **Live monitoring** *(advanced)* — `sciwrite-lint containers monitor` shows service health, VRAM usage, and KV cache utilization in a terminal dashboard
|
|
160
160
|
|
|
161
|
-
|
|
161
|
+
The pipeline automatically swaps vLLM containers to free GPU for embedding and vision stages (~50× faster than CPU).
|
|
162
162
|
|
|
163
163
|
## Install
|
|
164
164
|
|
|
165
|
-
**Assumed setup:** A workstation with an NVIDIA GPU (16+ GB VRAM). Tested on WSL2 with NVIDIA driver 546.01+. Native Linux
|
|
165
|
+
**Assumed setup:** A workstation with an NVIDIA GPU (16+ GB VRAM). Tested on WSL2 with NVIDIA driver 546.01+. Native Linux uses the same GPU-sequencing code path with no extra configuration (see [docs/services.md](https://github.com/authentic-research-partners/sciwrite-lint/blob/main/docs/services.md#embedding-device)), though it isn't actively tested. Not tested on macOS.
|
|
166
166
|
|
|
167
167
|
Requires [uv](https://docs.astral.sh/uv/getting-started/installation/), a container runtime (podman or docker), CUDA drivers, and [NVIDIA Container Toolkit](https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/latest/install-guide.html).
|
|
168
168
|
|
|
@@ -207,6 +207,8 @@ sciwrite-lint containers start # start GROBID + vLLM (needs GPU for vLLM
|
|
|
207
207
|
sciwrite-lint containers monitor # live dashboard: service health, VRAM, KV cache
|
|
208
208
|
```
|
|
209
209
|
|
|
210
|
+
`init` detects `.tex` files and their `.bib` references and generates a `.sciwrite-lint.toml` config. Review to confirm the right files were detected.
|
|
211
|
+
|
|
210
212
|
### WSL2: disable CUDA Sysmem Fallback (recommended)
|
|
211
213
|
|
|
212
214
|
By default Windows silently spills GPU overflow into system RAM via PCIe (30–100× slower than VRAM); you'll see this as a sudden throughput collapse during the heaviest pipeline stages with no error in the logs. Tell the NVIDIA driver to fail loudly instead:
|
|
@@ -217,8 +219,6 @@ Driver 546.01+. After this, WSL2 behaves like native Linux on overflow (CUDA OOM
|
|
|
217
219
|
|
|
218
220
|

|
|
219
221
|
|
|
220
|
-
`init` detects `.tex` files and their `.bib` references and generates a `.sciwrite-lint.toml` config. Review to confirm the right files were detected.
|
|
221
|
-
|
|
222
222
|
**Providing references manually — two drop folders.** sciwrite-lint reads two local directories before going to the open-access waterfall, kept separate because the folder itself signals how much to trust the source:
|
|
223
223
|
|
|
224
224
|
- `local_pdfs/` — **academic sources**. Accepts `.pdf` (primary) and `.md` summaries you've written yourself. Use this for paywalled papers, for OA papers whose publisher requires a browser (Cloudflare/JS walls, Cell, Springer, some PMC pages), and for anything you'd cite as peer-reviewed evidence.
|
|
@@ -280,6 +280,22 @@ sciwrite-lint contributions --paper my_paper # add contribution axes to SciLi
|
|
|
280
280
|
sciwrite-lint contributions paper.pdf # standalone file scoring
|
|
281
281
|
```
|
|
282
282
|
|
|
283
|
+
**Supported inputs.**
|
|
284
|
+
|
|
285
|
+
*The manuscript you check:*
|
|
286
|
+
|
|
287
|
+
| Format | Notes |
|
|
288
|
+
|---|---|
|
|
289
|
+
| `.tex` | LaTeX — hand-written, or pandoc-generated (e.g. from Markdown); pandoc's heading anchors are unwrapped automatically. |
|
|
290
|
+
| `.pdf` | Parsed via GROBID (container required). |
|
|
291
|
+
|
|
292
|
+
*Cited sources you optionally supply (drop folders — see [Setup](#setup)):*
|
|
293
|
+
|
|
294
|
+
| Folder | Accepts | Trust level |
|
|
295
|
+
|---|---|---|
|
|
296
|
+
| `local_pdfs/` | `.pdf`, `.md` (your own summaries) | academic |
|
|
297
|
+
| `local_web/` | `.mhtml` / `.mht`, `.md` | web capture |
|
|
298
|
+
|
|
283
299
|
`check` runs the full pipeline in one command: text checks → figure analysis → LLM consistency → reference verification via APIs → download and parse cited papers → claim verification → consistency checks on cited papers → bibliography verification → aggregate reliability scores → SciLint Score. An initial run on a 50-reference paper takes up to 30 minutes (dominated by downloads and claim verification); subsequent cached runs complete in minutes.
|
|
284
300
|
|
|
285
301
|
### Iterative editing — no `--fresh` needed
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{sciwrite_lint-0.5.0 → sciwrite_lint-0.5.1}/sciwrite_lint/checks/cross_section_consistency.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{sciwrite_lint-0.5.0 → sciwrite_lint-0.5.1}/sciwrite_lint/checks/internal_consistency_pairs.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{sciwrite_lint-0.5.0 → sciwrite_lint-0.5.1}/sciwrite_lint/llm/concurrency_optimizer/__init__.py
RENAMED
|
File without changes
|
{sciwrite_lint-0.5.0 → sciwrite_lint-0.5.1}/sciwrite_lint/llm/concurrency_optimizer/compute_cap.py
RENAMED
|
File without changes
|
{sciwrite_lint-0.5.0 → sciwrite_lint-0.5.1}/sciwrite_lint/llm/concurrency_optimizer/controller.py
RENAMED
|
File without changes
|
{sciwrite_lint-0.5.0 → sciwrite_lint-0.5.1}/sciwrite_lint/llm/concurrency_optimizer/decide.py
RENAMED
|
File without changes
|
{sciwrite_lint-0.5.0 → sciwrite_lint-0.5.1}/sciwrite_lint/llm/concurrency_optimizer/host_metrics.py
RENAMED
|
File without changes
|
{sciwrite_lint-0.5.0 → sciwrite_lint-0.5.1}/sciwrite_lint/llm/concurrency_optimizer/metrics_probe.py
RENAMED
|
File without changes
|
{sciwrite_lint-0.5.0 → sciwrite_lint-0.5.1}/sciwrite_lint/llm/concurrency_optimizer/registry.py
RENAMED
|
File without changes
|
{sciwrite_lint-0.5.0 → sciwrite_lint-0.5.1}/sciwrite_lint/llm/concurrency_optimizer/telemetry.py
RENAMED
|
File without changes
|
{sciwrite_lint-0.5.0 → sciwrite_lint-0.5.1}/sciwrite_lint/llm/concurrency_optimizer/vllm_metrics.py
RENAMED
|
File without changes
|
{sciwrite_lint-0.5.0 → sciwrite_lint-0.5.1}/sciwrite_lint/llm/concurrency_optimizer/wiring.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{sciwrite_lint-0.5.0 → sciwrite_lint-0.5.1}/sciwrite_lint/references/workspace_db/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{sciwrite_lint-0.5.0 → sciwrite_lint-0.5.1}/sciwrite_lint/references/workspace_db/bib_checks.py
RENAMED
|
File without changes
|
|
File without changes
|
{sciwrite_lint-0.5.0 → sciwrite_lint-0.5.1}/sciwrite_lint/references/workspace_db/claim_results.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{sciwrite_lint-0.5.0 → sciwrite_lint-0.5.1}/sciwrite_lint/references/workspace_db/parse_cache.py
RENAMED
|
File without changes
|
{sciwrite_lint-0.5.0 → sciwrite_lint-0.5.1}/sciwrite_lint/references/workspace_db/pipeline_stage.py
RENAMED
|
File without changes
|
{sciwrite_lint-0.5.0 → sciwrite_lint-0.5.1}/sciwrite_lint/references/workspace_db/query_vectors.py
RENAMED
|
File without changes
|
{sciwrite_lint-0.5.0 → sciwrite_lint-0.5.1}/sciwrite_lint/references/workspace_db/ref_internal.py
RENAMED
|
File without changes
|
{sciwrite_lint-0.5.0 → sciwrite_lint-0.5.1}/sciwrite_lint/references/workspace_db/registry.py
RENAMED
|
File without changes
|
{sciwrite_lint-0.5.0 → sciwrite_lint-0.5.1}/sciwrite_lint/references/workspace_db/vision_cache.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|