Merge pull request #268619 from tweag/lib-descriptions
[NixPkgs.git] / pkgs / development / compilers / vyper / default.nix
blob1a621f54acd45ca575641625330ee9b3524f3836
1 { lib
2 , buildPythonPackage
3 , fetchPypi
4 , pythonOlder
5 , pythonRelaxDepsHook
6 , writeText
7 , asttokens
8 , pycryptodome
9 , importlib-metadata
10 , cbor2
11 , recommonmark
12 , semantic-version
13 , sphinx
14 , sphinx-rtd-theme
15 , pytest-runner
16 , setuptools-scm
17 , git
20 let
21   sample-contract = writeText "example.vy" ''
22     count: int128
24     @external
25     def __init__(foo: address):
26         self.count = 1
27   '';
30 buildPythonPackage rec {
31   pname = "vyper";
32   version = "0.3.10";
33   format = "setuptools";
35   disabled = pythonOlder "3.7";
37   src = fetchPypi {
38     inherit pname version;
39     hash = "sha256-jcH1AcqrQX+wzpxoppRFh/AUfsfMfTiJzzpFwZRm5Ik=";
40   };
42   nativeBuildInputs = [
43     # Git is used in setup.py to compute version information during building
44     # ever since https://github.com/vyperlang/vyper/pull/2816
45     git
47     pythonRelaxDepsHook
48     pytest-runner
49     setuptools-scm
50   ];
52   pythonRelaxDeps = [ "asttokens" "semantic-version" ];
54   propagatedBuildInputs = [
55     asttokens
56     pycryptodome
57     semantic-version
58     importlib-metadata
59     cbor2
61     # docs
62     recommonmark
63     sphinx
64     sphinx-rtd-theme
65   ];
67   checkPhase = ''
68     $out/bin/vyper "${sample-contract}"
69   '';
71   meta = with lib; {
72     description = "Pythonic Smart Contract Language for the EVM";
73     homepage = "https://github.com/vyperlang/vyper";
74     license = licenses.asl20;
75     maintainers = with maintainers; [ siraben ];
76   };