apifrom

View on PyPIReverse Dependencies (0)

1.0.0 apifrom-1.0.0-py3-none-any.whl

Wheel Details

Project: apifrom
Version: 1.0.0
Filename: apifrom-1.0.0-py3-none-any.whl
Download: [link]
Size: 219236
MD5: 338f63ceecf3770a29e2ea3a5ea17fba
SHA256: 8416595bd27dba9a7900ad59336f6a6a8e236f9f7de971c5bd9364c1f67b8a91
Uploaded: 2025-03-14 20:57:40 +0000

dist-info

METADATA

Metadata-Version: 2.2
Name: apifrom
Version: 1.0.0
Summary: Transform any Python function into a REST API endpoint
Author: Your Name
Author-Email: sc4rfurry <akalucifr[at]protonmail.ch>
Home-Page: https://github.com/yourusername/apifrom
Project-Url: Homepage, https://github.com/sc4rfurry/apifrom
Project-Url: Bug Tracker, https://github.com/sc4rfurry/apifrom/issues
Project-Url: Documentation, https://github.com/sc4rfurry/apifrom/blob/main/README.md
Project-Url: Source Code, https://github.com/sc4rfurry/apifrom
License: MIT
Keywords: api,rest,web,async,framework
Classifier: Development Status :: 5 - Production/Stable
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Topic :: Internet :: WWW/HTTP
Classifier: Topic :: Software Development :: Libraries :: Application Frameworks
Requires-Python: >=3.8
Requires-Dist: starlette (>=0.20.0)
Requires-Dist: pydantic (>=1.8.0)
Requires-Dist: uvicorn (>=0.17.0)
Requires-Dist: typing-extensions (>=4.0.0)
Requires-Dist: python-multipart (>=0.0.5)
Requires-Dist: jinja2 (>=3.0.0)
Requires-Dist: httpx (>=0.22.0)
Requires-Dist: pyjwt (>=2.4.0)
Requires-Dist: cryptography (>=37.0.0)
Requires-Dist: passlib (>=1.7.4)
Requires-Dist: sqlalchemy (>=1.4.0); extra == "database"
Requires-Dist: asyncpg (>=0.25.0); extra == "database"
Requires-Dist: aiomysql (>=0.1.0); extra == "database"
Requires-Dist: aiosqlite (>=0.17.0); extra == "database"
Requires-Dist: redis (>=4.3.0); extra == "cache"
Requires-Dist: aioredis (>=2.0.0); extra == "cache"
Requires-Dist: prometheus-client (>=0.14.0); extra == "monitoring"
Requires-Dist: pytest (>=7.1.0); extra == "dev"
Requires-Dist: pytest-asyncio (>=0.18.0); extra == "dev"
Requires-Dist: pytest-cov (>=3.0.0); extra == "dev"
Requires-Dist: black (>=22.3.0); extra == "dev"
Requires-Dist: isort (>=5.10.0); extra == "dev"
Requires-Dist: mypy (>=0.950); extra == "dev"
Requires-Dist: flake8 (>=4.0.0); extra == "dev"
Requires-Dist: sqlalchemy (>=1.4.0); extra == "all"
Requires-Dist: asyncpg (>=0.25.0); extra == "all"
Requires-Dist: aiomysql (>=0.1.0); extra == "all"
Requires-Dist: aiosqlite (>=0.17.0); extra == "all"
Requires-Dist: redis (>=4.3.0); extra == "all"
Requires-Dist: aioredis (>=2.0.0); extra == "all"
Requires-Dist: prometheus-client (>=0.14.0); extra == "all"
Provides-Extra: database
Provides-Extra: cache
Provides-Extra: monitoring
Provides-Extra: dev
Provides-Extra: all
Description-Content-Type: text/markdown
Dynamic: author
Dynamic: home-page
Dynamic: requires-python
License-File: LICENSE
[Description omitted; length: 15383 characters]

WHEEL

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

RECORD

Path Digest Size
apifrom/__init__.py sha256=MrEvLPd4WH_LpIY5SWihZKseEKZHpPt2-sZcUn352DA 3447
apifrom/config.py sha256=7TIvCaXaeXbZt1zbR0NHtXXdZm3H-qTzfecZiKo8BF8 5940
apifrom/health.py sha256=d4f8Cv1RaS5eYSlJqmBbUz1PZ7sjw2oYO9fOeDyAIlo 4681
apifrom/logging.py sha256=Nqnn8clbgv-5l0PgxcTOldg8mkMKrFn4TvPL-rYUUGg 1
apifrom/logging_utils.py sha256=Ih2LD8onUiKHxv04EK3YTS_-8caygqDvTXmkiCXFuh4 7960
apifrom/main.py sha256=M3j3eMW3u40M9ufZ_1gW8Zvad_gLDL6YOMz8OUxKWco 3350
apifrom/monitoring.py sha256=c3Rssm4w3jxSu2v4wSXDBKR0ahmSEMa3KttXYqJpy3c 7506
apifrom/adapters/__init__.py sha256=4_Zm6gDGmn1jP4SLCqRCr_4KfaaIMMasDP5iVIro0OQ 975
apifrom/adapters/aws_lambda.py sha256=rBJCa8ChUNhBJlA8ABBbtx2N17hZQf0HDXkreaBlalg 5754
apifrom/adapters/azure_functions.py sha256=9rtdEMaoQttiUl9_aTN7gz2Xrgtlm_PheNsAQx7ygd0 5021
apifrom/adapters/gcp_functions.py sha256=fhNyGavfg4aSnjd7zLRTVQdy0jsrkuKddVvFXIR91lo 6116
apifrom/adapters/netlify.py sha256=8W-FcQebaEqySwK2jAHygYqaKezn8u3BcX1deuAZsH4 6810
apifrom/adapters/vercel.py sha256=aHMwK2nGfCDxUUfr9ZNW8q3WZnI6uhENtqI1Zx_VMwQ 7115
apifrom/core/__init__.py sha256=0eg-2DOlzqtZPr21AcqPTHMSKy-uPjvctYxA4ST9NJo 443
apifrom/core/app.py sha256=jzs4h27CzqSgrsTB1j9-1NnDRdESAnZtumcje8VKPq4 12114
apifrom/core/request.py sha256=IklY6aIiRyOW2s_J8TABpcIYjMsC6sj2te6zqvIIQQQ 6589
apifrom/core/response.py sha256=5QsPh6s4im6I_H3nn8UANOdeUYAyfRCFfDPUgegdHM4 9357
apifrom/core/router.py sha256=_F5o5LR4WgbIL39M188FQA1zR79u1wVElPe_gJn9kSo 4673
apifrom/decorators/__init__.py sha256=9r7gVvsNumVA7fGtyMEghNRYHVQ2vszoU-VHn6Q41PU 346
apifrom/decorators/api.py sha256=H6SGGciKAGSP6bjfe2kMr5jTtzWTyO8ycm03pRrNJcc 8479
apifrom/decorators/web.py sha256=Ykp27zlk1bGNgO5lIQ4pPQAMCJZXBfyUHwCEwPnv54U 13384
apifrom/decorators/web_optimize.py sha256=6nswt8Z5ccEi1aq7YvSk35DAgt-qvaB7SUJGYZYkxy0 12718
apifrom/docs/__init__.py sha256=W2y-8XkRHUqn4Mx0cymXlXJEdS5OlqopRBlHS5__MZ0 397
apifrom/docs/openapi.py sha256=xmIHGsOzOl_OLl5iwCN0yEC-Ov7OMk5AgexvYWp7Mvc 32599
apifrom/docs/swagger_ui.py sha256=aUjUhNxJPNQlQepxsctZtF5dc_vr7YGxSPnIiQwT5p8 29513
apifrom/docs/templates/themes/flattop.css sha256=17T7QKouPH5rPRJjdwKDheMI79jEIVgKKBka_j1GISA 951
apifrom/docs/templates/themes/material.css sha256=l40klQTZnFdvrCbzpS23_VSeoMR_STUbYxxR_KYONsk 1145
apifrom/docs/templates/themes/muted.css sha256=RvxEFDliwYMJfpeKU1IJkEPL3E-SbAx5aePDW39I2Tk 1219
apifrom/docs/templates/themes/outline.css sha256=jbMX7U-fn-SBS98O1GwzOrfO_-IRJfwvhzTkNH-z3t0 1458
apifrom/middleware/__init__.py sha256=u-HqEedTdq1aXgarlkmpiDyPmS_vuVHQ1AkI3Vl_ROM 2024
apifrom/middleware/base.py sha256=Ysmw1qtoWA6Bb77-_E8dO21wgt4BUWWo4NBgpbrLW3I 3733
apifrom/middleware/cache.py sha256=htUHOutxoIQTj2OpwoQPQJaSly6XcOqcwzFwIeBnliA 12707
apifrom/middleware/cache_advanced.py sha256=_VuBcAiD9xhmyyOJSAEn9AGro2LhaFoo9ePuXfR4GdM 51354
apifrom/middleware/cors.py sha256=ik90KekaAS6thVvOOzQs3PJ9xir1JBlzdOQCh16yAVw 7150
apifrom/middleware/error_handling.py sha256=VO4DjHvdcYs2UkCS-A7Ff1UgCBZbcuLzWp0mi9K4rRE 17832
apifrom/middleware/rate_limit.py sha256=u-TPcUqi6T6Iq1sx60o2XKBpO9DfrPRBE8DVDXveW90 20524
apifrom/monitoring/__init__.py sha256=FQ4-wTcukoVAz_sY9sxgFp_swRgKqQv4PcowRwReLjQ 640
apifrom/monitoring/exporters.py sha256=qj3cJiTjRtPaGqFLfuy5jBYoJxLr2q38vWJ0LfeDaWA 9987
apifrom/monitoring/metrics.py sha256=hAqwf1fpxSKUUokKQesQzkXKmKv44ZBCtp2dQVdjzMo 14745
apifrom/monitoring/middleware.py sha256=WGJ7D5lpH1p8jzBXdvj_P6gfT0khg4CeCQjtv-JlM04 7949
apifrom/performance/__init__.py sha256=22ewMaNlrZubqNkwGQTmZTTWkt7aykMbZa10-7rf88Y 2106
apifrom/performance/batch_processing.py sha256=yrnVuwhm1l_HwWdUEMNtN80pHcbIDbXJ87tucHyErdE 25966
apifrom/performance/cache_optimizer.py sha256=jThMMt9oGv5QgGdSyUZatTNLGClBWNiRX1HFAeAqRZU 35101
apifrom/performance/connection_pool.py sha256=iP3GzVsEPgkTPNyjtU7IF-nounVg004AVgxXDa_VoBI 37812
apifrom/performance/optimization.py sha256=yzmExMa8qEfwtOk1f2KGtcr6eU37hVeHx_knPVeK5ic 41398
apifrom/performance/profiler.py sha256=1UJA0CJg-xkKjkKKwVFpLGhzEK46_x2kRBZ64Yh3gVU 23725
apifrom/performance/request_coalescing.py sha256=thO2U_1I_uQ1_I5GOMiJCPwvuQ1KPnVuGPG2cIwKY8I 12955
apifrom/plugins/__init__.py sha256=2mS8fuHt74KzlKXrYmT4r3I4vQpnVAIhyLRpD-PhQX0 317
apifrom/plugins/base.py sha256=lDwEqYuliKI4soXOR5jmBm4ZTtxTT_4IpE_Tb2mkYXI 27235
apifrom/plugins/logging.py sha256=rKNm50nbUDHT27w3i-YqrO3pcU87p6x-94lR5O9KZu4 6466
apifrom/security/__init__.py sha256=bVtJCqMxCKv3Y_yv-eRXpqrZP8jnnt1xccPu9PAN43Y 2483
apifrom/security/auth.py sha256=DRS9SLusEAhdV3dfrli40n3r9f8nfVBpRQTGecdlPdw 16715
apifrom/security/cors.py sha256=Vmdi-xw3nD8J20UeCWvSMbqNe_a68tFygQ7ZyXgVgF8 4842
apifrom/security/csp.py sha256=8gc1voHXoH0nOKgOnHowib3AFDEb1SHcCDhJI1BYGRQ 20536
apifrom/security/csrf.py sha256=S0pjeyzHsxuVoiXDxlb8dP-xEdaQ2Y9GSPidaKDuI6w 14213
apifrom/security/headers.py sha256=PBJVf8ZNgz2XdRTxIAFKI5bfUpHT2yTsD8mY3_3SaU0 28997
apifrom/security/hsts.py sha256=1sayIf6w0y-JjNqctCpyJu_3abbZkLbz24tRvAtVy9Q 10455
apifrom/security/permissions_policy.py sha256=wXpvFsJ-eUUFaL_761fFcrT6RHZmD1zEMqERpIKrTF8 12686
apifrom/security/sri.py sha256=c6uqY9CDIY5aMpOJxeekTKc127Dj0Q9DYM-4XLw17nw 15612
apifrom/security/trusted_types.py sha256=3X5ba9_P1TG2IQKx52drJ7V-uPEbDWG_-onHJRGlVp8 21175
apifrom/utils/__init__.py sha256=2GMZFmIoxpy8sHZAIQJDotwC5XtkKCCfY7V-fVss7Lk 132
apifrom/utils/cache_advanced.py sha256=uNV-ZnBWBfNb8OVr3Ro7BM-mVZWcAz8nPRG2rTkVmI4 3825
apifrom/utils/cors.py sha256=QUWJFWWbAFGCV9h6RiNXQlkBYhwBoumleM0c5WkH11s 4951
apifrom/utils/csrf.py sha256=vI2NQigLWvK4kITBGe5kiU2EhhmqhHmY1YRhOMT8FyI 2162
apifrom/utils/hsts.py sha256=HcjyAxCbOP-Un3hzDqUQsB0LR6b_r0iWc97DrVshTn8 2994
apifrom/utils/permissions_policy.py sha256=DvNEvwLyR03cro-p1td8nJuqbwzCFtvrJ-nA3AGsEAA 10535
apifrom/utils/rate_limit.py sha256=y09mg81Iy9wRUV04v8KgKk9-10Ap5f657GhybdYY8gw 7751
apifrom/utils/security_headers.py sha256=TmXgpv7mImQF2a-cYDTqy-EH4upV1SK_dgjt5AkAT4s 5512
apifrom/utils/serialization.py sha256=ZkwDjpl5L9dF89z-lgqkGhIYlAFLSEoeWc2wL0w7fXQ 11262
apifrom/utils/sri.py sha256=ckk_Ct3RSJcarM4o_7cTsdbW7_AErvOwrzvnh9byIYY 2576
apifrom/utils/trusted_types.py sha256=Cl_NalMvjfD3yvL5ZbACN8WUs54528y1ycN3L8U4pC0 811
apifrom/utils/type_utils.py sha256=z4mMR8pEjEpQYTPZEXLEgtwVxwLpoBnjzHtiXU-AESY 8414
src/__init__.py sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU 0
src/api.py sha256=DdyIGccmSqzIg1XAnIZBl72JkL8MdpbNPODJ76x5Vbc 10255
tests/integration/__init__.py sha256=Y8ErL0cEuqga2-xg4zvhzSWfgzFMSSG8D2ch7e4XKQc 58
tests/integration/test_performance_integration.py sha256=257AE5s_I7kRr_wPq3pqlHHdeQX-VkBnQF8XuPgioxc 25059
tests/integration/test_security_integration.py sha256=Dk85K4PP-f10YUN15ZEdPotAXDFI_LxQpyk8IjGPa04 26147
tests/performance/__init__.py sha256=OWwkym9Z_Eoyx8H0xwIJ0FHamNaH0hNIpgaLiiKKlcc 58
tests/performance/test_profiler.py sha256=iaTRw1ikxd_nQr3JbR8Sh0laNKrNnLr3TZs4e8zM8_o 18205
tests/security/__init__.py sha256=oioqg1ksMgGLVBSh9BVVSE8LDNo1FV9vIlAHxTmpjCU 130
tests/unit/__init__.py sha256=Gluh_hp85jUE5Bzkpxe3ZItLQsVg-JWPdfUiYgN5xts 51
tests/unit/test_batch_processing.py sha256=zE8qVhdejEfUVdwucsxR91k3VqWWgkN8wzBj9Hs9l9E 16867
tests/unit/test_core.py sha256=ORNUCVY-YjCLU-gNXrx5q6-e6iDPjhm0rN9a14Cdj9o 5682
tests/unit/test_middleware.py sha256=WjWTrKst-Wsp4nyM6VZhAhUPe0UMebFa7eCeQ8I0t-M 11240
tests/unit/test_request_coalescing.py sha256=LnqilcCX6uDe5Q5T-Jdyp8Mxzl-LUz4qkI46eBVsoyk 20684
tests/unit/test_security.py sha256=fyFV7rf1LI292C7HzkypC6oupLC8BN4vLoUCubs3p5c 21476
tests/unit/test_web_decorator.py sha256=X4X69H-o2c2EcB7z4bPoXV6OSzHlnUwOIxOx0xYPeFg 11873
apifrom-1.0.0.dist-info/LICENSE sha256=wyNClw3v7FcAuhbwESomOEzlWBD3gj6BKDjU2bfKoic 1097
apifrom-1.0.0.dist-info/METADATA sha256=PuExUX-WHAV-9w7lEfmj-R36viZz-6E7obTGgpINiNg 19333
apifrom-1.0.0.dist-info/WHEEL sha256=52BFRY2Up02UkjOa29eZOS2VxUrpPORXg1pkohGGUS8 91
apifrom-1.0.0.dist-info/top_level.txt sha256=WQGV7aKg2zKXtPFKpgceicBzWy2XZnQq-4uP7jMKdIE 18
apifrom-1.0.0.dist-info/RECORD

top_level.txt

apifrom
src
tests