Clone of https://github.com/NixOS/nixpkgs.git (to stress-test knotserver)
1{ 2 lib, 3 buildPythonPackage, 4 fetchFromGitHub, 5 setuptools, 6 ply, 7 python, 8}: 9 10buildPythonPackage rec { 11 pname = "calmjs-parse"; 12 version = "1.3.1"; 13 14 pyproject = true; 15 16 src = fetchFromGitHub { 17 owner = "calmjs"; 18 repo = "calmjs.parse"; 19 rev = version; 20 hash = "sha256-xph+NuTkWfW0t/1vxWBSgsjU7YHQMnsm/W/XdkAnl7I="; 21 }; 22 23 postPatch = '' 24 substituteInPlace setup.py \ 25 --replace "env['PYTHONPATH'] = 'src'" "env['PYTHONPATH'] += ':src'" 26 ''; 27 28 nativeBuildInputs = [ setuptools ]; 29 30 propagatedBuildInputs = [ 31 setuptools 32 ply 33 ]; 34 35 checkPhase = '' 36 runHook preCheck 37 38 ${python.interpreter} -m unittest calmjs.parse.tests.make_suite 39 40 runHook postCheck 41 ''; 42 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 ]; 52 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 }; 60}