skillfed

pyats.datastructures

pyATS Datastructures: Extended Datastructures for Grownups

pyats-datastructures v26.7 297.1K downloads/30d#7,888 on PyPI
Permissive license Apache 2.0 Active released

What it is and what it does

pyats.datastructures is a sub-component of the pyATS testing framework that provides specialized data structures for Python developers. It includes WeakList, ListDict, AttrDict, and logic utilities—types designed to handle advanced use cases within the pyATS ecosystem and beyond. The package has no runtime dependencies and is available as pre-compiled wheels for Python 3.9 through 3.14 on macOS and Linux platforms.

The package is maintained as part of Cisco's pyATS project, which focuses on data-driven and reusable testing for agile development. While it can be installed standalone, it is typically used as a dependency when adopting pyATS or when a project requires the specific data structure behaviors it provides. Installation is straightforward via pip, though the compiled nature of the wheels means platform compatibility is limited to the supported architectures.

Use it for:

  • Use it as part of pyATS test suite setup to leverage specialized collection types in test data management.
  • Use it to build attribute-accessible dictionaries (AttrDict) where dot notation is preferred over bracket access.
  • Use it in projects requiring weak reference collections (WeakList) to avoid circular reference issues.
  • Use it to combine list and dictionary semantics (ListDict) when both indexed and keyed access patterns are needed.

Worth the install?

AI-flagged interpretation of the facts on this page — verify before relying

Provides specialized data structures (WeakList, ListDict, AttrDict, and logic utilities) designed for use within the pyATS testing framework and other applications requiring advanced collection types.

Yes, if you are adopting pyATS or need the specific data structures it provides (AttrDict, ListDict, WeakList). The package is actively maintained, has no external dependencies, and carries a permissive Apache 2.0 license. Install friction is moderate due to compiled wheels, but this is standard for the platform. Not necessary if you do not use pyATS and can meet your data structure needs with standard Python collections.

Install

pyats-datastructures on PyPI

pip

pip install pyats-datastructures

uv

uv add pyats-datastructures

poetry

poetry add pyats-datastructures

Installing pyats.datastructures

Before you install

Medium install friction due to compiled wheels for multiple Python versions and platforms (cp310–cp314 across macOS, Linux, and musllinux). Active maintenance with a release 7 days ago. No runtime dependencies, simplifying integration.

License in practice

Licensed under Apache 2.0 (permissive), allowing use in commercial and proprietary projects with minimal restrictions beyond attribution and liability disclaimers.

Quickstart

pip install pyats.datastructures

from pyats.datastructures import AttrDict, ListDict, WeakList

my_dict = AttrDict(name='test')
print(my_dict.name)

Requires Python 3.8 or later; Linux and macOS only (Windows not supported per documentation).

Verify before relying

  • Specific API surface and behavioral differences of WeakList, ListDict, and logic utilities.
  • Whether this package is intended for standalone use or primarily as a dependency of the larger pyATS ecosystem.
  • Performance characteristics or memory benefits of WeakList compared to standard Python collections.

Package facts

License Apache 2.0 (permissive)
Python support supports the current Python release (>=3.8)
Install friction medium — platform-specific wheel
Runtime dependencies none
Maintenance actively maintained — 7 days since the last release
First released
Downloads 297,105/month — #7,888 on PyPI (30-day window, as of 2026-08-14)
Known vulnerabilities none known (OSV.dev, checked 2026-08-14)

Evidence: pyats_datastructures-26.7-cp310-cp310-macosx_11_0_universal2.whl; pyats_datastructures-26.7-cp310-cp310-manylinux2014_aarch64.whl; pyats_datastructures-26.7-cp310-cp310-manylinux2014_x86_64.whl; pyats_datastructures-26.7-cp311-cp311-macosx_11_0_universal2.whl; pyats_datastructures-26.7-cp311-cp311-manylinux2014_aarch64.whl; pyats_datastructures-26.7-cp311-cp311-manylinux2014_x86_64.whl; pyats_datastructures-26.7-cp312-cp312-macosx_11_0_universal2.whl; pyats_datastructures-26.7-cp312-cp312-manylinux2014_aarch64.whl; pyats_datastructures-26.7-cp312-cp312-manylinux2014_x86_64.whl; pyats_datastructures-26.7-cp312-cp312-musllinux_1_2_x86_64.whl; pyats_datastructures-26.7-cp313-cp313-macosx_11_0_universal2.whl; pyats_datastructures-26.7-cp313-cp313-manylinux2014_aarch64.whl; pyats_datastructures-26.7-cp313-cp313-manylinux2014_x86_64.whl; pyats_datastructures-26.7-cp314-cp314-macosx_11_0_universal2.whl; pyats_datastructures-26.7-cp314-cp314-manylinux2014_aarch64.whl; pyats_datastructures-26.7-cp314-cp314-manylinux2014_x86_64.whl

Keywords: pyats, datastructures, weaklist, listdict, logic, attrdict

Development Status :: 5 - Production/StableDevelopment Status :: 6 - MatureEnvironment :: ConsoleIntended Audience :: DevelopersIntended Audience :: Information TechnologyIntended Audience :: System AdministratorsIntended Audience :: Telecommunications IndustryLicense :: OSI Approved :: Apache Software LicenseOperating System :: MacOSOperating System :: POSIX :: LinuxProgramming Language :: Python :: 3 :: OnlyProgramming Language :: Python :: 3.10Programming Language :: Python :: 3.11Programming Language :: Python :: 3.12Programming Language :: Python :: 3.13Programming Language :: Python :: 3.9Programming Language :: Python :: Implementation :: CPythonTopic :: Software Development :: Build ToolsTopic :: Software Development :: LibrariesTopic :: Software Development :: Libraries :: Python ModulesTopic :: Software Development :: Testing

Tags

advanced python datastructuresweaklist listdict attrdictpyats datastructuresextended collection typestesting framework utilitiesattribute dictionaryweak reference collections
testing-frameworkdata-structures

More Libraries packages