Leaked secrets are a supply chain risk that dependency audits don't cover, so Supply Chain Security splits into Dependency Audits and Secret Scanning.
Co-Authored-By: Claude <noreply@anthropic.com>
Removed: jev-ultrafast (no PyPI download signal; not published on PyPI): its README calls it an MVP and it needs a hosted API key, so the challenger slot goes to scrapling in the next commit. This overrides the Challenger Exception recorded 2026-10-02.
Co-Authored-By: Claude <noreply@anthropic.com>
Local runners (ollama, llama-cpp-python, mlx-lm) and production serving engines (vllm, sglang) answer different needs, and one use case could not hold both at the cap. The old page redirects to LLM Serving.
Co-Authored-By: Claude <noreply@anthropic.com>
The subcategory nearly repeated its section's name, so its page could compete with the section page for the same searches, as Code Analysis did.
Co-Authored-By: Claude <noreply@anthropic.com>
The subcategory shared its section's name, so its page could compete with the section page for the same searches, as Code Analysis did.
Co-Authored-By: Claude <noreply@anthropic.com>
The catch-all subcategory shared its section's name, so its page ("Code Analysis for Code Analysis") split the "python code analysis" query with the section page in Search Console.
Co-Authored-By: Claude <noreply@anthropic.com>
The NLP intro left gensim out entirely, so readers wanting topic models or word embeddings got no pick even though the README lists it.
Co-Authored-By: Claude <noreply@anthropic.com>
Its second sentence paired aiosmtplib and yagmail with their jobs in the same compressed two-pick frame the Admin Panels lead uses.
Co-Authored-By: Claude <noreply@anthropic.com>
The intro predated the audit and never mentioned django-mongodb-backend, which moved into ORM from Database Drivers.
Co-Authored-By: Claude <noreply@anthropic.com>
The intro predated the 2026-10-02 audit and did not mention the newly added aiosmtplib and django-anymail.
Co-Authored-By: Claude <noreply@anthropic.com>
The intro predated the 2026-10-02 audit and did not mention the newly added flask-restx and flask-smorest.
Co-Authored-By: Claude <noreply@anthropic.com>
The intro predated the 2026-10-02 audit and did not mention the newly added prophet, statsforecast, and sktime.
Co-Authored-By: Claude <noreply@anthropic.com>
The intro predated the 2026-10-02 audit and still recommended Keras as a main pick after its demotion to Second Tier.
Co-Authored-By: Claude <noreply@anthropic.com>
The Mock entry was named `mock`, the PyPI backport package, while it links to and describes the standard-library `unittest.mock` module.
Co-Authored-By: Claude <noreply@anthropic.com>
The old intro recommended SET (social-engineer-toolkit), which the 2026-10-02 audit removed from the README section.
Co-Authored-By: Claude <noreply@anthropic.com>
The old intro recommended Gooey and Tkinter Designer, which the 2026-10-02 audit removed; removing Gooey also dissolved the Wrappers subcategory.
Co-Authored-By: Claude <noreply@anthropic.com>
The old intro recommended freezegun, which the 2026-10-02 audit replaced with time-machine in the README section.
Co-Authored-By: Claude <noreply@anthropic.com>
The old intro recommended MonkeyType and repowise, which the 2026-10-02 audit removed from the README section.
Co-Authored-By: Claude <noreply@anthropic.com>
The 2026-10-02 audit changed the Jupyter entry from the jupyter metapackage to notebook, which the old intro predated.
Co-Authored-By: Claude <noreply@anthropic.com>
The old intro recommended PyGraphviz, which the 2026-10-02 audit replaced with graphviz, and missed Dash, which the audit added.
Co-Authored-By: Claude <noreply@anthropic.com>
The old intro recommended Kitten TTS and VibeVoice, which the 2026-10-02 audit removed from the README section.
Co-Authored-By: Claude <noreply@anthropic.com>
graphify's PyPI override was null (GitHub-only), so the site showed no download count although the project now publishes on PyPI as graphifyy.
Co-Authored-By: Claude <noreply@anthropic.com>