v0.0.9

pydantic/montyv0.0.9Mar 28, 2026by samuelcolvin

AI Summary

A significant release adding datetime and JSON modules, along with major refactoring to pass VM instead of heap/interns throughout the codebase.

Key Highlights

  • Implemented `datetime` module
  • Implemented `json` module
  • Major refactoring to pass VM instead of heap/interns
  • Added `INT_MAX_STR_DIGITS` limit for BigInt string conversion
  • Support nested subscript assignment
  • Support max() kwargs/default

New Features

  • datetime module
  • json module
  • max() with kwargs and defaults
  • str.expandtabs() method

Full Release Notes

## What's Changed
* try to pass vm around instead of `(heap, interns)` by @davidhewitt in https://github.com/pydantic/monty/pull/234
* Fix stack-depth tracking after break/continue in unreachable code by @thomasst in https://github.com/pydantic/monty/pull/268
* Change hashbrown version to 0.16 by @CremboC in https://github.com/pydantic/monty/pull/267
* Make scheduler required by @davidhewitt in https://github.com/pydantic/monty/pull/274
* don't commit editor settings by @davidhewitt in https://github.com/pydantic/monty/pull/275
* split heap structure methods into `HeapItem` trait by @davidhewitt in https://github.com/pydantic/monty/pull/276
* pass VM instead of heap/interns in bytes & str methods by @davidhewitt in https://github.com/pydantic/monty/pull/277
* Support max() kwargs/default.  by @evalstate in https://github.com/pydantic/monty/pull/272
* Make heap allocation only require shared reference by @davidhewitt in https://github.com/pydantic/monty/pull/278
* Add `INT_MAX_STR_DIGITS` limit for BigInt string conversion by @samuelcolvin in https://github.com/pydantic/monty/pull/284
* Support nested subscript assignment by @samuelcolvin in https://github.com/pydantic/monty/pull/285
* Track memory growth in mutable container operations by @samuelcolvin in https://github.com/pydantic/monty/pull/286
* Run getsentry/codecov-action alongside Codecov in CI by @MathurAditya724 in https://github.com/pydantic/monty/pull/287
* Implement `str.expandtabs(tabsize)` method by @sjhddh in https://github.com/pydantic/monty/pull/266
* Replace `take_data!` pattern inside `Heap` with `HeapReader` API by @davidhewitt in https://github.com/pydantic/monty/pull/265
* update CLAUDE.md for `HeapReader` API by @davidhewitt in https://github.com/pydantic/monty/pull/291
* support named single kwarg by @samuelcolvin in https://github.com/pydantic/monty/pull/288
* Implement `datetime` by @samuelcolvin in https://github.com/pydantic/monty/pull/290
* deny `absolute_paths` with length > 2 with clippy by @samuelcolvin in https://github.com/pydantic/monty/pull/292
* `json` module by @samuelcolvin in https://github.com/pydantic/monty/pull/293

## New Contributors
* @thomasst made their first contribution in https://github.com/pydantic/monty/pull/268
* @CremboC made their first contribution in https://github.com/pydantic/monty/pull/267
* @MathurAditya724 made their first contribution in https://github.com/pydantic/monty/pull/287
* @sjhddh made their first contribution in https://github.com/pydantic/monty/pull/266

**Full Changelog**: https://github.com/pydantic/monty/compare/v0.0.8...v0.0.9