diff --git a/flake.lock b/flake.lock new file mode 100644 index 0000000..37e6b6d --- /dev/null +++ b/flake.lock @@ -0,0 +1,175 @@ +{ + "nodes": { + "flake-utils": { + "inputs": { + "systems": "systems" + }, + "locked": { + "lastModified": 1710146030, + "narHash": "sha256-SZ5L6eA7HJ/nmkzGG7/ISclqe6oZdOZTNoesiInkXPQ=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "b1d9ab70662946ef0850d488da1c9019f3a9752a", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, + "flake-utils_2": { + "inputs": { + "systems": "systems_2" + }, + "locked": { + "lastModified": 1710146030, + "narHash": "sha256-SZ5L6eA7HJ/nmkzGG7/ISclqe6oZdOZTNoesiInkXPQ=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "b1d9ab70662946ef0850d488da1c9019f3a9752a", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, + "nix-github-actions": { + "inputs": { + "nixpkgs": [ + "poetry2nix", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1703863825, + "narHash": "sha256-rXwqjtwiGKJheXB43ybM8NwWB8rO2dSRrEqes0S7F5Y=", + "owner": "nix-community", + "repo": "nix-github-actions", + "rev": "5163432afc817cf8bd1f031418d1869e4c9d5547", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "nix-github-actions", + "type": "github" + } + }, + "nixpkgs": { + "locked": { + "lastModified": 1715142527, + "narHash": "sha256-8OCDTDZzmkhoJ0HzZd/wkUfdAES9e0Jsp3qb5sM/Jys=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "0efaf283bd6e3b9ecf6e961d2305bf2e1a9f49c9", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-unstable-small", + "repo": "nixpkgs", + "type": "github" + } + }, + "poetry2nix": { + "inputs": { + "flake-utils": "flake-utils_2", + "nix-github-actions": "nix-github-actions", + "nixpkgs": [ + "nixpkgs" + ], + "systems": "systems_3", + "treefmt-nix": "treefmt-nix" + }, + "locked": { + "lastModified": 1715180526, + "narHash": "sha256-YMJ8vKFj9vhUD9INYSNzmf+7sh72oXeleK2TvhysY1I=", + "owner": "nix-community", + "repo": "poetry2nix", + "rev": "3df9d21b3b8b91a930c82db0f33ae44066589a56", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "poetry2nix", + "type": "github" + } + }, + "root": { + "inputs": { + "flake-utils": "flake-utils", + "nixpkgs": "nixpkgs", + "poetry2nix": "poetry2nix" + } + }, + "systems": { + "locked": { + "lastModified": 1681028828, + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", + "owner": "nix-systems", + "repo": "default", + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default", + "type": "github" + } + }, + "systems_2": { + "locked": { + "lastModified": 1681028828, + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", + "owner": "nix-systems", + "repo": "default", + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default", + "type": "github" + } + }, + "systems_3": { + "locked": { + "lastModified": 1681028828, + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", + "owner": "nix-systems", + "repo": "default", + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", + "type": "github" + }, + "original": { + "id": "systems", + "type": "indirect" + } + }, + "treefmt-nix": { + "inputs": { + "nixpkgs": [ + "poetry2nix", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1714058656, + "narHash": "sha256-Qv4RBm4LKuO4fNOfx9wl40W2rBbv5u5m+whxRYUMiaA=", + "owner": "numtide", + "repo": "treefmt-nix", + "rev": "c6aaf729f34a36c445618580a9f95a48f5e4e03f", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "treefmt-nix", + "type": "github" + } + } + }, + "root": "root", + "version": 7 +} diff --git a/flake.nix b/flake.nix new file mode 100644 index 0000000..ab98d8f --- /dev/null +++ b/flake.nix @@ -0,0 +1,94 @@ +{ + description = "Application packaged using poetry2nix"; + + inputs = { + flake-utils.url = "github:numtide/flake-utils"; + nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable-small"; + poetry2nix = { + url = "github:nix-community/poetry2nix"; + inputs.nixpkgs.follows = "nixpkgs"; + }; + }; + + outputs = { self, nixpkgs, flake-utils, poetry2nix }: + flake-utils.lib.eachDefaultSystem (system: + let + # see https://github.com/nix-community/poetry2nix/tree/master#api for more functions and examples. + pkgs = nixpkgs.legacyPackages.${system}; + inherit (poetry2nix.lib.mkPoetry2Nix { inherit pkgs; }) mkPoetryApplication; + in + { + packages = { + myapp = mkPoetryApplication { projectDir = ./.; }; + default = self.packages.${system}.myapp; + }; + + # Shell for app dependencies. + # + # nix develop + # + # Use this shell for developing your app. + devShells.default = pkgs.mkShell { + packages = with pkgs; [ + python311Packages.torch-bin + python311Packages.torchaudio-bin + python311Packages.progressbar + python311Packages.einops + python311Packages.librosa + python311Packages.unidecode + python311Packages.inflect + python311Packages.rotary-embedding-torch + python311Packages.safetensors + python311Packages.transformers + (python311Packages.buildPythonPackage rec { + pname = "tortoise-tts"; + version = "3.0.0"; + doCheck = false; + buildInputs = [ + python311Packages.pip + python311Packages.tokenizers + python311Packages.librosa + python311Packages.unidecode + python311Packages.einops + python311Packages.progressbar + python311Packages.inflect + python311Packages.rotary-embedding-torch + python311Packages.safetensors + (python311Packages.buildPythonPackage rec { + doCheck = false; + pname = "transformers"; + version = "4.31.0"; + buildInputs = [ + python311Packages.tokenizers # Version might be wrong + python311Packages.pip + python311Packages.tqdm + python311Packages.safetensors + ]; + src = python311Packages.fetchPypi { + inherit pname version; + sha256 = "4302fba920a1c24d3a429a29efff6a63eac03f3f3cf55b55927fc795d01cb273"; + }; + }) + ]; + src = python311Packages.fetchPypi { + inherit pname version; + sha256 = "8684aac23976ffa9813a4ec074b6bff0a348ce82a1923483e57d5d4e27dd21d6"; + }; + }) + ]; + inputsFrom = [ + pkgs.cudaPackages.libcusparse + self.packages.${system}.myapp + ]; + }; + + # Shell for poetry. + # + # nix develop .#poetry + # + # Use this shell for changes to pyproject.toml and poetry.lock. + devShells.poetry = pkgs.mkShell { + packages = [ pkgs.poetry ]; + }; + }); +} diff --git a/poetry.lock b/poetry.lock new file mode 100644 index 0000000..24cf95d --- /dev/null +++ b/poetry.lock @@ -0,0 +1,7 @@ +# This file is automatically @generated by Poetry 1.6.1 and should not be changed by hand. +package = [] + +[metadata] +lock-version = "2.0" +python-versions = "^3.11" +content-hash = "81b2fa642d7f2d1219cf80112ace12d689d053d81be7f7addb98144d56fc0fb2" diff --git a/pyproject.toml b/pyproject.toml new file mode 100644 index 0000000..842318f --- /dev/null +++ b/pyproject.toml @@ -0,0 +1,15 @@ +[tool.poetry] +name = "app" +version = "0.1.0" +description = "" +authors = ["Your Name "] +license = "MIT" +readme = "README.md" + +[tool.poetry.dependencies] +python = "^3.11" + + +[build-system] +requires = ["poetry-core"] +build-backend = "poetry.core.masonry.api"