Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/kornicameister/loguru-mypy
mypy plugin for loguru
https://github.com/kornicameister/loguru-mypy
logging loguru mypy plugin typing
Last synced: 3 months ago
JSON representation
mypy plugin for loguru
- Host: GitHub
- URL: https://github.com/kornicameister/loguru-mypy
- Owner: kornicameister
- License: mit
- Created: 2020-06-01T20:18:39.000Z (over 4 years ago)
- Default Branch: master
- Last Pushed: 2024-04-12T14:25:56.000Z (7 months ago)
- Last Synced: 2024-04-14T05:47:34.872Z (7 months ago)
- Topics: logging, loguru, mypy, plugin, typing
- Language: Python
- Homepage:
- Size: 232 KB
- Stars: 16
- Watchers: 4
- Forks: 3
- Open Issues: 16
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Funding: .github/FUNDING.yml
- License: LICENSE
Awesome Lists containing this project
- awesome-python-typing - loguru-mypy - Plugin for [loguru](https://github.com/Delgan/loguru) support. (Tools / Mypy plugins)
README
# loguru-mypy
A fancy plugin to boost up your logging with [loguru](https://github.com/Delgan/loguru)
![GitHub Workflow Status (branch)](https://img.shields.io/github/workflow/status/kornicameister/loguru-mypy/CI/master)
[![Open Source Helpers](https://www.codetriage.com/kornicameister/loguru-mypy/badges/users.svg)](https://www.codetriage.com/kornicameister/loguru-mypy)
![PyPI](https://img.shields.io/pypi/v/loguru-mypy)
![PyPI - Downloads](https://img.shields.io/pypi/dm/loguru-mypy)
[![time tracker](https://wakatime.com/badge/github/kornicameister/loguru-mypy.svg)](https://wakatime.com/badge/github/kornicameister/loguru-mypy)
[![Checked with mypy](http://www.mypy-lang.org/static/mypy_badge.svg)](http://mypy-lang.org/)## mypy compatibility
`logoru-mypy` should be compatible with `mypy>=0.770`.
Currently there is no limit as far as the compatibility can go. If you are interested to see
how far `loguru_mypy` goes you can visit [CI/CD action](./.github/workflows/ci.yml) and check its
matrix.## Installation
Simply execute:
```sh
pip install loguru-mypy
```And later on modify your `mypy.ini` configuration file with
```ini
[mypy]
plugins = loguru_mypy
```That is all, your code is now ready to be linted.
## What is included?
`loguru-mypy` is obviously a [mypy](https://github.com/python/mypy) plugin that allows to avoid
some of those little _runtime_ trickeries :).
Here is a short attempt to list some of those:### Lazy loggers
`logger.opt(lazy=True)` in facts returns a `logger` that we call _lazy_. Lazy loggers accept only
`typing.Callable[[], t.Any]` in place of positional or named arguments. Passing a callable that
accepts even a **single** argument thus results in runtime error. `loguru-mypy` detects that fact
and lets you know before your runtime reaches that portion of a code.