package.nix (2121B)
1 { 2 lib, 3 fetchFromGitHub, 4 python312Packages, 5 s2sphere, 6 unstableGitUpdater, 7 }: 8 9 python312Packages.buildPythonApplication { 10 pname = "gpxtrackposter"; 11 version = "0-unstable-2024-06-02"; 12 pyproject = true; 13 14 src = fetchFromGitHub { 15 owner = "flopp"; 16 repo = "GpxTrackPoster"; 17 rev = "1ca04e9f2fb4a5ee33e2fb0863e6169ecb2c99a0"; 18 hash = "sha256-0Bdls3Pe1K/3QSK9vsfcIxr3arB4/PZ+IsQO5Pk180E="; 19 }; 20 21 patches = [ 22 ./fix-localedir.patch 23 ]; 24 25 postPatch = '' 26 substituteInPlace gpxtrackposter/poster.py \ 27 --replace-fail "self.translate(\"ATHLETE\")" "\"\"" 28 29 # https://github.com/flopp/GpxTrackPoster/issues/115 30 substituteInPlace gpxtrackposter/track.py \ 31 --replace-fail "from stravalib.model import Activity" "from stravalib.model import DetailedActivity" 32 33 # https://github.com/flopp/GpxTrackPoster/issues/102 34 substituteInPlace gpxtrackposter/timezone_adjuster.py \ 35 --replace-fail "__init__(self)" "__new__(cls)" \ 36 --replace-fail "TimezoneAdjuster._timezonefinder" "cls._timezonefinder" 37 38 substituteInPlace gpxtrackposter/cli.py \ 39 --subst-var out 40 ''; 41 42 build-system = with python312Packages; [ setuptools ]; 43 44 dependencies = with python312Packages; [ 45 appdirs 46 colour 47 geopy 48 gpxpy 49 pint 50 pytz 51 s2sphere 52 svgwrite 53 stravalib 54 polyline 55 timezonefinder 56 setuptools 57 ]; 58 59 pythonRelaxDeps = [ "stravalib" ]; 60 61 nativeCheckInputs = with python312Packages; [ 62 pytestCheckHook 63 (pytest-mock.overrideAttrs (old: rec { 64 pname = "pytest-mock"; 65 version = "3.3.1"; 66 src = fetchPypi { 67 inherit pname version; 68 hash = "sha256-pNbTcynkqJPnfZ/6ieg43StF1dwJmYTPA8cDrIQRu4I="; 69 }; 70 })) 71 ]; 72 73 doCheck = false; 74 75 postInstall = "rm -fr $out/requirements*.txt"; 76 77 passthru.updateScript = unstableGitUpdater { }; 78 79 meta = { 80 description = "Create a visually appealing poster from your GPX tracks"; 81 homepage = "https://github.com/flopp/GpxTrackPoster"; 82 license = lib.licenses.mit; 83 maintainers = [ lib.maintainers.sikmir ]; 84 mainProgram = "create_poster"; 85 }; 86 }