Changelog

All notable changes to this project will be documented in this file.

[0.5.3] - 2025-04-28

Changed

  • Migrated methods from camel to snake case

[0.5.2] - 2025-04-27

Changed

  • Moved multiple internal methods to own FieldMixin - applyFilters - applySteps - checkConditions - checkForRequired - validateField

[0.5.1] - 2025-04-26

Added

  • Added .whl for musllinux_aarch64 to the release process.

[0.5.0] - 2025-04-26

Changed

  • Moved components to subfolders to improve readability and maintainability. The following components have been moved: - Condition => conditions - Enum => enums - Exception => exceptions - Filter => filters - Mixin => mixins - Model => models - Validator => validators

    But the old import paths are still available for backward compatibility, but because the old path will be abandoned in the future, it is recommended to use the new paths.

  • Renamed files into snake_case to follow the PEP8 standard. This requires a migration if you are importing the files directly. e.g. from flask_inputfilter.filters import Base64ImageResizeFilter to from flask_inputfilter.filters.base64_image_resize_filter import Base64ImageResizeFilter.

[0.4.3a1] - 2025-04-26

Added

  • whl generation for linux too.

[0.4.2] - 2025-04-25

Added

  • whl generation for all major versions and envs.

[0.4.1] - 2025-04-24

Changed

  • Introduced first c++ vector in InputFilter to improve performance.

  • Updated required cython version to 3.0 or higher for python 3.7 - 3.11.

  • Moved static methods outside of pure InputFilter class.

[0.4.0] - 2025-04-20

Added

  • Added possibility to use cython for performance improvements. View the guide for more information.

[0.4.0a2] - 2025-04-17

Changed

  • Added fallback for cython to use python if no c++ compiler is installed.

  • super().__init__() is now ONLY optional, if you are using the cython version.

[0.4.0a1] - 2025-04-17

Changed

  • InputFilter now uses cython for performance improvements.

  • Made super().__init__() call optional. You will only need to call it, if you are wanting to limit the allowed methods.

[0.3.1] - 2025-04-14

Changed

  • Updated error handling and changed broad Exception to specific errors.

  • Smaller performance improvements

[0.3.0] - 2025-04-10

Added

  • IsDateTimeValidator

  • IsDateValidator

Changed

  • Updated IsTypedDictValidator` and ``IsDataclassValidator to require a specific model and checks if the input json is in the defined format.

  • Introduced Mixins for parts of InputFilter

  • ConditionMixin

  • DataMixin

  • ErrorHandlingMixin

  • ExternalApiMixin

  • FieldMixin

  • FilterMixin

  • ModelMixin

  • ValidationMixin

Removed

  • RemoveEmojisFilter

  • ToPascaleCaseFilter

  • SlugifyFilter

[0.2.0] - 2025-04-07

Added

  • getErrorMessages

Changed

  • Updated error handling: The first error for each field is now returned in a combined format, enabling more detailed and flexible error handling on the frontend. Check it out

  • Errors received through external_api request get logged.

[0.1.2] - 2025-03-29

Added

  • getConditions

  • getGlobalFilters

  • getGlobalValidators

  • clear

Changed

  • Fixed merge method to fit expected behavior.

[0.1.1] - 2025-03-29

Changed

  • Fixed unexpected message in error message of IsIntegerValidator

[0.1.0] - 2025-03-26

Added

  • Multiple functions to allow a broader usage aside as decorator

  • getErrorMessage

  • getRawValue

  • getRawValues

  • getUnfilteredData

  • getValue

  • getValues

  • hasUnknown

  • isValid

  • merge

  • remove

  • replace

  • setData

  • setUnfilteredData

Removed

  • IsMimeTypeValidator

[0.0.10] - 2025-03-06

Added

  • Added python 3.14 support.

Changed

  • Use FieldModel for field definition. (Only internal change, no impact on usage)

[0.0.9.1] - 2025-02-09

Changed

  • Updated InputFilter to fix the issue with route params.

[0.0.9] - 2025-01-29

Added

  • New copy functionality to copy the value of another field. Check it out

Filter

  • New ToDataclassFilter to convert a dictionary to a dataclass.

  • New ToTypedDictFilter to convert a dictionary to a TypedDict.

Validator

  • New CustomJsonValidator to check if a value is the format of a specific json.

  • New IsDataclassValidator to check if a value is a dataclass.

  • New IsTypedDictValidator to check if a value is a TypedDict.

Changed

  • Moved external API call before the filter and validation process. Before, filters and validators the the external API field where useless, because the value of the field where replaced by the API result.

  • Updated SlugifyFilter to remove accents and other special characters.

[0.0.8] - 2025-01-20

Added

  • New functionality to define steps for a field to have more control over the order of the validation and filtering process.

  • Documentary

Filter

  • New Base64ImageDownscaleFilter to reduce the size of an image.

  • New Base64ImageResizeFilter to reduce the file size of an image.

Validator

  • New IsHorizontalImageValidator to check if an image is horizontal.

  • New IsVerticalImageValidator to check if an image is vertical.

Changed

  • Added UnicodeFormEnum to show possible config values for ToNormalizedUnicodeFilter. Old config is still supported, but will be removed in a later version.

[0.0.7.1] - 2025-01-16

Changed

  • Updated setup.py to fix the issue with the missing subfolders.

[0.0.7] - 2025-01-14

Added

  • Workflow to run tests on all supported Python versions.

  • Added more test coverage for validators and filters.

  • Added tracking of coverage in tests. Check it out

  • New functionality for global filters and validators in InputFilters.

  • New functionality to define custom supported methods.

Validator

  • New NotInArrayValidator to check if a value is not in a list.

  • New NotValidator to invert the result of another validator.

[0.0.6] - 2025-01-12

Added

  • New date validators and filters.

Removed

  • Dropped support for Python 3.6.

[0.0.5] - 2025-01-12

Added

Changed

  • Switched external_api config from dict to class. Check it out

[0.0.4] - 2025-01-09

Added