From nobody Tue Oct 07 08:19:49 2025 X-Original-To: dev-commits-ports-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4cgpw53ypZz69l6w; Tue, 07 Oct 2025 08:19:49 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R12" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4cgpw52Rrjz3t0g; Tue, 07 Oct 2025 08:19:49 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1759825189; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=VsNgW/ZX2/CDAOTl6wO/TLt6PhMBCnXVBwi5z1wF6sc=; b=iCDwgHlDoFuhcP6N1VAKRhvyOpd2VxolhyX8U6GcAxKkz2/cmW3JrdPZkAh6iP/cG++s7J JObFNCUfB19EFl+mWPyPaWhjrYMdK+1AGEooCGX060Ko4nMcKMec5rsqKxahj7JgrsnDnQ JvaXsC7q0meJ/ndFdFRkSbchWNbJfanLplw2uTxTPRY4ZrvFrkNLyOFd9hg3ai9sBsJGnK cBx9/rilvHOx47+FVBLnrpn8Vwd6HijNaNnrQB2IkR+dMZcfQCrz5Q8ZdMhNNCTj/MipbX YitheMKp3mTFIRDVZA83+JN65tYQAZT+hGc2IRfDXwHoBKogNMWYLv/fF7eKNA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1759825189; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=VsNgW/ZX2/CDAOTl6wO/TLt6PhMBCnXVBwi5z1wF6sc=; b=wc9Fb9/ef/JOc5gY2fyHChzmdNnaQ2LHey6NsUgfAImeNXVVwOLQJbDpKtJeWwZfBU0e+W 7Ogb95YKaYl1LdXvtO3Cc9zAgCo8wg5Le9aREILrgJTJmpKr7TXUAuRGT9n+4gZtdh4C9s g31IOy+D4Ed1nJI0Si+wCPnUG2heGYqACj5T1MoE/LlKHd5T65s5JEsVQqwmpe+SvfHOks bm82NsO+w8eLAlO7GxX3zqbA1NYSc4H3aP0PdPtDiYNm1X2OlZNfjEFRh2TrhPUaw3yuhv W8EhBJMOfMHY98j1eNveK0se/q6YUPTFQrITp+T5KOeCWLjYWZ/KQKmH8FnPsg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1759825189; a=rsa-sha256; cv=none; b=LH9QS4STRK6SSRmWUd7BT+aWUDMW9oyzdEp4U0ICQs5O6DJmDDTBUG5YMvpIPv7i6/bmMV MzoZZU2W19A2+TnnM2A39Tp8calBuYHo4cDo8Rj3/N4KxeLew+x0CB+dcFSKlv6GI1PSC6 EOWEgodu0BsP92kVGiTGvRB6Zc31VYdZzfwKYlxvn+boXvqcmCG+dTYnsiMXAust6b5Q+7 n+Nbx4qyd+1R2IykBD4I+mubEwvaC3v/AP6k/QEXjK9LxI4v5Qgz/vomJwzfBty7vO2x1N kZkOqXPLGaI8AFScxPgJ+aYLwcmN3woiPZQ5VcfjZRDZUeyr/7BTbBhGBNyicw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4cgpw51mSjzdGh; Tue, 07 Oct 2025 08:19:49 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 5978JnUO053155; Tue, 7 Oct 2025 08:19:49 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 5978Jndp053153; Tue, 7 Oct 2025 08:19:49 GMT (envelope-from git) Date: Tue, 7 Oct 2025 08:19:49 GMT Message-Id: <202510070819.5978Jndp053153@gitrepo.freebsd.org> To: ports-committers@FreeBSD.org, dev-commits-ports-all@FreeBSD.org, dev-commits-ports-main@FreeBSD.org From: Yuri Victorovich Subject: git: 18ee2b9f8091 - main - devel/py-atom: New port: Memory efficient Python objects List-Id: Commit messages for all branches of the ports repository List-Archive: https://lists.freebsd.org/archives/dev-commits-ports-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-ports-all@freebsd.org Sender: owner-dev-commits-ports-all@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: yuri X-Git-Repository: ports X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 18ee2b9f80918d9287669192ca928c1b8c088c49 Auto-Submitted: auto-generated The branch main has been updated by yuri: URL: https://cgit.FreeBSD.org/ports/commit/?id=18ee2b9f80918d9287669192ca928c1b8c088c49 commit 18ee2b9f80918d9287669192ca928c1b8c088c49 Author: Yuri Victorovich AuthorDate: 2025-10-06 21:40:30 +0000 Commit: Yuri Victorovich CommitDate: 2025-10-07 08:19:43 +0000 devel/py-atom: New port: Memory efficient Python objects --- devel/Makefile | 1 + devel/py-atom/Makefile | 34 ++++++++++++++++++++++++++++++++ devel/py-atom/distinfo | 3 +++ devel/py-atom/files/patch-pyproject.toml | 21 ++++++++++++++++++++ devel/py-atom/pkg-descr | 16 +++++++++++++++ 5 files changed, 75 insertions(+) diff --git a/devel/Makefile b/devel/Makefile index f47cc02e0e25..89f97012289f 100644 --- a/devel/Makefile +++ b/devel/Makefile @@ -4451,6 +4451,7 @@ SUBDIR += py-async_generator SUBDIR += py-async_timeout SUBDIR += py-asynctest + SUBDIR += py-atom SUBDIR += py-atomiclong SUBDIR += py-atpublic SUBDIR += py-attr 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 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.