emacsPackages.treemacs: replace python3 program (#364623)
[NixPkgs.git] / pkgs / development / python-modules / calmjs-parse / default.nix
blob16722ff9d01d9d2bdbc02bd8d4acc8f42c92b2c7
2   lib,
3   buildPythonPackage,
4   fetchFromGitHub,
5   setuptools,
6   ply,
7   python,
8 }:
10 buildPythonPackage rec {
11   pname = "calmjs-parse";
12   version = "1.3.2";
14   pyproject = true;
16   src = fetchFromGitHub {
17     owner = "calmjs";
18     repo = "calmjs.parse";
19     rev = version;
20     hash = "sha256-+tel9AJFaKqsuSjqS1KPyRjO6iU7V90ECSEYLBdfqZU=";
21   };
23   postPatch = ''
24     substituteInPlace setup.py \
25       --replace-fail "env['PYTHONPATH'] = 'src'" "env['PYTHONPATH'] += ':src'"
26   '';
28   build-system = [ setuptools ];
30   dependencies = [
31     setuptools
32     ply
33   ];
35   checkPhase = ''
36     runHook preCheck
38     ${python.interpreter} -m unittest calmjs.parse.tests.make_suite
40     runHook postCheck
41   '';
43   pythonImportsCheck = [
44     "calmjs.parse"
45     "calmjs.parse.asttypes"
46     "calmjs.parse.parsers"
47     "calmjs.parse.rules"
48     "calmjs.parse.sourcemap"
49     "calmjs.parse.unparsers.es5"
50     "calmjs.parse.walkers"
51   ];
53   meta = with lib; {
54     changelog = "https://github.com/calmjs/calmjs.parse/blob/${src.rev}/CHANGES.rst";
55     description = "Various parsers for ECMA standards";
56     homepage = "https://github.com/calmjs/calmjs.parse";
57     license = licenses.mit;
58     maintainers = with maintainers; [ dotlambda ];
59   };