Registro público
Informe de salud del softwareesquema 0.11.0 · métricas 1.13.0 · 2026-07-15 04:11 UTC

posthog / posthog-python

Send usage data from your Python code to PostHog.

PythonLicencia propia★ 59 estrellas⑂ 72 forksdesde feb 2020Ver en GitHub ↗

posthog/posthog-python tiene un índice de salud de 82 sobre 100, lo que lo sitúa en la banda Bueno. Su puntuación más alta es Vitality (99/100) y la más baja, Security (65/100). Se actualizó por última vez hoy. 7 personas concentran la mayor parte del trabajo reciente.

82
global / 100
Bueno

Índice de salud del software

Las métricas se agrupan en categorías ponderadas sobre una escala de 1 a 100. El resultado global parte de su media; cuando la evidencia pública activa la Política de Jurisdicciones de Alto Riesgo, la calificación se ajusta y recibe el límite 49 (En riesgo). Preparación para IA queda fuera.

82
Excelente85-100Ejemplar; cumple prácticamente todos los criterios evaluados
Bueno70-84Saludable; carencias menores
Moderado50-69Aceptable con carencias notables; se recomienda revisión
En riesgo30-49Debilidades significativas; su adopción exige cautela
Crítico1-29Problemas graves (proyecto abandonado, un solo mantenedor, sin higiene)
VitalidadComunidad yAdopciónSostenibilidady GobernanzaCalidad deIngenieríaSeguridadPreparaciónpara IA

Perfil de puntuación

Cada eje es una categoría. La forma importa más que la media: un proyecto sano llena toda la figura, mientras que un perfil de picos y cráteres indica que la fortaleza en una dimensión enmascara el riesgo en otra.

Titularidad

PostHogOrganización
2027 seguidores357 repositorios públicosdesde ene 2020

Este repositorio está respaldado por una organización: una custodia compartida y responsable que puede sobrevivir a cualquier mantenedor individual.

Ecosistemas de paquetes

RegistroPaqueteVersiónDescargas / mesVersionesÚltima publicación
PyPIopenfeature-provider-posthog0.1.910149hace 0 días
PyPIposthog7.22.448.249.465230hace 0 días

Métricas por categoría

Vitalidad

¿Está vivo el proyecto: se escribe código y se publican versiones?

99Excelente · 22% del índice global
Cómo se puntúa
36/36Recencia de push — último push hace 0 días
34.6/36Cadencia de commits — 50/52 semanas con commits
18/18Volumen de commits — 425 commits en el último año
10/10OpenSSF Scorecard: Maintained — 30 commit(s) and 11 issue activity found in the last 90 days -- score normalized to 10
Datos de entrada utilizados
commits_last_year425
human_commit_share
days_since_last_push0
active_weeks_last_year50
Cómo se puntúa
27/27Publica versiones — 100 versiones publicadas
36/36Recencia de las versiones — última versión hace 0 días
27/27Cadencia de publicación — una versión cada ~0,9 días
0/10OpenSSF Scorecard: Signed-Releases — sin datos
Datos de entrada utilizados
releases_count100
latest_release_tagposthog-v7.22.4
releases_from_tagsno
days_since_latest_release0
mean_days_between_releases0,9
Excluidos de la puntuación (sin datos o no aplicable): OpenSSF Scorecard: Signed-Releases. Los pesos restantes se han renormalizado.

Comunidad y Adopción

¿Tiene el proyecto usuarios, descargas, atención y unas condiciones acogedoras para quienes contribuyen?

74Bueno · 18% del índice global
Cómo se puntúa
28.6/60Estrellas — 59 estrellas
15.4/25Forks — 72 forks
4.3/15Observadores — 7 observadores
Datos de entrada utilizados
forks72
stars59
watchers7
growth_stateunverified
growth_factor_pct100
growth_unverified_reasonno_history
Cómo se puntúa
22.5/22.5README
16.9/22.5Licencia — archivo de licencia presente, no es una licencia reconocida
18/18Guía CONTRIBUTING
13.5/13.5Código de conducta
0/7.2Plantilla de issues
6.3/6.3Plantilla de PR
Datos de entrada utilizados
has_readme
has_license
has_contributing
has_issue_templateno
has_code_of_conduct
has_pull_request_template
Cómo se puntúa
80/80Descargas mensuales — 48.250.479 descargas/mes en pypi
0/20Dependientes en el registro — no lo informa este ecosistema
Datos de entrada utilizados
packagesopenfeature-provider-posthog, posthog
dependents
ecosystemspypi
total_downloads
monthly_downloads48.250.479
Excluidos de la puntuación (sin datos o no aplicable): Dependientes en el registro. Los pesos restantes se han renormalizado.

Sostenibilidad y Gobernanza

¿Sobrevivirá el proyecto a sus personas: factor bus, capacidad de respuesta, quién lo respalda y mantenimiento del paquete?

88Excelente · 24% del índice global
Cómo se puntúa
51.3/54Factor bus — la mitad de los commits recae en 7 contribuyente(s)
19.7/22.5Distribución de commits — el principal contribuyente firma el 12% de los commits
13.5/13.5Amplitud de contribuyentes — 77 contribuyentes
10/10OpenSSF Scorecard: Contributors — project has 15 contributing companies or organizations
Datos de entrada utilizados
bus_factor7
contributors_sampled77
top_contributor_share0,123
Cómo se puntúa
44.6/46.8Resolución de issues — 95% de issues cerradas
31.3/38.3Aceptación de PR — 527/643 PR decididos fusionados
4.5/15OpenSSF Scorecard: Code-Review — Found 9/23 approved changesets -- score normalized to 3
Datos de entrada utilizados
merged_prs527
open_issues4
closed_issues82
issue_closed_ratio0,953
closed_unmerged_prs116
Cómo se puntúa
30/30Respaldo de la propiedad — propiedad de una organización
0/20Dominio verificado
23.8/25Alcance del propietario — 2027 seguidores de PostHog
25/25Trayectoria — 357 repos públicos, cuenta de ~6 años
Datos de entrada utilizados
followers2027
owner_typeOrganization
is_verified
owner_loginPostHog
public_repos357
account_age_days2361
Cómo se puntúa
25/25Publicado y resoluble — 2 paquete(s) en pypi
35/35Recencia de publicación — última publicación hace 0 días
20/20Historial de versiones — 230 versiones en el registro
20/20No obsoleto — activo, ni obsoleto ni retirado
Datos de entrada utilizados
packagesopenfeature-provider-posthog, posthog
ecosystemspypi
any_deprecatedno
min_days_since_publish0

Calidad de Ingeniería

¿Existen unas prácticas mínimas de ingeniería y documentación?

78Bueno · 20% del índice global
Cómo se puntúa
24/24Flujos de trabajo de CI — 7 flujo(s) de trabajo
24/24Pruebas presentes
16/16Configuración de linter
9.6/9.6Hooks de pre-commit
0/6.4.editorconfig
20/20OpenSSF Scorecard: CI-Tests — 16 out of 16 merged PRs checked by a CI test -- score normalized to 10
Datos de entrada utilizados
has_ci
has_tests
has_editorconfigno
has_linter_config
has_precommit_config

Documentación

55Moderado
Cómo se puntúa
30/30README
0/25Directorio de documentación
15/15Sitio de documentación / página del proyecto — https://posthog.com/docs/libraries/python
10/10Descripción del repositorio
0/10Topics
0/10Wiki
Datos de entrada utilizados
topics
has_wikino
homepagehttps://posthog.com/docs/libraries/python
has_readme
has_docs_dirno
has_description

Seguridad

¿Son sólidas las prácticas visibles de seguridad y de cadena de suministro, sin exposición jurisdiccional de alto riesgo sin resolver?

65Moderado · 16% del índice global
Cómo se puntúa
7.5/7.5Binary-Artifacts — no binaries found in the repo
3/7.5Branch-Protection — branch protection is not maximal on development and all release branches
2.5/2.5CI-Tests — 16 out of 16 merged PRs checked by a CI test -- score normalized to 10
0/2.5CII-Best-Practices — no effort to earn an OpenSSF best practices badge detected
2.2/7.5Code-Review — Found 9/23 approved changesets -- score normalized to 3
2.5/2.5Contributors — project has 15 contributing companies or organizations
10/10Dangerous-Workflow — no dangerous workflow patterns detected
7.5/7.5Dependency-Update-Tool — update tool detected
0/5Fuzzing — project is not fuzzed
2.2/2.5Licencia — license file detected
7.5/7.5Maintained — 30 commit(s) and 11 issue activity found in the last 90 days -- score normalized to 10
5/5Packaging — packaging workflow detected
3.5/5Pinned-Dependencies — dependency not pinned by hash detected -- score normalized to 7
5/5SAST — SAST tool is run on all commits
5/5Security-Policy — security policy file detected
0/7.5Signed-Releases — sin datos
0/7.5Token-Permissions — detected GitHub workflow tokens with excessive permissions
0/7.5Vulnerabilities — 109 existing vulnerabilities detected
Datos de entrada utilizados
sourceopenssf_scorecard
checks_evaluated17
scorecard_versionv5.5.0
checks_inconclusive1
scorecard_aggregate6,5
Excluidos de la puntuación (sin datos o no aplicable): signed_releases. Los pesos restantes se han renormalizado.

Preparación para IA

¿Hasta qué punto está el repositorio preparado para desarrollarse y mantenerse con agentes de codificación de IA? Es una insignia independiente y experimental — peso 0,0, de modo que se presenta por separado y no afecta a la puntuación de salud global.

78Bueno · 0% del índice global
Cómo se puntúa
45/45Instrucciones para agentes — AGENTS.md
0/15Documentación legible por máquinas (llms.txt)
0/40Historial de commits legible — sin datos
Datos de entrada utilizados
has_llms_txtno
legible_history_share
agent_instruction_filesAGENTS.md
agent_instruction_max_bytes5396
Excluidos de la puntuación (sin datos o no aplicable): Historial de commits legible. Los pesos restantes se han renormalizado.
Cómo se puntúa
18/18Arranque con un solo comando — Makefile
22/22Pruebas automatizadas
11/11Configuración de lint / formato
11/11Verificación estática de tipos — mypy.ini, openfeature-provider/openfeature/contrib/provider/posthog/py.typed, posthog/py.typed
10/10Entorno reproducible — Dockerfile, lockfile
0/10Práctica demostrada con agentes — sin datos
5/8Mantenimiento automatizado — automatización de dependencias configurada, no observada en los commits muestreados
7/10OpenSSF Scorecard: Pinned-Dependencies — dependency not pinned by hash detected -- score normalized to 7
Datos de entrada utilizados
has_nixno
has_tests
lockfilesuv.lock
has_dockerfile
typed_languageno
bootstrap_filesMakefile
has_devcontainerno
has_linter_config
typecheck_configsmypy.ini, openfeature-provider/openfeature/contrib/provider/posthog/py.typed, posthog/py.typed
agent_commit_share
toolchain_manifests
dependency_bot_commit_share0
Excluidos de la puntuación (sin datos o no aplicable): Práctica demostrada con agentes. Los pesos restantes se han renormalizado.
Cómo se puntúa
27/45Código verificable por tipos — Python con configuración de verificación de tipos (mypy.ini, openfeature-provider/openfeature/contrib/provider/posthog/py.typed, posthog/py.typed)
53.8/55Tamaños de archivo manejables — 5/226 archivos fuente de más de 60 KB
Datos de entrada utilizados
primary_languagePython
largest_source_bytes290.382
source_files_sampled226
oversized_source_files5
Cómo se puntúa
0/40Esquema de API (OpenAPI/GraphQL/proto)
0/20Servidor MCP
40/40Ejemplos ejecutables — examples
Datos de entrada utilizados
example_dirsexamples
has_mcp_signalno
api_schema_files

Datos clave

59estrellas de GitHub
77contribuidores
425commits en los últimos 12 meses
0días desde el último push
100versiones publicadas
7factor bus
4issues abiertas
PyPIecosistemas de paquetes

Más detalle

OpenSSF Scorecard 6.5 / 10
6.5agregado

Evaluación de seguridad independiente y agnóstica en cuanto a herramientas, procedente del proyecto de código abierto OpenSSF Scorecard. Cada comprobación premia una práctica de seguridad, no la herramienta de un proveedor concreto. Las comprobaciones que Scorecard no pudo determinar se marcan como n/d y se excluyen de la puntuación de seguridad (nunca se cuentan como cero).Scorecard v5.5.0 · 2026-07-15 04:11 UTC

10Binary-Artifactsno binaries found in the repo
4Branch-Protectionbranch protection is not maximal on development and all release branches
10CI-Tests16 out of 16 merged PRs checked by a CI test -- score normalized to 10
0CII-Best-Practicesno effort to earn an OpenSSF best practices badge detected
3Code-ReviewFound 9/23 approved changesets -- score normalized to 3
10Contributorsproject has 15 contributing companies or organizations
10Dangerous-Workflowno dangerous workflow patterns detected
10Dependency-Update-Toolupdate tool detected
0Fuzzingproject is not fuzzed
9Licenselicense file detected
10Maintained30 commit(s) and 11 issue activity found in the last 90 days -- score normalized to 10
10Packagingpackaging workflow detected
7Pinned-Dependenciesdependency not pinned by hash detected -- score normalized to 7
10SASTSAST tool is run on all commits
10Security-Policysecurity policy file detected
n/dSigned-Releasesno releases found
0Token-Permissionsdetected GitHub workflow tokens with excessive permissions
0Vulnerabilities109 existing vulnerabilities detected
Dependencias directas 6
RegistroPaqueteRestricción de versiónManifiesto
PyPIposthog>=7.0.0,<8.0.0openfeature-provider/pyproject.toml
PyPIopenfeature-sdk>=0.8.0openfeature-provider/pyproject.toml
PyPIrequests>=2.7,<3.0pyproject.toml
PyPIbackoff>=1.10.0pyproject.toml
PyPIdistro>=1.5.0pyproject.toml
PyPItyping-extensions>=4.2.0pyproject.toml
Todas las dependencias 595

Conjunto completo de dependencias resueltas según el grafo de dependencias de GitHub: 22 paquetes directos y 573 indirectos (transitivos). El cierre transitivo es completo cuando el repositorio incluye un lockfile.

RegistroPaqueteVersiónRelación
PyPIbackoff2.2.1directa
PyPIdistro1.9.0directa
PyPIopenfeature-sdk0.10.0directa
PyPIopenfeature-sdkdirecta
PyPIposthog7.15.0directa
PyPIposthogdirecta
PyPIposthog7.17.0directa
PyPIposthog7.15.2directa
PyPIposthog7.15.1directa
PyPIposthog7.9.12directa
PyPIposthog7.22.4directa
PyPIposthog7.14.0directa
PyPIposthog7.22.2directa
PyPIposthog7.21.1directa
PyPIposthog7.15.3directa
PyPIrequests2.33.1directa
PyPIrequests2.33.0directa
PyPIrequests2.32.5directa
PyPIrequests2.32.4directa
PyPItyping-extensions4.15.0directa
PyPItyping-extensions4.14.1directa
PyPItyping-extensions4.14.0directa
PyPIag-ui-protocol0.1.14indirecta
PyPIaiofile3.9.0indirecta
PyPIaiofiles25.1.0indirecta
PyPIaiohappyeyeballs2.6.1indirecta
PyPIaiohttp3.13.5indirecta
PyPIaiohttp3.12.13indirecta
PyPIaiohttp3.13.3indirecta
PyPIaioice0.10.2indirecta
PyPIaiortc1.14.0indirecta
PyPIaiosignal1.4.0indirecta
PyPIaiosqlite0.22.1indirecta
PyPIalembic1.18.4indirecta
PyPIannotated-doc0.0.4indirecta
PyPIannotated-types0.7.0indirecta
PyPIanthropicindirecta
PyPIanthropic0.87.0indirecta
PyPIanthropic0.116.0indirecta
PyPIanthropic0.111.0indirecta
PyPIanyio4.13.0indirecta
PyPIanyio4.9.0indirecta
PyPIanyio4.11.0indirecta
PyPIappdirs1.4.4indirecta
PyPIargcomplete3.6.3indirecta
PyPIasgiref3.9.0indirecta
PyPIasgiref3.11.1indirecta
PyPIasgiref3.10.0indirecta
PyPIasttokens3.0.1indirecta
PyPIasync-timeout5.0.1indirecta
PyPIasync-timeout4.0.3indirecta
PyPIasyncer0.0.8indirecta
PyPIattrs26.1.0indirecta
PyPIattrs25.3.0indirecta
PyPIauth0-python5.3.0indirecta
PyPIauthlib1.7.2indirecta
PyPIautogen-agentchat0.7.5indirecta
PyPIautogen-core0.7.5indirecta
PyPIautogen-ext0.7.5indirecta
PyPIautogen-extindirecta
PyPIav16.1.0indirecta
PyPIazure-ai-agents1.2.0b6indirecta
PyPIazure-ai-projects1.0.0indirecta
PyPIazure-core1.39.0indirecta
PyPIazure-identity1.25.3indirecta
PyPIazure-storage-blob12.28.0indirecta
PyPIbackports-tarfile1.2.0indirecta
PyPIbanks2.4.2indirecta
PyPIbcrypt5.0.0indirecta
PyPIbeartype0.22.9indirecta
PyPIblinker1.9.0indirecta
PyPIboto31.42.76indirecta
PyPIboto31.42.75indirecta
PyPIbotocore1.42.76indirecta
PyPIbotocore1.42.75indirecta
PyPIbuild1.4.2indirecta
PyPIcached-property2.0.1indirecta
PyPIcachetools7.0.5indirecta
PyPIcaio0.9.25indirecta
PyPIcertifi2026.2.25indirecta
PyPIcertifi2025.6.15indirecta
PyPIcertifi2025.10.5indirecta
PyPIcffi2.0.0indirecta
PyPIcffi1.17.1indirecta
PyPIcfgv3.4.0indirecta
PyPIchardet7.4.0.post2indirecta
PyPIcharset-normalizer3.4.6indirecta
PyPIcharset-normalizer3.4.2indirecta
PyPIcharset-normalizer3.4.4indirecta
PyPIcharset-normalizer3.4.7indirecta
PyPIchromadb1.5.5indirecta
PyPIclaude-agent-sdkindirecta
PyPIclaude-agent-sdk0.1.50indirecta
PyPIclick8.3.1indirecta
PyPIclick8.3.3indirecta
PyPIclick8.1.8indirecta
PyPIclick8.3.0indirecta
PyPIclick8.2.1indirecta
PyPIcloudevents1.12.1indirecta
PyPIcloudpickle3.1.2indirecta
PyPIcohere5.20.7indirecta
PyPIcolorama0.4.6indirecta
PyPIcoloredlogs15.0.1indirecta
PyPIcolorlog6.10.1indirecta
PyPIcoverageindirecta
PyPIcoverage7.9.2indirecta
PyPIcrewai0.95.0indirecta
PyPIcryptography46.0.6indirecta
PyPIcryptography45.0.5indirecta
PyPIcryptography46.0.5indirecta
PyPIcyclopts4.18.0indirecta
PyPIcyclopts4.10.1indirecta
PyPIdataclasses-json0.6.7indirecta
PyPIdecorator5.2.1indirecta
PyPIdefusedxml0.7.1indirecta
PyPIdeprecated1.3.1indirecta
PyPIdeprecation2.1.0indirecta
PyPIdirtyjson1.0.8indirecta
PyPIdiskcache5.6.3indirecta
PyPIdistlib0.3.9indirecta
PyPIdjangoindirecta
PyPIdjango5.2.16indirecta
PyPIdjango5.2.15indirecta
PyPIdjango-stubsindirecta
PyPIdjango-stubs5.2.1indirecta
PyPIdjango-stubs-ext5.2.1indirecta
PyPIdnspython2.8.0indirecta
PyPIdocstring-parser0.17.0indirecta
PyPIdocutils0.21.2indirecta
PyPIdocutils0.22.4indirecta
PyPIdspy3.1.3indirecta
PyPIdurationpy0.10indirecta
PyPIemail-validator2.3.0indirecta
PyPIet-xmlfile2.0.0indirecta
PyPIeval-type-backport0.3.1indirecta
PyPIexample-ai-anthropic0.1.0indirecta
PyPIexample-ai-autogen0.1.0indirecta
PyPIexample-ai-aws-bedrock0.1.0indirecta
PyPIexample-ai-azure-openai0.1.0indirecta
PyPIexample-ai-cerebras0.1.0indirecta
PyPIexample-ai-cloudflare-ai-gateway0.1.0indirecta
PyPIexample-ai-cohere0.1.0indirecta
PyPIexample-ai-crewai0.1.0indirecta
PyPIexample-ai-dedalus0.1.0indirecta
PyPIexample-ai-deepseek0.1.0indirecta
PyPIexample-ai-dspy0.1.0indirecta
PyPIexample-ai-fireworks-ai0.1.0indirecta
PyPIexample-ai-gemini0.1.0indirecta
PyPIexample-ai-groq0.1.0indirecta
PyPIexample-ai-helicone0.1.0indirecta
PyPIexample-ai-hugging-face0.1.0indirecta
PyPIexample-ai-instructor0.1.0indirecta
PyPIexample-ai-langchain0.1.0indirecta
PyPIexample-ai-langgraph0.1.0indirecta
PyPIexample-ai-litellm0.1.0indirecta
PyPIexample-ai-llamaindex0.1.0indirecta
PyPIexample-ai-mirascope0.1.0indirecta
PyPIexample-ai-ollama0.1.0indirecta
PyPIexample-ai-openai0.1.0indirecta
PyPIexample-ai-openai-agents0.1.0indirecta
PyPIexample-ai-openrouter0.1.0indirecta
PyPIexample-ai-perplexity0.1.0indirecta
PyPIexample-ai-portkey0.1.0indirecta
PyPIexample-ai-pydantic-ai0.1.0indirecta
PyPIexample-ai-semantic-kernel0.1.0indirecta
PyPIexample-ai-smolagents0.1.0indirecta
PyPIexample-ai-together-ai0.1.0indirecta
PyPIexceptiongroup1.3.1indirecta
PyPIexceptiongroup1.3.0indirecta
PyPIexecuting2.2.1indirecta
PyPIfastapi0.115.14indirecta
PyPIfastavro1.12.1indirecta
PyPIfastmcp2.12.4indirecta
PyPIfastmcp3.4.2indirecta
PyPIfastmcp-slim3.4.2indirecta
PyPIfastuuid0.14.0indirecta
PyPIfilelock3.25.2indirecta
PyPIfilelock3.18.0indirecta
PyPIfiletype1.2.0indirecta
PyPIflaskindirecta
PyPIflatbuffers25.12.19indirecta
PyPIfreezegun1.5.1indirecta
PyPIfrozenlist1.8.0indirecta
PyPIfrozenlist1.7.0indirecta
PyPIfsspec2026.2.0indirecta
PyPIfsspec2026.3.0indirecta
PyPIgenai-prices0.0.56indirecta
PyPIgepa0.0.26indirecta
PyPIgherkin-official29.0.0indirecta
PyPIgoogle-auth2.49.1indirecta
PyPIgoogle-auth2.53.0indirecta
PyPIgoogle-crc32c1.8.0indirecta
PyPIgoogle-genaiindirecta
PyPIgoogle-genai1.69.0indirecta
PyPIgoogle-genai2.10.0indirecta
PyPIgoogle-genai2.9.0indirecta
PyPIgoogleapis-common-protos1.73.1indirecta
PyPIgoogleapis-common-protos1.74.0indirecta
PyPIgoogleapis-common-protos1.73.0indirecta
PyPIgreenlet3.3.2indirecta
PyPIgreenlet3.2.3indirecta
PyPIgriffe2.0.2indirecta
PyPIgriffe1.15.0indirecta
PyPIgriffecli2.0.2indirecta
PyPIgriffelib2.0.2indirecta
PyPIgriffelib2.0.1indirecta
PyPIgroq1.1.1indirecta
PyPIgrpcio1.80.0indirecta
PyPIgrpcio1.78.0indirecta
PyPIh110.16.0indirecta
PyPIhf-xet1.4.2indirecta
PyPIhf-xet1.4.3indirecta
PyPIhttpcore1.0.9indirecta
PyPIhttptools0.7.1indirecta
PyPIhttptools0.6.4indirecta
PyPIhttpx0.28.1indirecta
PyPIhttpx-sse0.4.3indirecta
PyPIhttpx-sse0.4.1indirecta
PyPIhuggingface-hub1.8.0indirecta
PyPIhuggingface-hub1.7.2indirecta
PyPIhuggingface-hub0.36.2indirecta
PyPIhumanfriendly10.0indirecta
PyPIid1.5.0indirecta
PyPIidentify2.6.12indirecta
PyPIidna3.15indirecta
PyPIidna3.11indirecta
PyPIidna3.10indirecta
PyPIifaddr0.2.0indirecta
PyPIimportlib-metadata8.7.1indirecta
PyPIimportlib-metadata8.5.0indirecta
PyPIimportlib-metadata8.7.0indirecta
PyPIimportlib-resources6.5.2indirecta
PyPIinflection0.5.1indirecta
PyPIiniconfig2.1.0indirecta
PyPIiniconfig2.3.0indirecta
PyPIinstructor1.14.5indirecta
PyPIipython9.10.1indirecta
PyPIipython8.39.0indirecta
PyPIipython9.12.0indirecta
PyPIipython-pygments-lexers1.1.1indirecta
PyPIisodate0.7.2indirecta
PyPIjaraco-classes3.4.0indirecta
PyPIjaraco-context6.0.1indirecta
PyPIjaraco-context6.1.2indirecta
PyPIjaraco-functools4.2.1indirecta
PyPIjaraco-functools4.4.0indirecta
PyPIjedi0.19.2indirecta
PyPIjeepney0.9.0indirecta
PyPIjinja23.1.6indirecta
PyPIjiter0.13.0indirecta
PyPIjiter0.11.1indirecta
PyPIjiter0.10.0indirecta
PyPIjmespath1.1.0indirecta
PyPIjoblib1.5.3indirecta
PyPIjoserfc1.7.1indirecta
PyPIjson-repair0.60.1indirecta
PyPIjsonpatch1.33indirecta
PyPIjsonpath-python1.1.5indirecta
PyPIjsonpickle4.1.1indirecta
PyPIjsonpointer3.0.0indirecta
PyPIjsonpointer3.1.1indirecta
PyPIjsonref1.1.0indirecta
PyPIjsonschema4.26.0indirecta
PyPIjsonschema4.23.0indirecta
PyPIjsonschema-path0.3.4indirecta
PyPIjsonschema-path0.4.6indirecta
PyPIjsonschema-path0.4.5indirecta
PyPIjsonschema-specifications2025.9.1indirecta
PyPIkeyring25.6.0indirecta
PyPIkeyring25.7.0indirecta
PyPIkubernetes35.0.0indirecta
PyPIlangchainindirecta
PyPIlangchain1.3.11indirecta
PyPIlangchain1.2.14indirecta
PyPIlangchain-anthropicindirecta
PyPIlangchain-anthropic1.4.8indirecta
PyPIlangchain-classic1.0.7indirecta
PyPIlangchain-communityindirecta
PyPIlangchain-community0.4.2indirecta
PyPIlangchain-coreindirecta
PyPIlangchain-core1.4.8indirecta
PyPIlangchain-core1.2.23indirecta
PyPIlangchain-openaiindirecta
PyPIlangchain-openai1.3.3indirecta
PyPIlangchain-openai1.1.12indirecta
PyPIlangchain-protocol0.0.18indirecta
PyPIlangchain-text-splitters1.1.2indirecta
PyPIlanggraphindirecta
PyPIlanggraph1.2.7indirecta
PyPIlanggraph1.1.4indirecta
PyPIlanggraph-checkpointindirecta
PyPIlanggraph-checkpoint4.1.1indirecta
PyPIlanggraph-prebuilt1.1.0indirecta
PyPIlanggraph-prebuilt1.0.8indirecta
PyPIlanggraph-sdk0.4.2indirecta
PyPIlanggraph-sdk0.3.15indirecta
PyPIlangsmith0.4.4indirecta
PyPIlangsmith0.7.23indirecta
PyPIlazy-object-proxy1.12.0indirecta
PyPIlitellm1.84.0indirecta
PyPIllama-index0.14.19indirecta
PyPIllama-index-cli0.5.6indirecta
PyPIllama-index-core0.14.19indirecta
PyPIllama-index-embeddings-openai0.6.0indirecta
PyPIllama-index-instrumentation0.5.0indirecta
PyPIllama-index-llms-openai0.7.5indirecta
PyPIllama-index-workflows2.17.1indirecta
PyPIlogfire4.30.0indirecta
PyPIlogfire-api4.30.0indirecta
PyPIlxmlindirecta
PyPIlxml6.0.0indirecta
PyPImako1.3.12indirecta
PyPImarkdown-it-py4.0.0indirecta
PyPImarkdown-it-py3.0.0indirecta
PyPImarkupsafe3.0.3indirecta
PyPImarshmallow3.26.2indirecta
PyPImatplotlib-inline0.2.1indirecta
PyPImcp1.27.1indirecta
PyPImcp1.26.0indirecta
PyPImdurl0.1.2indirecta
PyPImirascope2.4.0indirecta
PyPImistralai2.1.3indirecta
PyPImmh35.2.1indirecta
PyPImore-itertools10.8.0indirecta
PyPImore-itertools10.7.0indirecta
PyPImpmath1.3.0indirecta
PyPImsal1.35.1indirecta
PyPImsal-extensions1.3.1indirecta
PyPImultidict6.7.1indirecta
PyPImultidict6.6.3indirecta
PyPImypyindirecta
PyPImypy1.16.1indirecta
PyPImypy-baselineindirecta
PyPImypy-baseline0.7.3indirecta
PyPImypy-extensions1.1.0indirecta
PyPInest-asyncio1.6.0indirecta
PyPInetworkx3.4.2indirecta
PyPInetworkx3.6.1indirecta
PyPInexus-rpc1.4.0indirecta
PyPInh30.2.21indirecta
PyPInltk3.9.4indirecta
PyPInodeenv1.9.1indirecta
PyPInumpy2.2.6indirecta
PyPInumpy2.4.3indirecta
PyPInumpy2.4.4indirecta
PyPInumpy2.3.1indirecta
PyPIoauthlib3.3.1indirecta
PyPIonnxruntime1.22.0indirecta
PyPIopenai2.30.0indirecta
PyPIopenaiindirecta
PyPIopenai2.44.0indirecta
PyPIopenai2.29.0indirecta
PyPIopenai-agents0.13.1indirecta
PyPIopenapi-core0.19.5indirecta
PyPIopenapi-core0.23.1indirecta
PyPIopenapi-pydantic0.5.1indirecta
PyPIopenapi-schema-validator0.6.3indirecta
PyPIopenapi-schema-validator0.8.1indirecta
PyPIopenapi-spec-validator0.7.2indirecta
PyPIopenapi-spec-validator0.8.5indirecta
PyPIopenfeature-provider-posthog0.1.9indirecta
PyPIopenpyxl3.1.5indirecta
PyPIopentelemetry-api1.40.0indirecta
PyPIopentelemetry-api1.34.1indirecta
PyPIopentelemetry-api1.39.1indirecta
PyPIopentelemetry-exporter-otlp-proto-common1.40.0indirecta
PyPIopentelemetry-exporter-otlp-proto-common1.34.1indirecta
PyPIopentelemetry-exporter-otlp-proto-common1.39.1indirecta
PyPIopentelemetry-exporter-otlp-proto-grpc1.34.1indirecta
PyPIopentelemetry-exporter-otlp-proto-http1.40.0indirecta
PyPIopentelemetry-exporter-otlp-proto-http1.34.1indirecta
PyPIopentelemetry-exporter-otlp-proto-http1.39.1indirecta
PyPIopentelemetry-instrumentation0.61b0indirecta
PyPIopentelemetry-instrumentation0.60b1indirecta
PyPIopentelemetry-instrumentation-anthropic0.57.0indirecta
PyPIopentelemetry-instrumentation-botocore0.61b0indirecta
PyPIopentelemetry-instrumentation-google-generativeai0.57.0indirecta
PyPIopentelemetry-instrumentation-httpx0.60b1indirecta
PyPIopentelemetry-instrumentation-langchain0.57.0indirecta
PyPIopentelemetry-instrumentation-llamaindex0.57.0indirecta
PyPIopentelemetry-instrumentation-openai-v22.3b0indirecta
PyPIopentelemetry-propagator-aws-xray1.0.2indirecta
PyPIopentelemetry-proto1.40.0indirecta
PyPIopentelemetry-proto1.34.1indirecta
PyPIopentelemetry-proto1.39.1indirecta
PyPIopentelemetry-sdk1.40.0indirecta
PyPIopentelemetry-sdk1.34.1indirecta
PyPIopentelemetry-sdk1.39.1indirecta
PyPIopentelemetry-semantic-conventions0.61b0indirecta
PyPIopentelemetry-semantic-conventions0.55b1indirecta
PyPIopentelemetry-semantic-conventions0.60b1indirecta
PyPIopentelemetry-semantic-conventions-ai0.5.1indirecta
PyPIopentelemetry-util-http0.60b1indirecta
PyPIoptuna4.8.0indirecta
PyPIorjson3.11.7indirecta
PyPIorjson3.11.8indirecta
PyPIormsgpack1.12.2indirecta
PyPIoverrides7.7.0indirecta
PyPIpackaging26.0indirecta
PyPIpackaging24.2indirecta
PyPIpackaging25.0indirecta
PyPIparameterizedindirecta
PyPIparameterized0.9.0indirecta
PyPIparse1.21.1indirecta
PyPIparse1.22.0indirecta
PyPIparse-type0.6.6indirecta
PyPIparso0.8.6indirecta
PyPIpathable0.4.4indirecta
PyPIpathable0.5.0indirecta
PyPIpathspec0.12.1indirecta
PyPIpdfminer-six20251230indirecta
PyPIpdfplumber0.11.9indirecta
PyPIpexpect4.9.0indirecta
PyPIpillow12.2.0indirecta
PyPIpillow12.1.1indirecta
PyPIplatformdirs4.3.8indirecta
PyPIplatformdirs4.9.4indirecta
PyPIpluggy1.6.0indirecta
PyPIportkey-ai2.2.0indirecta
PyPIprance25.4.8.0indirecta
PyPIpre-commitindirecta
PyPIpre-commit4.2.0indirecta
PyPIprompt-toolkit3.0.52indirecta
PyPIpropcache0.4.1indirecta
PyPIpropcache0.3.2indirecta
PyPIprotobuf6.33.6indirecta
PyPIprotobuf5.29.6indirecta
PyPIptyprocess0.7.0indirecta
PyPIpure-eval0.2.3indirecta
PyPIpy-key-value-aio0.4.4indirecta
PyPIpyasn10.6.3indirecta
PyPIpyasn1-modules0.4.2indirecta
PyPIpybars40.9.13indirecta
PyPIpybase641.4.3indirecta
PyPIpycparser3.0indirecta
PyPIpycparser2.22indirecta
PyPIpydantic2.12.5indirecta
PyPIpydantic2.11.10indirecta
PyPIpydanticindirecta
PyPIpydantic2.11.7indirecta
PyPIpydantic-ai1.102.0indirecta
PyPIpydantic-ai-slim1.102.0indirecta
PyPIpydantic-core2.41.5indirecta
PyPIpydantic-core2.33.2indirecta
PyPIpydantic-evals1.102.0indirecta
PyPIpydantic-graph1.102.0indirecta
PyPIpydantic-handlebars0.1.0indirecta
PyPIpydantic-settings2.13.1indirecta
PyPIpydantic-settings2.10.1indirecta
PyPIpyee13.0.1indirecta
PyPIpygments2.20.0indirecta
PyPIpygments2.19.2indirecta
PyPIpyjwt2.12.1indirecta
PyPIpyjwt2.13.0indirecta
PyPIpylibsrtp1.0.0indirecta
PyPIpymeta30.5.1indirecta
PyPIpyopenssl26.0.0indirecta
PyPIpypdfium25.6.0indirecta
PyPIpyperclip1.11.0indirecta
PyPIpypika0.51.1indirecta
PyPIpyproject-hooks1.2.0indirecta
PyPIpyreadline33.5.4indirecta
PyPIpytestindirecta
PyPIpytest8.4.1indirecta
PyPIpytest8.4.2indirecta
PyPIpytest-asyncioindirecta
PyPIpytest-asyncio1.0.0indirecta
PyPIpytest-asyncio1.2.0indirecta
PyPIpytest-bddindirecta
PyPIpytest-bdd8.1.0indirecta
PyPIpytest-django4.11.1indirecta
PyPIpytest-timeoutindirecta
PyPIpytest-timeout2.4.0indirecta
PyPIpython-dateutilindirecta
PyPIpython-dateutil2.9.0.post0indirecta
PyPIpython-dotenv1.2.2indirecta
PyPIpython-dotenv1.0.1indirecta
PyPIpython-dotenv1.1.1indirecta
PyPIpython-multipart0.0.28indirecta
PyPIpython-multipart0.0.27indirecta
PyPIpython-multipart0.0.32indirecta
PyPIpython-multipart0.0.22indirecta
PyPIpyvis0.3.2indirecta
PyPIpywin32311indirecta
PyPIpywin32-ctypes0.2.3indirecta
PyPIpyyaml6.0.3indirecta
PyPIpyyaml6.0.2indirecta
PyPIreadme-renderer44.0indirecta
PyPIreferencing0.36.2indirecta
PyPIreferencing0.37.0indirecta
PyPIregex2026.2.28indirecta
PyPIregex2026.1.15indirecta
PyPIregex2024.11.6indirecta
PyPIregex2026.3.32indirecta
PyPIrequests-oauthlib2.0.0indirecta
PyPIrequests-toolbelt1.0.0indirecta
PyPIrfc3339-validator0.1.4indirecta
PyPIrfc39862.0.0indirecta
PyPIrich14.3.3indirecta
PyPIrich14.0.0indirecta
PyPIrich-rst2.0.1indirecta
PyPIrich-rst1.3.2indirecta
PyPIrpds-py0.30.0indirecta
PyPIruamel-yaml0.19.1indirecta
PyPIruffindirecta
PyPIruff0.12.2indirecta
PyPIs3transfer0.16.0indirecta
PyPIscipy1.15.3indirecta
PyPIsecretstorage3.3.3indirecta
PyPIsecretstorage3.5.0indirecta
PyPIsemantic-kernel1.42.0indirecta
PyPIsetuptoolsindirecta
PyPIsetuptools80.9.0indirecta
PyPIsetuptools82.0.1indirecta
PyPIshellingham1.5.4indirecta
PyPIsix1.17.0indirecta
PyPIsmolagents1.24.0indirecta
PyPIsniffio1.3.1indirecta
PyPIsqlalchemy2.0.48indirecta
PyPIsqlalchemy2.0.41indirecta
PyPIsqlparse0.5.3indirecta
PyPIsse-starlette3.4.4indirecta
PyPIsse-starlette3.3.3indirecta
PyPIstack-data0.6.3indirecta
PyPIstarlette1.0.1indirecta
PyPIstarlette1.0.0indirecta
PyPIstarlette0.46.2indirecta
PyPIsympy1.14.0indirecta
PyPItemporalio1.29.0indirecta
PyPItenacity9.1.4indirecta
PyPItenacity8.5.0indirecta
PyPItest-django50.1.0indirecta
PyPItiktokenindirecta
PyPItiktoken0.12.0indirecta
PyPItinytag2.2.1indirecta
PyPItokenizers0.22.2indirecta
PyPItomliindirecta
PyPItomli2.4.1indirecta
PyPItomli2.0.2indirecta
PyPItomli2.2.1indirecta
PyPItomli2.4.0indirecta
PyPItomli-windirecta
PyPItomli-w1.1.0indirecta
PyPItomli-w1.2.0indirecta
PyPItqdm4.67.3indirecta
PyPItqdm4.67.1indirecta
PyPItraitlets5.14.3indirecta
PyPItwineindirecta
PyPItwine6.1.0indirecta
PyPItyper0.24.1indirecta
PyPItyper0.23.1indirecta
PyPItypes-protobuf6.32.1.20260221indirecta
PyPItypes-pyyaml6.0.12.20250516indirecta
PyPItypes-requests2.33.0.20260327indirecta
PyPItypes-requestsindirecta
PyPItypes-requests2.32.4.20250611indirecta
PyPItypes-requests2.32.4.20260324indirecta
PyPItypes-setuptoolsindirecta
PyPItypes-setuptools80.9.0.20250529indirecta
PyPItyping-inspect0.9.0indirecta
PyPItyping-inspection0.4.2indirecta
PyPItyping-inspection0.4.1indirecta
PyPItzdataindirecta
PyPItzdata2025.2indirecta
PyPIuncalled-for0.2.0indirecta
PyPIurllib32.6.3indirecta
PyPIurllib32.5.0indirecta
PyPIuuid-utils0.14.1indirecta
PyPIuv0.11.15indirecta
PyPIuvicorn0.46.0indirecta
PyPIuvicorn0.42.0indirecta
PyPIuvicorn0.38.0indirecta
PyPIuvicorn0.35.0indirecta
PyPIuvloop0.22.1indirecta
PyPIuvloop0.21.0indirecta
PyPIvirtualenv20.31.2indirecta
PyPIwatchfiles1.1.1indirecta
PyPIwatchfiles1.1.0indirecta
PyPIwcwidth0.6.0indirecta
PyPIwebsocket-client1.9.0indirecta
PyPIwebsockets15.0.1indirecta
PyPIwebsockets16.0indirecta
PyPIwerkzeug3.1.1indirecta
PyPIwerkzeug3.1.8indirecta
PyPIwheelindirecta
PyPIwheel0.45.1indirecta
PyPIwrapt1.17.3indirecta
PyPIxai-sdk1.10.0indirecta
PyPIxxhash3.6.0indirecta
PyPIxxhash3.5.0indirecta
PyPIyarl1.23.0indirecta
PyPIyarl1.20.1indirecta
PyPIzipp3.23.0indirecta
PyPIzstandard0.23.0indirecta
PyPIzstandard0.25.0indirecta
Informe JSON sin procesar legible por máquina
{
  "data": {
    "repo": {
      "topics": [],
      "is_fork": false,
      "size_kb": 8806,
      "has_wiki": false,
      "homepage": "https://posthog.com/docs/libraries/python",
      "languages": {
        "Shell": 1856,
        "Python": 2361694,
        "Gherkin": 1464,
        "Makefile": 3390,
        "Dockerfile": 481
      },
      "pushed_at": "2026-07-14T22:03:53Z",
      "created_at": "2020-02-10T05:11:45Z",
      "owner_type": "Organization",
      "updated_at": "2026-07-14T22:01:57Z",
      "description": "Send usage data from your Python code to PostHog.",
      "is_archived": false,
      "is_disabled": false,
      "license_spdx": null,
      "default_branch": "main",
      "primary_language": "Python",
      "significant_languages": [
        "Python"
      ]
    },
    "owner": {
      "blog": "https://posthog.com",
      "name": "PostHog",
      "type": "Organization",
      "login": "PostHog",
      "company": null,
      "location": "San Francisco, California",
      "followers": 2027,
      "avatar_url": "https://avatars.githubusercontent.com/u/60330232?v=4",
      "created_at": "2020-01-26T23:21:40Z",
      "is_verified": null,
      "public_repos": 357,
      "account_age_days": 2361
    },
    "activity": {
      "releases_count": 100,
      "commits_last_year": 425,
      "latest_release_at": "2026-07-14T22:02:26Z",
      "latest_release_tag": "posthog-v7.22.4",
      "days_since_last_push": 0,
      "active_weeks_last_year": 50,
      "days_since_latest_release": 0,
      "mean_days_between_releases": 0.9
    },
    "community": {
      "has_readme": true,
      "has_license": true,
      "has_description": true,
      "has_contributing": true,
      "health_percentage": 87,
      "has_issue_template": false,
      "has_code_of_conduct": true,
      "has_pull_request_template": true
    },
    "ecosystem": {
      "packages": [
        {
          "name": "openfeature-provider-posthog",
          "exists": true,
          "license": "MIT",
          "keywords": [
            "Development Status :: 4 - Beta",
            "Intended Audience :: Developers",
            "License :: OSI Approved :: MIT License",
            "Operating System :: OS Independent",
            "Programming Language :: Python",
            "Programming Language :: Python :: 3.10",
            "Programming Language :: Python :: 3.11",
            "Programming Language :: Python :: 3.12",
            "Programming Language :: Python :: 3.13",
            "Programming Language :: Python :: 3.14"
          ],
          "ecosystem": "pypi",
          "matches_repo": true,
          "registry_url": "https://pypi.org/project/openfeature-provider-posthog/",
          "is_deprecated": false,
          "latest_version": "0.1.9",
          "repository_url": "https://github.com/posthog/posthog-python",
          "versions_count": 9,
          "total_downloads": null,
          "dependents_count": null,
          "deprecation_note": null,
          "maintainers_count": null,
          "monthly_downloads": 1014,
          "first_published_at": "2026-06-30T22:00:10.497620Z",
          "latest_published_at": "2026-07-14T22:03:51.450458Z",
          "latest_version_yanked": null,
          "days_since_latest_publish": 0
        },
        {
          "name": "posthog",
          "exists": true,
          "license": "MIT",
          "keywords": [
            "Development Status :: 5 - Production/Stable",
            "Intended Audience :: Developers",
            "License :: OSI Approved :: MIT License",
            "Operating System :: OS Independent",
            "Programming Language :: Python",
            "Programming Language :: Python :: 3.10",
            "Programming Language :: Python :: 3.11",
            "Programming Language :: Python :: 3.12",
            "Programming Language :: Python :: 3.13",
            "Programming Language :: Python :: 3.14"
          ],
          "ecosystem": "pypi",
          "matches_repo": true,
          "registry_url": "https://pypi.org/project/posthog/",
          "is_deprecated": false,
          "latest_version": "7.22.4",
          "repository_url": "https://github.com/posthog/posthog-python",
          "versions_count": 230,
          "total_downloads": null,
          "dependents_count": null,
          "deprecation_note": null,
          "maintainers_count": null,
          "monthly_downloads": 48249465,
          "first_published_at": "2020-02-10T05:10:55.639248Z",
          "latest_published_at": "2026-07-14T22:02:23.516169Z",
          "latest_version_yanked": null,
          "days_since_latest_publish": 0
        }
      ]
    },
    "popularity": {
      "forks": 72,
      "stars": 59,
      "watchers": 7,
      "open_issues_and_prs": 10
    },
    "ai_readiness": {
      "has_nix": false,
      "example_dirs": [
        "examples"
      ],
      "has_llms_txt": false,
      "has_dockerfile": true,
      "has_mcp_signal": false,
      "bootstrap_files": [
        "Makefile"
      ],
      "api_schema_files": [],
      "has_devcontainer": false,
      "typecheck_configs": [
        "mypy.ini",
        "openfeature-provider/openfeature/contrib/provider/posthog/py.typed",
        "posthog/py.typed"
      ],
      "largest_source_bytes": 290382,
      "source_files_sampled": 226,
      "oversized_source_files": 5,
      "agent_instruction_files": [
        "AGENTS.md"
      ],
      "agent_instruction_max_bytes": 5396
    },
    "dependencies": {
      "manifests": [
        "openfeature-provider/pyproject.toml",
        "pyproject.toml",
        "sdk_compliance_adapter/requirements.txt",
        "setup.py"
      ],
      "ecosystems": [
        "pypi"
      ],
      "dependencies": [
        {
          "name": "posthog",
          "manifest": "openfeature-provider/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=7.0.0,<8.0.0"
        },
        {
          "name": "openfeature-sdk",
          "manifest": "openfeature-provider/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=0.8.0"
        },
        {
          "name": "requests",
          "manifest": "pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=2.7,<3.0"
        },
        {
          "name": "backoff",
          "manifest": "pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=1.10.0"
        },
        {
          "name": "distro",
          "manifest": "pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=1.5.0"
        },
        {
          "name": "typing-extensions",
          "manifest": "pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=4.2.0"
        }
      ],
      "all_dependencies": {
        "error": null,
        "source": "github-sbom",
        "packages": [
          {
            "name": "backoff",
            "direct": true,
            "version": "2.2.1",
            "ecosystem": "pypi"
          },
          {
            "name": "distro",
            "direct": true,
            "version": "1.9.0",
            "ecosystem": "pypi"
          },
          {
            "name": "openfeature-sdk",
            "direct": true,
            "version": "0.10.0",
            "ecosystem": "pypi"
          },
          {
            "name": "openfeature-sdk",
            "direct": true,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "posthog",
            "direct": true,
            "version": "7.15.0",
            "ecosystem": "pypi"
          },
          {
            "name": "posthog",
            "direct": true,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "posthog",
            "direct": true,
            "version": "7.17.0",
            "ecosystem": "pypi"
          },
          {
            "name": "posthog",
            "direct": true,
            "version": "7.15.2",
            "ecosystem": "pypi"
          },
          {
            "name": "posthog",
            "direct": true,
            "version": "7.15.1",
            "ecosystem": "pypi"
          },
          {
            "name": "posthog",
            "direct": true,
            "version": "7.9.12",
            "ecosystem": "pypi"
          },
          {
            "name": "posthog",
            "direct": true,
            "version": "7.22.4",
            "ecosystem": "pypi"
          },
          {
            "name": "posthog",
            "direct": true,
            "version": "7.14.0",
            "ecosystem": "pypi"
          },
          {
            "name": "posthog",
            "direct": true,
            "version": "7.22.2",
            "ecosystem": "pypi"
          },
          {
            "name": "posthog",
            "direct": true,
            "version": "7.21.1",
            "ecosystem": "pypi"
          },
          {
            "name": "posthog",
            "direct": true,
            "version": "7.15.3",
            "ecosystem": "pypi"
          },
          {
            "name": "requests",
            "direct": true,
            "version": "2.33.1",
            "ecosystem": "pypi"
          },
          {
            "name": "requests",
            "direct": true,
            "version": "2.33.0",
            "ecosystem": "pypi"
          },
          {
            "name": "requests",
            "direct": true,
            "version": "2.32.5",
            "ecosystem": "pypi"
          },
          {
            "name": "requests",
            "direct": true,
            "version": "2.32.4",
            "ecosystem": "pypi"
          },
          {
            "name": "typing-extensions",
            "direct": true,
            "version": "4.15.0",
            "ecosystem": "pypi"
          },
          {
            "name": "typing-extensions",
            "direct": true,
            "version": "4.14.1",
            "ecosystem": "pypi"
          },
          {
            "name": "typing-extensions",
            "direct": true,
            "version": "4.14.0",
            "ecosystem": "pypi"
          },
          {
            "name": "ag-ui-protocol",
            "direct": false,
            "version": "0.1.14",
            "ecosystem": "pypi"
          },
          {
            "name": "aiofile",
            "direct": false,
            "version": "3.9.0",
            "ecosystem": "pypi"
          },
          {
            "name": "aiofiles",
            "direct": false,
            "version": "25.1.0",
            "ecosystem": "pypi"
          },
          {
            "name": "aiohappyeyeballs",
            "direct": false,
            "version": "2.6.1",
            "ecosystem": "pypi"
          },
          {
            "name": "aiohttp",
            "direct": false,
            "version": "3.13.5",
            "ecosystem": "pypi"
          },
          {
            "name": "aiohttp",
            "direct": false,
            "version": "3.12.13",
            "ecosystem": "pypi"
          },
          {
            "name": "aiohttp",
            "direct": false,
            "version": "3.13.3",
            "ecosystem": "pypi"
          },
          {
            "name": "aioice",
            "direct": false,
            "version": "0.10.2",
            "ecosystem": "pypi"
          },
          {
            "name": "aiortc",
            "direct": false,
            "version": "1.14.0",
            "ecosystem": "pypi"
          },
          {
            "name": "aiosignal",
            "direct": false,
            "version": "1.4.0",
            "ecosystem": "pypi"
          },
          {
            "name": "aiosqlite",
            "direct": false,
            "version": "0.22.1",
            "ecosystem": "pypi"
          },
          {
            "name": "alembic",
            "direct": false,
            "version": "1.18.4",
            "ecosystem": "pypi"
          },
          {
            "name": "annotated-doc",
            "direct": false,
            "version": "0.0.4",
            "ecosystem": "pypi"
          },
          {
            "name": "annotated-types",
            "direct": false,
            "version": "0.7.0",
            "ecosystem": "pypi"
          },
          {
            "name": "anthropic",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "anthropic",
            "direct": false,
            "version": "0.87.0",
            "ecosystem": "pypi"
          },
          {
            "name": "anthropic",
            "direct": false,
            "version": "0.116.0",
            "ecosystem": "pypi"
          },
          {
            "name": "anthropic",
            "direct": false,
            "version": "0.111.0",
            "ecosystem": "pypi"
          },
          {
            "name": "anyio",
            "direct": false,
            "version": "4.13.0",
            "ecosystem": "pypi"
          },
          {
            "name": "anyio",
            "direct": false,
            "version": "4.9.0",
            "ecosystem": "pypi"
          },
          {
            "name": "anyio",
            "direct": false,
            "version": "4.11.0",
            "ecosystem": "pypi"
          },
          {
            "name": "appdirs",
            "direct": false,
            "version": "1.4.4",
            "ecosystem": "pypi"
          },
          {
            "name": "argcomplete",
            "direct": false,
            "version": "3.6.3",
            "ecosystem": "pypi"
          },
          {
            "name": "asgiref",
            "direct": false,
            "version": "3.9.0",
            "ecosystem": "pypi"
          },
          {
            "name": "asgiref",
            "direct": false,
            "version": "3.11.1",
            "ecosystem": "pypi"
          },
          {
            "name": "asgiref",
            "direct": false,
            "version": "3.10.0",
            "ecosystem": "pypi"
          },
          {
            "name": "asttokens",
            "direct": false,
            "version": "3.0.1",
            "ecosystem": "pypi"
          },
          {
            "name": "async-timeout",
            "direct": false,
            "version": "5.0.1",
            "ecosystem": "pypi"
          },
          {
            "name": "async-timeout",
            "direct": false,
            "version": "4.0.3",
            "ecosystem": "pypi"
          },
          {
            "name": "asyncer",
            "direct": false,
            "version": "0.0.8",
            "ecosystem": "pypi"
          },
          {
            "name": "attrs",
            "direct": false,
            "version": "26.1.0",
            "ecosystem": "pypi"
          },
          {
            "name": "attrs",
            "direct": false,
            "version": "25.3.0",
            "ecosystem": "pypi"
          },
          {
            "name": "auth0-python",
            "direct": false,
            "version": "5.3.0",
            "ecosystem": "pypi"
          },
          {
            "name": "authlib",
            "direct": false,
            "version": "1.7.2",
            "ecosystem": "pypi"
          },
          {
            "name": "autogen-agentchat",
            "direct": false,
            "version": "0.7.5",
            "ecosystem": "pypi"
          },
          {
            "name": "autogen-core",
            "direct": false,
            "version": "0.7.5",
            "ecosystem": "pypi"
          },
          {
            "name": "autogen-ext",
            "direct": false,
            "version": "0.7.5",
            "ecosystem": "pypi"
          },
          {
            "name": "autogen-ext",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "av",
            "direct": false,
            "version": "16.1.0",
            "ecosystem": "pypi"
          },
          {
            "name": "azure-ai-agents",
            "direct": false,
            "version": "1.2.0b6",
            "ecosystem": "pypi"
          },
          {
            "name": "azure-ai-projects",
            "direct": false,
            "version": "1.0.0",
            "ecosystem": "pypi"
          },
          {
            "name": "azure-core",
            "direct": false,
            "version": "1.39.0",
            "ecosystem": "pypi"
          },
          {
            "name": "azure-identity",
            "direct": false,
            "version": "1.25.3",
            "ecosystem": "pypi"
          },
          {
            "name": "azure-storage-blob",
            "direct": false,
            "version": "12.28.0",
            "ecosystem": "pypi"
          },
          {
            "name": "backports-tarfile",
            "direct": false,
            "version": "1.2.0",
            "ecosystem": "pypi"
          },
          {
            "name": "banks",
            "direct": false,
            "version": "2.4.2",
            "ecosystem": "pypi"
          },
          {
            "name": "bcrypt",
            "direct": false,
            "version": "5.0.0",
            "ecosystem": "pypi"
          },
          {
            "name": "beartype",
            "direct": false,
            "version": "0.22.9",
            "ecosystem": "pypi"
          },
          {
            "name": "blinker",
            "direct": false,
            "version": "1.9.0",
            "ecosystem": "pypi"
          },
          {
            "name": "boto3",
            "direct": false,
            "version": "1.42.76",
            "ecosystem": "pypi"
          },
          {
            "name": "boto3",
            "direct": false,
            "version": "1.42.75",
            "ecosystem": "pypi"
          },
          {
            "name": "botocore",
            "direct": false,
            "version": "1.42.76",
            "ecosystem": "pypi"
          },
          {
            "name": "botocore",
            "direct": false,
            "version": "1.42.75",
            "ecosystem": "pypi"
          },
          {
            "name": "build",
            "direct": false,
            "version": "1.4.2",
            "ecosystem": "pypi"
          },
          {
            "name": "cached-property",
            "direct": false,
            "version": "2.0.1",
            "ecosystem": "pypi"
          },
          {
            "name": "cachetools",
            "direct": false,
            "version": "7.0.5",
            "ecosystem": "pypi"
          },
          {
            "name": "caio",
            "direct": false,
            "version": "0.9.25",
            "ecosystem": "pypi"
          },
          {
            "name": "certifi",
            "direct": false,
            "version": "2026.2.25",
            "ecosystem": "pypi"
          },
          {
            "name": "certifi",
            "direct": false,
            "version": "2025.6.15",
            "ecosystem": "pypi"
          },
          {
            "name": "certifi",
            "direct": false,
            "version": "2025.10.5",
            "ecosystem": "pypi"
          },
          {
            "name": "cffi",
            "direct": false,
            "version": "2.0.0",
            "ecosystem": "pypi"
          },
          {
            "name": "cffi",
            "direct": false,
            "version": "1.17.1",
            "ecosystem": "pypi"
          },
          {
            "name": "cfgv",
            "direct": false,
            "version": "3.4.0",
            "ecosystem": "pypi"
          },
          {
            "name": "chardet",
            "direct": false,
            "version": "7.4.0.post2",
            "ecosystem": "pypi"
          },
          {
            "name": "charset-normalizer",
            "direct": false,
            "version": "3.4.6",
            "ecosystem": "pypi"
          },
          {
            "name": "charset-normalizer",
            "direct": false,
            "version": "3.4.2",
            "ecosystem": "pypi"
          },
          {
            "name": "charset-normalizer",
            "direct": false,
            "version": "3.4.4",
            "ecosystem": "pypi"
          },
          {
            "name": "charset-normalizer",
            "direct": false,
            "version": "3.4.7",
            "ecosystem": "pypi"
          },
          {
            "name": "chromadb",
            "direct": false,
            "version": "1.5.5",
            "ecosystem": "pypi"
          },
          {
            "name": "claude-agent-sdk",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "claude-agent-sdk",
            "direct": false,
            "version": "0.1.50",
            "ecosystem": "pypi"
          },
          {
            "name": "click",
            "direct": false,
            "version": "8.3.1",
            "ecosystem": "pypi"
          },
          {
            "name": "click",
            "direct": false,
            "version": "8.3.3",
            "ecosystem": "pypi"
          },
          {
            "name": "click",
            "direct": false,
            "version": "8.1.8",
            "ecosystem": "pypi"
          },
          {
            "name": "click",
            "direct": false,
            "version": "8.3.0",
            "ecosystem": "pypi"
          },
          {
            "name": "click",
            "direct": false,
            "version": "8.2.1",
            "ecosystem": "pypi"
          },
          {
            "name": "cloudevents",
            "direct": false,
            "version": "1.12.1",
            "ecosystem": "pypi"
          },
          {
            "name": "cloudpickle",
            "direct": false,
            "version": "3.1.2",
            "ecosystem": "pypi"
          },
          {
            "name": "cohere",
            "direct": false,
            "version": "5.20.7",
            "ecosystem": "pypi"
          },
          {
            "name": "colorama",
            "direct": false,
            "version": "0.4.6",
            "ecosystem": "pypi"
          },
          {
            "name": "coloredlogs",
            "direct": false,
            "version": "15.0.1",
            "ecosystem": "pypi"
          },
          {
            "name": "colorlog",
            "direct": false,
            "version": "6.10.1",
            "ecosystem": "pypi"
          },
          {
            "name": "coverage",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "coverage",
            "direct": false,
            "version": "7.9.2",
            "ecosystem": "pypi"
          },
          {
            "name": "crewai",
            "direct": false,
            "version": "0.95.0",
            "ecosystem": "pypi"
          },
          {
            "name": "cryptography",
            "direct": false,
            "version": "46.0.6",
            "ecosystem": "pypi"
          },
          {
            "name": "cryptography",
            "direct": false,
            "version": "45.0.5",
            "ecosystem": "pypi"
          },
          {
            "name": "cryptography",
            "direct": false,
            "version": "46.0.5",
            "ecosystem": "pypi"
          },
          {
            "name": "cyclopts",
            "direct": false,
            "version": "4.18.0",
            "ecosystem": "pypi"
          },
          {
            "name": "cyclopts",
            "direct": false,
            "version": "4.10.1",
            "ecosystem": "pypi"
          },
          {
            "name": "dataclasses-json",
            "direct": false,
            "version": "0.6.7",
            "ecosystem": "pypi"
          },
          {
            "name": "decorator",
            "direct": false,
            "version": "5.2.1",
            "ecosystem": "pypi"
          },
          {
            "name": "defusedxml",
            "direct": false,
            "version": "0.7.1",
            "ecosystem": "pypi"
          },
          {
            "name": "deprecated",
            "direct": false,
            "version": "1.3.1",
            "ecosystem": "pypi"
          },
          {
            "name": "deprecation",
            "direct": false,
            "version": "2.1.0",
            "ecosystem": "pypi"
          },
          {
            "name": "dirtyjson",
            "direct": false,
            "version": "1.0.8",
            "ecosystem": "pypi"
          },
          {
            "name": "diskcache",
            "direct": false,
            "version": "5.6.3",
            "ecosystem": "pypi"
          },
          {
            "name": "distlib",
            "direct": false,
            "version": "0.3.9",
            "ecosystem": "pypi"
          },
          {
            "name": "django",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "django",
            "direct": false,
            "version": "5.2.16",
            "ecosystem": "pypi"
          },
          {
            "name": "django",
            "direct": false,
            "version": "5.2.15",
            "ecosystem": "pypi"
          },
          {
            "name": "django-stubs",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "django-stubs",
            "direct": false,
            "version": "5.2.1",
            "ecosystem": "pypi"
          },
          {
            "name": "django-stubs-ext",
            "direct": false,
            "version": "5.2.1",
            "ecosystem": "pypi"
          },
          {
            "name": "dnspython",
            "direct": false,
            "version": "2.8.0",
            "ecosystem": "pypi"
          },
          {
            "name": "docstring-parser",
            "direct": false,
            "version": "0.17.0",
            "ecosystem": "pypi"
          },
          {
            "name": "docutils",
            "direct": false,
            "version": "0.21.2",
            "ecosystem": "pypi"
          },
          {
            "name": "docutils",
            "direct": false,
            "version": "0.22.4",
            "ecosystem": "pypi"
          },
          {
            "name": "dspy",
            "direct": false,
            "version": "3.1.3",
            "ecosystem": "pypi"
          },
          {
            "name": "durationpy",
            "direct": false,
            "version": "0.10",
            "ecosystem": "pypi"
          },
          {
            "name": "email-validator",
            "direct": false,
            "version": "2.3.0",
            "ecosystem": "pypi"
          },
          {
            "name": "et-xmlfile",
            "direct": false,
            "version": "2.0.0",
            "ecosystem": "pypi"
          },
          {
            "name": "eval-type-backport",
            "direct": false,
            "version": "0.3.1",
            "ecosystem": "pypi"
          },
          {
            "name": "example-ai-anthropic",
            "direct": false,
            "version": "0.1.0",
            "ecosystem": "pypi"
          },
          {
            "name": "example-ai-autogen",
            "direct": false,
            "version": "0.1.0",
            "ecosystem": "pypi"
          },
          {
            "name": "example-ai-aws-bedrock",
            "direct": false,
            "version": "0.1.0",
            "ecosystem": "pypi"
          },
          {
            "name": "example-ai-azure-openai",
            "direct": false,
            "version": "0.1.0",
            "ecosystem": "pypi"
          },
          {
            "name": "example-ai-cerebras",
            "direct": false,
            "version": "0.1.0",
            "ecosystem": "pypi"
          },
          {
            "name": "example-ai-cloudflare-ai-gateway",
            "direct": false,
            "version": "0.1.0",
            "ecosystem": "pypi"
          },
          {
            "name": "example-ai-cohere",
            "direct": false,
            "version": "0.1.0",
            "ecosystem": "pypi"
          },
          {
            "name": "example-ai-crewai",
            "direct": false,
            "version": "0.1.0",
            "ecosystem": "pypi"
          },
          {
            "name": "example-ai-dedalus",
            "direct": false,
            "version": "0.1.0",
            "ecosystem": "pypi"
          },
          {
            "name": "example-ai-deepseek",
            "direct": false,
            "version": "0.1.0",
            "ecosystem": "pypi"
          },
          {
            "name": "example-ai-dspy",
            "direct": false,
            "version": "0.1.0",
            "ecosystem": "pypi"
          },
          {
            "name": "example-ai-fireworks-ai",
            "direct": false,
            "version": "0.1.0",
            "ecosystem": "pypi"
          },
          {
            "name": "example-ai-gemini",
            "direct": false,
            "version": "0.1.0",
            "ecosystem": "pypi"
          },
          {
            "name": "example-ai-groq",
            "direct": false,
            "version": "0.1.0",
            "ecosystem": "pypi"
          },
          {
            "name": "example-ai-helicone",
            "direct": false,
            "version": "0.1.0",
            "ecosystem": "pypi"
          },
          {
            "name": "example-ai-hugging-face",
            "direct": false,
            "version": "0.1.0",
            "ecosystem": "pypi"
          },
          {
            "name": "example-ai-instructor",
            "direct": false,
            "version": "0.1.0",
            "ecosystem": "pypi"
          },
          {
            "name": "example-ai-langchain",
            "direct": false,
            "version": "0.1.0",
            "ecosystem": "pypi"
          },
          {
            "name": "example-ai-langgraph",
            "direct": false,
            "version": "0.1.0",
            "ecosystem": "pypi"
          },
          {
            "name": "example-ai-litellm",
            "direct": false,
            "version": "0.1.0",
            "ecosystem": "pypi"
          },
          {
            "name": "example-ai-llamaindex",
            "direct": false,
            "version": "0.1.0",
            "ecosystem": "pypi"
          },
          {
            "name": "example-ai-mirascope",
            "direct": false,
            "version": "0.1.0",
            "ecosystem": "pypi"
          },
          {
            "name": "example-ai-ollama",
            "direct": false,
            "version": "0.1.0",
            "ecosystem": "pypi"
          },
          {
            "name": "example-ai-openai",
            "direct": false,
            "version": "0.1.0",
            "ecosystem": "pypi"
          },
          {
            "name": "example-ai-openai-agents",
            "direct": false,
            "version": "0.1.0",
            "ecosystem": "pypi"
          },
          {
            "name": "example-ai-openrouter",
            "direct": false,
            "version": "0.1.0",
            "ecosystem": "pypi"
          },
          {
            "name": "example-ai-perplexity",
            "direct": false,
            "version": "0.1.0",
            "ecosystem": "pypi"
          },
          {
            "name": "example-ai-portkey",
            "direct": false,
            "version": "0.1.0",
            "ecosystem": "pypi"
          },
          {
            "name": "example-ai-pydantic-ai",
            "direct": false,
            "version": "0.1.0",
            "ecosystem": "pypi"
          },
          {
            "name": "example-ai-semantic-kernel",
            "direct": false,
            "version": "0.1.0",
            "ecosystem": "pypi"
          },
          {
            "name": "example-ai-smolagents",
            "direct": false,
            "version": "0.1.0",
            "ecosystem": "pypi"
          },
          {
            "name": "example-ai-together-ai",
            "direct": false,
            "version": "0.1.0",
            "ecosystem": "pypi"
          },
          {
            "name": "exceptiongroup",
            "direct": false,
            "version": "1.3.1",
            "ecosystem": "pypi"
          },
          {
            "name": "exceptiongroup",
            "direct": false,
            "version": "1.3.0",
            "ecosystem": "pypi"
          },
          {
            "name": "executing",
            "direct": false,
            "version": "2.2.1",
            "ecosystem": "pypi"
          },
          {
            "name": "fastapi",
            "direct": false,
            "version": "0.115.14",
            "ecosystem": "pypi"
          },
          {
            "name": "fastavro",
            "direct": false,
            "version": "1.12.1",
            "ecosystem": "pypi"
          },
          {
            "name": "fastmcp",
            "direct": false,
            "version": "2.12.4",
            "ecosystem": "pypi"
          },
          {
            "name": "fastmcp",
            "direct": false,
            "version": "3.4.2",
            "ecosystem": "pypi"
          },
          {
            "name": "fastmcp-slim",
            "direct": false,
            "version": "3.4.2",
            "ecosystem": "pypi"
          },
          {
            "name": "fastuuid",
            "direct": false,
            "version": "0.14.0",
            "ecosystem": "pypi"
          },
          {
            "name": "filelock",
            "direct": false,
            "version": "3.25.2",
            "ecosystem": "pypi"
          },
          {
            "name": "filelock",
            "direct": false,
            "version": "3.18.0",
            "ecosystem": "pypi"
          },
          {
            "name": "filetype",
            "direct": false,
            "version": "1.2.0",
            "ecosystem": "pypi"
          },
          {
            "name": "flask",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "flatbuffers",
            "direct": false,
            "version": "25.12.19",
            "ecosystem": "pypi"
          },
          {
            "name": "freezegun",
            "direct": false,
            "version": "1.5.1",
            "ecosystem": "pypi"
          },
          {
            "name": "frozenlist",
            "direct": false,
            "version": "1.8.0",
            "ecosystem": "pypi"
          },
          {
            "name": "frozenlist",
            "direct": false,
            "version": "1.7.0",
            "ecosystem": "pypi"
          },
          {
            "name": "fsspec",
            "direct": false,
            "version": "2026.2.0",
            "ecosystem": "pypi"
          },
          {
            "name": "fsspec",
            "direct": false,
            "version": "2026.3.0",
            "ecosystem": "pypi"
          },
          {
            "name": "genai-prices",
            "direct": false,
            "version": "0.0.56",
            "ecosystem": "pypi"
          },
          {
            "name": "gepa",
            "direct": false,
            "version": "0.0.26",
            "ecosystem": "pypi"
          },
          {
            "name": "gherkin-official",
            "direct": false,
            "version": "29.0.0",
            "ecosystem": "pypi"
          },
          {
            "name": "google-auth",
            "direct": false,
            "version": "2.49.1",
            "ecosystem": "pypi"
          },
          {
            "name": "google-auth",
            "direct": false,
            "version": "2.53.0",
            "ecosystem": "pypi"
          },
          {
            "name": "google-crc32c",
            "direct": false,
            "version": "1.8.0",
            "ecosystem": "pypi"
          },
          {
            "name": "google-genai",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "google-genai",
            "direct": false,
            "version": "1.69.0",
            "ecosystem": "pypi"
          },
          {
            "name": "google-genai",
            "direct": false,
            "version": "2.10.0",
            "ecosystem": "pypi"
          },
          {
            "name": "google-genai",
            "direct": false,
            "version": "2.9.0",
            "ecosystem": "pypi"
          },
          {
            "name": "googleapis-common-protos",
            "direct": false,
            "version": "1.73.1",
            "ecosystem": "pypi"
          },
          {
            "name": "googleapis-common-protos",
            "direct": false,
            "version": "1.74.0",
            "ecosystem": "pypi"
          },
          {
            "name": "googleapis-common-protos",
            "direct": false,
            "version": "1.73.0",
            "ecosystem": "pypi"
          },
          {
            "name": "greenlet",
            "direct": false,
            "version": "3.3.2",
            "ecosystem": "pypi"
          },
          {
            "name": "greenlet",
            "direct": false,
            "version": "3.2.3",
            "ecosystem": "pypi"
          },
          {
            "name": "griffe",
            "direct": false,
            "version": "2.0.2",
            "ecosystem": "pypi"
          },
          {
            "name": "griffe",
            "direct": false,
            "version": "1.15.0",
            "ecosystem": "pypi"
          },
          {
            "name": "griffecli",
            "direct": false,
            "version": "2.0.2",
            "ecosystem": "pypi"
          },
          {
            "name": "griffelib",
            "direct": false,
            "version": "2.0.2",
            "ecosystem": "pypi"
          },
          {
            "name": "griffelib",
            "direct": false,
            "version": "2.0.1",
            "ecosystem": "pypi"
          },
          {
            "name": "groq",
            "direct": false,
            "version": "1.1.1",
            "ecosystem": "pypi"
          },
          {
            "name": "grpcio",
            "direct": false,
            "version": "1.80.0",
            "ecosystem": "pypi"
          },
          {
            "name": "grpcio",
            "direct": false,
            "version": "1.78.0",
            "ecosystem": "pypi"
          },
          {
            "name": "h11",
            "direct": false,
            "version": "0.16.0",
            "ecosystem": "pypi"
          },
          {
            "name": "hf-xet",
            "direct": false,
            "version": "1.4.2",
            "ecosystem": "pypi"
          },
          {
            "name": "hf-xet",
            "direct": false,
            "version": "1.4.3",
            "ecosystem": "pypi"
          },
          {
            "name": "httpcore",
            "direct": false,
            "version": "1.0.9",
            "ecosystem": "pypi"
          },
          {
            "name": "httptools",
            "direct": false,
            "version": "0.7.1",
            "ecosystem": "pypi"
          },
          {
            "name": "httptools",
            "direct": false,
            "version": "0.6.4",
            "ecosystem": "pypi"
          },
          {
            "name": "httpx",
            "direct": false,
            "version": "0.28.1",
            "ecosystem": "pypi"
          },
          {
            "name": "httpx-sse",
            "direct": false,
            "version": "0.4.3",
            "ecosystem": "pypi"
          },
          {
            "name": "httpx-sse",
            "direct": false,
            "version": "0.4.1",
            "ecosystem": "pypi"
          },
          {
            "name": "huggingface-hub",
            "direct": false,
            "version": "1.8.0",
            "ecosystem": "pypi"
          },
          {
            "name": "huggingface-hub",
            "direct": false,
            "version": "1.7.2",
            "ecosystem": "pypi"
          },
          {
            "name": "huggingface-hub",
            "direct": false,
            "version": "0.36.2",
            "ecosystem": "pypi"
          },
          {
            "name": "humanfriendly",
            "direct": false,
            "version": "10.0",
            "ecosystem": "pypi"
          },
          {
            "name": "id",
            "direct": false,
            "version": "1.5.0",
            "ecosystem": "pypi"
          },
          {
            "name": "identify",
            "direct": false,
            "version": "2.6.12",
            "ecosystem": "pypi"
          },
          {
            "name": "idna",
            "direct": false,
            "version": "3.15",
            "ecosystem": "pypi"
          },
          {
            "name": "idna",
            "direct": false,
            "version": "3.11",
            "ecosystem": "pypi"
          },
          {
            "name": "idna",
            "direct": false,
            "version": "3.10",
            "ecosystem": "pypi"
          },
          {
            "name": "ifaddr",
            "direct": false,
            "version": "0.2.0",
            "ecosystem": "pypi"
          },
          {
            "name": "importlib-metadata",
            "direct": false,
            "version": "8.7.1",
            "ecosystem": "pypi"
          },
          {
            "name": "importlib-metadata",
            "direct": false,
            "version": "8.5.0",
            "ecosystem": "pypi"
          },
          {
            "name": "importlib-metadata",
            "direct": false,
            "version": "8.7.0",
            "ecosystem": "pypi"
          },
          {
            "name": "importlib-resources",
            "direct": false,
            "version": "6.5.2",
            "ecosystem": "pypi"
          },
          {
            "name": "inflection",
            "direct": false,
            "version": "0.5.1",
            "ecosystem": "pypi"
          },
          {
            "name": "iniconfig",
            "direct": false,
            "version": "2.1.0",
            "ecosystem": "pypi"
          },
          {
            "name": "iniconfig",
            "direct": false,
            "version": "2.3.0",
            "ecosystem": "pypi"
          },
          {
            "name": "instructor",
            "direct": false,
            "version": "1.14.5",
            "ecosystem": "pypi"
          },
          {
            "name": "ipython",
            "direct": false,
            "version": "9.10.1",
            "ecosystem": "pypi"
          },
          {
            "name": "ipython",
            "direct": false,
            "version": "8.39.0",
            "ecosystem": "pypi"
          },
          {
            "name": "ipython",
            "direct": false,
            "version": "9.12.0",
            "ecosystem": "pypi"
          },
          {
            "name": "ipython-pygments-lexers",
            "direct": false,
            "version": "1.1.1",
            "ecosystem": "pypi"
          },
          {
            "name": "isodate",
            "direct": false,
            "version": "0.7.2",
            "ecosystem": "pypi"
          },
          {
            "name": "jaraco-classes",
            "direct": false,
            "version": "3.4.0",
            "ecosystem": "pypi"
          },
          {
            "name": "jaraco-context",
            "direct": false,
            "version": "6.0.1",
            "ecosystem": "pypi"
          },
          {
            "name": "jaraco-context",
            "direct": false,
            "version": "6.1.2",
            "ecosystem": "pypi"
          },
          {
            "name": "jaraco-functools",
            "direct": false,
            "version": "4.2.1",
            "ecosystem": "pypi"
          },
          {
            "name": "jaraco-functools",
            "direct": false,
            "version": "4.4.0",
            "ecosystem": "pypi"
          },
          {
            "name": "jedi",
            "direct": false,
            "version": "0.19.2",
            "ecosystem": "pypi"
          },
          {
            "name": "jeepney",
            "direct": false,
            "version": "0.9.0",
            "ecosystem": "pypi"
          },
          {
            "name": "jinja2",
            "direct": false,
            "version": "3.1.6",
            "ecosystem": "pypi"
          },
          {
            "name": "jiter",
            "direct": false,
            "version": "0.13.0",
            "ecosystem": "pypi"
          },
          {
            "name": "jiter",
            "direct": false,
            "version": "0.11.1",
            "ecosystem": "pypi"
          },
          {
            "name": "jiter",
            "direct": false,
            "version": "0.10.0",
            "ecosystem": "pypi"
          },
          {
            "name": "jmespath",
            "direct": false,
            "version": "1.1.0",
            "ecosystem": "pypi"
          },
          {
            "name": "joblib",
            "direct": false,
            "version": "1.5.3",
            "ecosystem": "pypi"
          },
          {
            "name": "joserfc",
            "direct": false,
            "version": "1.7.1",
            "ecosystem": "pypi"
          },
          {
            "name": "json-repair",
            "direct": false,
            "version": "0.60.1",
            "ecosystem": "pypi"
          },
          {
            "name": "jsonpatch",
            "direct": false,
            "version": "1.33",
            "ecosystem": "pypi"
          },
          {
            "name": "jsonpath-python",
            "direct": false,
            "version": "1.1.5",
            "ecosystem": "pypi"
          },
          {
            "name": "jsonpickle",
            "direct": false,
            "version": "4.1.1",
            "ecosystem": "pypi"
          },
          {
            "name": "jsonpointer",
            "direct": false,
            "version": "3.0.0",
            "ecosystem": "pypi"
          },
          {
            "name": "jsonpointer",
            "direct": false,
            "version": "3.1.1",
            "ecosystem": "pypi"
          },
          {
            "name": "jsonref",
            "direct": false,
            "version": "1.1.0",
            "ecosystem": "pypi"
          },
          {
            "name": "jsonschema",
            "direct": false,
            "version": "4.26.0",
            "ecosystem": "pypi"
          },
          {
            "name": "jsonschema",
            "direct": false,
            "version": "4.23.0",
            "ecosystem": "pypi"
          },
          {
            "name": "jsonschema-path",
            "direct": false,
            "version": "0.3.4",
            "ecosystem": "pypi"
          },
          {
            "name": "jsonschema-path",
            "direct": false,
            "version": "0.4.6",
            "ecosystem": "pypi"
          },
          {
            "name": "jsonschema-path",
            "direct": false,
            "version": "0.4.5",
            "ecosystem": "pypi"
          },
          {
            "name": "jsonschema-specifications",
            "direct": false,
            "version": "2025.9.1",
            "ecosystem": "pypi"
          },
          {
            "name": "keyring",
            "direct": false,
            "version": "25.6.0",
            "ecosystem": "pypi"
          },
          {
            "name": "keyring",
            "direct": false,
            "version": "25.7.0",
            "ecosystem": "pypi"
          },
          {
            "name": "kubernetes",
            "direct": false,
            "version": "35.0.0",
            "ecosystem": "pypi"
          },
          {
            "name": "langchain",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "langchain",
            "direct": false,
            "version": "1.3.11",
            "ecosystem": "pypi"
          },
          {
            "name": "langchain",
            "direct": false,
            "version": "1.2.14",
            "ecosystem": "pypi"
          },
          {
            "name": "langchain-anthropic",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "langchain-anthropic",
            "direct": false,
            "version": "1.4.8",
            "ecosystem": "pypi"
          },
          {
            "name": "langchain-classic",
            "direct": false,
            "version": "1.0.7",
            "ecosystem": "pypi"
          },
          {
            "name": "langchain-community",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "langchain-community",
            "direct": false,
            "version": "0.4.2",
            "ecosystem": "pypi"
          },
          {
            "name": "langchain-core",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "langchain-core",
            "direct": false,
            "version": "1.4.8",
            "ecosystem": "pypi"
          },
          {
            "name": "langchain-core",
            "direct": false,
            "version": "1.2.23",
            "ecosystem": "pypi"
          },
          {
            "name": "langchain-openai",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "langchain-openai",
            "direct": false,
            "version": "1.3.3",
            "ecosystem": "pypi"
          },
          {
            "name": "langchain-openai",
            "direct": false,
            "version": "1.1.12",
            "ecosystem": "pypi"
          },
          {
            "name": "langchain-protocol",
            "direct": false,
            "version": "0.0.18",
            "ecosystem": "pypi"
          },
          {
            "name": "langchain-text-splitters",
            "direct": false,
            "version": "1.1.2",
            "ecosystem": "pypi"
          },
          {
            "name": "langgraph",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "langgraph",
            "direct": false,
            "version": "1.2.7",
            "ecosystem": "pypi"
          },
          {
            "name": "langgraph",
            "direct": false,
            "version": "1.1.4",
            "ecosystem": "pypi"
          },
          {
            "name": "langgraph-checkpoint",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "langgraph-checkpoint",
            "direct": false,
            "version": "4.1.1",
            "ecosystem": "pypi"
          },
          {
            "name": "langgraph-prebuilt",
            "direct": false,
            "version": "1.1.0",
            "ecosystem": "pypi"
          },
          {
            "name": "langgraph-prebuilt",
            "direct": false,
            "version": "1.0.8",
            "ecosystem": "pypi"
          },
          {
            "name": "langgraph-sdk",
            "direct": false,
            "version": "0.4.2",
            "ecosystem": "pypi"
          },
          {
            "name": "langgraph-sdk",
            "direct": false,
            "version": "0.3.15",
            "ecosystem": "pypi"
          },
          {
            "name": "langsmith",
            "direct": false,
            "version": "0.4.4",
            "ecosystem": "pypi"
          },
          {
            "name": "langsmith",
            "direct": false,
            "version": "0.7.23",
            "ecosystem": "pypi"
          },
          {
            "name": "lazy-object-proxy",
            "direct": false,
            "version": "1.12.0",
            "ecosystem": "pypi"
          },
          {
            "name": "litellm",
            "direct": false,
            "version": "1.84.0",
            "ecosystem": "pypi"
          },
          {
            "name": "llama-index",
            "direct": false,
            "version": "0.14.19",
            "ecosystem": "pypi"
          },
          {
            "name": "llama-index-cli",
            "direct": false,
            "version": "0.5.6",
            "ecosystem": "pypi"
          },
          {
            "name": "llama-index-core",
            "direct": false,
            "version": "0.14.19",
            "ecosystem": "pypi"
          },
          {
            "name": "llama-index-embeddings-openai",
            "direct": false,
            "version": "0.6.0",
            "ecosystem": "pypi"
          },
          {
            "name": "llama-index-instrumentation",
            "direct": false,
            "version": "0.5.0",
            "ecosystem": "pypi"
          },
          {
            "name": "llama-index-llms-openai",
            "direct": false,
            "version": "0.7.5",
            "ecosystem": "pypi"
          },
          {
            "name": "llama-index-workflows",
            "direct": false,
            "version": "2.17.1",
            "ecosystem": "pypi"
          },
          {
            "name": "logfire",
            "direct": false,
            "version": "4.30.0",
            "ecosystem": "pypi"
          },
          {
            "name": "logfire-api",
            "direct": false,
            "version": "4.30.0",
            "ecosystem": "pypi"
          },
          {
            "name": "lxml",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "lxml",
            "direct": false,
            "version": "6.0.0",
            "ecosystem": "pypi"
          },
          {
            "name": "mako",
            "direct": false,
            "version": "1.3.12",
            "ecosystem": "pypi"
          },
          {
            "name": "markdown-it-py",
            "direct": false,
            "version": "4.0.0",
            "ecosystem": "pypi"
          },
          {
            "name": "markdown-it-py",
            "direct": false,
            "version": "3.0.0",
            "ecosystem": "pypi"
          },
          {
            "name": "markupsafe",
            "direct": false,
            "version": "3.0.3",
            "ecosystem": "pypi"
          },
          {
            "name": "marshmallow",
            "direct": false,
            "version": "3.26.2",
            "ecosystem": "pypi"
          },
          {
            "name": "matplotlib-inline",
            "direct": false,
            "version": "0.2.1",
            "ecosystem": "pypi"
          },
          {
            "name": "mcp",
            "direct": false,
            "version": "1.27.1",
            "ecosystem": "pypi"
          },
          {
            "name": "mcp",
            "direct": false,
            "version": "1.26.0",
            "ecosystem": "pypi"
          },
          {
            "name": "mdurl",
            "direct": false,
            "version": "0.1.2",
            "ecosystem": "pypi"
          },
          {
            "name": "mirascope",
            "direct": false,
            "version": "2.4.0",
            "ecosystem": "pypi"
          },
          {
            "name": "mistralai",
            "direct": false,
            "version": "2.1.3",
            "ecosystem": "pypi"
          },
          {
            "name": "mmh3",
            "direct": false,
            "version": "5.2.1",
            "ecosystem": "pypi"
          },
          {
            "name": "more-itertools",
            "direct": false,
            "version": "10.8.0",
            "ecosystem": "pypi"
          },
          {
            "name": "more-itertools",
            "direct": false,
            "version": "10.7.0",
            "ecosystem": "pypi"
          },
          {
            "name": "mpmath",
            "direct": false,
            "version": "1.3.0",
            "ecosystem": "pypi"
          },
          {
            "name": "msal",
            "direct": false,
            "version": "1.35.1",
            "ecosystem": "pypi"
          },
          {
            "name": "msal-extensions",
            "direct": false,
            "version": "1.3.1",
            "ecosystem": "pypi"
          },
          {
            "name": "multidict",
            "direct": false,
            "version": "6.7.1",
            "ecosystem": "pypi"
          },
          {
            "name": "multidict",
            "direct": false,
            "version": "6.6.3",
            "ecosystem": "pypi"
          },
          {
            "name": "mypy",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "mypy",
            "direct": false,
            "version": "1.16.1",
            "ecosystem": "pypi"
          },
          {
            "name": "mypy-baseline",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "mypy-baseline",
            "direct": false,
            "version": "0.7.3",
            "ecosystem": "pypi"
          },
          {
            "name": "mypy-extensions",
            "direct": false,
            "version": "1.1.0",
            "ecosystem": "pypi"
          },
          {
            "name": "nest-asyncio",
            "direct": false,
            "version": "1.6.0",
            "ecosystem": "pypi"
          },
          {
            "name": "networkx",
            "direct": false,
            "version": "3.4.2",
            "ecosystem": "pypi"
          },
          {
            "name": "networkx",
            "direct": false,
            "version": "3.6.1",
            "ecosystem": "pypi"
          },
          {
            "name": "nexus-rpc",
            "direct": false,
            "version": "1.4.0",
            "ecosystem": "pypi"
          },
          {
            "name": "nh3",
            "direct": false,
            "version": "0.2.21",
            "ecosystem": "pypi"
          },
          {
            "name": "nltk",
            "direct": false,
            "version": "3.9.4",
            "ecosystem": "pypi"
          },
          {
            "name": "nodeenv",
            "direct": false,
            "version": "1.9.1",
            "ecosystem": "pypi"
          },
          {
            "name": "numpy",
            "direct": false,
            "version": "2.2.6",
            "ecosystem": "pypi"
          },
          {
            "name": "numpy",
            "direct": false,
            "version": "2.4.3",
            "ecosystem": "pypi"
          },
          {
            "name": "numpy",
            "direct": false,
            "version": "2.4.4",
            "ecosystem": "pypi"
          },
          {
            "name": "numpy",
            "direct": false,
            "version": "2.3.1",
            "ecosystem": "pypi"
          },
          {
            "name": "oauthlib",
            "direct": false,
            "version": "3.3.1",
            "ecosystem": "pypi"
          },
          {
            "name": "onnxruntime",
            "direct": false,
            "version": "1.22.0",
            "ecosystem": "pypi"
          },
          {
            "name": "openai",
            "direct": false,
            "version": "2.30.0",
            "ecosystem": "pypi"
          },
          {
            "name": "openai",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "openai",
            "direct": false,
            "version": "2.44.0",
            "ecosystem": "pypi"
          },
          {
            "name": "openai",
            "direct": false,
            "version": "2.29.0",
            "ecosystem": "pypi"
          },
          {
            "name": "openai-agents",
            "direct": false,
            "version": "0.13.1",
            "ecosystem": "pypi"
          },
          {
            "name": "openapi-core",
            "direct": false,
            "version": "0.19.5",
            "ecosystem": "pypi"
          },
          {
            "name": "openapi-core",
            "direct": false,
            "version": "0.23.1",
            "ecosystem": "pypi"
          },
          {
            "name": "openapi-pydantic",
            "direct": false,
            "version": "0.5.1",
            "ecosystem": "pypi"
          },
          {
            "name": "openapi-schema-validator",
            "direct": false,
            "version": "0.6.3",
            "ecosystem": "pypi"
          },
          {
            "name": "openapi-schema-validator",
            "direct": false,
            "version": "0.8.1",
            "ecosystem": "pypi"
          },
          {
            "name": "openapi-spec-validator",
            "direct": false,
            "version": "0.7.2",
            "ecosystem": "pypi"
          },
          {
            "name": "openapi-spec-validator",
            "direct": false,
            "version": "0.8.5",
            "ecosystem": "pypi"
          },
          {
            "name": "openfeature-provider-posthog",
            "direct": false,
            "version": "0.1.9",
            "ecosystem": "pypi"
          },
          {
            "name": "openpyxl",
            "direct": false,
            "version": "3.1.5",
            "ecosystem": "pypi"
          },
          {
            "name": "opentelemetry-api",
            "direct": false,
            "version": "1.40.0",
            "ecosystem": "pypi"
          },
          {
            "name": "opentelemetry-api",
            "direct": false,
            "version": "1.34.1",
            "ecosystem": "pypi"
          },
          {
            "name": "opentelemetry-api",
            "direct": false,
            "version": "1.39.1",
            "ecosystem": "pypi"
          },
          {
            "name": "opentelemetry-exporter-otlp-proto-common",
            "direct": false,
            "version": "1.40.0",
            "ecosystem": "pypi"
          },
          {
            "name": "opentelemetry-exporter-otlp-proto-common",
            "direct": false,
            "version": "1.34.1",
            "ecosystem": "pypi"
          },
          {
            "name": "opentelemetry-exporter-otlp-proto-common",
            "direct": false,
            "version": "1.39.1",
            "ecosystem": "pypi"
          },
          {
            "name": "opentelemetry-exporter-otlp-proto-grpc",
            "direct": false,
            "version": "1.34.1",
            "ecosystem": "pypi"
          },
          {
            "name": "opentelemetry-exporter-otlp-proto-http",
            "direct": false,
            "version": "1.40.0",
            "ecosystem": "pypi"
          },
          {
            "name": "opentelemetry-exporter-otlp-proto-http",
            "direct": false,
            "version": "1.34.1",
            "ecosystem": "pypi"
          },
          {
            "name": "opentelemetry-exporter-otlp-proto-http",
            "direct": false,
            "version": "1.39.1",
            "ecosystem": "pypi"
          },
          {
            "name": "opentelemetry-instrumentation",
            "direct": false,
            "version": "0.61b0",
            "ecosystem": "pypi"
          },
          {
            "name": "opentelemetry-instrumentation",
            "direct": false,
            "version": "0.60b1",
            "ecosystem": "pypi"
          },
          {
            "name": "opentelemetry-instrumentation-anthropic",
            "direct": false,
            "version": "0.57.0",
            "ecosystem": "pypi"
          },
          {
            "name": "opentelemetry-instrumentation-botocore",
            "direct": false,
            "version": "0.61b0",
            "ecosystem": "pypi"
          },
          {
            "name": "opentelemetry-instrumentation-google-generativeai",
            "direct": false,
            "version": "0.57.0",
            "ecosystem": "pypi"
          },
          {
            "name": "opentelemetry-instrumentation-httpx",
            "direct": false,
            "version": "0.60b1",
            "ecosystem": "pypi"
          },
          {
            "name": "opentelemetry-instrumentation-langchain",
            "direct": false,
            "version": "0.57.0",
            "ecosystem": "pypi"
          },
          {
            "name": "opentelemetry-instrumentation-llamaindex",
            "direct": false,
            "version": "0.57.0",
            "ecosystem": "pypi"
          },
          {
            "name": "opentelemetry-instrumentation-openai-v2",
            "direct": false,
            "version": "2.3b0",
            "ecosystem": "pypi"
          },
          {
            "name": "opentelemetry-propagator-aws-xray",
            "direct": false,
            "version": "1.0.2",
            "ecosystem": "pypi"
          },
          {
            "name": "opentelemetry-proto",
            "direct": false,
            "version": "1.40.0",
            "ecosystem": "pypi"
          },
          {
            "name": "opentelemetry-proto",
            "direct": false,
            "version": "1.34.1",
            "ecosystem": "pypi"
          },
          {
            "name": "opentelemetry-proto",
            "direct": false,
            "version": "1.39.1",
            "ecosystem": "pypi"
          },
          {
            "name": "opentelemetry-sdk",
            "direct": false,
            "version": "1.40.0",
            "ecosystem": "pypi"
          },
          {
            "name": "opentelemetry-sdk",
            "direct": false,
            "version": "1.34.1",
            "ecosystem": "pypi"
          },
          {
            "name": "opentelemetry-sdk",
            "direct": false,
            "version": "1.39.1",
            "ecosystem": "pypi"
          },
          {
            "name": "opentelemetry-semantic-conventions",
            "direct": false,
            "version": "0.61b0",
            "ecosystem": "pypi"
          },
          {
            "name": "opentelemetry-semantic-conventions",
            "direct": false,
            "version": "0.55b1",
            "ecosystem": "pypi"
          },
          {
            "name": "opentelemetry-semantic-conventions",
            "direct": false,
            "version": "0.60b1",
            "ecosystem": "pypi"
          },
          {
            "name": "opentelemetry-semantic-conventions-ai",
            "direct": false,
            "version": "0.5.1",
            "ecosystem": "pypi"
          },
          {
            "name": "opentelemetry-util-http",
            "direct": false,
            "version": "0.60b1",
            "ecosystem": "pypi"
          },
          {
            "name": "optuna",
            "direct": false,
            "version": "4.8.0",
            "ecosystem": "pypi"
          },
          {
            "name": "orjson",
            "direct": false,
            "version": "3.11.7",
            "ecosystem": "pypi"
          },
          {
            "name": "orjson",
            "direct": false,
            "version": "3.11.8",
            "ecosystem": "pypi"
          },
          {
            "name": "ormsgpack",
            "direct": false,
            "version": "1.12.2",
            "ecosystem": "pypi"
          },
          {
            "name": "overrides",
            "direct": false,
            "version": "7.7.0",
            "ecosystem": "pypi"
          },
          {
            "name": "packaging",
            "direct": false,
            "version": "26.0",
            "ecosystem": "pypi"
          },
          {
            "name": "packaging",
            "direct": false,
            "version": "24.2",
            "ecosystem": "pypi"
          },
          {
            "name": "packaging",
            "direct": false,
            "version": "25.0",
            "ecosystem": "pypi"
          },
          {
            "name": "parameterized",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "parameterized",
            "direct": false,
            "version": "0.9.0",
            "ecosystem": "pypi"
          },
          {
            "name": "parse",
            "direct": false,
            "version": "1.21.1",
            "ecosystem": "pypi"
          },
          {
            "name": "parse",
            "direct": false,
            "version": "1.22.0",
            "ecosystem": "pypi"
          },
          {
            "name": "parse-type",
            "direct": false,
            "version": "0.6.6",
            "ecosystem": "pypi"
          },
          {
            "name": "parso",
            "direct": false,
            "version": "0.8.6",
            "ecosystem": "pypi"
          },
          {
            "name": "pathable",
            "direct": false,
            "version": "0.4.4",
            "ecosystem": "pypi"
          },
          {
            "name": "pathable",
            "direct": false,
            "version": "0.5.0",
            "ecosystem": "pypi"
          },
          {
            "name": "pathspec",
            "direct": false,
            "version": "0.12.1",
            "ecosystem": "pypi"
          },
          {
            "name": "pdfminer-six",
            "direct": false,
            "version": "20251230",
            "ecosystem": "pypi"
          },
          {
            "name": "pdfplumber",
            "direct": false,
            "version": "0.11.9",
            "ecosystem": "pypi"
          },
          {
            "name": "pexpect",
            "direct": false,
            "version": "4.9.0",
            "ecosystem": "pypi"
          },
          {
            "name": "pillow",
            "direct": false,
            "version": "12.2.0",
            "ecosystem": "pypi"
          },
          {
            "name": "pillow",
            "direct": false,
            "version": "12.1.1",
            "ecosystem": "pypi"
          },
          {
            "name": "platformdirs",
            "direct": false,
            "version": "4.3.8",
            "ecosystem": "pypi"
          },
          {
            "name": "platformdirs",
            "direct": false,
            "version": "4.9.4",
            "ecosystem": "pypi"
          },
          {
            "name": "pluggy",
            "direct": false,
            "version": "1.6.0",
            "ecosystem": "pypi"
          },
          {
            "name": "portkey-ai",
            "direct": false,
            "version": "2.2.0",
            "ecosystem": "pypi"
          },
          {
            "name": "prance",
            "direct": false,
            "version": "25.4.8.0",
            "ecosystem": "pypi"
          },
          {
            "name": "pre-commit",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "pre-commit",
            "direct": false,
            "version": "4.2.0",
            "ecosystem": "pypi"
          },
          {
            "name": "prompt-toolkit",
            "direct": false,
            "version": "3.0.52",
            "ecosystem": "pypi"
          },
          {
            "name": "propcache",
            "direct": false,
            "version": "0.4.1",
            "ecosystem": "pypi"
          },
          {
            "name": "propcache",
            "direct": false,
            "version": "0.3.2",
            "ecosystem": "pypi"
          },
          {
            "name": "protobuf",
            "direct": false,
            "version": "6.33.6",
            "ecosystem": "pypi"
          },
          {
            "name": "protobuf",
            "direct": false,
            "version": "5.29.6",
            "ecosystem": "pypi"
          },
          {
            "name": "ptyprocess",
            "direct": false,
            "version": "0.7.0",
            "ecosystem": "pypi"
          },
          {
            "name": "pure-eval",
            "direct": false,
            "version": "0.2.3",
            "ecosystem": "pypi"
          },
          {
            "name": "py-key-value-aio",
            "direct": false,
            "version": "0.4.4",
            "ecosystem": "pypi"
          },
          {
            "name": "pyasn1",
            "direct": false,
            "version": "0.6.3",
            "ecosystem": "pypi"
          },
          {
            "name": "pyasn1-modules",
            "direct": false,
            "version": "0.4.2",
            "ecosystem": "pypi"
          },
          {
            "name": "pybars4",
            "direct": false,
            "version": "0.9.13",
            "ecosystem": "pypi"
          },
          {
            "name": "pybase64",
            "direct": false,
            "version": "1.4.3",
            "ecosystem": "pypi"
          },
          {
            "name": "pycparser",
            "direct": false,
            "version": "3.0",
            "ecosystem": "pypi"
          },
          {
            "name": "pycparser",
            "direct": false,
            "version": "2.22",
            "ecosystem": "pypi"
          },
          {
            "name": "pydantic",
            "direct": false,
            "version": "2.12.5",
            "ecosystem": "pypi"
          },
          {
            "name": "pydantic",
            "direct": false,
            "version": "2.11.10",
            "ecosystem": "pypi"
          },
          {
            "name": "pydantic",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "pydantic",
            "direct": false,
            "version": "2.11.7",
            "ecosystem": "pypi"
          },
          {
            "name": "pydantic-ai",
            "direct": false,
            "version": "1.102.0",
            "ecosystem": "pypi"
          },
          {
            "name": "pydantic-ai-slim",
            "direct": false,
            "version": "1.102.0",
            "ecosystem": "pypi"
          },
          {
            "name": "pydantic-core",
            "direct": false,
            "version": "2.41.5",
            "ecosystem": "pypi"
          },
          {
            "name": "pydantic-core",
            "direct": false,
            "version": "2.33.2",
            "ecosystem": "pypi"
          },
          {
            "name": "pydantic-evals",
            "direct": false,
            "version": "1.102.0",
            "ecosystem": "pypi"
          },
          {
            "name": "pydantic-graph",
            "direct": false,
            "version": "1.102.0",
            "ecosystem": "pypi"
          },
          {
            "name": "pydantic-handlebars",
            "direct": false,
            "version": "0.1.0",
            "ecosystem": "pypi"
          },
          {
            "name": "pydantic-settings",
            "direct": false,
            "version": "2.13.1",
            "ecosystem": "pypi"
          },
          {
            "name": "pydantic-settings",
            "direct": false,
            "version": "2.10.1",
            "ecosystem": "pypi"
          },
          {
            "name": "pyee",
            "direct": false,
            "version": "13.0.1",
            "ecosystem": "pypi"
          },
          {
            "name": "pygments",
            "direct": false,
            "version": "2.20.0",
            "ecosystem": "pypi"
          },
          {
            "name": "pygments",
            "direct": false,
            "version": "2.19.2",
            "ecosystem": "pypi"
          },
          {
            "name": "pyjwt",
            "direct": false,
            "version": "2.12.1",
            "ecosystem": "pypi"
          },
          {
            "name": "pyjwt",
            "direct": false,
            "version": "2.13.0",
            "ecosystem": "pypi"
          },
          {
            "name": "pylibsrtp",
            "direct": false,
            "version": "1.0.0",
            "ecosystem": "pypi"
          },
          {
            "name": "pymeta3",
            "direct": false,
            "version": "0.5.1",
            "ecosystem": "pypi"
          },
          {
            "name": "pyopenssl",
            "direct": false,
            "version": "26.0.0",
            "ecosystem": "pypi"
          },
          {
            "name": "pypdfium2",
            "direct": false,
            "version": "5.6.0",
            "ecosystem": "pypi"
          },
          {
            "name": "pyperclip",
            "direct": false,
            "version": "1.11.0",
            "ecosystem": "pypi"
          },
          {
            "name": "pypika",
            "direct": false,
            "version": "0.51.1",
            "ecosystem": "pypi"
          },
          {
            "name": "pyproject-hooks",
            "direct": false,
            "version": "1.2.0",
            "ecosystem": "pypi"
          },
          {
            "name": "pyreadline3",
            "direct": false,
            "version": "3.5.4",
            "ecosystem": "pypi"
          },
          {
            "name": "pytest",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "pytest",
            "direct": false,
            "version": "8.4.1",
            "ecosystem": "pypi"
          },
          {
            "name": "pytest",
            "direct": false,
            "version": "8.4.2",
            "ecosystem": "pypi"
          },
          {
            "name": "pytest-asyncio",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "pytest-asyncio",
            "direct": false,
            "version": "1.0.0",
            "ecosystem": "pypi"
          },
          {
            "name": "pytest-asyncio",
            "direct": false,
            "version": "1.2.0",
            "ecosystem": "pypi"
          },
          {
            "name": "pytest-bdd",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "pytest-bdd",
            "direct": false,
            "version": "8.1.0",
            "ecosystem": "pypi"
          },
          {
            "name": "pytest-django",
            "direct": false,
            "version": "4.11.1",
            "ecosystem": "pypi"
          },
          {
            "name": "pytest-timeout",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "pytest-timeout",
            "direct": false,
            "version": "2.4.0",
            "ecosystem": "pypi"
          },
          {
            "name": "python-dateutil",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "python-dateutil",
            "direct": false,
            "version": "2.9.0.post0",
            "ecosystem": "pypi"
          },
          {
            "name": "python-dotenv",
            "direct": false,
            "version": "1.2.2",
            "ecosystem": "pypi"
          },
          {
            "name": "python-dotenv",
            "direct": false,
            "version": "1.0.1",
            "ecosystem": "pypi"
          },
          {
            "name": "python-dotenv",
            "direct": false,
            "version": "1.1.1",
            "ecosystem": "pypi"
          },
          {
            "name": "python-multipart",
            "direct": false,
            "version": "0.0.28",
            "ecosystem": "pypi"
          },
          {
            "name": "python-multipart",
            "direct": false,
            "version": "0.0.27",
            "ecosystem": "pypi"
          },
          {
            "name": "python-multipart",
            "direct": false,
            "version": "0.0.32",
            "ecosystem": "pypi"
          },
          {
            "name": "python-multipart",
            "direct": false,
            "version": "0.0.22",
            "ecosystem": "pypi"
          },
          {
            "name": "pyvis",
            "direct": false,
            "version": "0.3.2",
            "ecosystem": "pypi"
          },
          {
            "name": "pywin32",
            "direct": false,
            "version": "311",
            "ecosystem": "pypi"
          },
          {
            "name": "pywin32-ctypes",
            "direct": false,
            "version": "0.2.3",
            "ecosystem": "pypi"
          },
          {
            "name": "pyyaml",
            "direct": false,
            "version": "6.0.3",
            "ecosystem": "pypi"
          },
          {
            "name": "pyyaml",
            "direct": false,
            "version": "6.0.2",
            "ecosystem": "pypi"
          },
          {
            "name": "readme-renderer",
            "direct": false,
            "version": "44.0",
            "ecosystem": "pypi"
          },
          {
            "name": "referencing",
            "direct": false,
            "version": "0.36.2",
            "ecosystem": "pypi"
          },
          {
            "name": "referencing",
            "direct": false,
            "version": "0.37.0",
            "ecosystem": "pypi"
          },
          {
            "name": "regex",
            "direct": false,
            "version": "2026.2.28",
            "ecosystem": "pypi"
          },
          {
            "name": "regex",
            "direct": false,
            "version": "2026.1.15",
            "ecosystem": "pypi"
          },
          {
            "name": "regex",
            "direct": false,
            "version": "2024.11.6",
            "ecosystem": "pypi"
          },
          {
            "name": "regex",
            "direct": false,
            "version": "2026.3.32",
            "ecosystem": "pypi"
          },
          {
            "name": "requests-oauthlib",
            "direct": false,
            "version": "2.0.0",
            "ecosystem": "pypi"
          },
          {
            "name": "requests-toolbelt",
            "direct": false,
            "version": "1.0.0",
            "ecosystem": "pypi"
          },
          {
            "name": "rfc3339-validator",
            "direct": false,
            "version": "0.1.4",
            "ecosystem": "pypi"
          },
          {
            "name": "rfc3986",
            "direct": false,
            "version": "2.0.0",
            "ecosystem": "pypi"
          },
          {
            "name": "rich",
            "direct": false,
            "version": "14.3.3",
            "ecosystem": "pypi"
          },
          {
            "name": "rich",
            "direct": false,
            "version": "14.0.0",
            "ecosystem": "pypi"
          },
          {
            "name": "rich-rst",
            "direct": false,
            "version": "2.0.1",
            "ecosystem": "pypi"
          },
          {
            "name": "rich-rst",
            "direct": false,
            "version": "1.3.2",
            "ecosystem": "pypi"
          },
          {
            "name": "rpds-py",
            "direct": false,
            "version": "0.30.0",
            "ecosystem": "pypi"
          },
          {
            "name": "ruamel-yaml",
            "direct": false,
            "version": "0.19.1",
            "ecosystem": "pypi"
          },
          {
            "name": "ruff",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "ruff",
            "direct": false,
            "version": "0.12.2",
            "ecosystem": "pypi"
          },
          {
            "name": "s3transfer",
            "direct": false,
            "version": "0.16.0",
            "ecosystem": "pypi"
          },
          {
            "name": "scipy",
            "direct": false,
            "version": "1.15.3",
            "ecosystem": "pypi"
          },
          {
            "name": "secretstorage",
            "direct": false,
            "version": "3.3.3",
            "ecosystem": "pypi"
          },
          {
            "name": "secretstorage",
            "direct": false,
            "version": "3.5.0",
            "ecosystem": "pypi"
          },
          {
            "name": "semantic-kernel",
            "direct": false,
            "version": "1.42.0",
            "ecosystem": "pypi"
          },
          {
            "name": "setuptools",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "setuptools",
            "direct": false,
            "version": "80.9.0",
            "ecosystem": "pypi"
          },
          {
            "name": "setuptools",
            "direct": false,
            "version": "82.0.1",
            "ecosystem": "pypi"
          },
          {
            "name": "shellingham",
            "direct": false,
            "version": "1.5.4",
            "ecosystem": "pypi"
          },
          {
            "name": "six",
            "direct": false,
            "version": "1.17.0",
            "ecosystem": "pypi"
          },
          {
            "name": "smolagents",
            "direct": false,
            "version": "1.24.0",
            "ecosystem": "pypi"
          },
          {
            "name": "sniffio",
            "direct": false,
            "version": "1.3.1",
            "ecosystem": "pypi"
          },
          {
            "name": "sqlalchemy",
            "direct": false,
            "version": "2.0.48",
            "ecosystem": "pypi"
          },
          {
            "name": "sqlalchemy",
            "direct": false,
            "version": "2.0.41",
            "ecosystem": "pypi"
          },
          {
            "name": "sqlparse",
            "direct": false,
            "version": "0.5.3",
            "ecosystem": "pypi"
          },
          {
            "name": "sse-starlette",
            "direct": false,
            "version": "3.4.4",
            "ecosystem": "pypi"
          },
          {
            "name": "sse-starlette",
            "direct": false,
            "version": "3.3.3",
            "ecosystem": "pypi"
          },
          {
            "name": "stack-data",
            "direct": false,
            "version": "0.6.3",
            "ecosystem": "pypi"
          },
          {
            "name": "starlette",
            "direct": false,
            "version": "1.0.1",
            "ecosystem": "pypi"
          },
          {
            "name": "starlette",
            "direct": false,
            "version": "1.0.0",
            "ecosystem": "pypi"
          },
          {
            "name": "starlette",
            "direct": false,
            "version": "0.46.2",
            "ecosystem": "pypi"
          },
          {
            "name": "sympy",
            "direct": false,
            "version": "1.14.0",
            "ecosystem": "pypi"
          },
          {
            "name": "temporalio",
            "direct": false,
            "version": "1.29.0",
            "ecosystem": "pypi"
          },
          {
            "name": "tenacity",
            "direct": false,
            "version": "9.1.4",
            "ecosystem": "pypi"
          },
          {
            "name": "tenacity",
            "direct": false,
            "version": "8.5.0",
            "ecosystem": "pypi"
          },
          {
            "name": "test-django5",
            "direct": false,
            "version": "0.1.0",
            "ecosystem": "pypi"
          },
          {
            "name": "tiktoken",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "tiktoken",
            "direct": false,
            "version": "0.12.0",
            "ecosystem": "pypi"
          },
          {
            "name": "tinytag",
            "direct": false,
            "version": "2.2.1",
            "ecosystem": "pypi"
          },
          {
            "name": "tokenizers",
            "direct": false,
            "version": "0.22.2",
            "ecosystem": "pypi"
          },
          {
            "name": "tomli",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "tomli",
            "direct": false,
            "version": "2.4.1",
            "ecosystem": "pypi"
          },
          {
            "name": "tomli",
            "direct": false,
            "version": "2.0.2",
            "ecosystem": "pypi"
          },
          {
            "name": "tomli",
            "direct": false,
            "version": "2.2.1",
            "ecosystem": "pypi"
          },
          {
            "name": "tomli",
            "direct": false,
            "version": "2.4.0",
            "ecosystem": "pypi"
          },
          {
            "name": "tomli-w",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "tomli-w",
            "direct": false,
            "version": "1.1.0",
            "ecosystem": "pypi"
          },
          {
            "name": "tomli-w",
            "direct": false,
            "version": "1.2.0",
            "ecosystem": "pypi"
          },
          {
            "name": "tqdm",
            "direct": false,
            "version": "4.67.3",
            "ecosystem": "pypi"
          },
          {
            "name": "tqdm",
            "direct": false,
            "version": "4.67.1",
            "ecosystem": "pypi"
          },
          {
            "name": "traitlets",
            "direct": false,
            "version": "5.14.3",
            "ecosystem": "pypi"
          },
          {
            "name": "twine",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "twine",
            "direct": false,
            "version": "6.1.0",
            "ecosystem": "pypi"
          },
          {
            "name": "typer",
            "direct": false,
            "version": "0.24.1",
            "ecosystem": "pypi"
          },
          {
            "name": "typer",
            "direct": false,
            "version": "0.23.1",
            "ecosystem": "pypi"
          },
          {
            "name": "types-protobuf",
            "direct": false,
            "version": "6.32.1.20260221",
            "ecosystem": "pypi"
          },
          {
            "name": "types-pyyaml",
            "direct": false,
            "version": "6.0.12.20250516",
            "ecosystem": "pypi"
          },
          {
            "name": "types-requests",
            "direct": false,
            "version": "2.33.0.20260327",
            "ecosystem": "pypi"
          },
          {
            "name": "types-requests",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "types-requests",
            "direct": false,
            "version": "2.32.4.20250611",
            "ecosystem": "pypi"
          },
          {
            "name": "types-requests",
            "direct": false,
            "version": "2.32.4.20260324",
            "ecosystem": "pypi"
          },
          {
            "name": "types-setuptools",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "types-setuptools",
            "direct": false,
            "version": "80.9.0.20250529",
            "ecosystem": "pypi"
          },
          {
            "name": "typing-inspect",
            "direct": false,
            "version": "0.9.0",
            "ecosystem": "pypi"
          },
          {
            "name": "typing-inspection",
            "direct": false,
            "version": "0.4.2",
            "ecosystem": "pypi"
          },
          {
            "name": "typing-inspection",
            "direct": false,
            "version": "0.4.1",
            "ecosystem": "pypi"
          },
          {
            "name": "tzdata",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "tzdata",
            "direct": false,
            "version": "2025.2",
            "ecosystem": "pypi"
          },
          {
            "name": "uncalled-for",
            "direct": false,
            "version": "0.2.0",
            "ecosystem": "pypi"
          },
          {
            "name": "urllib3",
            "direct": false,
            "version": "2.6.3",
            "ecosystem": "pypi"
          },
          {
            "name": "urllib3",
            "direct": false,
            "version": "2.5.0",
            "ecosystem": "pypi"
          },
          {
            "name": "uuid-utils",
            "direct": false,
            "version": "0.14.1",
            "ecosystem": "pypi"
          },
          {
            "name": "uv",
            "direct": false,
            "version": "0.11.15",
            "ecosystem": "pypi"
          },
          {
            "name": "uvicorn",
            "direct": false,
            "version": "0.46.0",
            "ecosystem": "pypi"
          },
          {
            "name": "uvicorn",
            "direct": false,
            "version": "0.42.0",
            "ecosystem": "pypi"
          },
          {
            "name": "uvicorn",
            "direct": false,
            "version": "0.38.0",
            "ecosystem": "pypi"
          },
          {
            "name": "uvicorn",
            "direct": false,
            "version": "0.35.0",
            "ecosystem": "pypi"
          },
          {
            "name": "uvloop",
            "direct": false,
            "version": "0.22.1",
            "ecosystem": "pypi"
          },
          {
            "name": "uvloop",
            "direct": false,
            "version": "0.21.0",
            "ecosystem": "pypi"
          },
          {
            "name": "virtualenv",
            "direct": false,
            "version": "20.31.2",
            "ecosystem": "pypi"
          },
          {
            "name": "watchfiles",
            "direct": false,
            "version": "1.1.1",
            "ecosystem": "pypi"
          },
          {
            "name": "watchfiles",
            "direct": false,
            "version": "1.1.0",
            "ecosystem": "pypi"
          },
          {
            "name": "wcwidth",
            "direct": false,
            "version": "0.6.0",
            "ecosystem": "pypi"
          },
          {
            "name": "websocket-client",
            "direct": false,
            "version": "1.9.0",
            "ecosystem": "pypi"
          },
          {
            "name": "websockets",
            "direct": false,
            "version": "15.0.1",
            "ecosystem": "pypi"
          },
          {
            "name": "websockets",
            "direct": false,
            "version": "16.0",
            "ecosystem": "pypi"
          },
          {
            "name": "werkzeug",
            "direct": false,
            "version": "3.1.1",
            "ecosystem": "pypi"
          },
          {
            "name": "werkzeug",
            "direct": false,
            "version": "3.1.8",
            "ecosystem": "pypi"
          },
          {
            "name": "wheel",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "wheel",
            "direct": false,
            "version": "0.45.1",
            "ecosystem": "pypi"
          },
          {
            "name": "wrapt",
            "direct": false,
            "version": "1.17.3",
            "ecosystem": "pypi"
          },
          {
            "name": "xai-sdk",
            "direct": false,
            "version": "1.10.0",
            "ecosystem": "pypi"
          },
          {
            "name": "xxhash",
            "direct": false,
            "version": "3.6.0",
            "ecosystem": "pypi"
          },
          {
            "name": "xxhash",
            "direct": false,
            "version": "3.5.0",
            "ecosystem": "pypi"
          },
          {
            "name": "yarl",
            "direct": false,
            "version": "1.23.0",
            "ecosystem": "pypi"
          },
          {
            "name": "yarl",
            "direct": false,
            "version": "1.20.1",
            "ecosystem": "pypi"
          },
          {
            "name": "zipp",
            "direct": false,
            "version": "3.23.0",
            "ecosystem": "pypi"
          },
          {
            "name": "zstandard",
            "direct": false,
            "version": "0.23.0",
            "ecosystem": "pypi"
          },
          {
            "name": "zstandard",
            "direct": false,
            "version": "0.25.0",
            "ecosystem": "pypi"
          }
        ],
        "collected": true,
        "truncated": false,
        "total_count": 595,
        "direct_count": 22,
        "indirect_count": 573
      }
    },
    "maintainership": {
      "issues": {
        "open_prs": 6,
        "merged_prs": 527,
        "open_issues": 4,
        "closed_ratio": 0.953,
        "closed_issues": 82,
        "closed_unmerged_prs": 116
      },
      "bus_factor": 7,
      "top_contributors": [
        {
          "type": "Bot",
          "login": "releaser-posthog-python[bot]",
          "commits": 89,
          "avatar_url": "https://avatars.githubusercontent.com/in/2893943?v=4"
        },
        {
          "type": "User",
          "login": "marandaneto",
          "commits": 71,
          "avatar_url": "https://avatars.githubusercontent.com/u/5731772?u=190f7538e376f434998ecf5f2a831a86ccfec372&v=4"
        },
        {
          "type": "Bot",
          "login": "dependabot[bot]",
          "commits": 68,
          "avatar_url": "https://avatars.githubusercontent.com/in/29110?v=4"
        },
        {
          "type": "User",
          "login": "neilkakkar",
          "commits": 45,
          "avatar_url": "https://avatars.githubusercontent.com/u/7115141?u=c1b21ee65c207eb778d423d9c06d4c4082cd3b15&v=4"
        },
        {
          "type": "User",
          "login": "timgl",
          "commits": 41,
          "avatar_url": "https://avatars.githubusercontent.com/u/1727427?u=68d3693009c289044285447b6ed667bdb08176d2&v=4"
        },
        {
          "type": "User",
          "login": "Twixes",
          "commits": 34,
          "avatar_url": "https://avatars.githubusercontent.com/u/4550621?u=8cfecce44cfc8ff05fccd1d27bc103fb2462f97c&v=4"
        },
        {
          "type": "User",
          "login": "haacked",
          "commits": 25,
          "avatar_url": "https://avatars.githubusercontent.com/u/19977?u=bb26eb16cda45a61a714df8005abe199ac904c5b&v=4"
        },
        {
          "type": "User",
          "login": "dmarticus",
          "commits": 24,
          "avatar_url": "https://avatars.githubusercontent.com/u/4853149?u=7e84d1ca5c76d7f72f52c8d51e24cb493f5dd528&v=4"
        },
        {
          "type": "User",
          "login": "k11kirky",
          "commits": 18,
          "avatar_url": "https://avatars.githubusercontent.com/u/4571455?u=8e8884d4d624eefe0580c66454c90ef8e1944c16&v=4"
        },
        {
          "type": "Bot",
          "login": "github-actions[bot]",
          "commits": 18,
          "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4"
        }
      ],
      "contributors_sampled": 77,
      "top_contributor_share": 0.123
    },
    "quality_signals": {
      "has_ci": true,
      "has_tests": true,
      "ci_workflows": [
        "call-flags-project-board.yml",
        "ci.yml",
        "codeql.yml",
        "lint-pr.yml",
        "release.yml",
        "sdk-compliance.yml",
        "stale.yaml"
      ],
      "has_docs_dir": false,
      "linter_configs": [],
      "has_editorconfig": false,
      "has_linter_config": true,
      "has_precommit_config": true
    },
    "security_signals": {
      "lockfiles": [
        "uv.lock"
      ],
      "scorecard": {
        "checks": [
          {
            "name": "Binary-Artifacts",
            "score": 10,
            "reason": "no binaries found in the repo",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#binary-artifacts"
          },
          {
            "name": "Branch-Protection",
            "score": 4,
            "reason": "branch protection is not maximal on development and all release branches",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#branch-protection"
          },
          {
            "name": "CI-Tests",
            "score": 10,
            "reason": "16 out of 16 merged PRs checked by a CI test -- score normalized to 10",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#ci-tests"
          },
          {
            "name": "CII-Best-Practices",
            "score": 0,
            "reason": "no effort to earn an OpenSSF best practices badge detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#cii-best-practices"
          },
          {
            "name": "Code-Review",
            "score": 3,
            "reason": "Found 9/23 approved changesets -- score normalized to 3",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#code-review"
          },
          {
            "name": "Contributors",
            "score": 10,
            "reason": "project has 15 contributing companies or organizations",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#contributors"
          },
          {
            "name": "Dangerous-Workflow",
            "score": 10,
            "reason": "no dangerous workflow patterns detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#dangerous-workflow"
          },
          {
            "name": "Dependency-Update-Tool",
            "score": 10,
            "reason": "update tool detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#dependency-update-tool"
          },
          {
            "name": "Fuzzing",
            "score": 0,
            "reason": "project is not fuzzed",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#fuzzing"
          },
          {
            "name": "License",
            "score": 9,
            "reason": "license file detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#license"
          },
          {
            "name": "Maintained",
            "score": 10,
            "reason": "30 commit(s) and 11 issue activity found in the last 90 days -- score normalized to 10",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#maintained"
          },
          {
            "name": "Packaging",
            "score": 10,
            "reason": "packaging workflow detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#packaging"
          },
          {
            "name": "Pinned-Dependencies",
            "score": 7,
            "reason": "dependency not pinned by hash detected -- score normalized to 7",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#pinned-dependencies"
          },
          {
            "name": "SAST",
            "score": 10,
            "reason": "SAST tool is run on all commits",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#sast"
          },
          {
            "name": "Security-Policy",
            "score": 10,
            "reason": "security policy file detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#security-policy"
          },
          {
            "name": "Signed-Releases",
            "score": null,
            "reason": "no releases found",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#signed-releases"
          },
          {
            "name": "Token-Permissions",
            "score": 0,
            "reason": "detected GitHub workflow tokens with excessive permissions",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#token-permissions"
          },
          {
            "name": "Vulnerabilities",
            "score": 0,
            "reason": "109 existing vulnerabilities detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#vulnerabilities"
          }
        ],
        "commit": "2f19ad4185de56b70bfe5644224c00c53434b77a",
        "ran_at": "2026-07-15T04:11:28Z",
        "aggregate_score": 6.5,
        "scorecard_version": "v5.5.0"
      },
      "has_codeql_workflow": true,
      "has_security_policy": false,
      "has_dependabot_config": true
    }
  },
  "config": {
    "disabled_metrics": [],
    "disabled_categories": [],
    "disabled_components": {}
  },
  "source": {
    "url": "https://github.com/posthog/posthog-python",
    "host": "github.com",
    "name": "posthog-python",
    "owner": "posthog"
  },
  "metrics": {
    "overall": {
      "key": "overall",
      "band": "good",
      "name": "Overall health",
      "note": null,
      "notes": [],
      "value": 82,
      "inputs": {
        "security": 65,
        "vitality": 99,
        "community": 74,
        "governance": 88,
        "engineering": 78
      },
      "components": []
    },
    "categories": [
      {
        "key": "vitality",
        "band": "excellent",
        "name": "Vitality",
        "value": 99,
        "weight": 0.22,
        "metrics": [
          {
            "key": "development_activity",
            "band": "excellent",
            "name": "Development activity",
            "note": null,
            "notes": [],
            "value": 99,
            "inputs": {
              "commits_last_year": 425,
              "human_commit_share": null,
              "days_since_last_push": 0,
              "active_weeks_last_year": 50
            },
            "components": [
              {
                "key": "push_recency",
                "name": "Push recency",
                "detail": "last push 0 days ago",
                "points": 36,
                "status": "met",
                "details": [
                  {
                    "code": "push_recency",
                    "params": {
                      "days": 0
                    }
                  }
                ],
                "max_points": 36
              },
              {
                "key": "commit_cadence",
                "name": "Commit cadence",
                "detail": "50/52 weeks with commits",
                "points": 34.6,
                "status": "partial",
                "details": [
                  {
                    "code": "commit_cadence_weeks",
                    "params": {
                      "weeks": 50
                    }
                  }
                ],
                "max_points": 36
              },
              {
                "key": "commit_volume",
                "name": "Commit volume",
                "detail": "425 commits in the last year",
                "points": 18,
                "status": "met",
                "details": [
                  {
                    "code": "commits_last_year",
                    "params": {
                      "count": 425
                    }
                  }
                ],
                "max_points": 18
              },
              {
                "key": "openssf_scorecard_maintained",
                "name": "OpenSSF Scorecard: Maintained",
                "detail": "30 commit(s) and 11 issue activity found in the last 90 days -- score normalized to 10",
                "points": 10,
                "status": "met",
                "details": [],
                "max_points": 10
              }
            ]
          },
          {
            "key": "release_discipline",
            "band": "excellent",
            "name": "Release discipline",
            "note": "Excluded from scoring (no data or not applicable): OpenSSF Scorecard: Signed-Releases. Remaining weights renormalized.",
            "notes": [
              {
                "code": "excluded_no_data",
                "params": {
                  "components": [
                    "openssf_scorecard_signed_releases"
                  ]
                }
              },
              {
                "code": "weights_renormalized",
                "params": {}
              }
            ],
            "value": 100,
            "inputs": {
              "releases_count": 100,
              "latest_release_tag": "posthog-v7.22.4",
              "releases_from_tags": false,
              "days_since_latest_release": 0,
              "mean_days_between_releases": 0.9
            },
            "components": [
              {
                "key": "ships_releases",
                "name": "Ships releases",
                "detail": "100 releases published",
                "points": 27,
                "status": "met",
                "details": [
                  {
                    "code": "releases_published",
                    "params": {
                      "count": 100
                    }
                  }
                ],
                "max_points": 27
              },
              {
                "key": "release_recency",
                "name": "Release recency",
                "detail": "latest release 0 days ago",
                "points": 36,
                "status": "met",
                "details": [
                  {
                    "code": "release_recency",
                    "params": {
                      "days": 0
                    }
                  }
                ],
                "max_points": 36
              },
              {
                "key": "release_cadence",
                "name": "Release cadence",
                "detail": "a release every ~0.9 days",
                "points": 27,
                "status": "met",
                "details": [
                  {
                    "code": "release_cadence",
                    "params": {
                      "gap": 0.9
                    }
                  }
                ],
                "max_points": 27
              },
              {
                "key": "openssf_scorecard_signed_releases",
                "name": "OpenSSF Scorecard: Signed-Releases",
                "detail": "no releases found",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "no_data",
                    "params": {}
                  }
                ],
                "max_points": 10
              }
            ]
          },
          {
            "key": "abandonment",
            "band": "excellent",
            "name": "Abandonment",
            "note": null,
            "notes": [],
            "value": 100,
            "inputs": {
              "cap": null,
              "state": "unverified",
              "guards": [],
              "signals": [],
              "red_flag": false,
              "multiplier_pct": 100,
              "declared_reason": null,
              "unverified_reason": "no_commit_sample",
              "unanswered_open_prs": null,
              "unanswered_open_issues": null,
              "days_since_last_merged_pr": null,
              "days_since_last_human_commit": null,
              "days_since_last_human_commit_is_floor": false
            },
            "components": [
              {
                "key": "project_is_still_maintained",
                "name": "Project is still maintained",
                "detail": "maintenance record not established from the collected data",
                "points": 100,
                "status": "met",
                "details": [
                  {
                    "code": "abandonment_unverified",
                    "params": {}
                  }
                ],
                "max_points": 100
              }
            ]
          }
        ],
        "description": "Is the project alive — is code being written and are releases shipping?"
      },
      {
        "key": "community",
        "band": "good",
        "name": "Community & Adoption",
        "value": 74,
        "weight": 0.18,
        "metrics": [
          {
            "key": "popularity",
            "band": "at_risk",
            "name": "Popularity & adoption",
            "note": null,
            "notes": [],
            "value": 48,
            "inputs": {
              "forks": 72,
              "stars": 59,
              "watchers": 7,
              "growth_state": "unverified",
              "growth_factor_pct": 100,
              "growth_unverified_reason": "no_history"
            },
            "components": [
              {
                "key": "stars",
                "name": "Stars",
                "detail": "59 stars",
                "points": 28.6,
                "status": "partial",
                "details": [
                  {
                    "code": "stars",
                    "params": {
                      "count": 59
                    }
                  }
                ],
                "max_points": 60
              },
              {
                "key": "forks",
                "name": "Forks",
                "detail": "72 forks",
                "points": 15.4,
                "status": "partial",
                "details": [
                  {
                    "code": "forks",
                    "params": {
                      "count": 72
                    }
                  }
                ],
                "max_points": 25
              },
              {
                "key": "watchers",
                "name": "Watchers",
                "detail": "7 watchers",
                "points": 4.3,
                "status": "partial",
                "details": [
                  {
                    "code": "watchers",
                    "params": {
                      "count": 7
                    }
                  }
                ],
                "max_points": 15
              }
            ]
          },
          {
            "key": "community_health",
            "band": "excellent",
            "name": "Community health",
            "note": null,
            "notes": [],
            "value": 86,
            "inputs": {
              "has_readme": true,
              "has_license": true,
              "has_contributing": true,
              "has_issue_template": false,
              "has_code_of_conduct": true,
              "has_pull_request_template": true
            },
            "components": [
              {
                "key": "readme",
                "name": "README",
                "detail": null,
                "points": 22.5,
                "status": "met",
                "details": [],
                "max_points": 22.5
              },
              {
                "key": "license",
                "name": "License",
                "detail": "license file present, not a recognized license",
                "points": 16.9,
                "status": "partial",
                "details": [
                  {
                    "code": "license_custom",
                    "params": {}
                  }
                ],
                "max_points": 22.5
              },
              {
                "key": "contributing_guide",
                "name": "CONTRIBUTING guide",
                "detail": null,
                "points": 18,
                "status": "met",
                "details": [],
                "max_points": 18
              },
              {
                "key": "code_of_conduct",
                "name": "Code of conduct",
                "detail": null,
                "points": 13.5,
                "status": "met",
                "details": [],
                "max_points": 13.5
              },
              {
                "key": "issue_template",
                "name": "Issue template",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 7.2
              },
              {
                "key": "pr_template",
                "name": "PR template",
                "detail": null,
                "points": 6.3,
                "status": "met",
                "details": [],
                "max_points": 6.3
              }
            ]
          },
          {
            "key": "ecosystem_adoption",
            "band": "excellent",
            "name": "Ecosystem adoption (downloads)",
            "note": "Excluded from scoring (no data or not applicable): Registry dependents. Remaining weights renormalized.",
            "notes": [
              {
                "code": "excluded_no_data",
                "params": {
                  "components": [
                    "registry_dependents"
                  ]
                }
              },
              {
                "code": "weights_renormalized",
                "params": {}
              }
            ],
            "value": 100,
            "inputs": {
              "packages": [
                "openfeature-provider-posthog",
                "posthog"
              ],
              "dependents": null,
              "ecosystems": "pypi",
              "total_downloads": null,
              "monthly_downloads": 48250479
            },
            "components": [
              {
                "key": "monthly_downloads",
                "name": "Monthly downloads",
                "detail": "48,250,479 downloads/month across pypi",
                "points": 80,
                "status": "met",
                "details": [
                  {
                    "code": "downloads_monthly",
                    "params": {
                      "count": 48250479,
                      "ecosystems": "pypi"
                    }
                  }
                ],
                "max_points": 80
              },
              {
                "key": "registry_dependents",
                "name": "Registry dependents",
                "detail": "not reported by this ecosystem",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "not_reported_by_this_ecosystem",
                    "params": {}
                  }
                ],
                "max_points": 20
              }
            ]
          }
        ],
        "description": "Does the project have users, downloads, attention, and a welcoming setup for contributors?"
      },
      {
        "key": "governance",
        "band": "excellent",
        "name": "Sustainability & Governance",
        "value": 88,
        "weight": 0.24,
        "metrics": [
          {
            "key": "maintainer_resilience",
            "band": "excellent",
            "name": "Maintainer resilience (bus factor)",
            "note": null,
            "notes": [],
            "value": 94,
            "inputs": {
              "bus_factor": 7,
              "contributors_sampled": 77,
              "top_contributor_share": 0.123
            },
            "components": [
              {
                "key": "bus_factor",
                "name": "Bus factor",
                "detail": "7 contributor(s) cover half of all commits",
                "points": 51.3,
                "status": "partial",
                "details": [
                  {
                    "code": "bus_factor",
                    "params": {
                      "count": 7
                    }
                  }
                ],
                "max_points": 54
              },
              {
                "key": "commit_distribution",
                "name": "Commit distribution",
                "detail": "top contributor authored 12% of commits",
                "points": 19.7,
                "status": "partial",
                "details": [
                  {
                    "code": "top_contributor_share",
                    "params": {
                      "share": 12
                    }
                  }
                ],
                "max_points": 22.5
              },
              {
                "key": "contributor_breadth",
                "name": "Contributor breadth",
                "detail": "77 contributors",
                "points": 13.5,
                "status": "met",
                "details": [
                  {
                    "code": "contributors_sampled",
                    "params": {
                      "count": 77
                    }
                  }
                ],
                "max_points": 13.5
              },
              {
                "key": "openssf_scorecard_contributors",
                "name": "OpenSSF Scorecard: Contributors",
                "detail": "project has 15 contributing companies or organizations",
                "points": 10,
                "status": "met",
                "details": [],
                "max_points": 10
              }
            ]
          },
          {
            "key": "responsiveness",
            "band": "good",
            "name": "Issue & PR responsiveness",
            "note": null,
            "notes": [],
            "value": 80,
            "inputs": {
              "merged_prs": 527,
              "open_issues": 4,
              "closed_issues": 82,
              "issue_closed_ratio": 0.953,
              "closed_unmerged_prs": 116
            },
            "components": [
              {
                "key": "issue_resolution",
                "name": "Issue resolution",
                "detail": "95% of issues closed",
                "points": 44.6,
                "status": "partial",
                "details": [
                  {
                    "code": "issues_closed_share",
                    "params": {
                      "share": 95
                    }
                  }
                ],
                "max_points": 46.75
              },
              {
                "key": "pr_acceptance",
                "name": "PR acceptance",
                "detail": "527/643 decided PRs merged",
                "points": 31.3,
                "status": "partial",
                "details": [
                  {
                    "code": "decided_prs_merged",
                    "params": {
                      "merged": 527,
                      "decided": 643
                    }
                  }
                ],
                "max_points": 38.25
              },
              {
                "key": "openssf_scorecard_code_review",
                "name": "OpenSSF Scorecard: Code-Review",
                "detail": "Found 9/23 approved changesets -- score normalized to 3",
                "points": 4.5,
                "status": "partial",
                "details": [],
                "max_points": 15
              }
            ]
          },
          {
            "key": "stewardship",
            "band": "good",
            "name": "Ownership & stewardship",
            "note": null,
            "notes": [],
            "value": 79,
            "inputs": {
              "followers": 2027,
              "owner_type": "Organization",
              "is_verified": null,
              "owner_login": "PostHog",
              "public_repos": 357,
              "account_age_days": 2361
            },
            "components": [
              {
                "key": "ownership_backing",
                "name": "Ownership backing",
                "detail": "organization-owned",
                "points": 30,
                "status": "met",
                "details": [
                  {
                    "code": "owner_organization",
                    "params": {}
                  }
                ],
                "max_points": 30
              },
              {
                "key": "verified_domain",
                "name": "Verified domain",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 20
              },
              {
                "key": "owner_reach",
                "name": "Owner reach",
                "detail": "2,027 followers of PostHog",
                "points": 23.8,
                "status": "partial",
                "details": [
                  {
                    "code": "owner_followers",
                    "params": {
                      "count": 2027,
                      "login": "PostHog"
                    }
                  }
                ],
                "max_points": 25
              },
              {
                "key": "track_record",
                "name": "Track record",
                "detail": "357 public repos, account ~6 yr old",
                "points": 25,
                "status": "met",
                "details": [
                  {
                    "code": "public_repos",
                    "params": {
                      "count": 357
                    }
                  },
                  {
                    "code": "account_age_years",
                    "params": {
                      "years": 6
                    }
                  }
                ],
                "max_points": 25
              }
            ]
          },
          {
            "key": "package_maintenance",
            "band": "excellent",
            "name": "Package maintenance",
            "note": null,
            "notes": [],
            "value": 100,
            "inputs": {
              "packages": [
                "openfeature-provider-posthog",
                "posthog"
              ],
              "ecosystems": "pypi",
              "any_deprecated": false,
              "min_days_since_publish": 0
            },
            "components": [
              {
                "key": "published_resolvable",
                "name": "Published & resolvable",
                "detail": "2 package(s) on pypi",
                "points": 25,
                "status": "met",
                "details": [
                  {
                    "code": "packages_published",
                    "params": {
                      "count": 2,
                      "ecosystems": "pypi"
                    }
                  }
                ],
                "max_points": 25
              },
              {
                "key": "publish_recency",
                "name": "Publish recency",
                "detail": "latest publish 0 days ago",
                "points": 35,
                "status": "met",
                "details": [
                  {
                    "code": "publish_recency",
                    "params": {
                      "days": 0
                    }
                  }
                ],
                "max_points": 35
              },
              {
                "key": "version_history",
                "name": "Version history",
                "detail": "230 published versions",
                "points": 20,
                "status": "met",
                "details": [
                  {
                    "code": "published_versions",
                    "params": {
                      "count": 230
                    }
                  }
                ],
                "max_points": 20
              },
              {
                "key": "not_deprecated",
                "name": "Not deprecated",
                "detail": "active, not deprecated or yanked",
                "points": 20,
                "status": "met",
                "details": [
                  {
                    "code": "package_not_deprecated",
                    "params": {}
                  }
                ],
                "max_points": 20
              }
            ]
          }
        ],
        "description": "Will the project survive its people — bus factor, responsiveness, who backs it, and package upkeep?"
      },
      {
        "key": "engineering",
        "band": "good",
        "name": "Engineering Quality",
        "value": 78,
        "weight": 0.2,
        "metrics": [
          {
            "key": "engineering_practices",
            "band": "excellent",
            "name": "Engineering practices",
            "note": null,
            "notes": [],
            "value": 94,
            "inputs": {
              "has_ci": true,
              "has_tests": true,
              "has_editorconfig": false,
              "has_linter_config": true,
              "has_precommit_config": true
            },
            "components": [
              {
                "key": "ci_workflows",
                "name": "CI workflows",
                "detail": "7 workflow(s)",
                "points": 24,
                "status": "met",
                "details": [
                  {
                    "code": "ci_workflows",
                    "params": {
                      "count": 7
                    }
                  }
                ],
                "max_points": 24
              },
              {
                "key": "tests_present",
                "name": "Tests present",
                "detail": null,
                "points": 24,
                "status": "met",
                "details": [],
                "max_points": 24
              },
              {
                "key": "linter_config",
                "name": "Linter config",
                "detail": null,
                "points": 16,
                "status": "met",
                "details": [],
                "max_points": 16
              },
              {
                "key": "pre_commit_hooks",
                "name": "Pre-commit hooks",
                "detail": null,
                "points": 9.6,
                "status": "met",
                "details": [],
                "max_points": 9.6
              },
              {
                "key": "editorconfig",
                "name": ".editorconfig",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 6.4
              },
              {
                "key": "openssf_scorecard_ci_tests",
                "name": "OpenSSF Scorecard: CI-Tests",
                "detail": "16 out of 16 merged PRs checked by a CI test -- score normalized to 10",
                "points": 20,
                "status": "met",
                "details": [],
                "max_points": 20
              }
            ]
          },
          {
            "key": "documentation",
            "band": "moderate",
            "name": "Documentation",
            "note": null,
            "notes": [],
            "value": 55,
            "inputs": {
              "topics": [],
              "has_wiki": false,
              "homepage": "https://posthog.com/docs/libraries/python",
              "has_readme": true,
              "has_docs_dir": false,
              "has_description": true
            },
            "components": [
              {
                "key": "readme",
                "name": "README",
                "detail": null,
                "points": 30,
                "status": "met",
                "details": [],
                "max_points": 30
              },
              {
                "key": "documentation_directory",
                "name": "Documentation directory",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 25
              },
              {
                "key": "documentation_homepage_site",
                "name": "Documentation / homepage site",
                "detail": "https://posthog.com/docs/libraries/python",
                "points": 15,
                "status": "met",
                "details": [],
                "max_points": 15
              },
              {
                "key": "repository_description",
                "name": "Repository description",
                "detail": null,
                "points": 10,
                "status": "met",
                "details": [],
                "max_points": 10
              },
              {
                "key": "topics",
                "name": "Topics",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 10
              },
              {
                "key": "wiki",
                "name": "Wiki",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 10
              }
            ]
          }
        ],
        "description": "Are baseline engineering and documentation practices in place?"
      },
      {
        "key": "security",
        "band": "moderate",
        "name": "Security",
        "value": 65,
        "weight": 0.16,
        "metrics": [
          {
            "key": "security_posture",
            "band": "moderate",
            "name": "Security posture",
            "note": "Excluded from scoring (no data or not applicable): Signed-Releases. Remaining weights renormalized.",
            "notes": [
              {
                "code": "excluded_no_data",
                "params": {
                  "components": [
                    "signed_releases"
                  ]
                }
              },
              {
                "code": "weights_renormalized",
                "params": {}
              }
            ],
            "value": 65,
            "inputs": {
              "source": "openssf_scorecard",
              "checks_evaluated": 17,
              "scorecard_version": "v5.5.0",
              "checks_inconclusive": 1,
              "scorecard_aggregate": 6.5
            },
            "components": [
              {
                "key": "binary_artifacts",
                "name": "Binary-Artifacts",
                "detail": "no binaries found in the repo",
                "points": 7.5,
                "status": "met",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "branch_protection",
                "name": "Branch-Protection",
                "detail": "branch protection is not maximal on development and all release branches",
                "points": 3,
                "status": "partial",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "ci_tests",
                "name": "CI-Tests",
                "detail": "16 out of 16 merged PRs checked by a CI test -- score normalized to 10",
                "points": 2.5,
                "status": "met",
                "details": [],
                "max_points": 2.5
              },
              {
                "key": "cii_best_practices",
                "name": "CII-Best-Practices",
                "detail": "no effort to earn an OpenSSF best practices badge detected",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 2.5
              },
              {
                "key": "code_review",
                "name": "Code-Review",
                "detail": "Found 9/23 approved changesets -- score normalized to 3",
                "points": 2.2,
                "status": "partial",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "contributors",
                "name": "Contributors",
                "detail": "project has 15 contributing companies or organizations",
                "points": 2.5,
                "status": "met",
                "details": [],
                "max_points": 2.5
              },
              {
                "key": "dangerous_workflow",
                "name": "Dangerous-Workflow",
                "detail": "no dangerous workflow patterns detected",
                "points": 10,
                "status": "met",
                "details": [],
                "max_points": 10
              },
              {
                "key": "dependency_update_tool",
                "name": "Dependency-Update-Tool",
                "detail": "update tool detected",
                "points": 7.5,
                "status": "met",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "fuzzing",
                "name": "Fuzzing",
                "detail": "project is not fuzzed",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 5
              },
              {
                "key": "license",
                "name": "License",
                "detail": "license file detected",
                "points": 2.2,
                "status": "partial",
                "details": [],
                "max_points": 2.5
              },
              {
                "key": "maintained",
                "name": "Maintained",
                "detail": "30 commit(s) and 11 issue activity found in the last 90 days -- score normalized to 10",
                "points": 7.5,
                "status": "met",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "packaging",
                "name": "Packaging",
                "detail": "packaging workflow detected",
                "points": 5,
                "status": "met",
                "details": [],
                "max_points": 5
              },
              {
                "key": "pinned_dependencies",
                "name": "Pinned-Dependencies",
                "detail": "dependency not pinned by hash detected -- score normalized to 7",
                "points": 3.5,
                "status": "partial",
                "details": [],
                "max_points": 5
              },
              {
                "key": "sast",
                "name": "SAST",
                "detail": "SAST tool is run on all commits",
                "points": 5,
                "status": "met",
                "details": [],
                "max_points": 5
              },
              {
                "key": "security_policy",
                "name": "Security-Policy",
                "detail": "security policy file detected",
                "points": 5,
                "status": "met",
                "details": [],
                "max_points": 5
              },
              {
                "key": "signed_releases",
                "name": "Signed-Releases",
                "detail": "no releases found",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "no_data",
                    "params": {}
                  }
                ],
                "max_points": 7.5
              },
              {
                "key": "token_permissions",
                "name": "Token-Permissions",
                "detail": "detected GitHub workflow tokens with excessive permissions",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "vulnerabilities",
                "name": "Vulnerabilities",
                "detail": "109 existing vulnerabilities detected",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 7.5
              }
            ]
          },
          {
            "key": "high_risk_jurisdiction_exposure",
            "band": "excellent",
            "name": "High-Risk Jurisdiction Exposure",
            "note": "Only high-confidence self-published location evidence affects this multiplier. Ambiguous matches are review-only; country evidence is not proof of nationality, citizenship, legal registration, malicious intent, or sanctions status.",
            "notes": [
              {
                "code": "jurisdiction_evidence_limits",
                "params": {}
              }
            ],
            "value": 100,
            "inputs": {
              "meaning": "self-published location evidence; not nationality or citizenship",
              "red_flag": false,
              "exposures": [],
              "policy_countries": [
                "Russia",
                "Iran",
                "North Korea"
              ],
              "review_only_matches": 0,
              "assessed_self_published_locations": 6
            },
            "components": [
              {
                "key": "policy_exposure_multiplier",
                "name": "Policy exposure multiplier",
                "detail": "no confirmed policy-scope location match",
                "points": 100,
                "status": "met",
                "details": [
                  {
                    "code": "jurisdiction_no_match",
                    "params": {}
                  }
                ],
                "max_points": 100
              }
            ]
          }
        ],
        "description": "Are visible security and supply-chain practices strong, with no malicious dependency and no unresolved high-risk jurisdiction exposure?"
      },
      {
        "key": "ai_readiness",
        "band": "good",
        "name": "AI Readiness",
        "value": 78,
        "weight": 0,
        "metrics": [
          {
            "key": "ai_agent_context",
            "band": "good",
            "name": "Agent context & guidance",
            "note": "Excluded from scoring (no data or not applicable): Legible commit history. Remaining weights renormalized.",
            "notes": [
              {
                "code": "excluded_no_data",
                "params": {
                  "components": [
                    "legible_commit_history"
                  ]
                }
              },
              {
                "code": "weights_renormalized",
                "params": {}
              }
            ],
            "value": 75,
            "inputs": {
              "has_llms_txt": false,
              "legible_history_share": null,
              "agent_instruction_files": [
                "AGENTS.md"
              ],
              "agent_instruction_max_bytes": 5396
            },
            "components": [
              {
                "key": "agent_instructions",
                "name": "Agent instructions",
                "detail": "AGENTS.md",
                "points": 45,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": "AGENTS.md"
                    }
                  }
                ],
                "max_points": 45
              },
              {
                "key": "machine_readable_docs_llms_txt",
                "name": "Machine-readable docs (llms.txt)",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 15
              },
              {
                "key": "legible_commit_history",
                "name": "Legible commit history",
                "detail": "no data",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "no_data",
                    "params": {}
                  }
                ],
                "max_points": 40
              }
            ]
          },
          {
            "key": "ai_verify_loop",
            "band": "excellent",
            "name": "Verify loop (build / test / typecheck)",
            "note": "Excluded from scoring (no data or not applicable): Demonstrated agent practice. Remaining weights renormalized.",
            "notes": [
              {
                "code": "excluded_no_data",
                "params": {
                  "components": [
                    "demonstrated_agent_practice"
                  ]
                }
              },
              {
                "code": "weights_renormalized",
                "params": {}
              }
            ],
            "value": 93,
            "inputs": {
              "has_nix": false,
              "has_tests": true,
              "lockfiles": [
                "uv.lock"
              ],
              "has_dockerfile": true,
              "typed_language": false,
              "bootstrap_files": [
                "Makefile"
              ],
              "has_devcontainer": false,
              "has_linter_config": true,
              "typecheck_configs": [
                "mypy.ini",
                "openfeature-provider/openfeature/contrib/provider/posthog/py.typed",
                "posthog/py.typed"
              ],
              "agent_commit_share": null,
              "toolchain_manifests": [],
              "dependency_bot_commit_share": 0
            },
            "components": [
              {
                "key": "one_command_bootstrap",
                "name": "One-command bootstrap",
                "detail": "Makefile",
                "points": 18,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": "Makefile"
                    }
                  }
                ],
                "max_points": 18
              },
              {
                "key": "automated_tests",
                "name": "Automated tests",
                "detail": null,
                "points": 22,
                "status": "met",
                "details": [],
                "max_points": 22
              },
              {
                "key": "lint_format_config",
                "name": "Lint / format config",
                "detail": null,
                "points": 11,
                "status": "met",
                "details": [],
                "max_points": 11
              },
              {
                "key": "static_type_checking",
                "name": "Static type checking",
                "detail": "mypy.ini, openfeature-provider/openfeature/contrib/provider/posthog/py.typed, posthog/py.typed",
                "points": 11,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": "mypy.ini, openfeature-provider/openfeature/contrib/provider/posthog/py.typed, posthog/py.typed"
                    }
                  }
                ],
                "max_points": 11
              },
              {
                "key": "reproducible_environment",
                "name": "Reproducible environment",
                "detail": "Dockerfile, lockfile",
                "points": 10,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": "Dockerfile, lockfile"
                    }
                  }
                ],
                "max_points": 10
              },
              {
                "key": "demonstrated_agent_practice",
                "name": "Demonstrated agent practice",
                "detail": "no data",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "no_data",
                    "params": {}
                  }
                ],
                "max_points": 10
              },
              {
                "key": "automated_maintenance",
                "name": "Automated maintenance",
                "detail": "dependency automation configured, none observed in the sampled commits",
                "points": 5,
                "status": "partial",
                "details": [
                  {
                    "code": "dependency_bot_config_only",
                    "params": {}
                  }
                ],
                "max_points": 8
              },
              {
                "key": "openssf_scorecard_pinned_dependencies",
                "name": "OpenSSF Scorecard: Pinned-Dependencies",
                "detail": "dependency not pinned by hash detected -- score normalized to 7",
                "points": 7,
                "status": "partial",
                "details": [],
                "max_points": 10
              }
            ]
          },
          {
            "key": "ai_code_legibility",
            "band": "good",
            "name": "Code legibility for models",
            "note": null,
            "notes": [],
            "value": 81,
            "inputs": {
              "primary_language": "Python",
              "largest_source_bytes": 290382,
              "source_files_sampled": 226,
              "oversized_source_files": 5
            },
            "components": [
              {
                "key": "type_checkable_code",
                "name": "Type-checkable code",
                "detail": "Python with type-check config (mypy.ini, openfeature-provider/openfeature/contrib/provider/posthog/py.typed, posthog/py.typed)",
                "points": 27,
                "status": "partial",
                "details": [
                  {
                    "code": "typecheck_config_language",
                    "params": {
                      "files": "mypy.ini, openfeature-provider/openfeature/contrib/provider/posthog/py.typed, posthog/py.typed",
                      "language": "Python"
                    }
                  }
                ],
                "max_points": 45
              },
              {
                "key": "manageable_file_sizes",
                "name": "Manageable file sizes",
                "detail": "5/226 source files over 60KB",
                "points": 53.8,
                "status": "partial",
                "details": [
                  {
                    "code": "oversized_source_files",
                    "params": {
                      "kb": 60,
                      "sampled": 226,
                      "oversized": 5
                    }
                  }
                ],
                "max_points": 55
              }
            ]
          },
          {
            "key": "ai_interfaces",
            "band": "at_risk",
            "name": "Machine-readable interfaces",
            "note": null,
            "notes": [],
            "value": 40,
            "inputs": {
              "example_dirs": [
                "examples"
              ],
              "has_mcp_signal": false,
              "api_schema_files": []
            },
            "components": [
              {
                "key": "api_schema_openapi_graphql_proto",
                "name": "API schema (OpenAPI/GraphQL/proto)",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 40
              },
              {
                "key": "mcp_server",
                "name": "MCP server",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 20
              },
              {
                "key": "runnable_examples",
                "name": "Runnable examples",
                "detail": "examples",
                "points": 40,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": "examples"
                    }
                  }
                ],
                "max_points": 40
              }
            ]
          }
        ],
        "description": "How well is the repo equipped to be developed and maintained with AI coding agents? An independent, experimental badge — weight 0.0, so it is surfaced on its own and does not affect the overall health score."
      }
    ],
    "metrics_version": "1.13.0"
  },
  "warnings": [],
  "report_type": "repository",
  "generated_at": "2026-07-15T04:11:54.680673Z",
  "schema_version": "0.11.0",
  "badge_url": "https://raw.githubusercontent.com/inspect-software/badges/main/v1/p/posthog/posthog-python.svg",
  "full_name": "posthog/posthog-python",
  "license_state": "custom",
  "license_spdx": null
}

Las puntuaciones son señales, no garantías. Reflejan prácticas públicamente visibles en GitHub; no son una auditoría de código ni una garantía de seguridad.

Los datos ausentes se excluyen y los pesos se renormalizan; nunca se puntúan como cero. La metodología es versionada y abierta: métricas v1.13.0, esquema v0.11.0 — metodología completa · wiki de métricas.

Cómo se sitúa un resultado dentro del registro general: estadísticas agregadasPyPI.