bump project deps and update README.md

This commit is contained in:
Jakub Miazek 2024-10-16 15:53:52 +02:00
parent bd9d7ac0d6
commit 296b68777e
3 changed files with 573 additions and 577 deletions

View File

@ -28,6 +28,7 @@
<li><a href="#setup-user-auth">Setup user auth</a></li>
<li><a href="#local-development-with-poetry">Local development with poetry</a></li>
<li><a href="#import-xlsx-files-with-polars-and-calamine">Import xlsx files with polars and calamine</a></li>
<li><a href="#worker-aware-async-scheduler">Schedule jobs</a></li>
</ul>
</li>
<li><a href="#acknowledgments">Acknowledgments</a></li>
@ -142,6 +143,13 @@ In `pl.read_excel()` “calamine” engine can be used for reading all major typ
<p align="right">(<a href="#readme-top">back to top</a>)</p>
### Worker aware async scheduler
The project uses the APScheduler library to schedule tasks in the background.
The APScheduler library is a powerful and flexible in-process task scheduler with Cron-like capabilities.
It allows you to schedule jobs to run at specific times or intervals, and it supports multiple job stores, triggers, and executors.
The library is designed to be easy to use and highly configurable, making it suitable for a wide range of use cases.
It was added to project in version 4.0.0a5 with Redis as event broker and SQLAlchemy as data store.
## Acknowledgments
Use this space to list resources you find helpful and would like to give credit to.
I've included a few of my favorites to kick things off!
@ -155,6 +163,7 @@ I've included a few of my favorites to kick things off!
* [Inline Snapshots - pytest plugin for inline snapshots]()
* [Connection pool for asyncpg](https://magicstack.github.io/asyncpg/current/usage.html#connection-pools)
* [Granian - A Rust HTTP server for Python applications](https://github.com/emmett-framework/granian)
* [APScheduler - In-process task scheduler with Cron-like capabilities](https://apscheduler.readthedocs.io/en/master/)
<p align="right">(<a href="#readme-top">back to top</a>)</p>
@ -196,21 +205,21 @@ I've included a few of my favorites to kick things off!
[linkedin-shield]: https://img.shields.io/badge/-LinkedIn-black.svg?style=for-the-badge&logo=linkedin&colorB=555
[linkedin-url]: https://www.linkedin.com/in/python-has-powers/
[fastapi.tiangolo.com]: https://img.shields.io/badge/FastAPI-0.112.1-009485?style=for-the-badge&logo=fastapi&logoColor=white
[fastapi.tiangolo.com]: https://img.shields.io/badge/FastAPI-0.115.2-009485?style=for-the-badge&logo=fastapi&logoColor=white
[fastapi-url]: https://fastapi.tiangolo.com/
[pydantic.com]: https://img.shields.io/badge/Pydantic-2.8.2-e92063?style=for-the-badge&logo=pydantic&logoColor=white
[pydantic.com]: https://img.shields.io/badge/Pydantic-2.9.2-e92063?style=for-the-badge&logo=pydantic&logoColor=white
[pydantic-url]: https://docs.pydantic.dev/latest/
[sqlalchemy.org]: https://img.shields.io/badge/SQLAlchemy-2.0.32-bb0000?color=bb0000&style=for-the-badge
[sqlalchemy.org]: https://img.shields.io/badge/SQLAlchemy-2.0.36-bb0000?color=bb0000&style=for-the-badge
[sqlalchemy-url]: https://docs.sqlalchemy.org/en/20/
[uvicorn.org]: https://img.shields.io/badge/Uvicorn-0.30.6-2094f3?style=for-the-badge&logo=uvicorn&logoColor=white
[uvicorn.org]: https://img.shields.io/badge/Uvicorn-0.32.0-2094f3?style=for-the-badge&logo=uvicorn&logoColor=white
[uvicorn-url]: https://www.uvicorn.org/
[asyncpg.github.io]: https://img.shields.io/badge/asyncpg-0.29.0-2e6fce?style=for-the-badge&logo=postgresql&logoColor=white
[asyncpg-url]: https://magicstack.github.io/asyncpg/current/
[pytest.org]: https://img.shields.io/badge/pytest-8.3.2-fff?style=for-the-badge&logo=pytest&logoColor=white
[pytest.org]: https://img.shields.io/badge/pytest-8.3.3-fff?style=for-the-badge&logo=pytest&logoColor=white
[pytest-url]: https://docs.pytest.org/en/6.2.x/
[alembic.sqlalchemy.org]: https://img.shields.io/badge/alembic-1.13.2-6BA81E?style=for-the-badge&logo=alembic&logoColor=white
[alembic.sqlalchemy.org]: https://img.shields.io/badge/alembic-1.13.3-6BA81E?style=for-the-badge&logo=alembic&logoColor=white
[alembic-url]: https://alembic.sqlalchemy.org/en/latest/
[rich.readthedocs.io]: https://img.shields.io/badge/rich-13.7.1-009485?style=for-the-badge&logo=rich&logoColor=white
[rich.readthedocs.io]: https://img.shields.io/badge/rich-13.9.2-009485?style=for-the-badge&logo=rich&logoColor=white
[rich-url]: https://rich.readthedocs.io/en/latest/
[redis.io]: https://img.shields.io/badge/redis-5.0.8-dc382d?style=for-the-badge&logo=redis&logoColor=white
[redis.io]: https://img.shields.io/badge/redis-5.1.1-dc382d?style=for-the-badge&logo=redis&logoColor=white
[redis-url]: https://redis.io/

1089
poetry.lock generated

File diff suppressed because it is too large Load Diff

View File

@ -8,31 +8,31 @@ license = "MIT"
[tool.poetry.dependencies]
python = "^3.12"
fastapi = {version = "^0.112.2", extras = ["all"]}
pydantic = {version = "^2.8.2", extras = ["email"]}
pydantic-settings = "^2.4.0"
sqlalchemy = "^2.0.32"
uvicorn = { version = "^0.30.6", extras = ["standard"]}
fastapi = {version = "^0.115.2", extras = ["all"]}
pydantic = {version = "^2.9.2", extras = ["email"]}
pydantic-settings = "^2.5.2"
sqlalchemy = "^2.0.36"
uvicorn = { version = "^0.32.0", extras = ["standard"]}
asyncpg = "^0.29.0"
alembic = "^1.13.2"
alembic = "^1.13.3"
httpx = "^0.27.2"
pytest = "^8.3.2"
pytest = "^8.3.3"
pytest-cov = "^5.0.0"
uvloop = "^0.20.0"
httptools = "^0.6.1"
rich = "^13.8.0"
uvloop = "^0.21.0"
httptools = "^0.6.2"
rich = "^13.9.2"
pyjwt = {version = "^2.9.0", extras = ["cryptography"]}
redis = "^5.0.8"
redis = "^5.1.1"
bcrypt = "^4.2.0"
polars = "^1.6.0"
python-multipart = "^0.0.9"
fastexcel = "^0.11.6"
polars = "^1.9.0"
python-multipart = "^0.0.12"
fastexcel = "^0.12.0"
fastapi-cache2 = {git = "https://github.com/yoco-tech/fastapi-cache.git", rev = "main"}
inline-snapshot = "^0.12.1"
inline-snapshot = "^0.13.3"
dirty-equals = "^0.8.0"
polyfactory = "^2.16.2"
granian = "^1.5.2"
transformers = "^4.44.2"
polyfactory = "^2.17.0"
granian = "^1.6.1"
transformers = "^4.45.2"
apscheduler = {version = "^4.0.0a5", extras = ["redis,sqlalchemy"]}
[tool.poetry.group.dev.dependencies]