Skip to content

Commit c3447c9

Browse files
committed
Add py.typed to improving type checking support
1 parent ec71d0e commit c3447c9

File tree

4 files changed

+191
-2
lines changed

4 files changed

+191
-2
lines changed

MANIFEST.in

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
include docs/source/index.rst
22
include LICENSE
33
include docs/source/changelog.rst
4-
recursive-include flask_inputfilter *.py *.pyi *.pyx *.pxd *.h
4+
recursive-include flask_inputfilter *.py *.pyi *.pyx *.pxd *.h py.typed
55

66
recursive-exclude flask_inputfilter *.cpp
77

docs/source/changelog.rst

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,14 @@ Changelog
44
All notable changes to this project will be documented in this file.
55

66

7+
[0.7.1] - 2025-09-27
8+
--------------------
9+
10+
Added
11+
^^^^^
12+
- Added comprehensive ``py.typed`` file for PEP 561 compliance, improving type checking support for mypy and other static type checkers.
13+
14+
715
[0.7.0] - 2025-09-25
816
--------------------
917

flask_inputfilter/py.typed

Lines changed: 181 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,181 @@
1+
# Flask InputFilter - Type Annotations Manifest
2+
# PEP 561 compliant package with inline type hints and stub files
3+
#
4+
# This file indicates that the flask_inputfilter package supports type checking
5+
# according to PEP 561 and contains both inline type hints and stub files.
6+
7+
# Package: flask_inputfilter
8+
# Description: A library to easily filter and validate input data in Flask applications
9+
# Version: 0.7.0
10+
# Type Support: Full PEP 561 compliance with inline types and stub files
11+
12+
# === CORE MODULES ===
13+
# Main InputFilter class with type stubs
14+
input_filter.py
15+
input_filter.pyi
16+
17+
# Cython optimized core (compiled with type information)
18+
_input_filter.pyx
19+
_input_filter.pxd
20+
21+
# === DECLARATIVE API ===
22+
declarative/factory_functions.py
23+
declarative/factory_functions.pyi
24+
declarative/field_descriptor.py
25+
declarative/field_descriptor.pyi
26+
declarative/_factory_functions.pyx
27+
declarative/_factory_functions.pxd
28+
declarative/_field_descriptor.pyx
29+
declarative/_field_descriptor.pxd
30+
31+
# === TYPE-SAFE MODULES ===
32+
33+
# Conditions (18 modules)
34+
conditions/base_condition.py
35+
conditions/array_length_equal_condition.py
36+
conditions/array_longer_than_condition.py
37+
conditions/custom_condition.py
38+
conditions/equal_condition.py
39+
conditions/exactly_n_of_condition.py
40+
conditions/exactly_n_of_matches_condition.py
41+
conditions/exactly_one_of_condition.py
42+
conditions/exactly_one_of_matches_condition.py
43+
conditions/integer_bigger_than_condition.py
44+
conditions/n_of_condition.py
45+
conditions/n_of_matches_condition.py
46+
conditions/not_equal_condition.py
47+
conditions/one_of_condition.py
48+
conditions/one_of_matches_condition.py
49+
conditions/required_if_condition.py
50+
conditions/string_longer_than_condition.py
51+
conditions/temporal_order_condition.py
52+
53+
# Filters (32 modules)
54+
filters/base_filter.py
55+
filters/array_element_filter.py
56+
filters/array_explode_filter.py
57+
filters/base_64_image_downscale_filter.py
58+
filters/base_64_image_resize_filter.py
59+
filters/blacklist_filter.py
60+
filters/string_remove_emojis_filter.py
61+
filters/string_slugify_filter.py
62+
filters/string_trim_filter.py
63+
filters/to_alpha_numeric_filter.py
64+
filters/to_base64_image_filter.py
65+
filters/to_boolean_filter.py
66+
filters/to_camel_case_filter.py
67+
filters/to_dataclass_filter.py
68+
filters/to_date_filter.py
69+
filters/to_datetime_filter.py
70+
filters/to_digits_filter.py
71+
filters/to_enum_filter.py
72+
filters/to_float_filter.py
73+
filters/to_image_filter.py
74+
filters/to_integer_filter.py
75+
filters/to_iso_filter.py
76+
filters/to_lower_filter.py
77+
filters/to_normalized_unicode_filter.py
78+
filters/to_null_filter.py
79+
filters/to_pascal_case_filter.py
80+
filters/to_snake_case_filter.py
81+
filters/to_string_filter.py
82+
filters/to_typed_dict_filter.py
83+
filters/to_upper_filter.py
84+
filters/truncate_filter.py
85+
filters/whitelist_filter.py
86+
filters/whitespace_collapse_filter.py
87+
88+
# Validators (48 modules)
89+
validators/base_validator.py
90+
validators/and_validator.py
91+
validators/array_element_validator.py
92+
validators/array_length_validator.py
93+
validators/custom_json_validator.py
94+
validators/date_after_validator.py
95+
validators/date_before_validator.py
96+
validators/date_range_validator.py
97+
validators/float_precision_validator.py
98+
validators/in_array_validator.py
99+
validators/in_enum_validator.py
100+
validators/is_array_validator.py
101+
validators/is_base_64_image_correct_size_validator.py
102+
validators/is_base_64_image_validator.py
103+
validators/is_boolean_validator.py
104+
validators/is_dataclass_validator.py
105+
validators/is_date_validator.py
106+
validators/is_datetime_validator.py
107+
validators/is_float_validator.py
108+
validators/is_future_date_validator.py
109+
validators/is_hexadecimal_validator.py
110+
validators/is_horizontal_image_validator.py
111+
validators/is_html_validator.py
112+
validators/is_image_validator.py
113+
validators/is_instance_validator.py
114+
validators/is_integer_validator.py
115+
validators/is_json_validator.py
116+
validators/is_lowercase_validator.py
117+
validators/is_mac_address_validator.py
118+
validators/is_past_date_validator.py
119+
validators/is_port_validator.py
120+
validators/is_rgb_color_validator.py
121+
validators/is_string_validator.py
122+
validators/is_typed_dict_validator.py
123+
validators/is_uppercase_validator.py
124+
validators/is_url_validator.py
125+
validators/is_uuid_validator.py
126+
validators/is_vertical_image_validator.py
127+
validators/is_weekday_validator.py
128+
validators/is_weekend_validator.py
129+
validators/length_validator.py
130+
validators/not_in_array_validator.py
131+
validators/not_validator.py
132+
validators/or_validator.py
133+
validators/range_validator.py
134+
validators/regex_validator.py
135+
validators/xor_validator.py
136+
137+
# Enums (3 modules)
138+
enums/image_format_enum.py
139+
enums/regex_enum.py
140+
enums/unicode_form_enum.py
141+
142+
# Exceptions (1 module)
143+
exceptions/validation_error.py
144+
145+
# Helpers (1 module)
146+
helpers/parse_date.py
147+
148+
# === CYTHON MIXINS WITH TYPE SUPPORT ===
149+
mixins/data_mixin/data_mixin.py
150+
mixins/data_mixin/_data_mixin.pyx
151+
mixins/data_mixin/_data_mixin.pxd
152+
mixins/external_api_mixin/external_api_mixin.py
153+
mixins/external_api_mixin/_external_api_mixin.pyx
154+
mixins/external_api_mixin/_external_api_mixin.pxd
155+
mixins/validation_mixin/validation_mixin.py
156+
mixins/validation_mixin/_validation_mixin.pyx
157+
mixins/validation_mixin/_validation_mixin.pxd
158+
159+
# === CYTHON MODELS WITH TYPE SUPPORT ===
160+
models/base_condition/base_condition.py
161+
models/base_condition/_base_condition.pyx
162+
models/base_condition/_base_condition.pxd
163+
models/base_filter/base_filter.py
164+
models/base_filter/_base_filter.pyx
165+
models/base_filter/_base_filter.pxd
166+
models/base_validator/base_validator.py
167+
models/base_validator/_base_validator.pyx
168+
models/base_validator/_base_validator.pxd
169+
models/external_api_config/external_api_config.py
170+
models/external_api_config/_external_api_config.pxd
171+
models/external_api_config/_external_api_config.pyx
172+
models/field_model/field_model.py
173+
models/field_model/_field_model.pyx
174+
models/field_model/_field_model.pxd
175+
176+
# === TYPE CHECKING NOTES ===
177+
# - All .py files contain inline type hints
178+
# - .pyi files provide additional type stub information
179+
# - .pyx/.pxd files are Cython extensions with type declarations
180+
# - Package supports Python 3.7+ with comprehensive type coverage
181+
# - Compatible with mypy, pyright, and other PEP 561 compliant type checkers

pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
44

55
[project]
66
name = "flask_inputfilter"
7-
version = "0.7.0"
7+
version = "0.7.1"
88
description = "A library to easily filter and validate input data in Flask applications"
99
readme = "README.md"
1010
keywords = [

0 commit comments

Comments
 (0)