feat: indie status page MVP -- FastAPI + SQLite

- 8 DB models (services, incidents, monitors, subscribers, etc.)
- Full CRUD API for services, incidents, monitors
- Public status page with live data
- Incident detail page with timeline
- API key authentication
- Uptime monitoring scheduler
- 13 tests passing
- TECHNICAL_DESIGN.md with full spec
This commit is contained in:
IndieStatusBot 2026-04-25 05:00:00 +00:00
commit 902133edd3
4655 changed files with 1342691 additions and 0 deletions

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,217 @@
pydantic-2.13.3.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4
pydantic-2.13.3.dist-info/METADATA,sha256=dAqUziUUUKWugJ5oi9jnm5ZtqZ9nEZ8gIM45DV2917o,108770
pydantic-2.13.3.dist-info/RECORD,,
pydantic-2.13.3.dist-info/WHEEL,sha256=QccIxa26bgl1E6uMy58deGWi-0aeIkkangHcxk2kWfw,87
pydantic-2.13.3.dist-info/licenses/LICENSE,sha256=qeGG88oWte74QxjnpwFyE1GgDLe4rjpDlLZ7SeNSnvM,1129
pydantic/__init__.py,sha256=5iEnJ4wHv1OEzdKQPzaKaZKfO4pSQAC65ODrYI6_S8Y,15812
pydantic/__pycache__/__init__.cpython-311.pyc,,
pydantic/__pycache__/_migration.cpython-311.pyc,,
pydantic/__pycache__/alias_generators.cpython-311.pyc,,
pydantic/__pycache__/aliases.cpython-311.pyc,,
pydantic/__pycache__/annotated_handlers.cpython-311.pyc,,
pydantic/__pycache__/class_validators.cpython-311.pyc,,
pydantic/__pycache__/color.cpython-311.pyc,,
pydantic/__pycache__/config.cpython-311.pyc,,
pydantic/__pycache__/dataclasses.cpython-311.pyc,,
pydantic/__pycache__/datetime_parse.cpython-311.pyc,,
pydantic/__pycache__/decorator.cpython-311.pyc,,
pydantic/__pycache__/env_settings.cpython-311.pyc,,
pydantic/__pycache__/error_wrappers.cpython-311.pyc,,
pydantic/__pycache__/errors.cpython-311.pyc,,
pydantic/__pycache__/fields.cpython-311.pyc,,
pydantic/__pycache__/functional_serializers.cpython-311.pyc,,
pydantic/__pycache__/functional_validators.cpython-311.pyc,,
pydantic/__pycache__/generics.cpython-311.pyc,,
pydantic/__pycache__/json.cpython-311.pyc,,
pydantic/__pycache__/json_schema.cpython-311.pyc,,
pydantic/__pycache__/main.cpython-311.pyc,,
pydantic/__pycache__/mypy.cpython-311.pyc,,
pydantic/__pycache__/networks.cpython-311.pyc,,
pydantic/__pycache__/parse.cpython-311.pyc,,
pydantic/__pycache__/root_model.cpython-311.pyc,,
pydantic/__pycache__/schema.cpython-311.pyc,,
pydantic/__pycache__/tools.cpython-311.pyc,,
pydantic/__pycache__/type_adapter.cpython-311.pyc,,
pydantic/__pycache__/types.cpython-311.pyc,,
pydantic/__pycache__/typing.cpython-311.pyc,,
pydantic/__pycache__/utils.cpython-311.pyc,,
pydantic/__pycache__/validate_call_decorator.cpython-311.pyc,,
pydantic/__pycache__/validators.cpython-311.pyc,,
pydantic/__pycache__/version.cpython-311.pyc,,
pydantic/__pycache__/warnings.cpython-311.pyc,,
pydantic/_internal/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
pydantic/_internal/__pycache__/__init__.cpython-311.pyc,,
pydantic/_internal/__pycache__/_config.cpython-311.pyc,,
pydantic/_internal/__pycache__/_core_metadata.cpython-311.pyc,,
pydantic/_internal/__pycache__/_core_utils.cpython-311.pyc,,
pydantic/_internal/__pycache__/_dataclasses.cpython-311.pyc,,
pydantic/_internal/__pycache__/_decorators.cpython-311.pyc,,
pydantic/_internal/__pycache__/_decorators_v1.cpython-311.pyc,,
pydantic/_internal/__pycache__/_discriminated_union.cpython-311.pyc,,
pydantic/_internal/__pycache__/_docs_extraction.cpython-311.pyc,,
pydantic/_internal/__pycache__/_fields.cpython-311.pyc,,
pydantic/_internal/__pycache__/_forward_ref.cpython-311.pyc,,
pydantic/_internal/__pycache__/_generate_schema.cpython-311.pyc,,
pydantic/_internal/__pycache__/_generics.cpython-311.pyc,,
pydantic/_internal/__pycache__/_git.cpython-311.pyc,,
pydantic/_internal/__pycache__/_import_utils.cpython-311.pyc,,
pydantic/_internal/__pycache__/_internal_dataclass.cpython-311.pyc,,
pydantic/_internal/__pycache__/_known_annotated_metadata.cpython-311.pyc,,
pydantic/_internal/__pycache__/_mock_val_ser.cpython-311.pyc,,
pydantic/_internal/__pycache__/_model_construction.cpython-311.pyc,,
pydantic/_internal/__pycache__/_namespace_utils.cpython-311.pyc,,
pydantic/_internal/__pycache__/_repr.cpython-311.pyc,,
pydantic/_internal/__pycache__/_schema_gather.cpython-311.pyc,,
pydantic/_internal/__pycache__/_schema_generation_shared.cpython-311.pyc,,
pydantic/_internal/__pycache__/_serializers.cpython-311.pyc,,
pydantic/_internal/__pycache__/_signature.cpython-311.pyc,,
pydantic/_internal/__pycache__/_typing_extra.cpython-311.pyc,,
pydantic/_internal/__pycache__/_utils.cpython-311.pyc,,
pydantic/_internal/__pycache__/_validate_call.cpython-311.pyc,,
pydantic/_internal/__pycache__/_validators.cpython-311.pyc,,
pydantic/_internal/_config.py,sha256=Rzys1Joffn4JczElcYDqsZLRgBgHn2lYWqDR55oASPA,14839
pydantic/_internal/_core_metadata.py,sha256=Y_g2t3i7uluK-wXCZvzJfRFMPUM23aBYLfae4FzBPy0,5162
pydantic/_internal/_core_utils.py,sha256=1jru4VbJ0x63R6dtVcuOI-dKQTC_d_lSnJWEBQzGNEQ,6487
pydantic/_internal/_dataclasses.py,sha256=Zgqcm1WaJLBwTQQC5mGKNowjlTgX3mfX_J5e2vd24lM,13188
pydantic/_internal/_decorators.py,sha256=RDEG_Jau5NiJcfO0xgdT7EOgsU1LgWIYlX7wN5rYtVs,33620
pydantic/_internal/_decorators_v1.py,sha256=tfdfdpQKY4R2XCOwqHbZeoQMur6VNigRrfhudXBHx38,6185
pydantic/_internal/_discriminated_union.py,sha256=JLx_MVLep7Mxl1zbpdNZjvHDcz-J3OEW6WcdV184dcM,26255
pydantic/_internal/_docs_extraction.py,sha256=fyznSAHh5AzohnXZStV0HvH-nRbavNHPyg-knx-S_EE,4127
pydantic/_internal/_fields.py,sha256=hXeb-zodGwTDvG9OK1um18P64b7cqHb0GOngP4jrgcY,31557
pydantic/_internal/_forward_ref.py,sha256=5n3Y7-3AKLn8_FS3Yc7KutLiPUhyXmAtkEZOaFnonwM,611
pydantic/_internal/_generate_schema.py,sha256=lw4y1t5HKIDBosr9QgYtC7-GBu5y0g9qR7ZO3XUufBA,135560
pydantic/_internal/_generics.py,sha256=CXjcInlvci8VejaWn1f39kv0AcfJL0R523qRLFZVD-s,23393
pydantic/_internal/_git.py,sha256=IwPh3DPfa2Xq3rBuB9Nx8luR2A1i69QdeTfWWXIuCVg,809
pydantic/_internal/_import_utils.py,sha256=TRhxD5OuY6CUosioBdBcJUs0om7IIONiZdYAV7zQ8jM,402
pydantic/_internal/_internal_dataclass.py,sha256=_bedc1XbuuygRGiLZqkUkwwFpQaoR1hKLlR501nyySY,144
pydantic/_internal/_known_annotated_metadata.py,sha256=PynQIFQ61__4Gcrzn0D5ENllg7jPq_cxoLTmuFQBY88,16805
pydantic/_internal/_mock_val_ser.py,sha256=wmRRFSBvqfcLbI41PsFliB4u2AZ3mJpZeiERbD3xKTo,8885
pydantic/_internal/_model_construction.py,sha256=JoKmY4JrDBu3nG_tCIrJgtJJE1uq6v29TvTz5ElHE5g,38928
pydantic/_internal/_namespace_utils.py,sha256=hl3-TRAr82U2jTyPP3t-QqsvKLirxtkLfNfrN-fp0x8,12878
pydantic/_internal/_repr.py,sha256=jQfnJuyDxQpSRNhG29II9PX8e4Nv2qWZrEw2lqih3UE,5172
pydantic/_internal/_schema_gather.py,sha256=8nJ-uM6Y4z6xpasnGonEMubtNVX_mxeeRDFmd_qMVLA,9052
pydantic/_internal/_schema_generation_shared.py,sha256=F_rbQbrkoomgxsskdHpP0jUJ7TCfe0BADAEkq6CJ4nM,4842
pydantic/_internal/_serializers.py,sha256=YIWvSmAR5fnbGSWCOQduWt1yB4ZQY42eAruc-enrb6c,1491
pydantic/_internal/_signature.py,sha256=i_b6wtluiVWZRh1ZY8UvB2UZziP1KjqSXZgC-HxwOT0,6808
pydantic/_internal/_typing_extra.py,sha256=dDxqF46lzuqCoKLrAH_k95EDbayEeKb2lHjuTJ5OBoY,31574
pydantic/_internal/_utils.py,sha256=gN48BsR-FDrJDibCmo69ttQg67WbuFrdy_1NQL3cvLI,15959
pydantic/_internal/_validate_call.py,sha256=OD_BspHaL9FKzZ9XrndhiEuMnjF3SRIJUHtwv6yUffU,5366
pydantic/_internal/_validators.py,sha256=7GTjXXWFMLib4dxQ-HeaiHlAZiR2B2G8byCYMGrmQ48,20563
pydantic/_migration.py,sha256=VF73LRCUz3Irb5xVt13jb3NAcXVnEF6T1-J0OLfeZ5A,12160
pydantic/alias_generators.py,sha256=KM1n3u4JfLSBl1UuYg3hoYHzXJD-yvgrnq8u1ccwh_A,2124
pydantic/aliases.py,sha256=vhCHyoSWnX-EJ-wWb5qj4xyRssgGWnTQfzQp4GSZ9ug,4937
pydantic/annotated_handlers.py,sha256=WfyFSqwoEIFXBh7T73PycKloI1DiX45GWi0-JOsCR4Y,4407
pydantic/class_validators.py,sha256=i_V3j-PYdGLSLmj_IJZekTRjunO8SIVz8LMlquPyP7E,148
pydantic/color.py,sha256=AzqGfVQHF92_ZctDcue0DM4yTp2P6tekkwRINTWrLIo,21481
pydantic/config.py,sha256=o1P67FMWIQG-_RfGtKislkHwo4pXm_6jfsR41P88v78,44533
pydantic/dataclasses.py,sha256=4X9We0jj1KLwBtvYSkAFXNon46zrpBmRZANf4LfwbXg,18963
pydantic/datetime_parse.py,sha256=QC-WgMxMr_wQ_mNXUS7AVf-2hLEhvvsPY1PQyhSGOdk,150
pydantic/decorator.py,sha256=YX-jUApu5AKaVWKPoaV-n-4l7UbS69GEt9Ra3hszmKI,145
pydantic/deprecated/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
pydantic/deprecated/__pycache__/__init__.cpython-311.pyc,,
pydantic/deprecated/__pycache__/class_validators.cpython-311.pyc,,
pydantic/deprecated/__pycache__/config.cpython-311.pyc,,
pydantic/deprecated/__pycache__/copy_internals.cpython-311.pyc,,
pydantic/deprecated/__pycache__/decorator.cpython-311.pyc,,
pydantic/deprecated/__pycache__/json.cpython-311.pyc,,
pydantic/deprecated/__pycache__/parse.cpython-311.pyc,,
pydantic/deprecated/__pycache__/tools.cpython-311.pyc,,
pydantic/deprecated/class_validators.py,sha256=n0jYQOcb5YQiw0b7YXyi7NPiYdV7ujWR4KyZumjTPok,10281
pydantic/deprecated/config.py,sha256=k_lsVk57paxLJOcBueH07cu1OgEgWdVBxm6lfaC3CCU,2663
pydantic/deprecated/copy_internals.py,sha256=Ghd-vkMd5EYCCgyCGtPKO58np9cEKBQC6qkBeIEFI2g,7618
pydantic/deprecated/decorator.py,sha256=TBm6bJ7wJsNih_8Wq5IzDcwP32m9_vfxs96desLuk00,10845
pydantic/deprecated/json.py,sha256=HlWCG35RRrxyzuTS6LTQiZBwRhmDZWmeqQH8rLW6wA8,4657
pydantic/deprecated/parse.py,sha256=Gzd6b_g8zJXcuE7QRq5adhx_EMJahXfcpXCF0RgrqqI,2511
pydantic/deprecated/tools.py,sha256=Nrm9oFRZWp8-jlfvPgJILEsywp4YzZD52XIGPDLxHcI,3330
pydantic/env_settings.py,sha256=6IHeeWEqlUPRUv3V-AXiF_W91fg2Jw_M3O0l34J_eyA,148
pydantic/error_wrappers.py,sha256=RK6mqATc9yMD-KBD9IJS9HpKCprWHd8wo84Bnm-3fR8,150
pydantic/errors.py,sha256=DrECPCWhSYrQ8Ba4O8hKzIAM2i9GBHTXWALzaFDpLf4,6013
pydantic/experimental/__init__.py,sha256=QT7rKYdDsCiTJ9GEjmsQdWHScwpKrrNkGq6vqONP6RQ,104
pydantic/experimental/__pycache__/__init__.cpython-311.pyc,,
pydantic/experimental/__pycache__/arguments_schema.cpython-311.pyc,,
pydantic/experimental/__pycache__/missing_sentinel.cpython-311.pyc,,
pydantic/experimental/__pycache__/pipeline.cpython-311.pyc,,
pydantic/experimental/arguments_schema.py,sha256=EFnjX_ulp-tPyUjQX5pmQtug1OFL_Acc8bcMbLd-fVY,1866
pydantic/experimental/missing_sentinel.py,sha256=hQejgtF00wUuQMni9429evg-eXyIwpKvjsD8ofqfj-w,127
pydantic/experimental/pipeline.py,sha256=auoW6l6g1FC41LciPmsI1M6ncf00Szde9B3C-yvb9mI,23956
pydantic/fields.py,sha256=a8ZhJfI8FD6TQDD7-cWMm1ZXlQva0wMdT2Ey5VvVe-M,82023
pydantic/functional_serializers.py,sha256=zwRAjZusORtEbtxpVU20kg8FpemyZz4Fq6wJk1mpwYQ,18117
pydantic/functional_validators.py,sha256=7p-4jvP__9jZyvcdXiide5pAa_JlM7fJ1BgkqbjxSWM,31724
pydantic/generics.py,sha256=0ZqZ9O9annIj_3mGBRqps4htey3b5lV1-d2tUxPMMnA,144
pydantic/json.py,sha256=ZH8RkI7h4Bz-zp8OdTAxbJUoVvcoU-jhMdRZ0B-k0xc,140
pydantic/json_schema.py,sha256=ZVJNgaKCcna-M_pcooDQAjFXKvxwO2maKHLKHrs1r3A,126176
pydantic/main.py,sha256=NbhCz-ku8wDgYLQMBi75Ov7hywdc8LewA3oUNIZ8JVQ,85334
pydantic/mypy.py,sha256=sYmmZrL_GvoYSLcBuPRRDfSfgQWehkzw_ZvNkwDY2ME,60971
pydantic/networks.py,sha256=gCB96gt0G7tiVDhVnJfpKr1ARL5qkH-SPZkuNkmG2O4,42102
pydantic/parse.py,sha256=wkd82dgtvWtD895U_I6E1htqMlGhBSYEV39cuBSeo3A,141
pydantic/plugin/__init__.py,sha256=a7Tw366U6K3kltCCNZY76nc9ss-7uGGQ40TXad9OypQ,7333
pydantic/plugin/__pycache__/__init__.cpython-311.pyc,,
pydantic/plugin/__pycache__/_loader.cpython-311.pyc,,
pydantic/plugin/__pycache__/_schema_validator.cpython-311.pyc,,
pydantic/plugin/_loader.py,sha256=hAjgSljoIhGx3AVpIpuqw5SPttBNNeGBSTrqSMnNiJk,2213
pydantic/plugin/_schema_validator.py,sha256=5M5Ic1bZnjhNDxtRDVKbRPTQ6po6QuKMY7MguMkHeW0,5445
pydantic/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
pydantic/root_model.py,sha256=cOMoeWdp536KF85uRIcW-oz1O7d5GRCpx9HTS4-1uf8,6394
pydantic/schema.py,sha256=Vqqjvq_LnapVknebUd3Bp_J1p2gXZZnZRgL48bVEG7o,142
pydantic/tools.py,sha256=iHQpd8SJ5DCTtPV5atAV06T89bjSaMFeZZ2LX9lasZY,141
pydantic/type_adapter.py,sha256=T05g8WQczBsVU_35RdKxgjIi7Y7LIip67pF3NI7X4GE,36123
pydantic/types.py,sha256=fpYcGnAncK4QjaFm3jZtqYwxJYzB7rJJPfAl89emzyQ,105961
pydantic/typing.py,sha256=P7feA35MwTcLsR1uL7db0S-oydBxobmXa55YDoBgajQ,138
pydantic/utils.py,sha256=15nR2QpqTBFlQV4TNtTItMyTJx_fbyV-gPmIEY1Gooc,141
pydantic/v1/__init__.py,sha256=SxQPklgBs4XHJwE6BZ9qoewYoGiNyYUnmHzEFCZbfnI,2946
pydantic/v1/__pycache__/__init__.cpython-311.pyc,,
pydantic/v1/__pycache__/_hypothesis_plugin.cpython-311.pyc,,
pydantic/v1/__pycache__/annotated_types.cpython-311.pyc,,
pydantic/v1/__pycache__/class_validators.cpython-311.pyc,,
pydantic/v1/__pycache__/color.cpython-311.pyc,,
pydantic/v1/__pycache__/config.cpython-311.pyc,,
pydantic/v1/__pycache__/dataclasses.cpython-311.pyc,,
pydantic/v1/__pycache__/datetime_parse.cpython-311.pyc,,
pydantic/v1/__pycache__/decorator.cpython-311.pyc,,
pydantic/v1/__pycache__/env_settings.cpython-311.pyc,,
pydantic/v1/__pycache__/error_wrappers.cpython-311.pyc,,
pydantic/v1/__pycache__/errors.cpython-311.pyc,,
pydantic/v1/__pycache__/fields.cpython-311.pyc,,
pydantic/v1/__pycache__/generics.cpython-311.pyc,,
pydantic/v1/__pycache__/json.cpython-311.pyc,,
pydantic/v1/__pycache__/main.cpython-311.pyc,,
pydantic/v1/__pycache__/mypy.cpython-311.pyc,,
pydantic/v1/__pycache__/networks.cpython-311.pyc,,
pydantic/v1/__pycache__/parse.cpython-311.pyc,,
pydantic/v1/__pycache__/schema.cpython-311.pyc,,
pydantic/v1/__pycache__/tools.cpython-311.pyc,,
pydantic/v1/__pycache__/types.cpython-311.pyc,,
pydantic/v1/__pycache__/typing.cpython-311.pyc,,
pydantic/v1/__pycache__/utils.cpython-311.pyc,,
pydantic/v1/__pycache__/validators.cpython-311.pyc,,
pydantic/v1/__pycache__/version.cpython-311.pyc,,
pydantic/v1/_hypothesis_plugin.py,sha256=5ES5xWuw1FQAsymLezy8QgnVz0ZpVfU3jkmT74H27VQ,14847
pydantic/v1/annotated_types.py,sha256=uk2NAAxqiNELKjiHhyhxKaIOh8F1lYW_LzrW3X7oZBc,3157
pydantic/v1/class_validators.py,sha256=ULOaIUgYUDBsHL7EEVEarcM-UubKUggoN8hSbDonsFE,14672
pydantic/v1/color.py,sha256=iZABLYp6OVoo2AFkP9Ipri_wSc6-Kklu8YuhSartd5g,16844
pydantic/v1/config.py,sha256=a6P0Wer9x4cbwKW7Xv8poSUqM4WP-RLWwX6YMpYq9AA,6532
pydantic/v1/dataclasses.py,sha256=784cqvInbwIPWr9usfpX3ch7z4t3J2tTK6N067_wk1o,18172
pydantic/v1/datetime_parse.py,sha256=4Qy1kQpq3rNVZJeIHeSPDpuS2Bvhp1KPtzJG1xu-H00,7724
pydantic/v1/decorator.py,sha256=zaaxxxoWPCm818D1bs0yhapRjXm32V8G0ZHWCdM1uXA,10339
pydantic/v1/env_settings.py,sha256=A9VXwtRl02AY-jH0C0ouy5VNw3fi6F_pkzuHDjgAAOM,14105
pydantic/v1/error_wrappers.py,sha256=6625Mfw9qkC2NwitB_JFAWe8B-Xv6zBU7rL9k28tfyo,5196
pydantic/v1/errors.py,sha256=mIwPED5vGM5Q5v4C4Z1JPldTRH-omvEylH6ksMhOmPw,17726
pydantic/v1/fields.py,sha256=VqWJCriUNiEyptXroDVJ501JpVA0en2VANcksqXL2b8,50649
pydantic/v1/generics.py,sha256=YzyKTZN6x5Q1RGJ3WQ9jN-uwHJxL3W4qoZqwcZXqxWg,17829
pydantic/v1/json.py,sha256=WQ5Hy_hIpfdR3YS8k6N2E6KMJzsdbBi_ldWOPJaV81M,3390
pydantic/v1/main.py,sha256=vRB1TbpkzPN3P5ijJlc-cjNuO-HciNOpC4b8K3zZnfc,45697
pydantic/v1/mypy.py,sha256=Cl8XRfCmIcVE3j5AEU52C8iDh8lcX__D3hz2jIWxMAs,38860
pydantic/v1/networks.py,sha256=HYNtKAfOmOnKJpsDg1g6SIkj9WPhU_-i8l5e2JKBpG4,22124
pydantic/v1/parse.py,sha256=BJtdqiZRtav9VRFCmOxoY-KImQmjPy-A_NoojiFUZxY,1821
pydantic/v1/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
pydantic/v1/schema.py,sha256=aqBuA--cq8gAVkim5BJPFASHzOZ8dFtmFX_fNGr6ip4,47801
pydantic/v1/tools.py,sha256=1lDdXHk0jL5uP3u5RCYAvUAlGClgAO-45lkq9j7fyBA,2881
pydantic/v1/types.py,sha256=Bzl-RcnitPBHnqwwj9iv7JjHuN1GpnWH24dKkF3l9e8,35455
pydantic/v1/typing.py,sha256=ovwtLpEZCbnghZaHfSNJupzetzHNkLXjn_66kgTnIV4,20102
pydantic/v1/utils.py,sha256=1PqOIlz6OVWwGds3HBKlw4Et6asFou0UUpAto7jFOCs,26014
pydantic/v1/validators.py,sha256=lyUkn1MWhHxlCX5ZfEgFj_CAHojoiPcaQeMdEM9XviU,22187
pydantic/v1/version.py,sha256=YpHWOQKtGoxfyikzGrcmXJVKUVYB9EBdoCR994QxSnE,1039
pydantic/validate_call_decorator.py,sha256=VLAi4hoFpjC-1eL0HixYaaWaEFO6htGcDctgsqa5VII,4416
pydantic/validators.py,sha256=pwbIJXVb1CV2mAE4w_EGfNj7DwzsKaWw_tTL6cviTus,146
pydantic/version.py,sha256=IZU9hqNGrX_3ZH-zhAb_nWXVDa2MXm5jm7IbAxYxyn4,3985
pydantic/warnings.py,sha256=3QyQo6lN35cO7OXDbFEXWcNaPlGCRaregVZA-G-lZwI,4822

View file

@ -0,0 +1,4 @@
Wheel-Version: 1.0
Generator: hatchling 1.29.0
Root-Is-Purelib: true
Tag: py3-none-any

View file

@ -0,0 +1,21 @@
The MIT License (MIT)
Copyright (c) 2017 to present Pydantic Services Inc. and individual contributors.
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.