safir

View on PyPIReverse Dependencies (4)

9.2.0 safir-9.2.0-py3-none-any.whl
9.1.1 safir-9.1.1-py3-none-any.whl

Wheel Details

Project: safir
Version: 9.1.1
Filename: safir-9.1.1-py3-none-any.whl
Download: [link]
Size: 148342
MD5: 8d20da360e5c8b9a0462deee521232c2
SHA256: ea2fa7dbb75f4bf6101ae3e1a7a6beb0522c211fc1ad43321a8b00c09f6d8a2e
Uploaded: 2024-12-18 23:49:56 +0000

dist-info

METADATA

Metadata-Version: 2.1
Name: safir
Version: 9.1.1
Summary: The Rubin Observatory SQuaRE framework for FastAPI services.
Author-Email: "Association of Universities for Research in Astronomy, Inc. (AURA)" <sqre-admin[at]lists.lsst.org>
Project-Url: Homepage, https://safir.lsst.io
Project-Url: Source, https://github.com/lsst-sqre/safir
Project-Url: Change log, https://safir.lsst.io/changelog.html
Project-Url: Issue tracker, https://github.com/lsst-sqre/safir/issues
License: MIT License Copyright (c) 2020-2024 Association of Universities for Research in Astronomy, Inc. (AURA) 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.
Keywords: rubin,lsst
Classifier: Development Status :: 5 - Production/Stable
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Intended Audience :: Developers
Classifier: Natural Language :: English
Classifier: Operating System :: POSIX
Classifier: Typing :: Typed
Requires-Python: >=3.11
Requires-Dist: aiokafka (<1,>=0.11)
Requires-Dist: click (<9)
Requires-Dist: cryptography (<45)
Requires-Dist: dataclasses-avroschema (<1,>=0.65.7)
Requires-Dist: fastapi (<1)
Requires-Dist: faststream (<0.6,>0.5)
Requires-Dist: gidgethub (<6)
Requires-Dist: httpx (<1,>=0.20.0)
Requires-Dist: pydantic (<3,>2)
Requires-Dist: pydantic-core
Requires-Dist: pydantic-settings (!=2.6.0,<3)
Requires-Dist: python-schema-registry-client (<3,>=2.6)
Requires-Dist: safir-logging
Requires-Dist: starlette (<1)
Requires-Dist: structlog (>=21.2.0)
Requires-Dist: safir-arq; extra == "arq"
Requires-Dist: alembic[tz] (<2); extra == "db"
Requires-Dist: asyncpg (<1); extra == "db"
Requires-Dist: sqlalchemy[asyncio] (<3,>=2.0.0); extra == "db"
Requires-Dist: asgi-lifespan; extra == "dev"
Requires-Dist: coverage[toml]; extra == "dev"
Requires-Dist: fastapi (>=0.93.0); extra == "dev"
Requires-Dist: mypy; extra == "dev"
Requires-Dist: pre-commit; extra == "dev"
Requires-Dist: pytest (>=6.2.0); extra == "dev"
Requires-Dist: pytest-asyncio; extra == "dev"
Requires-Dist: pytest-cov; extra == "dev"
Requires-Dist: redis (>=5); extra == "dev"
Requires-Dist: respx; extra == "dev"
Requires-Dist: scriv; extra == "dev"
Requires-Dist: sqlalchemy[mypy]; extra == "dev"
Requires-Dist: testcontainers[postgres,redis]; extra == "dev"
Requires-Dist: uvicorn; extra == "dev"
Requires-Dist: documenteer[guide] (>=1.4.1); extra == "dev"
Requires-Dist: autodoc_pydantic; extra == "dev"
Requires-Dist: google-auth (<3); extra == "gcs"
Requires-Dist: google-cloud-storage (<3); extra == "gcs"
Requires-Dist: kubernetes_asyncio (<32); extra == "kubernetes"
Requires-Dist: redis (<6,>4.5.2); extra == "redis"
Requires-Dist: google-auth (<3); extra == "uws"
Requires-Dist: google-cloud-storage (<3); extra == "uws"
Requires-Dist: jinja2 (<4); extra == "uws"
Requires-Dist: python-multipart; extra == "uws"
Requires-Dist: safir-arq; extra == "uws"
Requires-Dist: vo-models (<1,>=0.4.1); extra == "uws"
Provides-Extra: arq
Provides-Extra: db
Provides-Extra: dev
Provides-Extra: gcs
Provides-Extra: kubernetes
Provides-Extra: redis
Provides-Extra: uws
Description-Content-Type: text/markdown
License-File: LICENSE
[Description omitted; length: 1308 characters]

WHEEL

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

RECORD

Path Digest Size
safir/asyncio/__init__.py sha256=iA0klquTViB6EjRNo4rihAy7-Kw1A20QuMpuF2qEuoc 231
safir/asyncio/_multiqueue.py sha256=QcSNf4GHQJs68RkhTaA8jtw3YCoHW5FUaXkrr4jcMCQ 6333
safir/asyncio/_run.py sha256=xh2BJhCSekHs4ziIz9ugAt9b1OPnVNGzlG-WCfmlojE 1808
safir/asyncio/py.typed sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU 0
safir/click/__init__.py sha256=YIGikcqyVKFFyWEnpW0Aq8o3gqqQm_izm_jzllXxvbg 105
safir/click/_help.py sha256=XUp8rLNfGlSPfg5zZ6j0Ehaz44KgA7orTpalqRHZvFg 2751
safir/click/py.typed sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU 0
safir/database/__init__.py sha256=cyJg9s2gaQpbVlX4YyjCuKVcmHVOiHpQ7_cpu-YYmzU 1380
safir/database/_alembic.py sha256=CdrxOmJpODnxnBDldvqaVbwQkju27b-y61Yh9OiSNkk 7703
safir/database/_connection.py sha256=AGcztKeYFN-_tZ8SPhOp8tdWLqf-bJ0cHFnidPNqZdo 5436
safir/database/_datetime.py sha256=M3daYg1yxXIBrOCzT0QgPRhCssrYUFpaJYp6_ry43Gk 1716
safir/database/_initialize.py sha256=HEWlO9oKxKtnZN_jlsY-P2U9eyOPYbTKbbaK_pa27vA 2910
safir/database/_pagination.py sha256=XuW7b5ai0Rn7KwiqoUGau3BtYQ53y-TvHxpUoA2EOgI 28249
safir/database/_retry.py sha256=L_2POnIetCxnoUbz3Ne48EfCoWQaWLGthThV4FxvtjE 3211
safir/database/py.typed sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU 0
safir/datetime/__init__.py sha256=zbVR8ToVD9DeU7amiAhrtXBDzzFd4ohmYf_rl01OrQQ 350
safir/datetime/_current.py sha256=j-xLs8o0AO3auD4JIk5dnskco-8n3U3IrOOAdRf5lik 1150
safir/datetime/_format.py sha256=NA1GRdu_Oy0kXDIpzf6X1fKvazHaUGkzFY1ORuGerh4 2103
safir/datetime/_parse.py sha256=OV6IN93Cnm-ib2fc9JASTIT1AXVkinX3a05wyL7Bx-k 3411
safir/datetime/py.typed sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU 0
safir/dependencies/__init__.py sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU 0
safir/dependencies/arq.py sha256=-wBYYIHHmAtusti0ntf4L-_P-w616irFVwN_zp8xpqM 3004
safir/dependencies/db_session.py sha256=098flksTOHX9pTAgDn8ZruQ_f_hGAIUSRhKAMJRX8MA 3051
safir/dependencies/gafaelfawr.py sha256=JT5WNKZwE3x4oRIjqdgAbPmRp0r6ZJ2MlaCG2igejUI 1664
safir/dependencies/http_client.py sha256=2AEsNzB0rGDckLz6xVqYT5Fej91opPd2R5N0wjtm-u8 1891
safir/dependencies/logger.py sha256=Zk1i_vtLgw8qXNqcNXi5EubXMjsaRvQljlDwfQ6cEXc 2595
safir/dependencies/metrics.py sha256=0y94zIYzPliANzirZ3InTPQTQ8FXG3Q9b0ZbXBj9g3w 3405
safir/dependencies/py.typed sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU 0
safir/fastapi/__init__.py sha256=lSDKlyfr3L1qZB-R0BQIwmYyRfSEMcN0xFGOVd1JOnc 220
safir/fastapi/_errors.py sha256=OsIGDYKN6w7jTmxhVvJiQL2n7IFRoWXNisxSY4ZPswI 7748
safir/fastapi/py.typed sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU 0
safir/gcs/__init__.py sha256=ToDnapw1CzW-mW2J7I8mrwb_J6E9Oj1YQA74iS76_-k 131
safir/gcs/_signing.py sha256=YN3YrFxgl0vvdQTiHHAjfsHuipxJoUCHtPDcevOYMCw 3405
safir/gcs/py.typed sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU 0
safir/github/__init__.py sha256=fkLkkMw18hNLLOE8_MbTOVMYI7noH0nLqBddOgvRjFc 136
safir/github/_client.py sha256=ldA-tFoI9E586SU5hg2xMcC9ObHLxVQ5riR5fl0D-Ng 3855
safir/github/models.py sha256=nPFd0uOllzzm8azCJy_paNg9y2Cn0pRalYtURzKzPaw 11502
safir/github/py.typed sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU 0
safir/github/webhooks.py sha256=gfpfQwirlpXCG9cvXUtIf71-uky2kVB27DXqaA61FuY 10099
safir/kafka/__init__.py sha256=E8YnoCjgDc41_9jIoLCNrum3ouhVMJr3sCiUBEN1-5o 1192
safir/kafka/_exceptions.py sha256=m1gXVYUKCjty9isesl9aghaLUkatzdQSfmbp7KTIhLg 1300
safir/kafka/_kafka_config.py sha256=Wugy6IKxwQAUbu8opyjJrGCXExQx3nwB5R9KP9F8uA8 14416
safir/kafka/_manager.py sha256=CwTFpZrGMNWQByz68FMvJAtusuh_ZKQPSn6oIJtGrio 8402
safir/kafka/_schema_registry_config.py sha256=qCJDtP8rqtMYPqucBOmiWHHjERjAKcPbs9-xipqLD3I 2263
safir/kafka/py.typed sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU 0
safir/kubernetes/__init__.py sha256=tOFF4jVhFkN8WMYvUtHWQ-Ji_6F24Z-I1Ld-P4lqHDI 132
safir/kubernetes/_init.py sha256=zxTlV2To96Fz_Fm9iaCjmtfnsMWL2B8WuQEOazkose8 914
safir/kubernetes/py.typed sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU 0
safir/metadata/__init__.py sha256=RZE4J82smqAruLRnQh1hEMTVaf0sTIAo7-EZTqE6l38 228
safir/metadata/_models.py sha256=iJFS6FD4Cabuk--C0LMknSdx-JgEMBgM8CxhfM_4Z_o 703
safir/metadata/_retrieve.py sha256=2vTfVPRPhKZPF0BCWBrMRXYSzwo1fQYsreOOTiY4BT8 4209
safir/metadata/py.typed sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU 0
safir/metrics/__init__.py sha256=AXeoQf8c577qWSttGuNdMeCuf3Ln5xjcGSWbJrTQ-zA 1584
safir/metrics/_config.py sha256=wH4RvSDrQTREYXi5b_nrYpPMrVWwWye6vGD_tCCrpJg 10293
safir/metrics/_constants.py sha256=11WA3B09jYx-1RRXmLPiiVoHkCUbEup-D171M8AEmnc 285
safir/metrics/_event_manager.py sha256=asDxYdk2U4i68bE0UT2X-1mfmCEwliYU3L4uFC-w1IU 20806
safir/metrics/_exceptions.py sha256=m0sg0k8qJjQ2toNyRR9Ax0riDWVKQ_hxgrNwrf_LtxA 1070
safir/metrics/_models.py sha256=d5w_6DfGfI1rwCg2gPPTPmVUbtl_y2XdZBlyMYJgfBs 4506
safir/metrics/_testing.py sha256=e9yTtBxBM6bXZMB8TrsvsP6kBdje8W9VaGMSHY71jjs 7539
safir/metrics/py.typed sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU 0
safir/middleware/__init__.py sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU 0
safir/middleware/ivoa.py sha256=WhiPRYYxLi2-lICGJBqv2ONReafUWyDnKBZRfN2Mpss 5442
safir/middleware/py.typed sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU 0
safir/middleware/x_forwarded.py sha256=9bysms3owDY6UHULAjOwHT_LyXMGPakyG9Du5TGp20g 5730
safir/models/__init__.py sha256=K69rssP_3I34Tv5h_N1RNx2h_wiQA9-24ZDvUIAILr8 375
safir/models/_errors.py sha256=2fJ27Wkg8XMe68QQbVNt9rqBh-zL_rv0NuyyG7s_Ob0 898
safir/models/py.typed sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU 0
safir/pydantic/__init__.py sha256=dHsHIlsxfuvwY8maCu8-tNKfFZEAhFGCekQy591LCmc 621
safir/pydantic/_camel.py sha256=Qc2hhMKq07AjZfM-ghNYjPXZjGivP6F9TxovKc4SB54 3362
safir/pydantic/_types.py sha256=QFzrvbNtUS_w7Jwo9xHQSZtRmkQ2B6VMv7zFZ5nQL1g 6095
safir/pydantic/_validators.py sha256=6M2SAzo7lovRqAv57YpRgKrYrHr7LyIo3_Ner62Rlwg 6098
safir/pydantic/py.typed sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU 0
safir/redis/__init__.py sha256=9ZJH2MEbpPBkYkXyGcs-NEkt1opkGqcfP4a-G_BmIr8 244
safir/redis/_storage.py sha256=0KQMsoJOtEqbmxthfAWC4mnUvIlEJs-MMHxmIWa-K2E 7537
safir/redis/py.typed sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU 0
safir/slack/__init__.py sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU 0
safir/slack/blockkit.py sha256=IWEwx_9Jx9C93y-oOS8FKOMcZC14pA9S1jD2ASPFDlE 16385
safir/slack/py.typed sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU 0
safir/slack/webhook.py sha256=WMKTZEnSAmD8EzhVjT7lzJMEQT2moICMzXU_1_yFysk 7559
safir/testing/__init__.py sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU 0
safir/testing/gcs.py sha256=iM1vEsG8oycnSAHJU2PrUHOlTyDW57g4ImT_04DYIT8 10033
safir/testing/kubernetes.py sha256=_zzLcT8pJD2pBbWq2CQkKZej6uVuxuf4bICeTSeg3co 99354
safir/testing/py.typed sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU 0
safir/testing/slack.py sha256=rwPXUP2xtD27fdSR5leq85y-Wn35BeVJEMMrL6rRLXE 2691
safir/testing/uvicorn.py sha256=nxx0ZZ977WRwADAbG9qaNf_8xpHREudxl-LQXvzcCkY 5184
safir/testing/uws.py sha256=onLcs-0-yN5QSjaPZCDn9dUZ02zOE7W1r_tnz3KNBBc 12226
safir/uws/__init__.py sha256=0wYm72tfSu0c9vdqQ1WhiUAgVvqEs4Fkek9UC_eqMNk 888
safir/uws/_app.py sha256=Q4IiLfKhhk6tA83ABjHdrlW01vZ7yLZMqVs-TdA0Eiw 7876
safir/uws/_config.py sha256=qIJzPqNVcxDJU14zjkds8SQM1gVAQcTPVxI2bmn1mpk 13091
safir/uws/_constants.py sha256=8acnG7ZqLIclbDsRwj3uJvatdH8B5tOQPvNIDSK8bfM 697
safir/uws/_dependencies.py sha256=X5BHAFULXwNJSeWSigb2e0t5GqPA2xgEdyTaAdtkcFg 4965
safir/uws/_exceptions.py sha256=_l0XNL9rzdBjdxxLKnWl-Gm-giTmLGifHyXJhjovt4o 7568
safir/uws/_handlers.py sha256=pSqSrD_bHBj-rY3euXYYKjy1O4Z7XMpAfvdpo6MzbOw 17920
safir/uws/_models.py sha256=0zXC1PjXEuziw-ngboNLTv7coPMYmrg7ljNqx13qRrY 17534
safir/uws/_responses.py sha256=Q9L4tTHNdKoMIkm8N3fJyVEfAbnd0L28m1ELKr7YoRA 993
safir/uws/_results.py sha256=X75Oo1B0ybFkFXxrT-aq2cA3oJrPvU_optDrYBb8LRg 2289
safir/uws/_service.py sha256=AJKjr8TPjd1Hkkdwkog9BM9g3tSjyj46JlW39jHlMPw 21086
safir/uws/_storage.py sha256=MkDPM2F1l9xNQBvCe5MvY98MRr9QallZQ7s7a6V6p8A 11817
safir/uws/_workers.py sha256=EOmrYNFiGfWYdDKa85kIKM9h7Dmj99WdQ8vu7rqoG-E 8183
safir/uws/py.typed sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU 0
safir/uws/templates/error.xml sha256=fim7hOb1ZQRbC-FbSilsfUthsvh_sgH-z3rEm8t2UeU 266
safir-9.1.1.dist-info/LICENSE sha256=JOxgKHR3wdHdrASo8z8Uce7hQBnDra5rvxj5zeICB4k 1128
safir-9.1.1.dist-info/METADATA sha256=IFLC5QsmCgUyQU2jGlf6Xb2WgD6lEyfT69VCZ1cHmwM 5720
safir-9.1.1.dist-info/WHEEL sha256=PZUExdf71Ui_so67QXpySuHtCi3-J3wvF4ORK6k_S8U 91
safir-9.1.1.dist-info/top_level.txt sha256=lHdGSQXhWE7XvxLJiAquZeJePeRHD-PnjwJ8Nsr3CJE 6
safir-9.1.1.dist-info/RECORD

top_level.txt

safir