* build(pyproject.toml): add new dev dependencies - for type checking
* build: reformat files to fit black
* ci: reformat to fit black
* ci(test-litellm.yml): make tests run clear
* build(pyproject.toml): add ruff
* fix: fix ruff checks
* build(mypy/): fix mypy linting errors
* fix(hashicorp_secret_manager.py): fix passing cert for tls auth
* build(mypy/): resolve all mypy errors
* test: update test
* fix: fix black formatting
* build(pre-commit-config.yaml): use poetry run black
* fix(proxy_server.py): fix linting error
* fix: fix ruff safe representation error
## Fix asyncio get_event_loop() deprecation warning
### Problem
The caching handler uses `asyncio.get_event_loop()` which raises a deprecation warning in Python 3.10+ and will be removed in future versions.
Error: "DeprecationWarning: There is no current event loop"
### Solution
Updated the code to use `asyncio.get_running_loop()` with a fallback to `asyncio.new_event_loop()` when no loop is running, which follows the recommended pattern for modern Python versions.
This approach:
- Avoids the deprecation warning
- Creates isolated event loops when needed
- Maintains the same functionality without modifying thread state
- Is compatible with Python 3.10 through 3.13
### Testing
Tested on Python 3.13.x with no deprecation warnings.
### Related Issues
This addresses the same issue discussed in python/cpython#93453