1{ lib
2, buildPythonPackage
3, pythonOlder
4, fetchPypi
5, fetchpatch
6, setuptools
7, fields
8, process-tests
9, pytestCheckHook
10, tornado
11}:
12
13buildPythonPackage rec {
14 pname = "aspectlib";
15 version = "2.0.0";
16
17 disabled = pythonOlder "3.7";
18
19 format = "pyproject";
20
21 src = fetchPypi {
22 inherit pname version;
23 hash = "sha256-pLRhudoLUxrry5PvzePegIpyxgIm3Y2QLEZ9E/r3zpI=";
24 };
25
26 patches = [
27 # https://github.com/ionelmc/python-aspectlib/pull/25
28 (fetchpatch {
29 name = "darwin-compat.patch";
30 url = "https://github.com/ionelmc/python-aspectlib/commit/ef2c12304f08723dc8e79d1c59bc32c946d758dc.patch";
31 hash = "sha256-gtPFtwDsGIMkHTyuoiLk+SAGgB2Wyx/Si9HIdoIsvI8=";
32 })
33 ];
34
35 nativeBuildInputs = [
36 setuptools
37 ];
38
39 propagatedBuildInputs = [
40 fields
41 ];
42
43 pythonImportsCheck = [
44 "aspectlib"
45 "aspectlib.contrib"
46 "aspectlib.debug"
47 "aspectlib.test"
48 ];
49
50 checkInputs = [
51 process-tests
52 pytestCheckHook
53 tornado
54 ];
55
56 __darwinAllowLocalNetworking = true;
57
58 meta = {
59 changelog = "https://github.com/ionelmc/python-aspectlib/blob/v${version}/CHANGELOG.rst";
60 description = "Aspect-oriented programming, monkey-patch and decorators library";
61 homepage = "https://github.com/ionelmc/python-aspectlib";
62 license = lib.licenses.bsd2;
63 maintainers = with lib.maintainers; [ dotlambda ];
64 };
65}