Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.python.announce > #4326

[Python-announce] ANN: func-validator 1.2.0 release

Path csiph.com!fu-berlin.de!uni-berlin.de!not-for-mail
From Patrick Boateng <patrickboateng@patrickboateng.tech>
Newsgroups comp.lang.python.announce
Subject [Python-announce] ANN: func-validator 1.2.0 release
Date Fri, 31 Oct 2025 15:34:36 -0500
Lines 19
Approved python-announce-list@python.org
Message-ID <7f26ff7c-239e-421a-a342-79b23bd7068f@patrickboateng.tech> (permalink)
Reply-To python-list@python.org
Mime-Version 1.0
Content-Type text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding base64
X-Trace news.uni-berlin.de J4CJirsCqPYVWXvPzEF7HAF92u/+YT2GAe52bvjMte9A==
Cancel-Lock sha1:XF5L8gPopuhjmXqFjrHrVx6rn2o= sha256:T4HALgZgbQwNkGKw/forHtP5pnxua8sM/C8HY37+c4E=
Delivered-To python-announce-list@x.python.org
Authentication-Results mail.python.org; dkim=pass reason="2048-bit key; unprotected key" header.d=patrickboateng.tech header.i=@patrickboateng.tech header.b=HVJ+ZkZK; dkim-adsp=pass; dkim-atps=neutral
X-Spam-Status OK 0.005
X-Spam-Evidence '*H*': 0.99; '*S*': 0.00; 'skip:@ 10': 0.03; 'argument': 0.04; 'def': 0.04; 'pip': 0.04; 'example:': 0.09; 'subject:release': 0.09; 'to:addr:python-announce-list': 0.09; 'import': 0.15; 'announce': 0.15; 'url-ip:140/8': 0.15; 'annotated': 0.16; 'inspired': 0.16; 'subject:ANN': 0.16; 'typing': 0.16; 'url:latest': 0.16; 'url:project': 0.16; 'url:pypi': 0.16; 'python': 0.16; 'url-ip:140.82/16': 0.17; 'all,': 0.20; 'version': 0.23; 'install': 0.23; 'url:github': 0.23; 'function': 0.27; 'error': 0.29; 'header:User-Agent:1': 0.30; 'keyword': 0.32; 'structure': 0.32; 'package': 0.34; 'url- ip:151.101.0.223/32': 0.37; 'url-ip:151.101.128.223/32': 0.37; 'url-ip:151.101.192.223/32': 0.37; 'url-ip:151.101.64.223/32': 0.37; 'best,': 0.38; 'url-ip:104.16/16': 0.61; 'similar': 0.63; 'skip:m 20': 0.63; 'less': 0.64; 'bringing': 0.64; 'patrick': 0.64; 'validation': 0.64; 'clarity': 0.69; 'below': 0.69; 'skip:* 10': 0.73; 'mit': 0.76; 'quick': 0.77; 'licensed': 0.84; 'greater': 0.91
DKIM-Signature v=1; a=rsa-sha256; c=simple/simple; d=patrickboateng.tech; s=default; t=1761942878; bh=P7oc+4o4VLhUbO+o6KIXZcNsFNAI6q0hnusUP3oqo7E=; h=Date:To:From:Subject:From; b=HVJ+ZkZKYpGyimk8jB82Yh+9mv3bNrEpENCGbUHcf0cGGm1gW+G+XkKfnrlp/yjBf R/nFYv6n7q95lCiKGxrnFX4tDnxR7KJnd2lThB9cQRgAWoESx2f5ki8UGIQn5pBbc5 1yZXZKoBw1ukUWdme36KIYSbGDJhPuljWA1inQihLr/McFGDuu0lY9AjmR90ekkCne ocAUWzV4cdWOl63ygrlLxqZ67FOGDoK+d8D6naZJj/8r/vZnivT+d8lM2m2VsSW5wd 6e5eNwLO1nHjWUeWdzgEON8/ao9g8XxQhaD+CnssPY2kRdLVglBL/TYxMk1BGQlFZh UjtRYOdszc9ow==
User-Agent Mozilla Thunderbird
Content-Language en-US
X-Virus-Scanned ClamAV using ClamSMTP
X-MailFrom patrickboateng@patrickboateng.tech
X-Mailman-Rule-Hits emergency
X-Mailman-Rule-Misses dmarc-mitigation; no-senders; approved; loop; banned-address; header-match-python-announce-list.python.org-0; header-match-python-announce-list.python.org-1; header-match-python-announce-list.python.org-2; header-match-python-announce-list.python.org-3; header-match-python-announce-list.python.org-4
Message-ID-Hash SELWBODG47TLZ2PJKTOM2OMCJUFVCR4E
X-Message-ID-Hash SELWBODG47TLZ2PJKTOM2OMCJUFVCR4E
X-Mailman-Approved-At Fri, 31 Oct 2025 16:46:31 -0400
X-Content-Filtered-By Mailman/MimeDel 3.3.11b1
X-Mailman-Version 3.3.11b1
Precedence list
List-Id Announcement-only list for the Python programming language <python-announce-list.python.org>
Archived-At <https://mail.python.org/archives/list/python-announce-list@python.org/message/SELWBODG47TLZ2PJKTOM2OMCJUFVCR4E/>
List-Archive <https://mail.python.org/archives/list/python-announce-list@python.org/>
List-Help <mailto:python-announce-list-request@python.org?subject=help>
List-Owner <mailto:python-announce-list-owner@python.org>
List-Post <mailto:python-announce-list@python.org>
List-Subscribe <mailto:python-announce-list-join@python.org>
List-Unsubscribe <mailto:python-announce-list-leave@python.org>
Xref csiph.com comp.lang.python.announce:4326

Show key headers only | View raw


Hi All,

I am happy to announce **func-validator 1.2.0** release, this version 
provides custom error messages for validators via the "err_msg" optional 
keyword argument.

This package was inspired by MATLAB’s argument validation framework, 
bringing a similar level of clarity and structure to Python function 
definitions.

Below is a quick example:

```python
from typing import Annotated
from func_validator import validate_params, MustBePositive, MustBeNegative

@validate_params
def func(a: Annotated[int, MustBePositive(err_msg="a must be greater 
than 0")], b: Annotated[float, MustBeNegative(err_msg="b must be less 
than 0")]):
    ...
```

**Links**

  * PYPI: https://pypi.org/project/func-validator/
  * GitHub: https://github.com/patrickboateng/func-validator
  * Docs: https://func-validator.readthedocs.io/en/latest/


**Install**
pip install func-validator

Compatible with Python 3.11 - 3.13. Licensed under MIT

Best,
Patrick Boateng
patrickboateng@patrickboateng.tech



Back to comp.lang.python.announce | Previous | Next | Find similar


Thread

[Python-announce] ANN: func-validator 1.2.0 release Patrick Boateng <patrickboateng@patrickboateng.tech> - 2025-10-31 15:34 -0500

csiph-web