summaryrefslogtreecommitdiff
path: root/devel/py-atom
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--devel/py-atom/Makefile34
-rw-r--r--devel/py-atom/distinfo3
-rw-r--r--devel/py-atom/files/patch-pyproject.toml21
-rw-r--r--devel/py-atom/pkg-descr16
4 files changed, 74 insertions, 0 deletions
diff --git a/devel/py-atom/Makefile b/devel/py-atom/Makefile
new file mode 100644
index 000000000000..28d8656f9558
--- /dev/null
+++ b/devel/py-atom/Makefile
@@ -0,0 +1,34 @@
+PORTNAME= atom
+DISTVERSION= 0.12.1
+CATEGORIES= devel python
+MASTER_SITES= PYPI
+PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
+
+MAINTAINER= yuri@FreeBSD.org
+COMMENT= Memory efficient Python objects
+WWW= https://atom.readthedocs.io/en/latest/ \
+ https://github.com/nucleic/atom
+
+LICENSE= BSD3CLAUSE
+LICENSE_FILE= ${WRKSRC}/LICENSE
+
+BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}cppy>0:devel/py-cppy@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}setuptools-scm>0:devel/py-setuptools-scm@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}wheel>0:devel/py-wheel@${PY_FLAVOR}
+TEST_DEPENDS= ${PYTHON_PKGNAMEPREFIX}pytest-benchmark>0:devel/py-pytest-benchmark@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}pytest-cov>0:devel/py-pytest-cov@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}pytest-mypy-plugins>0:devel/py-pytest-mypy-plugins@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}psutil>0:sysutils/py-psutil@${PY_FLAVOR}
+
+USES= python
+USE_PYTHON= autoplist concurrent pep517 pytest
+
+TEST_ENV= PYTHONPATH=${STAGEDIR}${PYTHONPREFIX_SITELIBDIR}
+
+do-test:
+ @cd ${TEST_WRKSRC} && \
+ ${SETENV} ${TEST_ENV} ${PYTHON_CMD} -m pytest tests/test_version.py tests/test_typing_utils.py -v
+
+# tests as of 0.12.1: 22 passed in 1.93s (limited to non-compiled module tests)
+
+.include <bsd.port.mk>
diff --git a/devel/py-atom/distinfo b/devel/py-atom/distinfo
new file mode 100644
index 000000000000..b53960fd4fbc
--- /dev/null
+++ b/devel/py-atom/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1759782668
+SHA256 (atom-0.12.1.tar.gz) = 2cbfb77939da28879a5432e3b201ac026be85c789c4e96de246a6f6a9f4be57a
+SIZE (atom-0.12.1.tar.gz) = 170161
diff --git a/devel/py-atom/files/patch-pyproject.toml b/devel/py-atom/files/patch-pyproject.toml
new file mode 100644
index 000000000000..4b6bdc047758
--- /dev/null
+++ b/devel/py-atom/files/patch-pyproject.toml
@@ -0,0 +1,21 @@
+--- pyproject.toml.orig 2024-12-10 10:30:00 UTC
++++ pyproject.toml
+@@ -11,8 +11,7 @@
+ description = "Memory efficient Python objects"
+ readme = "README.rst"
+ requires-python = ">=3.10"
+- license = "BSD-3-Clause"
+- license-files = ["LICENSE"]
++ license = {file = "LICENSE"}
+ authors = [{ name = "The Nucleic Development Team", email = "sccolbert@gmail.com" }]
+ maintainers = [{ name = "Matthieu C. Dartiailh", email = "m.dartiailh@gmail.com" }]
+ classifiers = [
+@@ -41,7 +40,7 @@
+ changelog = "https://github.com/nucleic/atom/blob/main/releasenotes.rst"
+
+ [build-system]
+- requires = ["setuptools>=77.0", "wheel", "setuptools_scm[toml]>=3.4.3", "cppy>=1.2.0"]
++ requires = ["setuptools>=63.1.0", "wheel", "setuptools_scm[toml]>=3.4.3", "cppy>=1.2.0"]
+ build-backend = "setuptools.build_meta"
+
+ [tool.setuptools]
diff --git a/devel/py-atom/pkg-descr b/devel/py-atom/pkg-descr
new file mode 100644
index 000000000000..e945a0b3d499
--- /dev/null
+++ b/devel/py-atom/pkg-descr
@@ -0,0 +1,16 @@
+Atom is a framework for creating memory efficient Python objects with enhanced
+features such as dynamic initialization, validation, and change notification
+for object attributes. It provides the default model binding behavior for the
+Enaml UI framework.
+
+Key features:
+* Memory efficient object creation
+* Dynamic attribute initialization
+* Attribute validation
+* Change notification system
+* Type annotation support (atom 0.8.0+)
+* Enhanced property system
+
+Atom objects can be defined using traditional class-based approach or modern
+type annotations, making it suitable for both legacy and modern Python
+codebases.