Dropped Python 3.8 support, added official Python 3.13 and PyPy 3.10 support (#79, #87).
Fixed the typing check when run with Scrapy 2.12.0+ (#88).
Fixed MANIFEST.in
that was missing some files
(#84).
Enabled pre-commit
(#85).
Dropped Python 3.7 support, added official Python 3.12 support (#75, #77).
Updated the documentation and the type hint about ItemAdapter.ADAPTER_CLASSES
to say that subclasses can use any iterable, not just collections.deque
(#74).
Documented that Pydantic >= 2
is not supported yet
(#73).
Updated CI configuration (#77, #80).
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 (#64)
Slight performance improvement (#62)
Improve performance by removing imports inside functions (#60)
Added ItemAdapter.is_item_class
and ItemAdapter.get_field_meta_from_class
(#54)
Added built-in support for pydantic
models (#53)
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).
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).
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
.
Minor CI and test changes.
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
.
Refactored and extended tests.
Code style and documentation fixes.
Removed support for MutableMapping
.
Removed metadata support for arbitrary mutable mappings.
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.
Also improved the README.
Initial release.