devel/py-characteristic - The NetBSD Packages Collection

Python attributes without boilerplate

characteristic is an MIT-licensed Python package with class decorators
that ease the chores of implementing the most common attribute-related
object protocols.

You just specify the attributes to work with and characteristic
gives you any or all of:

* a nice human-readable __repr__,
* a complete set of comparison methods,
* immutability for attributes,
* and a kwargs-based initializer (that cooperates with your existing
  one and optionally even checks the types of the arguments)

without writing dull boilerplate code again and again.

This gives you the power to use actual classes with actual types
in your code instead of confusing tuples or confusingly behaving
namedtuples.

So put down that type-less data structures and welcome some class
into your life!

Build dependencies

devel/py-setuptools pkgtools/mktools pkgtools/cwrappers

Runtime dependencies

lang/python312 lang/python312

Binary packages

OSArchitectureVersion
NetBSD 10.0aarch64py310-characteristic-14.3.0nb1.tgz
NetBSD 10.0aarch64py311-characteristic-14.3.0nb1.tgz
NetBSD 10.0aarch64py312-characteristic-14.3.0nb1.tgz
NetBSD 10.0aarch64py310-characteristic-14.3.0nb1.tgz
NetBSD 10.0aarch64py311-characteristic-14.3.0nb1.tgz
NetBSD 10.0aarch64py312-characteristic-14.3.0nb1.tgz
NetBSD 10.0aarch64py38-characteristic-14.3.0nb1.tgz
NetBSD 10.0aarch64py39-characteristic-14.3.0nb1.tgz
NetBSD 10.0aarch64ebpy27-characteristic-14.3.0nb1.tgz
NetBSD 10.0aarch64ebpy310-characteristic-14.3.0nb1.tgz
NetBSD 10.0aarch64ebpy311-characteristic-14.3.0nb1.tgz
NetBSD 10.0aarch64ebpy312-characteristic-14.3.0nb1.tgz
NetBSD 10.0aarch64ebpy38-characteristic-14.3.0nb1.tgz
NetBSD 10.0aarch64ebpy39-characteristic-14.3.0nb1.tgz
NetBSD 10.0aarch64ebpy27-characteristic-14.3.0nb1.tgz
NetBSD 10.0aarch64ebpy310-characteristic-14.3.0nb1.tgz
NetBSD 10.0aarch64ebpy311-characteristic-14.3.0nb1.tgz
NetBSD 10.0aarch64ebpy312-characteristic-14.3.0nb1.tgz
NetBSD 10.0aarch64ebpy38-characteristic-14.3.0nb1.tgz
NetBSD 10.0aarch64ebpy39-characteristic-14.3.0nb1.tgz
NetBSD 10.0alphapy27-characteristic-14.3.0nb1.tgz
NetBSD 10.0alphapy310-characteristic-14.3.0nb1.tgz
NetBSD 10.0alphapy311-characteristic-14.3.0nb1.tgz
NetBSD 10.0alphapy312-characteristic-14.3.0nb1.tgz
NetBSD 10.0alphapy38-characteristic-14.3.0nb1.tgz
NetBSD 10.0alphapy39-characteristic-14.3.0nb1.tgz
NetBSD 10.0alphapy310-characteristic-14.3.0nb1.tgz
NetBSD 10.0alphapy311-characteristic-14.3.0nb1.tgz
NetBSD 10.0alphapy312-characteristic-14.3.0nb1.tgz
NetBSD 10.0alphapy38-characteristic-14.3.0nb1.tgz
NetBSD 10.0alphapy39-characteristic-14.3.0nb1.tgz
NetBSD 10.0earmv6hfpy310-characteristic-14.3.0nb1.tgz
NetBSD 10.0earmv6hfpy311-characteristic-14.3.0nb1.tgz
NetBSD 10.0earmv6hfpy312-characteristic-14.3.0nb1.tgz
NetBSD 10.0earmv6hfpy27-characteristic-14.3.0nb1.tgz
NetBSD 10.0earmv6hfpy310-characteristic-14.3.0nb1.tgz
NetBSD 10.0earmv6hfpy311-characteristic-14.3.0nb1.tgz
NetBSD 10.0earmv6hfpy312-characteristic-14.3.0nb1.tgz
NetBSD 10.0earmv6hfpy38-characteristic-14.3.0nb1.tgz
NetBSD 10.0earmv6hfpy39-characteristic-14.3.0nb1.tgz
NetBSD 10.0earmv6hfpy310-characteristic-14.3.0nb1.tgz
NetBSD 10.0earmv6hfpy311-characteristic-14.3.0nb1.tgz
NetBSD 10.0earmv6hfpy312-characteristic-14.3.0nb1.tgz
NetBSD 10.0earmv6hfpy38-characteristic-14.3.0nb1.tgz
NetBSD 10.0earmv6hfpy39-characteristic-14.3.0nb1.tgz
NetBSD 10.0earmv7hfpy310-characteristic-14.3.0nb1.tgz
NetBSD 10.0earmv7hfpy311-characteristic-14.3.0nb1.tgz
NetBSD 10.0earmv7hfpy312-characteristic-14.3.0nb1.tgz
NetBSD 10.0earmv7hfpy27-characteristic-14.3.0nb1.tgz
NetBSD 10.0earmv7hfpy310-characteristic-14.3.0nb1.tgz
NetBSD 10.0earmv7hfpy311-characteristic-14.3.0nb1.tgz
NetBSD 10.0earmv7hfpy312-characteristic-14.3.0nb1.tgz
NetBSD 10.0earmv7hfpy38-characteristic-14.3.0nb1.tgz
NetBSD 10.0earmv7hfpy39-characteristic-14.3.0nb1.tgz
NetBSD 10.0earmv7hfpy310-characteristic-14.3.0nb1.tgz
NetBSD 10.0earmv7hfpy311-characteristic-14.3.0nb1.tgz
NetBSD 10.0earmv7hfpy312-characteristic-14.3.0nb1.tgz
NetBSD 10.0earmv7hfpy38-characteristic-14.3.0nb1.tgz
NetBSD 10.0earmv7hfpy39-characteristic-14.3.0nb1.tgz
NetBSD 10.0i386py310-characteristic-14.3.0nb1.tgz
NetBSD 10.0i386py311-characteristic-14.3.0nb1.tgz
NetBSD 10.0i386py312-characteristic-14.3.0nb1.tgz
NetBSD 10.0i386py310-characteristic-14.3.0nb1.tgz
NetBSD 10.0i386py311-characteristic-14.3.0nb1.tgz
NetBSD 10.0i386py312-characteristic-14.3.0nb1.tgz
NetBSD 10.0i386py38-characteristic-14.3.0nb1.tgz
NetBSD 10.0i386py39-characteristic-14.3.0nb1.tgz
NetBSD 10.0powerpcpy27-characteristic-14.3.0nb1.tgz
NetBSD 10.0powerpcpy310-characteristic-14.3.0nb1.tgz
NetBSD 10.0powerpcpy311-characteristic-14.3.0nb1.tgz
NetBSD 10.0powerpcpy38-characteristic-14.3.0nb1.tgz
NetBSD 10.0powerpcpy39-characteristic-14.3.0nb1.tgz
NetBSD 10.0powerpcpy27-characteristic-14.3.0nb1.tgz
NetBSD 10.0powerpcpy310-characteristic-14.3.0nb1.tgz
NetBSD 10.0powerpcpy311-characteristic-14.3.0nb1.tgz
NetBSD 10.0powerpcpy312-characteristic-14.3.0nb1.tgz
NetBSD 10.0powerpcpy38-characteristic-14.3.0nb1.tgz
NetBSD 10.0powerpcpy39-characteristic-14.3.0nb1.tgz
NetBSD 10.0powerpcpy27-characteristic-14.3.0nb1.tgz
NetBSD 10.0powerpcpy310-characteristic-14.3.0nb1.tgz
NetBSD 10.0powerpcpy311-characteristic-14.3.0nb1.tgz
NetBSD 10.0powerpcpy312-characteristic-14.3.0nb1.tgz
NetBSD 10.0powerpcpy38-characteristic-14.3.0nb1.tgz
NetBSD 10.0powerpcpy39-characteristic-14.3.0nb1.tgz
NetBSD 10.0sh3elpy310-characteristic-14.3.0nb1.tgz
NetBSD 10.0sh3elpy311-characteristic-14.3.0nb1.tgz
NetBSD 10.0sh3elpy312-characteristic-14.3.0nb1.tgz
NetBSD 10.0sh3elpy38-characteristic-14.3.0nb1.tgz
NetBSD 10.0sh3elpy39-characteristic-14.3.0nb1.tgz
NetBSD 10.0sh3elpy310-characteristic-14.3.0nb1.tgz
NetBSD 10.0sh3elpy311-characteristic-14.3.0nb1.tgz
NetBSD 10.0sh3elpy312-characteristic-14.3.0nb1.tgz
NetBSD 10.0sh3elpy38-characteristic-14.3.0nb1.tgz
NetBSD 10.0sh3elpy39-characteristic-14.3.0nb1.tgz
NetBSD 10.0sparc64py27-characteristic-14.3.0nb1.tgz
NetBSD 10.0sparc64py310-characteristic-14.3.0nb1.tgz
NetBSD 10.0sparc64py311-characteristic-14.3.0nb1.tgz
NetBSD 10.0sparc64py312-characteristic-14.3.0nb1.tgz
NetBSD 10.0sparc64py38-characteristic-14.3.0nb1.tgz
NetBSD 10.0sparc64py39-characteristic-14.3.0nb1.tgz
NetBSD 10.0sparc64py27-characteristic-14.3.0nb1.tgz
NetBSD 10.0sparc64py310-characteristic-14.3.0nb1.tgz
NetBSD 10.0sparc64py311-characteristic-14.3.0nb1.tgz
NetBSD 10.0sparc64py312-characteristic-14.3.0nb1.tgz
NetBSD 10.0sparc64py38-characteristic-14.3.0nb1.tgz
NetBSD 10.0sparc64py39-characteristic-14.3.0nb1.tgz
NetBSD 10.0sparcpy27-characteristic-14.3.0nb1.tgz
NetBSD 10.0sparcpy310-characteristic-14.3.0nb1.tgz
NetBSD 10.0sparcpy311-characteristic-14.3.0nb1.tgz
NetBSD 10.0sparcpy312-characteristic-14.3.0nb1.tgz
NetBSD 10.0sparcpy38-characteristic-14.3.0nb1.tgz
NetBSD 10.0sparcpy39-characteristic-14.3.0nb1.tgz
NetBSD 10.0sparcpy27-characteristic-14.3.0nb1.tgz
NetBSD 10.0sparcpy310-characteristic-14.3.0nb1.tgz
NetBSD 10.0sparcpy311-characteristic-14.3.0nb1.tgz
NetBSD 10.0sparcpy312-characteristic-14.3.0nb1.tgz
NetBSD 10.0sparcpy38-characteristic-14.3.0nb1.tgz
NetBSD 10.0sparcpy39-characteristic-14.3.0nb1.tgz
NetBSD 10.0x86_64py310-characteristic-14.3.0nb1.tgz
NetBSD 10.0x86_64py311-characteristic-14.3.0nb1.tgz
NetBSD 10.0x86_64py312-characteristic-14.3.0nb1.tgz
NetBSD 10.0x86_64py310-characteristic-14.3.0nb1.tgz
NetBSD 10.0x86_64py311-characteristic-14.3.0nb1.tgz
NetBSD 10.0x86_64py312-characteristic-14.3.0nb1.tgz
NetBSD 10.0x86_64py38-characteristic-14.3.0nb1.tgz
NetBSD 10.0x86_64py39-characteristic-14.3.0nb1.tgz
NetBSD 9.0aarch64py310-characteristic-14.3.0nb1.tgz
NetBSD 9.0aarch64py311-characteristic-14.3.0nb1.tgz
NetBSD 9.0aarch64py312-characteristic-14.3.0nb1.tgz
NetBSD 9.0aarch64py310-characteristic-14.3.0nb1.tgz
NetBSD 9.0aarch64py311-characteristic-14.3.0nb1.tgz
NetBSD 9.0aarch64py312-characteristic-14.3.0nb1.tgz
NetBSD 9.0aarch64py38-characteristic-14.3.0nb1.tgz
NetBSD 9.0aarch64py39-characteristic-14.3.0nb1.tgz
NetBSD 9.0alphapy310-characteristic-14.3.0nb1.tgz
NetBSD 9.0alphapy311-characteristic-14.3.0nb1.tgz
NetBSD 9.0alphapy38-characteristic-14.3.0nb1.tgz
NetBSD 9.0alphapy39-characteristic-14.3.0nb1.tgz
NetBSD 9.0alphapy310-characteristic-14.3.0nb1.tgz
NetBSD 9.0alphapy311-characteristic-14.3.0nb1.tgz
NetBSD 9.0alphapy38-characteristic-14.3.0nb1.tgz
NetBSD 9.0alphapy39-characteristic-14.3.0nb1.tgz
NetBSD 9.0earmv6hfpy310-characteristic-14.3.0nb1.tgz
NetBSD 9.0earmv6hfpy311-characteristic-14.3.0nb1.tgz
NetBSD 9.0earmv6hfpy312-characteristic-14.3.0nb1.tgz
NetBSD 9.0earmv6hfpy27-characteristic-14.3.0nb1.tgz
NetBSD 9.0earmv6hfpy310-characteristic-14.3.0nb1.tgz
NetBSD 9.0earmv6hfpy311-characteristic-14.3.0nb1.tgz
NetBSD 9.0earmv6hfpy38-characteristic-14.3.0nb1.tgz
NetBSD 9.0earmv6hfpy39-characteristic-14.3.0nb1.tgz
NetBSD 9.0earmv6hfpy310-characteristic-14.3.0nb1.tgz
NetBSD 9.0earmv6hfpy311-characteristic-14.3.0nb1.tgz
NetBSD 9.0earmv6hfpy38-characteristic-14.3.0nb1.tgz
NetBSD 9.0earmv6hfpy39-characteristic-14.3.0nb1.tgz
NetBSD 9.0earmv7hfpy310-characteristic-14.3.0nb1.tgz
NetBSD 9.0earmv7hfpy311-characteristic-14.3.0nb1.tgz
NetBSD 9.0earmv7hfpy312-characteristic-14.3.0nb1.tgz
NetBSD 9.0earmv7hfpy27-characteristic-14.3.0nb1.tgz
NetBSD 9.0earmv7hfpy310-characteristic-14.3.0nb1.tgz
NetBSD 9.0earmv7hfpy311-characteristic-14.3.0nb1.tgz
NetBSD 9.0earmv7hfpy38-characteristic-14.3.0nb1.tgz
NetBSD 9.0earmv7hfpy39-characteristic-14.3.0nb1.tgz
NetBSD 9.0earmv7hfpy310-characteristic-14.3.0nb1.tgz
NetBSD 9.0earmv7hfpy311-characteristic-14.3.0nb1.tgz
NetBSD 9.0earmv7hfpy38-characteristic-14.3.0nb1.tgz
NetBSD 9.0earmv7hfpy39-characteristic-14.3.0nb1.tgz
NetBSD 9.0i386py310-characteristic-14.3.0nb1.tgz
NetBSD 9.0i386py311-characteristic-14.3.0nb1.tgz
NetBSD 9.0i386py312-characteristic-14.3.0nb1.tgz
NetBSD 9.0i386py310-characteristic-14.3.0nb1.tgz
NetBSD 9.0i386py311-characteristic-14.3.0nb1.tgz
NetBSD 9.0i386py312-characteristic-14.3.0nb1.tgz
NetBSD 9.0i386py38-characteristic-14.3.0nb1.tgz
NetBSD 9.0i386py39-characteristic-14.3.0nb1.tgz
NetBSD 9.0m68kpy27-characteristic-14.3.0nb1.tgz
NetBSD 9.0m68kpy310-characteristic-14.3.0nb1.tgz
NetBSD 9.0m68kpy37-characteristic-14.3.0nb1.tgz
NetBSD 9.0m68kpy38-characteristic-14.3.0nb1.tgz
NetBSD 9.0m68kpy39-characteristic-14.3.0nb1.tgz
NetBSD 9.0powerpcpy27-characteristic-14.3.0nb1.tgz
NetBSD 9.0powerpcpy310-characteristic-14.3.0nb1.tgz
NetBSD 9.0powerpcpy311-characteristic-14.3.0nb1.tgz
NetBSD 9.0powerpcpy312-characteristic-14.3.0nb1.tgz
NetBSD 9.0powerpcpy37-characteristic-14.3.0nb1.tgz
NetBSD 9.0powerpcpy38-characteristic-14.3.0nb1.tgz
NetBSD 9.0powerpcpy39-characteristic-14.3.0nb1.tgz
NetBSD 9.0powerpcpy27-characteristic-14.3.0nb1.tgz
NetBSD 9.0powerpcpy310-characteristic-14.3.0nb1.tgz
NetBSD 9.0powerpcpy311-characteristic-14.3.0nb1.tgz
NetBSD 9.0powerpcpy37-characteristic-14.3.0nb1.tgz
NetBSD 9.0powerpcpy38-characteristic-14.3.0nb1.tgz
NetBSD 9.0powerpcpy39-characteristic-14.3.0nb1.tgz
NetBSD 9.0powerpcpy27-characteristic-14.3.0nb1.tgz
NetBSD 9.0powerpcpy310-characteristic-14.3.0nb1.tgz
NetBSD 9.0powerpcpy311-characteristic-14.3.0nb1.tgz
NetBSD 9.0powerpcpy312-characteristic-14.3.0nb1.tgz
NetBSD 9.0powerpcpy37-characteristic-14.3.0nb1.tgz
NetBSD 9.0powerpcpy38-characteristic-14.3.0nb1.tgz
NetBSD 9.0powerpcpy39-characteristic-14.3.0nb1.tgz
NetBSD 9.0sparc64py310-characteristic-14.3.0nb1.tgz
NetBSD 9.0sparc64py311-characteristic-14.3.0nb1.tgz
NetBSD 9.0sparc64py312-characteristic-14.3.0nb1.tgz
NetBSD 9.0sparc64py38-characteristic-14.3.0nb1.tgz
NetBSD 9.0sparc64py39-characteristic-14.3.0nb1.tgz
NetBSD 9.0sparc64py310-characteristic-14.3.0nb1.tgz
NetBSD 9.0sparc64py312-characteristic-14.3.0nb1.tgz
NetBSD 9.0x86_64py310-characteristic-14.3.0nb1.tgz
NetBSD 9.0x86_64py311-characteristic-14.3.0nb1.tgz
NetBSD 9.0x86_64py312-characteristic-14.3.0nb1.tgz
NetBSD 9.0x86_64py310-characteristic-14.3.0nb1.tgz
NetBSD 9.0x86_64py311-characteristic-14.3.0nb1.tgz
NetBSD 9.0x86_64py312-characteristic-14.3.0nb1.tgz
NetBSD 9.0x86_64py38-characteristic-14.3.0nb1.tgz
NetBSD 9.0x86_64py39-characteristic-14.3.0nb1.tgz
NetBSD 9.3x86_64py310-characteristic-14.3.0nb1.tgz
NetBSD 9.3x86_64py311-characteristic-14.3.0nb1.tgz
NetBSD 9.3x86_64py312-characteristic-14.3.0nb1.tgz

Binary packages can be installed with the high-level tool pkgin (which can be installed with pkg_add) or pkg_add(1) (installed by default). The NetBSD packages collection is also designed to permit easy installation from source.

Available build options

(none)

Known vulnerabilities

The pkg_admin audit command locates any installed package which has been mentioned in security advisories as having vulnerabilities.

Please note the vulnerabilities database might not be fully accurate, and not every bug is exploitable with every configuration.


Problem reports, updates or suggestions for this package should be reported with send-pr.