1{
2 lib,
3 buildPythonPackage,
4 fetchFromGitHub,
5 setuptools,
6 ply,
7 pytestCheckHook,
8}:
9
10buildPythonPackage rec {
11 pname = "calmjs-parse";
12 version = "1.3.3";
13
14 pyproject = true;
15
16 src = fetchFromGitHub {
17 owner = "calmjs";
18 repo = "calmjs.parse";
19 tag = version;
20 hash = "sha256-aGGIwQBHToujc69zzIeEbvmYwLKA5X3bamVWBRmJtSE=";
21 };
22
23 postPatch = ''
24 substituteInPlace setup.py \
25 --replace-fail "env['PYTHONPATH'] = 'src'" "env['PYTHONPATH'] += ':src'"
26 '';
27
28 build-system = [ setuptools ];
29
30 dependencies = [
31 setuptools
32 ply
33 ];
34
35 nativeCheckInputs = [
36 pytestCheckHook
37 ];
38
39 pythonImportsCheck = [
40 "calmjs.parse"
41 "calmjs.parse.asttypes"
42 "calmjs.parse.parsers"
43 "calmjs.parse.rules"
44 "calmjs.parse.sourcemap"
45 "calmjs.parse.unparsers.es5"
46 "calmjs.parse.walkers"
47 ];
48
49 meta = with lib; {
50 changelog = "https://github.com/calmjs/calmjs.parse/blob/${src.rev}/CHANGES.rst";
51 description = "Various parsers for ECMA standards";
52 homepage = "https://github.com/calmjs/calmjs.parse";
53 license = licenses.mit;
54 maintainers = with maintainers; [ dotlambda ];
55 };
56}