From 9871b10d78080d1de05aff2a0a97f68f0c069ea3 Mon Sep 17 00:00:00 2001
From: ByteSudoer <ByteSudoer@users.noreply.github.com>
Date: Wed, 3 Jul 2024 11:40:42 +0100
Subject: [PATCH 1/6] inflate64: init at 1.0.0

---
 .../python-modules/inflate64/default.nix      | 34 +++++++++++++++++++
 1 file changed, 34 insertions(+)
 create mode 100644 pkgs/development/python-modules/inflate64/default.nix

diff --git a/pkgs/development/python-modules/inflate64/default.nix b/pkgs/development/python-modules/inflate64/default.nix
new file mode 100644
index 0000000000000..0012b0719e49e
--- /dev/null
+++ b/pkgs/development/python-modules/inflate64/default.nix
@@ -0,0 +1,34 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+
+, setuptools
+, setuptools-scm
+}:
+
+buildPythonPackage rec {
+  pname = "inflate64";
+  version = "1.0.0";
+
+  format = "pyproject";
+
+  src = fetchPypi {
+    inherit pname version;
+
+    hash = "sha256-MniCe4A88Aah3yUfPhM3TH0m23eeWjMynMEXibgEvC0=";
+  };
+  build-system = [
+    setuptools
+    setuptools-scm
+  ];
+
+  pythonImportsCheck = [ "inflate64" ];
+
+  meta = with lib; {
+    homepage = "https://codeberg.org/miurahr/inflate64";
+    description = "Compress and decompress with Enhanced Deflate compression algorithm";
+    license = licenses.gpl2Plus;
+    maintainers = with maintainers; [ ByteSudoer ];
+  };
+
+}

From c72c175ea863b3a0259bb62d084bb96ee589f87b Mon Sep 17 00:00:00 2001
From: ByteSudoer <ByteSudoer@users.noreply.github.com>
Date: Wed, 3 Jul 2024 11:41:28 +0100
Subject: [PATCH 2/6] multivolumefile: init at 0.2.3

---
 .../multivolumefile/default.nix               | 34 +++++++++++++++++++
 1 file changed, 34 insertions(+)
 create mode 100644 pkgs/development/python-modules/multivolumefile/default.nix

diff --git a/pkgs/development/python-modules/multivolumefile/default.nix b/pkgs/development/python-modules/multivolumefile/default.nix
new file mode 100644
index 0000000000000..c2309aa7cef44
--- /dev/null
+++ b/pkgs/development/python-modules/multivolumefile/default.nix
@@ -0,0 +1,34 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, setuptools
+, setuptools-scm
+}:
+
+buildPythonPackage rec {
+  pname = "multivolumefile";
+  version = "0.2.3";
+
+  format = "pyproject";
+
+  src = fetchPypi {
+    inherit pname version;
+    hash = "sha256-oGSNCq+8luWRmNXBfprK1+tTGr6lEDXQjOgGDcrXCdY=";
+  };
+
+  build-system = [
+    setuptools
+    setuptools-scm
+  ];
+
+  pythonImportsCheck = [ "multivolumefile" ];
+
+  doCheck = true;
+
+  meta = with lib; {
+    homepage = "https://codeberg.org/miurahr/multivolume";
+    description = "Library to provide a file-object wrapping multiple files as virtually like as a single file";
+    license = licenses.gpl2Plus;
+    maintainers = with maintainers; [ ByteSudoer ];
+  };
+}

From 54163510642a1812fd0e1cec0b0e6d1100b8738c Mon Sep 17 00:00:00 2001
From: ByteSudoer <ByteSudoer@users.noreply.github.com>
Date: Wed, 3 Jul 2024 11:43:22 +0100
Subject: [PATCH 3/6] pybcj: init at 1.0.2

---
 .../python-modules/pybcj/default.nix          | 35 +++++++++++++++++++
 1 file changed, 35 insertions(+)
 create mode 100644 pkgs/development/python-modules/pybcj/default.nix

diff --git a/pkgs/development/python-modules/pybcj/default.nix b/pkgs/development/python-modules/pybcj/default.nix
new file mode 100644
index 0000000000000..c28c02847e819
--- /dev/null
+++ b/pkgs/development/python-modules/pybcj/default.nix
@@ -0,0 +1,35 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, setuptools
+, setuptools-scm
+
+, pytest
+}:
+
+buildPythonPackage rec {
+  pname = "pybcj";
+  version = "1.0.2";
+  format = "pyproject";
+
+  src = fetchPypi {
+    inherit pname version;
+    hash = "sha256-x/W+9/R3I8U0ION3vGTSVThDvui8rF8K0HarFSR4ABg=";
+  };
+
+
+  build-system = [
+    setuptools
+    setuptools-scm
+  ];
+
+
+  pythonImportsCheck = [ "bcj" "lzma" ];
+
+  meta = with lib; {
+    homepage = "https://codeberg.org/miurahr/pybcj";
+    description = "BCJ(Branch-Call-Jump) filter for python";
+    license = licenses.gpl2Plus;
+    maintainers = with maintainers; [ ByteSudoer ];
+  };
+}

From 68888a7be317f378fb83aa9094b2bbddd03cb103 Mon Sep 17 00:00:00 2001
From: ByteSudoer <ByteSudoer@users.noreply.github.com>
Date: Wed, 3 Jul 2024 11:44:04 +0100
Subject: [PATCH 4/6] pyppmd: init at 1.1.0

---
 .../python-modules/pyppmd/default.nix         | 36 +++++++++++++++++++
 1 file changed, 36 insertions(+)
 create mode 100644 pkgs/development/python-modules/pyppmd/default.nix

diff --git a/pkgs/development/python-modules/pyppmd/default.nix b/pkgs/development/python-modules/pyppmd/default.nix
new file mode 100644
index 0000000000000..e802173140d58
--- /dev/null
+++ b/pkgs/development/python-modules/pyppmd/default.nix
@@ -0,0 +1,36 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+
+, setuptools
+, setuptools-scm
+}:
+
+buildPythonPackage rec{
+  pname = "pyppmd";
+  version = "1.1.0";
+
+  format = "pyproject";
+
+  src = fetchPypi {
+    inherit pname version;
+    hash = "sha256-HTjOLkt+uEtTvIpSOAuU9mumw5MouIALMMK1vzFpOXM=";
+  };
+
+
+  build-system = [
+    setuptools
+    setuptools-scm
+  ];
+
+
+  pythonImportsCheck = [ "pyppmd" ];
+
+  meta = with lib; {
+    homepage = "https://codeberg.org/miurahr/pyppmd";
+    description = "PPMd compression/decompression library";
+    license = licenses.gpl2Plus;
+    maintainers = with maintainers; [ ByteSudoer ];
+  };
+
+}

From ff09010af0e58b8ded712d642b20e7268e9311db Mon Sep 17 00:00:00 2001
From: ByteSudoer <ByteSudoer@users.noreply.github.com>
Date: Wed, 3 Jul 2024 11:44:34 +0100
Subject: [PATCH 5/6] pyzstd: init at 0.16.0

---
 .../python-modules/pyzstd/default.nix         | 34 +++++++++++++++++++
 1 file changed, 34 insertions(+)
 create mode 100644 pkgs/development/python-modules/pyzstd/default.nix

diff --git a/pkgs/development/python-modules/pyzstd/default.nix b/pkgs/development/python-modules/pyzstd/default.nix
new file mode 100644
index 0000000000000..63a7ca71c2c09
--- /dev/null
+++ b/pkgs/development/python-modules/pyzstd/default.nix
@@ -0,0 +1,34 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+
+, setuptools
+}:
+
+buildPythonPackage rec {
+  pname = "pyzstd";
+  version = "0.16.0";
+
+  format = "pyproject";
+
+  src = fetchFromGitHub {
+    repo = "pyzstd";
+    owner = "Rogdham";
+    rev = "${version}";
+    fetchSubmodules = true;
+    hash = "sha256-//SeXs65Qcrbdyj3Ilk8XYUIgpwTej0Eaxv711g+3m8=";
+  };
+
+  build-system = [
+    setuptools
+  ];
+
+  pythonImportsCheck = [ "pyzstd" ];
+
+  meta = with lib; {
+    homepage = "https://github.com/Rogdham/pyzstd";
+    description = "Python bindings to Zstandard (zstd) compression library";
+    license = licenses.bsd3;
+    maintainers = with maintainers; [ ByteSudoer ];
+  };
+}

From 1ef3d6fd9f94310facc2f5a7bdff76416903afb3 Mon Sep 17 00:00:00 2001
From: ByteSudoer <ByteSudoer@users.noreply.github.com>
Date: Wed, 3 Jul 2024 14:39:16 +0100
Subject: [PATCH 6/6] py7zr: init at 0.21.1

---
 .../python-modules/inflate64/default.nix      |  8 +--
 .../python-modules/py7zr/default.nix          | 56 +++++++++++++++++++
 pkgs/top-level/python-packages.nix            | 12 ++++
 3 files changed, 72 insertions(+), 4 deletions(-)
 create mode 100644 pkgs/development/python-modules/py7zr/default.nix

diff --git a/pkgs/development/python-modules/inflate64/default.nix b/pkgs/development/python-modules/inflate64/default.nix
index 0012b0719e49e..01a31c00b3cbb 100644
--- a/pkgs/development/python-modules/inflate64/default.nix
+++ b/pkgs/development/python-modules/inflate64/default.nix
@@ -10,7 +10,7 @@ buildPythonPackage rec {
   pname = "inflate64";
   version = "1.0.0";
 
-  format = "pyproject";
+  pyproject = true;
 
   src = fetchPypi {
     inherit pname version;
@@ -24,11 +24,11 @@ buildPythonPackage rec {
 
   pythonImportsCheck = [ "inflate64" ];
 
-  meta = with lib; {
+  meta = {
     homepage = "https://codeberg.org/miurahr/inflate64";
     description = "Compress and decompress with Enhanced Deflate compression algorithm";
-    license = licenses.gpl2Plus;
-    maintainers = with maintainers; [ ByteSudoer ];
+    license = lib.licenses.gpl2Plus;
+    maintainers = with lib.maintainers; [ ByteSudoer ];
   };
 
 }
diff --git a/pkgs/development/python-modules/py7zr/default.nix b/pkgs/development/python-modules/py7zr/default.nix
new file mode 100644
index 0000000000000..2ac681cd03b49
--- /dev/null
+++ b/pkgs/development/python-modules/py7zr/default.nix
@@ -0,0 +1,56 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+
+, setuptools
+, setuptools-scm
+
+
+, brotli
+, inflate64
+, multivolumefile
+, psutil
+, pybcj
+, pycryptodomex
+, pyppmd
+, pyzstd
+, texttable
+
+}:
+buildPythonPackage rec {
+  pname = "py7zr";
+  version = "0.21.1";
+
+  format = "pyproject";
+
+  src = fetchPypi {
+    inherit pname version;
+    hash = "sha256-3t6O2LezKzWGrEdto6SCtp3UMyKUIL8PYsSVQEtyx5k=";
+  };
+
+  build-system = [
+    setuptools
+    setuptools-scm
+  ];
+
+  dependencies = [
+    brotli
+    inflate64
+    multivolumefile
+    psutil
+    pybcj
+    pycryptodomex
+    pyppmd
+    pyzstd
+    texttable
+  ];
+
+  pythonImportsCheck = [ "py7zr" ];
+
+  meta = with lib; {
+    homepage = "https://github.com/miurahr/py7zr";
+    description = "7zip in python3 with ZStandard, PPMd, LZMA2, LZMA1, Delta, BCJ, BZip2";
+    license = licenses.gpl2Only;
+    maintainers = with maintainers; [ ByteSudoer ];
+  };
+}
diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix
index 1044855bc635f..20a561bff6388 100644
--- a/pkgs/top-level/python-packages.nix
+++ b/pkgs/top-level/python-packages.nix
@@ -5849,6 +5849,8 @@ self: super: with self; {
 
   infinity = callPackage ../development/python-modules/infinity { };
 
+  inflate64 = callPackage ../development/python-modules/inflate64 { };
+
   inflect = callPackage ../development/python-modules/inflect { };
 
   inflection = callPackage ../development/python-modules/inflection { };
@@ -7901,6 +7903,8 @@ self: super: with self; {
 
   multitasking = callPackage ../development/python-modules/multitasking { };
 
+  multivolumefile = callPackage ../development/python-modules/multivolumefile { };
+
   munch = callPackage ../development/python-modules/munch { };
 
   mung = callPackage ../development/python-modules/mung { };
@@ -10037,6 +10041,8 @@ self: super: with self; {
 
   py65 = callPackage ../development/python-modules/py65 { };
 
+  py7zr = callPackage ../development/python-modules/py7zr { };
+
   pyaehw4a1 = callPackage ../development/python-modules/pyaehw4a1 { };
 
   pyatag = callPackage ../development/python-modules/pyatag { };
@@ -10045,6 +10051,8 @@ self: super: with self; {
 
   pyatome = callPackage ../development/python-modules/pyatome { };
 
+  pybcj = callPackage ../development/python-modules/pybcj { };
+
   pycketcasts = callPackage ../development/python-modules/pycketcasts { };
 
   pycomm3 = callPackage ../development/python-modules/pycomm3 { };
@@ -10146,6 +10154,8 @@ self: super: with self; {
 
   pypoolstation = callPackage ../development/python-modules/pypoolstation { };
 
+  pyppmd = callPackage ../development/python-modules/pyppmd { };
+
   pyrdfa3 = callPackage ../development/python-modules/pyrdfa3 { };
 
   pyre-extensions = callPackage ../development/python-modules/pyre-extensions { };
@@ -10288,6 +10298,8 @@ self: super: with self; {
 
   pyzipper = callPackage ../development/python-modules/pyzipper { };
 
+  pyzstd = callPackage ../development/python-modules/pyzstd { };
+
   pkutils = callPackage ../development/python-modules/pkutils { };
 
   plac = callPackage ../development/python-modules/plac { };