ASR_BASE

Change-Id: Icf3719cc0afe3eeb3edc7fa80a2eb5199ca9dda1
diff --git a/external/subpack/lang/python/python-constantly/Makefile b/external/subpack/lang/python/python-constantly/Makefile
new file mode 100644
index 0000000..f0cd246
--- /dev/null
+++ b/external/subpack/lang/python/python-constantly/Makefile
@@ -0,0 +1,44 @@
+#
+# Copyright (C) 2018, 2023 Jeffery To
+#
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+#
+
+include $(TOPDIR)/rules.mk
+
+PKG_NAME:=python-constantly
+PKG_VERSION:=23.10.4
+PKG_RELEASE:=1
+
+PYPI_NAME:=constantly
+PKG_HASH:=aa92b70a33e2ac0bb33cd745eb61776594dc48764b06c35e0efd050b7f1c7cbd
+
+PKG_LICENSE:=MIT
+PKG_LICENSE_FILES:=LICENSE
+PKG_MAINTAINER:=Jeffery To <jeffery.to@gmail.com>
+
+PKG_BUILD_DEPENDS:=python-versioneer/host
+
+include ../pypi.mk
+include $(INCLUDE_DIR)/package.mk
+include ../python3-package.mk
+
+define Package/python3-constantly
+  SECTION:=lang
+  CATEGORY:=Languages
+  SUBMENU:=Python
+  TITLE:=Symbolic constants in Python
+  URL:=https://github.com/twisted/constantly
+  DEPENDS:=+python3-light
+endef
+
+define Package/python3-constantly/description
+A library that provides symbolic constant support. It includes
+collections and constants with text, numeric, and bit flag values.
+Originally twisted.python.constants from the Twisted project.
+endef
+
+$(eval $(call Py3Package,python3-constantly))
+$(eval $(call BuildPackage,python3-constantly))
+$(eval $(call BuildPackage,python3-constantly-src))
diff --git a/external/subpack/lang/python/python-constantly/patches/001-unpin-setuptools.patch b/external/subpack/lang/python/python-constantly/patches/001-unpin-setuptools.patch
new file mode 100644
index 0000000..9d890ab
--- /dev/null
+++ b/external/subpack/lang/python/python-constantly/patches/001-unpin-setuptools.patch
@@ -0,0 +1,9 @@
+--- a/pyproject.toml
++++ b/pyproject.toml
+@@ -1,5 +1,5 @@
+ [build-system]
+-requires = ["setuptools>=68.2", "versioneer[toml]==0.29"]
++requires = ["setuptools", "versioneer[toml]==0.29"]
+ build-backend = "setuptools.build_meta"
+ 
+ [project]
diff --git a/external/subpack/lang/python/python-constantly/test.sh b/external/subpack/lang/python/python-constantly/test.sh
new file mode 100644
index 0000000..d6b367c
--- /dev/null
+++ b/external/subpack/lang/python/python-constantly/test.sh
@@ -0,0 +1,27 @@
+#!/bin/sh
+
+[ "$1" = python3-constantly ] || exit 0
+
+python3 - << 'EOF'
+
+from constantly import NamedConstant, Names
+class Letters(Names):
+    a = NamedConstant()
+    b = NamedConstant()
+    c = NamedConstant()
+
+assert Letters.lookupByName('a') is Letters.a
+assert Letters.a < Letters.b
+assert Letters.b < Letters.c
+assert Letters.a < Letters.c
+
+from constantly import ValueConstant, Values
+class STATUS(Values):
+    OK = ValueConstant('200')
+    FOUND = ValueConstant('302')
+    NOT_FOUND = ValueConstant('404')
+
+assert STATUS.OK.value == '200'
+assert STATUS.lookupByValue('404') == STATUS.NOT_FOUND
+
+EOF