hikari.api.config
#
Core interface for Hikari's configuration dataclasses.
CacheComponents
#
Bases: Flag
Flags to control the cache components.
ALL
class-attribute
instance-attribute
#
ALL = (
GUILDS
| GUILD_CHANNELS
| MEMBERS
| ROLES
| INVITES
| EMOJIS
| PRESENCES
| VOICE_STATES
| MESSAGES
| ME
| DM_CHANNEL_IDS
| GUILD_STICKERS
| GUILD_THREADS
)
Fully enables the cache.
DM_CHANNEL_IDS
class-attribute
instance-attribute
#
Enables the DM channel IDs cache.
GUILD_CHANNELS
class-attribute
instance-attribute
#
Enables the guild channels cache.
GUILD_STICKERS
class-attribute
instance-attribute
#
Enables the guild stickers cache.
GUILD_THREADS
class-attribute
instance-attribute
#
Enables the guild threads cache.
VOICE_STATES
class-attribute
instance-attribute
#
Enables the voice states cache.
difference
#
Perform a set difference with the other set.
This will return all flags in this set that are not in the other value.
Equivalent to using the subtraction -
operator.
intersection
#
Return a combination of flags that are set for both given values.
Equivalent to using the "AND" &
operator.
is_disjoint
#
is_subset
#
Return whether another set contains this set or not.
Equivalent to using the "in" operator.
is_superset
#
Return whether this set contains another set or not.
none
#
none(*flags: Self) -> bool
Check if none of the given flags are part of this value.
Note
This is essentially the opposite of hikari.internal.enums.Flag.any
.
RETURNS | DESCRIPTION |
---|---|
bool
|
split
#
split() -> Sequence[Self]
Return a list of all defined atomic values for this flag.
Any unrecognised bits will be omitted for brevity.
The result will be a name-sorted typing.Sequence
of each member
symmetric_difference
#
Return a set with the symmetric differences of two flag sets.
Equivalent to using the "XOR" ^
operator.
For a ^ b
, this can be considered the same as (a - b) | (b - a)
.
HTTPSettings
#
Bases: ABC
Settings to control HTTP clients.
max_redirects
abstractmethod
property
#
Behavior for handling redirect HTTP responses.
If a int
, allow following redirects from 3xx
HTTP responses
for up to this many redirects. Exceeding this value will raise an
exception.
If None
, then disallow any redirects.
The default is to disallow this behavior for security reasons.
Generally, it is safer to keep this disabled. You may find a case in the future where you need to enable this if Discord change their URL without warning.
Note
This will only apply to the REST API. WebSockets remain unaffected by any value set here.
ssl
abstractmethod
property
#
ssl: SSLContext
SSL context to use.
This may be assigned a bool
or an ssl.SSLContext
object.
If assigned to True
, a default SSL context is generated by
this class that will enforce SSL verification. This is then stored in
this field.
If False
, then a default SSL context is generated by this
class that will NOT enforce SSL verification. This is then stored
in this field.
If an instance of ssl.SSLContext
, then this context will be used.
Warning
Setting a custom value here may have security implications, or may result in the application being unable to connect to Discord at all.
Warning
Disabling SSL verification is almost always unadvised. This is because your application will no longer check whether you are connecting to Discord, or to some third party spoof designed to steal personal credentials such as your application token.
There may be cases where SSL certificates do not get updated, and in this case, you may find that disabling this explicitly allows you to work around any issues that are occurring, but you should immediately seek a better solution where possible if any form of personal security is in your interest.
ProxySettings
#
Bases: ABC
Settings for configuring an HTTP-based proxy.
trust_env
abstractmethod
property
#
trust_env: bool
Toggle whether to look for a netrc
file or environment variables.
If True
, and no url
is given on this object, then
HTTP_PROXY
and HTTPS_PROXY
will be used from the environment
variables, or a netrc
file may be read to determine credentials.
If False
, then this information is instead ignored.
Note
For more details of using netrc
, visit:
https://www.gnu.org/software/inetutils/manual/html_node/The-_002enetrc-file.html