1{ lib 2, buildPythonPackage 3, fetchPypi 4, pbr 5, flake8 6, stestr 7, ddt 8, testscenarios 9}: 10 11buildPythonPackage rec { 12 pname = "hacking"; 13 version = "6.0.1"; 14 15 src = fetchPypi { 16 inherit pname version; 17 hash = "sha256-YdeEb8G58m7CFnjpkHQmkJX5ZNe72M1kbrbIxML4jcE="; 18 }; 19 20 postPatch = '' 21 sed -i 's/flake8.*/flake8/' requirements.txt 22 substituteInPlace hacking/checks/python23.py \ 23 --replace 'H236: class Foo(object):\n __metaclass__ = \' 'Okay: class Foo(object):\n __metaclass__ = \' 24 substituteInPlace hacking/checks/except_checks.py \ 25 --replace 'H201: except:' 'Okay: except:' 26 ''; 27 28 nativeBuildInputs = [ pbr ]; 29 30 propagatedBuildInputs = [ 31 flake8 32 ]; 33 34 nativeCheckInputs = [ 35 ddt 36 stestr 37 testscenarios 38 ]; 39 40 checkPhase = '' 41 # tries to trigger flake8 and fails 42 rm hacking/tests/test_doctest.py 43 44 stestr run 45 ''; 46 47 pythonImportsCheck = [ "hacking" ]; 48 49 meta = with lib; { 50 description = "OpenStack Hacking Guideline Enforcement"; 51 homepage = "https://github.com/openstack/hacking"; 52 license = licenses.asl20; 53 maintainers = teams.openstack.members; 54 }; 55}