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


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

[Python-announce] ANN: func-validator 1.1.1 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.1.1 release
Date Fri, 17 Oct 2025 17:15:07 -0500
Lines 19
Approved python-announce-list@python.org
Message-ID <05e4a9cf-8d59-4295-832f-0d8449090559@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 AtfM8Tg+VqqqpdKcOGdBvwc32Jnsdo03HCo2tFgfI67w==
Cancel-Lock sha1:IEgl1fLxC4DBGQTCiQLq/kSPRTg= sha256:mukRRJdGj92/kpZcQEFxsC+E4cTXJkoLaOFM7/EPGMY=
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=BpeyG0IK; dkim-adsp=pass; dkim-atps=neutral
X-Spam-Status OK 0.002
X-Spam-Evidence '*H*': 1.00; '*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; 'for\xc2\xa0': 0.16; 'from\xc2\xa0': 0.16; 'improves': 0.16; 'inspired': 0.16; 'objective': 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; 'install': 0.23; 'lines': 0.23; 'url:github': 0.23; 'code': 0.23; 'function': 0.27; 'header:User- Agent:1': 0.30; 'structure': 0.32; 'package': 0.34; 'functions': 0.36; 'main': 0.37; '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; 'bringing': 0.64; 'patrick': 0.64; 'validation': 0.64; 'body': 0.67; 'clarity': 0.69; 'below': 0.69; 'skip:* 10': 0.73; 'mit': 0.76; 'quick': 0.77; 'licensed': 0.84; 'readability.': 0.84; 'reduces': 0.84
DKIM-Signature v=1; a=rsa-sha256; c=simple/simple; d=patrickboateng.tech; s=default; t=1760739308; bh=Zn8Zp51qXHqeGn8K+xw/J3Ztt1T3cGuPSUysHIiwlIg=; h=Date:To:From:Subject:From; b=BpeyG0IKKf5Y//VJQU4qz1eeapGu7bog4jqnx7aghZmYX3Re3cEL4cb2oliyXhJs+ 1l3nGssr5surIe6WVfszJ8UL9m9i6UX/qcF9UY7jjjh6IB6V0PaDPHUwuUi/CrA4Qy xuG35BSjfs6PvRAS4VMLULeZMN2WCmuEC3yrPi8KXFvXcQ/yrtsuxSKEsZWKWKYvko fLSDmtyfSNGtUeDIH3+aoyzz6dnqXmhU8ARVRtQ8ECSgxwEKPCn0/agkghHXDzDUu3 lR6c8tCr0mj9iDI1wvtFEu3nEkcaeeW6Fxl0ZW0u0CeRBCsKtdqD3afLkBer2CySPA NfFibeKIaEfgQ==
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 NHS6L4R2UVB2KZGJTAMHJ35ESDO3T4EE
X-Message-ID-Hash NHS6L4R2UVB2KZGJTAMHJ35ESDO3T4EE
X-Mailman-Approved-At Fri, 17 Oct 2025 19:10:51 -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/NHS6L4R2UVB2KZGJTAMHJ35ESDO3T4EE/>
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:4321

Show key headers only | View raw


Hi All,

I am happy to announce **func-validator 1.1.1** , which provides 
argument validation for
python functions and methods. The main objective is to remove argument 
validation from
the function's body which reduces lines of code and improves code 
readability.

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()], b: Annotated[float, 
MustBeNegative()]):
    ...
```

**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.1.1 release Patrick Boateng <patrickboateng@patrickboateng.tech> - 2025-10-17 17:15 -0500

csiph-web