Skip to content

Blob ROI API for passing ROI through IE#879

Closed
alpkn wants to merge 8 commits intoopenvinotoolkit:masterfrom
alpkn:blob-roi-api
Closed

Blob ROI API for passing ROI through IE#879
alpkn wants to merge 8 commits intoopenvinotoolkit:masterfrom
alpkn:blob-roi-api

Conversation

@alpkn
Copy link
Copy Markdown
Contributor

@alpkn alpkn commented Jun 10, 2020

Enable workflow of transmitting ROI through IE API.
Added methods to IE::Blob class;
Updated tests, added new tests.

Internal validation expected to fail since an update of closed repos required

@alpkn alpkn added this to the 2020.4 milestone Jun 10, 2020
@alpkn alpkn changed the title Blob ROI API Blob ROI API for passing ROI through IE Jun 11, 2020
@alpkn alpkn marked this pull request as ready for review June 11, 2020 15:55
@alpkn alpkn requested review from a team as code owners June 11, 2020 15:55
@alpkn alpkn requested review from a team June 11, 2020 15:55
@alpkn alpkn force-pushed the blob-roi-api branch 4 times, most recently from 83475bd to 9bc4cb5 Compare June 15, 2020 09:52
@alpkn
Copy link
Copy Markdown
Contributor Author

alpkn commented Jun 16, 2020

@anton-potapov @dmatveev @dkurt @gladilov-gleb @rgarnov @slyalin @vladimir-paramuzov @yury-gorbachev

Guys, please state your attitude to the solution.

Brief outcut from the earlier talks and its distinctive features:

  • Plugin has an ability to distinguish whether blob is ROI blob or not, and get ROI info;
  • After client supplied ROI and created a blob, he is able to get the ROI back from the blob;
  • Designed in object oriented way: the task of creating ROI blob is decomposed into several steps; overriding the methods is available when necessary, but is not required;
  • Current behavior of IE core is kept intact;
  • Memory shared between the blob and ROI blob is preserved until the last of them gets out of the scope;

Copy link
Copy Markdown
Contributor

@ggladilov ggladilov left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM in general, some questions

Thanks for your proposal!

Copy link
Copy Markdown
Contributor

@ArtemySkrebkov ArtemySkrebkov left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Are you going to add a sample how to use API in a real use case?
I think it is worth adding to see how API looks in a possible user's code.

@alpkn
Copy link
Copy Markdown
Contributor Author

alpkn commented Jun 17, 2020

Yes.
The wish for having a sample was mentioned on arch forum.

@alpkn alpkn force-pushed the blob-roi-api branch 3 times, most recently from 7e579f1 to a44bc9b Compare June 24, 2020 18:41
@ilya-lavrenov ilya-lavrenov modified the milestones: 2020.4, 2021.1 Jul 8, 2020
detInferRequest.SetBlob(detInputName, imageBlob);
detInferRequest.Infer();

const std::vector<Blob::Ptr> ROIs = getDetectionROIs(as<MemoryBlob>(detInferRequest.GetBlob(detOutputName)), imageBlob);
Copy link
Copy Markdown
Contributor Author

@alpkn alpkn Jul 13, 2020

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@anton-potapov @ilyachur
getROI() usage:
Client has the convenience of not dragging detected boxes through the call stack;
Semantics is expressed in a few lines with no mandatory deep-dive;

Compare to cryptic sequence of functions when ROI data is not available for the client: https://github.com/openvinotoolkit/openvino/pull/882/files#diff-b1b9024f2bb9a523502fcb4e2fb3c9d1R505

upd in case of link above isn't functional: it's file https://github.com/openvinotoolkit/openvino/pull/882/files#diff-b1b9024f2bb9a523502fcb4e2fb3c9d1 , line 505

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks like in alternative solution we should just use vector of blobs in order to save all ROI... It doesn't look like a big impact.

Also I have a question:

Why in this solution should we write more lines of code (551 vs 522)? Both files are new and it is hard to understand what are differen, just code style or alternative solution requires less code lines.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

we should just use vector of blobs...

That's the kind of aux data which causes unnecessary inconvenience for the client. This impacts any user code related to multiple ROI blobs.

There are additional handling and informational messages added, after the sample was tested on the image set. They add lines.
Readability is worth more than amount of lines anyway.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

From application view, getROI() is helpful, it can simply logical of application to manage ROI list and ROIBlob.
BTW, is it better if put ROI list into ROIblob rather than put one ROI into one ROIBlob?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The container of Blobs each having one ROI can be passed through IE API, and then list of ROI for the single inference will be composed by the plugin-specific code.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ok, what does getROI() return for usual blob?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nullptr.
Two (at least) useful appliances:

  • single check whether blob is ROI: if (blob->getROI()) { ...
  • break the loop over the chain of nested ROI blobs: for (; blob->getROI(); blob = blob->getROI()->original)

@alpkn
Copy link
Copy Markdown
Contributor Author

alpkn commented Jul 13, 2020

@ilya-lavrenov
Would you please explain the cons of having the set of decomposed methods (i.e., shallowClone, getROI/setROI) plus an aggregate createROI (which makes use of them) as an opposite to having the single createROI methods?

@alpkn alpkn assigned alpkn and ilya-lavrenov and unassigned alpkn Jul 16, 2020
@alpkn
Copy link
Copy Markdown
Contributor Author

alpkn commented Jul 16, 2020

Please note there is client's will for having getROI() available for the application.

@ArtemySkrebkov ArtemySkrebkov self-requested a review July 20, 2020 14:41
@ggladilov ggladilov self-requested a review July 20, 2020 14:42
@rzubarev
Copy link
Copy Markdown
Contributor

👍

@ilya-lavrenov ilya-lavrenov added the category: inference OpenVINO Runtime library - Inference label Jul 21, 2020
@ArtemySkrebkov
Copy link
Copy Markdown
Contributor

👍

1 similar comment
@zhangcong2019
Copy link
Copy Markdown

👍

@alpkn
Copy link
Copy Markdown
Contributor Author

alpkn commented Jul 24, 2020

To guys, who voted in favor of the single-function approach:
Any information used for instantiating the blobs can be read back from the blob by the client currently. There is an obvious requirement to request the ROI info used for creating the blob as well. Clients of the new API confirmed their wish to have this ability by voting up. Lack of the getter causes client code to maintain the ROI info structures and drag them along with the blobs through the execution.

@yury-gorbachev
I am certain that alternate proposal is less customer oriented than the current one and serves client's needs poorly; there is clear difference within the client code for these two approaches and there is client preference for the convenient one.

@ilya-lavrenov
I still have not got any response from you on the question above.

@vinograd47
Copy link
Copy Markdown
Contributor

Two step approach has another drawback - potential incorrect createROI implementation. If some plugin implemented RemoteBlob before and added clone override (which is not complex task) - such RemoteBlob will get default createROI implementation, while ROI is not supported by the plugin, since it will be a new field in the Blob class and plugin code was not updated yet.

Single function implementation is atomic in this point of view. Either it is overridden and implemented, which means that ROI is supported for particular kind of Blob or it is not implemented at all and throws exception (default behavior). There will be no middle state.

@alpkn
Copy link
Copy Markdown
Contributor Author

alpkn commented Jul 24, 2020

... potential incorrect ... will get default ...

That is too artificial thought and might said just about any programming interface. There are tests which make sure that implementation works as expected.

@ilya-lavrenov
Copy link
Copy Markdown
Contributor

Approach which introduce less changes in public API was merged:

  1. It does not include clone, setROI as proposed in this PR.
  2. It does not include getROI which is questionable and we don't have clean understanding why is it needed in IE public API.

@alpkn
Copy link
Copy Markdown
Contributor Author

alpkn commented Jul 29, 2020

@ilya-lavrenov
I remind the question above was as following:

Would you please explain the cons of having the set of decomposed methods (i.e., shallowClone, getROI/setROI) plus an aggregate createROI (which makes use of them) as an opposite to having the single createROI methods?

The comment above is not answering the question: you just stated the actions you did. The first item is the pure fact; second was already proved wrong by the customer's opinion and by the code in the sample which is part of this PR.

github-merge-queue bot pushed a commit that referenced this pull request May 16, 2025
Bumps [breathe](https://github.com/breathe-doc/breathe) from 4.35.0 to
4.36.0.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/breathe-doc/breathe/releases">breathe's
releases</a>.</em></p>
<blockquote>
<h2>Breathe v4.36.0</h2>
<p><a
href="https://pypi.org/project/breathe/4.36.0/">https://pypi.org/project/breathe/4.36.0/</a></p>
<h2>What's Changed</h2>
<ul>
<li>Fix mistake in spelling of inheritance by <a
href="https://github.com/michaeljones"><code>@​michaeljones</code></a>
in <a
href="https://redirect.github.com/breathe-doc/breathe/pull/914">breathe-doc/breathe#914</a></li>
<li>Remove python 2 code by <a
href="https://github.com/Rotzbua"><code>@​Rotzbua</code></a> in <a
href="https://redirect.github.com/breathe-doc/breathe/pull/949">breathe-doc/breathe#949</a></li>
<li>Update <code>test_renderer</code> so that tests pass with Sphinx
7.2. by <a
href="https://github.com/gareth-rees"><code>@​gareth-rees</code></a> in
<a
href="https://redirect.github.com/breathe-doc/breathe/pull/976">breathe-doc/breathe#976</a></li>
<li>Fix PosixPath issue with Sphinx 7.2 by <a
href="https://github.com/scottamain"><code>@​scottamain</code></a> in <a
href="https://redirect.github.com/breathe-doc/breathe/pull/964">breathe-doc/breathe#964</a></li>
<li>Avoid <code>RemovedInSphinx80Warning</code> in path-manipulation
code. by <a
href="https://github.com/gareth-rees"><code>@​gareth-rees</code></a> in
<a
href="https://redirect.github.com/breathe-doc/breathe/pull/977">breathe-doc/breathe#977</a></li>
<li>Move project metadata to pyproject.toml, clean-up by <a
href="https://github.com/mwtoews"><code>@​mwtoews</code></a> in <a
href="https://redirect.github.com/breathe-doc/breathe/pull/883">breathe-doc/breathe#883</a></li>
<li>Fix README: Bump Python to &gt;= 3.7 by <a
href="https://github.com/Rotzbua"><code>@​Rotzbua</code></a> in <a
href="https://redirect.github.com/breathe-doc/breathe/pull/946">breathe-doc/breathe#946</a></li>
<li>Add make.bat for building on Windows by <a
href="https://github.com/hwhsu1231"><code>@​hwhsu1231</code></a> in <a
href="https://redirect.github.com/breathe-doc/breathe/pull/971">breathe-doc/breathe#971</a></li>
<li>fix(ci): reorder <code>sphinx</code> installation by <a
href="https://github.com/Rotzbua"><code>@​Rotzbua</code></a> in <a
href="https://redirect.github.com/breathe-doc/breathe/pull/953">breathe-doc/breathe#953</a></li>
<li>.github/workflows/unit_tests.yml: Update it by <a
href="https://github.com/t-b"><code>@​t-b</code></a> in <a
href="https://redirect.github.com/breathe-doc/breathe/pull/887">breathe-doc/breathe#887</a></li>
<li>Update GH Action to current release by <a
href="https://github.com/Rotzbua"><code>@​Rotzbua</code></a> in <a
href="https://redirect.github.com/breathe-doc/breathe/pull/954">breathe-doc/breathe#954</a></li>
<li>Add documentation on writing tests for Breathe by <a
href="https://github.com/emilydolson"><code>@​emilydolson</code></a> in
<a
href="https://redirect.github.com/breathe-doc/breathe/pull/931">breathe-doc/breathe#931</a></li>
<li>Update dependencies &amp; GH Actions by <a
href="https://github.com/Rotzbua"><code>@​Rotzbua</code></a> in <a
href="https://redirect.github.com/breathe-doc/breathe/pull/955">breathe-doc/breathe#955</a></li>
<li>Resolve full title for doxygenpage and doxygengroup and allow for
omitting the title all together by <a
href="https://github.com/RaumZeit"><code>@​RaumZeit</code></a> in <a
href="https://redirect.github.com/breathe-doc/breathe/pull/939">breathe-doc/breathe#939</a></li>
<li>Do not re-assign <code>nodes</code> variable in
renderer/sphinxrenderer.py by <a
href="https://github.com/RaumZeit"><code>@​RaumZeit</code></a> in <a
href="https://redirect.github.com/breathe-doc/breathe/pull/938">breathe-doc/breathe#938</a></li>
<li>Insert signature name for use with Sphinx ToC by <a
href="https://github.com/scottamain"><code>@​scottamain</code></a> in <a
href="https://redirect.github.com/breathe-doc/breathe/pull/959">breathe-doc/breathe#959</a></li>
<li>Remove outdated list of supported targets from documentation by <a
href="https://github.com/saraedum"><code>@​saraedum</code></a> in <a
href="https://redirect.github.com/breathe-doc/breathe/pull/1001">breathe-doc/breathe#1001</a></li>
<li>feat(ci): Add python 3.13 and Sphinx 8.1 by <a
href="https://github.com/Rotzbua"><code>@​Rotzbua</code></a> in <a
href="https://redirect.github.com/breathe-doc/breathe/pull/1006">breathe-doc/breathe#1006</a></li>
<li>Fix test suite under Sphinx 7.4+ by <a
href="https://github.com/yut23"><code>@​yut23</code></a> in <a
href="https://redirect.github.com/breathe-doc/breathe/pull/1007">breathe-doc/breathe#1007</a></li>
<li>Fix building documentation in CI by <a
href="https://github.com/yut23"><code>@​yut23</code></a> in <a
href="https://redirect.github.com/breathe-doc/breathe/pull/1008">breathe-doc/breathe#1008</a></li>
<li>Fix linter warnings by <a
href="https://github.com/yut23"><code>@​yut23</code></a> in <a
href="https://redirect.github.com/breathe-doc/breathe/pull/1009">breathe-doc/breathe#1009</a></li>
<li>Fix test failure with latest Sphinx master by <a
href="https://github.com/yut23"><code>@​yut23</code></a> in <a
href="https://redirect.github.com/breathe-doc/breathe/pull/1010">breathe-doc/breathe#1010</a></li>
<li>Fix: typos in docs and error msg by <a
href="https://github.com/Rotzbua"><code>@​Rotzbua</code></a> in <a
href="https://redirect.github.com/breathe-doc/breathe/pull/1011">breathe-doc/breathe#1011</a></li>
<li>chore: move mypy config to <code>pyproject.toml</code> by <a
href="https://github.com/Rotzbua"><code>@​Rotzbua</code></a> in <a
href="https://redirect.github.com/breathe-doc/breathe/pull/1014">breathe-doc/breathe#1014</a></li>
<li>Enable dependabot for GitHub Actions by <a
href="https://github.com/Rotzbua"><code>@​Rotzbua</code></a> in <a
href="https://redirect.github.com/breathe-doc/breathe/pull/1015">breathe-doc/breathe#1015</a></li>
<li>Remove travis from docs by <a
href="https://github.com/Rotzbua"><code>@​Rotzbua</code></a> in <a
href="https://redirect.github.com/breathe-doc/breathe/pull/1017">breathe-doc/breathe#1017</a></li>
<li>chore: improve lint tools by <a
href="https://github.com/Rotzbua"><code>@​Rotzbua</code></a> in <a
href="https://redirect.github.com/breathe-doc/breathe/pull/1016">breathe-doc/breathe#1016</a></li>
<li>Fix errors in template specialization with qualified arguments by <a
href="https://github.com/yut23"><code>@​yut23</code></a> in <a
href="https://redirect.github.com/breathe-doc/breathe/pull/1012">breathe-doc/breathe#1012</a></li>
<li>Add GitHub Actions release workflow for Trusted Publishing by <a
href="https://github.com/AA-Turner"><code>@​AA-Turner</code></a> in <a
href="https://redirect.github.com/breathe-doc/breathe/pull/1023">breathe-doc/breathe#1023</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a href="https://github.com/Rotzbua"><code>@​Rotzbua</code></a> made
their first contribution in <a
href="https://redirect.github.com/breathe-doc/breathe/pull/949">breathe-doc/breathe#949</a></li>
<li><a
href="https://github.com/gareth-rees"><code>@​gareth-rees</code></a>
made their first contribution in <a
href="https://redirect.github.com/breathe-doc/breathe/pull/976">breathe-doc/breathe#976</a></li>
<li><a
href="https://github.com/scottamain"><code>@​scottamain</code></a> made
their first contribution in <a
href="https://redirect.github.com/breathe-doc/breathe/pull/964">breathe-doc/breathe#964</a></li>
<li><a href="https://github.com/mwtoews"><code>@​mwtoews</code></a> made
their first contribution in <a
href="https://redirect.github.com/breathe-doc/breathe/pull/883">breathe-doc/breathe#883</a></li>
<li><a href="https://github.com/hwhsu1231"><code>@​hwhsu1231</code></a>
made their first contribution in <a
href="https://redirect.github.com/breathe-doc/breathe/pull/971">breathe-doc/breathe#971</a></li>
<li><a
href="https://github.com/emilydolson"><code>@​emilydolson</code></a>
made their first contribution in <a
href="https://redirect.github.com/breathe-doc/breathe/pull/931">breathe-doc/breathe#931</a></li>
<li><a href="https://github.com/RaumZeit"><code>@​RaumZeit</code></a>
made their first contribution in <a
href="https://redirect.github.com/breathe-doc/breathe/pull/939">breathe-doc/breathe#939</a></li>
<li><a href="https://github.com/saraedum"><code>@​saraedum</code></a>
made their first contribution in <a
href="https://redirect.github.com/breathe-doc/breathe/pull/1001">breathe-doc/breathe#1001</a></li>
<li><a href="https://github.com/yut23"><code>@​yut23</code></a> made
their first contribution in <a
href="https://redirect.github.com/breathe-doc/breathe/pull/1007">breathe-doc/breathe#1007</a></li>
<li><a href="https://github.com/AA-Turner"><code>@​AA-Turner</code></a>
made their first contribution in <a
href="https://redirect.github.com/breathe-doc/breathe/pull/1023">breathe-doc/breathe#1023</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/breathe-doc/breathe/compare/v4.35.0...v4.36.0">https://github.com/breathe-doc/breathe/compare/v4.35.0...v4.36.0</a></p>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/breathe-doc/breathe/blob/main/CHANGELOG.rst">breathe's
changelog</a>.</em></p>
<blockquote>
<h2>Change Log</h2>
<p>Inspired by <code>Keepachangelog.com
&lt;https://keepachangelog.com/&gt;</code>__.</p>
<ul>
<li>
<p>2025-02-22 - <strong>Breathe v4.36.0</strong></p>
<ul>
<li>Update <code>test_renderer</code> so that tests pass with Sphinx
7.2.
<code>[#976](breathe-doc/breathe#976)
&lt;https://github.com/breathe-doc/breathe/pull/976&gt;</code>__</li>
<li>Fix PosixPath issue with Sphinx 7.2.
<code>[#964](breathe-doc/breathe#964)
&lt;https://github.com/breathe-doc/breathe/pull/964&gt;</code>__</li>
<li>Avoid <code>RemovedInSphinx80Warning</code> in path-manipulation
code.
<code>[#977](breathe-doc/breathe#977)
&lt;https://github.com/breathe-doc/breathe/pull/977&gt;</code>__</li>
<li>Require Sphinx 7.2 or later, Python 3.9 or later,
and  Doxygen 1.9.2 or later.
<code>[#887](breathe-doc/breathe#887)
&lt;https://github.com/breathe-doc/breathe/pull/887&gt;</code><strong>,
<code>[#946](breathe-doc/breathe#946)
&lt;https://github.com/breathe-doc/breathe/pull/946&gt;</code></strong>
<code>[#955](breathe-doc/breathe#955)
&lt;https://github.com/breathe-doc/breathe/pull/955&gt;</code>__</li>
<li>Begin to use pathlib.</li>
<li>Resolve full title for doxygenpage and doxygengroup
and allow for omitting the title all together
<code>[#939](breathe-doc/breathe#939)
&lt;https://github.com/breathe-doc/breathe/pull/939&gt;</code>__</li>
<li>Insert signature name for use with Sphinx Table of Contents
<code>[#959](breathe-doc/breathe#959)
&lt;https://github.com/breathe-doc/breathe/pull/959&gt;</code>__</li>
<li>Fix test failure with latest Sphinx master.
<code>[#1010](breathe-doc/breathe#1010)
&lt;https://github.com/breathe-doc/breathe/pull/1010&gt;</code>__</li>
<li>Fix error in template specialization with qualified arguments
<code>[#1010](breathe-doc/breathe#1010)
&lt;https://github.com/breathe-doc/breathe/pull/1012&gt;</code>__</li>
</ul>
</li>
<li>
<p>2023-02-28 - <strong>Breathe v4.35.0</strong></p>
<ul>
<li>Pull lone literal blocks in paragraphs up to produce correct
doctree.
<code>[#833](breathe-doc/breathe#833)
&lt;https://github.com/breathe-doc/breathe/pull/833&gt;</code>__</li>
<li>Fix tests for changes in Sphinx 5.3.
<code>[#865](breathe-doc/breathe#865)
&lt;https://github.com/breathe-doc/breathe/pull/865&gt;</code>__</li>
<li>Bump Python requirement to 3.7.
<code>[#866](breathe-doc/breathe#866)
&lt;https://github.com/breathe-doc/breathe/pull/866&gt;</code>__</li>
<li>Support Sphinx 6.
<code>[#885](breathe-doc/breathe#885)
&lt;https://github.com/breathe-doc/breathe/pull/885&gt;</code>__</li>
<li>Support <code>:sort:</code> option to sort sections by name.
<code>[#879](breathe-doc/breathe#879)
&lt;https://github.com/breathe-doc/breathe/pull/879&gt;</code>__</li>
</ul>
</li>
<li>
<p>2022-06-20 - <strong>Breathe v4.34.0</strong></p>
<ul>
<li>Treat .unparsed as plain text.
<code>[#806](breathe-doc/breathe#806)
&lt;https://github.com/breathe-doc/breathe/pull/806&gt;</code>__</li>
<li>Remove unneeded type: ignore annotations.
<code>[#813](breathe-doc/breathe#813)
&lt;https://github.com/breathe-doc/breathe/pull/813&gt;</code>__</li>
<li>Fix internal <code>NodeFinder</code> visitor for when non-Docutils
nodes are
present in the content of a directive.</li>
</ul>
</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/breathe-doc/breathe/commit/ea1f7537ae8d84a8d6612f9811596e0091291c90"><code>ea1f753</code></a>
Release v4.36.0</li>
<li><a
href="https://github.com/breathe-doc/breathe/commit/ce675266ad18bb97e5ef6fa08b34441d3c96abe4"><code>ce67526</code></a>
Add GitHub Actions release workflow for Trusted Publishing (<a
href="https://redirect.github.com/breathe-doc/breathe/issues/1023">#1023</a>)</li>
<li><a
href="https://github.com/breathe-doc/breathe/commit/d6377643aeb7124e4bacd31dbb916ed12ac74d0a"><code>d637764</code></a>
Enable flake8-tidy-imports in Ruff</li>
<li><a
href="https://github.com/breathe-doc/breathe/commit/a535b4be8c34a202115971dcb4f27fa812d7c8f9"><code>a535b4b</code></a>
Use the <code>sphinx.testing.fixtures</code> pytest plugin</li>
<li><a
href="https://github.com/breathe-doc/breathe/commit/5f76cc869c55125a2975514640bf439e714f0eb1"><code>5f76cc8</code></a>
Run mypy on the configured <code>mypy.files</code></li>
<li><a
href="https://github.com/breathe-doc/breathe/commit/6c55c1d46876b338482dac91b7fdc05f6f628c99"><code>6c55c1d</code></a>
Resolve most per-file ignores in Ruff</li>
<li><a
href="https://github.com/breathe-doc/breathe/commit/36f41e759fb749ae03139a7dd3a145d305fa15c5"><code>36f41e7</code></a>
Install Doxygen from GitHub releases</li>
<li><a
href="https://github.com/breathe-doc/breathe/commit/f98c45b6058afe66a2d7e823455e72b629df7ae5"><code>f98c45b</code></a>
Convert links to HTTPS</li>
<li><a
href="https://github.com/breathe-doc/breathe/commit/1ccac0b475a147c3f0498ee3f1988f85404231ee"><code>1ccac0b</code></a>
Simplify <code>conf.py</code></li>
<li><a
href="https://github.com/breathe-doc/breathe/commit/3079797b5bdf9eea3382839b8c5932393e3a1b7e"><code>3079797</code></a>
Require Doxygen 1.9.2 or later</li>
<li>Additional commits viewable in <a
href="https://github.com/breathe-doc/breathe/compare/v4.35.0...v4.36.0">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=breathe&package-manager=pip&previous-version=4.35.0&new-version=4.36.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] <[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

category: inference OpenVINO Runtime library - Inference

Projects

None yet

Development

Successfully merging this pull request may close these issues.

10 participants