From 175b0329a622145ff616e909076d69e00de23ae0 Mon Sep 17 00:00:00 2001
From: Adar Nimrod <nimrod@shore.co.il>
Date: Sun, 2 May 2021 11:14:36 +0300
Subject: [PATCH] Keep extras_require DRY.

---
 setup.py | 27 ++++++++++++++-------------
 1 file changed, 14 insertions(+), 13 deletions(-)

diff --git a/setup.py b/setup.py
index b025f1b..fdb694c 100644
--- a/setup.py
+++ b/setup.py
@@ -3,6 +3,19 @@
 from setuptools import setup, find_packages
 from template import __doc__ as description
 
+extras_require = {
+    "dev": ["pipenv"],
+    "jmespath": ["jmespath"],
+    "netaddr": ["netaddr"],
+    "toml": ["toml"],
+    "yaml": ["PyYAML"],
+}
+
+all_requires = [v for k, l in extras_require.items() if k != "dev" for v in l]
+# There may be duplicates, let's remove those.
+all_requires = list(set(all_requires))
+extras_require["all"] = all_requires
+
 setup(
     name="template",
     version="0.7.2",
@@ -41,18 +54,6 @@ setup(
         "toml",
         "subprocess32>=3.5.0;python_version<'3.5'",
     ],
-    extras_require={
-        "all": [
-            "jmespath",
-            "netaddr",
-            "PyYAML",
-            "toml",
-        ],
-        "dev": ["pipenv"],
-        "jmespath": ["jmespath"],
-        "netaddr": ["netaddr"],
-        "toml": ["toml"],
-        "yaml": ["PyYAML"],
-    },
+    extras_require=extras_require,
     entry_points={"console_scripts": ["template=template:main"]},
 )
-- 
GitLab