Files
nixpkgs/pkgs/development/python-modules/linearmodels/default.nix
2025-09-27 18:37:58 +02:00

72 lines
1.5 KiB
Nix

{
lib,
buildPythonPackage,
fetchFromGitHub,
cython,
formulaic,
mypy-extensions,
numpy,
pandas,
pyhdfe,
pytestCheckHook,
scipy,
setuptools,
setuptools-scm,
statsmodels,
}:
buildPythonPackage rec {
pname = "linearmodels";
version = "6.1";
pyproject = true;
src = fetchFromGitHub {
owner = "bashtage";
repo = "linearmodels";
tag = "v${version}";
hash = "sha256-oWVBsFSKnv/8AHYP5sxO6+u5+hsOw/uQlOetse5ue88=";
};
postPatch = ''
substituteInPlace requirements.txt \
--replace-fail "setuptools_scm[toml]>=8.0.0,<9.0.0" "setuptools_scm[toml]"
substituteInPlace pyproject.toml \
--replace-fail "setuptools_scm[toml]>=8,<9" "setuptools_scm[toml]"
'';
build-system = [
setuptools
setuptools-scm
cython
];
env.SETUPTOOLS_SCM_PRETEND_VERSION = version;
dependencies = [
formulaic
mypy-extensions
numpy
pandas
pyhdfe
scipy
statsmodels
];
nativeCheckInputs = [ pytestCheckHook ];
pythonImportsCheck = [ "linearmodels" ];
disabledTestPaths = [
# Skip long-running tests
"linearmodels/tests/panel/test_panel_ols.py"
];
meta = {
description = "Models for panel data, system regression, instrumental variables and asset pricing";
homepage = "https://bashtage.github.io/linearmodels/";
changelog = "https://github.com/bashtage/linearmodels/releases/tag/v${version}";
license = lib.licenses.ncsa;
maintainers = with lib.maintainers; [ jherland ];
};
}