1{
2 lib,
3 buildPythonPackage,
4 fetchFromGitHub,
5 cython,
6 numpy,
7 pandas,
8 property-cached,
9 pytestCheckHook,
10 scipy,
11 setuptools,
12 setuptools-scm,
13 statsmodels,
14}:
15
16buildPythonPackage rec {
17 pname = "arch";
18 version = "7.2.0";
19 pyproject = true;
20
21 src = fetchFromGitHub {
22 owner = "bashtage";
23 repo = "arch";
24 tag = "v${version}";
25 hash = "sha256-3H/6mdPg8rg+N1wecqLDzc7Ot3SnUVpOagns4PsTD/Q=";
26 };
27
28 postPatch = ''
29 substituteInPlace setup.cfg \
30 --replace-fail 'PytestRemovedIn8Warning' 'PytestRemovedIn9Warning'
31 substituteInPlace pyproject.toml \
32 --replace-fail '"setuptools_scm[toml]>=8.0.3,<9",' '"setuptools_scm[toml]",'
33 '';
34
35 build-system = [
36 setuptools
37 setuptools-scm
38 cython
39 ];
40
41 dependencies = [
42 numpy
43 pandas
44 property-cached
45 scipy
46 statsmodels
47 ];
48
49 nativeCheckInputs = [ pytestCheckHook ];
50
51 disabledTestPaths = [
52 # Skip long-running/failing tests
53 "arch/tests/univariate/test_forecast.py"
54 "arch/tests/univariate/test_mean.py"
55 ];
56
57 pythonImportsCheck = [ "arch" ];
58
59 meta = {
60 description = "Autoregressive Conditional Heteroskedasticity (ARCH) and other tools for financial econometrics";
61 homepage = "https://github.com/bashtage/arch";
62 changelog = "https://github.com/bashtage/arch/releases/tag/v${version}";
63 license = lib.licenses.mit;
64 maintainers = with lib.maintainers; [ jherland ];
65 };
66}