NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
PyPI · #2694 most downloaded on PyPI
Base library for scrapy's ItemLoader
Last release 5 days ago
29 Sep 2026
Release timing varies
gaps range from 5 weeks to 1.8 years
Nearly every release is documented
notes for 14 of 15 stable releases
Nothing withdrawn
no release was ever pulled
6 years old
15 releases · first in 2020
One column per quarter.
Trigger releases on tag pushes
Trigger releases on tag pushes
Backward-incompatible change: when an Item Loader instantiates the item itself, from default_item_class , the field defaults of that item are no longer treated as collected data, so they no longer go through processors and no longer get combined with the values you add. They still reach the loaded item for fields that get no data.
To get the old behavior, pass the item yourself, e.g. ItemLoader(item=MyItem()) . ( #117 )
Backward-incompatible change: sets and iterators other than generators, such as the result of map() , are now collected value by value, like lists, tuples and generators already were, instead of as a single value.
To collect one of them as a single value, wrap it in a list, e.g. loader.add_value("tags", [{"a", "b"}]) . ( #120 )
Added a stats parameter to ItemLoader to count how often each parsing rule matches, to find rules that are no longer needed. See Tracking parsing rule usage . ( #121 )
Nested loaders now inherit the context of their parent loader, with keyword arguments passed to nested_xpath() and nested_css() taking precedence. ( #34 , #124 )
Fixed functools.partial() processors missing their loader_context when the value of a positionally-bound argument matched the name of an unbound parameter, e.g. partial(func, "loader_context") . ( #125 , #126 )
Improved performance. ( #119 , #120 )
Documentation improvements. ( #111 , #116 , #118 )
CI and test improvements. ( #114 , #115 , #122 , #123 , #127 )
Dropped support for Python 3.8-3.9 and PyPy 3.9-3.10
hatchlingDropped support for Python 3.8-3.9 and PyPy 3.9-3.10 ( #94 , #104 )
Added support for Python 3.14 and PyPy 3.11 ( #98 , #104 )
Switched the build system to hatchling ( #100 )
Documentation improvements ( #106 )
CI improvements ( #95 , #96 , #97 , #99 , #102 , #103 , #107 )
Added official support for the upcoming Python 3.13
w3lib from direct dependencies (it's not used directly but is an indirect dependency via parsel)Added official support for the upcoming Python 3.13 ( #91 )
Removed w3lib from direct dependencies (it’s not used directly but is an indirect dependency via parsel ). ( #90 )
Improved CI ( #92 )
Added official support for the upcoming Python 3.13 (91)
Removed w3lib from direct dependencies (it's not used directly but is an indirect dependency via parsel). (90)
Improved CI (92)
Fixed an error when using nested loaders with empty matches that was introduced in 1.3.0
Fixed an error when using nested loaders with empty matches that was introduced in 1.3.0 (88)
Added support for method chaining to the add_* and replace_* methods
add_* and replace_* methodspy.typedAdded support for method chaining to the add_* and replace_* methods, so you can now write code such as loader.add_xpath("name", "//body/text()").add_value("url", "http://example.com") ( #81 )
Added type hints and py.typed ( #80 , #83 )
Made the docs builds reproducible ( #82 )
Added official support for Python 3.12 and PyPy 3.10
itemloaders.utils.arg_to_iterAdded official support for Python 3.12 and PyPy 3.10 ( #75 )
Removed official support for Python 3.7 ( #72 )
Improved performance of itemloaders.utils.arg_to_iter ( #51 )
Fixed test expectations on recent Python versions ( #77 )
Improved CI ( #78 )
Added official support for Python 3.12 and PyPy 3.10 (75)
Removed official support for Python 3.7 (72)
Improved performance of itemloaders.utils.arg_to_iter (51)
Fixed test expectations on recent Python versions (77)
Improved CI (78)
Added JMESPath support (ItemLoader.add_jmes etc.), requiring Parsel 1.8.1+
ItemLoader.add_jmes etc.), requiring Parsel 1.8.1+pre-commit support and applied changes from black and flake8Added JMESPath support ( ItemLoader.add_jmes() etc.), requiring Parsel 1.8.1+ ( #68 )
Added official support for Python 3.11 ( #59 )
Removed official support for Python 3.6 ( #61 )
Internal code cleanup ( #65 , #66 )
Added pre-commit support and applied changes from black and flake8 ( #70 ).
Improved CI ( #60 )
Fixes a regression introduced in 1.0.5 that would cause the re parameter of ItemLoader.add_xpath and similar methods to be passed to lxml, which would
Fixes a regression introduced in 1.0.5 that would cause the re parameter of ItemLoader.add_xpath and similar methods to be passed to lxml, which would trigger an exception when the value of re was a compiled pattern and not a string (#56).
Allow additional args to be passed when calling ItemLoader.add_xpath
ItemLoader.add_xpath (#48)- When adding a scrapy.Item object as a value into an ItemLoader object, that item is now added as is , instead of becoming a list of keys from its sc
When adding a scrapy.Item object as a value into an ItemLoader object, that item is now added as is , instead of becoming a list of keys from its scrapy.Item.fields ( #28 , #29 )
Increased test coverage ( #27 )
Bump version: 1.0.2 → 1.0.3
Bump version: 1.0.2 → 1.0.3
Calls to ItemLoader.get_output_value() no longer affect the output of ItemLoader.load_item() ( #21 , #22 )
Fixed some documentation links ( #19 , #23 )
Fixed some test warnings ( #24 )
Calls to ItemLoader.get_output_value no longer affect the output of ItemLoader.load_item (21, 22)
Fixed some documentation links (19, 23)
Fixed some test warnings (24)
- Included the license file in the source releases
Included the license file in the source releases ( #13 )
Cleaned up some remnants of Python 2 ( #16 , #17 )
Included the license file in the source releases (13)
Cleaned up some remnants of Python 2 (16, 17)
- Extended item type support to all item types supported by itemadapter
Extended item type support to all item types supported by itemadapter ( #13 )
Input and output processors defined in item field metadata are now taken into account ( #13 )
Lowered some minimum dependency versions ( #10 ):
parsel : 1.5.2 → 1.5.0
w3lib : 1.21.0 → 1.17.0
Improved the README file ( #9 )
Improved continuous integration ( e62d95b )
- Initial release, based on a part of the Scrapy code base.
Initial release, based on a part of the Scrapy code base.
Nothing published for this version
Your coding agent can read these notes before it upgrades. Set up the MCP server →