mrkeyoor.com_
Thu 22 Oct 19:40 UTC
Dev Toolsevaluationupdated 20 Oct 2026

awesome-python review

Awesome Python is an English-language directory of Python frameworks, libraries and tools organized by task. Its contribution policy limits each use case to five entries, with explicit maintainer overrides. Use it to find candidates, then check those projects against your requirements.

+1,306stars / 7d
Verdict

Use Awesome Python to form a shortlist for a Python task, then verify each candidate's compatibility and fit. Its admission limits explain why useful projects may be absent. The measured ba49ec7 build succeeded, while test collection stopped at a missing httpx import whose cause remains unresolved.

We ran it

Lab card: what happened when we ran awesome-pythonScreenshot of awesome-python (awesome-python.com)
Install✓ · 11s35 packages · 38 MB
Build✓ · 1s
Tests✗ · 1s0 passed · 0 failed · 3 errors of 3 (pytest)
Known vulns0(pip-audit)
Repo118 files~4,758 lines of source · 0.9 MB · 2 CI workflows

Answers from our run

Does awesome-python build from source?

Dependencies installed in 11 seconds (35 packages), and the build succeeded in 1 seconds. We cloned commit ba49ec7 into a clean Debian container with 3 CPUs and no project-specific setup.

Do awesome-python's tests pass?

No. The project's own test command finished in 1 seconds and reported 0 passed, 0 failed, 3 collection errors (pytest).

Does awesome-python have known vulnerabilities in its dependencies?

pip-audit found none in the dependency tree at the time of our run.

Who should not use awesome-python?

Readers needing an exhaustive catalog: the policy limits entries per use case.

What are the alternatives to awesome-python?

Awesome, Awesome Python Applications. Use Awesome Python to form a shortlist for a Python task, then verify each candidate's compatibility and fit.

SetupN/AThe supplied runtime logs do not establish a run in the current manifest's declared supported environment.
DocsN/AThe policy explains selection rules, but the supplied record establishes neither a numerical rubric nor a completed contributor documentation walkthrough.
CommunityN/AThe last-push timestamp establishes activity, but support quality and submission response times were not assessed.
MaturityN/AThe successful build and incomplete test run do not establish long-term tooling reliability.

Discussed on

  1. hnAwesome Python86 points
  2. hnA curated list of Python frameworks, libraries and resources26 points
  3. hnAwesome Python Frameworks4 points
  4. hnAwesome Python4 points
  5. hnAwesome Python Library List3 points

Who it’s for

Python developers choosing candidates for a specific task.
Engineers who want a shortlist before checking compatibility, licensing and documentation.
Contributors prepared to explain which entry their submission should replace when a use case is full.

Who it’s NOT for

Readers needing an exhaustive catalog: the policy limits entries per use case.
Teams treating inclusion as proof of support for the newest Python release: the policy allows widely used projects to remain without it.
Maintainers seeking admission for experimental or undocumented projects: the published requirements call for stable software and clear documentation.
Readers primarily seeking complete application examples rather than frameworks, libraries and tools.

Setup reality

Our sandbox installed commit ba49ec7 in 11 seconds, recorded 35 dependencies and used 38 MB on disk. The build succeeded in 1 second. Pytest exited with code 1 after 1 second, reporting 0 passed, 0 failed and 3 collection/setup errors. The visible traceback reports a missing httpx import; it does not establish why the module was unavailable.

Readers can browse the README or public website without installing the repository. The supplied current manifest requires Python 3.14 or newer and includes httpx in its build dependency group. The GitHub-star fetcher requires GITHUB_TOKEN.

The October 13, 2026 sandbox configuration recorded 3 CPUs, 8 GB RAM and image ghcr.io/astral-sh/uv:python3.12-bookworm. The image label does not establish actual runtime versions. The supplied evidence therefore does not establish whether the measured run met the current manifest's interpreter requirement.

A shortlist with room for exceptions

Awesome Python's contribution policy limits each use case to five entries, with explicit maintainer overrides. It allows up to three obvious choices and two challengers, and says most use cases should contain fewer. That makes it a starting point for choosing projects to investigate, while leaving room for useful packages to be absent.

The README groups projects by task, including HTTP clients, database drivers and testing. Entries provide links and short descriptions. The README directs readers to the public website for search and filtering. Browsing the directory does not require the repository's contributor environment.

What inclusion tells you

The contribution policy requires recent commits, stable software, clear documentation and a repository at least one month old. Once a use case reaches its cap, a submission must name the entry it would replace and explain why it does that job better. Only the maintainer can create sections or subcategories.

Admission rests on maintainer judgment, informed primarily by PyPI downloads rather than GitHub stars. The policy acknowledges limits to that signal, including CI-inflated downloads and projects used outside pip. Page position therefore cannot answer whether an API fits your application.

Compatibility needs a separate check. Missing support for the newest Python releases does not by itself require removal while a project retains a large user base. Such an entry can occupy a challenger slot as a demoted former obvious choice. Check each candidate's supported interpreter versions before selecting it for a deployment.

What happened when we ran it

Our sandbox installed Awesome Python commit ba49ec7 in 11 seconds, recorded 35 dependencies and used 38 MB on disk. The build succeeded in 1 second. The run took place on October 13, 2026, with a recorded configuration of 3 CPUs and 8 GB RAM. Its image label was ghcr.io/astral-sh/uv:python3.12-bookworm; that label does not establish the actual interpreter or operating-system version.

Pytest exited with code 1 after 1 second, reporting 0 passed, 0 failed and 3 collection/setup errors. The summary names website/tests/test_build.py, website/tests/test_fetch_github_stars.py and website/tests/test_readme_parser.py. The visible traceback reaches an import of httpx in website/fetch_pypi_downloads_via_clickpy.py and reports ModuleNotFoundError. It establishes the missing import, without explaining its cause. The successful build does not establish that the test suite passes.

The harness recorded zero known vulnerabilities, but audit coverage is unverified: its audit record lists zero packages and supplies no package inventory or raw audit output. This result cannot establish the security of the environment or the projects linked by the directory.

The checkout contained 118 files, roughly 4,758 source lines and 0.9 MB. The scanner recorded two CI workflow files, no Dockerfile and no tests directory. The error paths identify tests under website/tests, so the scanner's directory flag cannot establish that tests are absent.

Contributor tooling has separate requirements

The supplied current manifest requires Python 3.14 or newer and includes httpx in its build dependency group. It also declares website/tests as the pytest test path. These declarations describe the supplied current source; they do not establish the environment used for the measured ba49ec7 run.

The manifest contains uv configuration. The GitHub-star fetcher checks for GITHUB_TOKEN and exits when it is missing. Readers browsing the directory do not need to run that fetcher. Contributors should check the declared environment and confirm test collection before relying on a local setup. No corrected setup command was executed for this review.

Activity evidence has limits

The supplied GitHub metadata records a last push on October 19, 2026. The supplied metadata contains no verified latest-release result. A push timestamp shows repository activity; it does not establish support quality, submission response times or tooling reliability.

The contribution guide explains admission, displacement and ordering rules. This review leaves numerical documentation quality unassessed because the supplied record does not establish a rating rubric or a completed contributor documentation walkthrough. Setup ease, community support and long-term tooling reliability also remain unassessed for the evidence gaps listed below.

Choose the directory that matches the task

Sindresorhus's Awesome index covers programming languages, platforms and other subjects. Choose it when your search extends beyond Python or needs a specialist list. Awesome Python Applications collects open-source Python applications by topic. Choose it when you want application code to study.

For a package decision, open the relevant Awesome Python use case and inspect the candidate repositories. Check interpreter support, licensing and documentation against your requirements. If its entries do not fit, the contribution guide points readers toward specialist awesome lists. The admission cap means an absent package may still deserve investigation.

Alternatives

ProjectWhat it isPick it when
AwesomeAn index of lists covering programming languages, platforms and other subjects.Choose this when your search extends beyond Python or needs a specialist subject list.
Awesome Python ApplicationsA collection of open-source Python applications organized by topic.Choose this when you want application code to study rather than candidates for an individual library task.

Sources

  1. Awesome Python README
  2. Awesome Python contribution policy
  3. Awesome Python project manifest
  4. Awesome curated-list index
  5. Awesome Python Applications
  6. Awesome Python GitHub-star fetcher

More dev tools reviews

rpcs3 · shellcheck · mpv · dsh-pocket · mkdocs-material · awesome-cheatsheets · the whole board →