{"library":"namedlist","title":"namedlist","description":"namedlist is a Python library that provides a factory function to create list-like objects with named fields, similar to `collections.namedtuple`, but with mutable instances. It also offers support for per-field default values and an optional default value for all fields. The current version is 1.8, released in August 2020. This package is no longer actively maintained, and the built-in `dataclasses` module is recommended for new projects.","language":"python","status":"maintenance","last_verified":"Thu Apr 16","install":{"commands":["pip install namedlist"],"cli":null},"imports":["from namedlist import namedlist","from namedlist import namedlist, FACTORY"],"auth":{"required":false,"env_vars":[]},"quickstart":{"code":"from namedlist import namedlist, FACTORY\n\n# Basic mutable namedlist\nPoint = namedlist('Point', 'x y')\np = Point(1, 3)\nprint(f\"Initial point: {p}\")\np.x = 2\nprint(f\"Modified point: {p}\")\nassert p.x == 2\nassert p.y == 3\n\n# Namedlist with default values\nRect = namedlist('Rect', 'x1 y1 x2 y2', default=0)\nr = Rect(x1=10, y1=10)\nprint(f\"Rectangle with defaults: {r}\")\nassert r.x1 == 10 and r.y1 == 10 and r.x2 == 0 and r.y2 == 0\n\n# Namedlist with a factory for mutable defaults (e.g., list)\nConfig = namedlist('Config', [('name', 'default'), ('options', FACTORY(list))])\nc1 = Config(name='App1')\nc1.options.append('verbose')\nprint(f\"Config 1: {c1}\")\n\nc2 = Config(name='App2') # new instance, new list for options\nprint(f\"Config 2: {c2}\")\nassert c1.options == ['verbose']\nassert c2.options == [] # Demonstrates independent mutable defaults\n","lang":"python","description":"This quickstart demonstrates creating a basic mutable namedlist, using global default values for fields, and correctly handling mutable default values (like lists) using the `FACTORY` function to ensure each instance gets its own independent mutable object.","tag":null,"tag_description":null,"last_tested":null,"results":[]},"compatibility":null}