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

Ambiguity in setting FileClosedEvent in filter #1046

Closed
xieyuguang opened this issue Jul 18, 2024 · 5 comments · Fixed by #1059
Closed

Ambiguity in setting FileClosedEvent in filter #1046

xieyuguang opened this issue Jul 18, 2024 · 5 comments · Fixed by #1059

Comments

@xieyuguang
Copy link

If the filter is set to FileClosedEvent, the mask is set to InotifyConstants.IN_CLOSE which includes IN_CLOSE_WRITE and IN_CLOSE_NOWRITE, but only IN_CLOSE_WRITE will call on_closed(). I think line 236 should be modified to event_mask |= InotifyConstants.IN_CLOSE_WRITE to improve performance and maintain logical consistency in the code.

elif cls is FileClosedEvent:
event_mask |= InotifyConstants.IN_CLOSE

elif event.is_close_write and not event.is_directory:
cls = FileClosedEvent
self.queue_event(cls(src_path))
self.queue_event(DirModifiedEvent(os.path.dirname(src_path)))
elif event.is_open and not event.is_directory:
cls = FileOpenedEvent
self.queue_event(cls(src_path))
# elif event.is_close_nowrite and not event.is_directory:
# cls = FileClosedEvent
# self.queue_event(cls(src_path))

@BoboTiG
Copy link
Collaborator

BoboTiG commented Jul 18, 2024

I like your proposal! Would you mind opening a PR?

@BoboTiG
Copy link
Collaborator

BoboTiG commented Jul 18, 2024

Hm after reading #747, I think we will loose important events. Example: I open a file and get the related event; then if we apply your proposal, I will never know when the file is closed in the case of a non-write. 🤔

@xieyuguang
Copy link
Author

It seems that there is currently no way to get the non-write closed event, as the relevant code has been commented out, as shown in lines 197 to 199. Can we more finely distinguish which type of file closed event it is, so that it can be set on the filter and corresponding callbacks can be added for calling, such as on_closed_write() and on_closed_nowrite().

@xieyuguang
Copy link
Author

We discovered this issue by having a file upload service that uses this library to detect all newly added files in a certain directory. When these newly added files are written and closed, the upload will be triggered. But we found abnormal CPU usage, which turned out to be another service that scans text content and continuously analyzes the content of text files in the same directory read-only. But our file upload service actually doesn't care about these read-only file closed events.

@BoboTiG
Copy link
Collaborator

BoboTiG commented Jul 18, 2024

Can we more finely distinguish which type of file closed event it is, so that it can be set on the filter and corresponding callbacks can be added for calling, such as on_closed_write() and on_closed_nowrite().

It seems a potential solution to me, yes 👍🏻

BoboTiG added a commit to BoboTiG/watchdog that referenced this issue Aug 12, 2024
A `FileClosedNoWriteEvent` event will be fired,
and its `on_closed_no_write()` dispatcher has been introduced.

Closes gorakhargosh#1046.
github-actions bot pushed a commit to wxx9248/Pickle-Rush that referenced this issue Aug 27, 2024
Bumps [watchdog](https://github.com/gorakhargosh/watchdog) from 4.0.2 to
5.0.0.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/gorakhargosh/watchdog/releases">watchdog's
releases</a>.</em></p>
<blockquote>
<h2>5.0.0</h2>
<h2>Breaking Changes</h2>
<ul>
<li>Drop support for Python 3.8 (<a
href="https://redirect.github.com/gorakhargosh/watchdog/issues/1055">#1055</a>)</li>
<li>[core] Enforced usage of proper keyword-arguments (<a
href="https://redirect.github.com/gorakhargosh/watchdog/issues/1057">#1057</a>)</li>
<li>[core] Renamed the <code>BaseObserverSubclassCallable</code> class
to <code>ObserverType</code> (<a
href="https://redirect.github.com/gorakhargosh/watchdog/issues/1055">#1055</a>)</li>
<li>[inotify] Renamed the <code>inotify_event_struct</code> class to
<code>InotifyEventStruct</code> (<a
href="https://redirect.github.com/gorakhargosh/watchdog/issues/1055">#1055</a>)</li>
<li>[inotify] Renamed the <code>UnsupportedLibc</code> exception to
<code>UnsupportedLibcError</code> (<a
href="https://redirect.github.com/gorakhargosh/watchdog/issues/1057">#1057</a>)</li>
<li>[inotify] Removed the <code>InotifyConstants.IN_CLOSE</code>
constant (<a
href="https://redirect.github.com/gorakhargosh/watchdog/issues/1046">#1046</a>)</li>
<li>[watchmedo] Renamed the <code>LogLevelException</code> exception to
<code>LogLevelError</code> (<a
href="https://redirect.github.com/gorakhargosh/watchdog/issues/1057">#1057</a>)</li>
<li>[watchmedo] Renamed the <code>WatchdogShutdown</code> exception to
<code>WatchdogShutdownError</code> (<a
href="https://redirect.github.com/gorakhargosh/watchdog/issues/1057">#1057</a>)</li>
<li>[windows] Renamed the <code>FILE_NOTIFY_INFORMATION</code> class to
<code>FileNotifyInformation</code> (<a
href="https://redirect.github.com/gorakhargosh/watchdog/issues/1055">#1055</a>)</li>
<li>[windows] Removed the unused
<code>WATCHDOG_TRAVERSE_MOVED_DIR_DELAY</code> constant (<a
href="https://redirect.github.com/gorakhargosh/watchdog/issues/1057">#1057</a>)</li>
</ul>
<h2>Other Changes</h2>
<ul>
<li>[core] Enable <code>disallow_untyped_calls</code> Mypy rule (<a
href="https://redirect.github.com/gorakhargosh/watchdog/issues/1055">#1055</a>)</li>
<li>[core] Enable <code>disallow_untyped_defs</code> Mypy rule (<a
href="https://redirect.github.com/gorakhargosh/watchdog/issues/1060">#1060</a>)</li>
<li>[core] Improve typing references for events (<a
href="https://redirect.github.com/gorakhargosh/watchdog/issues/1040">#1040</a>)</li>
<li>[inotify] Add support for <code>IN_CLOSE_NOWRITE</code> events. A
<code>FileClosedNoWriteEvent</code> event will be fired, and its
<code>on_closed_no_write()</code> dispatcher has been introduced (<a
href="https://redirect.github.com/gorakhargosh/watchdog/issues/1046">#1046</a>)</li>
</ul>
<p>:heart_decoration: Thanks to our beloved contributors: <a
href="https://github.com/BoboTiG"><code>@​BoboTiG</code></a></p>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/gorakhargosh/watchdog/blob/master/changelog.rst">watchdog's
changelog</a>.</em></p>
<blockquote>
<p>5.0.0</p>
<pre><code>
2024-08-26 • `full history
&lt;https://github.com/gorakhargosh/watchdog/compare/v4.0.2...v5.0.0&gt;`__
<p><strong>Breaking Changes</strong></p>
<ul>
<li>Drop support for Python 3.8
(<code>[#1055](gorakhargosh/watchdog#1055)
&amp;lt;https://github.com/gorakhargosh/watchdog/pull/1055&amp;gt;</code>__)</li>
<li>[core] Enforced usage of proper keyword-arguments
(<code>[#1057](gorakhargosh/watchdog#1057)
&amp;lt;https://github.com/gorakhargosh/watchdog/pull/1057&amp;gt;</code>__)</li>
<li>[core] Renamed the <code>BaseObserverSubclassCallable</code> class
to <code>ObserverType</code>
(<code>[#1055](gorakhargosh/watchdog#1055)
&amp;lt;https://github.com/gorakhargosh/watchdog/pull/1055&amp;gt;</code>__)</li>
<li>[inotify] Renamed the <code>inotify_event_struct</code> class to
<code>InotifyEventStruct</code>
(<code>[#1055](gorakhargosh/watchdog#1055)
&amp;lt;https://github.com/gorakhargosh/watchdog/pull/1055&amp;gt;</code>__)</li>
<li>[inotify] Renamed the <code>UnsupportedLibc</code> exception to
<code>UnsupportedLibcError</code>
(<code>[#1057](gorakhargosh/watchdog#1057)
&amp;lt;https://github.com/gorakhargosh/watchdog/pull/1057&amp;gt;</code>__)</li>
<li>[inotify] Removed the <code>InotifyConstants.IN_CLOSE</code>
constant
(<code>[#1046](gorakhargosh/watchdog#1046)
&amp;lt;https://github.com/gorakhargosh/watchdog/pull/1046&amp;gt;</code>__)</li>
<li>[watchmedo] Renamed the <code>LogLevelException</code> exception to
<code>LogLevelError</code>
(<code>[#1057](gorakhargosh/watchdog#1057)
&amp;lt;https://github.com/gorakhargosh/watchdog/pull/1057&amp;gt;</code>__)</li>
<li>[watchmedo] Renamed the <code>WatchdogShutdown</code> exception to
<code>WatchdogShutdownError</code>
(<code>[#1057](gorakhargosh/watchdog#1057)
&amp;lt;https://github.com/gorakhargosh/watchdog/pull/1057&amp;gt;</code>__)</li>
<li>[windows] Renamed the <code>FILE_NOTIFY_INFORMATION</code> class to
<code>FileNotifyInformation</code>
(<code>[#1055](gorakhargosh/watchdog#1055)
&amp;lt;https://github.com/gorakhargosh/watchdog/pull/1055&amp;gt;</code>__)</li>
<li>[windows] Removed the unused
<code>WATCHDOG_TRAVERSE_MOVED_DIR_DELAY</code> constant
(<code>[#1057](gorakhargosh/watchdog#1057)
&amp;lt;https://github.com/gorakhargosh/watchdog/pull/1057&amp;gt;</code>__)</li>
</ul>
<p><strong>Other Changes</strong></p>
<ul>
<li>[core] Enable <code>disallow_untyped_calls</code> Mypy rule
(<code>[#1055](gorakhargosh/watchdog#1055)
&amp;lt;https://github.com/gorakhargosh/watchdog/pull/1055&amp;gt;</code>__)</li>
<li>[core] Enable <code>disallow_untyped_defs</code> Mypy rule
(<code>[#1060](gorakhargosh/watchdog#1060)
&amp;lt;https://github.com/gorakhargosh/watchdog/pull/1060&amp;gt;</code>__)</li>
<li>[core] Improve typing references for events
(<code>[#1040](gorakhargosh/watchdog#1040)
&amp;lt;https://github.com/gorakhargosh/watchdog/issues/1040&amp;gt;</code>__)</li>
<li>[inotify] Add support for <code>IN_CLOSE_NOWRITE</code> events. A
<code>FileClosedNoWriteEvent</code> event will be fired, and its
<code>on_closed_no_write()</code> dispatcher has been introduced
(<code>[#1046](gorakhargosh/watchdog#1046)
&amp;lt;https://github.com/gorakhargosh/watchdog/pull/1046&amp;gt;</code>__)</li>
<li>Thanks to our beloved contributors: <a
href="https://github.com/BoboTiG"><code>@​BoboTiG</code></a>
</code></pre></li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/gorakhargosh/watchdog/commit/76f3ba89771b8c7ae772ec8d80d79337b30d9bf9"><code>76f3ba8</code></a>
Version 5.0.0</li>
<li><a
href="https://github.com/gorakhargosh/watchdog/commit/516d4ac96ac7c6644d21b8f988d5dd434218da30"><code>516d4ac</code></a>
core: more types (<a
href="https://redirect.github.com/gorakhargosh/watchdog/issues/1061">#1061</a>)</li>
<li><a
href="https://github.com/gorakhargosh/watchdog/commit/6847b0e682f5127cec2693ee5f82080465fee19f"><code>6847b0e</code></a>
chore: remove doctest <code>needs</code></li>
<li><a
href="https://github.com/gorakhargosh/watchdog/commit/b13464629ea0b77cb1b0d4c77bc518efba315151"><code>b134646</code></a>
chore: remove unused file</li>
<li><a
href="https://github.com/gorakhargosh/watchdog/commit/9af32e07968166d073a39d8581b2ac8e422c9116"><code>9af32e0</code></a>
fix: types</li>
<li><a
href="https://github.com/gorakhargosh/watchdog/commit/31b0c34af312efc12a4f5844c9fab946772b26f2"><code>31b0c34</code></a>
feat!: more kwarg-only</li>
<li><a
href="https://github.com/gorakhargosh/watchdog/commit/cc0569100fab825e367dd7ca26beaeefb56e1f68"><code>cc05691</code></a>
docs: typing in examples</li>
<li><a
href="https://github.com/gorakhargosh/watchdog/commit/4e6f036d6df469d5610d07805c1d09b16d20692c"><code>4e6f036</code></a>
dos: tweak</li>
<li><a
href="https://github.com/gorakhargosh/watchdog/commit/80576b4124dc0892a393365754ffe4e1521e3427"><code>80576b4</code></a>
docs: clean-up headers to ease maintenance + add funding</li>
<li><a
href="https://github.com/gorakhargosh/watchdog/commit/324e0440f0ae007eeb6ee9c02624d1b9b32ca8c7"><code>324e044</code></a>
feat!: Enable Mypy <code>disallow_untyped_defs</code> rule + fixes (<a
href="https://redirect.github.com/gorakhargosh/watchdog/issues/1060">#1060</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/gorakhargosh/watchdog/compare/v4.0.2...v5.0.0">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=watchdog&package-manager=pip&previous-version=4.0.2&new-version=5.0.0)](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] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
miniscruff pushed a commit to miniscruff/scopie that referenced this issue Sep 5, 2024
Bumps the pip-deps group with 4 updates:
[certifi](https://github.com/certifi/python-certifi),
[mkdocs](https://github.com/mkdocs/mkdocs),
[paginate](https://github.com/Signum/paginate) and
[watchdog](https://github.com/gorakhargosh/watchdog).

Updates `certifi` from 2024.7.4 to 2024.8.30
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/certifi/python-certifi/commit/325c2fde4f8eec10d682b09f3b0414dc05e69a81"><code>325c2fd</code></a>
2024.08.30 (<a
href="https://redirect.github.com/certifi/python-certifi/issues/304">#304</a>)</li>
<li><a
href="https://github.com/certifi/python-certifi/commit/d66bf5fccbb2b13b033841ef86ad261ab9915833"><code>d66bf5f</code></a>
Bump actions/upload-artifact from 4.3.5 to 4.3.6 (<a
href="https://redirect.github.com/certifi/python-certifi/issues/302">#302</a>)</li>
<li><a
href="https://github.com/certifi/python-certifi/commit/2150f23ee178c923fb05913e516d168dd841f9e3"><code>2150f23</code></a>
Bump actions/upload-artifact from 4.3.4 to 4.3.5 (<a
href="https://redirect.github.com/certifi/python-certifi/issues/301">#301</a>)</li>
<li><a
href="https://github.com/certifi/python-certifi/commit/fc9b771c1e5bd5f0f97534464c16a6ab785d5592"><code>fc9b771</code></a>
Bump actions/setup-python from 5.1.0 to 5.1.1 (<a
href="https://redirect.github.com/certifi/python-certifi/issues/300">#300</a>)</li>
<li><a
href="https://github.com/certifi/python-certifi/commit/965b2391df4bdce03fb07bf8cc19003585b43599"><code>965b239</code></a>
Bump actions/download-artifact from 4.1.7 to 4.1.8 (<a
href="https://redirect.github.com/certifi/python-certifi/issues/297">#297</a>)</li>
<li><a
href="https://github.com/certifi/python-certifi/commit/c1f50ccd010b428caeb105255638e67be7c64f5c"><code>c1f50cc</code></a>
Bump actions/upload-artifact from 4.3.3 to 4.3.4 (<a
href="https://redirect.github.com/certifi/python-certifi/issues/296">#296</a>)</li>
<li>See full diff in <a
href="https://github.com/certifi/python-certifi/compare/2024.07.04...2024.08.30">compare
view</a></li>
</ul>
</details>
<br />

Updates `mkdocs` from 1.6.0 to 1.6.1
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/mkdocs/mkdocs/releases">mkdocs's
releases</a>.</em></p>
<blockquote>
<h2>1.6.1</h2>
<h1>Version 1.6.1 (Friday 30th August, 2024)</h1>
<h3>Fixed</h3>
<ul>
<li>Fix build error when environment variable
<code>SOURCE_DATE_EPOCH=0</code> is set. <a
href="https://redirect.github.com/mkdocs/mkdocs/issues/3795">#3795</a></li>
<li>Fix build error when <code>mkdocs_theme.yml</code> config is empty.
<a
href="https://redirect.github.com/mkdocs/mkdocs/issues/3700">#3700</a></li>
<li>Support <code>python -W</code> and <code>PYTHONWARNINGS</code>
instead of overriding the configuration. <a
href="https://redirect.github.com/mkdocs/mkdocs/issues/3809">#3809</a></li>
<li>Support running with Docker under strict mode, by removing
<code>0.0.0.0</code> dev server warning. <a
href="https://redirect.github.com/mkdocs/mkdocs/issues/3784">#3784</a></li>
<li>Drop unnecessary <code>changefreq</code> from
<code>sitemap.xml</code>. <a
href="https://redirect.github.com/mkdocs/mkdocs/issues/3629">#3629</a></li>
<li>Fix JavaScript console error when closing menu dropdown. <a
href="https://redirect.github.com/mkdocs/mkdocs/issues/3774">#3774</a></li>
<li>Fix JavaScript console error that occur on repeated clicks. <a
href="https://redirect.github.com/mkdocs/mkdocs/issues/3730">#3730</a></li>
<li>Fix JavaScript console error that can occur on dropdown selections.
<a
href="https://redirect.github.com/mkdocs/mkdocs/issues/3694">#3694</a></li>
</ul>
<h3>Added</h3>
<ul>
<li>Added translations for Dutch. <a
href="https://redirect.github.com/mkdocs/mkdocs/issues/3804">#3804</a></li>
<li>Added and updated translations for Chinese (Simplified). <a
href="https://redirect.github.com/mkdocs/mkdocs/issues/3684">#3684</a></li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/mkdocs/mkdocs/commit/bb7e8b62185b11d9f59bb7f50b13c15134f62f8a"><code>bb7e8b6</code></a>
Version 1.6.1. (<a
href="https://redirect.github.com/mkdocs/mkdocs/issues/3819">#3819</a>)</li>
<li><a
href="https://github.com/mkdocs/mkdocs/commit/0b22a52cc86750beee45b61b7118480012cc804d"><code>0b22a52</code></a>
Merge pull request <a
href="https://redirect.github.com/mkdocs/mkdocs/issues/3795">#3795</a>
from mkdocs/tomchristie-patch-1</li>
<li><a
href="https://github.com/mkdocs/mkdocs/commit/695d8ed4a9b7d0a211aecfc81d087a0c7a739bb7"><code>695d8ed</code></a>
Merge pull request <a
href="https://redirect.github.com/mkdocs/mkdocs/issues/3808">#3808</a>
from razorblack/master</li>
<li><a
href="https://github.com/mkdocs/mkdocs/commit/347e79fe184c147339af3f99832fcde6cdcecd85"><code>347e79f</code></a>
Merge pull request <a
href="https://redirect.github.com/mkdocs/mkdocs/issues/3817">#3817</a>
from gesslar/patch-1</li>
<li><a
href="https://github.com/mkdocs/mkdocs/commit/200f6f98b05656d81c3db3a410d8eac064b3f4af"><code>200f6f9</code></a>
Update configuration.md</li>
<li><a
href="https://github.com/mkdocs/mkdocs/commit/05a64b4b75470d5c4fc2328f209848b5d25108dd"><code>05a64b4</code></a>
Use utc timezones consistently</li>
<li><a
href="https://github.com/mkdocs/mkdocs/commit/9204eb690f593d2fbe0f99f53df81a13eaa0dbea"><code>9204eb6</code></a>
Merge pull request <a
href="https://redirect.github.com/mkdocs/mkdocs/issues/3809">#3809</a>
from pawamoy/warnings-control</li>
<li><a
href="https://github.com/mkdocs/mkdocs/commit/a16d60fad057074059b44b8f2631852646567054"><code>a16d60f</code></a>
Merge pull request <a
href="https://redirect.github.com/mkdocs/mkdocs/issues/3804">#3804</a>
from KenSentMe/master</li>
<li><a
href="https://github.com/mkdocs/mkdocs/commit/e72c7d0cdc0d89d263d9d702b162936b1ac22476"><code>e72c7d0</code></a>
Merge pull request <a
href="https://redirect.github.com/mkdocs/mkdocs/issues/3784">#3784</a>
from squidfunk/fix/docker-warning</li>
<li><a
href="https://github.com/mkdocs/mkdocs/commit/d7376252e23078f1fc25e11d471f84a978d9e1ae"><code>d737625</code></a>
Merge pull request <a
href="https://redirect.github.com/mkdocs/mkdocs/issues/3774">#3774</a>
from squidfunk/fix/dropdown</li>
<li>Additional commits viewable in <a
href="https://github.com/mkdocs/mkdocs/compare/1.6.0...1.6.1">compare
view</a></li>
</ul>
</details>
<br />

Updates `paginate` from 0.5.6 to 0.5.7
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/Pylons/paginate/blob/master/CHANGELOG.txt">paginate's
changelog</a>.</em></p>
<blockquote>
<h2>Version 0.5.7 - 2024-08-25</h2>
<p>Changes:</p>
<ul>
<li>Fixed metadata for pypi</li>
<li>Added a wheel release</li>
<li>Fixed tests for python 3.12</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/Pylons/paginate/commit/b02abe4a3b6cec7628ba7eebdabd4e4c57dcec4c"><code>b02abe4</code></a>
fixes <a
href="https://redirect.github.com/Signum/paginate/issues/20">#20</a>
prepare new release</li>
<li><a
href="https://github.com/Pylons/paginate/commit/9c88317aeaee9ce0b0d420c3b3344028517bb4bd"><code>9c88317</code></a>
fixes <a
href="https://redirect.github.com/Signum/paginate/issues/19">#19</a>
solve incorrect type handling on python 3.12</li>
<li><a
href="https://github.com/Pylons/paginate/commit/9303d94bdd73dbeecdbc338a0862017e5a99419d"><code>9303d94</code></a>
Merge pull request <a
href="https://redirect.github.com/Signum/paginate/issues/21">#21</a>
from Pylons/dev</li>
<li><a
href="https://github.com/Pylons/paginate/commit/5a984f65ece4ea5b93532acf2849a3ac32ccb5db"><code>5a984f6</code></a>
setup github actions</li>
<li><a
href="https://github.com/Pylons/paginate/commit/2c8d8a98c66bd224d03ae6aabf5b7865a3ff445e"><code>2c8d8a9</code></a>
Merge pull request <a
href="https://redirect.github.com/Signum/paginate/issues/18">#18</a>
from timgates42/bugfix_typo_easily</li>
<li><a
href="https://github.com/Pylons/paginate/commit/12af5f22791ec6c51f016a3608f36da50a5e06f8"><code>12af5f2</code></a>
docs: fix simple typo, easly -&gt; easily</li>
<li><a
href="https://github.com/Pylons/paginate/commit/0ec779aed6a652a93d5c00751b5126db25a06280"><code>0ec779a</code></a>
Merge pull request <a
href="https://redirect.github.com/Signum/paginate/issues/16">#16</a>
from timgates42/bugfix_typo_substitute</li>
<li><a
href="https://github.com/Pylons/paginate/commit/c62a1c54871de449c561db3d6030fd1b99cfa12d"><code>c62a1c5</code></a>
docs: Fix simple typo, substiture -&gt; substitute</li>
<li><a
href="https://github.com/Pylons/paginate/commit/07e6f62c00a731839ca2da32e6d6a37b31a13d4f"><code>07e6f62</code></a>
tests: add travis</li>
<li><a
href="https://github.com/Pylons/paginate/commit/1e4c2fb7f29612fcb3c4b786ca1e8af3b3b7796b"><code>1e4c2fb</code></a>
setup: add support for tox</li>
<li>Additional commits viewable in <a
href="https://github.com/Signum/paginate/compare/0.5.6...0.5.7">compare
view</a></li>
</ul>
</details>
<br />

Updates `watchdog` from 4.0.2 to 5.0.0
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/gorakhargosh/watchdog/releases">watchdog's
releases</a>.</em></p>
<blockquote>
<h2>5.0.0</h2>
<h2>Breaking Changes</h2>
<ul>
<li>Drop support for Python 3.8 (<a
href="https://redirect.github.com/gorakhargosh/watchdog/issues/1055">#1055</a>)</li>
<li>[core] Enforced usage of proper keyword-arguments (<a
href="https://redirect.github.com/gorakhargosh/watchdog/issues/1057">#1057</a>)</li>
<li>[core] Renamed the <code>BaseObserverSubclassCallable</code> class
to <code>ObserverType</code> (<a
href="https://redirect.github.com/gorakhargosh/watchdog/issues/1055">#1055</a>)</li>
<li>[inotify] Renamed the <code>inotify_event_struct</code> class to
<code>InotifyEventStruct</code> (<a
href="https://redirect.github.com/gorakhargosh/watchdog/issues/1055">#1055</a>)</li>
<li>[inotify] Renamed the <code>UnsupportedLibc</code> exception to
<code>UnsupportedLibcError</code> (<a
href="https://redirect.github.com/gorakhargosh/watchdog/issues/1057">#1057</a>)</li>
<li>[inotify] Removed the <code>InotifyConstants.IN_CLOSE</code>
constant (<a
href="https://redirect.github.com/gorakhargosh/watchdog/issues/1046">#1046</a>)</li>
<li>[watchmedo] Renamed the <code>LogLevelException</code> exception to
<code>LogLevelError</code> (<a
href="https://redirect.github.com/gorakhargosh/watchdog/issues/1057">#1057</a>)</li>
<li>[watchmedo] Renamed the <code>WatchdogShutdown</code> exception to
<code>WatchdogShutdownError</code> (<a
href="https://redirect.github.com/gorakhargosh/watchdog/issues/1057">#1057</a>)</li>
<li>[windows] Renamed the <code>FILE_NOTIFY_INFORMATION</code> class to
<code>FileNotifyInformation</code> (<a
href="https://redirect.github.com/gorakhargosh/watchdog/issues/1055">#1055</a>)</li>
<li>[windows] Removed the unused
<code>WATCHDOG_TRAVERSE_MOVED_DIR_DELAY</code> constant (<a
href="https://redirect.github.com/gorakhargosh/watchdog/issues/1057">#1057</a>)</li>
</ul>
<h2>Other Changes</h2>
<ul>
<li>[core] Enable <code>disallow_untyped_calls</code> Mypy rule (<a
href="https://redirect.github.com/gorakhargosh/watchdog/issues/1055">#1055</a>)</li>
<li>[core] Enable <code>disallow_untyped_defs</code> Mypy rule (<a
href="https://redirect.github.com/gorakhargosh/watchdog/issues/1060">#1060</a>)</li>
<li>[core] Improve typing references for events (<a
href="https://redirect.github.com/gorakhargosh/watchdog/issues/1040">#1040</a>)</li>
<li>[inotify] Add support for <code>IN_CLOSE_NOWRITE</code> events. A
<code>FileClosedNoWriteEvent</code> event will be fired, and its
<code>on_closed_no_write()</code> dispatcher has been introduced (<a
href="https://redirect.github.com/gorakhargosh/watchdog/issues/1046">#1046</a>)</li>
</ul>
<p>:heart_decoration: Thanks to our beloved contributors: <a
href="https://github.com/BoboTiG"><code>@​BoboTiG</code></a></p>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/gorakhargosh/watchdog/blob/master/changelog.rst">watchdog's
changelog</a>.</em></p>
<blockquote>
<p>5.0.0</p>
<pre><code>
2024-08-26 • `full history
&lt;https://github.com/gorakhargosh/watchdog/compare/v4.0.2...v5.0.0&gt;`__
<p><strong>Breaking Changes</strong></p>
<ul>
<li>Drop support for Python 3.8
(<code>[#1055](gorakhargosh/watchdog#1055)
&amp;lt;https://github.com/gorakhargosh/watchdog/pull/1055&amp;gt;</code>__)</li>
<li>[core] Enforced usage of proper keyword-arguments
(<code>[#1057](gorakhargosh/watchdog#1057)
&amp;lt;https://github.com/gorakhargosh/watchdog/pull/1057&amp;gt;</code>__)</li>
<li>[core] Renamed the <code>BaseObserverSubclassCallable</code> class
to <code>ObserverType</code>
(<code>[#1055](gorakhargosh/watchdog#1055)
&amp;lt;https://github.com/gorakhargosh/watchdog/pull/1055&amp;gt;</code>__)</li>
<li>[inotify] Renamed the <code>inotify_event_struct</code> class to
<code>InotifyEventStruct</code>
(<code>[#1055](gorakhargosh/watchdog#1055)
&amp;lt;https://github.com/gorakhargosh/watchdog/pull/1055&amp;gt;</code>__)</li>
<li>[inotify] Renamed the <code>UnsupportedLibc</code> exception to
<code>UnsupportedLibcError</code>
(<code>[#1057](gorakhargosh/watchdog#1057)
&amp;lt;https://github.com/gorakhargosh/watchdog/pull/1057&amp;gt;</code>__)</li>
<li>[inotify] Removed the <code>InotifyConstants.IN_CLOSE</code>
constant
(<code>[#1046](gorakhargosh/watchdog#1046)
&amp;lt;https://github.com/gorakhargosh/watchdog/pull/1046&amp;gt;</code>__)</li>
<li>[watchmedo] Renamed the <code>LogLevelException</code> exception to
<code>LogLevelError</code>
(<code>[#1057](gorakhargosh/watchdog#1057)
&amp;lt;https://github.com/gorakhargosh/watchdog/pull/1057&amp;gt;</code>__)</li>
<li>[watchmedo] Renamed the <code>WatchdogShutdown</code> exception to
<code>WatchdogShutdownError</code>
(<code>[#1057](gorakhargosh/watchdog#1057)
&amp;lt;https://github.com/gorakhargosh/watchdog/pull/1057&amp;gt;</code>__)</li>
<li>[windows] Renamed the <code>FILE_NOTIFY_INFORMATION</code> class to
<code>FileNotifyInformation</code>
(<code>[#1055](gorakhargosh/watchdog#1055)
&amp;lt;https://github.com/gorakhargosh/watchdog/pull/1055&amp;gt;</code>__)</li>
<li>[windows] Removed the unused
<code>WATCHDOG_TRAVERSE_MOVED_DIR_DELAY</code> constant
(<code>[#1057](gorakhargosh/watchdog#1057)
&amp;lt;https://github.com/gorakhargosh/watchdog/pull/1057&amp;gt;</code>__)</li>
</ul>
<p><strong>Other Changes</strong></p>
<ul>
<li>[core] Enable <code>disallow_untyped_calls</code> Mypy rule
(<code>[#1055](gorakhargosh/watchdog#1055)
&amp;lt;https://github.com/gorakhargosh/watchdog/pull/1055&amp;gt;</code>__)</li>
<li>[core] Enable <code>disallow_untyped_defs</code> Mypy rule
(<code>[#1060](gorakhargosh/watchdog#1060)
&amp;lt;https://github.com/gorakhargosh/watchdog/pull/1060&amp;gt;</code>__)</li>
<li>[core] Improve typing references for events
(<code>[#1040](gorakhargosh/watchdog#1040)
&amp;lt;https://github.com/gorakhargosh/watchdog/issues/1040&amp;gt;</code>__)</li>
<li>[inotify] Add support for <code>IN_CLOSE_NOWRITE</code> events. A
<code>FileClosedNoWriteEvent</code> event will be fired, and its
<code>on_closed_no_write()</code> dispatcher has been introduced
(<code>[#1046](gorakhargosh/watchdog#1046)
&amp;lt;https://github.com/gorakhargosh/watchdog/pull/1046&amp;gt;</code>__)</li>
<li>Thanks to our beloved contributors: <a
href="https://github.com/BoboTiG"><code>@​BoboTiG</code></a>
</code></pre></li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/gorakhargosh/watchdog/commit/76f3ba89771b8c7ae772ec8d80d79337b30d9bf9"><code>76f3ba8</code></a>
Version 5.0.0</li>
<li><a
href="https://github.com/gorakhargosh/watchdog/commit/516d4ac96ac7c6644d21b8f988d5dd434218da30"><code>516d4ac</code></a>
core: more types (<a
href="https://redirect.github.com/gorakhargosh/watchdog/issues/1061">#1061</a>)</li>
<li><a
href="https://github.com/gorakhargosh/watchdog/commit/6847b0e682f5127cec2693ee5f82080465fee19f"><code>6847b0e</code></a>
chore: remove doctest <code>needs</code></li>
<li><a
href="https://github.com/gorakhargosh/watchdog/commit/b13464629ea0b77cb1b0d4c77bc518efba315151"><code>b134646</code></a>
chore: remove unused file</li>
<li><a
href="https://github.com/gorakhargosh/watchdog/commit/9af32e07968166d073a39d8581b2ac8e422c9116"><code>9af32e0</code></a>
fix: types</li>
<li><a
href="https://github.com/gorakhargosh/watchdog/commit/31b0c34af312efc12a4f5844c9fab946772b26f2"><code>31b0c34</code></a>
feat!: more kwarg-only</li>
<li><a
href="https://github.com/gorakhargosh/watchdog/commit/cc0569100fab825e367dd7ca26beaeefb56e1f68"><code>cc05691</code></a>
docs: typing in examples</li>
<li><a
href="https://github.com/gorakhargosh/watchdog/commit/4e6f036d6df469d5610d07805c1d09b16d20692c"><code>4e6f036</code></a>
dos: tweak</li>
<li><a
href="https://github.com/gorakhargosh/watchdog/commit/80576b4124dc0892a393365754ffe4e1521e3427"><code>80576b4</code></a>
docs: clean-up headers to ease maintenance + add funding</li>
<li><a
href="https://github.com/gorakhargosh/watchdog/commit/324e0440f0ae007eeb6ee9c02624d1b9b32ca8c7"><code>324e044</code></a>
feat!: Enable Mypy <code>disallow_untyped_defs</code> rule + fixes (<a
href="https://redirect.github.com/gorakhargosh/watchdog/issues/1060">#1060</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/gorakhargosh/watchdog/compare/v4.0.2...v5.0.0">compare
view</a></li>
</ul>
</details>
<br />


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 <dependency name> major version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's major version (unless you unignore this specific
dependency's major version or upgrade to it yourself)
- `@dependabot ignore <dependency name> minor version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's minor version (unless you unignore this specific
dependency's minor version or upgrade to it yourself)
- `@dependabot ignore <dependency name>` will close this group update PR
and stop Dependabot creating any more for the specific dependency
(unless you unignore this specific dependency or upgrade to it yourself)
- `@dependabot unignore <dependency name>` will remove all of the ignore
conditions of the specified dependency
- `@dependabot unignore <dependency name> <ignore condition>` will
remove the ignore condition of the specified dependency and ignore
conditions


</details>

Signed-off-by: dependabot[bot] <support@github.com>
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
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants