From 8f370c5040b0c7cbea71a99cd63f440a27e7d0c7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Geoffrey=20=E2=80=9CFrogeye=E2=80=9D=20Preud=27homme?= Date: Mon, 8 Jan 2024 23:24:17 +0100 Subject: [PATCH] python: Move to separate file --- hm/common.nix | 5 ---- hm/dev/common.nix | 5 ---- hm/dev/python.nix | 56 +++++++++++++++++++++++++++++++++++ hm/{ => dev}/pythonstartup.py | 0 hm/vim/default.nix | 32 -------------------- 5 files changed, 56 insertions(+), 42 deletions(-) create mode 100644 hm/dev/python.nix rename hm/{ => dev}/pythonstartup.py (100%) diff --git a/hm/common.nix b/hm/common.nix index 98002ea..451afba 100644 --- a/hm/common.nix +++ b/hm/common.nix @@ -43,7 +43,6 @@ ffplay = "ffplay -hide_banner"; numbat = "numbat --intro-banner off"; insect = "numbat"; - ipython = "ipython --no-confirm-exit --pdb"; bat = "bat -A"; # Frequent mistakes @@ -233,9 +232,6 @@ log-scale: yes ''; }; - "pythonstartup.py" = { - text = (builtins.readFile ./pythonstartup.py); - }; }; }; home = { @@ -326,7 +322,6 @@ # INPUTRC = "${config.xdg.configHome}/inputrc"; # UPST Will use programs.readline, but doesn't allow path setting LESSHISTFILE = "${config.xdg.stateHome}/lesshst"; NODE_REPL_HISTORY = "${config.xdg.cacheHome}/node_repl_history"; - PYTHONSTARTUP = "${config.xdg.configHome}/pythonstartup.py"; # TODO I think we're not using the urxvt daemon on purpose? # TODO this should be desktop only, as a few things are too. SQLITE_HISTFILE = "${config.xdg.stateHome}/sqlite_history"; diff --git a/hm/dev/common.nix b/hm/dev/common.nix index df39d53..cecaa97 100644 --- a/hm/dev/common.nix +++ b/hm/dev/common.nix @@ -50,11 +50,6 @@ ] ++ lib.optionals (config.frogeye.desktop.xorg && config.frogeye.dev.fpga) [ yosys gtkwave - - # Python - ] ++ lib.optionals config.frogeye.dev.python [ - python3Packages.ipython - ]; }; } diff --git a/hm/dev/python.nix b/hm/dev/python.nix new file mode 100644 index 0000000..d23f3db --- /dev/null +++ b/hm/dev/python.nix @@ -0,0 +1,56 @@ +{ pkgs, lib, config, ... }: +{ + config = lib.mkIf config.frogeye.dev.python { + frogeye = { + shellAliases = { + ipython = "ipython --no-confirm-exit --pdb"; + }; + }; + home = { + packages = with pkgs; [ + python3 + python3Packages.ipython + ]; + sessionVariables = { + PYTHONSTARTUP = "${config.xdg.configHome}/pythonstartup.py"; + }; + }; + programs.nixvim.plugins.lsp.servers.pylsp = { + # Python + enable = config.frogeye.dev.python; + settings.plugins = { + black.enabled = true; + flake8 = { + enabled = true; + maxLineLength = 88; # Compatibility with Black + }; + isort.enabled = true; + mccabe.enabled = true; + pycodestyle = { + enabled = true; + maxLineLength = 88; # Compatibility with Black + }; + pyflakes.enabled = true; + pylint.enabled = true; + pylsp_mypy = { + enabled = true; + overrides = [ + "--cache-dir=${config.xdg.cacheHome}/mypy" + "--ignore-missing-imports" + "--disallow-untyped-defs" + "--disallow-untyped-calls" + "--disallow-incomplete-defs" + "--disallow-untyped-decorators" + true + ]; + }; + # TODO Could add some, could also remove some + }; + }; + xdg.configFile = { + "pythonstartup.py" = { + text = (builtins.readFile ./pythonstartup.py); + }; + }; + }; +} diff --git a/hm/pythonstartup.py b/hm/dev/pythonstartup.py similarity index 100% rename from hm/pythonstartup.py rename to hm/dev/pythonstartup.py diff --git a/hm/vim/default.nix b/hm/vim/default.nix index fda04e2..3587883 100644 --- a/hm/vim/default.nix +++ b/hm/vim/default.nix @@ -158,38 +158,6 @@ in jsonls.enable = true; # JSON lua-ls.enable = true; # Lua (for Neovim debugging) perlpls.enable = config.frogeye.dev.perl; # Perl - pylsp = { - # Python - enable = config.frogeye.dev.python; - settings.plugins = { - black.enabled = true; - flake8 = { - enabled = true; - maxLineLength = 88; # Compatibility with Black - }; - isort.enabled = true; - mccabe.enabled = true; - pycodestyle = { - enabled = true; - maxLineLength = 88; # Compatibility with Black - }; - pyflakes.enabled = true; - pylint.enabled = true; - pylsp_mypy = { - enabled = true; - overrides = [ - "--cache-dir=${config.xdg.cacheHome}/mypy" - "--ignore-missing-imports" - "--disallow-untyped-defs" - "--disallow-untyped-calls" - "--disallow-incomplete-defs" - "--disallow-untyped-decorators" - true - ]; - }; - # TODO Could add some, could also remove some - }; - }; phpactor.enable = config.frogeye.dev.php; # PHP rnix-lsp.enable = true; # Nix # TODO Something for SQL. sqls is deprecated, sqlls is not in Nixpkgs. Probably needs a DB connection configured anyways?