flake.nix 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899
  1. {
  2. description = "A flake for building spendpoint";
  3. inputs = {
  4. nixpkgs.url = github:nixos/nixpkgs/nixos-unstable;
  5. flake-utils.url = github:numtide/flake-utils;
  6. };
  7. outputs = { self, nixpkgs, flake-utils }:
  8. flake-utils.lib.eachDefaultSystem (system:
  9. let
  10. pkgs = nixpkgs.legacyPackages.${system};
  11. arklog = pkgs.python3Packages.buildPythonPackage rec {
  12. pname = "arklog";
  13. version = "0.5.1";
  14. format = "pyproject";
  15. src = pkgs.python3Packages.fetchPypi {
  16. inherit pname version;
  17. sha256 = "334059a336e400cafbc9a1c382e747bee2c7660115c2d0612aa725beb845acd4";
  18. };
  19. propagatedBuildInputs = with pkgs.python3Packages; [
  20. setuptools
  21. flit-core
  22. toml
  23. pyaml
  24. ];
  25. doCheck = false;
  26. meta = {
  27. homepage = "https://git.rys.one/arrys/arklog";
  28. description = "Custom python logging formatter with color output.";
  29. };
  30. };
  31. in {
  32. packages = rec {
  33. spendpoint = pkgs.python3Packages.buildPythonPackage {
  34. pname = "spendpoint";
  35. version = "0.4.0";
  36. format = "pyproject";
  37. src = ./.;
  38. nativeBuildInputs = [];
  39. propagatedBuildInputs = with pkgs.python3Packages; [
  40. #setuptools
  41. flit-core
  42. toml
  43. arklog
  44. rdflib
  45. pandas
  46. dacite
  47. fastapi
  48. pyarrow
  49. requests
  50. starlette
  51. python-magic
  52. uvicorn
  53. ];
  54. # checkInputs = with pkgs.python3Packages; [
  55. # pytest
  56. # sparqlwrapper
  57. # ];
  58. # buildInputs = with pkgs.python3Packages; [
  59. # sphinx
  60. # tox
  61. # pip
  62. # flit
  63. # twine
  64. # numpy
  65. # invoke
  66. # jinja2
  67. # flake8
  68. # coverage
  69. # ];
  70. };
  71. # https://discourse.nixos.org/t/basic-flake-run-existing-python-bash-script/19886/2
  72. server = let python = pkgs.python3.withPackages (ps: with ps; [ spendpoint ]); in pkgs.writeScriptBin "run-python" ''
  73. ${python}/bin/python -m spendpoint
  74. '';
  75. launchScript = let python = pkgs.python3.withPackages (ps: with ps; [ spendpoint ]); in pkgs.writeTextFile {
  76. name = "run.sh";
  77. text = ''${python}/bin/python -m spendpoint'';
  78. executable = true;
  79. };
  80. default = spendpoint;
  81. };
  82. apps = rec {
  83. # App that starts when invoking `nix run .#spendpoint`
  84. spendpoint = {
  85. type = "app";
  86. program = "${self.packages.${system}.launchScript}";
  87. };
  88. # App that starts when invoking `nix run .`
  89. default=spendpoint;
  90. };
  91. });
  92. nixConfig.bash-prompt-prefix = "\\e\[94;1m[spendpoint]\\e\[m ";
  93. }