# Release notes

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

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

## itemloaders 1.0.3 (2020-09-09)

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

## 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.