Repository: hikari-py/hikari
Pull request #1349 (2022-11-08 13:01:27)

Bump mypy from 0.982 to 0.990
Bumps [mypy](https://github.com/python/mypy) from 0.982 to 0.990.
<details>
<summary>Commits</summary>
<ul>
<li><a href="https://github.com/python/mypy/commit/b71dc3da0d8c6a4e116eef98a7ff8591145338be"><code>b71dc3d</code></a> Remove +dev from version</li>
<li><a href="https://github.com/python/mypy/commit/719cef94273ba7ed09a959ee3ea6915ec13faf08"><code>719cef9</code></a> Add support for exception groups and except* (<a href="https://github-redirect.dependabot.com/python/mypy/issues/14020">#14020</a>)</li>
<li><a href="https://github.com/python/mypy/commit/91b6fc32322d89c0c171090ad1c6beac467832ed"><code>91b6fc3</code></a> Fix crash on nested unions in recursive types (<a href="https://github-redirect.dependabot.com/python/mypy/issues/14007">#14007</a>)</li>
<li><a href="https://github.com/python/mypy/commit/42a4c69789d855e2a07a5826b4e40331bc407e95"><code>42a4c69</code></a> Make TryStar not crash (<a href="https://github-redirect.dependabot.com/python/mypy/issues/13991">#13991</a>)</li>
<li><a href="https://github.com/python/mypy/commit/5fad1ac4a7b8b5048a8a10934dba9664d410c6e2"><code>5fad1ac</code></a> Warn on invalid <code>*args</code> and <code>**kwargs</code> with <code>ParamSpec</code> (<a href="https://github-redirect.dependabot.com/python/mypy/issues/13892">#13892</a>)</li>
<li><a href="https://github.com/python/mypy/commit/184add99f4ebe35c3e0a5b83fad38b93da443d8c"><code>184add9</code></a> Revert sum literal integer change (<a href="https://github-redirect.dependabot.com/python/mypy/issues/13961">#13961</a>)</li>
<li><a href="https://github.com/python/mypy/commit/74e0dff0b0ee3636ad43000f1ee785eaef6d2d8f"><code>74e0dff</code></a> Add hidden options to disable bytes promotion (<a href="https://github-redirect.dependabot.com/python/mypy/issues/13952">#13952</a>)</li>
<li><a href="https://github.com/python/mypy/commit/ec6d9d974b5ae7b985fd5c1585d54eb0f86752f5"><code>ec6d9d9</code></a> [mypyc] Fix ircheck if register is initialized through LoadAddress (<a href="https://github-redirect.dependabot.com/python/mypy/issues/13944">#13944</a>)</li>
<li><a href="https://github.com/python/mypy/commit/8ef701d03baeb2d714bd40f94d0037699c9face2"><code>8ef701d</code></a> Use <code>3.11</code> instead of <code>3.11-dev</code> (<a href="https://github-redirect.dependabot.com/python/mypy/issues/13945">#13945</a>)</li>
<li><a href="https://github.com/python/mypy/commit/ec149da93d7a5557d0bb2f2955f5d88a684148a1"><code>ec149da</code></a> [mypyc] Fix glue methods with native int types (<a href="https://github-redirect.dependabot.com/python/mypy/issues/13939">#13939</a>)</li>
<li>Additional commits viewable in <a href="https://github.com/python/mypy/compare/v0.982...v0.990">compare view</a></li>
</ul>
</details>
<br />


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


Patch:
diff --git a/changes/1355.feature.md b/changes/1355.feature.md
new file mode 100644
index 00000000..bd19256e
--- /dev/null
+++ b/changes/1355.feature.md
@@ -0,0 +1,1 @@
+Add new `UserFlag.ACTIVE_DEVELOPER`.
diff --git a/dev-requirements/build.txt b/dev-requirements/build.txt
index 0f8168c8..433ca3c9 100644
--- a/dev-requirements/build.txt
+++ b/dev-requirements/build.txt
@@ -1,2 +1,2 @@
 setuptools>=65.2.0
-wheel==0.37.1
+wheel==0.38.4
diff --git a/dev-requirements/mypy.txt b/dev-requirements/mypy.txt
index 2daf5395..6e870442 100644
--- a/dev-requirements/mypy.txt
+++ b/dev-requirements/mypy.txt
@@ -1,1 +1,1 @@
-mypy==0.982
+mypy==0.990
diff --git a/dev-requirements/pdoc.txt b/dev-requirements/pdoc.txt
index 6ea5288b..8704d43d 100644
--- a/dev-requirements/pdoc.txt
+++ b/dev-requirements/pdoc.txt
@@ -1,2 +1,2 @@
 pdoc3==0.10.0
-sphobjinv==2.2.2
+sphobjinv==2.3
diff --git a/dev-requirements/pyright.txt b/dev-requirements/pyright.txt
index bd16c09e..ebf89c65 100644
--- a/dev-requirements/pyright.txt
+++ b/dev-requirements/pyright.txt
@@ -1,1 +1,1 @@
-pyright==1.1.278
+pyright==1.1.279
diff --git a/hikari/impl/special_endpoints.py b/hikari/impl/special_endpoints.py
index b5997773..6ee1d156 100644
--- a/hikari/impl/special_endpoints.py
+++ b/hikari/impl/special_endpoints.py
@@ -107,7 +107,7 @@ async def __call__(
         ) -> typing.Union[None, data_binding.JSONObject, data_binding.JSONArray]:
             ...
 
-    class _ThreadDeserailzeSig(typing.Protocol["_GuildThreadChannelT"]):
+    class _ThreadDeserializeSig(typing.Protocol["_GuildThreadChannelCovT"]):
         def __call__(
             self,
             payload: data_binding.JSONObject,
@@ -115,7 +115,7 @@ def __call__(
             *,
             guild_id: undefined.UndefinedOr[snowflakes.Snowflake] = undefined.UNDEFINED,
             member: undefined.UndefinedNoneOr[channels.ThreadMember] = undefined.UNDEFINED,
-        ) -> _GuildThreadChannelT:
+        ) -> _GuildThreadChannelCovT:
             raise NotImplementedError
 
     # Hack around used to avoid recursive generic types leading to type checker issues in builders
@@ -125,7 +125,8 @@ def add_component(self: _T, component: special_endpoints.ComponentBuilder, /) ->
 
 
 _ContainerProtoT = typing.TypeVar("_ContainerProtoT", bound="_ContainerProto")
-_GuildThreadChannelT = typing.TypeVar("_GuildThreadChannelT", bound=channels.GuildThreadChannel, covariant=True)
+_GuildThreadChannelT = typing.TypeVar("_GuildThreadChannelT", bound=channels.GuildThreadChannel)
+_GuildThreadChannelCovT = typing.TypeVar("_GuildThreadChannelCovT", bound=channels.GuildThreadChannel, covariant=True)
 
 
 @typing.final
@@ -837,7 +838,7 @@ class GuildThreadIterator(iterators.BufferedLazyIterator[_GuildThreadChannelT]):
 
     def __init__(
         self,
-        deserialize: _ThreadDeserailzeSig[_GuildThreadChannelT],
+        deserialize: _ThreadDeserializeSig[_GuildThreadChannelCovT],
         entity_factory: entity_factory_.EntityFactory,
         request_call: _RequestCallSig,
         route: routes.CompiledRoute,
@@ -853,7 +854,7 @@ def __init__(
         self._request_call = request_call
         self._route = route
 
-    async def _next_chunk(self) -> typing.Optional[typing.Generator[_GuildThreadChannelT, typing.Any, None]]:
+    async def _next_chunk(self) -> typing.Optional[typing.Generator[_GuildThreadChannelCovT, typing.Any, None]]:
         if not self._has_more:
             return None
 
diff --git a/hikari/permissions.py b/hikari/permissions.py
index ef8f06a6..45e846fa 100644
--- a/hikari/permissions.py
+++ b/hikari/permissions.py
@@ -26,8 +26,6 @@
 
 __all__: typing.Sequence[str] = ("Permissions",)
 
-import functools
-import operator
 import typing
 
 from hikari.internal import enums
@@ -285,4 +283,8 @@ def all_permissions(cls) -> Permissions:
         Permissions
             A permissions instance with all the known permissions.
         """
-        return functools.reduce(operator.ior, Permissions)
+        all_perms = Permissions.NONE
+        for perm in Permissions:
+            all_perms |= perm
+
+        return all_perms
diff --git a/hikari/users.py b/hikari/users.py
index 6b15a39e..f4d7c566 100644
--- a/hikari/users.py
+++ b/hikari/users.py
@@ -102,6 +102,9 @@ class UserFlag(enums.Flag):
     BOT_HTTP_INTERACTIONS = 1 << 19
     """Bot uses only HTTP interactions and is shown in the active member list."""
 
+    ACTIVE_DEVELOPER = 1 << 22
+    """User is an active bot developer."""
+
 
 @typing.final
 class PremiumType(int, enums.Enum):


Test patch:
diff --git a/tests/hikari/impl/test_entity_factory.py b/tests/hikari/impl/test_entity_factory.py
index d29aaa7f..decdc3a3 100644
--- a/tests/hikari/impl/test_entity_factory.py
+++ b/tests/hikari/impl/test_entity_factory.py
@@ -216,7 +216,7 @@ def user_payload():
         "discriminator": "6127",
         "bot": True,
         "system": True,
-        "public_flags": int(user_models.UserFlag.EARLY_VERIFIED_DEVELOPER),
+        "public_flags": int(user_models.UserFlag.EARLY_VERIFIED_DEVELOPER | user_models.UserFlag.ACTIVE_DEVELOPER),
     }
 
 
@@ -6324,7 +6324,7 @@ def test_deserialize_user(self, entity_factory_impl, mock_app, user_payload):
         assert user.discriminator == "6127"
         assert user.is_bot is True
         assert user.is_system is True
-        assert user.flags == user_models.UserFlag.EARLY_VERIFIED_DEVELOPER
+        assert user.flags == user_models.UserFlag.EARLY_VERIFIED_DEVELOPER | user_models.UserFlag.ACTIVE_DEVELOPER
         assert isinstance(user, user_models.UserImpl)
 
     def test_deserialize_user_with_unset_fields(self, entity_factory_impl, mock_app, user_payload):