repowiserepowise
Sign in
encode/httpx
OverviewDocsArchitectureKnowledge GraphFilesCode HealthSecurityRefactoring

People & History

CommitsContributorsDecisions
Chat
Stats
repowiserepowise
ExplorePricingDocs
Sign in
repowiseencode/httpx
HT
HT

encode / httpx

pythonmasterb5addb613.8K linessynced 5d ago

Code health

6.9out of 10Fair

This codebase scores 6.9 out of 10 for code health, which we rate fair. It also scores maintainability 7.5 and static performance 9.9 out of 10. The three are scored separately and never blended into one number.

Full health report →
Documentation135pages6 with model-written prose, 129 built from the index

Do next

1 thing worth doing in the week to Feb 23, the last indexed commit, 1 of them now.

Now

  • High

    Start breaking up urlparse (CCN 42, 81 lines): first lift lines 231-264 into a helper

    httpx/_urlparse.py:231

    urlparse has many independent paths through it, and part of it is duplicated, so splitting it also removes a copy; 2 files import it.

    gain
    +0.6 health on this file(inferred)
    health recoverable
    +0.6(inferred)
    size
    CCN 42, 81 lines, nests 3 deep
    steps
    2 (2 mechanical)
    Small effort

Improve what Repowise can see

  • Add a test coverage report

    Without one, Repowise cannot tell tested code from untested code, so every test-related action says “unknown”.

    line coverage
    Unknown, no report
    Small effort
Lines of code
13.8K
Files
98
Symbols
1,245
Modules
2
Languages
1

Recent activity

All commits →

Commits

  • b5addb64Adapt test_response_decode_text_using_autodetect for chardet 6.0 (#3773)7mo ago
  • ae1b9f66Expose `FunctionAuth` in `__all__` (#3699)10mo ago
  • ca097c96docs/ssl: fix typo (#3703)10mo ago
  • def4778dFixed a syntax error in the file upload example (#3692)11mo ago
  • 435e1dacBump actions/setup-python from 5 to 6 (#3677)1y ago
  • 4b23574cUpdate dependencies (#3665)1y ago

Decisions

  • Use multipart instead of deprecated cgi module in multipart testsproposed · 5d ago
  • Optimize LineDecoder to match stdlib splitlinesproposed · 5d ago
  • Remove pytest-trio from testsproposed · 5d ago
  • Switch async test strategy from pytest-asyncio to anyioproposed · 5d ago
  • Use anyio for async tests and remove pytest-trioproposed · 5d ago
  • Refactor httpx/_utils.py iteration and conditional structureproposed · 5d ago
▸

Everything we found

242 open

Every detector's open count by area, each with its worst example. An inventory, not a to-do list: the actions above are the part worth doing.

  • worst item is critical severity. Code health179Nested complexity · httpx/_main.py12 findings · 7.7 deducted→
  • worst item is medium severity. Refactoring20__init__+1.3 health, S effort · httpx/_multipart.py→
  • worst item is medium severity. Decisions37Use multipart instead of deprecated cgi module in multipart tests37 awaiting review→
  • worst item is medium severity. Ownership6tests/__init__.py100% single-owner concentration, not touched in 90 days→

Composition

Open the graph →
python 100%

Explore this codebase

  • Docs135 pages across 2 modules→
  • ChatAsk this codebase a question and get an answer with its sources.→
  • Files98 files with per-file docs, health and history→
  • ArchitectureDependency graph, layers, and 3 entry points→
  • Code healthPer-file scores, 206 open findings, coverage and refactoring targets→
  • Knowledge graphEntities, communities, and the paths between them→
  • Change couplingFiles that keep changing together, mined from commit history→
  • CommitsChange-risk ranked history with agent provenance→
  • ContributorsBus factor, per-file maintainers, and the human/agent split→
  • StatsSize class, origin, lifetime churn, rhythm and records→
  • CostsWhat indexing this snapshot cost, by model and by run.→