1{ lib
2, buildPythonPackage
3, fetchFromGitHub
4, freezegun
5, hatch-fancy-pypi-readme
6, hatch-vcs
7, hatchling
8, pretend
9, pytest-asyncio
10, pytestCheckHook
11, pythonAtLeast
12, pythonOlder
13, simplejson
14, typing-extensions
15}:
16
17buildPythonPackage rec {
18 pname = "structlog";
19 version = "23.2.0";
20 format = "pyproject";
21
22 disabled = pythonOlder "3.8";
23
24 src = fetchFromGitHub {
25 owner = "hynek";
26 repo = "structlog";
27 rev = "refs/tags/${version}";
28 hash = "sha256-KSHKgkv+kObKCdWZDg5o6QYe0AMND9VLdEuseY/GyDY=";
29 };
30
31 SETUPTOOLS_SCM_PRETEND_VERSION = version;
32
33 nativeBuildInputs = [
34 hatch-fancy-pypi-readme
35 hatch-vcs
36 hatchling
37 ];
38
39 propagatedBuildInputs = lib.optionals (pythonOlder "3.8") [
40 typing-extensions
41 ];
42
43 nativeCheckInputs = [
44 freezegun
45 pretend
46 pytest-asyncio
47 pytestCheckHook
48 simplejson
49 ];
50
51 pythonImportsCheck = [
52 "structlog"
53 ];
54
55 meta = with lib; {
56 description = "Painless structural logging";
57 homepage = "https://github.com/hynek/structlog";
58 changelog = "https://github.com/hynek/structlog/blob/${version}/CHANGELOG.md";
59 license = licenses.asl20;
60 maintainers = with maintainers; [ ];
61 };
62}