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