{"adoption": {"forks": 186, "observed_at": "2026-08-28T04:04:56.095898+00:00", "stars": 1512}, "canonical_url": "https://ross.abutalabs.com/products/pycalljl", "card": {"archived": false, "artifact_type": "library", "description": "Package to call Python functions from the Julia language", "domain": ["programming-languages", "developer-tools", "data-science"], "enriched": true, "function": ["sdk", "developer-tools"], "health_score": 82, "homepage": null, "language": "Julia", "license": "MIT", "license_family": "permissive", "maturity": "stable", "member_repos": ["JuliaPy/PyCall.jl"], "name": "JuliaPy/PyCall.jl", "platform": ["python", "cross-platform"], "pushed_at": "2026-08-06T18:28:52+00:00", "repo": "JuliaPy/PyCall.jl", "stars": 1512, "tags": ["julia", "python-interop", "foreign-function-interface", "numpy"], "topics": ["julia", "python", "interoperability", "numpy"], "urls": [], "use_cases": ["call python functions from julia", "use numpy arrays in julia without copying data", "import python libraries like matplotlib or sympy into julia", "define python classes implemented with julia methods", "bridge julia and python in a data science workflow"], "what_it_is": "PyCall.jl is a Julia package that lets Julia code import Python modules, call Python functions, and share data structures with Python without copying. It handles automatic type conversion between Julia and Python and can manage a private Miniconda Python installation.", "when_to_avoid": ["you only need pure Python or pure Julia code", "you need to call Julia from Python rather than the reverse (consider PyJulia)", "you need a lightweight FFI without a Python runtime dependency"], "when_to_choose": ["you are writing Julia and need access to the Python ecosystem", "you want zero-copy sharing of large arrays between Julia and Python", "you want automatic Julia/Python type conversion"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/pycalljl", "repo": "JuliaPy/PyCall.jl", "role": "main", "score": 66}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:04:56.095898+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T04:32:18.789256+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4a3e40cd50457a6e6ecb90f8cf295f0c12ca03464a1bfb1f103e52c667b3a30e", "fetched_at": "2026-08-28T04:04:56.095898+00:00", "kind": "readme", "missing": false, "url": "https://github.com/JuliaPy/PyCall.jl"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:04:56.095898+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T04:32:18.789256+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4a3e40cd50457a6e6ecb90f8cf295f0c12ca03464a1bfb1f103e52c667b3a30e", "fetched_at": "2026-08-28T04:04:56.095898+00:00", "kind": "readme", "missing": false, "url": "https://github.com/JuliaPy/PyCall.jl"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T04:32:18.789256+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4a3e40cd50457a6e6ecb90f8cf295f0c12ca03464a1bfb1f103e52c667b3a30e", "fetched_at": "2026-08-28T04:04:56.095898+00:00", "kind": "readme", "missing": false, "url": "https://github.com/JuliaPy/PyCall.jl"}], "taxonomy_version": 1}, "health_score": {"inputs": ["days_since_push", "days_since_release", "archived"], "kind": "computed", "method": "health_v1"}, "homepage": {"kind": "observed", "observed_at": "2026-08-28T04:04:56.095898+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:04:56.095898+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:04:56.095898+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T04:32:18.789256+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4a3e40cd50457a6e6ecb90f8cf295f0c12ca03464a1bfb1f103e52c667b3a30e", "fetched_at": "2026-08-28T04:04:56.095898+00:00", "kind": "readme", "missing": false, "url": "https://github.com/JuliaPy/PyCall.jl"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:04:56.095898+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:04:56.095898+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T04:32:18.789256+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4a3e40cd50457a6e6ecb90f8cf295f0c12ca03464a1bfb1f103e52c667b3a30e", "fetched_at": "2026-08-28T04:04:56.095898+00:00", "kind": "readme", "missing": false, "url": "https://github.com/JuliaPy/PyCall.jl"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:04:56.095898+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:04:56.095898+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:04:56.095898+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T04:32:18.789256+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4a3e40cd50457a6e6ecb90f8cf295f0c12ca03464a1bfb1f103e52c667b3a30e", "fetched_at": "2026-08-28T04:04:56.095898+00:00", "kind": "readme", "missing": false, "url": "https://github.com/JuliaPy/PyCall.jl"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:04:56.095898+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:04:56.095898+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T04:32:18.789256+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4a3e40cd50457a6e6ecb90f8cf295f0c12ca03464a1bfb1f103e52c667b3a30e", "fetched_at": "2026-08-28T04:04:56.095898+00:00", "kind": "readme", "missing": false, "url": "https://github.com/JuliaPy/PyCall.jl"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T04:32:18.789256+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4a3e40cd50457a6e6ecb90f8cf295f0c12ca03464a1bfb1f103e52c667b3a30e", "fetched_at": "2026-08-28T04:04:56.095898+00:00", "kind": "readme", "missing": false, "url": "https://github.com/JuliaPy/PyCall.jl"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T04:32:18.789256+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4a3e40cd50457a6e6ecb90f8cf295f0c12ca03464a1bfb1f103e52c667b3a30e", "fetched_at": "2026-08-28T04:04:56.095898+00:00", "kind": "readme", "missing": false, "url": "https://github.com/JuliaPy/PyCall.jl"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T04:32:18.789256+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4a3e40cd50457a6e6ecb90f8cf295f0c12ca03464a1bfb1f103e52c667b3a30e", "fetched_at": "2026-08-28T04:04:56.095898+00:00", "kind": "readme", "missing": false, "url": "https://github.com/JuliaPy/PyCall.jl"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 96, "longevity": 100, "rhythm": 8}, "computed_at": "2026-09-03T02:20:16.233290+00:00", "flags": [], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 4947, "days_push": 27, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 66, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}