nixpkgs mirror (for testing)
github.com/NixOS/nixpkgs
nix
1{
2 lib,
3 buildPythonPackage,
4 fetchFromGitHub,
5 fetchpatch2,
6 poetry-core,
7 snowballstemmer,
8 tomli,
9 pytestCheckHook,
10}:
11
12buildPythonPackage rec {
13 pname = "pydocstyle";
14 version = "6.3.0";
15 pyproject = true;
16
17 src = fetchFromGitHub {
18 owner = "PyCQA";
19 repo = "pydocstyle";
20 tag = version;
21 hash = "sha256-MjRrnWu18f75OjsYIlOLJK437X3eXnlW8WkkX7vdS6k=";
22 };
23
24 patches = [
25 # https://github.com/PyCQA/pydocstyle/pull/656
26 (fetchpatch2 {
27 name = "python312-compat.patch";
28 url = "https://github.com/PyCQA/pydocstyle/commit/306c7c8f2d863bdc098a65d2dadbd4703b9b16d5.patch";
29 hash = "sha256-bqnoLz1owzDpFqlZn8z4Z+RzKCYBsI0PqqeOtjLxnMo=";
30 })
31 ];
32
33 nativeBuildInputs = [ poetry-core ];
34
35 postPatch = ''
36 substituteInPlace pyproject.toml \
37 --replace 'version = "0.0.0-dev"' 'version = "${version}"'
38 '';
39
40 propagatedBuildInputs = [ snowballstemmer ];
41
42 optional-dependencies.toml = [ tomli ];
43
44 nativeCheckInputs = [ pytestCheckHook ] ++ optional-dependencies.toml;
45
46 disabledTestPaths = [
47 "src/tests/test_integration.py" # runs pip install
48 ];
49
50 meta = {
51 description = "Python docstring style checker";
52 mainProgram = "pydocstyle";
53 homepage = "https://github.com/PyCQA/pydocstyle";
54 changelog = "https://github.com/PyCQA/pydocstyle/blob/${version}/docs/release_notes.rst";
55 license = lib.licenses.mit;
56 maintainers = with lib.maintainers; [ dzabraev ];
57 };
58}