Merge pull request #177 from grillazz/readme-updates

bump project deps and update README.md
This commit is contained in:
Jakub Miazek 2024-10-16 15:59:36 +02:00 committed by GitHub
commit adfb0496b9
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 575 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,15 @@ 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 :clock1:
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.
<p align="right">(<a href="#readme-top">back to top</a>)</p>
## 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 +165,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 +207,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]