Merge master into staging-next

This commit is contained in:
github-actions[bot] 2021-06-24 00:06:27 +00:00 committed by GitHub
commit d437a6cac2
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
24 changed files with 330 additions and 165 deletions

View file

@ -70,6 +70,8 @@ Anything that does not cause user or downstream dependency regressions can be ba
## Generating 21.11 Release Notes
(This section also applies to backporting 21.05 release notes: substitute "rl-2111" for "rl-2105".)
Documentation in nixpkgs is transitioning to a markdown-centric workflow. Release notes now require a translation step to convert from markdown to a compatible docbook document.
Steps for updating 21.11 Release notes:

View file

@ -23,7 +23,7 @@ Reviewing guidelines: https://nixos.org/manual/nixpkgs/unstable/#chap-reviewing-
- [ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside [nixos/tests](https://github.com/NixOS/nixpkgs/blob/master/nixos/tests))
- [ ] Tested compilation of all pkgs that depend on this change using `nix-shell -p nixpkgs-review --run "nixpkgs-review wip"`
- [ ] Tested execution of all binary files (usually in `./result/bin/`)
- [21.11 Release Notes](https://github.com/NixOS/nixpkgs/blob/master/.github/CONTRIBUTING.md#generating-2111-release-notes)
- [21.11 Release Notes (or backporting 21.05 Relase notes)](https://github.com/NixOS/nixpkgs/blob/master/.github/CONTRIBUTING.md#generating-2111-release-notes)
- [ ] (Package updates) Added a release notes entry if the change is major or breaking
- [ ] (Module updates) Added a release notes entry if the change is significant
- [ ] (Module addition) Added a release notes entry if adding a new NixOS module

View file

@ -104,6 +104,7 @@ in
ExecStart = "${pkgs.babeld}/bin/babeld -c ${configFile} -I /run/babeld/babeld.pid -S /var/lib/babeld/state";
AmbientCapabilities = [ "CAP_NET_ADMIN" ];
CapabilityBoundingSet = [ "CAP_NET_ADMIN" ];
DevicePolicy = "closed";
DynamicUser = true;
IPAddressAllow = [ "fe80::/64" "ff00::/8" "::1/128" "127.0.0.0/8" ];
IPAddressDeny = "any";
@ -123,12 +124,17 @@ in
RemoveIPC = true;
ProtectHome = true;
ProtectHostname = true;
ProtectProc = "invisible";
PrivateMounts = true;
PrivateTmp = true;
PrivateDevices = true;
PrivateUsers = false; # kernel_route(ADD): Operation not permitted
ProcSubset = "pid";
SystemCallArchitectures = "native";
SystemCallFilter = [ "@system-service" ];
SystemCallFilter = [
"@system-service"
"~@privileged @resources"
];
UMask = "0177";
RuntimeDirectory = "babeld";
StateDirectory = "babeld";

View file

@ -16,13 +16,17 @@ mkDerivationWith python3Packages.buildPythonApplication rec {
sha256 = "1970izjaa60r5cg9i35rzz9lk5c5d8q1vw1rh2skvfbf63z1hnzv";
};
patches = [
./spyder4.patch
];
propagatedBuildInputs = with python3Packages; [
cadquery
Logbook
pyqt5
pyparsing
pyqtgraph
spyder_3
spyder
pathpy
qtconsole
requests

View file

@ -0,0 +1,58 @@
diff --git a/cq_editor/widgets/debugger.py b/cq_editor/widgets/debugger.py
index b7398fb..d039db5 100644
--- a/cq_editor/widgets/debugger.py
+++ b/cq_editor/widgets/debugger.py
@@ -162,7 +162,7 @@ class Debugger(QObject,ComponentMixin):
def get_breakpoints(self):
- return self.parent().components['editor'].get_breakpoints()
+ return self.parent().components['editor'].debugger.get_breakpoints()
def compile_code(self,cq_script):
@@ -178,12 +178,14 @@ class Debugger(QObject,ComponentMixin):
def _exec(self, code, locals_dict, globals_dict):
with ExitStack() as stack:
- p = Path(self.parent().components['editor'].filename).dirname()
- if self.preferences['Add script dir to path'] and p:
+ fname = self.parent().components['editor'].filename
+ p = Path(fname if fname else '').abspath().dirname()
+ if self.preferences['Add script dir to path'] and p.exists():
sys.path.append(p)
stack.callback(sys.path.remove, p)
- if self.preferences['Change working dir to script dir'] and p:
+ if self.preferences['Change working dir to script dir'] and p.exists():
stack.enter_context(p)
+
exec(code, locals_dict, globals_dict)
def _inject_locals(self,module):
diff --git a/cq_editor/widgets/editor.py b/cq_editor/widgets/editor.py
index 45aa048..2763469 100644
--- a/cq_editor/widgets/editor.py
+++ b/cq_editor/widgets/editor.py
@@ -1,4 +1,4 @@
-from spyder.widgets.sourcecode.codeeditor import CodeEditor
+from spyder.plugins.editor.widgets.codeeditor import CodeEditor
from PyQt5.QtCore import pyqtSignal, QFileSystemWatcher, QTimer
from PyQt5.QtWidgets import QAction, QFileDialog
from PyQt5.QtGui import QFontDatabase
@@ -32,6 +32,8 @@ class Editor(CodeEditor,ComponentMixin):
def __init__(self,parent=None):
+ self._watched_file = None
+
super(Editor,self).__init__(parent)
ComponentMixin.__init__(self)
@@ -83,7 +85,6 @@ class Editor(CodeEditor,ComponentMixin):
# autoreload support
self._file_watcher = QFileSystemWatcher(self)
- self._watched_file = None
# we wait for 50ms after a file change for the file to be written completely
self._file_watch_timer = QTimer(self)
self._file_watch_timer.setInterval(50)

View file

@ -391,10 +391,10 @@
"owner": "grafana",
"provider-source-address": "registry.terraform.io/grafana/grafana",
"repo": "terraform-provider-grafana",
"rev": "v1.10.0",
"sha256": "0q3j30q1zxpdm0fmda3ivnl754q2p61xn9l30l0a3n0r5b25w8pk",
"vendorSha256": null,
"version": "1.10.0"
"rev": "v1.12.0",
"sha256": "0jqm8ql8kams2rh90fwdmv9nnf4npzpxaagm9725nsf0iqn3qlhn",
"vendorSha256": "0pxd3sgpkry7gik6rgfl3cpgawhvgpb0sn1rkhdp9p11iwx7xxbi",
"version": "1.12.0"
},
"gridscale": {
"owner": "terraform-providers",

View file

@ -1,4 +1,5 @@
{ lib, stdenv
{ lib
, stdenv
, fetchurl
, dpkg
, undmg
@ -19,6 +20,7 @@
, glib
, gnome2
, gtk3
, libGL
, libappindicator-gtk3
, libdrm
, libnotify
@ -53,18 +55,20 @@ let
x86_64-linux = x86_64-linux-version;
}.${system} or throwSystem;
src = let
base = "https://downloads.slack-edge.com";
in {
x86_64-darwin = fetchurl {
url = "${base}/releases/macos/${version}/prod/x64/Slack-${version}-macOS.dmg";
sha256 = x86_64-darwin-sha256;
};
x86_64-linux = fetchurl {
url = "${base}/linux_releases/slack-desktop-${version}-amd64.deb";
sha256 = x86_64-linux-sha256;
};
}.${system} or throwSystem;
src =
let
base = "https://downloads.slack-edge.com";
in
{
x86_64-darwin = fetchurl {
url = "${base}/releases/macos/${version}/prod/x64/Slack-${version}-macOS.dmg";
sha256 = x86_64-darwin-sha256;
};
x86_64-linux = fetchurl {
url = "${base}/linux_releases/slack-desktop-${version}-amd64.deb";
sha256 = x86_64-linux-sha256;
};
}.${system} or throwSystem;
meta = with lib; {
description = "Desktop client for Slack";
@ -95,6 +99,7 @@ let
glib
gnome2.GConf
gtk3
libGL
libappindicator-gtk3
libdrm
libnotify
@ -118,13 +123,13 @@ let
xorg.libXi
xorg.libXrandr
xorg.libXrender
xorg.libxshmfence
xorg.libXtst
xorg.libxkbfile
xorg.libxshmfence
] + ":${stdenv.cc.cc.lib}/lib64";
buildInputs = [
gtk3 # needed for GSETTINGS_SCHEMAS_PATH
gtk3 # needed for GSETTINGS_SCHEMAS_PATH
];
nativeBuildInputs = [ dpkg makeWrapper nodePackages.asar ];
@ -153,7 +158,7 @@ let
rm $out/bin/slack
makeWrapper $out/lib/slack/slack $out/bin/slack \
--prefix XDG_DATA_DIRS : $GSETTINGS_SCHEMAS_PATH \
--prefix PATH : ${xdg-utils}/bin
--prefix PATH : ${lib.makeBinPath [xdg-utils]}
# Fix the desktop link
substituteInPlace $out/share/applications/slack.desktop \
@ -177,6 +182,7 @@ let
/usr/bin/defaults write com.tinyspeck.slackmacgap SlackNoAutoUpdates -bool YES
'';
};
in if stdenv.isDarwin
then darwin
else linux
in
if stdenv.isDarwin
then darwin
else linux

View file

@ -0,0 +1,38 @@
{ lib
, stdenv
, fetchFromGitHub
, autoreconfHook
, glpk
, gmp
}:
stdenv.mkDerivation rec{
pname = "4ti2";
version = "1.6.9";
src = fetchFromGitHub {
owner = pname;
repo = pname;
rev = "Release_${builtins.replaceStrings ["."] ["_"] version}";
hash = "sha256-cywneIM0sHt1iQsNfjyQDoDfdRjxpz4l3rfysi9YN20=";
};
nativeBuildInputs = [
autoreconfHook
];
buildInputs = [
glpk
gmp
];
installFlags = [ "install-exec" ];
meta = with lib;{
homepage = "https://4ti2.github.io/";
description = "A software package for algebraic, geometric and combinatorial problems on linear spaces";
license = with licenses; [ gpl2Plus ];
maintainers = with maintainers; [ AndersonTorres ];
platforms = platforms.all;
};
}

View file

@ -6,14 +6,14 @@
buildPythonPackage rec {
pname = "coqpit";
version = "0.0.9";
version = "0.0.10";
format = "setuptools";
src = fetchFromGitHub {
owner = "coqui-ai";
repo = pname;
rev = "v${version}";
sha256 = "1dh3bp7m9fjfrfrahblibrx91sagndkdi0325ail63kyvlhzbkma";
sha256 = "1gcj5sffcmlvhhk6wbvmxppjpckb90q1avc07jbnb1vvrb2h9lr0";
};
checkInputs = [

View file

@ -0,0 +1,34 @@
{ lib
, buildPythonPackage
, pythonOlder
, fetchPypi
, aiohttp
}:
buildPythonPackage rec {
pname = "huisbaasje-client";
version = "0.1.0";
disabled = pythonOlder "3.6"; # requires python version >=3.6
src = fetchPypi {
inherit pname version;
sha256 = "6bc02384c37aba01719269b05882572050c80cd9abf98caa38519308e05b7db8";
};
propagatedBuildInputs = [
aiohttp
];
# no tests on PyPI, no tags on GitHub
doCheck = false;
pythonImportsCheck = [ "huisbaasje.huisbaasje" ];
meta = with lib; {
description = "Client for Huisbaasje";
homepage = "https://github.com/denniss17/huisbaasje-client";
license = licenses.asl20;
maintainers = with maintainers; [ dotlambda ];
};
}

View file

@ -2,13 +2,13 @@
buildPythonPackage rec {
pname = "netdisco";
version = "2.8.3";
version = "2.9.0";
disabled = !isPy3k;
src = fetchPypi {
inherit pname version;
sha256 = "sha256-4WS9PiErB6U7QuejTvbrOmnHetbE5S4zaUyhLCbyihM=";
sha256 = "sha256-OpLFM+0ZmhggJ1SuLoSO+qWLcKcpS65sd7u2zkzPys4=";
};
propagatedBuildInputs = [ requests zeroconf ];

View file

@ -0,0 +1,33 @@
{ lib
, buildPythonPackage
, fetchFromGitHub
, requests
}:
buildPythonPackage rec {
pname = "nextcloudmonitor";
version = "1.2.0";
src = fetchFromGitHub {
owner = "meichthys";
repo = "nextcloud_monitor";
rev = "v${version}";
sha256 = "0b0c7gzx1d5kgbsfj1lbrqsirc5g5br6v8w2njaj1ys03kj669cx";
};
propagatedBuildInputs = [
requests
];
# no tests implemented
doCheck = false;
pythonImportsCheck = [ "nextcloudmonitor" ];
meta = with lib; {
description = "Python wrapper around nextcloud monitor api";
homepage = "https://github.com/meichthys/nextcloud_monitor";
license = licenses.mit;
maintainers = with maintainers; [ dotlambda ];
};
}

View file

@ -0,0 +1,51 @@
{ lib
, buildPythonPackage
, pythonOlder
, fetchFromGitHub
, setuptools-scm
, aiohttp
, pytz
, voluptuous
}:
buildPythonPackage rec {
pname = "pygti";
version = "0.9.2";
disabled = pythonOlder "3.6";
src = fetchFromGitHub {
owner = "vigonotion";
repo = "pygti";
rev = "v${version}";
sha256 = "0zqa2krsniaqisjr0xqw009wdyy3y48zar9lrwysjsqci7k07d9x";
};
nativeBuildInputs = [
setuptools-scm
];
SETUPTOOLS_SCM_PRETEND_VERSION = version;
propagatedBuildInputs = [
aiohttp
pytz
voluptuous
];
# no tests implemented
doCheck = false;
pythonImportsCheck = [
"pygti.auth"
"pygti.exceptions"
"pygti.gti"
];
meta = with lib; {
description = "Access public transport information in Hamburg, Germany";
homepage = "https://github.com/vigonotion/pygti";
license = licenses.asl20;
maintainers = with maintainers; [ dotlambda ];
};
}

View file

@ -0,0 +1,43 @@
{ lib
, buildPythonPackage
, fetchFromGitHub
, requests
, python-dateutil
, aiohttp
}:
buildPythonPackage rec {
pname = "pyisy";
version = "3.0.0";
src = fetchFromGitHub {
owner = "automicus";
repo = "PyISY";
rev = "v${version}";
sha256 = "1bxp13m83qm1n1ddyw6mdz0ijfksjg4ki85w4n8i597f3xazm8q4";
};
postPatch = ''
substituteInPlace setup.py \
--replace "setuptools-git-version" "" \
--replace 'version_format="{tag}"' 'version="${version}"'
'';
propagatedBuildInputs = [
aiohttp
python-dateutil
requests
];
# no tests implemented
doCheck = false;
pythonImportsCheck = [ "pyisy" ];
meta = with lib; {
description = "Python module to talk to ISY994 from UDI";
homepage = "https://github.com/automicus/PyISY";
license = licenses.asl20;
maintainers = with maintainers; [ dotlambda ];
};
}

View file

@ -1,72 +0,0 @@
{ lib
, buildPythonPackage
, fetchFromGitHub
, cloudpickle
, ipykernel
, wurlitzer
, jupyter_client
, pyzmq
, numpy
, pandas
, scipy
, matplotlib
, xarray
, pytestCheckHook
, flaky
, isPy3k
}:
buildPythonPackage rec {
pname = "spyder-kernels";
version = "0.5.2";
src = fetchFromGitHub {
owner = "spyder-ide";
repo = "spyder-kernels";
rev = "v${version}";
sha256 = "1yan589g0470y61bcyjy3wj13i94ndyffckqdyrg97vw2qhfrisb";
};
# requirement xarray not available on Py2k
disabled = !isPy3k;
propagatedBuildInputs = [
cloudpickle
ipykernel
wurlitzer
jupyter_client
pyzmq
];
checkInputs = [
numpy
pandas
scipy
matplotlib
xarray
pytestCheckHook
flaky
];
preCheck = ''
export JUPYTER_RUNTIME_DIR=$(mktemp -d)
'';
# skipped tests:
# turtle requires graphics
# cython test fails, I don't think this can ever access cython?
# umr pathlist test assumes standard directories, not compatible with nix
disabledTests = [
"test_turtle_launc"
"test_umr_skip_cython"
"test_umr_pathlist"
"test_user_sitepackages_in_pathlist"
];
meta = with lib; {
description = "Jupyter kernels for Spyder's console";
homepage = "https://github.com/spyder-ide/spyder-kernels";
license = licenses.mit;
maintainers = with maintainers; [ gebner marcus7070 ];
};
}

View file

@ -1,48 +0,0 @@
{ lib, buildPythonPackage, fetchFromGitHub, jedi, pycodestyle,
psutil, pyflakes, rope, pylint, keyring, numpydoc,
qtconsole, qtawesome, nbconvert, mccabe, pyopengl, cloudpickle, pygments,
spyder-kernels_0_5, qtpy, pyzmq, chardet, pyqtwebengine
}:
buildPythonPackage rec {
pname = "spyder";
version = "3.3.6";
src = fetchFromGitHub {
owner = "spyder-ide";
repo = "spyder";
rev = "v3.3.6";
sha256 = "1sk9xajhzpklk5bcbdhpfhx3gxhyrahsmj9bv2m6kvbqxdlx6bq6";
};
propagatedBuildInputs = [
jedi pycodestyle psutil pyflakes rope pylint keyring numpydoc
qtconsole qtawesome nbconvert mccabe pyopengl cloudpickle spyder-kernels_0_5
pygments qtpy pyzmq chardet pyqtwebengine
];
# tests fail with a segfault
doCheck = false;
postPatch = ''
# remove dependency on pyqtwebengine
# this is still part of the pyqt 5.13 version we have in nixpkgs
sed -i /pyqtwebengine/d setup.py
substituteInPlace setup.py --replace "pyqt5<5.13" "pyqt5"
'';
pythonImportsCheck = [ "spyder" ];
meta = with lib; {
description = "Library providing a scientific python development environment";
longDescription = ''
Spyder (previously known as Pydee) is a powerful interactive development
environment for the Python language with advanced editing, interactive
testing, debugging and introspection features.
'';
homepage = "https://github.com/spyder-ide/spyder/";
license = licenses.mit;
platforms = platforms.linux;
maintainers = with maintainers; [ gebner marcus7070 ];
};
}

View file

@ -2,7 +2,7 @@
buildGoModule rec {
pname = "consul";
version = "1.9.7";
version = "1.10.0";
rev = "v${version}";
# Note: Currently only release tags are supported, because they have the Consul UI
@ -17,7 +17,7 @@ buildGoModule rec {
owner = "hashicorp";
repo = pname;
inherit rev;
sha256 = "sha256-+s7IwbklJ9QLe5ZagEe6+C0dx/Vvj0O5YaNUP25e9ZA=";
sha256 = "sha256:0gc5shz1nbya7jdkggw2izbw1p4lwkbqgbc5ihlvnwrfdgksfqqd";
};
passthru.tests.consul = nixosTests.consul;
@ -26,7 +26,7 @@ buildGoModule rec {
# has a split module structure in one repo
subPackages = ["." "connect/certgen"];
vendorSha256 = "sha256-HtuWfTtooD4/SzDp6yzNMI2nryOgy2e+lgz8q3M3vfw=";
vendorSha256 = "sha256:0sxnnzzsp58ma42ylysdgxibqf65f4f9vbf8c20r44426vg75as7";
doCheck = false;

View file

@ -371,10 +371,10 @@
"huawei_lte" = ps: with ps; [ getmac huawei-lte-api stringcase url-normalize ];
"huawei_router" = ps: with ps; [ ];
"hue" = ps: with ps; [ aiohue ];
"huisbaasje" = ps: with ps; [ ]; # missing inputs: huisbaasje-client
"huisbaasje" = ps: with ps; [ huisbaasje-client ];
"humidifier" = ps: with ps; [ ];
"hunterdouglas_powerview" = ps: with ps; [ ]; # missing inputs: aiopvapi
"hvv_departures" = ps: with ps; [ ]; # missing inputs: pygti
"hvv_departures" = ps: with ps; [ pygti ];
"hydrawise" = ps: with ps; [ hydrawiser ];
"hyperion" = ps: with ps; [ hyperion-py ];
"ialarm" = ps: with ps; [ pyialarm ];
@ -411,7 +411,7 @@
"irish_rail_transport" = ps: with ps; [ ]; # missing inputs: pyirishrail
"islamic_prayer_times" = ps: with ps; [ prayer-times-calculator ];
"iss" = ps: with ps; [ ]; # missing inputs: pyiss
"isy994" = ps: with ps; [ ]; # missing inputs: pyisy
"isy994" = ps: with ps; [ pyisy ];
"itach" = ps: with ps; [ ]; # missing inputs: pyitachip2ir
"itunes" = ps: with ps; [ ];
"izone" = ps: with ps; [ ]; # missing inputs: python-izone
@ -561,7 +561,7 @@
"neurio_energy" = ps: with ps; [ ]; # missing inputs: neurio
"nexia" = ps: with ps; [ nexia ];
"nextbus" = ps: with ps; [ ]; # missing inputs: py_nextbusnext
"nextcloud" = ps: with ps; [ ]; # missing inputs: nextcloudmonitor
"nextcloud" = ps: with ps; [ nextcloudmonitor ];
"nfandroidtv" = ps: with ps; [ ];
"nightscout" = ps: with ps; [ ]; # missing inputs: py-nightscout
"niko_home_control" = ps: with ps; [ ]; # missing inputs: niko-home-control

View file

@ -476,12 +476,15 @@ in with py.pkgs; buildPythonApplication rec {
"http"
"huawei_lte"
"hue"
"huisbaasje"
"humidifier"
"hvv_departures"
"hyperion"
"ialarm"
"iaqualink"
"icloud"
"ifttt"
"ign_sismologia"
"image"
"image_processing"
"imap_email_content"
@ -500,6 +503,7 @@ in with py.pkgs; buildPythonApplication rec {
"ipp"
"iqvia"
"islamic_prayer_times"
"isy994"
"jewish_calendar"
"kira"
"kmtronic"

View file

@ -4,11 +4,11 @@
with python3.pkgs; buildPythonPackage rec {
pname = "esphome-dashboard";
version = "20210617.1";
version = "20210622.0";
src = fetchPypi {
inherit pname version;
sha256 = "0kwg940pdzjsfbdmcml382khpxm6p1ip0bib0wk8rg8qdvmia7w5";
sha256 = "00qndincn8m7ap6ficsrl7vlr4dwb9q9ybjyj947r1fwprnbbj0l";
};
# no tests

View file

@ -12,13 +12,13 @@ let
in
python3.pkgs.buildPythonApplication rec {
pname = "esphome";
version = "1.19.2";
version = "1.19.3";
src = fetchFromGitHub {
owner = pname;
repo = pname;
rev = "v${version}";
sha256 = "0bz6gkrvn7mwmjsqrazgpy9r64m5jj462v0izgvdymkx8bjd8mpi";
sha256 = "013bnzcpyp1vh1aik3bl7i7hxvfwlg1skvc83biqva1vbllah7w1";
};
patches = [

View file

@ -29721,6 +29721,8 @@ in
### SCIENCE/MATH
_4ti2 = callPackage ../applications/science/math/4ti2 { };
almonds = callPackage ../applications/science/math/almonds { };
amd-blis = callPackage ../development/libraries/science/math/amd-blis { };

View file

@ -3332,6 +3332,8 @@ in {
huggingface-hub = callPackage ../development/python-modules/huggingface-hub { };
huisbaasje-client = callPackage ../development/python-modules/huisbaasje-client { };
humanfriendly = callPackage ../development/python-modules/humanfriendly { };
humanize = callPackage ../development/python-modules/humanize { };
@ -4706,6 +4708,8 @@ in {
nexia = callPackage ../development/python-modules/nexia { };
nextcloudmonitor = callPackage ../development/python-modules/nextcloudmonitor { };
nghttp2 = (toPythonModule (pkgs.nghttp2.override {
inherit (self) python cython setuptools;
inherit (pkgs) ncurses;
@ -5287,10 +5291,14 @@ in {
pyflick = callPackage ../development/python-modules/pyflick { };
pygti = callPackage ../development/python-modules/pygti { };
pyheos = callPackage ../development/python-modules/pyheos { };
pyhiveapi = callPackage ../development/python-modules/pyhiveapi { };
pyisy = callPackage ../development/python-modules/pyisy { };
pynndescent = callPackage ../development/python-modules/pynndescent { };
pynobo = callPackage ../development/python-modules/pynobo { };
@ -8138,12 +8146,8 @@ in {
spyder = callPackage ../development/python-modules/spyder { };
spyder_3 = callPackage ../development/python-modules/spyder/3.nix { };
spyder-kernels = callPackage ../development/python-modules/spyder-kernels { };
spyder-kernels_0_5 = callPackage ../development/python-modules/spyder-kernels/0.x.nix { };
sqlalchemy = callPackage ../development/python-modules/sqlalchemy { };
sqlalchemy-citext = callPackage ../development/python-modules/sqlalchemy-citext { };