Skip to content

Releases: mLupine/DeepFriedMarshmallow

1.1.2

03 Sep 19:16
7f8efb1

Choose a tag to compare

1.1.2 (2025-09-03)

Fixed

  • Deserialization: Properly handle unknown=RAISE in JitDeserialize

Full Changelog: 1.1.1...1.1.2

1.1.1

03 Sep 11:37
d05a6ae

Choose a tag to compare

1.1.1 (2025-09-03)

Fixed

  • Inliners: Prefer UUIDInliner over StringInliner in List, Tuple, and Dict plugins. This preserves UUID objects during deserialization instead of coercing them to strings.
  • Deserialization: Guard non-mapping inputs when many=False and fall back to Marshmallow for proper ValidationError messages.

Full Changelog: 1.1.0...1.1.1

1.1.0

03 Sep 08:26
2c7c8e9

Choose a tag to compare

1.1.0 (2025-09-03)

Added

  • Plugin system: Support external inliners and factories via entry points and DFM_PLUGINS env.
  • Built-in inliners for Dict, Tuple, List, Raw, Decimal, Constant, EnumField (when available), and datetime types (Date, DateTime, Time).
    • Decimal inliner only runs on a safe subset:
      • Deserialization: decimal.Decimal(str(x)) when no places/rounding/allow_nan constraints are set.
      • Serialization: as_string=True supported; otherwise falls back to non-JIT behavior.
    • Constant inliner inlines only on serialization; deserialization goes through Marshmallow for correctness.
    • datetime inliners return plain expressions when no imports are needed.
  • Per-schema control: class Meta: dfm = { 'use_inliners': True|False } to enable/disable inliners.
  • Optional profiling: DFM_PROFILE / DFM_FIELD_PROFILE to gather hot spots.

Changed

  • Dropped support for Python 3.8–3.10; minimum supported version is now 3.11.

Fixed

  • Logging in patcher uses a correct __name__ field.

Tests

  • Added coverage for built-in inliners.
  • Added tests for plugin discovery, manual registration, and precedence rules.
  • Added tests to verify that Meta.dfm.use_inliners=False disables built-ins while preserving behavior.

Full Changelog: 1.0.0beta2...1.1.0

1.0.0beta2

09 Oct 12:05
f6458a5

Choose a tag to compare

1.0.0beta2 Pre-release
Pre-release

Full Changelog: 1.0.0dev9...1.0.0beta2

1.0.0dev9

06 Oct 18:29
267cb28

Choose a tag to compare

1.0.0dev9 Pre-release
Pre-release

Full Changelog: 1.0.0beta1...1.0.0dev9

1.0.0beta1

06 Oct 09:42
c661616

Choose a tag to compare

1.0.0beta1 Pre-release
Pre-release

Full Changelog: 1.0.0dev8...1.0.0beta1

1.0.0dev8

05 Oct 17:26
c12f66f

Choose a tag to compare

1.0.0dev8 Pre-release
Pre-release

Full Changelog: 1.0.0dev6...1.0.0dev8

1.0.0dev7

05 Oct 17:24
06c4afb

Choose a tag to compare

1.0.0dev7 Pre-release
Pre-release

Full Changelog: 1.0.0dev6...1.0.0dev7

1.0.0dev6

05 Oct 16:56
280cc07

Choose a tag to compare

1.0.0dev6 Pre-release
Pre-release

Full Changelog: 1.0.0dev5...1.0.0dev6

1.0.0dev5

05 Oct 15:21
137ce6c

Choose a tag to compare

1.0.0dev5 Pre-release
Pre-release

Full Changelog: 1.0.0dev4...1.0.0dev5