diff --git a/devices/laptop.nix b/devices/laptop.nix index 30c3d45..b7df26c 100755 --- a/devices/laptop.nix +++ b/devices/laptop.nix @@ -20,6 +20,7 @@ let nixos-hardware.nixosModules.asus-fa506ic self.nixosModules.software.wine + self.nixosModules.software.beets self.nixosModules.desktop self.homeConfigurations.main.nixosModule self.homeConfigurations.root.nixosModule diff --git a/flake.nix b/flake.nix index b1c60ce..bf13e08 100755 --- a/flake.nix +++ b/flake.nix @@ -94,7 +94,7 @@ default = import ./modules/default.nix flakeContext; desktop = import ./modules/desktop/default.nix flakeContext; software = { - beets = import ./modules/software/beets.nix flakeContext; + beets = import ./modules/software/beets/default.nix flakeContext; daw = import ./modules/software/daw.nix flakeContext; virtual = import ./modules/software/virtual.nix flakeContext; wine = import ./modules/software/wine.nix flakeContext; diff --git a/modules/software/beets.nix b/modules/software/beets.nix deleted file mode 100644 index 1bb0cd6..0000000 --- a/modules/software/beets.nix +++ /dev/null @@ -1,71 +0,0 @@ -# WIP, Garbage -{ inputs, ... }@flakeContext: -{ - config, - lib, - pkgs, - ... -}: -let - base-packages = with pkgs; [ - python312 - python312Packages.pip - python312Packages.virtualenv - ]; - # Файл requirements.txt с перечислением плагинов - requirements = pkgs.writeText "beets-requirements.txt" '' - beets[bandcamp,deezer,discogs,duplicates,edit,embedart,fetchart,info,lastgenre,lyrics,missing,rewrite,scrub,smartplaylist,spotify] - beetcamp - typing_extensions - ''; -in -{ - - fileSystems."/mnt/beets/music" = { - device = "${inputs.zeroq.dirs.music-library}"; - options = [ "bind" ]; - }; - - users = { - groups = { - beets = {}; - }; - users = { - beets = { - isSystemUser = true; - #isNormalUser = true; - description = "beets service"; - group = "beets"; - homeMode = "0770"; - home = "/var/lib/beets"; - packages = base-packages; - shell = pkgs.bashInteractive; - }; - }; - }; - - systemd.tmpfiles.rules = [ - "d /var/lib/beets 0770 beets beets -" - "d /mnt/beets 0770 beets beets -" - ]; - - # Автоматическая установка плагинов при старте системы - system.activationScripts.beets-venv = '' - # Создаём virtualenv если не существует - if [ ! -d "/var/lib/beets/venv" ]; then - ${pkgs.sudo}/bin/sudo -u beets ${pkgs.python312}/bin/python -m venv /var/lib/beets/venv - fi - - # Обновляем pip и устанавливаем зависимости - ${pkgs.sudo}/bin/sudo -u beets /var/lib/beets/venv/bin/pip install --upgrade pip wheel - ${pkgs.sudo}/bin/sudo -u beets /var/lib/beets/venv/bin/pip install -r ${requirements} - ''; - - # Симлинк для удобного вызова beets из-под основного пользователя -# environment.systemPackages = [ -# (pkgs.writeScriptBin "beets" '' -# #!/bin/sh -# exec sudo -u beets /var/lib/beets/venv/bin/beets "$@" -# '') -# ]; -} diff --git a/modules/software/beets/default.nix b/modules/software/beets/default.nix new file mode 100644 index 0000000..2d3c5ac --- /dev/null +++ b/modules/software/beets/default.nix @@ -0,0 +1,49 @@ +# WIP, Garbage +{ inputs, ... }@flakeContext: +{ + config, + lib, + pkgs, + ... +}: +{ + + nixpkgs.overlays = [ + (self: super: { + python3 = super.python3.override { + packageOverrides = import ./python-deps.nix { + pkgs = self; + inherit (super) fetchurl fetchgit fetchhg; + }; + }; + }) + ]; + + fileSystems."/mnt/beets/music" = { + device = "${inputs.zeroq.dirs.music-library}"; + options = [ "bind" ]; + }; + + users = { + groups = { + beets = {}; + }; + users = { + beets = { + isSystemUser = true; + #isNormalUser = true; + description = "beets service"; + group = "beets"; + homeMode = "0770"; + home = "/var/lib/beets"; + packages = [(pkgs.python3.withPackages (ps: [ ps.beets ps.beetcamp ]))]; + shell = pkgs.bashInteractive; + }; + }; + }; + + systemd.tmpfiles.rules = [ + "d /var/lib/beets 0770 beets beets -" + "d /mnt/beets 0770 beets beets -" + ]; +} diff --git a/modules/software/beets/python-deps.nix b/modules/software/beets/python-deps.nix new file mode 100644 index 0000000..e9fbd09 --- /dev/null +++ b/modules/software/beets/python-deps.nix @@ -0,0 +1,578 @@ +# Generated by pip2nix 0.8.0.dev1 +# See https://github.com/nix-community/pip2nix + +{ pkgs, fetchurl, fetchgit, fetchhg }: + +self: super: { + "Pillow" = super.buildPythonPackage rec { + pname = "Pillow"; + version = "11.2.1"; + src = fetchurl { + url = "https://files.pythonhosted.org/packages/af/cb/bb5c01fcd2a69335b86c22142b2bccfc3464087efb7fd382eee5ffc7fdf7/pillow-11.2.1.tar.gz"; + sha256 = "1dhnhyjpk22q9vvjaaacxjdvllsqm39p76wpxyvnfqs1k0cxckd6"; + }; + format = "setuptools"; + doCheck = false; + buildInputs = []; + checkInputs = []; + nativeBuildInputs = []; + propagatedBuildInputs = []; + }; + "anyio" = super.buildPythonPackage rec { + pname = "anyio"; + version = "4.9.0"; + src = fetchurl { + url = "https://files.pythonhosted.org/packages/a1/ee/48ca1a7c89ffec8b6a0c5d02b89c305671d5ffd8d3c94acf8b8c408575bb/anyio-4.9.0-py3-none-any.whl"; + sha256 = "0g6rqjlw0126i3qgphgj0hz1xd7kfs49fbmnpvvnmqynr90xaxlz"; + }; + format = "wheel"; + doCheck = false; + buildInputs = []; + checkInputs = []; + nativeBuildInputs = []; + propagatedBuildInputs = [ + self."exceptiongroup" + self."idna" + self."sniffio" + self."typing-extensions" + ]; + }; + "beautifulsoup4" = super.buildPythonPackage rec { + pname = "beautifulsoup4"; + version = "4.13.4"; + src = fetchurl { + url = "https://files.pythonhosted.org/packages/50/cd/30110dc0ffcf3b131156077b90e9f60ed75711223f306da4db08eff8403b/beautifulsoup4-4.13.4-py3-none-any.whl"; + sha256 = "0jqwrfjdxa2hx68fvswh659g5f7lhmy8qpydp0w9zmz9zm5v3fwv"; + }; + format = "wheel"; + doCheck = false; + buildInputs = []; + checkInputs = []; + nativeBuildInputs = []; + propagatedBuildInputs = [ + self."soupsieve" + self."typing-extensions" + ]; + }; + "beetcamp" = super.buildPythonPackage rec { + pname = "beetcamp"; + version = "0.21.0"; + src = fetchurl { + url = "https://files.pythonhosted.org/packages/6c/d3/94cad1ba1e65a9445655968a6dcdd528cb1352e2389f0921a9f8c0ccd4a0/beetcamp-0.21.0-py3-none-any.whl"; + sha256 = "08mxqmckg2fx9rkm5a1n9zs2sjccjj75vgxac22xjyi3fw1k0wz2"; + }; + format = "wheel"; + doCheck = false; + buildInputs = []; + checkInputs = []; + nativeBuildInputs = []; + propagatedBuildInputs = [ + self."beets" + self."httpx" + self."packaging" + self."pycountry" + ]; + }; + "beets" = super.buildPythonPackage rec { + pname = "beets"; + version = "2.3.1"; + src = fetchurl { + url = "https://files.pythonhosted.org/packages/09/f0/ea6f82fe6a58ee057c7caaa465a639ff353f11d61accb6dd2b8879f15d52/beets-2.3.1-py3-none-any.whl"; + sha256 = "099fjik347qphnwrrgphxl2fpla0jnyvq6cpbgbgahrw83izayfp"; + }; + format = "wheel"; + doCheck = false; + buildInputs = []; + checkInputs = []; + nativeBuildInputs = []; + propagatedBuildInputs = [ + self."Pillow" + self."Pillow" + self."beautifulsoup4" + self."beautifulsoup4" + self."confuse" + self."jellyfish" + self."langdetect" + self."langdetect" + self."lap" + self."mediafile" + self."musicbrainzngs" + self."mutagen" + self."numpy" + self."platformdirs" + self."pylast" + self."python3-discogs-client" + self."pyyaml" + self."requests" + self."requests" + self."typing-extensions" + self."unidecode" + ]; + }; + "certifi" = super.buildPythonPackage rec { + pname = "certifi"; + version = "2025.4.26"; + src = fetchurl { + url = "https://files.pythonhosted.org/packages/4a/7e/3db2bd1b1f9e95f7cddca6d6e75e2f2bd9f51b1246e546d88addca0106bd/certifi-2025.4.26-py3-none-any.whl"; + sha256 = "1wq530qla8qwn8am1bf221jhriqmd8rn6b4594k1cwg3vxj06d9h"; + }; + format = "wheel"; + doCheck = false; + buildInputs = []; + checkInputs = []; + nativeBuildInputs = []; + propagatedBuildInputs = []; + }; + "charset-normalizer" = super.buildPythonPackage rec { + pname = "charset-normalizer"; + version = "3.4.2"; + src = fetchurl { + url = "https://files.pythonhosted.org/packages/e4/33/89c2ced2b67d1c2a61c19c6751aa8902d46ce3dacb23600a283619f5a12d/charset_normalizer-3.4.2.tar.gz"; + sha256 = "0qqfk84ka3d9hh0yf7n8y0qa0yn08ncdacjjckzix8ybkv5cxbjv"; + }; + format = "setuptools"; + doCheck = false; + buildInputs = []; + checkInputs = []; + nativeBuildInputs = []; + propagatedBuildInputs = []; + }; + "confuse" = super.buildPythonPackage rec { + pname = "confuse"; + version = "2.0.1"; + src = fetchurl { + url = "https://files.pythonhosted.org/packages/32/1f/cf496479814d41fc252004482deeb90b740b4a6a391a3355c0b11d7e0abf/confuse-2.0.1-py3-none-any.whl"; + sha256 = "0amxm8vnxcayh7inahvj3fzj33n8gs8lvcfaicqrpjz2f2y5p7lv"; + }; + format = "wheel"; + doCheck = false; + buildInputs = []; + checkInputs = []; + nativeBuildInputs = []; + propagatedBuildInputs = [ + self."pyyaml" + ]; + }; + "exceptiongroup" = super.buildPythonPackage rec { + pname = "exceptiongroup"; + version = "1.3.0"; + src = fetchurl { + url = "https://files.pythonhosted.org/packages/36/f4/c6e662dade71f56cd2f3735141b265c3c79293c109549c1e6933b0651ffc/exceptiongroup-1.3.0-py3-none-any.whl"; + sha256 = "044alxyhkfdlr5z3xlpnf5lv78310bnsgnkdmm669l0k1ip1w4ad"; + }; + format = "wheel"; + doCheck = false; + buildInputs = []; + checkInputs = []; + nativeBuildInputs = []; + propagatedBuildInputs = [ + self."typing-extensions" + ]; + }; + "filetype" = super.buildPythonPackage rec { + pname = "filetype"; + version = "1.2.0"; + src = fetchurl { + url = "https://files.pythonhosted.org/packages/18/79/1b8fa1bb3568781e84c9200f951c735f3f157429f44be0495da55894d620/filetype-1.2.0-py2.py3-none-any.whl"; + sha256 = "099d3igvmfcdgg9dcylz8advva5n3qpplsf8gb7l24hqh1l1prvw"; + }; + format = "wheel"; + doCheck = false; + buildInputs = []; + checkInputs = []; + nativeBuildInputs = []; + propagatedBuildInputs = []; + }; + "h11" = super.buildPythonPackage rec { + pname = "h11"; + version = "0.16.0"; + src = fetchurl { + url = "https://files.pythonhosted.org/packages/04/4b/29cac41a4d98d144bf5f6d33995617b185d14b22401f75ca86f384e87ff1/h11-0.16.0-py3-none-any.whl"; + sha256 = "11kcrcqlp99djdajvrnsngzn883pqbcs3z9jb7v3ppi2fnz8pkv3"; + }; + format = "wheel"; + doCheck = false; + buildInputs = []; + checkInputs = []; + nativeBuildInputs = []; + propagatedBuildInputs = []; + }; + "httpcore" = super.buildPythonPackage rec { + pname = "httpcore"; + version = "1.0.9"; + src = fetchurl { + url = "https://files.pythonhosted.org/packages/7e/f5/f66802a942d491edb555dd61e3a9961140fd64c90bce1eafd741609d334d/httpcore-1.0.9-py3-none-any.whl"; + sha256 = "0mdzl73j982lss7w7a20ns2482xlfa82644qxjfzqs06li30fh1d"; + }; + format = "wheel"; + doCheck = false; + buildInputs = []; + checkInputs = []; + nativeBuildInputs = []; + propagatedBuildInputs = [ + self."certifi" + self."h11" + ]; + }; + "httpx" = super.buildPythonPackage rec { + pname = "httpx"; + version = "0.28.1"; + src = fetchurl { + url = "https://files.pythonhosted.org/packages/2a/39/e50c7c3a983047577ee07d2a9e53faf5a69493943ec3f6a384bdc792deb2/httpx-0.28.1-py3-none-any.whl"; + sha256 = "1barpaw8as8xb7b2bsmzdmdbq5nqljlq5jhlz3xcgy0hq76gq2fr"; + }; + format = "wheel"; + doCheck = false; + buildInputs = []; + checkInputs = []; + nativeBuildInputs = []; + propagatedBuildInputs = [ + self."anyio" + self."certifi" + self."httpcore" + self."idna" + ]; + }; + "idna" = super.buildPythonPackage rec { + pname = "idna"; + version = "3.10"; + src = fetchurl { + url = "https://files.pythonhosted.org/packages/76/c6/c88e154df9c4e1a2a66ccf0005a88dfb2650c1dffb6f5ce603dfbd452ce3/idna-3.10-py3-none-any.whl"; + sha256 = "1lw72a5swas501zvkpd6dsryj5hzjijqxs3526kbp7151md1jvcl"; + }; + format = "wheel"; + doCheck = false; + buildInputs = []; + checkInputs = []; + nativeBuildInputs = []; + propagatedBuildInputs = []; + }; + "jellyfish" = super.buildPythonPackage rec { + pname = "jellyfish"; + version = "1.2.0"; + src = fetchurl { + url = "https://files.pythonhosted.org/packages/7c/29/c0d39be806b5d5c201e9bf5265e43cf0e88bd63fb4e38edfc7a212ca38a7/jellyfish-1.2.0.tar.gz"; + sha256 = "1d13zi3s9lblfn153p2jw39k591x7lgs5zpvdqxwbp2583dp6zaw"; + }; + format = "setuptools"; + doCheck = false; + buildInputs = []; + checkInputs = []; + nativeBuildInputs = []; + propagatedBuildInputs = []; + }; + "langdetect" = super.buildPythonPackage rec { + pname = "langdetect"; + version = "1.0.9"; + src = fetchurl { + url = "https://files.pythonhosted.org/packages/0e/72/a3add0e4eec4eb9e2569554f7c70f4a3c27712f40e3284d483e88094cc0e/langdetect-1.0.9.tar.gz"; + sha256 = "1805svvb7xjm4sf1j7b6nc3409x37pd1xmabfwwjf1ldkzwgxhfb"; + }; + format = "setuptools"; + doCheck = false; + buildInputs = []; + checkInputs = []; + nativeBuildInputs = []; + propagatedBuildInputs = [ + self."six" + ]; + }; + "lap" = super.buildPythonPackage rec { + pname = "lap"; + version = "0.5.12"; + src = fetchurl { + url = "https://files.pythonhosted.org/packages/6c/cf/ef745c8977cbb26fba5f8433fd4bfd6bf009a90802c0a1cc7139e11f478b/lap-0.5.12.tar.gz"; + sha256 = "1za4mf5nd7vzwd24sy2mfxrk8mnwq7d8rv6h96yh8v5flx7422sp"; + }; + format = "setuptools"; + doCheck = false; + buildInputs = []; + checkInputs = []; + nativeBuildInputs = []; + propagatedBuildInputs = [ + self."numpy" + ]; + }; + "mediafile" = super.buildPythonPackage rec { + pname = "mediafile"; + version = "0.13.0"; + src = fetchurl { + url = "https://files.pythonhosted.org/packages/9f/b0/363b4d1443a593398f9d3784f406385f075e8fd0991c35356e73fc37638a/mediafile-0.13.0-py3-none-any.whl"; + sha256 = "1jqlwmwpgn0fxkbxrj8y5a4wr3ikwgs2rsc678hbaw861qyii3fd"; + }; + format = "wheel"; + doCheck = false; + buildInputs = []; + checkInputs = []; + nativeBuildInputs = []; + propagatedBuildInputs = [ + self."filetype" + self."mutagen" + ]; + }; + "musicbrainzngs" = super.buildPythonPackage rec { + pname = "musicbrainzngs"; + version = "0.7.1"; + src = fetchurl { + url = "https://files.pythonhosted.org/packages/6d/fd/cef7b2580436910ccd2f8d3deec0f3c81743e15c0eb5b97dde3fbf33c0c8/musicbrainzngs-0.7.1-py2.py3-none-any.whl"; + sha256 = "040s1q4ia6gl2bjjxrjs384980854s9za28b55r0lk0hfpwshhg8"; + }; + format = "wheel"; + doCheck = false; + buildInputs = []; + checkInputs = []; + nativeBuildInputs = []; + propagatedBuildInputs = []; + }; + "mutagen" = super.buildPythonPackage rec { + pname = "mutagen"; + version = "1.47.0"; + src = fetchurl { + url = "https://files.pythonhosted.org/packages/b0/7a/620f945b96be1f6ee357d211d5bf74ab1b7fe72a9f1525aafbfe3aee6875/mutagen-1.47.0-py3-none-any.whl"; + sha256 = "06d7miq4z6m7j8rx2czkmqhgbjb2bwjagfz5v0wraylhqm86zngd"; + }; + format = "wheel"; + doCheck = false; + buildInputs = []; + checkInputs = []; + nativeBuildInputs = []; + propagatedBuildInputs = []; + }; + "numpy" = super.buildPythonPackage rec { + pname = "numpy"; + version = "2.0.2"; + src = fetchurl { + url = "https://files.pythonhosted.org/packages/a9/75/10dd1f8116a8b796cb2c737b674e02d02e80454bda953fa7e65d8c12b016/numpy-2.0.2.tar.gz"; + sha256 = "0y3fcd268cnrc8ipcmj1c082an4j4a4wj3dbcjlf500qxryrhg48"; + }; + format = "setuptools"; + doCheck = false; + buildInputs = []; + checkInputs = []; + nativeBuildInputs = []; + propagatedBuildInputs = []; + }; + "oauthlib" = super.buildPythonPackage rec { + pname = "oauthlib"; + version = "3.2.2"; + src = fetchurl { + url = "https://files.pythonhosted.org/packages/7e/80/cab10959dc1faead58dc8384a781dfbf93cb4d33d50988f7a69f1b7c9bbe/oauthlib-3.2.2-py3-none-any.whl"; + sha256 = "1jpvcxq0xr3z50fdg828in1icgz8cfcy3sc04r85vqhkmjdg4fc1"; + }; + format = "wheel"; + doCheck = false; + buildInputs = []; + checkInputs = []; + nativeBuildInputs = []; + propagatedBuildInputs = []; + }; + "packaging" = super.buildPythonPackage rec { + pname = "packaging"; + version = "25.0"; + src = fetchurl { + url = "https://files.pythonhosted.org/packages/20/12/38679034af332785aac8774540895e234f4d07f7545804097de4b666afd8/packaging-25.0-py3-none-any.whl"; + sha256 = "1154669ydc149dash6yaf3n2byqiqvajf8isdc282xgin7r2wmr9"; + }; + format = "wheel"; + doCheck = false; + buildInputs = []; + checkInputs = []; + nativeBuildInputs = []; + propagatedBuildInputs = []; + }; + "platformdirs" = super.buildPythonPackage rec { + pname = "platformdirs"; + version = "4.3.8"; + src = fetchurl { + url = "https://files.pythonhosted.org/packages/fe/39/979e8e21520d4e47a0bbe349e2713c0aac6f3d853d0e5b34d76206c439aa/platformdirs-4.3.8-py3-none-any.whl"; + sha256 = "1d1r45a16g6wx913glib4hsrbzbw2npllkv0hlk9w5xigsxmjw7z"; + }; + format = "wheel"; + doCheck = false; + buildInputs = []; + checkInputs = []; + nativeBuildInputs = []; + propagatedBuildInputs = []; + }; + "pycountry" = super.buildPythonPackage rec { + pname = "pycountry"; + version = "24.6.1"; + src = fetchurl { + url = "https://files.pythonhosted.org/packages/b1/ec/1fb891d8a2660716aadb2143235481d15ed1cbfe3ad669194690b0604492/pycountry-24.6.1-py3-none-any.whl"; + sha256 = "0vz0dhfkbjld5jagh9wafwy27k5d83bmd5fkxy74y8fp3hwzp97i"; + }; + format = "wheel"; + doCheck = false; + buildInputs = []; + checkInputs = []; + nativeBuildInputs = []; + propagatedBuildInputs = []; + }; + "pylast" = super.buildPythonPackage rec { + pname = "pylast"; + version = "5.5.0"; + src = fetchurl { + url = "https://files.pythonhosted.org/packages/ab/d6/43ce13181676c412796e82b1582409f8a0d580ca300bbfba48e845b65bbc/pylast-5.5.0-py3-none-any.whl"; + sha256 = "1ghvcd6y6k30942rc9pfzdvm5spywis7rqicwilbhwggd6zmv2x2"; + }; + format = "wheel"; + doCheck = false; + buildInputs = []; + checkInputs = []; + nativeBuildInputs = []; + propagatedBuildInputs = [ + self."httpx" + ]; + }; + "python-dateutil" = super.buildPythonPackage rec { + pname = "python-dateutil"; + version = "2.9.0.post0"; + src = fetchurl { + url = "https://files.pythonhosted.org/packages/ec/57/56b9bcc3c9c6a792fcbaf139543cee77261f3651ca9da0c93f5c1221264b/python_dateutil-2.9.0.post0-py2.py3-none-any.whl"; + sha256 = "09q48zvsbagfa3w87zkd2c5xl54wmb9rf2hlr20j4a5fzxxvrcm8"; + }; + format = "wheel"; + doCheck = false; + buildInputs = []; + checkInputs = []; + nativeBuildInputs = []; + propagatedBuildInputs = [ + self."six" + ]; + }; + "python3-discogs-client" = super.buildPythonPackage rec { + pname = "python3-discogs-client"; + version = "2.8"; + src = fetchurl { + url = "https://files.pythonhosted.org/packages/fa/6d/bb7100ca68b91eb15efe3a7c8309dde2702ea51fedffbb1fef422dda0799/python3_discogs_client-2.8-py3-none-any.whl"; + sha256 = "1cxiq4fz3r3y1q3phxfrjjmgy1zhll7nhph132wgwfm77mhkmmk0"; + }; + format = "wheel"; + doCheck = false; + buildInputs = []; + checkInputs = []; + nativeBuildInputs = []; + propagatedBuildInputs = [ + self."oauthlib" + self."python-dateutil" + self."requests" + ]; + }; + "pyyaml" = super.buildPythonPackage rec { + pname = "pyyaml"; + version = "6.0.2"; + src = fetchurl { + url = "https://files.pythonhosted.org/packages/54/ed/79a089b6be93607fa5cdaedf301d7dfb23af5f25c398d5ead2525b063e17/pyyaml-6.0.2.tar.gz"; + sha256 = "0gmwggzm0j0iprx074g5hah91y2f68sfhhldq0f8crddj7ndk16m"; + }; + format = "setuptools"; + doCheck = false; + buildInputs = []; + checkInputs = []; + nativeBuildInputs = []; + propagatedBuildInputs = []; + }; + "requests" = super.buildPythonPackage rec { + pname = "requests"; + version = "2.32.3"; + src = fetchurl { + url = "https://files.pythonhosted.org/packages/f9/9b/335f9764261e915ed497fcdeb11df5dfd6f7bf257d4a6a2a686d80da4d54/requests-2.32.3-py3-none-any.whl"; + sha256 = "1inwsrhx0m16q0wa1z6dfm8i8xkrfns73xm25arcwwy70gz1qxkh"; + }; + format = "wheel"; + doCheck = false; + buildInputs = []; + checkInputs = []; + nativeBuildInputs = []; + propagatedBuildInputs = [ + self."certifi" + self."charset-normalizer" + self."idna" + self."urllib3" + ]; + }; + "six" = super.buildPythonPackage rec { + pname = "six"; + version = "1.17.0"; + src = fetchurl { + url = "https://files.pythonhosted.org/packages/b7/ce/149a00dd41f10bc29e5921b496af8b574d8413afcd5e30dfa0ed46c2cc5e/six-1.17.0-py2.py3-none-any.whl"; + sha256 = "0x1jdic712dylbnyiqdj4xyxrlx0gaacynmbmkfiym4hxn8z68a7"; + }; + format = "wheel"; + doCheck = false; + buildInputs = []; + checkInputs = []; + nativeBuildInputs = []; + propagatedBuildInputs = []; + }; + "sniffio" = super.buildPythonPackage rec { + pname = "sniffio"; + version = "1.3.1"; + src = fetchurl { + url = "https://files.pythonhosted.org/packages/e9/44/75a9c9421471a6c4805dbf2356f7c181a29c1879239abab1ea2cc8f38b40/sniffio-1.3.1-py3-none-any.whl"; + sha256 = "18i50l85yppn9w1ily8m342yd577h0bg8y24hkfzvq7is4ca8v9g"; + }; + format = "wheel"; + doCheck = false; + buildInputs = []; + checkInputs = []; + nativeBuildInputs = []; + propagatedBuildInputs = []; + }; + "soupsieve" = super.buildPythonPackage rec { + pname = "soupsieve"; + version = "2.7"; + src = fetchurl { + url = "https://files.pythonhosted.org/packages/e7/9c/0e6afc12c269578be5c0c1c9f4b49a8d32770a080260c333ac04cc1c832d/soupsieve-2.7-py3-none-any.whl"; + sha256 = "1i1hbnnpkkmdgirpz29f5j91w1vj1cr8i09fq6ycxwgs3xfcqq3f"; + }; + format = "wheel"; + doCheck = false; + buildInputs = []; + checkInputs = []; + nativeBuildInputs = []; + propagatedBuildInputs = []; + }; + "typing-extensions" = super.buildPythonPackage rec { + pname = "typing-extensions"; + version = "4.13.2"; + src = fetchurl { + url = "https://files.pythonhosted.org/packages/8b/54/b1ae86c0973cc6f0210b53d508ca3641fb6d0c56823f288d108bc7ab3cc8/typing_extensions-4.13.2-py3-none-any.whl"; + sha256 = "134g82hs8v6krn6f550n77fbpbawflhsmgp2sgjw7zj99g0fffd4"; + }; + format = "wheel"; + doCheck = false; + buildInputs = []; + checkInputs = []; + nativeBuildInputs = []; + propagatedBuildInputs = []; + }; + "unidecode" = super.buildPythonPackage rec { + pname = "unidecode"; + version = "1.4.0"; + src = fetchurl { + url = "https://files.pythonhosted.org/packages/8f/b7/559f59d57d18b44c6d1250d2eeaa676e028b9c527431f5d0736478a73ba1/Unidecode-1.4.0-py3-none-any.whl"; + sha256 = "0880gw9jma2gzvm2g27knnkq1d6x8pihc11707axhfjh4xn61iy3"; + }; + format = "wheel"; + doCheck = false; + buildInputs = []; + checkInputs = []; + nativeBuildInputs = []; + propagatedBuildInputs = []; + }; + "urllib3" = super.buildPythonPackage rec { + pname = "urllib3"; + version = "2.4.0"; + src = fetchurl { + url = "https://files.pythonhosted.org/packages/6b/11/cc635220681e93a0183390e26485430ca2c7b5f9d33b15c74c2861cb8091/urllib3-2.4.0-py3-none-any.whl"; + sha256 = "04z8sxfmrpzir7562cy0354mhslm2mjadm02qw00j2ln9186c5jf"; + }; + format = "wheel"; + doCheck = false; + buildInputs = []; + checkInputs = []; + nativeBuildInputs = []; + propagatedBuildInputs = []; + }; +}