commit 42993c54ee9176c5fa0f5bc7f7bcb27a83732be4
parent 492ce0a5c3e1b54b78ada091630af7f98dec3031
Author: Nikolay Korotkiy <sikmir@disroot.org>
Date: Thu, 5 Feb 2026 20:41:50 +0400
Add maptoposter
Diffstat:
3 files changed, 110 insertions(+), 0 deletions(-)
diff --git a/pkgs/by-name/ma/maptoposter/package.nix b/pkgs/by-name/ma/maptoposter/package.nix
@@ -0,0 +1,80 @@
+{
+ lib,
+ fetchFromGitHub,
+ python3Packages,
+ lat-lon-parser,
+}:
+
+python3Packages.buildPythonApplication (finalAttrs: {
+ pname = "maptoposter";
+ version = "0.3.0-unstable-2026-01-30";
+ pyproject = true;
+
+ src = fetchFromGitHub {
+ owner = "originalankur";
+ repo = "maptoposter";
+ rev = "fffad0c276f5bbab1e6f242144126c574f72705a";
+ hash = "sha256-deHv04POhh3GOa3EESSvF2YqxXiWR3ILivgh1aGXlZk=";
+ leaveDotGit = true;
+ };
+
+ postPatch = ''
+ substituteInPlace create_map_poster.py font_management.py \
+ --replace-warn "FONTS_DIR = \"fonts\"" "FONTS_DIR = \"$out/share/maptoposter/fonts\"" \
+ --replace-warn "THEMES_DIR = \"themes\"" "THEMES_DIR = \"$out/share/maptoposter/themes\""
+ '';
+
+ build-system = with python3Packages; [ setuptools ];
+
+ pythonRelaxDeps = true;
+
+ dependencies = with python3Packages; [
+ certifi
+ charset-normalizer
+ contourpy
+ cycler
+ fonttools
+ geographiclib
+ geopandas
+ geopy
+ idna
+ kiwisolver
+ lat-lon-parser
+ matplotlib
+ networkx
+ numpy
+ osmnx
+ packaging
+ pandas
+ pillow
+ pyogrio
+ pyparsing
+ pyproj
+ python-dateutil
+ pytz
+ requests
+ scipy
+ shapely
+ tqdm
+ tzdata
+ urllib3
+ ];
+
+ postInstall = ''
+ site_packages=$out/lib/${python3Packages.python.libPrefix}/site-packages
+ install -Dm644 font_management.py $site_packages
+ install -Dm644 fonts/* -t $out/share/maptoposter/fonts
+ install -Dm644 themes/* -t $out/share/maptoposter/themes
+
+ makeWrapper ${python3Packages.python.interpreter} $out/bin/create_map_poster \
+ --prefix PYTHONPATH : $PYTHONPATH:$(toPythonPath "$out") \
+ --add-flags "$site_packages/create_map_poster.py"
+ '';
+
+ meta = {
+ description = "City Map Poster Generator";
+ homepage = "https://github.com/originalankur/maptoposter";
+ license = lib.licenses.mit;
+ maintainers = [ lib.maintainers.sikmir ];
+ };
+})
diff --git a/pkgs/default.nix b/pkgs/default.nix
@@ -72,6 +72,7 @@ lib.makeScope newScope (
gpxelevations = callPackage ./development/python-modules/gpxelevations { };
hardpy = callPackage ./development/python-modules/hardpy { };
jsonseq = callPackage ./development/python-modules/jsonseq { };
+ lat-lon-parser = callPackage ./development/python-modules/lat-lon-parser { };
portolan = callPackage ./development/python-modules/portolan { };
pqdm = callPackage ./development/python-modules/pqdm { };
pyarrow_ops = callPackage ./development/python-modules/pyarrow_ops { };
diff --git a/pkgs/development/python-modules/lat-lon-parser/default.nix b/pkgs/development/python-modules/lat-lon-parser/default.nix
@@ -0,0 +1,29 @@
+{
+ lib,
+ fetchFromGitHub,
+ python3Packages,
+}:
+
+python3Packages.buildPythonPackage (finalAttrs: {
+ pname = "lat-lon-parser";
+ version = "1.3.1";
+ pyproject = true;
+
+ src = fetchFromGitHub {
+ owner = "NOAA-ORR-ERD";
+ repo = "lat_lon_parser";
+ tag = "v${finalAttrs.version}";
+ hash = "sha256-JO3s7C0aY2vX8QZI1UOzLaQI+VSdhUxiHHjqBxm1QW4=";
+ };
+
+ build-system = with python3Packages; [ setuptools-scm ];
+
+ nativeCheckInputs = with python3Packages; [ pytestCheckHook ];
+
+ meta = {
+ description = "Simple parser for latitude-longitude strings";
+ homepage = "https://github.com/NOAA-ORR-ERD/lat_lon_parser";
+ license = lib.licenses.cc0;
+ maintainers = [ lib.maintainers.sikmir ];
+ };
+})