Skip to content

Commit 31f44b2

Browse files
committed
47 | Migrate components in new subfolder and add whl build for aarch64
1 parent 0a787b6 commit 31f44b2

File tree

239 files changed

+4382
-3229
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

239 files changed

+4382
-3229
lines changed

.github/workflows/publish-to-pypi.yaml

Lines changed: 31 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ jobs:
3030
env:
3131
CIBW_BUILD: "cp37-* cp38-* cp39-* cp310-* cp311-* cp312-* cp313-* cp314-*"
3232
CIBW_IGNORE: "*linux_x86_64*"
33-
CIBW_BEFORE_BUILD: pip install cffi
33+
CIBW_PRERELEASE_PYTHONS: "1"
3434
run: python -m cibuildwheel --output-dir dist
3535

3636
- name: Upload wheels
@@ -39,6 +39,35 @@ jobs:
3939
name: pkg-${{ matrix.os }}-${{ strategy.job-index }}
4040
path: ./dist/*.whl
4141

42+
build-whl-linux-aarch64:
43+
runs-on: ubuntu-latest
44+
steps:
45+
- uses: actions/checkout@v4
46+
47+
- uses: docker/setup-qemu-action@v3
48+
with:
49+
platforms: all
50+
51+
- uses: actions/setup-python@v5
52+
with:
53+
python-version: 3.11
54+
55+
- name: Install build tools
56+
run: python -m pip install cibuildwheel
57+
58+
- name: Build wheel (linux-aarch64)
59+
env:
60+
CIBW_BUILD: "cp37-manylinux_aarch64 cp38-manylinux_aarch64 cp39-manylinux_aarch64 cp310-manylinux_aarch64 cp311-manylinux_aarch64 cp312-manylinux_aarch64 cp313-manylinux_aarch64 cp314-manylinux_aarch64"
61+
CIBW_ARCHS: "aarch64"
62+
CIBW_PRERELEASE_PYTHONS: "1"
63+
run: python -m cibuildwheel --output-dir dist
64+
65+
- name: Upload wheels (linux-aarch64)
66+
uses: actions/upload-artifact@v4
67+
with:
68+
name: pkg-linux-aarch64
69+
path: ./dist/*.whl
70+
4271
build-sdist:
4372
runs-on: ubuntu-latest
4473

@@ -62,7 +91,7 @@ jobs:
6291
path: ./dist/*.tar.gz
6392

6493
publish:
65-
needs: [build-whl, build-sdist]
94+
needs: [build-whl, build-whl-linux-aarch64, build-sdist]
6695
runs-on: ubuntu-latest
6796

6897
environment:

.github/workflows/test-lib-building.yaml

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,6 @@ jobs:
3030
3131
- name: Verify library usage - Part I - installation
3232
run: |
33-
python -c "import flask_inputfilter.InputFilter"
3433
python -c "from flask_inputfilter import InputFilter"
3534
3635
- name: Verify library usage - Part II - functional test
@@ -40,7 +39,7 @@ jobs:
4039
run: |
4140
output=$(python -c "from flask_inputfilter import InputFilter; print(InputFilter)")
4241
43-
if [ "$output" = "<class 'flask_inputfilter.InputFilter.InputFilter'>" ]; then
42+
if [ "$output" = "<class 'flask_inputfilter.input_filter.InputFilter'>" ]; then
4443
echo "Test passed: Correct class returned"
4544
else
4645
echo "Test failed: Unexpected output - $output"
@@ -74,7 +73,6 @@ jobs:
7473
7574
- name: Verify library usage - Part I - installation
7675
run: |
77-
python -c "import flask_inputfilter.InputFilter"
7876
python -c "from flask_inputfilter import InputFilter"
7977
8078
- name: Verify library usage - Part II - functional test
@@ -84,7 +82,7 @@ jobs:
8482
run: |
8583
output=$(python -c "from flask_inputfilter import InputFilter; print(InputFilter)")
8684
87-
if [ "$output" = "<class 'flask_inputfilter._InputFilter.InputFilter'>" ]; then
85+
if [ "$output" = "<class 'flask_inputfilter._input_filter.InputFilter'>" ]; then
8886
echo "Test passed: Correct class returned"
8987
else
9088
echo "Test failed: Unexpected output - $output"

README.rst

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -60,10 +60,10 @@ Definition
6060
.. code-block:: python
6161
6262
from flask_inputfilter import InputFilter
63-
from flask_inputfilter.Condition import ExactlyOneOfCondition
64-
from flask_inputfilter.Enum import RegexEnum
65-
from flask_inputfilter.Filter import StringTrimFilter, ToIntegerFilter, ToNullFilter
66-
from flask_inputfilter.Validator import IsIntegerValidator, IsStringValidator, RegexValidator
63+
from flask_inputfilter.conditions import ExactlyOneOfCondition
64+
from flask_inputfilter.enums import RegexEnum
65+
from flask_inputfilter.filters import StringTrimFilter, ToIntegerFilter, ToNullFilter
66+
from flask_inputfilter.validators import IsIntegerValidator, IsStringValidator, RegexValidator
6767
6868
class UpdateZipcodeInputFilter(InputFilter):
6969
def __init__(self):

docs/source/changelog.rst

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,37 @@ Changelog
33

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

6+
[0.5.0] - 2025-04-26
7+
--------------------
8+
9+
Changed
10+
^^^^^^^
11+
- Moved components to subfolders to improve readability and maintainability.
12+
The following components have been moved:
13+
- ``Condition`` => ``conditions``
14+
- ``Enum`` => ``enums``
15+
- ``Exception`` => ``exceptions``
16+
- ``Filter`` => ``filters``
17+
- ``Mixin`` => ``mixins``
18+
- ``Model`` => ``models``
19+
- ``Validator`` => ``validators``
20+
21+
But the old import paths are still available for backward compatibility, but
22+
because the old path will be abandoned in the future, it is recommended
23+
to use the new paths.
24+
25+
- Renamed files into snake_case to follow the PEP8 standard.
26+
This requires a migration if you are importing the files directly.
27+
e.g. ``from flask_inputfilter.filters import Base64ImageResizeFilter`` to
28+
``from flask_inputfilter.filters.base64_image_resize_filter import Base64ImageResizeFilter``.
29+
30+
31+
632
[0.4.3a1] - 2025-04-26
733
----------------------
834

935
Added
36+
^^^^^
1037
- whl generation for linux too.
1138

1239

docs/source/conf.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
project = "flask-inputfilter"
22
copyright = "2025, Leander Cain Slotosch"
33
author = "Leander Cain Slotosch"
4-
release = "0.4.3a1"
4+
release = "0.5.0"
55

66
extensions = ["sphinx_rtd_theme", "sphinx_design"]
77

docs/source/guides/create_own_components.rst

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ Example implementation
3333
3434
from typing import Any
3535
36-
from flask_inputfilter.Condition import BaseCondition
36+
from flask_inputfilter.conditions import BaseCondition
3737
3838
3939
class EqualCondition(BaseCondition):
@@ -71,7 +71,7 @@ Example implementation
7171
from datetime import date, datetime
7272
from typing import Any
7373
74-
from flask_inputfilter.Filter import BaseFilter
74+
from flask_inputfilter.filters import BaseFilter
7575
7676
7777
class ToDateTimeFilter(BaseFilter):
@@ -117,8 +117,8 @@ Example implementation
117117
118118
from typing import Any, Optional
119119
120-
from flask_inputfilter.Exception import ValidationError
121-
from flask_inputfilter.Validator import BaseValidator
120+
from flask_inputfilter.exceptions import ValidationError
121+
from flask_inputfilter.validators import BaseValidator
122122
123123
124124
class InArrayValidator(BaseValidator):

docs/source/guides/frontend_validation.rst

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -15,10 +15,10 @@ Example implementation
1515
1616
from flask import Response, Flask
1717
from flask_inputfilter import InputFilter
18-
from flask_inputfilter.Condition import ExactlyOneOfCondition
19-
from flask_inputfilter.Enum import RegexEnum
20-
from flask_inputfilter.Filter import StringTrimFilter, ToIntegerFilter, ToNullFilter
21-
from flask_inputfilter.Validator import IsIntegerValidator, IsStringValidator, RegexValidator
18+
from flask_inputfilter.conditions import ExactlyOneOfCondition
19+
from flask_inputfilter.enums import RegexEnum
20+
from flask_inputfilter.filters import StringTrimFilter, ToIntegerFilter, ToNullFilter
21+
from flask_inputfilter.validators import IsIntegerValidator, IsStringValidator, RegexValidator
2222
2323
app = Flask(__name__)
2424

docs/source/index.rst

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -56,10 +56,10 @@ Definition
5656
.. code-block:: python
5757
5858
from flask_inputfilter import InputFilter
59-
from flask_inputfilter.Condition import ExactlyOneOfCondition
60-
from flask_inputfilter.Enum import RegexEnum
61-
from flask_inputfilter.Filter import StringTrimFilter, ToIntegerFilter, ToNullFilter
62-
from flask_inputfilter.Validator import IsIntegerValidator, IsStringValidator, RegexValidator
59+
from flask_inputfilter.conditions import ExactlyOneOfCondition
60+
from flask_inputfilter.enums import RegexEnum
61+
from flask_inputfilter.filters import StringTrimFilter, ToIntegerFilter, ToNullFilter
62+
from flask_inputfilter.validators import IsIntegerValidator, IsStringValidator, RegexValidator
6363
6464
class UpdateZipcodeInputFilter(InputFilter):
6565
def __init__(self):

docs/source/options/condition.rst

Lines changed: 24 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -14,9 +14,9 @@ Example
1414
.. code-block:: python
1515
1616
from flask_inputfilter import InputFilter
17-
from flask_inputfilter.Condition import OneOfCondition
18-
from flask_inputfilter.Filter import StringTrimFilter
19-
from flask_inputfilter.Validator import IsStringValidator
17+
from flask_inputfilter.conditions import OneOfCondition
18+
from flask_inputfilter.filters import StringTrimFilter
19+
from flask_inputfilter.validators import IsStringValidator
2020
2121
class TestInputFilter(InputFilter):
2222
def __init__(self):
@@ -84,8 +84,8 @@ Validates that the length of the array from ``first_array_field`` is equal to th
8484
.. code-block:: python
8585
8686
from flask_inputfilter import InputFilter
87-
from flask_inputfilter.Condition import ArrayLengthEqualCondition
88-
from flask_inputfilter.Validator import IsArrayValidator
87+
from flask_inputfilter.conditions import ArrayLengthEqualCondition
88+
from flask_inputfilter.validators import IsArrayValidator
8989
9090
class ArrayLengthFilter(InputFilter):
9191
def __init__(self):
@@ -124,8 +124,8 @@ Validates that the array in ``longer_field`` has more elements than the array in
124124
.. code-block:: python
125125
126126
from flask_inputfilter import InputFilter
127-
from flask_inputfilter.Condition import ArrayLongerThanCondition
128-
from flask_inputfilter.Validator import IsArrayValidator
127+
from flask_inputfilter.conditions import ArrayLongerThanCondition
128+
from flask_inputfilter.validators import IsArrayValidator
129129
130130
class ArrayComparisonFilter(InputFilter):
131131
def __init__(self):
@@ -163,8 +163,8 @@ Executes the provided callable with the input data. The condition passes if the
163163
.. code-block:: python
164164
165165
from flask_inputfilter import InputFilter
166-
from flask_inputfilter.Condition import CustomCondition
167-
from flask_inputfilter.Validator import IsIntegerValidator
166+
from flask_inputfilter.conditions import CustomCondition
167+
from flask_inputfilter.validators import IsIntegerValidator
168168
169169
def my_custom_condition(data):
170170
return data.get('age', 0) >= 18
@@ -201,7 +201,7 @@ Validates that the values of ``first_field`` and ``second_field`` are equal. Fai
201201
.. code-block:: python
202202
203203
from flask_inputfilter import InputFilter
204-
from flask_inputfilter.Condition import EqualCondition
204+
from flask_inputfilter.conditions import EqualCondition
205205
206206
class EqualFieldsFilter(InputFilter):
207207
def __init__(self):
@@ -238,7 +238,7 @@ Counts the number of specified fields present in the data and validates that the
238238
.. code-block:: python
239239
240240
from flask_inputfilter import InputFilter
241-
from flask_inputfilter.Condition import ExactlyNOfCondition
241+
from flask_inputfilter.conditions import ExactlyNOfCondition
242242
243243
class ExactFieldsFilter(InputFilter):
244244
def __init__(self):
@@ -280,7 +280,7 @@ Validates that exactly ``n`` fields among the specified ones have the given valu
280280
.. code-block:: python
281281
282282
from flask_inputfilter import InputFilter
283-
from flask_inputfilter.Condition import ExactlyNOfMatchesCondition
283+
from flask_inputfilter.conditions import ExactlyNOfMatchesCondition
284284
285285
class MatchFieldsFilter(InputFilter):
286286
def __init__(self):
@@ -316,7 +316,7 @@ Validates that only one field among the specified fields exists in the input dat
316316
.. code-block:: python
317317
318318
from flask_inputfilter import InputFilter
319-
from flask_inputfilter.Condition import ExactlyOneOfCondition
319+
from flask_inputfilter.conditions import ExactlyOneOfCondition
320320
321321
class OneFieldFilter(InputFilter):
322322
def __init__(self):
@@ -353,7 +353,7 @@ Validates that exactly one of the specified fields has the given value.
353353
.. code-block:: python
354354
355355
from flask_inputfilter import InputFilter
356-
from flask_inputfilter.Condition import ExactlyOneOfMatchesCondition
356+
from flask_inputfilter.conditions import ExactlyOneOfMatchesCondition
357357
358358
class OneMatchFilter(InputFilter):
359359
def __init__(self):
@@ -390,8 +390,8 @@ Validates that the integer value from ``bigger_field`` is greater than the value
390390
.. code-block:: python
391391
392392
from flask_inputfilter import InputFilter
393-
from flask_inputfilter.Condition import IntegerBiggerThanCondition
394-
from flask_inputfilter.Validator import IsIntegerValidator
393+
from flask_inputfilter.conditions import IntegerBiggerThanCondition
394+
from flask_inputfilter.validators import IsIntegerValidator
395395
396396
class NumberComparisonFilter(InputFilter):
397397
def __init__(self):
@@ -430,7 +430,7 @@ Validates that the count of the specified fields present is greater than or equa
430430
.. code-block:: python
431431
432432
from flask_inputfilter import InputFilter
433-
from flask_inputfilter.Condition import NOfCondition
433+
from flask_inputfilter.conditions import NOfCondition
434434
435435
class MinimumFieldsFilter(InputFilter):
436436
def __init__(self):
@@ -472,7 +472,7 @@ Validates that the count of fields matching the given value is greater than or e
472472
.. code-block:: python
473473
474474
from flask_inputfilter import InputFilter
475-
from flask_inputfilter.Condition import NOfMatchesCondition
475+
from flask_inputfilter.conditions import NOfMatchesCondition
476476
477477
class MinimumMatchFilter(InputFilter):
478478
def __init__(self):
@@ -509,7 +509,7 @@ Validates that the values of ``first_field`` and ``second_field`` are not equal.
509509
.. code-block:: python
510510
511511
from flask_inputfilter import InputFilter
512-
from flask_inputfilter.Condition import NotEqualCondition
512+
from flask_inputfilter.conditions import NotEqualCondition
513513
514514
class DifferenceFilter(InputFilter):
515515
def __init__(self):
@@ -545,7 +545,7 @@ Validates that at least one field from the specified list is present. Fails if n
545545
.. code-block:: python
546546
547547
from flask_inputfilter import InputFilter
548-
from flask_inputfilter.Condition import OneOfCondition
548+
from flask_inputfilter.conditions import OneOfCondition
549549
550550
class OneFieldRequiredFilter(InputFilter):
551551
def __init__(self):
@@ -582,7 +582,7 @@ Validates that at least one field from the specified list has the given value.
582582
.. code-block:: python
583583
584584
from flask_inputfilter import InputFilter
585-
from flask_inputfilter.Condition import OneOfMatchesCondition
585+
from flask_inputfilter.conditions import OneOfMatchesCondition
586586
587587
class OneMatchRequiredFilter(InputFilter):
588588
def __init__(self):
@@ -620,7 +620,7 @@ If the value of ``condition_field`` matches the specified value (or is in the sp
620620
.. code-block:: python
621621
622622
from flask_inputfilter import InputFilter
623-
from flask_inputfilter.Condition import RequiredIfCondition
623+
from flask_inputfilter.conditions import RequiredIfCondition
624624
625625
class ConditionalRequiredFilter(InputFilter):
626626
def __init__(self):
@@ -663,7 +663,7 @@ Validates that the string in ``longer_field`` has a greater length than the stri
663663
.. code-block:: python
664664
665665
from flask_inputfilter import InputFilter
666-
from flask_inputfilter.Condition import StringLongerThanCondition
666+
from flask_inputfilter.conditions import StringLongerThanCondition
667667
668668
class StringLengthFilter(InputFilter):
669669
def __init__(self):
@@ -700,7 +700,7 @@ Validates that the date in ``smaller_date_field`` is earlier than the date in ``
700700
.. code-block:: python
701701
702702
from flask_inputfilter import InputFilter
703-
from flask_inputfilter.Condition import TemporalOrderCondition
703+
from flask_inputfilter.conditions import TemporalOrderCondition
704704
705705
class DateOrderFilter(InputFilter):
706706
def __init__(self):

0 commit comments

Comments
 (0)