flask-structured-api

View on PyPIReverse Dependencies (0)

0.1.3 flask_structured_api-0.1.3-py3-none-any.whl

Wheel Details

Project: flask-structured-api
Version: 0.1.3
Filename: flask_structured_api-0.1.3-py3-none-any.whl
Download: [link]
Size: 81499
MD5: 1cd620dbc17b5d49316c508cd9e81345
SHA256: 0525528bf9c81528a9aca142eca421b1422c4dc7f5200aedab2e6c012b7f400a
Uploaded: 2024-11-23 02:03:10 +0000

dist-info

METADATA

Metadata-Version: 2.1
Name: flask-structured-api
Version: 0.1.3
Summary: A structured Flask API boilerplate with built-in AI capabilities, featuring SQLModel ORM and Pydantic validation
Author: Julian Fleck
Author-Email: Julian Fleck <dev[at]julianfleck.net>
Home-Page: https://github.com/julianfleck/flask-structured-api
Project-Url: Homepage, https://github.com/julianfleck/flask-structured-api
Project-Url: Documentation, https://github.com/julianfleck/flask-structured-api#readme
Project-Url: Repository, https://github.com/julianfleck/flask-structured-api.git
Project-Url: Issues, https://github.com/julianfleck/flask-structured-api/issues
License: Apache-2.0
Keywords: flask,api,boilerplate,ai,structured,sqlmodel,pydantic,orm,validation,postgresql,redis,celery,openapi,jwt,authentication,auth
Classifier: Development Status :: 4 - Beta
Classifier: Framework :: Flask
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: Apache Software License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Topic :: Software Development :: Libraries :: Application Frameworks
Classifier: Topic :: Database :: Front-Ends
Classifier: Topic :: Internet :: WWW/HTTP :: HTTP Servers
Requires-Python: >=3.10
Requires-Dist: Flask (<4.0.0,>=3.1.0)
Requires-Dist: flask-openapi3 (<5.0.0,>=4.0.2)
Requires-Dist: flask-sqlalchemy (<4.0.0,>=3.1.1)
Requires-Dist: flask-migrate (<5.0.0,>=4.0.7)
Requires-Dist: Werkzeug (<4.0.0,>=3.1.3)
Requires-Dist: gunicorn (<22.0.0,>=21.2.0)
Requires-Dist: SQLAlchemy (<3.0.0,>=2.0.36)
Requires-Dist: sqlmodel (<0.1.0,>=0.0.22)
Requires-Dist: psycopg2-binary (<3.0.0,>=2.9.9)
Requires-Dist: alembic (<2.0.0,>=1.13.1)
Requires-Dist: PyJWT (<3.0.0,>=2.10.0)
Requires-Dist: passlib (<2.0.0,>=1.7.4)
Requires-Dist: flask-cors (<5.0.0,>=4.0.0)
Requires-Dist: redis (<6.0.0,>=5.2.0)
Requires-Dist: celery (<6.0.0,>=5.3.6)
Requires-Dist: flower (<3.0.0,>=2.0.1)
Requires-Dist: python-dotenv (<2.0.0,>=1.0.0)
Requires-Dist: email-validator (<3.0.0,>=2.1.0)
Requires-Dist: pydantic[email] (<3.0.0,>=2.5.0)
Requires-Dist: pydantic-settings (<3.0.0,>=2.6.1)
Requires-Dist: psutil (<7.0.0,>=6.1.0)
Requires-Dist: prometheus-client (<1.0.0,>=0.19.0)
Requires-Dist: debugpy (<2.0.0,>=1.8.8); extra == "dev"
Requires-Dist: black (<25.0.0,>=24.1.1); extra == "dev"
Requires-Dist: isort (<6.0.0,>=5.13.2); extra == "dev"
Requires-Dist: flake8 (<8.0.0,>=7.0.0); extra == "dev"
Requires-Dist: mypy (<2.0.0,>=1.8.0); extra == "dev"
Requires-Dist: pre-commit (<4.0.0,>=3.6.0); extra == "dev"
Provides-Extra: dev
Description-Content-Type: text/markdown
License-File: LICENSE
License-File: NOTICE.md
[Description omitted; length: 4196 characters]

WHEEL

Wheel-Version: 1.0
Generator: setuptools (75.6.0)
Root-Is-Purelib: true
Tag: py3-none-any

RECORD

Path Digest Size
flask_structured_api/__init__.py sha256=wsB8vdKXVn-RV0If37pnlYTXRAKa8jObZMawjrlIa5Q 110
flask_structured_api/__version__.py sha256=uQtWcdwMt3VAujkXGyhNGD8pXjlIX51mE-zz5bW2XJE 62
flask_structured_api/_version.py sha256=JFOPPZmL6HTX97Qz5H2Od6seg9LDBUaNblGKYz0HKNg 447
flask_structured_api/factory.py sha256=5A-mjVD8QRixqQuIvo7rdJ0jj6rsme4Y18IJcPv39mU 4156
flask_structured_api/main.py sha256=Rk_UCGvuiacaPMbT3CU8twdRKWzhga-TqTuy985nyRA 206
flask_structured_api/api/.gitkeep sha256=DuOnq9NwoAhiExw3P78RfPLLT6fOm87e-NO9rTDy5HY 57
flask_structured_api/api/core/__init__.py sha256=uP_fY9rQEdg5mDv9Wku8VEGSSiF6pc1HFGMD9tjfJtY 566
flask_structured_api/api/core/root.py sha256=87lNg6m62ADHC1BoQJiQWDPmXokB_fohO4caegjYUFQ 1131
flask_structured_api/api/core/v1/__init__.py sha256=GCX4X4aIaSPGKFM5sfVlb2tFbBTmUBmN-sco3wcusb0 475
flask_structured_api/api/core/v1/routes.py sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU 0
flask_structured_api/api/core/v1/endpoints/__init__.py sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU 0
flask_structured_api/api/core/v1/endpoints/auth.py sha256=cLwmXaLcjvmpGRuX61l9oHrSMmVfHeFBGnu7Gf0qk3U 4200
flask_structured_api/api/core/v1/endpoints/health.py sha256=px00mem4JdKSVpXMdxxSzBkPJdbBMKUv0RHfqnG4Pls 2597
flask_structured_api/api/core/v1/endpoints/storage.py sha256=IVYTGa4YYxgNA5P6r4k5Bes4IJCSPPmptc0N2BEXxw4 6101
flask_structured_api/api/custom/__init__.py sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU 0
flask_structured_api/api/custom/v1/__init__.py sha256=oaUajPlzuxDWDt78zmbC4YIr3Q6AgcCqmNhg-wl6TQU 212
flask_structured_api/api/custom/v1/endpoints/__init__.py sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU 0
flask_structured_api/api/custom/v1/endpoints/hello.py sha256=QLNRqn67605a70mUv8r5YJXtJC4N9Y8kTvIsNy_nXk4 1020
flask_structured_api/core/__init__.py sha256=Nq3eFwovcKC_YInxvD4L6NykJSF7IAqQNUjh7UWf30g 50
flask_structured_api/core/middleware.py sha256=Nqnn8clbgv-5l0PgxcTOldg8mkMKrFn4TvPL-rYUUGg 1
flask_structured_api/core/ai/__init__.py sha256=Nq3eFwovcKC_YInxvD4L6NykJSF7IAqQNUjh7UWf30g 50
flask_structured_api/core/ai/base.py sha256=FSgOv4V-oqxW5j0sxIH6tuqhXJRAPg0ACrrNt_fpuR0 1279
flask_structured_api/core/ai/models.py sha256=FlcyYOijri5WbDxhxPUCLrED9Ixoai4qMxsC4_4xXHo 713
flask_structured_api/core/ai/parser.py sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU 0
flask_structured_api/core/ai/service.py sha256=Ek6WruIVRGHvc6EBK27JYheJni2_r49l6PsONUOA7As 2602
flask_structured_api/core/ai/prompts/__init__.py sha256=Nq3eFwovcKC_YInxvD4L6NykJSF7IAqQNUjh7UWf30g 50
flask_structured_api/core/ai/prompts/base.py sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU 0
flask_structured_api/core/ai/validation/__init__.py sha256=Nq3eFwovcKC_YInxvD4L6NykJSF7IAqQNUjh7UWf30g 50
flask_structured_api/core/ai/validation/base.py sha256=gCj5gKv-WwABOEcDybFO1XRfDhL3PlqqZR802N10lJ0 761
flask_structured_api/core/auth/__init__.py sha256=qRk49b23zxZ_slJnVpAcPHkZoYYg_8w-sX1_dDCEQH4 4820
flask_structured_api/core/cache/__init__.py sha256=Oc8Ru3N3QN8O32vrOktYIqZZXnNkrb__BJea4i-bTEU 1540
flask_structured_api/core/cli/__init__.py sha256=K1QAJw4EL8fFQDtDc7az8e6z3PGCPESCAznDSGNTs2s 346
flask_structured_api/core/cli/api_keys.py sha256=cyWDzA9J2uSSMC4v6zPWgUz7kTeBM_TixGjw-cGuOso 2816
flask_structured_api/core/cli/backup.py sha256=UuyRxgBRJZ68fbQq0S0PpLrrU89_iadUEnmVhTO8V_A 1980
flask_structured_api/core/cli/tokens.py sha256=fm57cYH8GUbLDevBQ89v_jRhJ2UlBpxAvkqrt55sACk 1008
flask_structured_api/core/config/__init__.py sha256=PicmgB8X9uJq_uyZSiZ3yonhr8rnZ0KXfN7s3eBWLZ8 223
flask_structured_api/core/config/settings.py sha256=nzo69D5oahPsixsK1Sc8W78RPRu5d0yvrJd8pJm9FlU 3598
flask_structured_api/core/db/__init__.py sha256=Ug5GuPbC5stynoaZZQLu-bztcdusSwrCtOBPB2m_HwQ 364
flask_structured_api/core/db/engine.py sha256=_sowqzlBNznl5CGV_oySRd9vnZgAIfkscK6erT4V_dA 1096
flask_structured_api/core/db/migrations.py sha256=MhgkOkueH-7tsuxYRBdMv5HkyTx2hnxQGVgYjdIFO9w 2748
flask_structured_api/core/enums/__init__.py sha256=0RzKsVqdpYTKxvFjH3BVtlcmctROMxaj-YaG4nvtgLg 783
flask_structured_api/core/exceptions/__init__.py sha256=b7kLynRQ91B_Ayy_UcKj0CkJQVrX8cFrO8uKb-cSKyM 354
flask_structured_api/core/exceptions/ai.py sha256=1EoR_cWE3859OQypfjLNuZHPYEoWqnehN2wGumQi-FE 680
flask_structured_api/core/exceptions/auth.py sha256=rbiU4auUnPaYV6oNI7vGQp44XHMtGtzxsoK6i4IHAnM 520
flask_structured_api/core/exceptions/base.py sha256=A2v8lqmhiIar9FDi6tYj5yBrZxGY2Ew0ir9_ME65JOE 1010
flask_structured_api/core/exceptions/validation.py sha256=dctJw4KxrGjwkozrVjGVYJGJbUdKNJS8m4rCNEYW1ZQ 964
flask_structured_api/core/handlers/__init__.py sha256=aXJqyi2KdXiYv7bQEk1VI1-TkfOuqqOjdDxUnFzEfMk 787
flask_structured_api/core/handlers/database.py sha256=_i5lDGNFhrrWCvQeyDv4ZEgk2PrkPAiiQ3okH7xK65Y 1078
flask_structured_api/core/handlers/generic.py sha256=msUZYPxs9CHrfdMs4T-l3e7FisK3nVhhgFH_bXbBY6A 2016
flask_structured_api/core/handlers/http.py sha256=iWHlEOWMMnkG-6w-dHZaMo5KnW5L5H8SA94aIOdEqAw 607
flask_structured_api/core/handlers/validation.py sha256=yV9m9_s7VMb5FO5ddSaxSyZznZiIsRLq2iksGpDYbdQ 1841
flask_structured_api/core/middleware/__init__.py sha256=LgT8rvkwmGS9fPe2Pq9y6OTwTZPRqc_WgRHPpwCdoVc 239
flask_structured_api/core/middleware/context.py sha256=yjaSJac_JhZdIU_9XIoecfsOcsYYjf1ETZrA8j2lZak 505
flask_structured_api/core/middleware/decorators.py sha256=D2T5imVBYfQJmKsvpx3NY9-CrywzEs30qaEch97HKiQ 1413
flask_structured_api/core/middleware/logging.py sha256=XbhlK3HfgIQzGLW11QuBWXYD9CjFlLh5lYPpDzlwkuM 5968
flask_structured_api/core/models/__init__.py sha256=63CyaWWm3NmHIcVUhNxJlsbwzS5ewXt_8DeNi7sOOYQ 2013
flask_structured_api/core/models/domain/__init__.py sha256=ZpgcRyFwBP9Y4prn8hsGUAldPjlS1xiBpbINcbB9Og0 218
flask_structured_api/core/models/domain/api_key.py sha256=mwK9Ty5v_d1_QI4ayGDqBa5FVN78uNqQ2-k5296Qmq8 831
flask_structured_api/core/models/domain/base.py sha256=-5oHZZbC-8VLO6E3LvmYs0GuN-jN1d-YhiOA7JLGa4k 733
flask_structured_api/core/models/domain/storage.py sha256=xUPMu1VURhRWXvIVsnxJ-ju9fWCJ0_4AGaEF0tjD8Xk 1880
flask_structured_api/core/models/domain/user.py sha256=hBzBgi9k4_I4nYd8vHlCl4MgiX8z3jZu6xFwktmZHbQ 1415
flask_structured_api/core/models/errors/__init__.py sha256=OuQB4KX5SnZKfPj2qvahNgnqz1gNQQVD5y5gXtzlTt0 369
flask_structured_api/core/models/errors/auth.py sha256=YaQRpyl8k9R5DWUrAktSimJMuNw0sj8bTTogKhtBQJA 210
flask_structured_api/core/models/errors/base.py sha256=pUHDQEJAViq6Hcc47vqng_Q74yGTLgMhk7X9tLp-5yg 195
flask_structured_api/core/models/errors/database.py sha256=AUGzn0gIZRc8csGar6l0Phuzv1oJjhZuqiNdpc6E1ng 221
flask_structured_api/core/models/errors/http.py sha256=jjyy0XKrNlsBYxy26tOx8_tuKP2_EAQQ3fs4gOWAIT0 205
flask_structured_api/core/models/errors/validation.py sha256=g2-sVfDLhyqDQm1scCogZ-WI-nfYOC8QANb4zmqkw3s 448
flask_structured_api/core/models/requests/__init__.py sha256=H3bzpRdY7yTuF8SnC47tLu_L9lqDdg8aOY0V3wxRD6k 364
flask_structured_api/core/models/requests/auth.py sha256=Vqtky7_4veO_Zm_3WH9IQRfa4434YMflvRCVojJMrvk 821
flask_structured_api/core/models/requests/base.py sha256=Wwkmoe4e3jE-CQwIwIwpYxo_GVz2x14silOcrvq6jTo 2721
flask_structured_api/core/models/requests/item.py sha256=9e03WBgA7omnVFbxsSvda37wvBpOjdosfIvtUDWl4mE 636
flask_structured_api/core/models/requests/storage.py sha256=kN34Rl0pMtXzEwefvFKurfqA986QpNYdC5wR3vSl7uA 2564
flask_structured_api/core/models/responses/__init__.py sha256=O5PRBTdPQFlwpxk7srwc7ktX0y16czlEKHfyRix-vL4 1022
flask_structured_api/core/models/responses/ai.py sha256=1ZtLDX07NseepDIQOp_Q__2wgGEy3GAVaRr13QtdscA 338
flask_structured_api/core/models/responses/auth.py sha256=AUC2mSgHzMCSSFzPtm0D2CwR4OmnZ845Bs_ONKyzZSk 784
flask_structured_api/core/models/responses/base.py sha256=m198i3XAckphS0NukEpjS6OQjap6fKppYwMnWBX3npk 1247
flask_structured_api/core/models/responses/base_model.py sha256=OM9XXWMAGccMnHdm7W4TA33CdJqlN9CsAeoSystHSGc 309
flask_structured_api/core/models/responses/model.py sha256=LNF5fhbwkBe8xm6yO_ZMKyAsgn8A1qyGDmahQ-K-WTc 542
flask_structured_api/core/models/responses/storage.py sha256=WNxqPJBzp1ijhvr0cAwXf7lI_PAewY0lhs5i8fR42Ko 4872
flask_structured_api/core/models/responses/warnings.py sha256=q80upLdMtpn33U_ldyQ3v34lRpiUH9Tkwz1YUDuUOu4 273
flask_structured_api/core/scripts/__init__.py sha256=uWEf2_j-RT1h0374YmTBuSmmplody4Z9ex_Xtq6yUhs 624
flask_structured_api/core/scripts/backup_db.py sha256=xO0hwhR6RmFA7nBy2Fu4IomqZfPH7aCAaCO81rA_8jc 8738
flask_structured_api/core/scripts/base.py sha256=JiUBsxcgzO5HrJncT04fMpgYnXCd7g44l_hXaCAhMTw 804
flask_structured_api/core/scripts/celery.py sha256=HVK6D2uhT9LJEhVgqa2KjkZprC7ISY-6nmYAW1y8tSs 1924
flask_structured_api/core/scripts/create_tables.py sha256=gsXdZKuybsyGkTJYWG24ROz76aAPc5MO2-5H8UNY2KQ 485
flask_structured_api/core/scripts/generate_crontab.py sha256=79i_HQ26_O7yYHryIwk156t-q8FI8JdRLHoPE9hvyEI 1021
flask_structured_api/core/scripts/gunicorn.py sha256=-q4Lnb2As29R08vrOAqH5u9o_ttvuozyLxvwvD0y1mA 1253
flask_structured_api/core/scripts/init_db.py sha256=w8tdw7aQBPT1CWQKYuwKUjkGGhCV8bDMUfOcvqjL86s 3509
flask_structured_api/core/scripts/run.py sha256=L7ajA7-AJLWph-9qDaMpsv_WFAPf8WzGUFxTIeq_jsk 772
flask_structured_api/core/scripts/test_backup.py sha256=AoNq2pVa5W51N-zRuCNlbbuEel9-y7mGBhokl_iias0 873
flask_structured_api/core/services/__init__.py sha256=KzdqbECmqzCWSOqmJuSRCAUVfedwW2XmPgwSWEu5w24 121
flask_structured_api/core/services/auth.py sha256=gfU9mxmFZEGGUGy4ThCAKUvhE8lSLDP5Q33sGTjOuMU 10319
flask_structured_api/core/services/storage.py sha256=vSJ3IVbHaZ-lM6cPpDzlXaUKb2pUTeauP6OPnrk6Pns 19781
flask_structured_api/core/session/__init__.py sha256=9zaUoSTCJBgOXygw-vvyAAj_3SG51iMP4wuF3waYvwc 1065
flask_structured_api/core/storage/__init__.py sha256=Nq3eFwovcKC_YInxvD4L6NykJSF7IAqQNUjh7UWf30g 50
flask_structured_api/core/storage/decorators.py sha256=36IE6cCp0AAzsz55cOGim0Vi9EJsEz-2pexBBOUjrhw 2618
flask_structured_api/core/utils/__init__.py sha256=Nq3eFwovcKC_YInxvD4L6NykJSF7IAqQNUjh7UWf30g 50
flask_structured_api/core/utils/logger.py sha256=S_Ts78Sa82PDGX1oJ6ws-M50WTfsw_G0_tYkqhRVcw4 3959
flask_structured_api/core/utils/routes.py sha256=I_IpwHQWAljvBdEYkSkpzn9y4CN8mQgexRvo1HogpxI 2735
flask_structured_api/core/warnings/__init__.py sha256=LU3CfI8picNOIIQXyCdU90BQV8f_KXhr26VvGXf9GtY 2900
flask_structured_api/extensions/__init__.py sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU 0
flask_structured_api/templates/.gitkeep sha256=DuOnq9NwoAhiExw3P78RfPLLT6fOm87e-NO9rTDy5HY 57
flask_structured_api/templates/api/.gitkeep sha256=DuOnq9NwoAhiExw3P78RfPLLT6fOm87e-NO9rTDy5HY 57
flask_structured_api/templates/api/models/.gitkeep sha256=DuOnq9NwoAhiExw3P78RfPLLT6fOm87e-NO9rTDy5HY 57
flask_structured_api/templates/api/services/.gitkeep sha256=DuOnq9NwoAhiExw3P78RfPLLT6fOm87e-NO9rTDy5HY 57
flask_structured_api/templates/api/utils/.gitkeep sha256=DuOnq9NwoAhiExw3P78RfPLLT6fOm87e-NO9rTDy5HY 57
flask_structured_api/templates/custom/.gitkeep sha256=DuOnq9NwoAhiExw3P78RfPLLT6fOm87e-NO9rTDy5HY 57
flask_structured_api/templates/custom/models/.gitkeep sha256=DuOnq9NwoAhiExw3P78RfPLLT6fOm87e-NO9rTDy5HY 57
flask_structured_api/templates/custom/services/.gitkeep sha256=DuOnq9NwoAhiExw3P78RfPLLT6fOm87e-NO9rTDy5HY 57
flask_structured_api/templates/custom/utils/.gitkeep sha256=DuOnq9NwoAhiExw3P78RfPLLT6fOm87e-NO9rTDy5HY 57
flask_structured_api-0.1.3.dist-info/LICENSE sha256=oxxUHMfF7T09G0Sb8A6EljhYt9lH1VF08_mKrUxL8WE 10998
flask_structured_api-0.1.3.dist-info/METADATA sha256=tC6zbTReLe97A5DOolHEIDjZF9H_il2LTpoHQdYxGHo 6884
flask_structured_api-0.1.3.dist-info/NOTICE.md sha256=qBBo43wNiZZ0SWu-WgqdaUCRbVqpqI-zhM--r-efUJI 602
flask_structured_api-0.1.3.dist-info/WHEEL sha256=PZUExdf71Ui_so67QXpySuHtCi3-J3wvF4ORK6k_S8U 91
flask_structured_api-0.1.3.dist-info/top_level.txt sha256=_MvGqpgbyDDhriCY62MX109UEnBXyYZUiOQeu4wDTOA 21
flask_structured_api-0.1.3.dist-info/RECORD

top_level.txt

flask_structured_api