1{ lib, buildPythonPackage, fetchFromGitHub
2, pythonOlder
3, python
4, substituteAll
5, importlib-resources
6, tzdata
7, hypothesis
8, pytestCheckHook
9}:
10
11buildPythonPackage rec {
12 pname = "backports-zoneinfo";
13 version = "0.2.1";
14
15 src = fetchFromGitHub {
16 owner = "pganssle";
17 repo = "zoneinfo";
18 rev = version;
19 sha256 = "sha256-00xdDOVdDanfsjQTd3yjMN2RFGel4cWRrAA3CvSnl24=";
20 };
21
22 patches = [
23 (substituteAll {
24 name = "zoneinfo-path";
25 src = ./zoneinfo.patch;
26 zoneinfo = "${tzdata}/lib/${python.libPrefix}/site-packages/tzdata/zoneinfo";
27 })
28 ];
29
30 propagatedBuildInputs = [
31 tzdata
32 ] ++ lib.optionals (pythonOlder "3.7") [
33 importlib-resources
34 ];
35
36 pythonImportsCheck = [ "backports.zoneinfo" ];
37
38 checkInputs = [
39 hypothesis
40 pytestCheckHook
41 ];
42
43 disabledTests = [
44 # AssertionError: 'AEDT' != 'AEST'
45 "test_folds_and_gaps"
46 # AssertionError: 0 != 1 : (datetime.datetime(1917, 3, 25, 2, 0, 1, tzinfo=backports.zoneinfo.ZoneInfo(key='Australia/Sydney')), datetime.datetime(1917, 3, 24, 15, 0, tzinfo=datetime.timezone.utc))
47 "test_folds_from_utc"
48 # backports.zoneinfo._common.ZoneInfoNotFoundError: 'No time zone found with key Eurasia/Badzone'
49 "test_bad_keys"
50 ];
51
52 meta = with lib; {
53 description = "Backport of the standard library module zoneinfo";
54 homepage = "https://github.com/pganssle/zoneinfo";
55 license = licenses.asl20;
56 maintainers = with maintainers; [ jonringer ];
57 };
58}