Skip to content

v0.2.1

Choose a tag to compare

@kondratevdev kondratevdev released this 20 Oct 08:14
· 25 commits to master since this release

What's Changed

Breaking changes

  • Replaced the presets argument of Client.url and PathBuilder
    with the Preset option, which can be combined with other
    processing options in Transform, #12
  • Removed the format argument of Client.url, the output_format
    argument of PathBuilder, and the Transform.format attribute.
    Use Transform(Format('webp')) or Transform(format='webp') instead.
    Output formats are now serialized as processing options,
    like format:webp, instead of source URL extensions, #12 and #18
  • Transform now accepts option instances as positional arguments
    instead of an options tuple. Replace
    Transform(options=(Resize(width=300), Quality(85)))
    with Transform(Resize(width=300), Quality(85)), #14
  • Removed imgproxykit.builders.PathBuilder, use
    imgproxykit.serialization.PathSerializer instead.
    Renamed Client.path_builder_cls to Client.path_serializer_cls
  • Renamed imgproxykit.signing.URLSigner to UrlSigner
    and Client.signer_cls to Client.url_signer_cls, #15
  • Removed imgproxykit.types.EMPTY. Omitted option arguments,
    signing credentials, and transforms now default to None.
    Use None instead of EMPTY when explicitly omitting a value
  • Processing options now use full imgproxy names, like resize,
    width, and quality, instead of rs, w, and q.
    This changes generated URLs and their signatures.
    OptionType now lists full names as well, #19
  • Custom options must now define name as a class attribute
    instead of _name

Features

  • Added unsigned_signature parameter to Client and UrlSigner
    to customize the unsigned URL marker, defaults to unsafe, #6
  • Added signature_size parameter to Client and UrlSigner
    to truncate signatures to match IMGPROXY_SIGNATURE_SIZE, #6
  • Added scalar keyword arguments to Transform, like
    Transform(width=300, quality=85, format='webp').
    They are appended after positional options in keyword order, #20
  • Added ScalarOption base class for single-value options.
    Subclasses are registered by processing option name and can be
    constructed with ScalarOption.from_kwarg, #20
  • All single-value options now accept positional values,
    like Blur(2) and Rotate(90), #14
  • Added Option.validate hook, called when an option is constructed,
    for custom argument validation
  • Processing option classes can now be subclassed
  • Added ty type checking to local checks and CI, #22

Bugfixes

  • Fixed northwest and southwest position codes in Position
    and WatermarkPosition: use nowe and sowe
    instead of the invalid now and sow

Misc

  • Added API Reference documentation for the public API, #5
  • Added integration tests against an imgproxy server using Docker,
    covering processing options, presets, signing, and source URLs
  • Expanded unit tests and enabled doctests for docstrings,
    documentation, and README.md, #7

Full Changelog: v0.1.0...v0.2.1