NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
PyPI · #2678 most downloaded on PyPI
Common interface for data container classes
Last release 8 months ago
08 Jan 2026
Release timing varies
gaps range from 2 weeks to 1.1 years
Nearly every release is documented
notes for 25 of 25 stable releases
Nothing withdrawn
no release was ever pulled
6 years old
25 releases · first in 2020
One column per quarter.
Bump version: 0.13.0 → 0.13.1
Bump version: 0.13.0 → 0.13.1
Fixed get_json_schema() to properly format multiline field docstrings using
inspect.cleandoc(), ensuring consistent indentation and whitespace handling
(#115).
Bump version: 0.12.2 → 0.13.0
Bump version: 0.12.2 → 0.13.0
Added support for Python 3.14 and removed support for PyPy 3.10.
get_json_schema() no longer reports all scrapy.Item fields as required.
Bump version: 0.12.1 → 0.12.2
Bump version: 0.12.1 → 0.12.2
The return value of get_json_schema() is now deterministic (deterministic
order of dict keys and list items).
Bump version: 0.12.0 → 0.12.1
Bump version: 0.12.0 → 0.12.1
Added support for PyPy 3.11 ( #97 ).
Added support for PyPy 3.11 (#97).
Added a new get_json_schema() class method to ItemAdapter and all built-in adapters to output a JSON Schema for a given item class (#101).
Modernized the code base, now making full use of pyproject.toml and using ruff (#96, #98).
Removed functions deprecated in 0.5.0:
Removed functions deprecated in 0.5.0:
itemadapter.utils.is_attrs_instance()itemadapter.utils.is_dataclass_instance()itemadapter.utils.is_pydantic_instance()itemadapter.utils.is_scrapy_item()(#93).
Dropped Python 3.8 support, added official Python 3.13 and PyPy 3.10 support ( #79 , #87 ).
Dropped Python 3.7 support, added official Python 3.12 support ( #75 , #77 ).
ItemAdapter.ADAPTER_CLASSES to say that subclasses can use any iterable, not just collections.deque (#74).Pydantic >= 2 is not supported yet (#73).Add support for Python 3.11. by @wRAR in #65
Full Changelog: v0.7.0...v0.8.0
Dropped Python 3.6 support, and made Python 3.11 support official (#65, #66, #69).
It is now possible to declare custom ItemAdapter subclasses with their own
ADAPTER_CLASSES attribute, allowing to support different item types in
different parts of the same code base
(#68).
Improved type hint support (#67).
ItemAdapter.get_field_names_from_class by @kmike in #64
Improve performance by @elacuesta in https://github.com/scrapy/itemadapter/pull/62
Full Changelog: https://github.com/scrapy/itemadapter/compare/v0.5.0...v0.6.0
Deprecate undocumented predicates from the utils module by @elacuesta in https://github.com/scrapy/itemadapter/pull/56
utils module by @elacuesta in https://github.com/scrapy/itemadapter/pull/56Full Changelog: https://github.com/scrapy/itemadapter/compare/v0.4.0...v0.5.0
Added ItemAdapter.is_item_class and ItemAdapter.get_field_meta_from_class class methods
Added ItemAdapter.is_item_class and ItemAdapter.get_field_meta_from_class class methods (#54)
Added support for `pydantic` models
Highlights:
pydantic models (#53)Added the ability to extend the library to support arbitrary types, by implementing a MutableMapping-based interface (as a consequence of this change,
MutableMapping-based interface (as a consequence of this change, now any type can be used as a Scrapy item! :tada:)Adapter interface: added the ability to support arbitrary types, by implementing a MutableMapping-based interface. By way of this change, now any type can be used as a Scrapy item.
Dropped support for Python 3.5 (#38).
Dropped support for Python 3.5 (#38).
The new get_field_meta_from_class function offers the same functionality as
ItemAdapter.get_field_meta but for an item class, as opposed to an item
object (#34, #35).
ItemAdapter.__repr__ no longer raises exceptions caused by the underlying
item (#31, #41).
Minor improvement to the release process (#37), and cleanup of test warnings (#40).
Added ItemAdapter.asdict, which allows converting an item and all of its nested items into dict objects (#27, #29).
Added ItemAdapter.asdict, which allows converting an item and all of its
nested items into dict objects (#27, #29).
Improved ItemAdapter performance by reducing time complexity for lookups and
traversals for dataclass and attrs items (#28).
ItemAdapter.field_names now returns a KeysView instead of a list.
ItemAdapter.field_names now returns a KeysView instead of a list.
Minor CI and test changes.
ItemAdapter.get_field_meta now returns an empty MappingProxyType object for items without metadata support, instead of raising TypeError.
ItemAdapter.get_field_meta now returns an empty MappingProxyType object for
items without metadata support, instead of raising TypeError.
Improved the README and some docstrings.
Provided full test coverage, and refactored CI configuration, test configuration and tests themselves.
Added support for Scrapy’s BaseItem.
Added support for Scrapy’s BaseItem.
Refactored and extended tests.
Code style and documentation fixes.
Removed support for MutableMapping.
Removed support for MutableMapping.
Removed metadata support for arbitrary mutable mappings.
Removed metadata support for arbitrary mutable mappings.
Rebuild for the Python Package Index.
Rebuild for the Python Package Index.
Split the implementation into several files for better code organization, and without an impact on the existing API import paths.
Split the implementation into several files for better code organization, and without an impact on the existing API import paths.
Also improved the README.
Initial release.
Initial release.
Your coding agent can read these notes before it upgrades. Set up the MCP server →