{"package":"weasyprint","ecosystem":"pypi","latest_version":"69.0","description":"The Awesome Document Factory","license":"BSD-3-Clause","license_risk":"permissive","commercial_use_notes":"Permissive: commercial closed-source use OK; preserve the copyright notice.","homepage":"https://pypi.org/project/weasyprint/","repository":"https://github.com/Kozea/WeasyPrint","downloads_weekly":8364794,"health":{"score":82,"risk":"low","breakdown":{"maintenance":20,"popularity":17,"security":25,"maturity":15,"community":5,"popularity_floor":0},"deprecated":false,"max_score":100},"vulnerabilities":{"count":0,"critical":0,"high":0,"medium":0,"low":0,"details":[]},"versions":{"latest":"69.0","total_count":119,"recent":["60.1","60.2","61.0","61.1","61.2","62.0","62.1","62.2","62.3","63.0","63.1","64.0","64.1","65.0","65.1","66.0","67.0","68.0","68.1","69.0"]},"metadata":{"deprecated":false,"deprecated_message":null,"maintainers_count":0,"first_published":null,"last_published":"2026-06-02T14:42:15.871545Z","dependencies_count":13,"dependencies":["pydyf>=0.11.0","cffi>=0.6","tinyhtml5>=2.0.0b1","tinycss2>=1.5.0","cssselect2>=0.8.0","Pyphen>=0.9.1","Pillow>=9.1.0","fonttools[woff]>=4.59.2","sphinx; extra == \"doc\"","furo; extra == \"doc\"","pytest; extra == \"test\"","ruff; extra == \"test\"","Pillow>=12.1.0; extra == \"test\""]},"github_stats":{"stars":8922,"forks":807,"open_issues":183,"is_archived":false,"pushed_at":"2026-04-29T08:53:37+00:00"},"bundle":null,"typescript":null,"known_issues":{"bugs_count":0,"bugs_severity":{},"status_breakdown":{},"link":null,"scope":"none"},"historical_compromise":null,"recommendation":{"action":"safe_to_use","issues":[],"use_version":"69.0","version_hint":null,"summary":"weasyprint@69.0 is safe to use (health: 82/100)"},"version_scoped":null,"_meta":{"endpoint":"check","tier":"full","philosophy":"DepScope is free. Use the cheapest endpoint that answers your real question.","cheaper_alternatives":[{"endpoint":"/api/exists/pypi/weasyprint","tokens_estimated":12,"use_when":"you only need to know if the package exists (hallucination guard)"},{"endpoint":"/api/health/pypi/weasyprint","tokens_estimated":80,"use_when":"you only need a 0-100 score for go/no-go (>=70 = safe)"},{"endpoint":"/api/prompt/pypi/weasyprint","tokens_estimated":280,"use_when":"you want a plain-text LLM-friendly brief instead of JSON"},{"endpoint":"POST /api/check_bulk","tokens_estimated":60,"use_when":"you have 5+ packages to check; sends one round-trip instead of N"}],"docs":"https://depscope.dev/integrate","hint_bulk":"You've called /api/check 43 times in 60s. Save bandwidth + tokens with POST /api/check_bulk (1 round-trip for N pkgs)."},"requested_version":null,"_cache":"hit","_response_ms":0,"_powered_by":"depscope.dev — free package intelligence for AI agents","typosquat":{"is_suspected":false},"maintainer_trust":{"available":false},"malicious":{"is_malicious":false},"scorecard":{"available":false},"quality":{"available":true,"criticality_score":null,"criticality_tier":null,"velocity_pct":null,"velocity_trend":null,"publish_security":"api_token"},"version_history_summary":{"total_versions":20,"first_release_age_days":5385,"last_release_days_ago":54,"avg_days_between_releases":283,"release_velocity":"active"}}