diff --git a/pkgs/applications/audio/sublime-music/default.nix b/pkgs/applications/audio/sublime-music/default.nix new file mode 100644 index 00000000000..515a653d6bc --- /dev/null +++ b/pkgs/applications/audio/sublime-music/default.nix @@ -0,0 +1,60 @@ +{ lib, python3Packages, gobject-introspection, gtk3, pango, wrapGAppsHook + +, chromecastSupport ? false +, serverSupport ? false +, keyringSupport ? true +, notifySupport ? true, libnotify +, networkSupport ? true, networkmanager +}: + +python3Packages.buildPythonApplication rec { + pname = "sublime-music"; + version = "0.11.0"; + + src = python3Packages.fetchPypi { + inherit pname version; + sha256 = "1rnjc8pjfaq67mq10gy939g77azc80lxf77s9nsaxds4q5j1yrl2"; + }; + + nativeBuildInputs = [ + gobject-introspection + python3Packages.setuptools + wrapGAppsHook + ]; + + buildInputs = [ + gtk3 + pango + ] + ++ lib.optional notifySupport libnotify + ++ lib.optional networkSupport networkmanager + ; + + propagatedBuildInputs = with python3Packages; [ + dataclasses-json + deepdiff + fuzzywuzzy + mpv + peewee + pygobject3 + python-Levenshtein + python-dateutil + requests + semver + ] + ++ lib.optional chromecastSupport PyChromecast + ++ lib.optional keyringSupport keyring + ++ lib.optional serverSupport bottle + ; + + # hook for gobject-introspection doesn't like strictDeps + # https://github.com/NixOS/nixpkgs/issues/56943 + strictDeps = false; + + meta = with lib; { + description = "GTK3 Subsonic/Airsonic client"; + homepage = "https://sublimemusic.app/"; + license = licenses.gpl3Plus; + maintainers = with maintainers; [ albakham ]; + }; +} diff --git a/pkgs/development/python-modules/dataclasses-json/default.nix b/pkgs/development/python-modules/dataclasses-json/default.nix new file mode 100644 index 00000000000..76de351d05c --- /dev/null +++ b/pkgs/development/python-modules/dataclasses-json/default.nix @@ -0,0 +1,30 @@ +{ lib +, buildPythonPackage +, fetchPypi +, stringcase +, typing-inspect +, marshmallow-enum +}: + +buildPythonPackage rec { + pname = "dataclasses-json"; + version = "0.5.1"; + + src = fetchPypi { + inherit pname version; + sha256 = "0nkgp4pd7j7ydrciiix4x0w56l5w6qvj2vgxpwj42h4f2wdv2f3f"; + }; + + propagatedBuildInputs = [ + stringcase + typing-inspect + marshmallow-enum + ]; + + meta = with lib; { + description = "Simple API for encoding and decoding dataclasses to and from JSON"; + homepage = "https://github.com/lidatong/dataclasses-json"; + license = licenses.mit; + maintainers = with maintainers; [ albakham ]; + }; +} diff --git a/pkgs/development/python-modules/typing-inspect/default.nix b/pkgs/development/python-modules/typing-inspect/default.nix new file mode 100644 index 00000000000..849b56d2d0c --- /dev/null +++ b/pkgs/development/python-modules/typing-inspect/default.nix @@ -0,0 +1,29 @@ +{ lib +, buildPythonPackage +, fetchPypi +, typing-extensions +, mypy-extensions +}: + +buildPythonPackage rec { + pname = "typing-inspect"; + version = "0.6.0"; + + src = fetchPypi { + inherit version; + pname = "typing_inspect"; + sha256 = "1dzs9a1pr23dhbvmnvms2jv7l7jk26023g5ysf0zvnq8b791s6wg"; + }; + + propagatedBuildInputs = [ + typing-extensions + mypy-extensions + ]; + + meta = with lib; { + description = "Runtime inspection utilities for Python typing module"; + homepage = "https://github.com/ilevkivskyi/typing_inspect"; + license = licenses.mit; + maintainers = with maintainers; [ albakham ]; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 6427bb4bbc2..703beae2904 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -22633,6 +22633,8 @@ in pythonBindings = true; }); + sublime-music = callPackage ../applications/audio/sublime-music { }; + subunit = callPackage ../development/libraries/subunit { }; surf = callPackage ../applications/networking/browsers/surf { gtk = gtk2; }; diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index 6a5cfebd51f..b8059a6723c 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -2158,6 +2158,8 @@ in { dataclasses = callPackage ../development/python-modules/dataclasses { }; + dataclasses-json = callPackage ../development/python-modules/dataclasses-json { }; + debian = callPackage ../development/python-modules/debian {}; defusedxml = callPackage ../development/python-modules/defusedxml {}; @@ -5909,6 +5911,8 @@ in { typing-extensions = callPackage ../development/python-modules/typing-extensions { }; + typing-inspect = callPackage ../development/python-modules/typing-inspect { }; + typeguard = callPackage ../development/python-modules/typeguard { }; typesentry = callPackage ../development/python-modules/typesentry { };