Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

diagnose flag doesn't work. #1235

Closed
lifr0m opened this issue Nov 20, 2024 · 9 comments
Closed

diagnose flag doesn't work. #1235

lifr0m opened this issue Nov 20, 2024 · 9 comments
Labels
bug Something isn't working

Comments

@lifr0m
Copy link

lifr0m commented Nov 20, 2024

Python 3.13.0
loguru 0.7.2

This code

from loguru import logger

def func(a: int, b: int) -> None:
    try:
        a / b
    except Exception:
        logger.exception('')

func(1234, 0)

Prints

2024-11-20 18:13:47.612 | ERROR    | __main__:func:7 - 
Traceback (most recent call last):

  File "<frozen runpy>", line 198, in _run_module_as_main
  File "<frozen runpy>", line 88, in _run_code

  File "/Users/lifr0m/code/test/src/first.py", line 9, in <module>
    func(1234, 0)

> File "/Users/lifr0m/code/test/src/first.py", line 5, in func
    a / b

ZeroDivisionError: division by zero

I found that in file /_better_exceptions.py on line 500 traceback.format_list(frames) removes variables' state.

This code

import traceback

part = '\x1b[1ma\x1b[0m \x1b[35m\x1b[1m/\x1b[0m \x1b[1mb\x1b[0m\n    \x1b[36m│   └ \x1b[0m\x1b[36m\x1b[1m0\x1b[0m\n    \x1b[36m└ \x1b[0m\x1b[36m\x1b[1m1234\x1b[0m'

print(part)

print('--------------------------------------------------------')

print(traceback.format_list([
    ('somefile.py', 42, 'somefunc', part)
])[0])

Prints

a / b
    │   └ 0
    └ 1234
--------------------------------------------------------
  File "somefile.py", line 42, in somefunc
    a / b
@Delgan
Copy link
Owner

Delgan commented Nov 20, 2024

The shared snippet works as expected when executed using the python command:

programming/loguru $ python a.py 
2024-11-20 16:25:33.520 | ERROR    | __main__:func:8 - 
Traceback (most recent call last):

  File "/home/delgan/programming/loguru/a.py", line 11, in <module>
    func(1234, 0)
    └ <function func at 0x7d44879ea340>

> File "/home/delgan/programming/loguru/a.py", line 6, in func
    a / b
    │   └ 0
    └ 1234

ZeroDivisionError: division by zero
programming/loguru $ 

I see references to <frozen runpy> in the traceback you shared. How is your script executed?

@lifr0m
Copy link
Author

lifr0m commented Nov 20, 2024

The shared snippet works as expected when executed using the python command:

programming/loguru $ python a.py 
2024-11-20 16:25:33.520 | ERROR    | __main__:func:8 - 
Traceback (most recent call last):

  File "/home/delgan/programming/loguru/a.py", line 11, in <module>
    func(1234, 0)
    └ <function func at 0x7d44879ea340>

> File "/home/delgan/programming/loguru/a.py", line 6, in func
    a / b
    │   └ 0
    └ 1234

ZeroDivisionError: division by zero
programming/loguru $ 

I see references to <frozen runpy> in the traceback you shared. How is your script executed?

In PyCharm. Here zsh terminal execution:

➜  Desktop cat a.py 
from loguru import logger

def func(a: int, b: int) -> None:
    try:
        a / b
    except Exception:
        logger.exception('')

func(1234, 0)
➜  Desktop python3 --version
Python 3.13.0
➜  Desktop python3 a.py 
2024-11-20 20:46:33.073 | ERROR    | __main__:func:7 - 
Traceback (most recent call last):

  File "/Users/lifr0m/Desktop/a.py", line 9, in <module>
    func(1234, 0)

> File "/Users/lifr0m/Desktop/a.py", line 5, in func
    a / b

ZeroDivisionError: division by zero
➜  Desktop 

@Delgan
Copy link
Owner

Delgan commented Nov 20, 2024

Thanks for the additional details.

Can you please share the output of the following script using the python3 command again:

from loguru import logger
import os
import sys

print("Diagnose: ", os.environ.get("LOGURU_DIAGNOSE", None))


def func(a: int, b: int) -> None:
    try:
        a / b
    except Exception:
        logger.exception("")


logger.remove()
logger.add(sys.stderr, diagnose=True)
func(1234, 0)

@lifr0m
Copy link
Author

lifr0m commented Nov 21, 2024

Thanks for the additional details.

Can you please share the output of the following script using the python3 command again:

from loguru import logger
import os
import sys

print("Diagnose: ", os.environ.get("LOGURU_DIAGNOSE", None))


def func(a: int, b: int) -> None:
    try:
        a / b
    except Exception:
        logger.exception("")


logger.remove()
logger.add(sys.stderr, diagnose=True)
func(1234, 0)
➜  Desktop cat a.py 
from loguru import logger
import os
import sys

print("Diagnose: ", os.environ.get("LOGURU_DIAGNOSE", None))


def func(a: int, b: int) -> None:
    try:
        a / b
    except Exception:
        logger.exception("")


logger.remove()
logger.add(sys.stderr, diagnose=True)
func(1234, 0)
➜  Desktop python3 a.py 
Diagnose:  None
2024-11-21 17:22:14.186 | ERROR    | __main__:func:12 - 
Traceback (most recent call last):

  File "/Users/lifr0m/Desktop/a.py", line 17, in <module>
    func(1234, 0)

> File "/Users/lifr0m/Desktop/a.py", line 10, in func
    a / b

ZeroDivisionError: division by zero
➜  Desktop 

@lifr0m
Copy link
Author

lifr0m commented Nov 21, 2024

Thanks for the additional details.

Can you please share the output of the following script using the python3 command again:

from loguru import logger
import os
import sys

print("Diagnose: ", os.environ.get("LOGURU_DIAGNOSE", None))


def func(a: int, b: int) -> None:
    try:
        a / b
    except Exception:
        logger.exception("")


logger.remove()
logger.add(sys.stderr, diagnose=True)
func(1234, 0)

As I thought, it's Python 3.13 problem.

➜  Desktop python3.13 --version
Python 3.13.0
➜  Desktop python3.12 --version
Python 3.12.7
➜  Desktop python3.13 a.py     
Diagnose:  None
2024-11-21 17:24:03.132 | ERROR    | __main__:func:12 - 
Traceback (most recent call last):

  File "/Users/lifr0m/Desktop/a.py", line 17, in <module>
    func(1234, 0)

> File "/Users/lifr0m/Desktop/a.py", line 10, in func
    a / b

ZeroDivisionError: division by zero
➜  Desktop python3.12 a.py     
Diagnose:  None
2024-11-21 17:24:05.285 | ERROR    | __main__:func:12 - 
Traceback (most recent call last):

  File "/Users/lifr0m/Desktop/a.py", line 17, in <module>
    func(1234, 0)
    └ <function func at 0x102f32160>

> File "/Users/lifr0m/Desktop/a.py", line 10, in func
    a / b
    │   └ 0
    └ 1234

ZeroDivisionError: division by zero
➜  Desktop 

@Delgan
Copy link
Owner

Delgan commented Nov 21, 2024

Thanks for the investigations on your side, @lifr0m. That's very helpful since I can't reproduce it and have no clue for now regarding the cause of such issue.

Loguru is tested against Python 3.13 and it is supposed to work fine (including exception formatting tests): https://github.com/Delgan/loguru/actions/runs/11874268181/job/33090019768

Same on my Linux computer:

programming/loguru $ uv run -p python313 a.py
warning: `VIRTUAL_ENV=env` does not match the project environment path `.venv` and will be ignored
Python version: 3.13.0 (main, Oct 16 2024, 03:23:02) [Clang 18.1.8 ]
Diagnose:  None
2024-11-21 15:28:15.393 | ERROR    | __main__:func:13 - 
Traceback (most recent call last):

  File "/home/delgan/programming/loguru/a.py", line 18, in <module>
    func(1234, 0)
    └ <function func at 0x7121083272e0>

> File "/home/delgan/programming/loguru/a.py", line 11, in func
    a / b
    │   └ 0
    └ 1234

ZeroDivisionError: division by zero
programming/loguru $

May I ask more information about your OS and how you installed Python 3.13 please? That might be related to some build options.

@lifr0m
Copy link
Author

lifr0m commented Nov 21, 2024

@Delgan
Device: MacBook Air M1
OS: MacOS Sequoia 15.1
Installed through: Brew (brew install python)

@lifr0m
Copy link
Author

lifr0m commented Nov 21, 2024

@Delgan here is formula: https://formulae.brew.sh/formula/[email protected]. Formula JSON API and Formula code there might be helpful.

@Delgan
Copy link
Owner

Delgan commented Nov 21, 2024

Thanks for the additional details.

Now, I remember this is a bug with 0.7.2 version of Loguru and I was able to reproduce it locally on Linux.
Fortunately, this has been fixed thanks to @etianen's excellent work in #1079.

However, since no release were published since then, the fix is only available on the master branch of Loguru. 😬

If you have the possibility, I recommend installing Loguru from the latest repo commit, for example:

pip install git+https://github.com/delgan/loguru@3ee4ef3dfd95f0bebdf87530963e3253d5410e5d

For my part, I'm going to try to publish a new version soon.

@Delgan Delgan added the bug Something isn't working label Nov 21, 2024
@lifr0m lifr0m closed this as completed Nov 21, 2024
github-actions bot added a commit to Sygil-Dev/whoosh-reloaded that referenced this issue Dec 9, 2024
Bumps [loguru](https://github.com/Delgan/loguru) from 0.7.2 to 0.7.3.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/Delgan/loguru/releases">loguru's
releases</a>.</em></p>
<blockquote>
<h2>0.7.3</h2>
<ul>
<li>Fix Cython incompatibility caused by the absence of underlying stack
frames, which resulted in a <code>ValueError</code> during logging (<a
href="https://github.com/Delgan/loguru/issues/88">#88</a>).</li>
<li>Fix possible <code>RuntimeError</code> when removing all handlers
with <code>logger.remove()</code> due to thread-safety issue (<a
href="https://github.com/Delgan/loguru/issues/1183">#1183</a>,
thanks <a
href="https://github.com/jeremyk"><code>@​jeremyk</code></a>).</li>
<li>Fix <code>diagnose=True</code> option of exception formatting not
working as expected with Python 3.13 (<a
href="https://github.com/Delgan/loguru/issues/1235">#1235</a>,
thanks <a
href="https://github.com/etianen"><code>@​etianen</code></a>).</li>
<li>Fix non-standard level names not fully compatible with
<code>logging.Formatter()</code> (<a
href="https://github.com/Delgan/loguru/issues/1231">#1231</a>,
thanks <a
href="https://github.com/yechielb2000"><code>@​yechielb2000</code></a>).</li>
<li>Fix inability to display a literal <code>&quot;\&quot;</code>
immediately before color markups (<a
href="https://github.com/Delgan/loguru/issues/988">#988</a>).</li>
<li>Fix possible infinite recursion when an exception is raised from a
<code>__repr__</code> method decorated with <code>logger.catch()</code>
(<a
href="https://github.com/Delgan/loguru/issues/1044">#1044</a>).</li>
<li>Improve performance of <code>datetime</code> formatting while
logging messages (<a
href="https://github.com/Delgan/loguru/issues/1201">#1201</a>,
thanks <a
href="https://github.com/trim21"><code>@​trim21</code></a>).</li>
<li>Reduce startup time in the presence of installed but unused
<code>IPython</code> third-party library (<a
href="https://github.com/Delgan/loguru/issues/1001">#1001</a>,
thanks <a
href="https://github.com/zakstucke"><code>@​zakstucke</code></a>).</li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/Delgan/loguru/blob/master/CHANGELOG.rst">loguru's
changelog</a>.</em></p>
<blockquote>
<h1><code>0.7.3</code>_ (2024-12-06)</h1>
<ul>
<li>Fix Cython incompatibility caused by the absence of underlying stack
frames, which resulted in a <code>ValueError</code> during logging
(<code>[#88](Delgan/loguru#88)
&lt;https://github.com/Delgan/loguru/issues/88&gt;</code>_).</li>
<li>Fix possible <code>RuntimeError</code> when removing all handlers
with <code>logger.remove()</code> due to thread-safety issue
(<code>[#1183](Delgan/loguru#1183)
&lt;https://github.com/Delgan/loguru/issues/1183&gt;</code><em>, thanks
<code>@jeremyk &lt;https://github.com/jeremyk&gt;</code></em>).</li>
<li>Fix <code>diagnose=True</code> option of exception formatting not
working as expected with Python 3.13
(<code>[#1235](Delgan/loguru#1235)
&lt;https://github.com/Delgan/loguru/issues/1235&gt;</code><em>, thanks
<code>@etianen &lt;https://github.com/etianen&gt;</code></em>).</li>
<li>Fix non-standard level names not fully compatible with
<code>logging.Formatter()</code>
(<code>[#1231](Delgan/loguru#1231)
&lt;https://github.com/Delgan/loguru/issues/1231&gt;</code><em>, thanks
<code>@yechielb2000
&lt;https://github.com/yechielb2000&gt;</code></em>).</li>
<li>Fix inability to display a literal <code>&quot;\&quot;</code>
immediately before color markups
(<code>[#988](Delgan/loguru#988)
&lt;https://github.com/Delgan/loguru/issues/988&gt;</code>_).</li>
<li>Fix possible infinite recursion when an exception is raised from a
<code>__repr__</code> method decorated with <code>logger.catch()</code>
(<code>[#1044](Delgan/loguru#1044)
&lt;https://github.com/Delgan/loguru/issues/1044&gt;</code>_).</li>
<li>Improve performance of <code>datetime</code> formatting while
logging messages
(<code>[#1201](Delgan/loguru#1201)
&lt;https://github.com/Delgan/loguru/issues/1201&gt;</code><em>, thanks
<code>@trim21 &lt;https://github.com/trim21&gt;</code></em>).</li>
<li>Reduce startup time in the presence of installed but unused
<code>IPython</code> third-party library
(<code>[#1001](Delgan/loguru#1001)
&lt;https://github.com/Delgan/loguru/issues/1001&gt;</code><em>, thanks
<code>@zakstucke &lt;https://github.com/zakstucke&gt;</code></em>).</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/Delgan/loguru/commit/ae3bfd1b85b6b4a3db535f69b975687c79498be4"><code>ae3bfd1</code></a>
Bump version to 0.7.3</li>
<li><a
href="https://github.com/Delgan/loguru/commit/ccca3566cc00c22eed8659705e45386fa2101b5d"><code>ccca356</code></a>
Replace &quot;notifiers&quot; (seems unmaintained) with
&quot;apprise&quot; in docs (<a
href="https://github.com/Delgan/loguru/issues/1251">#1251</a>)</li>
<li><a
href="https://github.com/Delgan/loguru/commit/a372814bf79d47628e66ca9a91072f53fba032f8"><code>a372814</code></a>
Configure &quot;trusted publishing&quot; in Github workflow</li>
<li><a
href="https://github.com/Delgan/loguru/commit/633016db07e5dff63bc05dd3c4d5aa81b6190700"><code>633016d</code></a>
Use tox to define the &quot;release&quot; command</li>
<li><a
href="https://github.com/Delgan/loguru/commit/ef12cbbaf54fb2e64ca66b0a90675cdf9e8a522f"><code>ef12cbb</code></a>
Convert README from RST to MD (fix PyPI packaging)</li>
<li><a
href="https://github.com/Delgan/loguru/commit/cb3314a5af107ad175a9bafa11b1b79670e3067a"><code>cb3314a</code></a>
Add Github action to verify packaging</li>
<li><a
href="https://github.com/Delgan/loguru/commit/6161a13b79e1a3a29e922926b44f26edbcc3c06a"><code>6161a13</code></a>
Complete the &quot;Troubleshooting&quot; docs with more examples</li>
<li><a
href="https://github.com/Delgan/loguru/commit/7f5001fe46393627ced287bba2c4064442c3fd25"><code>7f5001f</code></a>
Simplify the example of dynamic handler level</li>
<li><a
href="https://github.com/Delgan/loguru/commit/2e0cd7bb5105461057c56aefb225da569882ad29"><code>2e0cd7b</code></a>
Move &quot;Introduction to logging&quot; docs to a new section</li>
<li><a
href="https://github.com/Delgan/loguru/commit/72b93d1a24d1491ce7ba752fe36c14f9570a5d63"><code>72b93d1</code></a>
Correct outdated instructions for reporting a vulnerability</li>
<li>Additional commits viewable in <a
href="https://github.com/Delgan/loguru/compare/0.7.2...0.7.3">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=loguru&package-manager=pip&previous-version=0.7.2&new-version=0.7.3)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>
github-actions bot pushed a commit to afonasev/deta_todo_service that referenced this issue Jan 1, 2025
[//]: # (dependabot-start)
⚠️  **Dependabot is rebasing this PR** ⚠️ 

Rebasing might not happen immediately, so don't worry if this takes some
time.

Note: if you make any changes to this PR yourself, they will take
precedence over the rebase.

---

[//]: # (dependabot-end)

Bumps [loguru](https://github.com/Delgan/loguru) from 0.6.0 to 0.7.3.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/Delgan/loguru/releases">loguru's
releases</a>.</em></p>
<blockquote>
<h2>0.7.3</h2>
<ul>
<li>Fix Cython incompatibility caused by the absence of underlying stack
frames, which resulted in a <code>ValueError</code> during logging (<a
href="https://github.com/Delgan/loguru/issues/88">#88</a>).</li>
<li>Fix possible <code>RuntimeError</code> when removing all handlers
with <code>logger.remove()</code> due to thread-safety issue (<a
href="https://github.com/Delgan/loguru/issues/1183">#1183</a>,
thanks <a
href="https://github.com/jeremyk"><code>@​jeremyk</code></a>).</li>
<li>Fix <code>diagnose=True</code> option of exception formatting not
working as expected with Python 3.13 (<a
href="https://github.com/Delgan/loguru/issues/1235">#1235</a>,
thanks <a
href="https://github.com/etianen"><code>@​etianen</code></a>).</li>
<li>Fix non-standard level names not fully compatible with
<code>logging.Formatter()</code> (<a
href="https://github.com/Delgan/loguru/issues/1231">#1231</a>,
thanks <a
href="https://github.com/yechielb2000"><code>@​yechielb2000</code></a>).</li>
<li>Fix inability to display a literal <code>&quot;\&quot;</code>
immediately before color markups (<a
href="https://github.com/Delgan/loguru/issues/988">#988</a>).</li>
<li>Fix possible infinite recursion when an exception is raised from a
<code>__repr__</code> method decorated with <code>logger.catch()</code>
(<a
href="https://github.com/Delgan/loguru/issues/1044">#1044</a>).</li>
<li>Improve performance of <code>datetime</code> formatting while
logging messages (<a
href="https://github.com/Delgan/loguru/issues/1201">#1201</a>,
thanks <a
href="https://github.com/trim21"><code>@​trim21</code></a>).</li>
<li>Reduce startup time in the presence of installed but unused
<code>IPython</code> third-party library (<a
href="https://github.com/Delgan/loguru/issues/1001">#1001</a>,
thanks <a
href="https://github.com/zakstucke"><code>@​zakstucke</code></a>).</li>
</ul>
<h2>0.7.2</h2>
<ul>
<li>Add support for formatting of <code>ExceptionGroup</code> errors (<a
href="https://github.com/Delgan/loguru/issues/805">#805</a>).</li>
<li>Fix possible <code>RuntimeError</code> when using
<code>multiprocessing.set_start_method()</code> after importing the
<code>logger</code> (<a
href="https://github.com/Delgan/loguru/issues/974">#974</a>).</li>
<li>Fix formatting of possible <code>__notes__</code> attached to an
<code>Exception</code> (<a
href="https://github.com/Delgan/loguru/issues/980">#980</a>).</li>
</ul>
<h2>0.7.1</h2>
<ul>
<li>Add a new <code>context</code> optional argument to
<code>logger.add()</code> specifying <code>multiprocessing</code>
context (like <code>&quot;spawn&quot;</code> or
<code>&quot;fork&quot;</code>) to be used internally instead of the
default one (<a
href="https://github.com/Delgan/loguru/issues/851">#851</a>).</li>
<li>Add support for true colors on Windows using ANSI/VT console when
available (<a
href="https://github.com/Delgan/loguru/issues/934">#934</a>,
thanks <a
href="https://github.com/tunaflsh"><code>@​tunaflsh</code></a>).</li>
<li>Fix possible deadlock when calling <code>logger.complete()</code>
with concurrent logging of an asynchronous sink (<a
href="https://github.com/Delgan/loguru/issues/906">#906</a>).</li>
<li>Fix file possibly rotating too early or too late when re-starting an
application around midnight (<a
href="https://github.com/Delgan/loguru/issues/894">#894</a>).</li>
<li>Fix inverted <code>&quot;&lt;hide&gt;&quot;</code> and
<code>&quot;&lt;strike&gt;&quot;</code> color tags (<a
href="https://github.com/Delgan/loguru/issues/943">#943</a>,
thanks <a
href="https://github.com/tunaflsh"><code>@​tunaflsh</code></a>).</li>
<li>Fix possible untraceable errors raised when logging non-unpicklable
<code>Exception</code> instances while using <code>enqueue=True</code>
(<a
href="https://github.com/Delgan/loguru/issues/329">#329</a>).</li>
<li>Fix possible errors raised when logging non-picklable
<code>Exception</code> instances while using <code>enqueue=True</code>
(<a
href="https://github.com/Delgan/loguru/issues/342">#342</a>,
thanks <a
href="https://github.com/ncoudene"><code>@​ncoudene</code></a>).</li>
<li>Fix missing seconds and microseconds when formatting timezone offset
that requires such accuracy (<a
href="https://github.com/Delgan/loguru/issues/961">#961</a>).</li>
<li>Raise <code>ValueError</code> if an attempt to use nanosecond
precision for time formatting is detected (<a
href="https://github.com/Delgan/loguru/issues/855">#855</a>).</li>
</ul>
<h2>0.7.0</h2>
<ul>
<li>Update <code>InterceptHandler</code> recipe to make it compatible
with Python 3.11 (<a
href="https://github.com/Delgan/loguru/issues/654">#654</a>).</li>
<li>Add a new <code>watch</code> optional argument to file sinks in
order to automatically re-create possibly deleted or changed file (<a
href="https://github.com/Delgan/loguru/issues/471">#471</a>).</li>
<li>Make <code>patch()</code> calls cumulative instead of overriding the
possibly existing patching function (<a
href="https://github.com/Delgan/loguru/issues/462">#462</a>).</li>
<li>Make sinks added with <code>enqueue=True</code> and
<code>catch=False</code> still process logged messages in case of
internal exception (<a
href="https://github.com/Delgan/loguru/issues/833">#833</a>).</li>
<li>Avoid possible deadlocks caused by re-using the logger inside a
sink, a signal handler or a <code>__del__</code> method. Since the
logger is not re-entrant, such misuse will be detected and will now
generate a <code>RuntimeError</code> (<a
href="https://github.com/Delgan/loguru/issues/712">#712</a>,
thanks <a
href="https://github.com/jacksmith15"><code>@​jacksmith15</code></a>).</li>
<li>Fix file sink rotation using an aware <code>datetime.time</code> for
which the timezone was ignored (<a
href="https://github.com/Delgan/loguru/issues/697">#697</a>).</li>
<li>Fix logs colorization not automatically enabled for Jupyter Notebook
and Google Colab (<a
href="https://github.com/Delgan/loguru/issues/494">#494</a>).</li>
<li>Fix logs colorization not automatically enabled for Github Actions
and others CI platforms (<a
href="https://github.com/Delgan/loguru/issues/604">#604</a>).</li>
<li>Fix <code>logger.complete()</code> possibly hanging forever when
<code>enqueue=True</code> and <code>catch=False</code> if internal
thread killed due to <code>Exception</code> raised by sink (<a
href="https://github.com/Delgan/loguru/issues/647">#647</a>).</li>
<li>Fix incompatibility with <code>freezegun</code> library used to
simulate time (<a
href="https://github.com/Delgan/loguru/issues/600">#600</a>).</li>
<li>Raise exception if <code>logger.catch()</code> is used to wrap a
class instead of a function to avoid unexpected behavior (<a
href="https://github.com/Delgan/loguru/issues/623">#623</a>).</li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/Delgan/loguru/blob/master/CHANGELOG.rst">loguru's
changelog</a>.</em></p>
<blockquote>
<h1><code>0.7.3</code>_ (2024-12-06)</h1>
<ul>
<li>Fix Cython incompatibility caused by the absence of underlying stack
frames, which resulted in a <code>ValueError</code> during logging
(<code>[#88](Delgan/loguru#88)
&lt;https://github.com/Delgan/loguru/issues/88&gt;</code>_).</li>
<li>Fix possible <code>RuntimeError</code> when removing all handlers
with <code>logger.remove()</code> due to thread-safety issue
(<code>[#1183](Delgan/loguru#1183)
&lt;https://github.com/Delgan/loguru/issues/1183&gt;</code><em>, thanks
<code>@jeremyk &lt;https://github.com/jeremyk&gt;</code></em>).</li>
<li>Fix <code>diagnose=True</code> option of exception formatting not
working as expected with Python 3.13
(<code>[#1235](Delgan/loguru#1235)
&lt;https://github.com/Delgan/loguru/issues/1235&gt;</code><em>, thanks
<code>@etianen &lt;https://github.com/etianen&gt;</code></em>).</li>
<li>Fix non-standard level names not fully compatible with
<code>logging.Formatter()</code>
(<code>[#1231](Delgan/loguru#1231)
&lt;https://github.com/Delgan/loguru/issues/1231&gt;</code><em>, thanks
<code>@yechielb2000
&lt;https://github.com/yechielb2000&gt;</code></em>).</li>
<li>Fix inability to display a literal <code>&quot;\&quot;</code>
immediately before color markups
(<code>[#988](Delgan/loguru#988)
&lt;https://github.com/Delgan/loguru/issues/988&gt;</code>_).</li>
<li>Fix possible infinite recursion when an exception is raised from a
<code>__repr__</code> method decorated with <code>logger.catch()</code>
(<code>[#1044](Delgan/loguru#1044)
&lt;https://github.com/Delgan/loguru/issues/1044&gt;</code>_).</li>
<li>Improve performance of <code>datetime</code> formatting while
logging messages
(<code>[#1201](Delgan/loguru#1201)
&lt;https://github.com/Delgan/loguru/issues/1201&gt;</code><em>, thanks
<code>@trim21 &lt;https://github.com/trim21&gt;</code></em>).</li>
<li>Reduce startup time in the presence of installed but unused
<code>IPython</code> third-party library
(<code>[#1001](Delgan/loguru#1001)
&lt;https://github.com/Delgan/loguru/issues/1001&gt;</code><em>, thanks
<code>@zakstucke &lt;https://github.com/zakstucke&gt;</code></em>).</li>
</ul>
<h1><code>0.7.2</code>_ (2023-09-11)</h1>
<ul>
<li>Add support for formatting of <code>ExceptionGroup</code> errors
(<code>[#805](Delgan/loguru#805)
&lt;https://github.com/Delgan/loguru/issues/805&gt;</code>_).</li>
<li>Fix possible <code>RuntimeError</code> when using
<code>multiprocessing.set_start_method()</code> after importing the
<code>logger</code>
(<code>[#974](Delgan/loguru#974)
&lt;https://github.com/Delgan/loguru/issues/974&gt;</code>_).</li>
<li>Fix formatting of possible <code>__notes__</code> attached to an
<code>Exception</code>
(<code>[#980](Delgan/loguru#980)
&lt;https://github.com/Delgan/loguru/issues/980&gt;</code>_).</li>
</ul>
<h1><code>0.7.1</code>_ (2023-09-04)</h1>
<ul>
<li>Add a new <code>context</code> optional argument to
<code>logger.add()</code> specifying <code>multiprocessing</code>
context (like <code>&quot;spawn&quot;</code> or
<code>&quot;fork&quot;</code>) to be used internally instead of the
default one (<code>[#851](Delgan/loguru#851)
&lt;https://github.com/Delgan/loguru/issues/851&gt;</code>_).</li>
<li>Add support for true colors on Windows using ANSI/VT console when
available (<code>[#934](Delgan/loguru#934)
&lt;https://github.com/Delgan/loguru/issues/934&gt;</code><em>, thanks
<code>@tunaflsh &lt;https://github.com/tunaflsh&gt;</code></em>).</li>
<li>Fix possible deadlock when calling <code>logger.complete()</code>
with concurrent logging of an asynchronous sink
(<code>[#906](Delgan/loguru#906)
&lt;https://github.com/Delgan/loguru/issues/906&gt;</code>_).</li>
<li>Fix file possibly rotating too early or too late when re-starting an
application around midnight
(<code>[#894](Delgan/loguru#894)
&lt;https://github.com/Delgan/loguru/issues/894&gt;</code>_).</li>
<li>Fix inverted <code>&quot;&lt;hide&gt;&quot;</code> and
<code>&quot;&lt;strike&gt;&quot;</code> color tags
(<code>[#943](Delgan/loguru#943)
&lt;https://github.com/Delgan/loguru/pull/943&gt;</code><em>, thanks
<code>@tunaflsh &lt;https://github.com/tunaflsh&gt;</code></em>).</li>
<li>Fix possible untraceable errors raised when logging non-unpicklable
<code>Exception</code> instances while using <code>enqueue=True</code>
(<code>[#329](Delgan/loguru#329)
&lt;https://github.com/Delgan/loguru/issues/329&gt;</code>_).</li>
<li>Fix possible errors raised when logging non-picklable
<code>Exception</code> instances while using <code>enqueue=True</code>
(<code>[#342](Delgan/loguru#342)
&lt;https://github.com/Delgan/loguru/issues/342&gt;</code><em>, thanks
<code>@ncoudene &lt;https://github.com/ncoudene&gt;</code></em>).</li>
<li>Fix missing seconds and microseconds when formatting timezone offset
that requires such accuracy
(<code>[#961](Delgan/loguru#961)
&lt;https://github.com/Delgan/loguru/issues/961&gt;</code>_).</li>
<li>Raise <code>ValueError</code> if an attempt to use nanosecond
precision for time formatting is detected
(<code>[#855](Delgan/loguru#855)
&lt;https://github.com/Delgan/loguru/issues/855&gt;</code>_).</li>
</ul>
<h1><code>0.7.0</code>_ (2023-04-10)</h1>
<ul>
<li>Update <code>InterceptHandler</code> recipe to make it compatible
with Python 3.11
(<code>[#654](Delgan/loguru#654)
&lt;https://github.com/Delgan/loguru/issues/654&gt;</code>_).</li>
<li>Add a new <code>watch</code> optional argument to file sinks in
order to automatically re-create possibly deleted or changed file
(<code>[#471](Delgan/loguru#471)
&lt;https://github.com/Delgan/loguru/issues/471&gt;</code>_).</li>
<li>Make <code>patch()</code> calls cumulative instead of overriding the
possibly existing patching function
(<code>[#462](Delgan/loguru#462)
&lt;https://github.com/Delgan/loguru/issues/462&gt;</code>_).</li>
<li>Make sinks added with <code>enqueue=True</code> and
<code>catch=False</code> still process logged messages in case of
internal exception
(<code>[#833](Delgan/loguru#833)
&lt;https://github.com/Delgan/loguru/issues/833&gt;</code>_).</li>
<li>Avoid possible deadlocks caused by re-using the logger inside a
sink, a signal handler or a <code>__del__</code> method. Since the
logger is not re-entrant, such misuse will be detected and will now
generate a <code>RuntimeError</code>
(<code>[#712](Delgan/loguru#712)
&lt;https://github.com/Delgan/loguru/issues/712&gt;</code><em>, thanks
<code>@jacksmith15
&lt;https://github.com/jacksmith15&gt;</code></em>).</li>
<li>Fix file sink rotation using an aware <code>datetime.time</code> for
which the timezone was ignored
(<code>[#697](Delgan/loguru#697)
&lt;https://github.com/Delgan/loguru/issues/697&gt;</code>_).</li>
<li>Fix logs colorization not automatically enabled for Jupyter Notebook
and Google Colab
(<code>[#494](Delgan/loguru#494)
&lt;https://github.com/Delgan/loguru/issues/494&gt;</code>_).</li>
<li>Fix logs colorization not automatically enabled for Github Actions
and others CI platforms
(<code>[#604](Delgan/loguru#604)
&lt;https://github.com/Delgan/loguru/issues/604&gt;</code>_).</li>
<li>Fix <code>logger.complete()</code> possibly hanging forever when
<code>enqueue=True</code> and <code>catch=False</code> if internal
thread killed due to <code>Exception</code> raised by sink
(<code>[#647](Delgan/loguru#647)
&lt;https://github.com/Delgan/loguru/issues/647&gt;</code>_).</li>
<li>Fix incompatibility with <code>freezegun</code> library used to
simulate time (<code>[#600](Delgan/loguru#600)
&lt;https://github.com/Delgan/loguru/issues/600&gt;</code>_).</li>
<li>Raise exception if <code>logger.catch()</code> is used to wrap a
class instead of a function to avoid unexpected behavior
(<code>[#623](Delgan/loguru#623)
&lt;https://github.com/Delgan/loguru/issues/623&gt;</code>_).</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/Delgan/loguru/commit/ae3bfd1b85b6b4a3db535f69b975687c79498be4"><code>ae3bfd1</code></a>
Bump version to 0.7.3</li>
<li><a
href="https://github.com/Delgan/loguru/commit/ccca3566cc00c22eed8659705e45386fa2101b5d"><code>ccca356</code></a>
Replace &quot;notifiers&quot; (seems unmaintained) with
&quot;apprise&quot; in docs (<a
href="https://github.com/Delgan/loguru/issues/1251">#1251</a>)</li>
<li><a
href="https://github.com/Delgan/loguru/commit/a372814bf79d47628e66ca9a91072f53fba032f8"><code>a372814</code></a>
Configure &quot;trusted publishing&quot; in Github workflow</li>
<li><a
href="https://github.com/Delgan/loguru/commit/633016db07e5dff63bc05dd3c4d5aa81b6190700"><code>633016d</code></a>
Use tox to define the &quot;release&quot; command</li>
<li><a
href="https://github.com/Delgan/loguru/commit/ef12cbbaf54fb2e64ca66b0a90675cdf9e8a522f"><code>ef12cbb</code></a>
Convert README from RST to MD (fix PyPI packaging)</li>
<li><a
href="https://github.com/Delgan/loguru/commit/cb3314a5af107ad175a9bafa11b1b79670e3067a"><code>cb3314a</code></a>
Add Github action to verify packaging</li>
<li><a
href="https://github.com/Delgan/loguru/commit/6161a13b79e1a3a29e922926b44f26edbcc3c06a"><code>6161a13</code></a>
Complete the &quot;Troubleshooting&quot; docs with more examples</li>
<li><a
href="https://github.com/Delgan/loguru/commit/7f5001fe46393627ced287bba2c4064442c3fd25"><code>7f5001f</code></a>
Simplify the example of dynamic handler level</li>
<li><a
href="https://github.com/Delgan/loguru/commit/2e0cd7bb5105461057c56aefb225da569882ad29"><code>2e0cd7b</code></a>
Move &quot;Introduction to logging&quot; docs to a new section</li>
<li><a
href="https://github.com/Delgan/loguru/commit/72b93d1a24d1491ce7ba752fe36c14f9570a5d63"><code>72b93d1</code></a>
Correct outdated instructions for reporting a vulnerability</li>
<li>Additional commits viewable in <a
href="https://github.com/Delgan/loguru/compare/0.6.0...0.7.3">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=loguru&package-manager=pip&previous-version=0.6.0&new-version=0.7.3)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

2 participants