Release notes

itemloaders 1.5.0 (2026-09-29)

  • 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)

itemloaders 1.4.0 (2026-01-29)

  • Dropped 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)

itemloaders 1.3.2 (2024-09-30)

  • 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)

itemloaders 1.3.1 (2024-06-03)

  • Fixed an error when using nested loaders with empty matches that was introduced in 1.3.0 (#88)

itemloaders 1.3.0 (2024-05-30)

  • Added 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)

itemloaders 1.2.0 (2024-04-18)

  • 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)

itemloaders 1.1.0 (2023-04-21)

  • Added 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)

itemloaders 1.0.6 (2022-08-29)

  • 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)

itemloaders 1.0.5 (2022-08-25)

  • Allow additional args to be passed when calling ItemLoader.add_xpath() (#48)

  • Fixed missing space in an exception message (#47)

  • Updated company name in author and copyright sections (#42)

  • Added official support for Python 3.9 and improved PyPy compatibility (#44)

  • Added official support for Python 3.10 (#53)

itemloaders 1.0.4 (2020-11-12)

itemloaders 1.0.3 (2020-09-09)

itemloaders 1.0.2 (2020-08-05)

  • Included the license file in the source releases (#13)

  • Cleaned up some remnants of Python 2 (#16, #17)

itemloaders 1.0.1 (2020-07-02)

  • 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)

itemloaders 1.0.0 (2020-05-18)

  • Initial release, based on a part of the Scrapy code base.