1{
2 lib,
3 buildPythonPackage,
4 fetchFromGitHub,
5 mock,
6 ply,
7 pytestCheckHook,
8 pythonAtLeast,
9 pythonOlder,
10 setuptools,
11 six,
12}:
13
14buildPythonPackage rec {
15 pname = "stone";
16 version = "3.3.6";
17 pyproject = true;
18
19 # distutils removal, https://github.com/dropbox/stone/issues/323
20 disabled = pythonOlder "3.7" || pythonAtLeast "3.12";
21
22 src = fetchFromGitHub {
23 owner = "dropbox";
24 repo = "stone";
25 rev = "refs/tags/v${version}";
26 hash = "sha256-Og0hUUCCd9wRdHUhZBl62rDAunP2Bph5COsCw/T1kUA=";
27 };
28
29 postPatch = ''
30 substituteInPlace setup.py \
31 --replace-fail "'pytest-runner == 5.3.2'," ""
32 '';
33
34 build-system = [ setuptools ];
35
36 dependencies = [
37 ply
38 six
39 ];
40
41 nativeCheckInputs = [
42 pytestCheckHook
43 mock
44 ];
45
46 pythonImportsCheck = [ "stone" ];
47
48 meta = with lib; {
49 description = "Official Api Spec Language for Dropbox";
50 homepage = "https://github.com/dropbox/stone";
51 changelog = "https://github.com/dropbox/stone/releases/tag/v${version}";
52 license = licenses.mit;
53 maintainers = with maintainers; [ jonringer ];
54 mainProgram = "stone";
55 };
56}