Hikari-arc

Latest version: v1.3.0

Safety actively analyzes 630450 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 1 of 3

1.3.0

- **Deprecate** `Client.set_startup_hook` and `Client.add_shutdown_hook`. These will be removed in `v2.0.0`. Use the newly added `Client.add_startup_hook` and `Client.add_shutdown_hook` instead.
- Add options with converters. These options do not exist on Discord's end, arc simply tries to convert a more primitive optiontype into the requested one, failing if it is not possible.
- Add new optiontypes with converters for `hikari.Member` and `hikari.Color`.
- Add `arc.OptionConverterFailureError` when a converter fails to convert an option value.
- Add support for injecting dependencies contextually to command callbacks, hooks, and error handlers via `Client.add_injection_hook` and `Client.remove_injection_hook`.
- Add support for multiple startup & shutdown hooks via `Client.add_startup_hook` and `Client.add_shutdown_hook` respectively.
- Inject dependencies by default into pre/post-execution hooks & error handlers.
- Fix client hooks being executed twice if a command is added to a plugin.
- Fix options mapping not taking name overrides into account.
- Bump alluka to `0.3+`.

1.2.1

- Fix `arc.utils.global_concurrency` missing a `limit` argument.
- Fix slash subcommands failing to resolve autodefer settings.

1.2.0

- Optimize command syncing by using bulk endpoints for global app commands as well, making it much faster.
- Improve command syncing error messages.
- Fix `Client.listen` and `Plugin.listen` failing to parse event types with generics from function signatures.

1.1.0

- Add `Client.create_task` to make it easier to create "fire and forget" tasks.
- Add `Client.is_started` and `Client.wait_until_started` for more convenient lifecycle management.
- Add the ability to pass an already existing injector instance to `Client` via the `injector=` kwarg. If not passed, a new injector will be created by default, like before.
- Set the client as a type dependency upon instantiation.
- Stabilize `Context.issued_response`. This property returns a boolean that is `True` if the underlying interaction has already received an initial response.
- Fix `hikari.User | hikari.Role | None` not being parsed as mentionable option.
- Fix edgecase where options defaulted to `None` would be ignored in Python 3.10.

1.0.0

This marks the **first stable release** of `arc`, meaning that from this point on, the project follows [semantic versioning](https://semver.org/), and no breaking changes will happen (until an eventual 2.0).

- Add [loops](./guides/loops.md). Loops can be used to repeatedly call a given coroutine function with a specific interval or cron set.
- Add [concurrency limiters](./guides/concurrency_limiting.md). Concurrency limiters can be used to prevent users from invoking a command that already has a specific amount of instances running.
- Add `arc.StartedEvent` and `arc.StoppingEvent` to gateway clients to enable managing lifecycle via events.
- Fix command groups always being republished when command syncing.

In additon to these changes, the [documentation](https://arc.hypergonial.com) got a major refresh, adding & extending guides where needed.

0.6.0

- Add `Context.get_option()` to access options outside the command callback in a type-safe manner.
- Add `Client.walk_commands()` and `Plugin.walk_commands()` to iterate over all commands & subcommands of a given type in a type-safe manner.
- Add `CallableCommandProto.display_name`, `SlashCommand.make_mention()`, `SlashSubCommand.make_mention()`.
- Change `Context.respond_with_builder()` to attempt a followup message when the interaction has an initial response and a message builder was passed.
- Remove the `acquire()` method from `LimiterProto` to make it easier to implement custom limiters.
- Split `arc.utils.hooks.RateLimiter` into `arc.utils.RateLimiter` and `arc.utils.hooks.LimiterHook`. This allows `arc.utils.RateLimiter` to be used independently of an arc context object.

Page 1 of 3

© 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.