From d5ace82918217289ec4be5ce856bcab8c0452acb Mon Sep 17 00:00:00 2001 From: geekiot Date: Wed, 29 Oct 2025 22:44:18 +0500 Subject: [PATCH] Refactor code --- flake.lock | 154 +++++++++++++++++++++++++++++++++++++++++++++++ flake.nix | 81 +++++++++++++++++++++++++ requirements.txt | 2 +- 3 files changed, 236 insertions(+), 1 deletion(-) create mode 100644 flake.lock create mode 100644 flake.nix diff --git a/flake.lock b/flake.lock new file mode 100644 index 0000000..2cf7a5d --- /dev/null +++ b/flake.lock @@ -0,0 +1,154 @@ +{ + "nodes": { + "devshell": { + "inputs": { + "nixpkgs": [ + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1741473158, + "narHash": "sha256-kWNaq6wQUbUMlPgw8Y+9/9wP0F8SHkjy24/mN3UAppg=", + "owner": "numtide", + "repo": "devshell", + "rev": "7c9e793ebe66bcba8292989a68c0419b737a22a0", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "devshell", + "type": "github" + } + }, + "flake-utils": { + "inputs": { + "systems": "systems" + }, + "locked": { + "lastModified": 1731533236, + "narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "11707dc2f618dd54ca8739b309ec4fc024de578b", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, + "nixpkgs": { + "locked": { + "lastModified": 1760038930, + "narHash": "sha256-Oncbh0UmHjSlxO7ErQDM3KM0A5/Znfofj2BSzlHLeVw=", + "owner": "nixos", + "repo": "nixpkgs", + "rev": "0b4defa2584313f3b781240b29d61f6f9f7e0df3", + "type": "github" + }, + "original": { + "owner": "nixos", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "pyproject-build-systems": { + "inputs": { + "nixpkgs": [ + "nixpkgs" + ], + "pyproject-nix": [ + "pyproject-nix" + ], + "uv2nix": [ + "uv2nix" + ] + }, + "locked": { + "lastModified": 1759113590, + "narHash": "sha256-fgxP2RCN4cg0jYiMYoETYc7TZ2JjgyvJa2y9l8oSUFE=", + "owner": "pyproject-nix", + "repo": "build-system-pkgs", + "rev": "dbfc0483b5952c6b86e36f8b3afeb9dde30ea4b5", + "type": "github" + }, + "original": { + "owner": "pyproject-nix", + "repo": "build-system-pkgs", + "type": "github" + } + }, + "pyproject-nix": { + "inputs": { + "nixpkgs": [ + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1759739877, + "narHash": "sha256-XfcxM4nzSuuRmFGiy/MhGwYf9EennQ2+0jjR2aJqtKE=", + "owner": "pyproject-nix", + "repo": "pyproject.nix", + "rev": "966e0961f9670f847439ba90dc25ffaa112d8803", + "type": "github" + }, + "original": { + "owner": "pyproject-nix", + "repo": "pyproject.nix", + "type": "github" + } + }, + "root": { + "inputs": { + "devshell": "devshell", + "flake-utils": "flake-utils", + "nixpkgs": "nixpkgs", + "pyproject-build-systems": "pyproject-build-systems", + "pyproject-nix": "pyproject-nix", + "uv2nix": "uv2nix" + } + }, + "systems": { + "locked": { + "lastModified": 1681028828, + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", + "owner": "nix-systems", + "repo": "default", + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default", + "type": "github" + } + }, + "uv2nix": { + "inputs": { + "nixpkgs": [ + "nixpkgs" + ], + "pyproject-nix": [ + "pyproject-nix" + ] + }, + "locked": { + "lastModified": 1760161183, + "narHash": "sha256-1USClOZthg+pGJp+p3ouVtTMO+ZY8Cd0+FbsNN/RpO8=", + "owner": "pyproject-nix", + "repo": "uv2nix", + "rev": "b6ed0901aec29583532abe65117b18d86a49b617", + "type": "github" + }, + "original": { + "owner": "pyproject-nix", + "repo": "uv2nix", + "type": "github" + } + } + }, + "root": "root", + "version": 7 +} diff --git a/flake.nix b/flake.nix new file mode 100644 index 0000000..832e100 --- /dev/null +++ b/flake.nix @@ -0,0 +1,81 @@ +{ + description = "Add your description here"; + + inputs = { + nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable"; + + flake-utils.url = "github:numtide/flake-utils"; + + devshell = { + url = "github:numtide/devshell"; + inputs.nixpkgs.follows = "nixpkgs"; + }; + + pyproject-nix = { + url = "github:pyproject-nix/pyproject.nix"; + inputs.nixpkgs.follows = "nixpkgs"; + }; + + uv2nix = { + url = "github:pyproject-nix/uv2nix"; + inputs.nixpkgs.follows = "nixpkgs"; + inputs.pyproject-nix.follows = "pyproject-nix"; + }; + + pyproject-build-systems = { + url = "github:pyproject-nix/build-system-pkgs"; + inputs.nixpkgs.follows = "nixpkgs"; + inputs.pyproject-nix.follows = "pyproject-nix"; + inputs.uv2nix.follows = "uv2nix"; + }; + }; + + outputs = + inputs@{ + nixpkgs, + flake-utils, + ... + }: + flake-utils.lib.eachDefaultSystem ( + system: + let + python = pkgs.python313; + + workspaceRoot = ./.; + venvName = ".venv"; + + pkgs = import nixpkgs { + inherit system; + config.allowUnfree = false; + }; + + workspace = inputs.uv2nix.lib.workspace.loadWorkspace { inherit workspaceRoot; }; + + overlay = workspace.mkPyprojectOverlay { + sourcePreference = "wheel"; + }; + + baseSet = pkgs.callPackage inputs.pyproject-nix.build.packages { + inherit python; + }; + + pythonSet = baseSet.overrideScope ( + pkgs.lib.composeManyExtensions [ + inputs.pyproject-build-systems.overlays.default + overlay + ] + ); + + venv = pythonSet.mkVirtualEnv "${venvName}" workspace.deps.default; + in + { + devShells.default = pkgs.mkShell { + packages = [ + venv + python + pkgs.uv + ]; + }; + } + ); +} diff --git a/requirements.txt b/requirements.txt index ad96991..4486923 100644 --- a/requirements.txt +++ b/requirements.txt @@ -2,6 +2,6 @@ flake8==5.0.4 flake8-docstrings==1.7.0 pep8-naming==0.13.3 pycodestyle==2.9.1 -pygame==2.5.2 +pygame pytest==7.1.3 pytest-timeout==2.1.0