{"categories":[{"label":"Utilities","url":"https://skillfed.io/packages/category/utilities/3"}],"enrichment":{"capability":"Provides dictionary-like objects that allow accessing and modifying elements using both attribute notation (obj.key) and bracket notation (obj['key']), with automatic recursive conversion of nested dicts and sequences.","skillfed_tags":["config-management","dict-wrapper","legacy-unmaintained"],"use_cases":["Loading and accessing YAML configuration files as nested attribute objects instead of deeply nested dict lookups.","Building hierarchical settings objects where database credentials, API keys, and other config live in nested dicts accessed via dot notation.","Converting API responses (JSON dicts) into objects with attribute access for cleaner, more readable client code.","Merging multiple configuration dicts using the + operator with automatic recursive merging of nested structures.","Creating on-the-fly attribute objects from unstructured data where missing keys should auto-create with a default factory (AttrDefault)."],"what_it_does":"AttrDict wraps Python dictionaries to allow accessing values as object attributes instead of only as keys. For example, a dict {'foo': 'bar'} can be accessed as obj.foo instead of obj['foo']. The package provides three classes\u2014AttrMap, AttrDict, and AttrDefault\u2014each with slightly different behavior; AttrDict subclasses dict itself, AttrMap is a lighter MutableMapping, and AttrDefault behaves like defaultdict with automatic key creation. By default, nested dicts and sequences are recursively converted to Attr objects, so you can chain attribute access: obj.settings.db.host works naturally.\n\nThe main use case is building hierarchical configuration or settings objects from YAML, JSON, or nested dicts, where dot notation is more readable than repeated bracket access. The package is small, has low install friction, and depends only on six. However, it has been archived since 2019 with no active maintenance, so compatibility with modern Python versions and edge cases discovered after that date are not guaranteed.","worth_installing":"Yes, if you are working in a codebase already using it or need lightweight attribute-style dict access in a stable, unchanging environment. No, if you require active maintenance, Python version compatibility assurance, or expect to rely on bug fixes\u2014the package is archived and unmaintained since 2019. For new projects, consider whether a modern alternative better fits your maintenance and compatibility expectations."},"id":"attrdict","links":{"html":"https://skillfed.io/packages/attrdict","md":"https://skillfed.io/packages/attrdict.md","pypi":"https://pypi.org/project/attrdict/"},"maintenance":{"status":"abandoned"},"meta":{"latest_release":"2019-02-01","license_spdx":null,"license_treatment":"permissive","name":"attrdict","python_support":"unspecified","summary":"A dict with attribute-style access"},"popularity":{"monthly_downloads":1781236,"position":3568,"tier":"top_5000"},"security":{"n_vulnerabilities":0},"version":"2.0.1"}
