Merge staging-next into staging

main
github-actions[bot] 2 years ago committed by GitHub
commit f3d6aa00e5
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 1
      nixos/tests/home-assistant.nix
  2. 4
      pkgs/applications/networking/instant-messengers/signal-desktop/default.nix
  3. 50
      pkgs/development/python-modules/aioshutil/default.nix
  4. 6
      pkgs/development/python-modules/graphene-django/default.nix
  5. 32
      pkgs/development/python-modules/graphene/default.nix
  6. 85
      pkgs/development/python-modules/pyunifiprotect/default.nix
  7. 57
      pkgs/development/python-modules/unifi-discovery/default.nix
  8. 4
      pkgs/servers/haste-server/default.nix
  9. 52
      pkgs/servers/haste-server/node-deps.nix
  10. 5
      pkgs/servers/home-assistant/component-packages.nix
  11. 6
      pkgs/top-level/python-packages.nix

@ -111,6 +111,7 @@ in {
pattern = re.compile(r"path=(?P<path>[\/a-z0-9-.]+)\/bin\/hass")
response = hass.execute("systemctl show -p ExecStart home-assistant.service")[1]
match = pattern.search(response)
assert match
package = match.group('path')
hass.wait_for_unit("home-assistant.service")

@ -24,7 +24,7 @@ let
in stdenv.mkDerivation rec {
pname = "signal-desktop";
version = "5.44.1"; # Please backport all updates to the stable channel.
version = "5.45.0"; # Please backport all updates to the stable channel.
# All releases have a limited lifetime and "expire" 90 days after the release.
# When releases "expire" the application becomes unusable until an update is
# applied. The expiration date for the current release can be extracted with:
@ -34,7 +34,7 @@ in stdenv.mkDerivation rec {
src = fetchurl {
url = "https://updates.signal.org/desktop/apt/pool/main/s/signal-desktop/signal-desktop_${version}_amd64.deb";
sha256 = "sha256-r9jCN8amX4ipv8V+i2j1CkZRJXun17EFi3wr8yMfXgQ=";
sha256 = "sha256-RqzFUE43wbz8Hw7hXxqqX9iEatjIHe0SbHD1+ieIR34=";
};
nativeBuildInputs = [

@ -0,0 +1,50 @@
{ lib
, buildPythonPackage
, fetchFromGitHub
, pytest-asyncio
, pytestCheckHook
, pythonOlder
, setuptools-scm
}:
buildPythonPackage rec {
pname = "aioshutil";
version = "1.1";
format = "pyproject";
disabled = pythonOlder "3.7";
src = fetchFromGitHub {
owner = "kumaraditya303";
repo = pname;
rev = "v${version}";
hash = "sha256-CQIzNu1NrGDOh2uVif/EzB5C5t/Y/h9oT56Gp6jrOPQ=";
};
SETUPTOOLS_SCM_PRETEND_VERSION = version;
nativeBuildInputs = [
setuptools-scm
];
checkInputs = [
pytest-asyncio
pytestCheckHook
];
postPatch = ''
substituteInPlace setup.cfg \
--replace " --cov aioshutil --cov-report xml" ""
'';
pythonImportsCheck = [
"aioshutil"
];
meta = with lib; {
description = "Asynchronous version of function of shutil module";
homepage = "https://github.com/kumaraditya303/aioshutil";
license = with licenses; [ bsd3 ];
maintainers = with maintainers; [ fab ];
};
}

@ -2,6 +2,7 @@
, buildPythonPackage
, pythonOlder
, fetchFromGitHub
, fetchpatch
, graphene
, graphql-core
@ -32,6 +33,11 @@ buildPythonPackage rec {
patches = [
./graphene-3_2_0.patch
(fetchpatch {
url = "https://github.com/graphql-python/graphene-django/commit/ca555293a4334c26cf9a390dd1e3d0bd4c819a17.patch";
excludes = [ "setup.py" ];
sha256 = "sha256-RxG1MRhmpBKnHhSg4SV+DjZ3uA0nl9oUeei56xjtUpw=";
})
];
postPatch = ''

@ -1,7 +1,6 @@
{ lib
, aniso8601
, buildPythonPackage
, fetchpatch
, fetchFromGitHub
, graphql-core
, graphql-relay
@ -18,32 +17,18 @@
buildPythonPackage rec {
pname = "graphene";
version = "3.0.0";
version = "3.1.0";
format = "setuptools";
disabled = pythonOlder "3.7";
disabled = pythonOlder "3.6";
src = fetchFromGitHub {
owner = "graphql-python";
repo = "graphene";
rev = "v${version}";
sha256 = "0qgp3nl6afyz6y27bw175hyqppx75pp1vqwl7nvlpwvgwyyc2mnl";
sha256 = "sha256-fKvaor9tOsJWXFMAH0/iDQi5NYJPec2sJevbQsKhQQ4=";
};
patches = [
# Fix graphql-core 3.2.0 support
(fetchpatch {
# https://github.com/graphql-python/graphene/pull/1378
url = "https://github.com/graphql-python/graphene/commit/989970f89341ebb949962d13dcabca8a6ccddad4.patch";
hash = "sha256-qRxWTqv5XQN7uFjL2uv9NjTvSLi76/MyFSa4jpkb8to=";
})
(fetchpatch {
# https://github.com/graphql-python/graphene/pull/1417
url = "https://github.com/graphql-python/graphene/commit/4e0e18d1682b7759bdf16499c573f675c7fb51cb.patch";
hash = "sha256-icdTGDabJouQ3hVpcMkkeabNwdoDxdVVAboTOWFbO94=";
})
];
propagatedBuildInputs = [
aniso8601
graphql-core
@ -64,17 +49,6 @@ buildPythonPackage rec {
"--benchmark-disable"
];
disabledTests = [
# Expects different Exeception classes, but receives none of them
# https://github.com/graphql-python/graphene/issues/1346
"test_unexpected_error"
# https://github.com/graphql-python/graphene/pull/1417#issuecomment-1102492138
"test_example_end_to_end"
] ++ lib.optionals (pythonAtLeast "3.10") [
"test_objecttype_as_container_extra_args"
"test_objecttype_as_container_invalid_kwargs"
];
pythonImportsCheck = [
"graphene"
];

@ -0,0 +1,85 @@
{ lib
, aiohttp
, aioshutil
, buildPythonPackage
, fetchFromGitHub
, packaging
, pillow
, poetry-core
, pydantic
, pyjwt
, pytest-aiohttp
, pytest-asyncio
, pytest-benchmark
, pytest-timeout
, pytest-xdist
, pytestCheckHook
, python-dotenv
, pythonOlder
, pytz
, typer
}:
buildPythonPackage rec {
pname = "pyunifiprotect";
version = "3.7.0";
format = "pyproject";
disabled = pythonOlder "3.9";
src = fetchFromGitHub {
owner = "briis";
repo = pname;
rev = "v${version}";
hash = "sha256-0adbUKTkbgA4pKrIVFGowD4Wf8brjfkLpfCT/+Mw6vs=";
};
propagatedBuildInputs = [
aiohttp
aioshutil
packaging
pillow
pydantic
pyjwt
python-dotenv
pytz
typer
];
checkInputs = [
pytest-aiohttp
pytest-asyncio
pytest-benchmark
pytest-timeout
pytest-xdist
pytestCheckHook
];
postPatch = ''
# https://github.com/briis/pyunifiprotect/pull/176
substituteInPlace setup.cfg \
--replace "asyncio" "aiohttp"
substituteInPlace pyproject.toml \
--replace "--cov=pyunifiprotect --cov-append" ""
'';
pythonImportsCheck = [
"pyunifiprotect"
];
pytestFlagsArray = [
"--benchmark-disable"
];
disabledTests = [
# Tests require ffprobe
"test_get_camera_video"
];
meta = with lib; {
description = "Library for interacting with the Unifi Protect API";
homepage = "https://github.com/briis/pyunifiprotect";
license = with licenses; [ mit ];
maintainers = with maintainers; [ fab ];
};
}

@ -0,0 +1,57 @@
{ lib
, aiohttp
, aioresponses
, buildPythonPackage
, fetchFromGitHub
, poetry-core
, pyroute2
, pytest-asyncio
, pytestCheckHook
, pythonOlder
}:
buildPythonPackage rec {
pname = "unifi-discovery";
version = "1.1.3";
format = "pyproject";
disabled = pythonOlder "3.9";
src = fetchFromGitHub {
owner = "bdraco";
repo = pname;
rev = "v${version}";
hash = "sha256-++5Rg3cCyH4h6zzEXbsQM5tRnUsnV3RCzuOctcjA/x4=";
};
nativeBuildInputs = [
poetry-core
];
propagatedBuildInputs = [
aiohttp
pyroute2
];
checkInputs = [
aioresponses
pytest-asyncio
pytestCheckHook
];
postPatch = ''
substituteInPlace pyproject.toml \
--replace "--cov=unifi_discovery --cov-report=term-missing:skip-covered" ""
'';
pythonImportsCheck = [
"unifi_discovery"
];
meta = with lib; {
description = "Module to discover Unifi devices";
homepage = "https://github.com/bdraco/unifi-discovery";
license = with licenses; [ asl20 ];
maintainers = with maintainers; [ fab ];
};
}

@ -9,13 +9,13 @@
stdenv.mkDerivation rec {
pname = "haste-server";
version = "68f6fe2b96ad02e21645480448113954bc87e1f5";
version = "9e921d59098c1093050201942f71d357fa89ffee";
src = fetchFromGitHub {
owner = "toptal";
repo = "haste-server";
rev = version;
hash = "sha256-9IPGqIca6GC/dQhGBC4hxWhNRgXR1ik0ONRBU2MGhL0=";
hash = "sha256-D3wgb4SX19CiCVQI4GFdfuVpC6BSCcd8UdK3ZW1sZa0=";
};
nativeBuildInputs = [

@ -82,7 +82,7 @@ let
version = "1.1.0";
src = fetchurl {
url = "https://registry.npmjs.org/async-cache/-/async-cache-1.1.0.tgz";
sha1 = "4a9a5a89d065ec5d8e5254bd9ee96ba76c532b5a";
sha512 = "YDQc4vBn5NFhY6g6HhVshyi3Fy9+SQ5ePnE7JLDJn1DoL+i7ER+vMwtTNOYk9leZkYMnOwpBCWqyLDPw8Aig8g==";
};
};
"balanced-match-1.0.2" = {
@ -172,7 +172,7 @@ let
version = "0.2.4";
src = fetchurl {
url = "https://registry.npmjs.org/busboy/-/busboy-0.2.4.tgz";
sha1 = "1977e96e1ee884649651ebdf548ca900758ba7f3";
sha512 = "hm0XN2dlecinlYSaB1TmSmuOaFlf6TKl0ITjqlszN+4O8z2eNwjUX3ak38dIXa7Pi7wme62QE7Wi2lC5L5Pu5A==";
};
};
"camelcase-6.3.0" = {
@ -235,7 +235,7 @@ let
version = "1.0.3";
src = fetchurl {
url = "https://registry.npmjs.org/colors/-/colors-1.0.3.tgz";
sha1 = "0433f44d809680fdeb60ed260f1b0c262e82a40b";
sha512 = "pFGrxThWcWQ2MsAz6RtgeWe4NK2kUE1WfsrvvlctdII745EW9I0yflqhe7++M5LEc7bV2c/9/5zc8sFcpL0Drw==";
};
};
"commander-2.11.0" = {
@ -253,7 +253,7 @@ let
version = "0.0.1";
src = fetchurl {
url = "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz";
sha1 = "d8a96bd77fd68df7793a73036a3ba0d5405d477b";
sha512 = "/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==";
};
};
"connect-3.7.0" = {
@ -271,7 +271,7 @@ let
version = "0.0.7";
src = fetchurl {
url = "https://registry.npmjs.org/connect-ratelimit/-/connect-ratelimit-0.0.7.tgz";
sha1 = "e6e09c950649e849499cab1870a415a07f731568";
sha512 = "jFZp1le7Wow92pe6RU6GvyYp3PrXUEyVJxYyzYuf0tpmvpBnTAkARQL39IbSRoioRzQUBhxqEwvSQ7ClYSfGIQ==";
};
};
"connect-route-0.1.5" = {
@ -280,7 +280,7 @@ let
version = "0.1.5";
src = fetchurl {
url = "https://registry.npmjs.org/connect-route/-/connect-route-0.1.5.tgz";
sha1 = "e3c218319d2e88a8a9ae0b0e0fe09a729c39744a";
sha512 = "6OZGYeoKS7zzhCAGP+Du7WYjP4geK3ii0sZlS+Oqx+ANFPcS5t/jDJr9BuhgN9qPz1ld8iahiPxNrgJyHeZ3cw==";
};
};
"core-util-is-1.0.3" = {
@ -298,7 +298,7 @@ let
version = "1.0.3";
src = fetchurl {
url = "https://registry.npmjs.org/cycle/-/cycle-1.0.3.tgz";
sha1 = "21e80b2be8580f98b468f379430662b046c34ad2";
sha512 = "TVF6svNzeQCOpjCqsy0/CSy8VgObG3wXusJ73xW2GbG5rGx7lC8zxDSURicsXI2UsGdi2L0QNRCi745/wUDvsA==";
};
};
"debug-2.6.9" = {
@ -334,7 +334,7 @@ let
version = "0.2.3";
src = fetchurl {
url = "https://registry.npmjs.org/dicer/-/dicer-0.2.3.tgz";
sha1 = "f00281189a55c2351ef80490a4fe9fb2c59c4939";
sha512 = "QcKKVGYt+ZKHOoX/Ph26ua7vVMlFtPjAejtktv9/IDsfm9x3+5sVZ+H6SIS+ACWoIaJ8cPm4W4ibhiwdLDqhIA==";
};
};
"diff-5.0.0" = {
@ -352,7 +352,7 @@ let
version = "1.1.1";
src = fetchurl {
url = "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz";
sha1 = "590c61156b0ae2f4f0255732a158b266bc56b21d";
sha512 = "WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==";
};
};
"emoji-regex-8.0.0" = {
@ -370,7 +370,7 @@ let
version = "1.0.2";
src = fetchurl {
url = "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz";
sha1 = "ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59";
sha512 = "TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==";
};
};
"escalade-3.1.1" = {
@ -388,7 +388,7 @@ let
version = "1.0.3";
src = fetchurl {
url = "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz";
sha1 = "0258eae4d3d0c0974de1c169188ef0051d1d1988";
sha512 = "NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==";
};
};
"escape-string-regexp-4.0.0" = {
@ -406,7 +406,7 @@ let
version = "0.1.8";
src = fetchurl {
url = "https://registry.npmjs.org/eyes/-/eyes-0.1.8.tgz";
sha1 = "62cf120234c683785d902348a800ef3e0cc20bc0";
sha512 = "GipyPsXO1anza0AOZdy69Im7hGFCNB7Y/NGjDlZGJ3GJJLtwNSb2vrzYrTYJRrRloVx7pl+bhUaTB8yiccPvFQ==";
};
};
"fd-0.0.3" = {
@ -460,7 +460,7 @@ let
version = "1.0.0";
src = fetchurl {
url = "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz";
sha1 = "1504ad2523158caa40db4a2787cb01411994ea4f";
sha512 = "OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==";
};
};
"fsevents-2.3.2" = {
@ -550,7 +550,7 @@ let
version = "1.0.6";
src = fetchurl {
url = "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz";
sha1 = "49bd6331d7d02d0c09bc910a1075ba8165b56df9";
sha512 = "k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==";
};
};
"inherits-2.0.4" = {
@ -577,7 +577,7 @@ let
version = "2.1.1";
src = fetchurl {
url = "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz";
sha1 = "a88c02535791f02ed37c76a1b9ea9773c833f8c2";
sha512 = "SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==";
};
};
"is-fullwidth-code-point-2.0.0" = {
@ -586,7 +586,7 @@ let
version = "2.0.0";
src = fetchurl {
url = "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz";
sha1 = "a3b30a5c4f199183167aaab93beefae3ddfb654f";
sha512 = "VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w==";
};
};
"is-fullwidth-code-point-3.0.0" = {
@ -631,7 +631,7 @@ let
version = "0.0.1";
src = fetchurl {
url = "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz";
sha1 = "8a18acfca9a8f4177e09abfc6038939b05d1eedf";
sha512 = "D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==";
};
};
"isexe-2.0.0" = {
@ -640,7 +640,7 @@ let
version = "2.0.0";
src = fetchurl {
url = "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz";
sha1 = "e8fbf374dc556ff8947a10dcb0572d633f2cfa10";
sha512 = "RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==";
};
};
"isstream-0.1.2" = {
@ -649,7 +649,7 @@ let
version = "0.1.2";
src = fetchurl {
url = "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz";
sha1 = "47e63f7af55afa6f92e1500e690eb8b8529c099a";
sha512 = "Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g==";
};
};
"js-yaml-4.0.0" = {
@ -721,7 +721,7 @@ let
version = "2.0.0";
src = fetchurl {
url = "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz";
sha1 = "5608aeadfc00be6c2901df5f9861788de0d597c8";
sha512 = "Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==";
};
};
"ms-2.1.2" = {
@ -775,7 +775,7 @@ let
version = "2.3.0";
src = fetchurl {
url = "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz";
sha1 = "20f1336481b083cd75337992a16971aa2d906947";
sha512 = "ikqdkGAAyf/X/gPhXGvfgAytDZtDbr+bkNUJ0N9h5MI/dmdgCs3l6hoHrcUv41sRKew3jIwrp4qQDXiK99Utww==";
};
};
"once-1.4.0" = {
@ -784,7 +784,7 @@ let
version = "1.4.0";
src = fetchurl {
url = "https://registry.npmjs.org/once/-/once-1.4.0.tgz";
sha1 = "583b1aa775961d4b113ac17d9c50baef9dd76bd1";
sha512 = "lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==";
};
};
"p-limit-3.1.0" = {
@ -838,7 +838,7 @@ let
version = "1.0.1";
src = fetchurl {
url = "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz";
sha1 = "174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f";
sha512 = "AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==";
};
};
"pg-8.7.3" = {
@ -928,7 +928,7 @@ let
version = "1.0.0";
src = fetchurl {
url = "https://registry.npmjs.org/postgres-bytea/-/postgres-bytea-1.0.0.tgz";
sha1 = "027b533c0aa890e26d172d47cf9ccecc521acd35";
sha512 = "xy3pmLuQqRBZBXDULy7KbaitYqLcmxigw14Q5sj8QBVLqEwXfeybIKVWiqAXTlcvdvb0+xkOtDbfQMOf4lST1w==";
};
};
"postgres-date-1.0.7" = {
@ -955,7 +955,7 @@ let
version = "1.0.2";
src = fetchurl {
url = "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz";
sha1 = "f052a28da70e618917ef0a8ac34c1ae5a68286b3";
sha512 = "b/YwNhb8lk1Zz2+bXXpS/LK9OisiZZ1SNsSLxN1x2OXVEhW2Ckr/7mWE5vrC1ZTiJlD9g19jWszTmJsB+oEpFQ==";
};
};
"randombytes-2.1.0" = {
@ -1341,7 +1341,7 @@ let
name = "haste";
packageName = "haste";
version = "0.1.0";
src = ../../../../../../../../../nix/store/6mkl6xr6y74v0ib122gjx8jvd6xig4dc-source;
src = ../../../../../../../../../nix/store/83sz6s07psdzc54741nm0qgxfnnb62l7-source;
dependencies = [
sources."@ungap/promise-all-settled-1.1.2"
sources."ansi-colors-4.1.1"

@ -2876,7 +2876,9 @@
];
"unifiprotect" = ps: with ps; [
aiohttp-cors
]; # missing inputs: pyunifiprotect unifi-discovery
pyunifiprotect
unifi-discovery
];
"universal" = ps: with ps; [
];
"upb" = ps: with ps; [
@ -3779,6 +3781,7 @@
"ukraine_alarm"
"unifi"
"unifi_direct"
"unifiprotect"
"universal"
"upb"
"upcloud"

@ -403,6 +403,8 @@ in {
aioshelly = callPackage ../development/python-modules/aioshelly { };
aioshutil = callPackage ../development/python-modules/aioshutil { };
aiosignal = callPackage ../development/python-modules/aiosignal { };
aioslimproto = callPackage ../development/python-modules/aioslimproto { };
@ -8764,6 +8766,8 @@ in {
pyunifi = callPackage ../development/python-modules/pyunifi { };
pyunifiprotect = callPackage ../development/python-modules/pyunifiprotect { };
pyupdate = callPackage ../development/python-modules/pyupdate { };
pyupgrade = callPackage ../development/python-modules/pyupgrade { };
@ -10781,6 +10785,8 @@ in {
unifi = callPackage ../development/python-modules/unifi { };
unifi-discovery = callPackage ../development/python-modules/unifi-discovery { };
unify = callPackage ../development/python-modules/unify { };
unifiled = callPackage ../development/python-modules/unifiled { };

Loading…
Cancel
Save