push sheeet
Some checks failed
Periodic Merges (6h) / master → staging-nixos (push) Failing after 12m50s
Periodic Merges (6h) / master → staging-next (push) Failing after 12m54s
Periodic Merges (24h) / merge-base(master,staging) → haskell-updates (push) Failing after 11m54s
Periodic Merges (6h) / staging-next → staging (push) Failing after 12m13s
Periodic Merges (24h) / staging-next-25.05 → staging-25.05 (push) Failing after 13m24s
Periodic Merges (24h) / release-25.05 → staging-next-25.05 (push) Failing after 14m28s

This commit is contained in:
Dark Steveneq
2025-10-09 14:15:47 +02:00
commit 646b892680
49168 changed files with 5897842 additions and 0 deletions

View File

@@ -0,0 +1,44 @@
{
lib,
buildPythonPackage,
fetchPypi,
baize,
httpx,
pdm-backend,
pytest-asyncio,
pytestCheckHook,
starlette,
}:
buildPythonPackage rec {
pname = "a2wsgi";
version = "1.10.10";
pyproject = true;
src = fetchPypi {
inherit pname version;
hash = "sha256-pbz/tSCBujnfDV6aiE/G+BnZLjpCOJNDunfL+An+H0U=";
};
build-system = [ pdm-backend ];
dependencies = [
starlette
baize
];
nativeCheckInputs = [
baize
httpx
pytest-asyncio
pytestCheckHook
starlette
];
meta = {
description = "Convert WSGI app to ASGI app or ASGI app to WSGI app";
homepage = "https://github.com/abersheeran/a2wsgi";
license = lib.licenses.asl20;
maintainers = with lib.maintainers; [ SuperSandro2000 ];
};
}

View File

@@ -0,0 +1,38 @@
{
lib,
buildPythonPackage,
fetchPypi,
pillow,
}:
buildPythonPackage rec {
pname = "aafigure";
version = "0.6";
format = "setuptools";
src = fetchPypi {
inherit pname version;
sha256 = "49f2c1fd2b579c1fffbac1386a2670b3f6f475cc7ff6cc04d8b984888c2d9e1e";
};
propagatedBuildInputs = [ pillow ];
# error: invalid command 'test'
doCheck = false;
# Fix impurity. TODO: Do the font lookup using fontconfig instead of this
# manual method. Until that is fixed, we get this whenever we run aafigure:
# WARNING: font not found, using PIL default font
patchPhase = ''
sed -i "s|/usr/share/fonts|/nonexisting-fonts-path|" aafigure/PILhelper.py
'';
meta = with lib; {
description = "ASCII art to image converter";
mainProgram = "aafigure";
homepage = "https://launchpad.net/aafigure/";
license = licenses.bsd2;
maintainers = with maintainers; [ bjornfor ];
platforms = platforms.unix;
};
}

View File

@@ -0,0 +1,82 @@
{
lib,
stdenv,
arc4,
asn1crypto,
asn1tools,
asyauth,
asysocks,
buildPythonPackage,
cargo,
colorama,
fetchFromGitHub,
iconv,
pillow,
pyperclip,
rustPlatform,
rustc,
setuptools,
setuptools-rust,
tqdm,
unicrypto,
}:
buildPythonPackage rec {
pname = "aardwolf";
version = "0.2.13";
pyproject = true;
src = fetchFromGitHub {
owner = "skelsec";
repo = "aardwolf";
tag = version;
hash = "sha256-8QXPvfVeT3qadxTvt/LQX3XM5tGj6SpfOhP/9xcZHW4=";
};
cargoDeps = rustPlatform.fetchCargoVendor {
inherit pname version src;
sourceRoot = "${src.name}/aardwolf/utils/rlers";
hash = "sha256-+2hENnrG35eRgQwtCCJUux9mYEkzD2astLgOqWHrH/M=";
};
cargoRoot = "aardwolf/utils/rlers";
build-system = [
setuptools
setuptools-rust
];
nativeBuildInputs = [
rustPlatform.cargoSetupHook
cargo
rustc
];
dependencies = [
arc4
asn1crypto
asn1tools
asyauth
asysocks
colorama
pillow
pyperclip
tqdm
unicrypto
]
++ lib.optionals (stdenv.hostPlatform.isDarwin) [ iconv ];
# Module doesn't have tests
doCheck = false;
pythonImportsCheck = [ "aardwolf" ];
meta = with lib; {
description = "Asynchronous RDP protocol implementation";
mainProgram = "ardpscan";
homepage = "https://github.com/skelsec/aardwolf";
changelog = "https://github.com/skelsec/aardwolf/releases/tag/${version}";
license = licenses.mit;
maintainers = with maintainers; [ fab ];
};
}

View File

@@ -0,0 +1,69 @@
{
lib,
buildPythonPackage,
fetchPypi,
ply,
roman,
uqbar,
pythonOlder,
pythonAtLeast,
pytestCheckHook,
lilypond,
typing-extensions,
}:
buildPythonPackage rec {
pname = "abjad";
version = "3.28";
format = "setuptools";
# see issue upstream indicating Python 3.12 support will come
# with version 3.20: https://github.com/Abjad/abjad/issues/1574
disabled = pythonOlder "3.10" || pythonAtLeast "3.12";
src = fetchPypi {
inherit pname version;
hash = "sha256-J4LPOSz34GvDRwpCG8yt4LAqt+dhDrfG/W451bZRpgk=";
};
propagatedBuildInputs = [
ply
roman
uqbar
typing-extensions
];
buildInputs = [ lilypond ];
nativeCheckInputs = [ pytestCheckHook ];
postPatch = ''
substituteInPlace abjad/io.py \
--replace-fail 'lilypond_path = self.get_lilypond_path()' \
'lilypond_path = "${lilypond}/bin/lilypond"'
# general invocations of binary for IO purposes
substituteInPlace abjad/configuration.py \
--replace-fail '["lilypond"' '["${lilypond}/bin/lilypond"'
# get_lilypond_version_string
'';
pythonImportsCheck = [ "abjad" ];
meta = {
description = "GNU LilyPond wrapper for Python";
longDescription = ''
Abjad helps composers build up complex pieces of music notation in
iterative and incremental ways. Use Abjad to create a symbolic
representation of all the notes, rests, chords, tuplets, beams and slurs
in any score. Because Abjad extends the Python programming language, you
can use Abjad to make systematic changes to music as you work. Because
Abjad wraps the LilyPond music notation package, you can use Abjad to
control the typographic detail of symbols on the page.
'';
license = lib.licenses.mit;
homepage = "https://abjad.github.io/";
changelog = "https://abjad.github.io/appendices/changes.html";
maintainers = [ lib.maintainers.davisrichard437 ];
};
}

View File

@@ -0,0 +1,35 @@
{
lib,
fetchFromGitHub,
buildPythonPackage,
setuptools,
}:
buildPythonPackage rec {
pname = "about-time";
version = "4.2.2";
pyproject = true;
src = fetchFromGitHub {
owner = "rsalmei";
repo = "about-time";
tag = "v${version}";
hash = "sha256-a7jFVrxUvdR5UdeNNXSTsXC/Q76unedMLmcu0iTS3Tk=";
};
postPatch = ''
substituteInPlace pyproject.toml \
--replace-fail "setuptools~=75.3" setuptools
'';
build-system = [ setuptools ];
pythonImportsCheck = [ "about_time" ];
meta = with lib; {
description = "Cool helper for tracking time and throughput of code blocks, with beautiful human friendly renditions";
homepage = "https://github.com/rsalmei/about-time";
license = licenses.mit;
maintainers = with maintainers; [ thiagokokada ];
};
}

View File

@@ -0,0 +1,34 @@
{
lib,
buildPythonPackage,
fetchFromGitHub,
hatchling,
}:
buildPythonPackage rec {
pname = "absl-py";
version = "2.3.1";
pyproject = true;
src = fetchFromGitHub {
owner = "abseil";
repo = "abseil-py";
tag = "v${version}";
hash = "sha256-U8doys7SoOhtUkF0dsCFKnM9ItOoi5a6cK6zGOe/U8s=";
};
build-system = [ hatchling ];
# checks use bazel; should be revisited
doCheck = false;
pythonImportsCheck = [ "absl" ];
meta = {
description = "Abseil Python Common Libraries";
homepage = "https://github.com/abseil/abseil-py";
changelog = "https://github.com/abseil/abseil-py/blob/${src.tag}/CHANGELOG.md";
license = lib.licenses.asl20;
maintainers = [ ];
};
}

View File

@@ -0,0 +1,184 @@
{
stdenv,
lib,
buildPythonPackage,
fetchFromGitHub,
pythonAtLeast,
# buildInputs
llvmPackages,
# build-system
setuptools,
# dependencies
huggingface-hub,
numpy,
packaging,
psutil,
pyyaml,
safetensors,
torch,
# tests
addBinToPathHook,
evaluate,
parameterized,
pytestCheckHook,
transformers,
config,
cudatoolkit,
writableTmpDirAsHomeHook,
}:
buildPythonPackage rec {
pname = "accelerate";
version = "1.10.1";
pyproject = true;
src = fetchFromGitHub {
owner = "huggingface";
repo = "accelerate";
tag = "v${version}";
hash = "sha256-guUlgNRSgBmi5HZNnwPA6GQ1vq5LzZEW2J9w4Wmqh6o=";
};
buildInputs = [ llvmPackages.openmp ];
build-system = [ setuptools ];
dependencies = [
huggingface-hub
numpy
packaging
psutil
pyyaml
safetensors
torch
];
nativeCheckInputs = [
addBinToPathHook
evaluate
parameterized
pytestCheckHook
transformers
writableTmpDirAsHomeHook
];
preCheck = lib.optionalString config.cudaSupport ''
export TRITON_PTXAS_PATH="${lib.getExe' cudatoolkit "ptxas"}"
'';
enabledTestPaths = [ "tests" ];
disabledTests = [
# try to download data:
"FeatureExamplesTests"
"test_infer_auto_device_map_on_t0pp"
# require socket communication
"test_explicit_dtypes"
"test_gated"
"test_invalid_model_name"
"test_invalid_model_name_transformers"
"test_no_metadata"
"test_no_split_modules"
"test_remote_code"
"test_transformers_model"
"test_extract_model_keep_torch_compile"
"test_extract_model_remove_torch_compile"
"test_regions_are_compiled"
# nondeterministic, tests GC behaviour by thresholding global ram usage
"test_free_memory_dereferences_prepared_components"
# set the environment variable, CC, which conflicts with standard environment
"test_patch_environment_key_exists"
]
++ lib.optionals ((pythonAtLeast "3.13") || (torch.rocmSupport or false)) [
# RuntimeError: Dynamo is not supported on Python 3.13+
# OR torch.compile tests broken on torch 2.5 + rocm
"test_can_unwrap_distributed_compiled_model_keep_torch_compile"
"test_can_unwrap_distributed_compiled_model_remove_torch_compile"
"test_convert_to_fp32"
"test_send_to_device_compiles"
]
++ lib.optionals (stdenv.hostPlatform.isLinux && stdenv.hostPlatform.isAarch64) [
# usual aarch64-linux RuntimeError: DataLoader worker (pid(s) <...>) exited unexpectedly
"CheckpointTest"
# TypeError: unsupported operand type(s) for /: 'NoneType' and 'int' (it seems cpuinfo doesn't work here)
"test_mpi_multicpu_config_cmd"
]
++ lib.optionals (!config.cudaSupport) [
# requires ptxas from cudatoolkit, which is unfree
"test_dynamo_extract_model"
]
++ lib.optionals stdenv.hostPlatform.isDarwin [
# RuntimeError: 'accelerate-launch /nix/store/a7vhm7b74a7bmxc35j26s9iy1zfaqjs...
"test_accelerate_test"
"test_init_trackers"
"test_init_trackers"
"test_log"
"test_log_with_tensor"
# After enabling MPS in pytorch, these tests started failing
"test_accelerated_optimizer_step_was_skipped"
"test_auto_wrap_policy"
"test_autocast_kwargs"
"test_automatic_loading"
"test_backward_prefetch"
"test_can_resume_training"
"test_can_resume_training_checkpoints_relative_path"
"test_can_resume_training_with_folder"
"test_can_unwrap_model_fp16"
"test_checkpoint_deletion"
"test_cpu_offload"
"test_cpu_ram_efficient_loading"
"test_grad_scaler_kwargs"
"test_invalid_registration"
"test_map_location"
"test_mixed_precision"
"test_mixed_precision_buffer_autocast_override"
"test_project_dir"
"test_project_dir_with_config"
"test_sharding_strategy"
"test_state_dict_type"
"test_with_save_limit"
"test_with_scheduler"
# torch._inductor.exc.InductorError: TypeError: cannot determine truth value of Relational
"test_regional_compilation_cold_start"
"test_regional_compilation_inference_speedup"
# Fails in nixpkgs-review due to a port conflict with simultaneous python builds
"test_config_compatibility"
# Fails with `sandbox=false` by mis-configuring the model it's using.
# AttributeError: 'DistributedDataParallel' object has no attribute '_ignored_modules'. Did you mean: 'named_modules'?
"test_ignored_modules_regex"
]
++ lib.optionals (stdenv.hostPlatform.isDarwin && stdenv.hostPlatform.isx86_64) [
# RuntimeError: torch_shm_manager: execl failed: Permission denied
"CheckpointTest"
];
disabledTestPaths = lib.optionals (!(stdenv.hostPlatform.isLinux && stdenv.hostPlatform.isx86_64)) [
# numerous instances of torch.multiprocessing.spawn.ProcessRaisedException:
"tests/test_cpu.py"
"tests/test_grad_sync.py"
"tests/test_metrics.py"
"tests/test_scheduler.py"
];
pythonImportsCheck = [ "accelerate" ];
__darwinAllowLocalNetworking = true;
meta = {
homepage = "https://huggingface.co/docs/accelerate";
description = "Simple way to train and use PyTorch models with multi-GPU, TPU, mixed-precision";
changelog = "https://github.com/huggingface/accelerate/releases/tag/${src.tag}";
license = lib.licenses.asl20;
maintainers = with lib.maintainers; [ bcdarwin ];
mainProgram = "accelerate";
};
}

View File

@@ -0,0 +1,48 @@
{
lib,
buildPythonPackage,
fetchPypi,
pythonOlder,
hatchling,
hatch-vcs,
hatch-fancy-pypi-readme,
pygments,
}:
buildPythonPackage rec {
pname = "accessible-pygments";
version = "0.0.5";
pyproject = true;
disabled = pythonOlder "3.7";
src = fetchPypi {
pname = "accessible_pygments";
inherit version;
hash = "sha256-QJGNPmorYZrUJMuR5Va9O9iGVEPZ8i8dzfeeM8gEaHI=";
};
build-system = [
hatchling
hatch-vcs
hatch-fancy-pypi-readme
];
dependencies = [ pygments ];
# Tests only execute pygments with these styles
doCheck = false;
pythonImportsCheck = [
"a11y_pygments"
"a11y_pygments.utils"
];
meta = with lib; {
description = "Collection of accessible pygments styles";
homepage = "https://github.com/Quansight-Labs/accessible-pygments";
changelog = "https://github.com/Quansight-Labs/accessible-pygments/raw/v${version}/CHANGELOG.md";
license = licenses.bsd3;
maintainers = [ ];
};
}

View File

@@ -0,0 +1,89 @@
{
lib,
stdenv,
buildPythonPackage,
fetchFromGitHub,
pythonOlder,
setuptools,
mpmath,
numpy,
pybind11,
pyfma,
eigen,
importlib-metadata,
pytestCheckHook,
matplotlib,
dufte,
perfplot,
}:
buildPythonPackage rec {
pname = "accupy";
version = "0.3.6";
pyproject = true;
disabled = pythonOlder "3.7";
src = fetchFromGitHub {
owner = "nschloe";
repo = "accupy";
rev = version;
hash = "sha256-xxwLmL/rFgDFQNr8mRBFG1/NArQk9wanelL4Lu7ls2s=";
};
build-system = [
setuptools
pybind11
];
buildInputs = [ eigen ];
dependencies = [
mpmath
numpy
pyfma
]
++ lib.optional (pythonOlder "3.8") importlib-metadata;
nativeCheckInputs = [
perfplot
pytestCheckHook
matplotlib
dufte
];
postConfigure = ''
substituteInPlace setup.py \
--replace-fail "/usr/include/eigen3/" "${eigen}/include/eigen3/"
'';
preBuild = ''
export HOME=$(mktemp -d)
'';
# This variable is needed to suppress the "Trace/BPT trap: 5" error in Darwin's checkPhase.
# Not sure of the details, but we can avoid it by changing the matplotlib backend during testing.
env.MPLBACKEND = lib.optionalString stdenv.hostPlatform.isDarwin "Agg";
# performance tests aren't useful to us and disabling them allows us to
# decouple ourselves from an unnecessary build dep
preCheck = ''
for f in test/test*.py ; do
substituteInPlace $f --replace-quiet 'import perfplot' ""
done
'';
disabledTests = [
"test_speed_comparison1"
"test_speed_comparison2"
];
pythonImportsCheck = [ "accupy" ];
meta = with lib; {
description = "Accurate sums and dot products for Python";
homepage = "https://github.com/nschloe/accupy";
license = licenses.mit;
maintainers = [ ];
};
}

View File

@@ -0,0 +1,54 @@
{
lib,
aiohttp,
aioresponses,
buildPythonPackage,
fetchFromGitHub,
orjson,
pytest-asyncio,
pytest-error-for-skips,
pytestCheckHook,
pythonOlder,
setuptools,
syrupy,
}:
buildPythonPackage rec {
pname = "accuweather";
version = "4.2.2";
pyproject = true;
disabled = pythonOlder "3.12";
src = fetchFromGitHub {
owner = "bieniu";
repo = "accuweather";
tag = version;
hash = "sha256-ORxo92nfLGNRC+eWX4NrpoMgiCLbtfR5JA+23OT/L3Y=";
};
build-system = [ setuptools ];
dependencies = [
aiohttp
orjson
];
nativeCheckInputs = [
aioresponses
pytest-asyncio
pytest-error-for-skips
pytestCheckHook
syrupy
];
pythonImportsCheck = [ "accuweather" ];
meta = {
description = "Python wrapper for getting weather data from AccuWeather servers";
homepage = "https://github.com/bieniu/accuweather";
changelog = "https://github.com/bieniu/accuweather/releases/tag/${version}";
license = lib.licenses.asl20;
maintainers = with lib.maintainers; [ jamiemagee ];
};
}

View File

@@ -0,0 +1,47 @@
{
lib,
buildPythonPackage,
fetchPypi,
setuptools,
setuptools-scm,
fusepy,
fuse,
openssl,
}:
buildPythonPackage rec {
pname = "acme-tiny";
version = "5.0.2";
pyproject = true;
src = fetchPypi {
pname = "acme_tiny";
inherit version;
hash = "sha256-s84ZVYPcLxOnxvqQBS+Ks0myMtvCZ62cv0co6u2E3dg=";
};
patchPhase = ''
substituteInPlace acme_tiny.py --replace-fail '"openssl"' '"${openssl.bin}/bin/openssl"'
substituteInPlace tests/test_module.py --replace-fail '"openssl"' '"${openssl.bin}/bin/openssl"'
substituteInPlace tests/utils.py --replace-fail /etc/ssl/openssl.cnf ${openssl.out}/etc/ssl/openssl.cnf
'';
build-system = [
setuptools
setuptools-scm
];
nativeCheckInputs = [
fusepy
fuse
];
pythonImportsCheck = [ "acme_tiny" ];
meta = {
description = "Tiny script to issue and renew TLS certs from Let's Encrypt";
mainProgram = "acme-tiny";
homepage = "https://github.com/diafygi/acme-tiny";
license = lib.licenses.mit;
};
}

View File

@@ -0,0 +1,41 @@
{
buildPythonPackage,
certbot,
cryptography,
pyopenssl,
pyrfc3339,
josepy,
pytz,
requests,
setuptools,
}:
buildPythonPackage rec {
pname = "acme";
inherit (certbot) version src;
pyproject = true;
sourceRoot = "${src.name}/acme";
build-system = [
setuptools
];
dependencies = [
cryptography
pyopenssl
pyrfc3339
pytz
requests
josepy
];
# does not contain any tests
doCheck = false;
pythonImportsCheck = [ "acme" ];
meta = certbot.meta // {
description = "ACME protocol implementation in Python";
};
}

View File

@@ -0,0 +1,72 @@
{
lib,
buildPythonPackage,
defusedxml,
dissect-cstruct,
dissect-target,
fetchFromGitHub,
minio,
pycryptodome,
pytestCheckHook,
requests,
requests-toolbelt,
rich,
setuptools,
setuptools-scm,
}:
buildPythonPackage rec {
pname = "acquire";
version = "3.20.1";
pyproject = true;
src = fetchFromGitHub {
owner = "fox-it";
repo = "acquire";
tag = version;
hash = "sha256-QX7rPoJJqBPdvN2LzSBw8kGDSsIHLm65TJ0uXuhwB4Q=";
};
build-system = [
setuptools
setuptools-scm
];
dependencies = [
defusedxml
dissect-cstruct
dissect-target
];
optional-dependencies = {
full = [
dissect-target
minio
pycryptodome
requests
requests-toolbelt
rich
]
++ dissect-target.optional-dependencies.full;
};
nativeCheckInputs = [ pytestCheckHook ] ++ optional-dependencies.full;
disabledTests = [
"output_encrypt"
"test_collector_collect_glob"
"test_collector_collect_path_with_dir"
"test_misc_osx"
"test_misc_unix"
];
pythonImportsCheck = [ "acquire" ];
meta = with lib; {
description = "Tool to quickly gather forensic artifacts from disk images or a live system";
homepage = "https://github.com/fox-it/acquire";
changelog = "https://github.com/fox-it/acquire/releases/tag/${src.tag}";
license = licenses.agpl3Only;
maintainers = with maintainers; [ fab ];
};
}

View File

@@ -0,0 +1,45 @@
{
lib,
buildPythonPackage,
fetchFromGitHub,
pdm-backend,
importlib-resources,
pytestCheckHook,
}:
buildPythonPackage rec {
pname = "acres";
version = "0.5.0";
pyproject = true;
src = fetchFromGitHub {
owner = "nipreps";
repo = "acres";
tag = version;
hash = "sha256-D2w/xGlt0ApQ1Il9pzHPcL1s3CmCCOdgRpvUw/LI3gA=";
};
build-system = [
pdm-backend
];
dependencies = [
importlib-resources
];
pythonImportsCheck = [
"acres"
];
nativeCheckInputs = [
pytestCheckHook
];
meta = {
description = "Data-loading utility for Python";
homepage = "https://github.com/nipreps/acres";
changelog = "https://github.com/nipreps/acres/blob/${version}/CHANGELOG.md";
license = lib.licenses.asl20;
maintainers = with lib.maintainers; [ GaetanLepage ];
};
}

View File

@@ -0,0 +1,52 @@
{
lib,
blockdiag,
buildPythonPackage,
fetchFromGitHub,
pytestCheckHook,
pythonOlder,
setuptools,
}:
buildPythonPackage rec {
pname = "actdiag";
version = "3.0.0";
pyproject = true;
disabled = pythonOlder "3.7";
src = fetchFromGitHub {
owner = "blockdiag";
repo = "actdiag";
tag = version;
hash = "sha256-WmprkHOgvlsOIg8H77P7fzEqxGnj6xaL7Df7urRkg3o=";
};
patches = [ ./fix_test_generate.patch ];
build-system = [ setuptools ];
propagatedBuildInputs = [ blockdiag ];
nativeCheckInputs = [ pytestCheckHook ];
enabledTestPaths = [ "src/actdiag/tests/" ];
disabledTests = [
# AttributeError: 'TestRstDirectives' object has no attribute 'assertRegexpMatches'
"svg"
"noviewbox"
];
pythonImportsCheck = [ "actdiag" ];
meta = with lib; {
description = "Generate activity-diagram image from spec-text file (similar to Graphviz)";
homepage = "http://blockdiag.com/";
changelog = "https://github.com/blockdiag/actdiag/blob/${version}/CHANGES.rst";
license = licenses.asl20;
maintainers = with maintainers; [ bjornfor ];
mainProgram = "actdiag";
platforms = platforms.unix;
};
}

View File

@@ -0,0 +1,22 @@
diff --git a/src/actdiag/tests/test_generate_diagram.py b/src/actdiag/tests/test_generate_diagram.py
index c5ee3d5..a74a151 100644
--- a/src/actdiag/tests/test_generate_diagram.py
+++ b/src/actdiag/tests/test_generate_diagram.py
@@ -16,16 +16,6 @@
import os
from blockdiag.tests.test_generate_diagram import (get_diagram_files,
- testcase_generator)
+ test_generate_with_separate)
-import actdiag.command
-
-def test_generate():
- mainfunc = actdiag.command.main
- basepath = os.path.dirname(__file__)
- files = get_diagram_files(basepath)
- options = []
-
- for testcase in testcase_generator(basepath, mainfunc, files, options):
- yield testcase

View File

@@ -0,0 +1,41 @@
{
lib,
aiofiles,
buildPythonPackage,
fetchFromGitHub,
pythonOlder,
requests,
}:
buildPythonPackage {
pname = "acunetix";
version = "0.0.7";
format = "setuptools";
disabled = pythonOlder "3.7";
src = fetchFromGitHub {
owner = "hikariatama";
repo = "acunetix";
# https://github.com/hikariatama/acunetix/issues/1
rev = "67584746731b9f7abd1cf10ff8161eb3085800ce";
hash = "sha256-ycdCz8CNSP0USxv657jf6Vz4iF//reCeO2tG+und86A=";
};
propagatedBuildInputs = [
aiofiles
requests
];
# Module has no tests
doCheck = false;
pythonImportsCheck = [ "acunetix" ];
meta = with lib; {
description = "Acunetix Web Vulnerability Scanner SDK for Python";
homepage = "https://github.com/hikariatama/acunetix";
license = licenses.agpl3Only;
maintainers = with maintainers; [ fab ];
};
}

View File

@@ -0,0 +1,48 @@
{
lib,
buildPythonPackage,
fetchFromGitHub,
pythonOlder,
# build-system
setuptools-scm,
# dependencies
pyserial,
}:
buildPythonPackage rec {
pname = "adafruit-board-toolkit";
version = "1.1.2";
pyproject = true;
disabled = pythonOlder "3.5";
src = fetchFromGitHub {
owner = "adafruit";
repo = "Adafruit_Board_Toolkit";
tag = version;
hash = "sha256-xpz4+dGFcO/R/aBHub00N0oFS4w0prJl304PnbUKvAI=";
};
build-system = [
setuptools-scm
];
dependencies = [
pyserial
];
# Project has not published tests yet
doCheck = false;
pythonImportsCheck = [ "adafruit_board_toolkit" ];
meta = {
description = "CircuitPython board identification and information";
homepage = "https://github.com/adafruit/Adafruit_Board_Toolkit";
changelog = "https://github.com/adafruit/Adafruit_Board_Toolkit/releases/tag/${version}";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ talhaHavadar ];
};
}

View File

@@ -0,0 +1,50 @@
{
lib,
buildPythonPackage,
fetchFromGitHub,
paho-mqtt,
pytestCheckHook,
pythonOlder,
requests,
setuptools-scm,
}:
buildPythonPackage rec {
pname = "adafruit-io";
version = "2.8.0";
format = "setuptools";
disabled = pythonOlder "3.7";
src = fetchFromGitHub {
owner = "adafruit";
repo = "Adafruit_IO_Python";
tag = version;
hash = "sha256-OwTHMyc2ePSdYVuY1h3PY+uDBl6/7fTMXiZC3sZm8fU=";
};
nativeBuildInputs = [ setuptools-scm ];
propagatedBuildInputs = [
paho-mqtt
requests
];
nativeCheckInputs = [ pytestCheckHook ];
pythonImportsCheck = [ "Adafruit_IO" ];
disabledTestPaths = [
# Tests requires valid credentials
"tests/test_client.py"
"tests/test_errors.py"
"tests/test_mqtt_client.py"
];
meta = with lib; {
description = "Module for interacting with Adafruit IO";
homepage = "https://github.com/adafruit/Adafruit_IO_Python";
license = licenses.mit;
maintainers = with maintainers; [ fab ];
};
}

View File

@@ -0,0 +1,33 @@
{
lib,
buildPythonPackage,
fetchPypi,
setuptools-scm,
}:
buildPythonPackage rec {
pname = "adafruit-platformdetect";
version = "3.84.0";
pyproject = true;
src = fetchPypi {
pname = "adafruit_platformdetect";
inherit version;
hash = "sha256-cdx3s1gEfmrk/pQkfqA0Sf6Ks+PpNyOdW9HUuULr7nM=";
};
build-system = [ setuptools-scm ];
# Project has not published tests yet
doCheck = false;
pythonImportsCheck = [ "adafruit_platformdetect" ];
meta = with lib; {
description = "Platform detection for use by Adafruit libraries";
homepage = "https://github.com/adafruit/Adafruit_Python_PlatformDetect";
changelog = "https://github.com/adafruit/Adafruit_Python_PlatformDetect/releases/tag/${version}";
license = licenses.mit;
maintainers = with maintainers; [ fab ];
};
}

View File

@@ -0,0 +1,36 @@
{
lib,
buildPythonPackage,
fetchPypi,
pythonOlder,
setuptools-scm,
}:
buildPythonPackage rec {
pname = "adafruit-pureio";
version = "1.1.11";
format = "pyproject";
disabled = pythonOlder "3.7";
src = fetchPypi {
pname = "Adafruit_PureIO";
inherit version;
hash = "sha256-xM+7NlcxlC0fEJKhFvR9/a4K7xjFsn8QcrWCStXqjHw=";
};
nativeBuildInputs = [ setuptools-scm ];
# Physical SMBus is not present
doCheck = false;
pythonImportsCheck = [ "Adafruit_PureIO" ];
meta = with lib; {
description = "Python interface to Linux IO including I2C and SPI";
homepage = "https://github.com/adafruit/Adafruit_Python_PureIO";
changelog = "https://github.com/adafruit/Adafruit_Python_PureIO/releases/tag/${version}";
license = with licenses; [ mit ];
maintainers = with maintainers; [ fab ];
};
}

View File

@@ -0,0 +1,55 @@
{
lib,
buildPythonPackage,
fetchFromGitHub,
httpretty,
pyjwt,
pytestCheckHook,
python-dateutil,
requests,
setuptools,
}:
buildPythonPackage rec {
pname = "adal";
version = "1.2.7";
pyproject = true;
src = fetchFromGitHub {
owner = "AzureAD";
repo = "azure-activedirectory-library-for-python";
rev = version;
hash = "sha256-HE8/P0aohoZNeMdcQVKdz6M31FMrjsd7oVytiaD0idI=";
};
postPatch = ''
sed -i '/cryptography/d' setup.py
'';
build-system = [ setuptools ];
dependencies = [
pyjwt
python-dateutil
requests
];
nativeCheckInputs = [
httpretty
pytestCheckHook
];
disabledTests = [
# AssertionError: 'Mex [23 chars]tp error:...
"test_failed_request"
];
pythonImportsCheck = [ "adal" ];
meta = with lib; {
description = "Python module to authenticate to Azure Active Directory (AAD) in order to access AAD protected web resources";
homepage = "https://github.com/AzureAD/azure-activedirectory-library-for-python";
license = licenses.mit;
maintainers = [ ];
};
}

View File

@@ -0,0 +1,43 @@
{
lib,
aiohttp,
bleak,
buildPythonPackage,
fetchFromGitHub,
async-timeout,
setuptools,
}:
buildPythonPackage rec {
pname = "adax-local";
version = "0.2.0";
pyproject = true;
src = fetchFromGitHub {
owner = "Danielhiversen";
repo = "pyAdaxLocal";
tag = version;
hash = "sha256-HdhatjlN4oUzBV1cf/PfgOJbEks4KBdw4vH8Y/z6efQ=";
};
build-system = [ setuptools ];
dependencies = [
aiohttp
bleak
async-timeout
];
# Module has no tests
doCheck = false;
pythonImportsCheck = [ "adax_local" ];
meta = with lib; {
description = "Module for local access to Adax";
homepage = "https://github.com/Danielhiversen/pyAdaxLocal";
changelog = "https://github.com/Danielhiversen/pyAdaxLocal/releases/tag/${src.tag}";
license = licenses.mit;
maintainers = with maintainers; [ fab ];
};
}

View File

@@ -0,0 +1,41 @@
{
lib,
aiohttp,
async-timeout,
buildPythonPackage,
fetchFromGitHub,
pythonOlder,
}:
buildPythonPackage rec {
pname = "adax";
version = "0.4.0";
format = "setuptools";
disabled = pythonOlder "3.7";
src = fetchFromGitHub {
owner = "Danielhiversen";
repo = "pyadax";
tag = version;
hash = "sha256-wmcZtiML02i1XfqpFzni2WDrxutTvP5laVvTAGtNg0Y=";
};
propagatedBuildInputs = [
aiohttp
async-timeout
];
# Project has no tests
doCheck = false;
pythonImportsCheck = [ "adax" ];
meta = with lib; {
description = "Python module to communicate with Adax";
homepage = "https://github.com/Danielhiversen/pyAdax";
changelog = "https://github.com/Danielhiversen/pyAdax/releases/tag/${version}";
license = with licenses; [ mit ];
maintainers = with maintainers; [ fab ];
};
}

View File

@@ -0,0 +1,54 @@
{
lib,
buildPythonPackage,
docopt,
fetchFromGitHub,
setuptools,
jdk11,
psutil,
pythonOlder,
}:
buildPythonPackage rec {
pname = "adb-enhanced";
version = "2.5.24";
pyproject = true;
disabled = pythonOlder "3.7";
src = fetchFromGitHub {
owner = "ashishb";
repo = "adb-enhanced";
tag = version;
hash = "sha256-0HxeL6VGM+HTiAxs3NFRcEFbmH9q+0/pJdGyF1hl4hU=";
};
build-system = [ setuptools ];
dependencies = [
psutil
docopt
];
postPatch = ''
substituteInPlace adbe/adb_enhanced.py \
--replace-fail "cmd = 'java" "cmd = '${jdk11}/bin/java"
'';
# Disable tests because they require a dedicated Android emulator
doCheck = false;
pythonImportsCheck = [ "adbe" ];
meta = with lib; {
description = "Tool for Android testing and development";
homepage = "https://github.com/ashishb/adb-enhanced";
sourceProvenance = with sourceTypes; [
fromSource
binaryBytecode
];
license = licenses.asl20;
maintainers = with maintainers; [ vtuan10 ];
mainProgram = "adbe";
};
}

View File

@@ -0,0 +1,44 @@
{
lib,
buildPythonPackage,
fetchFromGitHub,
libusb1,
rsa,
pycryptodome,
pytest,
mock,
}:
buildPythonPackage {
pname = "adb-homeassistant";
version = "1.3.1";
format = "setuptools";
# pypi does not contain tests, using github sources instead
src = fetchFromGitHub {
owner = "JeffLIrion";
repo = "python-adb";
rev = "5949bf432307cbba7128e84d7bc6add7f054a078";
sha256 = "0s3fazvbzchn1fsvjrd1jl8w9y4dvvgq6q8m8p5lr2gri0npr581";
};
propagatedBuildInputs = [
libusb1
rsa
pycryptodome
];
nativeCheckInputs = [
pytest
mock
];
checkPhase = ''
py.test test
'';
meta = with lib; {
description = "Pure python implementation of the Android ADB and Fastboot protocols";
homepage = "https://github.com/JeffLIrion/python-adb/tree/adb-homeassistant";
license = licenses.asl20;
maintainers = [ maintainers.makefu ];
};
}

View File

@@ -0,0 +1,63 @@
{
lib,
pythonOlder,
aiofiles,
async-timeout,
buildPythonPackage,
cryptography,
fetchFromGitHub,
isPy3k,
libusb1,
mock,
pyasn1,
pycryptodome,
pytestCheckHook,
rsa,
}:
buildPythonPackage rec {
pname = "adb-shell";
version = "0.4.4";
format = "setuptools";
disabled = !isPy3k;
src = fetchFromGitHub {
owner = "JeffLIrion";
repo = "adb_shell";
rev = "v${version}";
hash = "sha256-pOkFUh3SEu/ch9R1lVoQn50nufQp8oI+D4/+Ybal5CA=";
};
propagatedBuildInputs = [
cryptography
pyasn1
rsa
];
optional-dependencies = {
async = [
aiofiles
async-timeout
];
usb = [ libusb1 ];
};
doCheck = pythonOlder "3.12"; # FIXME: tests are broken on 3.13
nativeCheckInputs = [
mock
pycryptodome
pytestCheckHook
]
++ lib.flatten (builtins.attrValues optional-dependencies);
pythonImportsCheck = [ "adb_shell" ];
meta = with lib; {
description = "Python implementation of ADB with shell and FileSync functionality";
homepage = "https://github.com/JeffLIrion/adb_shell";
license = licenses.asl20;
maintainers = with maintainers; [ jamiemagee ];
};
}

View File

@@ -0,0 +1,98 @@
{
lib,
stdenv,
fetchFromGitHub,
fetchpatch,
buildPythonPackage,
rustPlatform,
pkg-config,
openssl,
publicsuffix-list,
pythonOlder,
libiconv,
pytestCheckHook,
toml,
}:
buildPythonPackage rec {
pname = "adblock";
version = "0.6.0";
format = "pyproject";
disabled = pythonOlder "3.7";
# Pypi only has binary releases
src = fetchFromGitHub {
owner = "ArniDagur";
repo = "python-adblock";
tag = version;
hash = "sha256-5g5xdUzH/RTVwu4Vfb5Cb1t0ruG0EXgiXjrogD/+JCU=";
};
patches = [
# https://github.com/ArniDagur/python-adblock/pull/91
(fetchpatch {
name = "pep-621-compat.patch";
url = "https://github.com/ArniDagur/python-adblock/commit/2a8716e0723b60390f0aefd0e05f40ba598ac73f.patch";
hash = "sha256-n9+LDs0no66OdNZxw3aU57ngWrAbmm6hx4qIuxXoatM=";
})
];
postPatch = ''
substituteInPlace pyproject.toml \
--replace "0.0.0" "${version}"
'';
cargoDeps = rustPlatform.fetchCargoVendor {
inherit pname version src;
hash = "sha256-fetJX6HQxRZ/Az7rJeU9S+s8ttgNPnJEvTLfzGt4xjk=";
};
nativeBuildInputs = [
pkg-config
]
++ (with rustPlatform; [
cargoSetupHook
maturinBuildHook
]);
buildInputs = [
openssl
]
++ lib.optionals stdenv.hostPlatform.isDarwin [
libiconv
];
PSL_PATH = "${publicsuffix-list}/share/publicsuffix/public_suffix_list.dat";
nativeCheckInputs = [
pytestCheckHook
toml
];
preCheck = ''
# import from $out instead
rm -r adblock
'';
disabledTestPaths = [
# relies on directory removed above
"tests/test_typestubs.py"
];
pythonImportsCheck = [
"adblock"
"adblock.adblock"
];
meta = with lib; {
description = "Python wrapper for Brave's adblocking library";
homepage = "https://github.com/ArniDagur/python-adblock/";
changelog = "https://github.com/ArniDagur/python-adblock/blob/${version}/CHANGELOG.md";
maintainers = with maintainers; [ dotlambda ];
license = with licenses; [
asl20 # or
mit
];
};
}

View File

@@ -0,0 +1,41 @@
{
lib,
buildPythonPackage,
fetchFromGitHub,
pytestCheckHook,
pythonOlder,
setuptools,
tokenize-rt,
}:
buildPythonPackage rec {
pname = "add-trailing-comma";
version = "3.2.0";
pyproject = true;
disabled = pythonOlder "3.9";
src = fetchFromGitHub {
owner = "asottile";
repo = "add-trailing-comma";
tag = "v${version}";
hash = "sha256-b9EHlx149NUAo9UHDZLE3BwSJY5WpxsUYi1mqz7rnHA=";
};
build-system = [ setuptools ];
dependencies = [ tokenize-rt ];
nativeCheckInputs = [ pytestCheckHook ];
pythonImportsCheck = [ "add_trailing_comma" ];
meta = with lib; {
description = "Tool (and pre-commit hook) to automatically add trailing commas to calls and literals";
homepage = "https://github.com/asottile/add-trailing-comma";
changelog = "https://github.com/asottile/add-trailing-comma/releases/tag/${src.tag}";
license = licenses.mit;
maintainers = with maintainers; [ gador ];
mainProgram = "add-trailing-comma";
};
}

View File

@@ -0,0 +1,28 @@
{
lib,
buildPythonPackage,
fetchPypi,
pytestCheckHook,
}:
buildPythonPackage rec {
pname = "addict";
version = "2.4.0";
format = "setuptools";
src = fetchPypi {
inherit pname version;
sha256 = "b3b2210e0e067a281f5646c8c5db92e99b7231ea8b0eb5f74dbdf9e259d4e494";
};
nativeCheckInputs = [ pytestCheckHook ];
pythonImportsCheck = [ "addict" ];
meta = with lib; {
description = "Module that exposes a dictionary subclass that allows items to be set like attributes";
homepage = "https://github.com/mewwts/addict";
license = with licenses; [ mit ];
maintainers = with maintainers; [ veprbl ];
};
}

View File

@@ -0,0 +1,40 @@
{
lib,
buildPythonPackage,
fetchFromGitHub,
setuptools-scm,
alarmdecoder,
pytestCheckHook,
pythonOlder,
}:
buildPythonPackage rec {
pname = "adext";
version = "0.4.7";
pyproject = true;
disabled = pythonOlder "3.7";
src = fetchFromGitHub {
owner = "ajschmidt8";
repo = "adext";
tag = "v${version}";
hash = "sha256-cZMA8/t24xk5b1At2LQWeDWuRfPcXBCXpl2T70YxZeA=";
};
build-system = [ setuptools-scm ];
dependencies = [ alarmdecoder ];
nativeCheckInputs = [ pytestCheckHook ];
pythonImportsCheck = [ "adext" ];
meta = with lib; {
description = "Python extension for AlarmDecoder";
homepage = "https://github.com/ajschmidt8/adext";
changelog = "https://github.com/ajschmidt8/adext/releases/tag/${src.tag}";
license = with licenses; [ mit ];
maintainers = with maintainers; [ fab ];
};
}

View File

@@ -0,0 +1,59 @@
{
lib,
aiohttp,
aresponses,
buildPythonPackage,
fetchFromGitHub,
poetry-core,
pytest-asyncio,
pytest-cov-stub,
pytestCheckHook,
pythonOlder,
yarl,
}:
buildPythonPackage rec {
pname = "adguardhome";
version = "0.7.0";
pyproject = true;
disabled = pythonOlder "3.11";
src = fetchFromGitHub {
owner = "frenck";
repo = "python-${pname}";
tag = "v${version}";
hash = "sha256-n55G6ulKcgSSrgPk70D52OO9fp3WURlcRhJQUKrZ1Nk=";
};
postPatch = ''
substituteInPlace pyproject.toml \
--replace-fail '"0.0.0"' '"${version}"'
'';
build-system = [ poetry-core ];
dependencies = [
aiohttp
yarl
];
__darwinAllowLocalNetworking = true;
nativeCheckInputs = [
aresponses
pytest-asyncio
pytest-cov-stub
pytestCheckHook
];
pythonImportsCheck = [ "adguardhome" ];
meta = with lib; {
description = "Python client for the AdGuard Home API";
homepage = "https://github.com/frenck/python-adguardhome";
changelog = "https://github.com/frenck/python-adguardhome/releases/tag/v${version}";
license = licenses.mit;
maintainers = with maintainers; [ jamiemagee ];
};
}

View File

@@ -0,0 +1,50 @@
{
lib,
buildPythonPackage,
fetchFromGitHub,
matplotlib,
numpy,
packaging,
pythonOlder,
scipy,
setuptools,
}:
buildPythonPackage rec {
pname = "adjusttext";
version = "1.3.0";
pyproject = true;
disabled = pythonOlder "3.7";
src = fetchFromGitHub {
owner = "Phlya";
repo = "adjusttext";
tag = "v${version}";
hash = "sha256-WMWT2os3ADQOc1ogoCFKBEWnb6/CxgtiWmY45bYomks=";
};
build-system = [
packaging
setuptools
];
dependencies = [
matplotlib
numpy
scipy
];
# Project has no tests
doCheck = false;
pythonImportsCheck = [ "adjustText" ];
meta = with lib; {
description = "Iteratively adjust text position in matplotlib plots to minimize overlaps";
homepage = "https://github.com/Phlya/adjustText";
changelog = "https://github.com/Phlya/adjustText/releases/tag/v${version}";
license = licenses.mit;
maintainers = with maintainers; [ samuela ];
};
}

View File

@@ -0,0 +1,58 @@
{
lib,
aiohttp,
azure-core,
azure-datalake-store,
azure-identity,
azure-storage-blob,
buildPythonPackage,
fetchFromGitHub,
fsspec,
pythonOlder,
setuptools,
setuptools-scm,
}:
buildPythonPackage rec {
pname = "adlfs";
version = "2025.8.0";
pyproject = true;
disabled = pythonOlder "3.8";
src = fetchFromGitHub {
owner = "fsspec";
repo = "adlfs";
tag = version;
hash = "sha256-e9JO8obFvFHzNeb42Lo2RG21NvLv/eCyWm2fY7MEiTA=";
};
build-system = [
setuptools
setuptools-scm
];
dependencies = [
aiohttp
azure-core
azure-datalake-store
azure-identity
azure-storage-blob
fsspec
];
pythonRelaxDeps = [ "azure-datalake-store" ];
# Tests require a running Docker instance
doCheck = false;
pythonImportsCheck = [ "adlfs" ];
meta = with lib; {
description = "Filesystem interface to Azure-Datalake Gen1 and Gen2 Storage";
homepage = "https://github.com/fsspec/adlfs";
changelog = "https://github.com/fsspec/adlfs/blob/${version}/CHANGELOG.md";
license = licenses.bsd3;
maintainers = with maintainers; [ fab ];
};
}

View File

@@ -0,0 +1,35 @@
{
lib,
aiohttp,
buildPythonPackage,
fetchPypi,
pythonOlder,
}:
buildPythonPackage rec {
pname = "advantage-air";
version = "0.4.4";
format = "setuptools";
disabled = pythonOlder "3.6";
src = fetchPypi {
pname = "advantage_air";
inherit version;
hash = "sha256-4rRR9IxzH5EiYfWzWYeyCwoLB2LetBVyH7L3nkvp+gA=";
};
propagatedBuildInputs = [ aiohttp ];
# No tests
doCheck = false;
pythonImportsCheck = [ "advantage_air" ];
meta = with lib; {
description = "API helper for Advantage Air's MyAir and e-zone API";
homepage = "https://github.com/Bre77/advantage_air";
license = licenses.mit;
maintainers = with maintainers; [ jamiemagee ];
};
}

View File

@@ -0,0 +1,47 @@
{
lib,
buildPythonPackage,
fetchFromGitHub,
ndg-httpsclient,
netifaces,
pyasn1,
pyopenssl,
requests,
six,
urllib3,
}:
buildPythonPackage rec {
pname = "advocate";
version = "1.0.0";
format = "setuptools";
src = fetchFromGitHub {
owner = "JordanMilne";
repo = "advocate";
rev = "v${version}";
hash = "sha256-opObkjkad+yrLE2b7DULHjGuNeVhu4fEmSavgA39YPw=";
};
propagatedBuildInputs = [
ndg-httpsclient
netifaces
pyasn1
pyopenssl
requests
six
urllib3
];
# The tests do network requests, so disabled
doCheck = false;
pythonImportsCheck = [ "advocate" ];
meta = with lib; {
homepage = "https://github.com/JordanMilne/Advocate";
description = "SSRF-preventing wrapper around Python's requests library";
license = licenses.asl20;
maintainers = with maintainers; [ pborzenkov ];
};
}

View File

@@ -0,0 +1,52 @@
{
lib,
buildPythonPackage,
fetchFromGitHub,
setuptools,
pytestCheckHook,
charset-normalizer,
}:
buildPythonPackage rec {
pname = "aeidon";
version = "1.15";
pyproject = true;
src = fetchFromGitHub {
owner = "otsaloma";
repo = "gaupol";
tag = version;
hash = "sha256-lhNyeieeiBBm3rNDEU0BuWKeM6XYlOtv1voW8tR8cUM=";
};
postPatch = ''
mv setup.py setup_gaupol.py
substituteInPlace setup-aeidon.py \
--replace "from setup import" "from setup_gaupol import"
mv setup-aeidon.py setup.py
'';
build-system = [ setuptools ];
dependencies = [ charset-normalizer ];
nativeCheckInputs = [ pytestCheckHook ];
enabledTestPaths = [ "aeidon/test" ];
disabledTests = [
# requires gspell to work with gobject introspection
"test_spell"
];
pythonImportsCheck = [ "aeidon" ];
meta = with lib; {
changelog = "https://github.com/otsaloma/gaupol/releases/tag/${version}";
description = "Reading, writing and manipulationg text-based subtitle files";
homepage = "https://github.com/otsaloma/gaupol";
license = licenses.gpl3Plus;
maintainers = with maintainers; [ erictapen ];
};
}

View File

@@ -0,0 +1,44 @@
{
lib,
aiohttp,
buildPythonPackage,
fetchFromGitHub,
geopy,
pythonOlder,
setuptools,
}:
buildPythonPackage rec {
pname = "aemet-opendata";
version = "0.6.4";
pyproject = true;
disabled = pythonOlder "3.11";
src = fetchFromGitHub {
owner = "Noltari";
repo = "AEMET-OpenData";
tag = version;
hash = "sha256-xxpB5JFPkTwd7dxba9pXRvcont/i3wXBdJh5NfLnZTM=";
};
build-system = [ setuptools ];
dependencies = [
aiohttp
geopy
];
# no tests implemented
doCheck = false;
pythonImportsCheck = [ "aemet_opendata.interface" ];
meta = with lib; {
description = "Python client for AEMET OpenData Rest API";
homepage = "https://github.com/Noltari/AEMET-OpenData";
changelog = "https://github.com/Noltari/AEMET-OpenData/releases/tag/${version}";
license = licenses.gpl2Only;
maintainers = with maintainers; [ dotlambda ];
};
}

View File

@@ -0,0 +1,54 @@
{
lib,
buildPythonPackage,
fetchPypi,
pyparsing,
pytestCheckHook,
pythonAtLeast,
pythonOlder,
setuptools,
}:
buildPythonPackage rec {
pname = "aenum";
version = "3.1.15";
pyproject = true;
disabled = pythonOlder "3.7";
src = fetchPypi {
inherit pname version;
hash = "sha256-jL12zRjE+HD/ObJChNPqAo++hzGljfOqWB5DTFdblVk=";
};
nativeBuildInputs = [ setuptools ];
nativeCheckInputs = [
pyparsing
pytestCheckHook
];
pythonImportsCheck = [ "aenum" ];
disabledTests = [
# https://github.com/ethanfurman/aenum/issues/27
"test_class_nested_enum_and_pickle_protocol_four"
"test_pickle_enum_function_with_qualname"
"test_stdlib_inheritence"
"test_subclasses_with_getnewargs_ex"
"test_arduino_headers"
"test_c_header_scanner"
"test_extend_flag_backwards_stdlib"
]
++ lib.optionals (pythonAtLeast "3.12") [
# AttributeError: <enum 'Color'> has no attribute 'value'. Did you mean: 'blue'?
"test_extend_enum_shadow_property_stdlib"
];
meta = with lib; {
description = "Advanced Enumerations (compatible with Python's stdlib Enum), NamedTuples, and NamedConstants";
homepage = "https://github.com/ethanfurman/aenum";
license = licenses.bsd3;
maintainers = [ ];
};
}

View File

@@ -0,0 +1,52 @@
{
lib,
buildPythonPackage,
fetchPypi,
setuptools,
numpy,
scipy,
pandas,
matplotlib,
seaborn,
tqdm,
sortedcontainers,
dill,
casadi,
}:
buildPythonPackage rec {
pname = "aerosandbox";
version = "4.2.8";
format = "wheel";
src = fetchPypi {
pname = "AeroSandbox";
inherit version format;
python = "py3";
dist = "py3";
hash = "sha256-+rrZzaBWyc9a20bUlsB0iDqYkn+ldlKT0lFfCy2yeXk=";
};
build-system = [ setuptools ];
dependencies = [
numpy
scipy
pandas
matplotlib
seaborn
tqdm
sortedcontainers
dill
casadi
];
pythonImportsCheck = [ "aerosandbox" ];
meta = {
description = "Aircraft design optimization made fast through modern automatic differentiation";
homepage = "https://peterdsharpe.github.io/AeroSandbox";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ sigmanificient ];
};
}

View File

@@ -0,0 +1,51 @@
{
lib,
aiowinreg,
buildPythonPackage,
colorama,
fetchFromGitHub,
pycryptodomex,
pythonOlder,
setuptools,
tqdm,
unicrypto,
}:
buildPythonPackage rec {
pname = "aesedb";
version = "0.1.6";
pyproject = true;
disabled = pythonOlder "3.7";
src = fetchFromGitHub {
owner = "skelsec";
repo = "aesedb";
tag = version;
hash = "sha256-nYuMWE03Rsw1XuD/bxccpu8rddeXgS/EKJcO1VBLTLU=";
};
nativeBuildInputs = [ setuptools ];
propagatedBuildInputs = [
aiowinreg
colorama
pycryptodomex
tqdm
unicrypto
];
# Module has no tests
doCheck = false;
pythonImportsCheck = [ "aesedb" ];
meta = with lib; {
description = "Parser for JET databases";
mainProgram = "antdsparse";
homepage = "https://github.com/skelsec/aesedb";
changelog = "https://github.com/skelsec/aesedb/releases/tag/${version}";
license = with licenses; [ mit ];
maintainers = with maintainers; [ fab ];
};
}

View File

@@ -0,0 +1,68 @@
{
lib,
buildPythonPackage,
fetchFromGitHub,
grpcio,
protobuf,
pytest-asyncio,
pytest-cov-stub,
pytest-mock,
pytestCheckHook,
pythonOlder,
setuptools,
setuptools-scm,
}:
buildPythonPackage rec {
pname = "aetcd";
version = "1.0.0a4";
pyproject = true;
disabled = pythonOlder "3.8";
src = fetchFromGitHub {
owner = "martyanov";
repo = "aetcd";
tag = "v${version}";
hash = "sha256-g49ppfh8dyGpZeu/HdTDX8RAk5VTcZmqENRpNY12qkg=";
};
postPatch = ''
substituteInPlace setup.py \
--replace-fail "setuptools_scm==6.3.2" "setuptools_scm"
'';
pythonRelaxDeps = [ "protobuf" ];
build-system = [
setuptools
setuptools-scm
];
dependencies = [
grpcio
protobuf
];
nativeCheckInputs = [
pytest-asyncio
pytest-cov-stub
pytest-mock
pytestCheckHook
];
pythonImportsCheck = [ "aetcd" ];
disabledTestPaths = [
# Tests require a running ectd instance
"tests/integration/"
];
meta = with lib; {
description = "Python asyncio-based client for etcd";
homepage = "https://github.com/martyanov/aetcd";
changelog = "https://github.com/martyanov/aetcd/blob/v${version}/docs/changelog.rst";
license = licenses.asl20;
maintainers = with maintainers; [ fab ];
};
}

View File

@@ -0,0 +1,157 @@
{
lib,
stdenv,
# Enables some expensive tests, useful for verifying an update
afdko,
antlr4_13,
booleanoperations,
buildPythonPackage,
cmake,
defcon,
fetchFromGitHub,
fetchpatch,
fontmath,
fontpens,
fonttools,
libxml2,
mutatormath,
ninja,
pytestCheckHook,
pythonOlder,
runAllTests ? false,
scikit-build,
setuptools-scm,
tqdm,
ufonormalizer,
ufoprocessor,
}:
buildPythonPackage rec {
pname = "afdko";
version = "4.0.2";
pyproject = true;
disabled = pythonOlder "3.8";
src = fetchFromGitHub {
owner = "adobe-type-tools";
repo = "afdko";
tag = version;
hash = "sha256:0955dvbydifhgx9gswbf5drsmmghry7iyf6jwz6qczhj86clswcm";
};
build-system = [ setuptools-scm ];
nativeBuildInputs = [
scikit-build
cmake
ninja
];
buildInputs = [
antlr4_13.runtime.cpp
libxml2.dev
];
patches = [
# Don't try to install cmake and ninja using pip
./no-pypi-build-tools.patch
# Use antlr4 runtime from nixpkgs and link it dynamically
./use-dynamic-system-antlr4-runtime.patch
# Fix tests
# FIXME: remove in 5.0
(fetchpatch {
url = "https://github.com/adobe-type-tools/afdko/commit/3b78bea15245e2bd2417c25ba5c2b8b15b07793c.patch";
excludes = [
"CMakeLists.txt"
"requirements.txt"
];
hash = "sha256-Ao5AUVm1h4a3qidqlBFWdC7jiXyBfXQEnsT7XsXXXRU=";
})
];
env.NIX_CFLAGS_COMPILE = lib.optionalString stdenv.cc.isClang (toString [
"-Wno-error=incompatible-function-pointer-types"
"-Wno-error=int-conversion"
]);
# setup.py will always (re-)execute cmake in buildPhase
dontConfigure = true;
dependencies = [
booleanoperations
defcon
fontmath
fontpens
fonttools
mutatormath
tqdm
ufonormalizer
ufoprocessor
]
++ defcon.optional-dependencies.lxml
++ fonttools.optional-dependencies.lxml
++ fonttools.optional-dependencies.ufo
++ fonttools.optional-dependencies.unicode
++ fonttools.optional-dependencies.woff;
# Use system libxml2
FORCE_SYSTEM_LIBXML2 = true;
nativeCheckInputs = [ pytestCheckHook ];
preCheck = ''
export PATH=$PATH:$out/bin
# Remove build artifacts to prevent them from messing with the tests
rm -rf _skbuild
'';
disabledTests = [
# broke in the fontforge 4.51 -> 4.53 update
"test_glyphs_2_7"
"test_hinting_data"
"test_waterfallplot"
# broke at some point
"test_type1_supported_hint"
]
++ lib.optionals (stdenv.cc.isGNU) [
# broke in the gcc 13 -> 14 update
"test_dump"
"test_input_formats"
"test_other_input_formats"
]
++ lib.optionals (!runAllTests) [
# Disable slow tests, reduces test time ~25 %
"test_report"
"test_post_overflow"
"test_cjk"
"test_extrapolate"
"test_filename_without_dir"
"test_overwrite"
"test_options"
]
++ lib.optionals (stdenv.hostPlatform.isAarch || stdenv.hostPlatform.isRiscV) [
# unknown reason so far
# https://github.com/adobe-type-tools/afdko/issues/1425
"test_spec"
]
++ lib.optionals (stdenv.hostPlatform.isi686) [
"test_dump_option"
"test_type1mm_inputs"
];
passthru.tests = {
fullTestsuite = afdko.override { runAllTests = true; };
};
meta = with lib; {
description = "Adobe Font Development Kit for OpenType";
changelog = "https://github.com/adobe-type-tools/afdko/blob/${version}/NEWS.md";
homepage = "https://adobe-type-tools.github.io/afdko";
license = licenses.asl20;
maintainers = with maintainers; [ sternenseemann ];
};
}

View File

@@ -0,0 +1,24 @@
commit a5fde72bd15e0baba008ea54270a1ffe017544a0
Author: sternenseemann <sternenseemann@systemli.org>
Date: Tue Oct 5 18:17:20 2021 +0200
Don't use pypi distributions of build tools
We want to use regular cmake and ninja and not the pypi projects which
somehow wrap and vendor a version of the proper tool.
diff --git a/setup.py b/setup.py
index 973e2826..dba58766 100644
--- a/setup.py
+++ b/setup.py
@@ -198,9 +198,7 @@ def main():
setup_requires=[
'wheel',
'setuptools_scm',
- 'scikit-build',
- 'cmake',
- 'ninja'
+ 'scikit-build'
],
tests_require=[
'pytest',

View File

@@ -0,0 +1,53 @@
commit 3560653d5d52bf30a52ce971ecfe262b1a09d7a3
Author: sternenseemann <sternenseemann@systemli.org>
Date: Tue Oct 5 18:16:10 2021 +0200
Link against system antlr4 runtime, dynamically
Instead of cloning a antlr4 version from git, use the system one. Also
don't link it statically, but dynamically by default (the library is
called antlr4-runtime, not antlr4_static).
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 88e9cfd0..3df902b4 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -36,11 +36,10 @@ list(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/cmake)
# https://www.antlr.org/download/antlr4-cpp-runtime-4.9.3-source.zip
# set(ANTLR4_ZIP_REPOSITORY "/path_to_antlr4_archive/a4.zip")
-add_definitions(-DANTLR4CPP_STATIC)
set(ANTLR4_WITH_STATIC_CRT OFF)
-# 4.9.3 is the latest ANTLR4 version
set(ANTLR4_TAG tags/4.13.2)
-include(ExternalAntlr4Cpp)
+find_path(ANTLR4_HEADER antlr4-runtime.h PATH_SUFFIXES antlr4-runtime)
+set(ANTLR4_INCLUDE_DIRS ${ANTLR4_HEADER})
if (DEFINED ENV{FORCE_BUILD_LIBXML2})
diff --git a/c/makeotf/lib/cffread/CMakeLists.txt b/c/makeotf/lib/cffread/CMakeLists.txt
index 2990035f..fab25a77 100644
--- a/c/makeotf/lib/cffread/CMakeLists.txt
+++ b/c/makeotf/lib/cffread/CMakeLists.txt
@@ -8,6 +8,6 @@ if (${NEED_LIBXML2_DEPEND})
add_dependencies(makeotf_cffread ${LIBXML2_TARGET})
endif()
-target_link_libraries(makeotf_cffread PUBLIC antlr4_static)
+target_link_libraries(makeotf_cffread PUBLIC antlr4-runtime)
target_compile_definitions(makeotf_cffread PRIVATE $<$<CONFIG:Debug>:CFF_DEBUG=1> CFF_T13_SUPPORT=0)
diff --git a/c/makeotf/lib/hotconv/CMakeLists.txt b/c/makeotf/lib/hotconv/CMakeLists.txt
index 60e49458..ada728c0 100644
--- a/c/makeotf/lib/hotconv/CMakeLists.txt
+++ b/c/makeotf/lib/hotconv/CMakeLists.txt
@@ -70,7 +70,7 @@ add_library(hotconv STATIC
set_property(TARGET hotconv PROPERTY C_STANDARD 99)
set_property(TARGET hotconv PROPERTY CXX_STANDARD 17)
target_include_directories(hotconv PRIVATE AFTER $<$<COMPILE_LANGUAGE:CXX>:${ANTLR4_INCLUDE_DIRS}>)
-target_link_libraries(hotconv PUBLIC antlr4_static)
+target_link_libraries(hotconv PUBLIC antlr4-runtime)
target_link_libraries(hotconv PUBLIC ${CHOSEN_LIBXML2_LIBRARY})

View File

@@ -0,0 +1,49 @@
{
biopython,
buildPythonPackage,
colorama,
fetchFromGitHub,
hatchling,
lib,
numpy,
pytest-repeat,
pytestCheckHook,
}:
buildPythonPackage rec {
pname = "affine-gaps";
version = "0.2.3";
pyproject = true;
src = fetchFromGitHub {
owner = "gata-bio";
repo = "affine-gaps";
tag = "v${version}";
hash = "sha256-GP6Ahp1LQYnKp9V7jDEeFsntMC9Qav5kWm+5bSldtyM=";
};
build-system = [ hatchling ];
dependencies = [
colorama
numpy
];
pythonImportsCheck = [ "affine_gaps" ];
nativeCheckInputs = [
biopython
pytest-repeat
pytestCheckHook
];
enabledTestPaths = [ "test.py" ];
meta = {
changelog = "https://github.com/gata-bio/affine-gaps/releases/tag/${src.tag}";
homepage = "https://github.com/gata-bio/affine-gaps";
license = lib.licenses.asl20;
mainProgram = "affine-gaps";
maintainers = [ lib.maintainers.dotlambda ];
};
}

View File

@@ -0,0 +1,34 @@
{
lib,
buildPythonPackage,
pythonOlder,
fetchPypi,
flit-core,
pytestCheckHook,
}:
buildPythonPackage rec {
pname = "affine";
version = "2.4.0";
disabled = pythonOlder "3.7";
format = "pyproject";
src = fetchPypi {
inherit pname version;
hash = "sha256-ok2BjWqDbBMZdtIvjCe408oy0K9kwdjSnet7r6TaHuo=";
};
nativeBuildInputs = [ flit-core ];
nativeCheckInputs = [ pytestCheckHook ];
meta = with lib; {
changelog = "https://github.com/rasterio/affine/blob/${version}/CHANGES.txt";
description = "Matrices describing affine transformation of the plane";
license = licenses.bsd3;
homepage = "https://github.com/rasterio/affine";
maintainers = [ ];
};
}

View File

@@ -0,0 +1,52 @@
{
lib,
aiohttp,
buildPythonPackage,
fetchFromGitHub,
lxml,
pytest-aiohttp,
pytestCheckHook,
pythonOlder,
setuptools-scm,
}:
buildPythonPackage rec {
pname = "afsapi";
version = "0.2.8";
format = "setuptools";
disabled = pythonOlder "3.8";
src = fetchFromGitHub {
owner = "wlcrs";
repo = "python-afsapi";
tag = version;
hash = "sha256-eE5BsXNtSU6YUhRn4/SKpMrqaYf8tyfLKdxxGOmNJ9I=";
};
nativeBuildInputs = [ setuptools-scm ];
propagatedBuildInputs = [
aiohttp
lxml
];
doCheck = false; # Failed: async def functions are not natively supported.
nativeCheckInputs = [
pytest-aiohttp
pytestCheckHook
];
enabledTestPaths = [ "async_tests.py" ];
pythonImportsCheck = [ "afsapi" ];
meta = with lib; {
description = "Python implementation of the Frontier Silicon API";
homepage = "https://github.com/wlcrs/python-afsapi";
changelog = "https://github.com/wlcrs/python-afsapi/releases/tag/${version}";
license = licenses.asl20;
maintainers = with maintainers; [ fab ];
};
}

View File

@@ -0,0 +1,32 @@
{
lib,
fetchPypi,
buildPythonPackage,
agate,
dbf,
dbfread,
}:
buildPythonPackage rec {
pname = "agate-dbf";
version = "0.2.3";
format = "setuptools";
propagatedBuildInputs = [
agate
dbf
dbfread
];
src = fetchPypi {
inherit pname version;
hash = "sha256-mKK1N1cTbMdNwpflniEB009tSPQfdBVrtsDeJruiqj8=";
};
meta = with lib; {
description = "Adds read support for dbf files to agate";
homepage = "https://github.com/wireservice/agate-dbf";
license = with licenses; [ mit ];
maintainers = [ ];
};
}

View File

@@ -0,0 +1,43 @@
{
lib,
fetchPypi,
buildPythonPackage,
agate,
openpyxl,
xlrd,
olefile,
pytestCheckHook,
pythonOlder,
}:
buildPythonPackage rec {
pname = "agate-excel";
version = "0.4.1";
format = "setuptools";
disabled = pythonOlder "3.8";
src = fetchPypi {
inherit pname version;
hash = "sha256-KEJmGMkHRxEebVZumD2Djx4vrmQeppcNessOnUs4QJE=";
};
propagatedBuildInputs = [
agate
openpyxl
xlrd
olefile
];
nativeCheckInputs = [ pytestCheckHook ];
pythonImportsCheck = [ "agate" ];
meta = with lib; {
description = "Adds read support for excel files to agate";
homepage = "https://github.com/wireservice/agate-excel";
changelog = "https://github.com/wireservice/agate-excel/blob/${version}/CHANGELOG.rst";
license = licenses.mit;
maintainers = [ ];
};
}

View File

@@ -0,0 +1,48 @@
{
lib,
buildPythonPackage,
isPy27,
fetchPypi,
agate,
sqlalchemy,
crate,
pytestCheckHook,
geojson,
}:
buildPythonPackage rec {
pname = "agate-sql";
version = "0.7.2";
format = "setuptools";
disabled = isPy27;
src = fetchPypi {
inherit pname version;
hash = "sha256-mxswKEpXP9QWdZQ3Jz3MXIECK98vrLJLSqAppir9U7A=";
};
propagatedBuildInputs = [
agate
sqlalchemy
];
nativeCheckInputs = [
geojson
pytestCheckHook
];
pythonImportsCheck = [ "agatesql" ];
disabledTests = [
# requires crate (sqlalchemy-cratedb)
"test_to_sql_create_statement_with_dialects"
];
meta = with lib; {
description = "Adds SQL read/write support to agate";
homepage = "https://github.com/wireservice/agate-sql";
license = with licenses; [ mit ];
maintainers = [ ];
};
}

View File

@@ -0,0 +1,62 @@
{
lib,
babel,
buildPythonPackage,
cssselect,
fetchFromGitHub,
glibcLocales,
isodate,
leather,
lxml,
parsedatetime,
pyicu,
pytestCheckHook,
python-slugify,
pythonOlder,
pytimeparse,
setuptools,
}:
buildPythonPackage rec {
pname = "agate";
version = "1.13.0";
pyproject = true;
disabled = pythonOlder "3.8";
src = fetchFromGitHub {
owner = "wireservice";
repo = "agate";
tag = version;
hash = "sha256-jDeme5eOuX9aQ+4A/pLnH/SuCOztyZzKdSBYKVC63Bk=";
};
build-system = [ setuptools ];
dependencies = [
babel
isodate
leather
parsedatetime
python-slugify
pytimeparse
];
nativeCheckInputs = [
cssselect
glibcLocales
lxml
pyicu
pytestCheckHook
];
pythonImportsCheck = [ "agate" ];
meta = {
description = "Python data analysis library that is optimized for humans instead of machines";
homepage = "https://github.com/wireservice/agate";
changelog = "https://github.com/wireservice/agate/blob/${version}/CHANGELOG.rst";
license = with lib.licenses; [ mit ];
maintainers = [ ];
};
}

View File

@@ -0,0 +1,38 @@
{
aiohttp,
buildPythonPackage,
fetchFromGitHub,
lib,
setuptools,
pytestCheckHook,
}:
buildPythonPackage rec {
pname = "agent-py";
version = "0.0.24";
pyproject = true;
src = fetchFromGitHub {
owner = "ispysoftware";
repo = "agent-py";
tag = "agent-py.${version}";
hash = "sha256-PP4gQ3AFYLJPUt9jhhiV9HkfBhIzd+JIsGpgK6FNmaE=";
};
build-system = [ setuptools ];
dependencies = [ aiohttp ];
doCheck = false; # only test is outdated
nativeCheckInputs = [ pytestCheckHook ];
pythonImportsCheck = [ "agent" ];
meta = with lib; {
description = "Python wrapper around the Agent REST API";
homepage = "https://github.com/ispysoftware/agent-py";
license = licenses.asl20;
maintainers = with maintainers; [ jamiemagee ];
};
}

View File

@@ -0,0 +1,55 @@
{
lib,
fetchFromGitHub,
buildPythonPackage,
packaging,
setuptools,
pkgconfig,
freetype,
pytest,
python,
pillow,
numpy,
}:
buildPythonPackage rec {
pname = "aggdraw";
version = "1.3.19";
format = "pyproject";
src = fetchFromGitHub {
owner = "pytroll";
repo = "aggdraw";
rev = "v${version}";
hash = "sha256-J9+mxlUxOoRBFdz+p8me2T93jaov5rNvKbAZ2YX/VhA=";
};
nativeBuildInputs = [
packaging
setuptools
pkgconfig
];
buildInputs = [ freetype ];
nativeCheckInputs = [
numpy
pillow
pytest
];
checkPhase = ''
runHook preCheck
${python.interpreter} selftest.py
runHook postCheck
'';
pythonImportsCheck = [ "aggdraw" ];
meta = with lib; {
description = "High quality drawing interface for PIL";
homepage = "https://github.com/pytroll/aggdraw";
license = licenses.mit;
maintainers = with maintainers; [ onny ];
};
}

View File

@@ -0,0 +1,50 @@
{
lib,
buildPythonPackage,
fetchFromGitHub,
setuptools,
py-radix-sr,
versionCheckHook,
pytestCheckHook,
}:
buildPythonPackage rec {
pname = "aggregate6";
version = "1.0.14";
pyproject = true;
src = fetchFromGitHub {
owner = "job";
repo = "aggregate6";
rev = version;
hash = "sha256-sF5F4AIIQuMTuWE3zoBE1akJX9QSmAaRp1qgoHzSJMo=";
};
# py-radix-sr is a fork, with fixes
# NOTE: it should be worth switching to py-radix again in the future as there
# is still development sadly currently without a new release.
postPatch = ''
substituteInPlace setup.py --replace-fail 'py-radix==0.10.0' 'py-radix-sr'
'';
build-system = [ setuptools ];
dependencies = [ py-radix-sr ];
nativeCheckInputs = [
pytestCheckHook
versionCheckHook
];
pythonImportsCheck = [ "aggregate6" ];
versionCheckProgramArg = "-V";
meta = {
description = "IPv4 and IPv6 prefix aggregation tool";
mainProgram = "aggregate6";
homepage = "https://github.com/job/aggregate6";
license = with lib.licenses; [ bsd2 ];
maintainers = with lib.maintainers; [ marcel ];
teams = [ lib.teams.wdz ];
};
}

View File

@@ -0,0 +1,31 @@
{
lib,
buildPythonPackage,
fetchPypi,
pytestCheckHook,
setuptools,
}:
buildPythonPackage rec {
pname = "ago";
version = "0.1.0";
pyproject = true;
src = fetchPypi {
inherit pname version;
hash = "sha256-FWBBWXEcR+CPISUfKL+0ODlCCHU1Zg2+ZAsvYZP5K+Q=";
};
build-system = [ setuptools ];
nativeCheckInputs = [ pytestCheckHook ];
pythonImportsCheck = [ "ago" ];
meta = with lib; {
description = "Human Readable Time Deltas";
homepage = "https://git.unturf.com/python/ago";
license = licenses.publicDomain;
maintainers = with maintainers; [ vizid ];
};
}

View File

@@ -0,0 +1,42 @@
{
buildPythonPackage,
fetchFromGitHub,
lib,
pytestCheckHook,
setuptools,
}:
buildPythonPackage rec {
pname = "ahocorapy";
version = "1.6.2";
pyproject = true;
src = fetchFromGitHub {
owner = "abusix";
repo = "ahocorapy";
tag = version;
hash = "sha256-ynVkDnrZ12dpNPoKfUdw0/X06aORFkmXFMVH9u0Payo=";
};
build-system = [ setuptools ];
pythonRemoveDeps = [ "future" ];
pythonImportsCheck = [ "ahocorapy" ];
nativeCheckInputs = [
pytestCheckHook
];
enabledTestPaths = [
"tests/ahocorapy_test.py"
];
meta = {
changelog = "https://github.com/abusix/ahocorapy/blob/${src.tag}/CHANGELOG";
description = "Pure python Aho-Corasick library";
homepage = "https://github.com/abusix/ahocorapy";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ dotlambda ];
};
}

View File

@@ -0,0 +1,57 @@
{
lib,
buildPythonPackage,
pythonOlder,
fetchPypi,
rustPlatform,
pytestCheckHook,
pyahocorasick,
hypothesis,
typing-extensions,
pytest-benchmark,
}:
buildPythonPackage rec {
pname = "ahocorasick-rs";
version = "0.22.2";
pyproject = true;
src = fetchPypi {
inherit version;
pname = "ahocorasick_rs";
hash = "sha256-h/J6ZCLb+U7A+f6ErAGI1KZrXHsvX23rFl8MXj25dpw=";
};
cargoDeps = rustPlatform.fetchCargoVendor {
inherit pname version src;
hash = "sha256-uB3r6+Ewpi4dVke/TsCZltfc+ZABYLOLKuNxw+Jfu/M=";
};
nativeBuildInputs = with rustPlatform; [
maturinBuildHook
cargoSetupHook
];
dependencies = lib.optionals (pythonOlder "3.12") [ typing-extensions ];
nativeCheckInputs = [
pytest-benchmark
pytestCheckHook
pyahocorasick
hypothesis
];
pytestFlags = [ "--benchmark-disable" ];
pythonImportsCheck = [ "ahocorasick_rs" ];
meta = with lib; {
description = "Fast Aho-Corasick algorithm for Python";
homepage = "https://github.com/G-Research/ahocorasick_rs/";
changelog = "https://github.com/G-Research/ahocorasick_rs/blob/${version}/CHANGELOG.md";
license = licenses.asl20;
maintainers = with maintainers; [ erictapen ];
};
}

View File

@@ -0,0 +1,39 @@
{
lib,
buildPythonPackage,
fetchPypi,
mutagen,
requests,
colorama,
prettytable,
pycrypto,
pydub,
}:
buildPythonPackage rec {
pname = "aigpy";
version = "2022.7.8.1";
format = "setuptools";
src = fetchPypi {
inherit pname version;
hash = "sha256-1kQced6YdC/wvegqFVhZfej4+4aemGXvKysKjejP13w=";
};
propagatedBuildInputs = [
mutagen
requests
colorama
prettytable
pycrypto
pydub
];
meta = {
homepage = "https://github.com/AIGMix/AIGPY";
description = "Python library with miscellaneous tools";
license = lib.licenses.mit;
maintainers = [ lib.maintainers.misterio77 ];
platforms = lib.platforms.all;
};
}

View File

@@ -0,0 +1,43 @@
{
lib,
buildPythonPackage,
fetchFromGitHub,
pythonOlder,
pyvex,
setuptools,
typing-extensions,
}:
buildPythonPackage rec {
pname = "ailment";
version = "9.2.154";
pyproject = true;
disabled = pythonOlder "3.11";
src = fetchFromGitHub {
owner = "angr";
repo = "ailment";
tag = "v${version}";
hash = "sha256-JjS+jYWrbErkb6uM0DtB5h2ht6ZMmiYOQL/Emm6wC5U=";
};
build-system = [ setuptools ];
dependencies = [
pyvex
typing-extensions
];
# Tests depend on angr (possibly a circular dependency)
doCheck = false;
pythonImportsCheck = [ "ailment" ];
meta = with lib; {
description = "Angr Intermediate Language";
homepage = "https://github.com/angr/ailment";
license = licenses.bsd2;
maintainers = with maintainers; [ fab ];
};
}

View File

@@ -0,0 +1,58 @@
{
lib,
aiohttp,
aioresponses,
buildPythonPackage,
fetchFromGitHub,
geojson,
haversine,
mock,
pytest-asyncio,
pytestCheckHook,
pythonOlder,
setuptools,
}:
buildPythonPackage rec {
pname = "aio-geojson-client";
version = "0.21";
pyproject = true;
disabled = pythonOlder "3.9";
src = fetchFromGitHub {
owner = "exxamalte";
repo = "python-aio-geojson-client";
tag = "v${version}";
hash = "sha256-zHgqsl278XBr2X8oQOsnIQxfyYuB5G8NLcTNy4oerUI=";
};
pythonRelaxDeps = [ "geojson" ];
__darwinAllowLocalNetworking = true;
build-system = [ setuptools ];
dependencies = [
aiohttp
geojson
haversine
];
nativeCheckInputs = [
aioresponses
mock
pytest-asyncio
pytestCheckHook
];
pythonImportsCheck = [ "aio_geojson_client" ];
meta = with lib; {
description = "Python module for accessing GeoJSON feeds";
homepage = "https://github.com/exxamalte/python-aio-geojson-client";
changelog = "https://github.com/exxamalte/python-aio-geojson-client/blob/v${version}/CHANGELOG.md";
license = licenses.asl20;
maintainers = with maintainers; [ fab ];
};
}

View File

@@ -0,0 +1,61 @@
{
lib,
aio-geojson-client,
aiohttp,
aioresponses,
buildPythonPackage,
fetchFromGitHub,
geojson,
pytest-asyncio,
pytestCheckHook,
pythonOlder,
pytz,
setuptools,
}:
buildPythonPackage rec {
pname = "aio-geojson-generic-client";
version = "0.5";
pyproject = true;
disabled = pythonOlder "3.9";
src = fetchFromGitHub {
owner = "exxamalte";
repo = "python-aio-geojson-generic-client";
tag = "v${version}";
hash = "sha256-/I/n/XXRvm7G16WqVmU+KkyP5DeadqhEpy2EAtDFlCk=";
};
__darwinAllowLocalNetworking = true;
build-system = [ setuptools ];
pythonRelaxDeps = [
# geojson>=2.4.0,<3, but we have 3.x
"geojson"
];
dependencies = [
aiohttp
aio-geojson-client
geojson
pytz
];
nativeCheckInputs = [
aioresponses
pytest-asyncio
pytestCheckHook
];
pythonImportsCheck = [ "aio_geojson_generic_client" ];
meta = with lib; {
description = "Python library for accessing GeoJSON feeds";
homepage = "https://github.com/exxamalte/python-aio-geojson-generic-client";
changelog = "https://github.com/exxamalte/python-aio-geojson-generic-client/blob/v${version}/CHANGELOG.md";
license = licenses.asl20;
maintainers = with maintainers; [ fab ];
};
}

View File

@@ -0,0 +1,54 @@
{
lib,
aio-geojson-client,
aiohttp,
aioresponses,
buildPythonPackage,
fetchFromGitHub,
pytest-asyncio,
pytestCheckHook,
pytz,
pythonOlder,
setuptools,
}:
buildPythonPackage rec {
pname = "aio-geojson-geonetnz-quakes";
version = "0.17";
pyproject = true;
disabled = pythonOlder "3.9";
src = fetchFromGitHub {
owner = "exxamalte";
repo = "python-aio-geojson-geonetnz-quakes";
tag = "v${version}";
hash = "sha256-RZ+wgLYMl7y3CdmlipsfZGcew1pYSMEhkyyeLqIwVwI=";
};
build-system = [ setuptools ];
dependencies = [
aio-geojson-client
aiohttp
pytz
];
nativeCheckInputs = [
aioresponses
pytest-asyncio
pytestCheckHook
];
pythonImportsCheck = [ "aio_geojson_geonetnz_quakes" ];
__darwinAllowLocalNetworking = true;
meta = with lib; {
description = "Python module for accessing the GeoNet NZ Quakes GeoJSON feeds";
homepage = "https://github.com/exxamalte/python-aio-geojson-geonetnz-quakes";
changelog = "https://github.com/exxamalte/python-aio-geojson-geonetnz-quakes/blob/v${version}/CHANGELOG.md";
license = licenses.asl20;
maintainers = with maintainers; [ fab ];
};
}

View File

@@ -0,0 +1,58 @@
{
lib,
aio-geojson-client,
aiohttp,
aioresponses,
mock,
buildPythonPackage,
fetchFromGitHub,
pytest-asyncio,
pytest-xdist,
pytestCheckHook,
pytz,
pythonOlder,
setuptools,
}:
buildPythonPackage rec {
pname = "aio-geojson-geonetnz-volcano";
version = "0.10";
pyproject = true;
disabled = pythonOlder "3.9";
src = fetchFromGitHub {
owner = "exxamalte";
repo = "python-aio-geojson-geonetnz-volcano";
tag = "v${version}";
hash = "sha256-B+jULYeel7efk7fB26zXQyS1ZCsmFVKlOkfnKWFQFJ4=";
};
build-system = [ setuptools ];
dependencies = [
aio-geojson-client
aiohttp
pytz
];
nativeCheckInputs = [
aioresponses
mock
pytest-asyncio
pytest-xdist
pytestCheckHook
];
pythonImportsCheck = [ "aio_geojson_geonetnz_volcano" ];
__darwinAllowLocalNetworking = true;
meta = with lib; {
description = "Python module for accessing the GeoNet NZ Volcanic GeoJSON feeds";
homepage = "https://github.com/exxamalte/python-aio-geojson-geonetnz-volcano";
changelog = "https://github.com/exxamalte/python-aio-geojson-geonetnz-volcano/blob/v${version}/CHANGELOG.md";
license = licenses.asl20;
maintainers = with maintainers; [ fab ];
};
}

View File

@@ -0,0 +1,54 @@
{
lib,
aio-geojson-client,
aiohttp,
aioresponses,
buildPythonPackage,
fetchFromGitHub,
pytest-asyncio,
pytestCheckHook,
pythonOlder,
pytz,
setuptools,
}:
buildPythonPackage rec {
pname = "aio-geojson-nsw-rfs-incidents";
version = "0.8";
pyproject = true;
disabled = pythonOlder "3.8";
src = fetchFromGitHub {
owner = "exxamalte";
repo = "python-aio-geojson-nsw-rfs-incidents";
tag = "v${version}";
hash = "sha256-JOvmUWrmYQt2hJ9u08Aliv9ImI3AOTk4uBx3Pv8/7/c=";
};
build-system = [ setuptools ];
dependencies = [
aio-geojson-client
aiohttp
pytz
];
nativeCheckInputs = [
aioresponses
pytest-asyncio
pytestCheckHook
];
pythonImportsCheck = [ "aio_geojson_nsw_rfs_incidents" ];
__darwinAllowLocalNetworking = true;
meta = with lib; {
description = "Python module for accessing the NSW Rural Fire Service incidents feeds";
homepage = "https://github.com/exxamalte/python-aio-geojson-nsw-rfs-incidents";
changelog = "https://github.com/exxamalte/python-aio-geojson-geonetnz-quakes/blob/v${version}/CHANGELOG.md";
license = licenses.asl20;
maintainers = with maintainers; [ fab ];
};
}

View File

@@ -0,0 +1,54 @@
{
lib,
aio-geojson-client,
aiohttp,
aioresponses,
buildPythonPackage,
fetchFromGitHub,
pytest-asyncio,
pytestCheckHook,
pytz,
pythonOlder,
setuptools,
}:
buildPythonPackage rec {
pname = "aio-geojson-usgs-earthquakes";
version = "0.4";
pyproject = true;
disabled = pythonOlder "3.8";
src = fetchFromGitHub {
owner = "exxamalte";
repo = "python-aio-geojson-usgs-earthquakes";
tag = "v${version}";
hash = "sha256-UzLnctft/D38bqClqyyJ4b5GvVXM4CFSd6TypuLo0Y4=";
};
build-system = [ setuptools ];
dependencies = [
aio-geojson-client
aiohttp
pytz
];
nativeCheckInputs = [
aioresponses
pytest-asyncio
pytestCheckHook
];
pythonImportsCheck = [ "aio_geojson_usgs_earthquakes" ];
__darwinAllowLocalNetworking = true;
meta = with lib; {
description = "Module for accessing the U.S. Geological Survey Earthquake Hazards Program feeds";
homepage = "https://github.com/exxamalte/python-aio-geojson-usgs-earthquakes";
changelog = "https://github.com/exxamalte/python-aio-geojson-usgs-earthquakes/blob/v${version}/CHANGELOG.md";
license = licenses.asl20;
maintainers = with maintainers; [ fab ];
};
}

View File

@@ -0,0 +1,60 @@
{
lib,
aiohttp,
aioresponses,
buildPythonPackage,
dateparser,
fetchFromGitHub,
haversine,
mock,
pytest-asyncio,
pytestCheckHook,
pythonOlder,
requests,
setuptools,
xmltodict,
}:
buildPythonPackage rec {
pname = "aio-georss-client";
version = "0.14";
pyproject = true;
disabled = pythonOlder "3.9";
src = fetchFromGitHub {
owner = "exxamalte";
repo = "python-aio-georss-client";
tag = "v${version}";
hash = "sha256-d5QKF/aDLzZ2/Pbm6VygsSYWab7Jqs/5zTeKHg6Zr74=";
};
__darwinAllowLocalNetworking = true;
build-system = [ setuptools ];
dependencies = [
aiohttp
haversine
xmltodict
requests
dateparser
];
nativeCheckInputs = [
aioresponses
mock
pytest-asyncio
pytestCheckHook
];
pythonImportsCheck = [ "aio_georss_client" ];
meta = with lib; {
description = "Python library for accessing GeoRSS feeds";
homepage = "https://github.com/exxamalte/python-aio-georss-client";
changelog = "https://github.com/exxamalte/python-aio-georss-client/blob/v${version}/CHANGELOG.md";
license = with licenses; [ asl20 ];
maintainers = with maintainers; [ fab ];
};
}

View File

@@ -0,0 +1,52 @@
{
lib,
aio-georss-client,
aioresponses,
buildPythonPackage,
fetchFromGitHub,
pytest-asyncio,
pytestCheckHook,
python-dateutil,
pythonOlder,
setuptools,
}:
buildPythonPackage rec {
pname = "aio-georss-gdacs";
version = "0.10";
pyproject = true;
disabled = pythonOlder "3.9";
src = fetchFromGitHub {
owner = "exxamalte";
repo = "python-aio-georss-gdacs";
tag = "v${version}";
hash = "sha256-PhOI0v3dKTNGZLk1/5wIgvQkm4Cwfr1UYilr5rW7e3g=";
};
__darwinAllowLocalNetworking = true;
build-system = [ setuptools ];
dependencies = [
aio-georss-client
python-dateutil
];
nativeCheckInputs = [
aioresponses
pytest-asyncio
pytestCheckHook
];
pythonImportsCheck = [ "aio_georss_gdacs" ];
meta = with lib; {
description = "Python library for accessing GeoRSS feeds";
homepage = "https://github.com/exxamalte/python-aio-georss-gdacs";
changelog = "https://github.com/exxamalte/python-aio-georss-gdacs/releases/tag/v${version}";
license = with licenses; [ asl20 ];
maintainers = with maintainers; [ fab ];
};
}

View File

@@ -0,0 +1,75 @@
{
lib,
aiomisc-pytest,
aiormq,
buildPythonPackage,
docker,
fetchFromGitHub,
pamqp,
poetry-core,
pytestCheckHook,
shortuuid,
testcontainers,
wrapt,
yarl,
}:
buildPythonPackage rec {
pname = "aio-pika";
version = "9.5.6";
pyproject = true;
src = fetchFromGitHub {
owner = "mosquito";
repo = "aio-pika";
tag = version;
hash = "sha256-VpZgAAAt9d0NxSgTGnyBg5fu5GcT3Tg0qOieX7KqmyM=";
};
build-system = [ poetry-core ];
dependencies = [
aiormq
yarl
];
nativeCheckInputs = [
aiomisc-pytest
docker
pamqp
pytestCheckHook
shortuuid
testcontainers
wrapt
];
disabledTests = [
# Tests attempt to connect to a RabbitMQ server
"test_connection_interleave"
"test_connection_happy_eyeballs_delay"
"test_robust_connection_interleave"
"test_robust_connection_happy_eyeballs_delay"
];
disabledTestPaths = [
# Tests attempt to connect to a RabbitMQ server
"tests/test_amqp.py"
"tests/test_amqp_robust.py"
"tests/test_amqp_robust_proxy.py"
"tests/test_amqps.py"
"tests/test_master.py"
"tests/test_memory_leak.py"
"tests/test_rpc.py"
"tests/test_types.py"
];
pythonImportsCheck = [ "aio_pika" ];
meta = with lib; {
description = "AMQP 0.9 client designed for asyncio and humans";
homepage = "https://github.com/mosquito/aio-pika";
changelog = "https://github.com/mosquito/aio-pika/blob/${version}/CHANGELOG.md";
license = licenses.asl20;
maintainers = with maintainers; [ emilytrau ];
};
}

View File

@@ -0,0 +1,44 @@
{
lib,
bleak,
bleak-retry-connector,
buildPythonPackage,
fetchFromGitHub,
pythonOlder,
setuptools,
}:
buildPythonPackage rec {
pname = "aioacaia";
version = "0.1.17";
pyproject = true;
disabled = pythonOlder "3.12";
src = fetchFromGitHub {
owner = "zweckj";
repo = "aioacaia";
tag = "v${version}";
hash = "sha256-y9NSHiB66ICR+qJcLOdddnkm+f5hd9Zbqamr1UCzdlk=";
};
build-system = [ setuptools ];
dependencies = [
bleak
bleak-retry-connector
];
# Module only has a homebrew tests
doCheck = false;
pythonImportsCheck = [ "aioacaia" ];
meta = {
description = "Async implementation of pyacaia";
homepage = "https://github.com/zweckj/aioacaia";
changelog = "https://github.com/zweckj/aioacaia/releases/tag/${src.tag}";
license = lib.licenses.gpl3Only;
maintainers = with lib.maintainers; [ fab ];
};
}

View File

@@ -0,0 +1,41 @@
{
lib,
buildPythonPackage,
fetchPypi,
setuptools,
wheel,
aiocoap,
pycryptodomex,
}:
buildPythonPackage rec {
pname = "aioairctrl";
version = "0.2.5";
pyproject = true;
src = fetchPypi {
inherit pname version;
hash = "sha256-BPUV79S2A0F6vZA2pd3XNLpmRHTp6RSoNXPcI+OJRbk=";
};
build-system = [
setuptools
wheel
];
dependencies = [
aiocoap
pycryptodomex
];
pythonImportsCheck = [ "aioairctrl" ];
doCheck = false; # no tests
meta = {
description = "Library for controlling Philips air purifiers (using encrypted CoAP)";
homepage = "https://github.com/kongo09/aioairctrl";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ justinas ];
};
}

View File

@@ -0,0 +1,55 @@
{
lib,
aiohttp,
buildPythonPackage,
fetchFromGitHub,
pycryptodome,
pytest-asyncio,
pytestCheckHook,
pythonOlder,
setuptools,
}:
buildPythonPackage rec {
pname = "aioairq";
version = "0.4.6";
pyproject = true;
disabled = pythonOlder "3.9";
src = fetchFromGitHub {
owner = "CorantGmbH";
repo = "aioairq";
tag = "v${version}";
hash = "sha256-XlOVCDWbcdh8VjNxlEcVNttRN3mw19AXlIIQJ1II144=";
};
build-system = [ setuptools ];
dependencies = [
aiohttp
pycryptodome
];
# Module has no tests
#doCheck = false;
nativeCheckInputs = [
pytest-asyncio
pytestCheckHook
];
pythonImportsCheck = [ "aioairq" ];
disabledTestPaths = [
# Tests require network access
"tests/test_core_on_device.py"
];
meta = with lib; {
description = "Library to retrieve data from air-Q devices";
homepage = "https://github.com/CorantGmbH/aioairq";
license = licenses.asl20;
maintainers = with maintainers; [ fab ];
};
}

View File

@@ -0,0 +1,40 @@
{
lib,
aiohttp,
buildPythonPackage,
fetchFromGitHub,
pythonOlder,
setuptools,
}:
buildPythonPackage rec {
pname = "aioairzone-cloud";
version = "0.7.2";
pyproject = true;
disabled = pythonOlder "3.11";
src = fetchFromGitHub {
owner = "Noltari";
repo = "aioairzone-cloud";
tag = version;
hash = "sha256-fWd5feCWE2o0HqvzGhGngWsIkXtS+VdZJ0d6B10Jq1E=";
};
build-system = [ setuptools ];
dependencies = [ aiohttp ];
pythonImportsCheck = [ "aioairzone_cloud" ];
# Module has no tests
doCheck = false;
meta = with lib; {
description = "Library to control Airzone via Cloud API";
homepage = "https://github.com/Noltari/aioairzone-cloud";
changelog = "https://github.com/Noltari/aioairzone-cloud/releases/tag/${src.tag}";
license = licenses.asl20;
maintainers = with maintainers; [ fab ];
};
}

View File

@@ -0,0 +1,40 @@
{
lib,
aiohttp,
buildPythonPackage,
fetchFromGitHub,
pythonOlder,
setuptools,
}:
buildPythonPackage rec {
pname = "aioairzone";
version = "1.0.1";
pyproject = true;
disabled = pythonOlder "3.11";
src = fetchFromGitHub {
owner = "Noltari";
repo = "aioairzone";
tag = version;
hash = "sha256-pFbX92UxhNcbHjU1Leoyr225Q6lCHT3hfv/mLSm7y2c=";
};
build-system = [ setuptools ];
dependencies = [ aiohttp ];
# Module has no tests
doCheck = false;
pythonImportsCheck = [ "aioairzone" ];
meta = with lib; {
description = "Module to control AirZone devices";
homepage = "https://github.com/Noltari/aioairzone";
changelog = "https://github.com/Noltari/aioairzone/releases/tag/${src.tag}";
license = licenses.asl20;
maintainers = with maintainers; [ fab ];
};
}

View File

@@ -0,0 +1,53 @@
{
aiohttp,
beautifulsoup4,
buildPythonPackage,
colorlog,
fetchFromGitHub,
langcodes,
lib,
orjson,
poetry-core,
pytest-cov-stub,
pytestCheckHook,
yarl,
}:
buildPythonPackage rec {
pname = "aioamazondevices";
version = "6.2.8";
pyproject = true;
src = fetchFromGitHub {
owner = "chemelli74";
repo = "aioamazondevices";
tag = "v${version}";
hash = "sha256-73z4mWWBfJLewLFQvhSj7hIOfBzcwIVrNlyPPAk7PPM=";
};
build-system = [ poetry-core ];
dependencies = [
aiohttp
beautifulsoup4
colorlog
langcodes
orjson
yarl
];
pythonImportsCheck = [ "aioamazondevices" ];
nativeCheckInputs = [
pytest-cov-stub
pytestCheckHook
];
meta = {
changelog = "https://github.com/chemelli74/aioamazondevices/blob/${src.tag}/CHANGELOG.md";
description = "Python library to control Amazon devices";
homepage = "https://github.com/chemelli74/aioamazondevices";
license = lib.licenses.asl20;
maintainers = with lib.maintainers; [ dotlambda ];
};
}

View File

@@ -0,0 +1,70 @@
{
lib,
aiohttp,
aresponses,
buildPythonPackage,
certifi,
fetchFromGitHub,
poetry-core,
pytest-aiohttp,
pytest-asyncio,
pytestCheckHook,
python-engineio,
python-socketio,
pythonOlder,
websockets,
yarl,
}:
buildPythonPackage rec {
pname = "aioambient";
version = "2025.02.0";
pyproject = true;
disabled = pythonOlder "3.11";
src = fetchFromGitHub {
owner = "bachya";
repo = "aioambient";
tag = version;
hash = "sha256-F1c2S0c/CWHeCd24Zc8ib3aPR7yj9gCPBJpmpgoddQY=";
};
postPatch = ''
substituteInPlace pyproject.toml \
--replace-fail poetry-core==2.0.1 poetry-core
'';
build-system = [ poetry-core ];
dependencies = [
aiohttp
certifi
python-engineio
python-socketio
websockets
yarl
];
__darwinAllowLocalNetworking = true;
nativeCheckInputs = [
aresponses
pytest-aiohttp
pytest-asyncio
pytestCheckHook
];
# Ignore the examples directory as the files are prefixed with test_
disabledTestPaths = [ "examples/" ];
pythonImportsCheck = [ "aioambient" ];
meta = with lib; {
description = "Python library for the Ambient Weather API";
homepage = "https://github.com/bachya/aioambient";
changelog = "https://github.com/bachya/aioambient/releases/tag/${version}";
license = licenses.mit;
maintainers = with maintainers; [ fab ];
};
}

View File

@@ -0,0 +1,39 @@
{
lib,
buildPythonPackage,
fetchFromGitHub,
pamqp,
pythonOlder,
setuptools,
}:
buildPythonPackage rec {
pname = "aioamqp";
version = "0.15.0";
pyproject = true;
disabled = pythonOlder "3.7";
src = fetchFromGitHub {
owner = "Polyconseil";
repo = "aioamqp";
rev = "aioamqp-${version}";
hash = "sha256-fssPknJn1tLtzb+2SFyZjfdhUdD8jqkwlInoi5uaplk=";
};
build-system = [ setuptools ];
dependencies = [ pamqp ];
# Tests assume rabbitmq server running
doCheck = false;
pythonImportsCheck = [ "aioamqp" ];
meta = with lib; {
description = "AMQP implementation using asyncio";
homepage = "https://github.com/polyconseil/aioamqp";
license = licenses.bsd3;
maintainers = [ ];
};
}

View File

@@ -0,0 +1,45 @@
{
lib,
buildPythonPackage,
fetchFromGitHub,
pytest-asyncio,
pytestCheckHook,
pythonOlder,
setuptools,
setuptools-scm,
}:
buildPythonPackage rec {
pname = "aioapcaccess";
version = "1.0.0";
pyproject = true;
disabled = pythonOlder "3.9";
src = fetchFromGitHub {
owner = "yuxincs";
repo = "aioapcaccess";
tag = "v${version}";
hash = "sha256-gCi0vo4w3jr4w5neQS9v821rdfE+SqnUkrOrEQUET7E=";
};
build-system = [
setuptools
setuptools-scm
];
nativeCheckInputs = [
pytest-asyncio
pytestCheckHook
];
pythonImportsCheck = [ "aioapcaccess" ];
meta = with lib; {
description = "Module for working with apcaccess";
homepage = "https://github.com/yuxincs/aioapcaccess";
changelog = "https://github.com/yuxincs/aioapcaccess/releases/tag/${src.tag}";
license = licenses.mit;
maintainers = with maintainers; [ fab ];
};
}

View File

@@ -0,0 +1,44 @@
{
lib,
buildPythonPackage,
fetchPypi,
h2,
pyjwt,
pyopenssl,
pythonOlder,
setuptools,
}:
buildPythonPackage rec {
pname = "aioapns";
version = "4.0";
pyproject = true;
disabled = pythonOlder "3.7";
src = fetchPypi {
inherit pname version;
hash = "sha256-NxX6q/P6bAJA52N/RCfYjQiv3M6w3PuVbG0JtvSUJ/g=";
};
nativeBuildInputs = [ setuptools ];
propagatedBuildInputs = [
h2
pyopenssl
pyjwt
];
# Project has no tests
doCheck = false;
pythonImportsCheck = [ "aioapns" ];
meta = with lib; {
description = "Efficient APNs Client Library";
homepage = "https://github.com/Fatal1ty/aioapns";
changelog = "https://github.com/Fatal1ty/aioapns/releases/tag/v${version}";
license = licenses.asl20;
maintainers = [ ];
};
}

View File

@@ -0,0 +1,48 @@
{
lib,
buildPythonPackage,
fetchPypi,
setuptools,
aiobotocore,
aiohttp,
attr,
aws-request-signer,
botocore,
requests-aws4auth,
pycognito,
}:
buildPythonPackage rec {
pname = "aioaquacell";
version = "0.2.0";
pyproject = true;
src = fetchPypi {
inherit pname version;
hash = "sha256-n2kPD1t5d/nf43rB0q1hNNYdHeaBiadsFWTmu1bYN1A=";
};
build-system = [ setuptools ];
dependencies = [
aiohttp
aiobotocore
attr
aws-request-signer
botocore
requests-aws4auth
pycognito
];
pythonImportsCheck = [ "aioaquacell" ];
doCheck = false;
meta = {
changelog = "https://github.com/Jordi1990/aioaquacell/releases/tag/v${version}";
description = "Asynchronous library to retrieve details of your Aquacell water softener device";
homepage = "https://github.com/Jordi1990/aioaquacell";
license = lib.licenses.asl20;
maintainers = with lib.maintainers; [ pyrox0 ];
};
}

View File

@@ -0,0 +1,46 @@
{
lib,
aiohttp,
apischema,
buildPythonPackage,
fetchFromGitHub,
gql,
pythonOlder,
setuptools,
}:
buildPythonPackage rec {
pname = "aioaseko";
version = "1.0.0";
pyproject = true;
disabled = pythonOlder "3.10";
src = fetchFromGitHub {
owner = "milanmeu";
repo = "aioaseko";
tag = "v${version}";
hash = "sha256-jUvpu/lOFKRUwEuYD1zRp0oODjf4AgH84fnGngtv9jw=";
};
build-system = [ setuptools ];
dependencies = [
aiohttp
apischema
gql
];
# Module has no tests
doCheck = false;
pythonImportsCheck = [ "aioaseko" ];
meta = with lib; {
description = "Module to interact with the Aseko Pool Live API";
homepage = "https://github.com/milanmeu/aioaseko";
changelog = "https://github.com/milanmeu/aioaseko/releases/tag/v${version}";
license = licenses.lgpl3Plus;
maintainers = with maintainers; [ fab ];
};
}

View File

@@ -0,0 +1,48 @@
{
lib,
asyncssh,
buildPythonPackage,
fetchFromGitHub,
pytest-cov-stub,
pytest-asyncio_0,
pytest-mock,
pytestCheckHook,
pythonOlder,
setuptools,
}:
buildPythonPackage rec {
pname = "aioasuswrt";
version = "1.4.0";
pyproject = true;
disabled = pythonOlder "3.7";
src = fetchFromGitHub {
owner = "kennedyshead";
repo = "aioasuswrt";
tag = "V${version}";
hash = "sha256-RQxIgAU9KsTbcTKc/Zl+aP77lbDSeiYzR48MtIVwacc=";
};
build-system = [ setuptools ];
dependencies = [ asyncssh ];
nativeCheckInputs = [
pytest-asyncio_0
pytest-cov-stub
pytest-mock
pytestCheckHook
];
pythonImportsCheck = [ "aioasuswrt" ];
meta = with lib; {
description = "Python module for Asuswrt";
homepage = "https://github.com/kennedyshead/aioasuswrt";
changelog = "https://github.com/kennedyshead/aioasuswrt/releases/tag/V${version}";
license = with licenses; [ mit ];
maintainers = with maintainers; [ fab ];
};
}

View File

@@ -0,0 +1,43 @@
{
lib,
buildPythonPackage,
fetchFromGitHub,
setuptools,
aiohttp,
mashumaro,
python-socketio,
}:
buildPythonPackage rec {
pname = "aioaudiobookshelf";
version = "0.1.7";
pyproject = true;
src = fetchFromGitHub {
owner = "music-assistant";
repo = "aioaudiobookshelf";
tag = version;
hash = "sha256-sHRyrh+FwR9Vc9LVOA069iH5Wg56Ye4e9bOxdTR6PPs=";
};
build-system = [
setuptools
];
dependencies = [
aiohttp
mashumaro
python-socketio
];
pythonImportsCheck = [
"aioaudiobookshelf"
];
meta = {
description = "Async python library to interact with Audiobookshelf";
homepage = "https://github.com/music-assistant/aioaudiobookshelf";
license = lib.licenses.asl20;
maintainers = with lib.maintainers; [ hexa ];
};
}

View File

@@ -0,0 +1,89 @@
{
lib,
aiohttp,
aioresponses,
buildPythonPackage,
fetchFromGitHub,
freezegun,
ical,
mashumaro,
poetry-core,
poetry-dynamic-versioning,
pyjwt,
pytest-asyncio,
pytest-cov-stub,
pytestCheckHook,
pythonOlder,
python-dateutil,
syrupy,
time-machine,
tzlocal,
}:
buildPythonPackage rec {
pname = "aioautomower";
version = "2.2.2";
pyproject = true;
disabled = pythonOlder "3.11";
src = fetchFromGitHub {
owner = "Thomas55555";
repo = "aioautomower";
tag = "v${version}";
hash = "sha256-ds/wNPaZYQ8Tk/GyqYrWYL99oU73JWc/3KBsMULBass=";
};
postPatch = ''
# Upstream doesn't set a version
substituteInPlace pyproject.toml \
--replace-fail 'version = "0.0.0"' 'version = "${version}"'
'';
build-system = [
poetry-core
poetry-dynamic-versioning
];
dependencies = [
aiohttp
ical
mashumaro
pyjwt
python-dateutil
tzlocal
];
nativeCheckInputs = [
aioresponses
freezegun
pytest-asyncio
pytest-cov-stub
pytestCheckHook
time-machine
syrupy
];
pythonImportsCheck = [ "aioautomower" ];
disabledTests = [
# File is missing
"test_standard_mower"
# Call no found
"test_post_commands"
# Timezone mismatches
"test_full_planner_event"
"test_sinlge_planner_event"
"test_set_datetime"
"test_message_event"
"test_async_get_messages"
];
meta = with lib; {
description = "Module to communicate with the Automower Connect API";
homepage = "https://github.com/Thomas55555/aioautomower";
changelog = "https://github.com/Thomas55555/aioautomower/releases/tag/${src.tag}";
license = licenses.asl20;
maintainers = with maintainers; [ fab ];
};
}

View File

@@ -0,0 +1,79 @@
{
lib,
buildPythonPackage,
pythonOlder,
fetchFromGitHub,
# build-system
setuptools,
# dependencies
aiohttp,
incremental,
# tests
aioresponses,
pytest-aiohttp,
pytest-asyncio,
pytest-socket,
pytestCheckHook,
syrupy,
}:
buildPythonPackage rec {
pname = "aioazuredevops";
version = "2.2.2";
pyproject = true;
disabled = pythonOlder "3.12";
src = fetchFromGitHub {
owner = "timmo001";
repo = "aioazuredevops";
tag = version;
hash = "sha256-0KQHL9DmNeRvEs51XPcncxNzXb+SqYM5xPDvOdKSQMI=";
};
build-system = [
incremental
setuptools
];
dependencies = [
aiohttp
incremental
];
nativeCheckInputs = [
aioresponses
pytest-aiohttp
pytest-asyncio
pytest-socket
pytestCheckHook
syrupy
];
disabledTests = [
# https://github.com/timmo001/aioazuredevops/issues/44
"test_get_project"
"test_get_builds"
"test_get_build"
];
disabledTestPaths = [
# https://github.com/timmo001/aioazuredevops/commit/d6278d92937dd47de272ac6371b2d007067763c3
"tests/test__version.py"
];
pytestFlags = [ "--snapshot-update" ];
pythonImportsCheck = [ "aioazuredevops" ];
meta = with lib; {
changelog = "https://github.com/timmo001/aioazuredevops/releases/tag/${version}";
description = "Get data from the Azure DevOps API";
homepage = "https://github.com/timmo001/aioazuredevops";
license = licenses.mit;
maintainers = with maintainers; [ dotlambda ];
};
}

View File

@@ -0,0 +1,46 @@
{
lib,
buildPythonPackage,
fetchFromGitHub,
poetry-core,
protobuf,
pytest-asyncio,
pytestCheckHook,
zeroconf,
}:
buildPythonPackage rec {
pname = "aiobafi6";
version = "0.10.0";
pyproject = true;
src = fetchFromGitHub {
owner = "jfroy";
repo = "aiobafi6";
tag = version;
hash = "sha256-7NIpIRVs6PFPByrGfVDA6P7JTvXGrzbH/lOPdPfZH04=";
};
build-system = [ poetry-core ];
dependencies = [
protobuf
zeroconf
];
nativeCheckInputs = [
pytest-asyncio
pytestCheckHook
];
pythonImportsCheck = [ "aiobafi6" ];
meta = with lib; {
description = "Library for communication with the Big Ass Fans i6 firmware";
homepage = "https://github.com/jfroy/aiobafi6";
changelog = "https://github.com/jfroy/aiobafi6/releases/tag/${src.tag}";
license = licenses.asl20;
maintainers = with maintainers; [ fab ];
mainProgram = "aiobafi6";
};
}

View File

@@ -0,0 +1,56 @@
{
lib,
aiohttp,
auth0-python,
buildPythonPackage,
fetchFromGitHub,
poetry-core,
pyjwt,
pytestCheckHook,
python-dateutil,
pythonOlder,
}:
buildPythonPackage rec {
pname = "aiobiketrax";
version = "1.3.1";
pyproject = true;
disabled = pythonOlder "3.9";
src = fetchFromGitHub {
owner = "basilfx";
repo = "aiobiketrax";
tag = "v${version}";
hash = "sha256-N0v5SCTf3NkW/TCSTQL9VkrDj7/GXEejJGFCvJY4pIc=";
};
postPatch = ''
# https://github.com/basilfx/aiobiketrax/pull/63
substituteInPlace aiobiketrax/api.py \
--replace-fail "auth0.v3" "auth0"
'';
pythonRelaxDeps = [ "auth0-python" ];
build-system = [ poetry-core ];
dependencies = [
aiohttp
auth0-python
python-dateutil
pyjwt
];
nativeCheckInputs = [ pytestCheckHook ];
pythonImportsCheck = [ "aiobiketrax" ];
meta = with lib; {
description = "Library for interacting with the PowUnity BikeTrax GPS tracker";
homepage = "https://github.com/basilfx/aiobiketrax";
changelog = "https://github.com/basilfx/aiobiketrax/blob/v${version}/CHANGELOG.md";
license = with licenses; [ mit ];
maintainers = with maintainers; [ fab ];
};
}

View File

@@ -0,0 +1,35 @@
{
lib,
buildPythonPackage,
fetchFromGitHub,
pytestCheckHook,
pythonOlder,
}:
buildPythonPackage rec {
pname = "aioblescan";
version = "0.2.14";
format = "setuptools";
disabled = pythonOlder "3.7";
src = fetchFromGitHub {
owner = "frawau";
repo = "aioblescan";
tag = version;
hash = "sha256-JeA9jX566OSRiejdnlifbcNGm0J0C+xzA6zXDUyZ6jc=";
};
nativeCheckInputs = [ pytestCheckHook ];
pythonImportsCheck = [ "aioblescan" ];
meta = with lib; {
description = "Library to listen for BLE advertized packets";
mainProgram = "aioblescan";
homepage = "https://github.com/frawau/aioblescan";
changelog = "https://github.com/frawau/aioblescan/releases/tag/${version}";
license = licenses.mit;
maintainers = with maintainers; [ fab ];
};
}

View File

@@ -0,0 +1,15 @@
diff --git a/aioboto3/session.py b/aioboto3/session.py
index b6c2129..c97eaaf 100644
--- a/aioboto3/session.py
+++ b/aioboto3/session.py
@@ -79,7 +79,9 @@ class Session(boto3.session.Session):
if any(creds):
if self._account_id_set_without_credentials(
- aws_account_id, aws_access_key_id, aws_secret_access_key
+ aws_account_id=aws_account_id,
+ aws_access_key_id=aws_access_key_id,
+ aws_secret_access_key=aws_secret_access_key
):
raise NoCredentialsError()

View File

@@ -0,0 +1,74 @@
{
lib,
aiobotocore,
aiofiles,
buildPythonPackage,
chalice,
cryptography,
dill,
fetchFromGitHub,
moto,
pytest-asyncio,
pytestCheckHook,
setuptools,
setuptools-scm,
}:
buildPythonPackage rec {
pname = "aioboto3";
version = "15.1.0";
pyproject = true;
src = fetchFromGitHub {
owner = "terricain";
repo = "aioboto3";
tag = "v${version}";
hash = "sha256-H/hAfFyBfeBoR6nW0sv3/AzFPATUl2uJ+JbzNB5xemo=";
};
# https://github.com/terricain/aioboto3/pull/377
patches = [ ./boto3-compat.patch ];
pythonRelaxDeps = [
"aiobotocore"
];
build-system = [
setuptools
setuptools-scm
];
dependencies = [
aiobotocore
aiofiles
]
++ aiobotocore.optional-dependencies.boto3;
optional-dependencies = {
chalice = [ chalice ];
s3cse = [ cryptography ];
};
nativeCheckInputs = [
dill
moto
pytest-asyncio
pytestCheckHook
]
++ moto.optional-dependencies.server
++ lib.flatten (builtins.attrValues optional-dependencies);
disabledTests = [
"test_patches"
];
pythonImportsCheck = [ "aioboto3" ];
meta = {
description = "Wrapper to use boto3 resources with the aiobotocore async backend";
homepage = "https://github.com/terricain/aioboto3";
changelog = "https://github.com/terricain/aioboto3/blob/${src.rev}/CHANGELOG.rst";
license = lib.licenses.asl20;
maintainers = with lib.maintainers; [ mbalatsko ];
};
}

View File

@@ -0,0 +1,108 @@
{
lib,
buildPythonPackage,
fetchFromGitHub,
aiohttp,
aioitertools,
botocore,
python-dateutil,
jmespath,
multidict,
urllib3,
wrapt,
dill,
moto,
pytest-asyncio,
time-machine,
werkzeug,
awscli,
boto3,
httpx,
setuptools,
pytestCheckHook,
}:
buildPythonPackage rec {
pname = "aiobotocore";
version = "2.24.2";
pyproject = true;
src = fetchFromGitHub {
owner = "aio-libs";
repo = "aiobotocore";
tag = version;
hash = "sha256-Kt/+LboMMurZ00gVYSDCPLJXKPtuyXOTtOgSCUIR9Ho=";
};
# Relax version constraints: aiobotocore works with newer botocore versions
# the pinning used to match some `extras_require` we're not using.
pythonRelaxDeps = [ "botocore" ];
build-system = [
setuptools
];
dependencies = [
aiohttp
aioitertools
botocore
python-dateutil
jmespath
multidict
urllib3
wrapt
];
optional-dependencies = {
awscli = [ awscli ];
boto3 = [ boto3 ];
httpx = [ httpx ];
};
nativeCheckInputs = [
dill
moto
pytest-asyncio
time-machine
werkzeug
pytestCheckHook
]
++ moto.optional-dependencies.server;
pythonImportsCheck = [ "aiobotocore" ];
disabledTests = [
# TypeError: sequence item 1: expected str instance, MagicMock found
"test_signers_generate_db_auth_token"
];
disabledTestPaths = [
# Test requires network access
"tests/test_version.py"
"tests/test_basic_s3.py"
"tests/test_batch.py"
"tests/test_dynamodb.py"
"tests/test_ec2.py"
"tests/test_lambda.py"
"tests/test_monitor.py"
"tests/test_patches.py"
"tests/test_sns.py"
"tests/test_sqs.py"
"tests/test_waiter.py"
];
disabledTestMarks = [
# Exclude localonly tests (incompatible with moto mocks)
"localonly"
];
__darwinAllowLocalNetworking = true;
meta = {
description = "Python client for amazon services";
homepage = "https://github.com/aio-libs/aiobotocore";
changelog = "https://github.com/aio-libs/aiobotocore/blob/${src.tag}/CHANGES.rst";
license = lib.licenses.asl20;
maintainers = with lib.maintainers; [ teh ];
};
}

View File

@@ -0,0 +1,35 @@
{
lib,
buildPythonPackage,
cryptography,
fetchPypi,
pythonOlder,
}:
buildPythonPackage rec {
pname = "aiobroadlink";
version = "0.1.3";
format = "setuptools";
disabled = pythonOlder "3.8";
src = fetchPypi {
inherit pname version;
hash = "sha256-uTUtDhL9VtWZE+Y6ZJY4prmlE+Yh2UrCg5+eSyAQzMk=";
};
propagatedBuildInputs = [ cryptography ];
# Project has no tests
doCheck = false;
pythonImportsCheck = [ "aiobroadlink" ];
meta = with lib; {
description = "Python module to control various Broadlink devices";
mainProgram = "aiobroadlink";
homepage = "https://github.com/frawau/aiobroadlink";
license = with licenses; [ mit ];
maintainers = with maintainers; [ fab ];
};
}

View File

@@ -0,0 +1,62 @@
{
lib,
buildPythonPackage,
fetchFromGitea,
aiobtclientrpc,
async-timeout,
httpx,
torf,
pytest-asyncio,
pytest-mock,
pytestCheckHook,
setuptools,
}:
buildPythonPackage rec {
pname = "aiobtclientapi";
version = "1.1.3";
pyproject = true;
src = fetchFromGitea {
domain = "codeberg.org";
owner = "plotski";
repo = "aiobtclientapi";
tag = "v${version}";
hash = "sha256-ZpUaMsJs1vdVGQOid7aJ+SJKaCbTtHfSw7cOwPTL0ss=";
};
pythonRelaxDeps = [
"async-timeout"
];
build-system = [
setuptools
];
dependencies = [
aiobtclientrpc
async-timeout
httpx
torf
];
nativeCheckInputs = [
pytest-asyncio
pytest-mock
pytestCheckHook
];
pythonImportsCheck = [ "aiobtclientapi" ];
disabledTestPaths = [
# AttributeError
"tests/clients_test/rtorrent_test/rtorrent_api_test.py"
];
meta = {
description = "Asynchronous high-level communication with BitTorrent clients";
homepage = "https://aiobtclientapi.readthedocs.io";
license = lib.licenses.gpl3Plus;
maintainers = with lib.maintainers; [ ambroisie ];
};
}

View File

@@ -0,0 +1,74 @@
{
lib,
buildPythonPackage,
fetchFromGitea,
async-timeout,
httpx,
httpx-socks,
proxy-py,
pytest-asyncio,
pytest-mock,
pytestCheckHook,
python-socks,
rencode,
setuptools,
}:
buildPythonPackage rec {
pname = "aiobtclientrpc";
version = "5.0.1";
pyproject = true;
src = fetchFromGitea {
domain = "codeberg.org";
owner = "plotski";
repo = "aiobtclientrpc";
tag = "v${version}";
hash = "sha256-2nBrIMlYUI4PwirkiSJSkw5zw2Kc/KoVRyIIYYx4iYs=";
};
pythonRelaxDeps = [ "async-timeout" ];
build-system = [ setuptools ];
dependencies = [
async-timeout
httpx
httpx-socks
python-socks
rencode
]
++ python-socks.optional-dependencies.asyncio;
nativeCheckInputs = [
proxy-py
pytest-asyncio
pytest-mock
pytestCheckHook
];
disabledTests = [
# Missing lambda parameter
"test_add_event_handler_with_autoremove"
# Try to use `htpasswd` and `nginx` with hard-coded paths
"test_authentication_error[rtorrent_http]"
"test_api_as_context_manager[rtorrent_http]"
"test_add_and_remove_torrents[rtorrent_http-paused]"
"test_add_and_remove_torrents[rtorrent_http-started]"
"test_proxy[rtorrent_http-http_proxy]"
"test_timeout[rtorrent_http]"
"test_event_subscriptions_survive_reconnecting[rtorrent_http]"
"test_waiting_for_event[rtorrent_http]"
# Tests are outdated
"test_DelugeRPCRequest_equality"
];
pythonImportsCheck = [ "aiobtclientrpc" ];
meta = {
description = "Asynchronous low-level communication with BitTorrent clients";
homepage = "https://aiobtclientrpc.readthedocs.io";
license = lib.licenses.gpl3Plus;
maintainers = with lib.maintainers; [ ambroisie ];
};
}

View File

@@ -0,0 +1,93 @@
{
lib,
aiohttp,
aiomcache,
buildPythonPackage,
fetchFromGitHub,
marshmallow,
memcachedTestHook,
msgpack,
pytest-asyncio,
pytest-cov-stub,
pytest-mock,
pytestCheckHook,
pythonAtLeast,
redis,
redisTestHook,
setuptools,
}:
buildPythonPackage rec {
pname = "aiocache";
version = "0.12.3";
pyproject = true;
src = fetchFromGitHub {
owner = "aio-libs";
repo = "aiocache";
tag = "v${version}";
hash = "sha256-4QYCRXMWlt9fsiWgUTc2pKzXG7AG/zGmd4HT5ggIZNM=";
};
build-system = [ setuptools ];
optional-dependencies = {
redis = [ redis ];
memcached = [ aiomcache ];
msgpack = [ msgpack ];
};
nativeCheckInputs = [
aiohttp
marshmallow
memcachedTestHook
pytest-asyncio
pytest-cov-stub
pytest-mock
pytestCheckHook
redisTestHook
]
++ lib.flatten (lib.attrValues optional-dependencies);
pytestFlags = [
"-Wignore::DeprecationWarning"
# Tests can time out and leave redis/valkey in an unusable state for later tests
"-x"
];
disabledTests = [
# Test calls apache benchmark and fails, no usable output
"test_concurrency_error_rates"
# susceptible to timing out / short ttl
"test_cached_stampede"
"test_locking_dogpile_lease_expiration"
"test_set_ttl_handle"
"test_set_cancel_previous_ttl_handle"
]
++ lib.optionals (pythonAtLeast "3.13") [
# https://github.com/aio-libs/aiocache/issues/863
"test_cache_write_doesnt_wait_for_future"
];
disabledTestPaths = [
# Benchmark and performance tests are not relevant for Nixpkgs
"tests/performance/"
# Full of timing-sensitive tests
"tests/ut/backends/test_redis.py"
# TypeError: object MagicMock can't be used in 'await' expression
"tests/ut/backends/test_redis.py::TestRedisBackend::test_close"
];
__darwinAllowLocalNetworking = true;
pythonImportsCheck = [ "aiocache" ];
meta = {
description = "Asyncio cache supporting multiple backends (memory, redis, memcached, etc.)";
homepage = "https://github.com/aio-libs/aiocache";
changelog = "https://github.com/aio-libs/aiocache/releases/tag/v${version}";
license = lib.licenses.bsd3;
maintainers = with lib.maintainers; [ fab ];
};
}

View File

@@ -0,0 +1,35 @@
{
buildPythonPackage,
fetchFromGitHub,
lib,
prompt-toolkit,
setuptools,
}:
buildPythonPackage rec {
name = "aiocmd";
version = "0.1.5";
src = fetchFromGitHub {
owner = "KimiNewt";
repo = "aiocmd";
tag = "v${version}";
hash = "sha256-C8dpeMTaoOMgfNP19JUYKUf+Vyw36Ry6dHkhaSm/QNk=";
};
pyproject = true;
build-system = [ setuptools ];
dependencies = [ prompt-toolkit ];
doCheck = false;
pythonImportsCheck = [ "aiocmd" ];
meta = {
description = "Asyncio-based automatic CLI creation tool using prompt-toolkit";
homepage = "https://github.com/KimiNewt/aiocmd";
license = lib.licenses.mit;
maintainers = [ lib.maintainers.znaniye ];
platforms = lib.platforms.linux;
};
}

View File

@@ -0,0 +1,80 @@
{
lib,
buildPythonPackage,
cbor-diag,
cbor2,
cryptography,
dtlssocket,
fetchFromGitHub,
filelock,
ge25519,
pygments,
pytestCheckHook,
pythonAtLeast,
pythonOlder,
setuptools,
termcolor,
websockets,
}:
buildPythonPackage rec {
pname = "aiocoap";
version = "0.4.15";
pyproject = true;
disabled = pythonOlder "3.10";
src = fetchFromGitHub {
owner = "chrysn";
repo = "aiocoap";
tag = version;
hash = "sha256-OYFHeTM1KXQfxeRoxYKdir3RnWJNua8YBmBUWIqADoI=";
};
build-system = [ setuptools ];
optional-dependencies = {
oscore = [
cbor2
cryptography
filelock
ge25519
];
tinydtls = [ dtlssocket ];
ws = [ websockets ];
prettyprint = [
termcolor
cbor2
pygments
cbor-diag
];
};
nativeCheckInputs = [ pytestCheckHook ];
disabledTestPaths = [
# Don't test the plugins
"tests/test_tls.py"
"tests/test_reverseproxy.py"
"tests/test_oscore_plugtest.py"
];
disabledTests = [
# Communication is not properly mocked
"test_uri_parser"
# Doctest
"test_001"
# CLI test
"test_help"
];
pythonImportsCheck = [ "aiocoap" ];
meta = with lib; {
description = "Python CoAP library";
homepage = "https://aiocoap.readthedocs.io/";
changelog = "https://github.com/chrysn/aiocoap/blob/${version}/NEWS";
license = licenses.mit;
maintainers = with maintainers; [ fab ];
};
}

View File

@@ -0,0 +1,50 @@
{
lib,
aiohttp,
buildPythonPackage,
colorlog,
fetchFromGitHub,
pint,
poetry-core,
pytest-cov-stub,
pytestCheckHook,
pythonOlder,
}:
buildPythonPackage rec {
pname = "aiocomelit";
version = "1.1.1";
pyproject = true;
disabled = pythonOlder "3.12";
src = fetchFromGitHub {
owner = "chemelli74";
repo = "aiocomelit";
tag = "v${version}";
hash = "sha256-/loKnKmLF8EDuZVWdSgxQUslrTKU4DxNmJlFZ0Xv9v8=";
};
build-system = [ poetry-core ];
dependencies = [
aiohttp
colorlog
pint
];
nativeCheckInputs = [
pytest-cov-stub
pytestCheckHook
];
pythonImportsCheck = [ "aiocomelit" ];
meta = with lib; {
description = "Library to control Comelit Simplehome";
homepage = "https://github.com/chemelli74/aiocomelit";
changelog = "https://github.com/chemelli74/aiocomelit/blob/${src.tag}/CHANGELOG.md";
license = licenses.asl20;
maintainers = with maintainers; [ fab ];
};
}

View File

@@ -0,0 +1,65 @@
{
lib,
buildPythonPackage,
fetchFromGitHub,
pytest-asyncio,
pytest-cov-stub,
pytestCheckHook,
pythonOlder,
setuptools,
}:
# This package provides a binary "apython" which sometimes invokes
# [sys.executable, '-m', 'aioconsole'] as a subprocess. If apython is
# run directly out of this derivation, it won't work, because
# sys.executable will point to a Python binary that is not wrapped to
# be able to find aioconsole.
# However, apython will work fine when using python##.withPackages,
# because with python##.withPackages the sys.executable is already
# wrapped to be able to find aioconsole and any other packages.
buildPythonPackage rec {
pname = "aioconsole";
version = "0.8.1";
pyproject = true;
disabled = pythonOlder "3.8";
src = fetchFromGitHub {
owner = "vxgmichel";
repo = "aioconsole";
tag = "v${version}";
hash = "sha256-gFkRhewuRScEhXy0lv2R0kHfaHT1gSp3TVrqL36cRVs=";
};
postPatch = ''
substituteInPlace pyproject.toml \
--replace-fail " --strict-markers --count 2 -vv" ""
'';
build-system = [ setuptools ];
nativeCheckInputs = [
pytest-asyncio
pytest-cov-stub
pytestCheckHook
];
__darwinAllowLocalNetworking = true;
disabledTests = [
"test_interact_syntax_error"
# Output and the sandbox don't work well together
"test_interact_multiple_indented_lines"
];
pythonImportsCheck = [ "aioconsole" ];
meta = with lib; {
description = "Asynchronous console and interfaces for asyncio";
changelog = "https://github.com/vxgmichel/aioconsole/releases/tag/v${version}";
homepage = "https://github.com/vxgmichel/aioconsole";
license = licenses.gpl3Only;
maintainers = with maintainers; [ catern ];
mainProgram = "apython";
};
}

View File

@@ -0,0 +1,43 @@
{
lib,
buildPythonPackage,
fetchFromGitHub,
setuptools,
pytestCheckHook,
pytest-asyncio,
isPy27,
}:
buildPythonPackage rec {
pname = "aiocontextvars";
version = "0.2.2";
pyproject = true;
disabled = isPy27;
src = fetchFromGitHub {
owner = "fantix";
repo = "aiocontextvars";
rev = "v${version}";
hash = "sha256-s1YhpBLz+YNmUO+0BOltfjr3nz4m6mERszNqlmquTyg=";
};
postPatch = ''
substituteInPlace setup.py \
--replace-fail "'pytest-runner'," ""
'';
build-system = [ setuptools ];
nativeCheckInputs = [
pytestCheckHook
pytest-asyncio
];
meta = with lib; {
description = "Asyncio support for PEP-567 contextvars backport";
homepage = "https://github.com/fantix/aiocontextvars";
license = licenses.bsd3;
maintainers = [ ];
};
}

Some files were not shown because too many files have changed in this diff Show More