1{
2 lib,
3 branca,
4 buildPythonPackage,
5 fetchFromGitHub,
6 geodatasets,
7 geopandas,
8 jinja2,
9 nbconvert,
10 numpy,
11 pandas,
12 pillow,
13 pytestCheckHook,
14 pythonOlder,
15 requests,
16 selenium,
17 setuptools,
18 setuptools-scm,
19 xyzservices,
20}:
21
22buildPythonPackage rec {
23 pname = "folium";
24 version = "0.19.5";
25 pyproject = true;
26
27 disabled = pythonOlder "3.9";
28
29 src = fetchFromGitHub {
30 owner = "python-visualization";
31 repo = "folium";
32 tag = "v${version}";
33 hash = "sha256-jZrGJWSmQXQNlZYldeNSh5AhlTHow5gxCEkksEoKZ7E=";
34 };
35
36 build-system = [
37 setuptools
38 setuptools-scm
39 ];
40
41 dependencies = [
42 branca
43 jinja2
44 numpy
45 requests
46 xyzservices
47 ];
48
49 nativeCheckInputs = [
50 geodatasets
51 geopandas
52 nbconvert
53 pandas
54 pillow
55 pytestCheckHook
56 ];
57
58 disabledTests = [
59 # Tests require internet connection
60 "test__repr_png_is_bytes"
61 "test_geojson"
62 "test_heat_map_with_weights"
63 "test_json_request"
64 "test_notebook"
65 "test_valid_png_size"
66 "test_valid_png"
67 # pooch tries to write somewhere it can, and geodatasets does not give us an env var to customize this.
68 "test_timedynamic_geo_json"
69 ];
70
71 disabledTestPaths = [
72 # Import issue with selenium.webdriver.common.fedcm
73 "tests/selenium"
74 ];
75
76 pythonImportsCheck = [ "folium" ];
77
78 meta = {
79 description = "Make beautiful maps with Leaflet.js & Python";
80 homepage = "https://github.com/python-visualization/folium";
81 changelog = "https://github.com/python-visualization/folium/releases/tag/${src.tag}";
82 license = with lib.licenses; [ mit ];
83 teams = [ lib.teams.geospatial ];
84 };
85}