Skip to content

Commit

Permalink
Creating PR for branch feature/graphql_graphdb (#1187)
Browse files Browse the repository at this point in the history
* d5d1e59 - Ashwin Krishnan - 2024-09-23 21:00:52 
| fixed event loops issue
| 
* 19de601 - Ashwin Krishnan - 2024-09-22 20:22:14 
| enhanced tests
| 
* 2eeedcb - Ashwin Krishnan - 2024-09-21 21:24:41 
| fixed bug for regex generation
| 
* 9b41e02 - Ashwin Krishnan - 2024-09-18 18:56:10 
| added database in driver creation for efficiency
| 
* 5302c81 - Ashwin Krishnan - 2024-09-18 18:55:31 
| reduced cyclomatic complexity
| 
* 9d87788 - Ashwin Krishnan - 2024-09-17 16:48:35 
| commented integration tests having issues with async handling and
Future/task
| 
* 71f6d61 - Ashwin Krishnan - 2024-09-17 12:17:42 
| added tests to check graphQL queries
| 
* 02738af - Ashwin Krishnan - 2024-09-15 22:03:43 
| updated graph db  graphQL queries and tests
| 
* 83f6053 - Ashwin Krishnan - 2024-09-02 17:39:25 
| test data and queris
| 
* 761bc0c - Ashwin Krishnan - 2024-08-19 13:39:45 
  added test cases for graphdb backend
  
* 03f8534 - dependabot[bot] - 2024-09-23 13:29:47 
| Bump strawberry-graphql from 0.240.4 to 0.242.0 in /07_uns_graphql
(#1186)
| Bumps
| [strawberry-graphql](https://github.com/strawberry-graphql/strawberry)
| from 0.240.4 to 0.242.0.
| <details>
| <summary>Release notes</summary>
| <p><em>Sourced from <a
|
href="https://github.com/strawberry-graphql/strawberry/releases">strawberry-graphql's
| releases</a>.</em></p>
| <blockquote>
| <h2>🍓 0.242.0</h2>
| <p>Starting with this release, clients using the legacy graphql-ws
| subprotocol will receive an error when they try to send binary data
| frames.
| Before, binary data frames were silently ignored.</p>
| <p>While vaguely defined in the protocol, the legacy graphql-ws
| subprotocol is generally understood to only support text data
| frames.</p>
| <p>Releases contributed by <a
| href="https://github.com/DoctorJohn"><code>@​DoctorJohn</code></a> via
| <a
|
href="https://redirect.github.com/strawberry-graphql/strawberry/issues/3633">#3633</a></p>
| <h2>🍓 0.241.0</h2>
| <p>You can now configure your schemas to provide a custom subclass of
| <code>strawberry.types.Info</code> to your types and queries.</p>
| <pre lang="py"><code>import strawberry
| from strawberry.schema.config import StrawberryConfig
| <p>from .models import ProductModel</p>
| <p>class CustomInfo(strawberry.Info):
| <a href="https://github.com/property"><code>@​property</code></a>
| def selected_group_id(self) -&gt; int | None:
| &quot;&quot;&quot;Get the ID of the group you're logged in
| as.&quot;&quot;&quot;
| return
|
self.context[&quot;request&quot;].headers.get(&quot;Group-ID&quot;)</p>
| <p><a
|
href="https://github.com/strawberry"><code>@​strawberry</code></a>.type
| class Group:
| id: strawberry.ID
| name: str</p>
| <p><a
|
href="https://github.com/strawberry"><code>@​strawberry</code></a>.type
| class User:
| id: strawberry.ID
| name: str
| group: Group</p>
| <p><a
|
href="https://github.com/strawberry"><code>@​strawberry</code></a>.type
| class Query:
| <a
|
href="https://github.com/strawberry"><code>@​strawberry</code></a>.field
| def user(self, id: strawberry.ID, info: CustomInfo) -&gt; Product:
| kwargs = {&quot;id&quot;: id, &quot;name&quot;: ...}</p>
| <pre><code>    if info.selected_group_id is not None:
|         # Get information about the group you're a part of, if
|         # available.
|         kwargs[&amp;quot;group&amp;quot;] = ...
| </code></pre>
| <p>&lt;/tr&gt;&lt;/table&gt;
| </code></pre></p>
| </blockquote>
| <p>... (truncated)</p>
| </details>
| <details>
| <summary>Changelog</summary>
| <p><em>Sourced from <a
|
href="https://github.com/strawberry-graphql/strawberry/blob/main/CHANGELOG.md">strawberry-graphql's
| changelog</a>.</em></p>
| <blockquote>
| <h2>0.242.0 - 2024-09-19</h2>
| <p>Starting with this release, clients using the legacy graphql-ws
| subprotocol will receive an error when they try to send binary data
| frames.
| Before, binary data frames were silently ignored.</p>
| <p>While vaguely defined in the protocol, the legacy graphql-ws
| subprotocol is generally understood to only support text data
| frames.</p>
| <p>Contributed by <a href="https://github.com/DoctorJohn">Jonathan
| Ehwald</a> via [PR <a
|
href="https://redirect.github.com/strawberry-graphql/strawberry/issues/3633">#3633</a>](<a
|
href="https://redirect.github.com/strawberry-graphql/strawberry/pull/3633/">strawberry-graphql/strawberry#3633</a>)</p>
| <h2>0.241.0 - 2024-09-16</h2>
| <p>You can now configure your schemas to provide a custom subclass of
| <code>strawberry.types.Info</code> to your types and queries.</p>
| <pre lang="py"><code>import strawberry
| from strawberry.schema.config import StrawberryConfig
| <p>from .models import ProductModel</p>
| <p>class CustomInfo(strawberry.Info):
| <a href="https://github.com/property"><code>@​property</code></a>
| def selected_group_id(self) -&gt; int | None:
| &quot;&quot;&quot;Get the ID of the group you're logged in
| as.&quot;&quot;&quot;
| return
|
self.context[&quot;request&quot;].headers.get(&quot;Group-ID&quot;)</p>
| <p><a
|
href="https://github.com/strawberry"><code>@​strawberry</code></a>.type
| class Group:
| id: strawberry.ID
| name: str</p>
| <p><a
|
href="https://github.com/strawberry"><code>@​strawberry</code></a>.type
| class User:
| id: strawberry.ID
| name: str
| group: Group</p>
| <p><a
|
href="https://github.com/strawberry"><code>@​strawberry</code></a>.type
| class Query:
| <a
|
href="https://github.com/strawberry"><code>@​strawberry</code></a>.field
| def user(self, id: strawberry.ID, info: CustomInfo) -&gt; Product:
| kwargs = {&quot;id&quot;: id, &quot;name&quot;: ...}</p>
| <p>&lt;/tr&gt;&lt;/table&gt;
| </code></pre></p>
| </blockquote>
| <p>... (truncated)</p>
| </details>
| <details>
| <summary>Commits</summary>
| <ul>
| <li><a
|
href="https://github.com/strawberry-graphql/strawberry/commit/ab169712b83b6e808730b0ee865ccefd0f9c0b12"><code>ab16971</code></a>
| Release 🍓 0.242.0</li>
| <li><a
|
href="https://github.com/strawberry-graphql/strawberry/commit/63528a59f2139b83aefb5bbec08b0bea795b7003"><code>63528a5</code></a>
| Let legacy ws clients know about invalid data frames (<a
|
href="https://redirect.github.com/strawberry-graphql/strawberry/issues/3633">#3633</a>)</li>
| <li><a
|
href="https://github.com/strawberry-graphql/strawberry/commit/294114689c4a10de4924fa516538ffe797130a43"><code>2941146</code></a>
| [pre-commit.ci] pre-commit autoupdate (<a
|
href="https://redirect.github.com/strawberry-graphql/strawberry/issues/3618">#3618</a>)</li>
| <li><a
|
href="https://github.com/strawberry-graphql/strawberry/commit/a162c9badd5ea636add571539f0bd7b222536176"><code>a162c9b</code></a>
| Release 🍓 0.241.0</li>
| <li><a
|
href="https://github.com/strawberry-graphql/strawberry/commit/72870476096a4ec4428bc6170f43bb3ac5228ba1"><code>7287047</code></a>
| Add ability to set a custom info class for a schema (<a
|
href="https://redirect.github.com/strawberry-graphql/strawberry/issues/3592">#3592</a>)</li>
| <li><a
|
href="https://github.com/strawberry-graphql/strawberry/commit/13bd97b8697929ec82a7fd95bdb9c17ccedaddf5"><code>13bd97b</code></a>
| Remove old link</li>
| <li>See full diff in <a
|
href="https://github.com/strawberry-graphql/strawberry/compare/0.240.4...0.242.0">compare
| view</a></li>
| </ul>
| </details>
| <br />
| 
| 
| [![Dependabot compatibility
|
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=strawberry-graphql&package-manager=pip&previous-version=0.240.4&new-version=0.242.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>
| Co-authored-by: Ashwin Krishnan
<36015265+mkashwin@users.noreply.github.com>
* 9dd8178 - Ashwin Krishnan - 2024-09-22 20:29:51 
| update poetry dependencies
| 
* bde6902 - mkashwin@gmail.com - 2024-09-16 14:04:08 
| updated poetry lock
| 
* 37c7b3e - mkashwin@gmail.com - 2024-09-16 14:03:55 
| updated poetry lock
| 
* 5337c0a - dependabot[bot] - 2024-09-16 12:27:28 
| Bump ruff from 0.6.4 to 0.6.5 in /07_uns_graphql (#1180)
| 
* b7bbd9e - mkashwin@gmail.com - 2024-09-16 12:07:49 
| updated poetry lock
| 
* b3ccd73 - dependabot[bot] - 2024-09-16 13:37:22 
| Bump idna from 3.8 to 3.10 (#1184)
| [//]: # (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 [idna](https://github.com/kjd/idna) from 3.8 to 3.10.
| <details>
| <summary>Changelog</summary>
| <p><em>Sourced from <a
| href="https://github.com/kjd/idna/blob/master/HISTORY.rst">idna's
| changelog</a>.</em></p>
| <blockquote>
| <p>3.10 (2024-09-15)
| +++++++++++++++++</p>
| <ul>
| <li>Reverted to Unicode 15.1.0 data. Unicode 16 has some significant
| changes
| to UTS46 processing that will require more work to properly
| implement.</li>
| </ul>
| <p>3.9 (2024-09-13)
| ++++++++++++++++</p>
| <ul>
| <li>Update to Unicode 16.0.0</li>
| <li>Deprecate setup.cfg in favour of pyproject.toml</li>
| <li>Use ruff for code formatting</li>
| </ul>
| <p>Thanks to Waket Zheng for contributions to this release.</p>
| </blockquote>
| </details>
| <details>
| <summary>Commits</summary>
| <ul>
| <li><a
|
href="https://github.com/kjd/idna/commit/729225d8b0c58bc66bb38d1d0faf281a757ece59"><code>729225d</code></a>
| Release v3.10</li>
| <li><a
|
href="https://github.com/kjd/idna/commit/3eef1680132907e90afb0feb29136f6895001f3c"><code>3eef168</code></a>
| Merge pull request <a
| href="https://redirect.github.com/kjd/idna/issues/194">#194</a> from
| kjd/revert-unicode-16</li>
| <li><a
|
href="https://github.com/kjd/idna/commit/ceca619a214c816e04c7c233565280bf3998c938"><code>ceca619</code></a>
| Revert Unicode 16.0.0 data updates</li>
| <li><a
|
href="https://github.com/kjd/idna/commit/c43ac75cf649511c3d593164a32a3ff9cd0cdcd1"><code>c43ac75</code></a>
| Merge pull request <a
| href="https://redirect.github.com/kjd/idna/issues/191">#191</a> from
| kjd/release-3.9</li>
| <li><a
|
href="https://github.com/kjd/idna/commit/1b8800a4d0c76126ab2d3e28c7e62f567cbe69f8"><code>1b8800a</code></a>
| Release v3.9</li>
| <li><a
|
href="https://github.com/kjd/idna/commit/a1fd16821734235fb6ce4e0283a49a71d61535d2"><code>a1fd168</code></a>
| Merge pull request <a
| href="https://redirect.github.com/kjd/idna/issues/190">#190</a> from
| kjd/unicode-16</li>
| <li><a
|
href="https://github.com/kjd/idna/commit/7732c6153e07946f1bf5cdea96817264d305b7cc"><code>7732c61</code></a>
| Merge branch 'master' into unicode-16</li>
| <li><a
|
href="https://github.com/kjd/idna/commit/4ed183d95cf5cdfc98bb867b9e4b33a3fd13ca9b"><code>4ed183d</code></a>
| Refactor membership test</li>
| <li><a
|
href="https://github.com/kjd/idna/commit/762216bd7b1d0c45937703ea0c7632360e32c85b"><code>762216b</code></a>
| Format with ruff</li>
| <li><a
|
href="https://github.com/kjd/idna/commit/580ece955f7e127094b21b40761be6b70ab62aef"><code>580ece9</code></a>
| Implement changes to UTS46 algorithm</li>
| <li>Additional commits viewable in <a
| href="https://github.com/kjd/idna/compare/v3.8...v3.10">compare
| view</a></li>
| </ul>
| </details>
| <br />
| 
| 
| [![Dependabot compatibility
|
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=idna&package-manager=pip&previous-version=3.8&new-version=3.10)](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 will merge this PR once it's up-to-date and CI passes on
it,
| as requested by @mkashwin.
| 
| [//]: # (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>
* 9561c3f - dependabot[bot] - 2024-09-16 13:37:13 
| Bump setuptools from 74.1.2 to 75.0.0 (#1182)
| [//]: # (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 [setuptools](https://github.com/pypa/setuptools) from 74.1.2 to
| 75.0.0.
| <details>
| <summary>Changelog</summary>
| <p><em>Sourced from <a
|
href="https://github.com/pypa/setuptools/blob/main/NEWS.rst">setuptools's
| changelog</a>.</em></p>
| <blockquote>
| <h1>v75.0.0</h1>
| <h2>Features</h2>
| <ul>
| <li>Declare also the dependencies used by distutils (adds
| jaraco.collections).</li>
| </ul>
| <h2>Deprecations and Removals</h2>
| <ul>
| <li>Removed upload_docs command. (<a
|
href="https://redirect.github.com/pypa/setuptools/issues/2971">#2971</a>)</li>
| <li><code>pypa/distutils#294</code><a
|
href="https://redirect.github.com/pypa/setuptools/issues/4649">#4649</a>)</li>
| </ul>
| <h1>v74.1.3</h1>
| <h2>Bugfixes</h2>
| <ul>
| <li>Fix cross-platform compilation using
| <code>distutils._msvccompiler.MSVCCompiler</code> -- by
| :user:<code>saschanaz</code> and :user:<code>Avasam</code> (<a
|
href="https://redirect.github.com/pypa/setuptools/issues/4648">#4648</a>)</li>
| </ul>
| </blockquote>
| </details>
| <details>
| <summary>Commits</summary>
| <ul>
| <li><a
|
href="https://github.com/pypa/setuptools/commit/5e27b2a6e324e70bd82a045aef8f75c84a3d3b28"><code>5e27b2a</code></a>
| Bump version: 74.1.3 → 75.0.0</li>
| <li><a
|
href="https://github.com/pypa/setuptools/commit/af9e245b57ef78fce03c7e28a0189388d8e4de18"><code>af9e245</code></a>
| Merge pull request <a
|
href="https://redirect.github.com/pypa/setuptools/issues/4649">#4649</a>
| from pypa/feature/distutils-7283751</li>
| <li><a
|
href="https://github.com/pypa/setuptools/commit/f15861e3ae2fb8a74efc528fa25754c329090611"><code>f15861e</code></a>
| Add news fragment.</li>
| <li><a
|
href="https://github.com/pypa/setuptools/commit/ce01828b6894c4597609da54fd343ea1aabfec84"><code>ce01828</code></a>
| Merge <a
|
href="https://github.com/pypa/distutils">https://github.com/pypa/distutils</a>
| into feature/distutils-7283751</li>
| <li><a
|
href="https://github.com/pypa/setuptools/commit/378984e02edae91d5f49425da8436f8dd9152b8a"><code>378984e</code></a>
| Remove news fragments, not useful here.</li>
| <li><a
|
href="https://github.com/pypa/setuptools/commit/ffdf0bd160ebf6acc1a0790ec1cb72d7da8968c4"><code>ffdf0bd</code></a>
| Merge tag 'v74.1.3'</li>
| <li><a
|
href="https://github.com/pypa/setuptools/commit/4c274911c59dd0161303d6cb991ec2a621ce1fb9"><code>4c27491</code></a>
| Bump version: 74.1.2 → 74.1.3</li>
| <li><a
|
href="https://github.com/pypa/setuptools/commit/a56a8f9cb798eec1c023242db15a7b3e27c72911"><code>a56a8f9</code></a>
| Fix cross-platform compilation using
| <code>distutils._msvccompiler.MSVCCompiler</code>.</li>
| <li><a
|
href="https://github.com/pypa/setuptools/commit/72837514c2b67081401db556be9aaaa43debe44f"><code>7283751</code></a>
| cygwinccompiler: Get the compilers from sysconfig</li>
| <li><a
|
href="https://github.com/pypa/setuptools/commit/47353c5c699024429d353b7ae47af5406cac46c2"><code>47353c5</code></a>
| Fix cross-platform compilation using
| <code>distutils._msvccompiler.MSVCCompiler</code></li>
| <li>Additional commits viewable in <a
|
href="https://github.com/pypa/setuptools/compare/v74.1.2...v75.0.0">compare
| view</a></li>
| </ul>
| </details>
| <br />
| 
| 
| [![Dependabot compatibility
|
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=setuptools&package-manager=pip&previous-version=74.1.2&new-version=75.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 will merge this PR once it's up-to-date and CI passes on
it,
| as requested by @mkashwin.
| 
| [//]: # (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>
* 0b7b857 - dependabot[bot] - 2024-09-16 11:34:59 
| Bump idna from 3.8 to 3.10 in /07_uns_graphql (#1185)
| 
* 93f339c - dependabot[bot] - 2024-09-16 11:34:53 
| Bump setuptools from 74.1.2 to 75.0.0 in /07_uns_graphql (#1183)
| 
* c72eb0f - dependabot[bot] - 2024-09-16 11:34:48 
| Bump fastapi from 0.114.1 to 0.114.2 in /07_uns_graphql (#1181)
| 
* 9292dc1 - dependabot[bot] - 2024-09-16 11:34:40 
| Bump fastapi from 0.114.1 to 0.114.2 (#1179)
| 
* 967eca9 - dependabot[bot] - 2024-09-16 11:34:38 
| Bump strawberry-graphql from 0.239.2 to 0.240.4 in /07_uns_graphql
(#1178)
| 
* fc04a5c - dependabot[bot] - 2024-09-16 11:34:35 
| Bump ruff from 0.6.4 to 0.6.5 (#1177)
| 
* 62d20cb - dependabot[bot] - 2024-09-16 11:34:31 
| Bump setuptools from 74.1.2 to 75.0.0 in /03_uns_graphdb (#1176)
| 
* dc240c1 - dependabot[bot] - 2024-09-16 11:34:29 
| Bump ruff from 0.6.4 to 0.6.5 in /03_uns_graphdb (#1175)
| 
* d74fa86 - dependabot[bot] - 2024-09-16 11:34:26 
| Bump idna from 3.8 to 3.10 in /03_uns_graphdb (#1174)
| 
* ba396e7 - dependabot[bot] - 2024-09-16 11:34:23 
| Bump setuptools from 74.1.2 to 75.0.0 in /06_uns_kafka (#1173)
| 
* 064d930 - dependabot[bot] - 2024-09-16 11:34:19 
| Bump ruff from 0.6.4 to 0.6.5 in /06_uns_kafka (#1172)
| 
* 361add6 - dependabot[bot] - 2024-09-16 11:34:17 
| Bump idna from 3.8 to 3.10 in /06_uns_kafka (#1171)
| 
* 36f7f17 - dependabot[bot] - 2024-09-16 11:34:11 
| Bump setuptools from 74.1.2 to 75.0.0 in /02_mqtt-cluster (#1170)
| 
* ee0868a - dependabot[bot] - 2024-09-16 11:34:09 
| Bump ruff from 0.6.4 to 0.6.5 in /02_mqtt-cluster (#1169)
| 
* e07af13 - dependabot[bot] - 2024-09-16 11:34:06 
| Bump idna from 3.8 to 3.10 in /02_mqtt-cluster (#1168)
| 
* ce872c1 - dependabot[bot] - 2024-09-16 11:34:03 
| Bump setuptools from 74.1.2 to 75.0.0 in /05_sparkplugb (#1167)
| 
* 0d2f885 - dependabot[bot] - 2024-09-16 11:34:01 
| Bump ruff from 0.6.4 to 0.6.5 in /05_sparkplugb (#1166)
| 
* 298bd50 - dependabot[bot] - 2024-09-16 11:33:58 
| Bump idna from 3.8 to 3.10 in /05_sparkplugb (#1165)
| 
* cef542d - dependabot[bot] - 2024-09-16 11:33:54 
| Bump ruff from 0.6.4 to 0.6.5 in /04_uns_historian (#1164)
| 
* 9c06fe0 - dependabot[bot] - 2024-09-16 11:33:49 
| Bump idna from 3.8 to 3.10 in /04_uns_historian (#1162)
| 
* bc9bb38 - dependabot[bot] - 2024-09-16 11:33:40 
| Bump setuptools from 74.1.2 to 75.0.0 in /04_uns_historian (#1163)
| 
* 41df83d - mkashwin@gmail.com - 2024-09-13 11:40:14 
| ran poetry update
| 
* dae85ff - mkashwin@gmail.com - 2024-09-10 08:55:38 
| ran poetry update
| 
* 3d86740 - mkashwin@gmail.com - 2024-09-10 08:51:49 
| ran poetry update
| 
* 9e1fe1a - dependabot[bot] - 2024-09-09 08:52:19 
| Bump yarl from 1.9.11 to 1.11.0 in /07_uns_graphql (#1151)
| 
* b096e47 - dependabot[bot] - 2024-09-09 08:52:12 
| Bump yarl from 1.9.11 to 1.11.0 (#1143)
| 
* b8c8edc - dependabot[bot] - 2024-09-09 08:51:23 
| Bump fastapi from 0.112.3 to 0.114.0 in /07_uns_graphql (#1152)
| 
* 81c1d06 - dependabot[bot] - 2024-09-09 08:51:07 
| Bump fastapi from 0.112.3 to 0.114.0 (#1145)
| 
* 664daeb - dependabot[bot] - 2024-09-09 08:50:04 
| Bump ruff from 0.6.3 to 0.6.4 (#1146)
| 
* 76f83f6 - dependabot[bot] - 2024-09-09 08:49:53 
| Bump ruff from 0.6.3 to 0.6.4 in /04_uns_historian (#1149)
| 
* b97bb2b - dependabot[bot] - 2024-09-09 08:49:41 
| Bump ruff from 0.6.3 to 0.6.4 in /05_sparkplugb (#1148)
| 
* 0c7d4dc - dependabot[bot] - 2024-09-09 08:49:29 
| Bump ruff from 0.6.3 to 0.6.4 in /07_uns_graphql (#1153)
| 
* bb17e98 - dependabot[bot] - 2024-09-09 08:49:13 
| Bump ruff from 0.6.3 to 0.6.4 in /02_mqtt-cluster (#1157)
| 
* 9a6da6e - dependabot[bot] - 2024-09-09 08:49:02 
| Bump ruff from 0.6.3 to 0.6.4 in /03_uns_graphdb (#1158)
| 
* b5afc64 - dependabot[bot] - 2024-09-09 08:48:46 
| Bump ruff from 0.6.3 to 0.6.4 in /06_uns_kafka (#1161)
| 
* 7208156 - dependabot[bot] - 2024-09-09 08:47:48 
| Bump pydantic from 2.8.2 to 2.9.0 in /07_uns_graphql (#1155)
| 
* 9449031 - dependabot[bot] - 2024-09-09 08:47:41 
| Bump pydantic from 2.8.2 to 2.9.0 in /06_uns_kafka (#1160)
| 
* 5807143 - dependabot[bot] - 2024-09-09 08:47:35 
| Bump pydantic from 2.8.2 to 2.9.0 in /05_sparkplugb (#1147)
| 
* 13c5853 - dependabot[bot] - 2024-09-09 08:47:28 
| Bump pydantic from 2.8.2 to 2.9.0 in /04_uns_historian (#1150)
| 
* 962c410 - dependabot[bot] - 2024-09-09 08:47:22 
| Bump pydantic from 2.8.2 to 2.9.0 in /03_uns_graphdb (#1159)
| 
* 4a80193 - dependabot[bot] - 2024-09-09 08:47:16 
| Bump pydantic from 2.8.2 to 2.9.0 in /02_mqtt-cluster (#1156)
| 
* c81e1bc - dependabot[bot] - 2024-09-09 08:47:10 
| Bump pydantic from 2.8.2 to 2.9.0 (#1144)
| 
* 19360b3 - dependabot[bot] - 2024-09-09 08:47:03 
| Bump starlette from 0.38.4 to 0.38.5 (#1142)
| 
* e74e3c8 - dependabot[bot] - 2024-09-09 08:46:57 
| Bump starlette from 0.38.4 to 0.38.5 in /07_uns_graphql (#1154)
| 
* c17a42e - mkashwin@gmail.com - 2024-09-05 12:58:12 
| bumped to LIBRDKAFKA VER "2.5.3"
| 
* 4b1140c - mkashwin@gmail.com - 2024-09-05 12:45:24 
| ran poetry update
| 
* 3e31e77 - dependabot[bot] - 2024-09-04 08:31:11 
| Bump cryptography from 43.0.0 to 43.0.1 in the pip group (#1140)
| Bumps the pip group with 1 update:
| [cryptography](https://github.com/pyca/cryptography).
| 
| Updates `cryptography` from 43.0.0 to 43.0.1
| <details>
| <summary>Changelog</summary>
| <p><em>Sourced from <a
|
href="https://github.com/pyca/cryptography/blob/main/CHANGELOG.rst">cryptography's
| changelog</a>.</em></p>
| <blockquote>
| <p>43.0.1 - 2024-09-03</p>
| <pre><code>
| * Updated Windows, macOS, and Linux wheels to be compiled with OpenSSL
| 3.3.2.
| <p>.. _v43-0-0:<br />
| </code></pre></p>
| </blockquote>
| </details>
| <details>
| <summary>Commits</summary>
| <ul>
| <li><a
|
href="https://github.com/pyca/cryptography/commit/a7733878281ca261c4ada04022fc706ba5de9d8b"><code>a773387</code></a>
| bump for 43.0.1 (<a
|
href="https://redirect.github.com/pyca/cryptography/issues/11533">#11533</a>)</li>
| <li><a
|
href="https://github.com/pyca/cryptography/commit/0393fef5758e55e3c7b3a3e6e5b77821c594a87f"><code>0393fef</code></a>
| Backport setuptools version ban (<a
|
href="https://redirect.github.com/pyca/cryptography/issues/11526">#11526</a>)</li>
| <li><a
|
href="https://github.com/pyca/cryptography/commit/6687bab97aef31d6ee6cc94ecc87a972137b5d4a"><code>6687bab</code></a>
| Bump openssl from 0.10.65 to 0.10.66 in /src/rust (<a
|
href="https://redirect.github.com/pyca/cryptography/issues/11320">#11320</a>)
| (<a
|
href="https://redirect.github.com/pyca/cryptography/issues/11324">#11324</a>)</li>
| <li>See full diff in <a
|
href="https://github.com/pyca/cryptography/compare/43.0.0...43.0.1">compare
| view</a></li>
| </ul>
| </details>
| <br />
| 
| 
| [![Dependabot compatibility
|
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=cryptography&package-manager=pip&previous-version=43.0.0&new-version=43.0.1)](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 <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
| You can disable automated security fix PRs for this repo from the
| [Security Alerts
| page](https://github.com/mkashwin/unifiednamespace/network/alerts).
| 
| </details>
| 
| Signed-off-by: dependabot[bot] <support@github.com>
| Co-authored-by: dependabot[bot]
<49699333+dependabot[bot]@users.noreply.github.com>
* 8e51110 - dependabot[bot] - 2024-09-04 08:30:32 
| Bump the pip group across 6 directories with 1 update (#1141)
| Bumps the pip group with 1 update in the /02_mqtt-cluster directory:
| [cryptography](https://github.com/pyca/cryptography).
| Bumps the pip group with 1 update in the /03_uns_graphdb directory:
| [cryptography](https://github.com/pyca/cryptography).
| Bumps the pip group with 1 update in the /04_uns_historian directory:
| [cryptography](https://github.com/pyca/cryptography).
| Bumps the pip group with 1 update in the /05_sparkplugb directory:
| [cryptography](https://github.com/pyca/cryptography).
| Bumps the pip group with 1 update in the /06_uns_kafka directory:
| [cryptography](https://github.com/pyca/cryptography).
| Bumps the pip group with 1 update in the /07_uns_graphql directory:
| [cryptography](https://github.com/pyca/cryptography).
| 
| Updates `cryptography` from 43.0.0 to 43.0.1
| <details>
| <summary>Changelog</summary>
| <p><em>Sourced from <a
|
href="https://github.com/pyca/cryptography/blob/main/CHANGELOG.rst">cryptography's
| changelog</a>.</em></p>
| <blockquote>
| <p>43.0.1 - 2024-09-03</p>
| <pre><code>
| * Updated Windows, macOS, and Linux wheels to be compiled with OpenSSL
| 3.3.2.
| <p>.. _v43-0-0:<br />
| </code></pre></p>
| </blockquote>
| </details>
| <details>
| <summary>Commits</summary>
| <ul>
| <li><a
|
href="https://github.com/pyca/cryptography/commit/a7733878281ca261c4ada04022fc706ba5de9d8b"><code>a773387</code></a>
| bump for 43.0.1 (<a
|
href="https://redirect.github.com/pyca/cryptography/issues/11533">#11533</a>)</li>
| <li><a
|
href="https://github.com/pyca/cryptography/commit/0393fef5758e55e3c7b3a3e6e5b77821c594a87f"><code>0393fef</code></a>
| Backport setuptools version ban (<a
|
href="https://redirect.github.com/pyca/cryptography/issues/11526">#11526</a>)</li>
| <li><a
|
href="https://github.com/pyca/cryptography/commit/6687bab97aef31d6ee6cc94ecc87a972137b5d4a"><code>6687bab</code></a>
| Bump openssl from 0.10.65 to 0.10.66 in /src/rust (<a
|
href="https://redirect.github.com/pyca/cryptography/issues/11320">#11320</a>)
| (<a
|
href="https://redirect.github.com/pyca/cryptography/issues/11324">#11324</a>)</li>
| <li>See full diff in <a
|
href="https://github.com/pyca/cryptography/compare/43.0.0...43.0.1">compare
| view</a></li>
| </ul>
| </details>
| <br />
| 
| Updates `cryptography` from 43.0.0 to 43.0.1
| <details>
| <summary>Changelog</summary>
| <p><em>Sourced from <a
|
href="https://github.com/pyca/cryptography/blob/main/CHANGELOG.rst">cryptography's
| changelog</a>.</em></p>
| <blockquote>
| <p>43.0.1 - 2024-09-03</p>
| <pre><code>
| * Updated Windows, macOS, and Linux wheels to be compiled with OpenSSL
| 3.3.2.
| <p>.. _v43-0-0:<br />
| </code></pre></p>
| </blockquote>
| </details>
| <details>
| <summary>Commits</summary>
| <ul>
| <li><a
|
href="https://github.com/pyca/cryptography/commit/a7733878281ca261c4ada04022fc706ba5de9d8b"><code>a773387</code></a>
| bump for 43.0.1 (<a
|
href="https://redirect.github.com/pyca/cryptography/issues/11533">#11533</a>)</li>
| <li><a
|
href="https://github.com/pyca/cryptography/commit/0393fef5758e55e3c7b3a3e6e5b77821c594a87f"><code>0393fef</code></a>
| Backport setuptools version ban (<a
|
href="https://redirect.github.com/pyca/cryptography/issues/11526">#11526</a>)</li>
| <li><a
|
href="https://github.com/pyca/cryptography/commit/6687bab97aef31d6ee6cc94ecc87a972137b5d4a"><code>6687bab</code></a>
| Bump openssl from 0.10.65 to 0.10.66 in /src/rust (<a
|
href="https://redirect.github.com/pyca/cryptography/issues/11320">#11320</a>)
| (<a
|
href="https://redirect.github.com/pyca/cryptography/issues/11324">#11324</a>)</li>
| <li>See full diff in <a
|
href="https://github.com/pyca/cryptography/compare/43.0.0...43.0.1">compare
| view</a></li>
| </ul>
| </details>
| <br />
| 
| Updates `cryptography` from 43.0.0 to 43.0.1
| <details>
| <summary>Changelog</summary>
| <p><em>Sourced from <a
|
href="https://github.com/pyca/cryptography/blob/main/CHANGELOG.rst">cryptography's
| changelog</a>.</em></p>
| <blockquote>
| <p>43.0.1 - 2024-09-03</p>
| <pre><code>
| * Updated Windows, macOS, and Linux wheels to be compiled with OpenSSL
| 3.3.2.
| <p>.. _v43-0-0:<br />
| </code></pre></p>
| </blockquote>
| </details>
| <details>
| <summary>Commits</summary>
| <ul>
| <li><a
|
href="https://github.com/pyca/cryptography/commit/a7733878281ca261c4ada04022fc706ba5de9d8b"><code>a773387</code></a>
| bump for 43.0.1 (<a
|
href="https://redirect.github.com/pyca/cryptography/issues/11533">#11533</a>)</li>
| <li><a
|
href="https://github.com/pyca/cryptography/commit/0393fef5758e55e3c7b3a3e6e5b77821c594a87f"><code>0393fef</code></a>
| Backport setuptools version ban (<a
|
href="https://redirect.github.com/pyca/cryptography/issues/11526">#11526</a>)</li>
| <li><a
|
href="https://github.com/pyca/cryptography/commit/6687bab97aef31d6ee6cc94ecc87a972137b5d4a"><code>6687bab</code></a>
| Bump openssl from 0.10.65 to 0.10.66 in /src/rust (<a
|
href="https://redirect.github.com/pyca/cryptography/issues/11320">#11320</a>)
| (<a
|
href="https://redirect.github.com/pyca/cryptography/issues/11324">#11324</a>)</li>
| <li>See full diff in <a
|
href="https://github.com/pyca/cryptography/compare/43.0.0...43.0.1">compare
| view</a></li>
| </ul>
| </details>
| <br />
| 
| Updates `cryptography` from 43.0.0 to 43.0.1
| <details>
| <summary>Changelog</summary>
| <p><em>Sourced from <a
|
href="https://github.com/pyca/cryptography/blob/main/CHANGELOG.rst">cryptography's
| changelog</a>.</em></p>
| <blockquote>
| <p>43.0.1 - 2024-09-03</p>
| <pre><code>
| * Updated Windows, macOS, and Linux wheels to be compiled with OpenSSL
| 3.3.2.
| <p>.. _v43-0-0:<br />
| </code></pre></p>
| </blockquote>
| </details>
| <details>
| <summary>Commits</summary>
| <ul>
| <li><a
|
href="https://github.com/pyca/cryptography/commit/a7733878281ca261c4ada04022fc706ba5de9d8b"><code>a773387</code></a>
| bump for 43.0.1 (<a
|
href="https://redirect.github.com/pyca/cryptography/issues/11533">#11533</a>)</li>
| <li><a
|
href="https://github.com/pyca/cryptography/commit/0393fef5758e55e3c7b3a3e6e5b77821c594a87f"><code>0393fef</code></a>
| Backport setuptools version ban (<a
|
href="https://redirect.github.com/pyca/cryptography/issues/11526">#11526</a>)</li>
| <li><a
|
href="https://github.com/pyca/cryptography/commit/6687bab97aef31d6ee6cc94ecc87a972137b5d4a"><code>6687bab</code></a>
| Bump openssl from 0.10.65 to 0.10.66 in /src/rust (<a
|
href="https://redirect.github.com/pyca/cryptography/issues/11320">#11320</a>)
| (<a
|
href="https://redirect.github.com/pyca/cryptography/issues/11324">#11324</a>)</li>
| <li>See full diff in <a
|
href="https://github.com/pyca/cryptography/compare/43.0.0...43.0.1">compare
| view</a></li>
| </ul>
| </details>
| <br />
| 
| Updates `cryptography` from 43.0.0 to 43.0.1
| <details>
| <summary>Changelog</summary>
| <p><em>Sourced from <a
|
href="https://github.com/pyca/cryptography/blob/main/CHANGELOG.rst">cryptography's
| changelog</a>.</em></p>
| <blockquote>
| <p>43.0.1 - 2024-09-03</p>
| <pre><code>
| * Updated Windows, macOS, and Linux wheels to be compiled with OpenSSL
| 3.3.2.
| <p>.. _v43-0-0:<br />
| </code></pre></p>
| </blockquote>
| </details>
| <details>
| <summary>Commits</summary>
| <ul>
| <li><a
|
href="https://github.com/pyca/cryptography/commit/a7733878281ca261c4ada04022fc706ba5de9d8b"><code>a773387</code></a>
| bump for 43.0.1 (<a
|
href="https://redirect.github.com/pyca/cryptography/issues/11533">#11533</a>)</li>
| <li><a
|
href="https://github.com/pyca/cryptography/commit/0393fef5758e55e3c7b3a3e6e5b77821c594a87f"><code>0393fef</code></a>
| Backport setuptools version ban (<a
|
href="https://redirect.github.com/pyca/cryptography/issues/11526">#11526</a>)</li>
| <li><a
|
href="https://github.com/pyca/cryptography/commit/6687bab97aef31d6ee6cc94ecc87a972137b5d4a"><code>6687bab</code></a>
| Bump openssl from 0.10.65 to 0.10.66 in /src/rust (<a
|
href="https://redirect.github.com/pyca/cryptography/issues/11320">#11320</a>)
| (<a
|
href="https://redirect.github.com/pyca/cryptography/issues/11324">#11324</a>)</li>
| <li>See full diff in <a
|
href="https://github.com/pyca/cryptography/compare/43.0.0...43.0.1">compare
| view</a></li>
| </ul>
| </details>
| <br />
| 
| Updates `cryptography` from 43.0.0 to 43.0.1
| <details>
| <summary>Changelog</summary>
| <p><em>Sourced from <a
|
href="https://github.com/pyca/cryptography/blob/main/CHANGELOG.rst">cryptography's
| changelog</a>.</em></p>
| <blockquote>
| <p>43.0.1 - 2024-09-03</p>
| <pre><code>
| * Updated Windows, macOS, and Linux wheels to be compiled with OpenSSL
| 3.3.2.
| <p>.. _v43-0-0:<br />
| </code></pre></p>
| </blockquote>
| </details>
| <details>
| <summary>Commits</summary>
| <ul>
| <li><a
|
href="https://github.com/pyca/cryptography/commit/a7733878281ca261c4ada04022fc706ba5de9d8b"><code>a773387</code></a>
| bump for 43.0.1 (<a
|
href="https://redirect.github.com/pyca/cryptography/issues/11533">#11533</a>)</li>
| <li><a
|
href="https://github.com/pyca/cryptography/commit/0393fef5758e55e3c7b3a3e6e5b77821c594a87f"><code>0393fef</code></a>
| Backport setuptools version ban (<a
|
href="https://redirect.github.com/pyca/cryptography/issues/11526">#11526</a>)</li>
| <li><a
|
href="https://github.com/pyca/cryptography/commit/6687bab97aef31d6ee6cc94ecc87a972137b5d4a"><code>6687bab</code></a>
| Bump openssl from 0.10.65 to 0.10.66 in /src/rust (<a
|
href="https://redirect.github.com/pyca/cryptography/issues/11320">#11320</a>)
| (<a
|
href="https://redirect.github.com/pyca/cryptography/issues/11324">#11324</a>)</li>
| <li>See full diff in <a
|
href="https://github.com/pyca/cryptography/compare/43.0.0...43.0.1">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
| You can disable automated security fix PRs for this repo from the
| [Security Alerts
| page](https://github.com/mkashwin/unifiednamespace/network/alerts).
| 
| </details>
| 
| Signed-off-by: dependabot[bot] <support@github.com>
| Co-authored-by: dependabot[bot]
<49699333+dependabot[bot]@users.noreply.github.com>
* 27caf64 - mkashwin@gmail.com - 2024-09-02 09:01:55 
| Updating strawberry-graphql (0.237.3 -> 0.239.0)
| 
* d394d1e - dependabot[bot] - 2024-09-02 08:19:55 
| Bump starlette from 0.38.3 to 0.38.4 in /07_uns_graphql (#1135)
| 
* db326d8 - dependabot[bot] - 2024-09-02 08:19:46 
| Bump starlette from 0.38.3 to 0.38.4 (#1139)
| 
* 171258e - dependabot[bot] - 2024-09-02 08:19:35 
| Bump yarl from 1.9.6 to 1.9.7 (#1138)
| 
* 4e78f42 - dependabot[bot] - 2024-09-02 08:19:28 
| Bump yarl from 1.9.6 to 1.9.7 in /07_uns_graphql (#1137)
| 
* e5bd2a4 - dependabot[bot] - 2024-09-02 08:19:20 
| Bump strawberry-graphql from 0.237.3 to 0.239.0 in /07_uns_graphql
(#1136)
| 
* 86d87cc - github-actions[bot] - 2024-09-01 10:53:00 
| Updating protocol buffers version to v28.0 (#1134)
| * 64edebc - Github Actions - 2024-09-01 02:10:26 
|   Upgrade to  protocol buffer release v28.0
| 
| ---------
| 
| Co-authored-by: Github Actions <actions@github.com>
| Co-authored-by: Ashwin Krishnan
<36015265+mkashwin@users.noreply.github.com>
* 697e53f - Ashwin Krishnan - 2024-08-26 20:27:40 
| - Updating idna (3.7 -> 3.8) - Updating rich (13.7.1 -> 13.8.0) -
Updating aiohappyeyeballs (2.3.7 -> 2.4.0) - Updating fastapi (0.112.1
-> 0.112.2) - Updating typer (0.12.4 -> 0.12.5) - Updating websockets
(12.0 -> 13.0) - Updating aiohttp (3.10.4 -> 3.10.5) - Updating
marshmallow (3.21.3 -> 3.22.0) - Updating authlib (1.3.1 -> 1.3.2) -
Updating safety-schemas (0.0.3 -> 0.0.5) - Updating setuptools (72.2.0
-> 73.0.1) - Updating ruff (0.6.1 -> 0.6.2)
| 
* 717d098 - dependabot[bot] - 2024-08-26 18:25:43 
| Bump setuptools from 72.2.0 to 73.0.1 in /06_uns_kafka (#1106)
| 
* f3e0fe0 - dependabot[bot] - 2024-08-26 18:15:13 
| Bump marshmallow from 3.21.3 to 3.22.0 in /02_mqtt-cluster (#1113)
| 
* 2d7a1f1 - dependabot[bot] - 2024-08-26 17:42:33 
| Bump safety-schemas from 0.0.3 to 0.0.5 in /06_uns_kafka (#1108)
| 
* 4ee8698 - dependabot[bot] - 2024-08-26 17:20:41 
| Bump safety from 3.2.5 to 3.2.6 in /04_uns_historian (#1103)
| 
* cb48238 - dependabot[bot] - 2024-08-26 17:17:39 
| Bump authlib from 1.3.1 to 1.3.2 in /05_sparkplugb (#1120)
| 
* 11c5fae - dependabot[bot] - 2024-08-26 17:10:41 
| Bump typer from 0.12.4 to 0.12.5 in /03_uns_graphdb (#1127)
| 
* 12e9115 - dependabot[bot] - 2024-08-26 17:09:43 
| Bump setuptools from 72.2.0 to 73.0.1 in /07_uns_graphql (#1130)
| 
* 1f1eb27 - dependabot[bot] - 2024-08-26 17:06:31 
| Bump safety from 3.2.5 to 3.2.6 in /02_mqtt-cluster (#1116)
| 
* 291f311 - dependabot[bot] - 2024-08-26 15:43:59 
| Bump idna from 3.7 to 3.8 (#1119)
| 
* f36030d - dependabot[bot] - 2024-08-26 15:37:33 
| Bump ruff from 0.6.1 to 0.6.2 in /06_uns_kafka (#1107)
| 
* 44f1060 - dependabot[bot] - 2024-08-26 15:26:48 
| Bump idna from 3.7 to 3.8 in /05_sparkplugb (#1121)
| 
* 519c038 - dependabot[bot] - 2024-08-26 15:24:30 
| Bump setuptools from 72.2.0 to 73.0.1 in /02_mqtt-cluster (#1111)
| 
* 9a8659c - dependabot[bot] - 2024-08-26 15:23:49 
| Bump authlib from 1.3.1 to 1.3.2 in /03_uns_graphdb (#1126)
| 
* 6188e02 - dependabot[bot] - 2024-08-26 15:23:42 
| Bump websockets from 12.0 to 13.0 in /07_uns_graphql (#1129)
| 
* a30178b - dependabot[bot] - 2024-08-26 15:20:02 
| Bump safety-schemas from 0.0.3 to 0.0.5 in /07_uns_graphql (#1131)
| 
* ec89667 - dependabot[bot] - 2024-08-26 15:17:07 
| Bump safety from 3.2.5 to 3.2.6 in /05_sparkplugb (#1122)
| 
* 25e3612 - dependabot[bot] - 2024-08-26 15:14:44 
| Bump ruff from 0.6.1 to 0.6.2 in /04_uns_historian (#1101)
| 
* 9bc8ae9 - dependabot[bot] - 2024-08-26 15:06:57 
| Bump typer from 0.12.4 to 0.12.5 in /05_sparkplugb (#1123)
| 
* a660f2a - dependabot[bot] - 2024-08-26 12:14:16 
| Bump marshmallow from 3.21.3 to 3.22.0 in /03_uns_graphdb (#1128)
| 
* 3035d08 - dependabot[bot] - 2024-08-26 12:10:10 
| Bump pytest-asyncio from 0.23.8 to 0.24.0 in /07_uns_graphql (#1132)
| 
* 627025e - dependabot[bot] - 2024-08-26 12:09:56 
| Bump fastapi from 0.112.1 to 0.112.2 in /07_uns_graphql (#1133)
| 
* 4fca31a - dependabot[bot] - 2024-08-26 12:09:07 
| Bump idna from 3.7 to 3.8 in /03_uns_graphdb (#1125)
| 
* e924458 - dependabot[bot] - 2024-08-26 12:08:51 
| Bump safety from 3.2.5 to 3.2.6 in /03_uns_graphdb (#1124)
| 
* cea88c4 - dependabot[bot] - 2024-08-26 12:06:08 
| Bump fastapi from 0.112.1 to 0.112.2 (#1118)
| 
* a3ab3e9 - dependabot[bot] - 2024-08-26 12:05:53 
| Bump safety-schemas from 0.0.3 to 0.0.5 in /05_sparkplugb (#1117)
| 
* 6e57c36 - dependabot[bot] - 2024-08-26 12:04:07 
| Bump websockets from 12.0 to 13.0 (#1114)
| 
* 93c7cbe - dependabot[bot] - 2024-08-26 12:03:34 
| Bump aiohappyeyeballs from 2.3.7 to 2.4.0 (#1112)
| 
* f18b7f9 - dependabot[bot] - 2024-08-26 12:02:37 
| Bump ruff from 0.6.1 to 0.6.2 (#1110)
| 
* 07a8d77 - dependabot[bot] - 2024-08-26 12:02:22 
| Bump idna from 3.7 to 3.8 in /02_mqtt-cluster (#1109)
| 
* 1a52fc8 - dependabot[bot] - 2024-08-26 12:01:08 
| Bump authlib from 1.3.1 to 1.3.2 in /06_uns_kafka (#1105)
| 
* d3ddbba - dependabot[bot] - 2024-08-26 12:00:54 
| Bump typer from 0.12.4 to 0.12.5 in /06_uns_kafka (#1104)
| 
* f3a236c - dependabot[bot] - 2024-08-26 11:59:50 
| Bump typer from 0.12.4 to 0.12.5 in /04_uns_historian (#1102)
| 
* ab94733 - dependabot[bot] - 2024-08-26 11:59:12 
| Bump setuptools from 72.2.0 to 73.0.1 in /04_uns_historian (#1100)
| 
* 0da6abd - dependabot[bot] - 2024-08-26 11:58:56 
| Bump safety-schemas from 0.0.3 to 0.0.5 in /04_uns_historian (#1099)
| 
* 91d068c - dependabot[bot] - 2024-08-19 12:28:32 
| Bump ruff from 0.5.7 to 0.6.1 in /04_uns_historian (#1097)
| 
* 5f99b4f - dependabot[bot] - 2024-08-19 12:28:17 
| Bump ruff from 0.5.7 to 0.6.1 in /05_sparkplugb (#1095)
| 
* f13af11 - dependabot[bot] - 2024-08-19 12:28:06 
| Bump ruff from 0.5.7 to 0.6.1 in /03_uns_graphdb (#1093)
| 
* 2030959 - dependabot[bot] - 2024-08-19 12:27:49 
| Bump ruff from 0.5.7 to 0.6.1 in /06_uns_kafka (#1092)
| 
* 5526090 - dependabot[bot] - 2024-08-19 12:27:36 
| Bump ruff from 0.5.7 to 0.6.1 in /02_mqtt-cluster (#1089)
| 
* d371d4b - dependabot[bot] - 2024-08-19 12:27:25 
| Bump ruff from 0.5.7 to 0.6.1 in /07_uns_graphql (#1087)
| 
* 42906d4 - dependabot[bot] - 2024-08-19 12:27:11 
| Bump ruff from 0.5.7 to 0.6.1 (#1085)
| 
* e7346d6 - Ashwin Krishnan - 2024-08-19 05:52:13 
- Updating starlette (0.37.2 -> 0.38.2) - Updating aiohappyeyeballs
(2.3.5 -> 2.3.7) - Updating fastapi (0.112.0 -> 0.112.1) - Updating
typer (0.12.3 -> 0.12.4) - Updating uvloop (0.19.0 -> 0.20.0) - Updating
aiohttp (3.10.3 -> 3.10.4) - Updating setuptools (72.1.0 -> 72.2.0) -
Updating uvicorn (0.30.5 -> 0.30.6)

---------

Co-authored-by: Ashwin Krishnan <mkashwin@gmail.com>
Co-authored-by: Ashwin Krishnan <36015265+mkashwin@users.noreply.github.com>
  • Loading branch information
3 people authored Sep 24, 2024
1 parent 03f8534 commit 1c22896
Show file tree
Hide file tree
Showing 18 changed files with 2,065 additions and 124 deletions.
1 change: 1 addition & 0 deletions .vscode/settings.json
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@
"createdb",
"createrole",
"createuser",
"cypher",
"DBIRTH",
"dbuser",
"DCMD",
Expand Down
4 changes: 2 additions & 2 deletions 02_mqtt-cluster/src/uns_mqtt/mqtt_listener.py
Original file line number Diff line number Diff line change
Expand Up @@ -359,9 +359,9 @@ def get_regex_for_topic_with_wildcard(topic_with_wildcard) -> str:
regex_exp += "[^/]*/"
elif curr_value == "#":
if last_value is None: # Handle if subscribed to #
regex_exp += "(.)*/"
regex_exp += "(.*)*/"
else: # need to wrap the last / in optional too i.e. 'a/#' should map to just 'a' too
regex_exp = regex_exp[:-1] + "(/.)*"
regex_exp = regex_exp[:-1] + "(/.*)*"
else:
regex_exp += curr_value + "/"
last_value = curr_value
Expand Down
7 changes: 7 additions & 0 deletions 02_mqtt-cluster/test/test_mqtt_listner.py
Original file line number Diff line number Diff line change
Expand Up @@ -200,10 +200,17 @@ def on_connect(client, userdata, flags, result_code, properties=None):
("#", "a/b/c", True),
("a/#", "a", True),
("a/#", "a/b/c", True),
("a/#", "a/bbb", True),
("a/#", "ab/a", False),
("a/#/c", "ab/a", False),
("a/#/c", "a/b/c", True),
("aa/#/cc", "aa/abc/cc", True),
("a/+", "a/b", True),
("a/+", "a/bbb", True),
("a/+/c", "a/b/c", True),
("a/+/c", "a/bbb/c", True),
("+", "a", True),
("+", "abc", True),
("+", "a/b/c", False),
(None, "a/b/c", False),
("+", "a/b/c", False),
Expand Down
4 changes: 2 additions & 2 deletions 02_mqtt-cluster/test/test_uns_spb_enums.py
Original file line number Diff line number Diff line change
Expand Up @@ -319,9 +319,9 @@ def test_dataset_via_enum(value: sparkplug_b_pb2.Payload.DataSet, spb_obj):
("String", sparkplug_b_pb2.Payload.Metric()), # negative test case
],
)
def test_template_via_enum(value: sparkplug_b_pb2.Template, spb_obj):
def test_template_via_enum(value, spb_obj):
"""
Test case for value setting Template via the ENUMs
Test case for value setting Template via the ENUMs sparkplug_b_pb2.Template
"""
if isinstance(value, sparkplug_b_pb2.Payload.Template):
SPBMetricDataTypes(sparkplug_b_pb2.Template).set_value_in_sparkplug(value=value, spb_object=spb_obj)
Expand Down
9 changes: 3 additions & 6 deletions 02_mqtt-cluster/test/test_uns_spb_helper_metrics.py
Original file line number Diff line number Diff line change
Expand Up @@ -318,13 +318,12 @@ def test_add_metric_and_ddata_msg(timestamp: float, metrics: list[dict]):
sparkplug_message = SpBMessageGenerator()
payload = sparkplug_message.get_device_data_payload(timestamp=timestamp)
alias = 0
# creating the payload from the dict object provided as parameter
for metric in metrics:
name: str = metric["name"]
datatype: int = metric["datatype"]
value = metric.get("value", None)
metric_timestamp = metric.get("timestamp", None)
if metric_timestamp is None:
metric_timestamp = timestamp
metric_timestamp = metric.get("timestamp", timestamp)
sparkplug_message.add_metric(
payload_or_template=payload, name=name, alias=alias, datatype=datatype, value=value, timestamp=metric_timestamp
)
Expand Down Expand Up @@ -594,9 +593,7 @@ def test_add_historical_metric_and_ddata_msg(metrics: list[dict]):
name: str = metric["name"]
datatype: int = metric["datatype"]
value = metric.get("value", None)
metric_timestamp = metric.get("timestamp", None)
if metric_timestamp is None:
metric_timestamp = timestamp
metric_timestamp = metric.get("timestamp", timestamp)
sparkplug_message.add_historical_metric(
payload=payload, name=name, datatype=datatype, value=value, timestamp=metric_timestamp
)
Expand Down
6 changes: 3 additions & 3 deletions 03_uns_graphdb/src/uns_graphdb/graphdb_handler.py
Original file line number Diff line number Diff line change
Expand Up @@ -103,8 +103,8 @@ def connect(self, retry: int = 0) -> neo4j.Driver:
----------
retry: int
Optional parameters to retry making a connection in case of errors.
The max number of retry is `GraphDBHandler.MAX_RETRIES`
The time between attempts is `GraphDBHandler.SLEEP_BTW_ATTEMPT`
The max number of retry is `GraphDBHandler.max_retry`
The time between attempts is `GraphDBHandler.sleep_btw_attempts`
Returns:
neo4j.Driver: The Neo4j driver object.
Expand All @@ -117,7 +117,7 @@ def connect(self, retry: int = 0) -> neo4j.Driver:
"""
try:
if self.driver is None:
self.driver = neo4j.GraphDatabase.driver(self.uri, auth=self.auth)
self.driver = neo4j.GraphDatabase.driver(self.uri, auth=self.auth, database=self.database)
self.driver.verify_connectivity()
except (
exceptions.DatabaseError,
Expand Down
3 changes: 3 additions & 0 deletions 05_sparkplugb/test/test_spb2unspublisher.py
Original file line number Diff line number Diff line change
Expand Up @@ -166,6 +166,9 @@ def test_negative_get_metric_name(cache_key, metric):


@pytest.mark.parametrize("cache_key", ["group1_/edge_node_1/None", "group1_/edge_node_1/MyDevice"])
# FIXME not working with VsCode https://github.com/microsoft/vscode-python/issues/19374
# Comment this marker and run test individually in VSCode. Uncomment for running from command line / CI
@pytest.mark.xdist_group(name="spb_publisher")
@pytest.mark.parametrize(
"metric,name, alias",
[
Expand Down
108 changes: 99 additions & 9 deletions 07_uns_graphql/schema/uns_schema.graphql
Original file line number Diff line number Diff line change
Expand Up @@ -77,15 +77,102 @@ type Query {
"""
getUnsNodes(topics: [MQTTTopicInput!]!): [UNSNode!]!

"""
Get all UNSNodes published which have specific attributes.Option binary_operator input allows chaining the list of property_keys. If NULL, property_keys will be ORed- OR: Either of the property_keys must exist in the same node. If only one property_keys provided will be ignored- AND: All property_keys must exist in same node. If only one property_keys provided will be ignored- NOT: None of the provided property_keys should exist in the same nodeOther criteria - topics will always be ANDed to the query filter
"""
getUnsNodesByProperty(propertyKeys: [String!]!, binaryOperator: BinaryOperator, topics: [MQTTTopicInput!]): [UNSNode!]!
"Get all UNSNodes published which have specific attribute name as 'propertyKeys'. \n Optionally Filter results with list of topics. \nIf topics are provided then optional boolean value 'excludeTopics' attribute can be set to true .\nto exclude the nodes which match the topics.\n"
getUnsNodesByProperty(propertyKeys: [String!]!, topics: [MQTTTopicInput!], excludeTopics: Boolean = false): [UNSNode!]!

"""
Get consolidation of sparkplugB nodes. MQTT wildcards are supportedEnsure that the topics are all in the SparkplugB namespace i.e. starts with 'spBv1.0/' Format of an SpB topic is spBv1.0/ <group_id> / <message_type> / <edge_node_id> / [<device_id>]
"""
getSpbNodes(topics: [MQTTTopicInput!]!): [UNSNode!]!
"""Get all the SPBNode by the provided metric name"""
getSpbNodesByMetric(metricNames: [String!]!): [SPBNode!]!
}

type SPBDataSet {
numOfColumns: Union!
columns: [String!]!
types: [String!]!
rows: [SPBDataSetRow!]!
}

type SPBDataSetRow {
elements: [SPBDataSetValue!]!
}

type SPBDataSetValue {
value: SPBPrimitive!
}

type SPBMetadata {
isMultiPart: Boolean
contentType: String
size: Union
seq: Union
fileName: String
fileType: String
md5: String
description: String
}

type SPBMetric {
name: String!
alias: Union
timestamp: DateTime!
datatype: String!
isHistorical: Boolean
isTransient: Boolean
isNull: Boolean
metadata: SPBMetadata
properties: SPBPropertySet
value: SPBPrimitiveBytesPayloadSPBDataSetSPBTemplate!
}

type SPBNode {
topic: String!
timestamp: DateTime!
metrics: [SPBMetric!]!
seq: Union!
uuid: ID
body: Base64
}

"""
Wrapper for primitive types in Sparkplug.: int, float, str, bool, list
Needed because GraphQL does not support str for unions.
Data is converted to its String representation for convenience.
Use the datatype to convert to actual type if needed
"""
type SPBPrimitive {
data: String!
}

union SPBPrimitiveBytesPayloadSPBDataSetSPBTemplate = SPBPrimitive | BytesPayload | SPBDataSet | SPBTemplate

union SPBPrimitiveSPBPropertySetSPBPropertySetList = SPBPrimitive | SPBPropertySet | SPBPropertySetList

type SPBPropertySet {
keys: [String!]!
values: [SPBPropertyValue!]!
}

type SPBPropertySetList {
propertysets: [SPBPropertySet!]!
}

type SPBPropertyValue {
isNull: Boolean
datatype: String!
value: SPBPrimitiveSPBPropertySetSPBPropertySetList!
}

type SPBTemplate {
version: String
metrics: [SPBMetric!]!
parameters: [SPBTemplateParameter!]
templateRef: String
isDefinition: Boolean
}

type SPBTemplateParameter {
name: String!
datatype: String!
value: SPBPrimitive!
}

type StreamingMessage {
Expand All @@ -112,4 +199,7 @@ type UNSNode {
payload: JSONPayload!
created: DateTime!
lastUpdated: DateTime!
}
}

"""Int 64 field since GraphQL doesn't support int64, only int 32"""
scalar Union
94 changes: 44 additions & 50 deletions 07_uns_graphql/src/uns_graphql/backend/graphdb.py
Original file line number Diff line number Diff line change
Expand Up @@ -18,14 +18,19 @@
Encapsulates integration with the Graph database database
"""

import asyncio
import logging

from neo4j import AsyncDriver, AsyncGraphDatabase, AsyncResult, Record
from neo4j import AsyncDriver, AsyncGraphDatabase, Record
from neo4j.exceptions import Neo4jError

from uns_graphql.graphql_config import GraphDBConfig

LOGGER = logging.getLogger(__name__)

MAX_RETRIES = 5
SLEEP_BTW_ATTEMPT = 10


class GraphDB:
"""
Expand All @@ -37,34 +42,45 @@ class GraphDB:
_graphdb_driver: AsyncDriver = None

@classmethod
async def get_graphdb_driver(cls) -> AsyncDriver:
async def get_graphdb_driver(cls, retry: int = 0) -> AsyncDriver:
"""
Returns the Neo4j async driver which is the connection to the database.
Validates if the current driver is still connected, and if not, creates a new connection.
The driver is cached and reused for subsequent requests to avoid creating multiple connections.
Parameters
----------
retry: int
Optional parameters to retry making a connection in case of errors.
The max number of retry is `MAX_RETRIES`
The time between attempts is `SLEEP_BTW_ATTEMPT` seconds
Returns:
AsyncDriver: The Neo4j async driver.
"""
LOGGER.debug("GraphDB driver requested")
if cls._graphdb_driver is None:
LOGGER.info("Creating a new GraphDB driver")
cls._graphdb_driver = AsyncGraphDatabase.driver(
uri=GraphDBConfig.conn_url, auth=(GraphDBConfig.user, GraphDBConfig.password)
)
try:
if cls._graphdb_driver is None:
LOGGER.info("Creating a new GraphDB driver")
cls._graphdb_driver = AsyncGraphDatabase.driver(
uri=GraphDBConfig.conn_url,
auth=(GraphDBConfig.user, GraphDBConfig.password),
database=GraphDBConfig.database,
)

await cls._graphdb_driver.verify_connectivity()
LOGGER.debug("GraphDB driver connectivity verified")
except Exception as ex:
except Neo4jError as ex:
LOGGER.error("Failed to verify GraphDB driver connectivity: %s", str(ex), stack_info=True, exc_info=True)
# In case of connectivity failure, close the existing driver and create a new one
await cls.release_graphdb_driver()
cls._graphdb_driver = AsyncGraphDatabase.driver(
uri=GraphDBConfig.conn_url, auth=(GraphDBConfig.user, GraphDBConfig.password)
)
await cls._graphdb_driver.verify_connectivity()
LOGGER.info("Reconnected to GraphDB driver")
if retry >= MAX_RETRIES:
LOGGER.error("No. of retries exceeded %s", str(MAX_RETRIES), stack_info=True, exc_info=True)
raise ex # Re-raise the exception after cleanup

await asyncio.sleep(SLEEP_BTW_ATTEMPT)
cls._graphdb_driver = await cls.get_graphdb_driver(retry + 1)
LOGGER.info("Trying to Reconnect to GraphDB driver")

return cls._graphdb_driver

Expand All @@ -79,19 +95,19 @@ async def release_graphdb_driver(cls):
try:
await cls._graphdb_driver.close()
LOGGER.info("GraphDB driver closed successfully")
except Exception as ex:
except Neo4jError as ex:
LOGGER.error("Error closing the GraphDB driver: %s", str(ex), stack_info=True, exc_info=True)
finally:
cls._graphdb_driver = None
else:
LOGGER.warning("Trying to close an already closed driver")

async def execute_read_query(self, query: str, *args, **kwargs) -> list[Record]: # -> list:
async def execute_read_query(self, query: str, *args, **kwargs) -> list[Record]:
"""
Executes a read (CQL) query with the provided positional and keyword parameters.
Executes a (CQL) query with the provided positional and keyword parameters.
Args:
query (str): The CQL query to execute.
query (str): The CQL query to execute. Using the auto commit feature for transaction
*args: Positional parameters for the CQL query.
**kwargs: Keyword parameters for the CQL query.
Expand All @@ -100,43 +116,21 @@ async def execute_read_query(self, query: str, *args, **kwargs) -> list[Record]:
"""

LOGGER.debug("Executing query: %s with args: %s and kwargs: %s", query, args, kwargs)
async with self.get_graphdb_driver().session() as session:
driver = await self.get_graphdb_driver()

async def read(read_tx, query: str, *args, **kwargs) -> list[Record]:
result = await read_tx.run(query, *args, **kwargs)
records: list[Record] = [record async for record in result]
return records

async with driver.session() as session:
try:
result: AsyncResult = await session.run(query, *args, **kwargs)
records: list[Record] = [record async for record in result]
records = await session.execute_read(read, query=query, *args, **kwargs) # noqa: B026

LOGGER.debug("Query executed successfully, retrieved records: %s", records)
return records
except Exception as ex:
LOGGER.error("Error executing query: %s", str(ex), stack_info=True, exc_info=True)
raise
finally:
result.aclose()

async def execute_write_query(self, query: str, *args, **kwargs):
"""
Executes a write (CQL) query with the provided positional and keyword parameters.
Supports transactional operations.
Args:
query (str): The CQL query to execute.
*args: Positional parameters for the CQL query.
**kwargs: Keyword parameters for the CQL query.
Returns:
list: The results of the query.
"""

LOGGER.debug("Executing write query: %s with args: %s and kwargs: %s", query, args, kwargs)
async with self.get_graphdb_driver().session() as session:
try:
async with session.begin_transaction() as tx:
result = await tx.run(query, *args, **kwargs)
await tx.commit()
records = [record async for record in result]
LOGGER.debug("Write query executed successfully, committed records: %s", records)
return records
except Exception as ex:
LOGGER.error("Error executing write query: %s", str(ex), stack_info=True, exc_info=True)
raise
finally:
result.aclose()
await session.close()
Loading

0 comments on commit 1c22896

Please sign in to comment.