nixpkgs mirror (for testing)
github.com/NixOS/nixpkgs
nix
1{
2 lib,
3 buildPythonPackage,
4 fetchFromGitHub,
5
6 # build-system
7 hatchling,
8 hatch-vcs,
9
10 # dependencies
11 feedparser,
12 requests,
13
14 # tests
15 mock,
16 pytestCheckHook,
17}:
18buildPythonPackage rec {
19 pname = "arxiv";
20 version = "2.4.0";
21 pyproject = true;
22
23 src = fetchFromGitHub {
24 owner = "lukasschwab";
25 repo = "arxiv.py";
26 tag = version;
27 hash = "sha256-96m2UHNoilRhbMnzArUFbm0wZDQS6j97etgOJ7qZmEc=";
28 };
29
30 build-system = [
31 hatchling
32 hatch-vcs
33 ];
34
35 dependencies = [
36 feedparser
37 requests
38 ];
39
40 nativeCheckInputs = [
41 pytestCheckHook
42 mock
43 ];
44
45 disabledTests = [
46 # Require network access
47 "test_from_feed_entry"
48 "test_download_from_query"
49 "test_download_tarfile_from_query"
50 "test_download_with_custom_slugify_from_query"
51 "test_get_short_id"
52 "test_invalid_format_id"
53 "test_invalid_id"
54 "test_legacy_ids"
55 "test_max_results"
56 "test_missing_title"
57 "test_no_duplicates"
58 "test_nonexistent_id_in_list"
59 "test_offset"
60 "test_query_page_count"
61 "test_result_shape"
62 "test_search_results_offset"
63 ];
64
65 pythonImportsCheck = [ "arxiv" ];
66
67 meta = {
68 description = "Python wrapper for the arXiv API";
69 homepage = "https://github.com/lukasschwab/arxiv.py";
70 changelog = "https://github.com/lukasschwab/arxiv.py/releases/tag/${src.tag}";
71 license = lib.licenses.mit;
72 maintainers = [ lib.maintainers.octvs ];
73 };
74}