1{
2 lib,
3 buildPythonPackage,
4 ddt,
5 fetchPypi,
6 flake8,
7 pbr,
8 pythonOlder,
9 setuptools,
10 stestr,
11 testscenarios,
12}:
13
14buildPythonPackage rec {
15 pname = "hacking";
16 version = "7.0.0";
17 pyproject = true;
18
19 disabled = pythonOlder "3.8";
20
21 src = fetchPypi {
22 inherit pname version;
23 hash = "sha256-ubbC5SgPfVT6gsWP4JmD9oxbb2NKw/ozn4uhalcVyrc=";
24 };
25
26 postPatch = ''
27 sed -i 's/flake8.*/flake8/' requirements.txt
28 '';
29
30 build-system = [
31 pbr
32 setuptools
33 ];
34
35 dependencies = [ flake8 ];
36
37 nativeCheckInputs = [
38 ddt
39 stestr
40 testscenarios
41 ];
42
43 checkPhase = ''
44 runHook preCheck
45 stestr run
46 runHook postCheck
47 '';
48
49 pythonImportsCheck = [ "hacking" ];
50
51 meta = with lib; {
52 description = "OpenStack Hacking Guideline Enforcement";
53 homepage = "https://github.com/openstack/hacking";
54 license = licenses.asl20;
55 teams = [ teams.openstack ];
56 };
57}