at 22.05-pre 83 lines 1.8 kB view raw
1{ lib 2, python3 3, fetchFromGitHub 4}: 5 6let 7 py = python3.override { 8 packageOverrides = self: super: { 9 # until https://github.com/ags-slc/localzone/issues/1 gets resolved 10 dnspython = super.dnspython.overridePythonAttrs(oldAttrs: rec { 11 pname = "dnspython"; 12 version = "1.16.0"; 13 # since name is defined from the previous derivation, need to override 14 # name explicity for correct version to show in drvName 15 name = "${pname}-${version}"; 16 17 src = super.fetchPypi { 18 inherit pname version; 19 extension = "zip"; 20 sha256 = "00cfamn97w2vhq3id87f10mjna8ag5yz5dw0cy5s0sa3ipiyii9n"; 21 }; 22 }); 23 24 localzone = super.localzone.overridePythonAttrs(oldAttrs: rec { 25 meta = oldAttrs.meta // { broken = false; }; 26 }); 27 }; 28 }; 29in 30 with py.pkgs; 31 32buildPythonApplication rec { 33 pname = "lexicon"; 34 version = "3.5.2"; 35 format = "pyproject"; 36 37 src = fetchFromGitHub { 38 owner = "AnalogJ"; 39 repo = pname; 40 rev = "v${version}"; 41 sha256 = "1jsc2ybbf3mbvgzkgliria494dpj23mgqnw2lh43cnd9rgsjvzn3"; 42 }; 43 44 nativeBuildInputs = [ 45 poetry 46 ]; 47 48 propagatedBuildInputs = [ 49 beautifulsoup4 50 boto3 51 cryptography 52 dnspython 53 future 54 localzone 55 pynamecheap 56 pyyaml 57 requests 58 softlayer 59 tldextract 60 transip 61 xmltodict 62 zeep 63 ]; 64 65 checkInputs = [ 66 mock 67 pytest 68 pytest-cov 69 pytest-xdist 70 vcrpy 71 ]; 72 73 checkPhase = '' 74 pytest --ignore=lexicon/tests/providers/test_auto.py 75 ''; 76 77 meta = with lib; { 78 description = "Manipulate DNS records on various DNS providers in a standardized way"; 79 homepage = "https://github.com/AnalogJ/lexicon"; 80 maintainers = with maintainers; [ flyfloh ]; 81 license = licenses.mit; 82 }; 83}