A type based dependency injection framework for Python 3.9+

Related tags

MiscellaneousAlluka
Overview

Alluka

A type based dependency injection framework for Python 3.9+.

Installation

You can install Alluka from PyPI using the following command in any Python 3.9 or above environment.

python -m pip install -U Alluka

Support

A support channel can be found for this repository under the "Tanjun & Tomadachi" category in the following guild invite.

Contributing

Before contributing you should read through the contributing guidelines and the code of conduct

Comments
  • Bump black from 22.10.0 to 22.12.0

    Bump black from 22.10.0 to 22.12.0

    Bumps black from 22.10.0 to 22.12.0.

    Release notes

    Sourced from black's releases.

    22.12.0

    Preview style

    • Enforce empty lines before classes and functions with sticky leading comments (#3302)
    • Reformat empty and whitespace-only files as either an empty file (if no newline is present) or as a single newline character (if a newline is present) (#3348)
    • Implicitly concatenated strings used as function args are now wrapped inside parentheses (#3307)
    • Correctly handle trailing commas that are inside a line's leading non-nested parens (#3370)

    Configuration

    • Fix incorrectly applied .gitignore rules by considering the .gitignore location and the relative path to the target file (#3338)
    • Fix incorrectly ignoring .gitignore presence when more than one source directory is specified (#3336)

    Parser

    • Parsing support has been added for walruses inside generator expression that are passed as function args (for example, any(match := my_re.match(text) for text in texts)) (#3327).

    Integrations

    • Vim plugin: Optionally allow using the system installation of Black via let g:black_use_virtualenv = 0(#3309)
    Changelog

    Sourced from black's changelog.

    22.12.0

    Preview style

    • Enforce empty lines before classes and functions with sticky leading comments (#3302)
    • Reformat empty and whitespace-only files as either an empty file (if no newline is present) or as a single newline character (if a newline is present) (#3348)
    • Implicitly concatenated strings used as function args are now wrapped inside parentheses (#3307)
    • Correctly handle trailing commas that are inside a line's leading non-nested parens (#3370)

    Configuration

    • Fix incorrectly applied .gitignore rules by considering the .gitignore location and the relative path to the target file (#3338)
    • Fix incorrectly ignoring .gitignore presence when more than one source directory is specified (#3336)

    Parser

    • Parsing support has been added for walruses inside generator expression that are passed as function args (for example, any(match := my_re.match(text) for text in texts)) (#3327).

    Integrations

    • Vim plugin: Optionally allow using the system installation of Black via let g:black_use_virtualenv = 0(#3309)
    Commits
    • 2ddea29 Prepare release 22.12.0 (#3413)
    • 5b1443a release: skip bad macos wheels for now (#3411)
    • 9ace064 Bump peter-evans/find-comment from 2.0.1 to 2.1.0 (#3404)
    • 19c5fe4 Fix CI with latest flake8-bugbear (#3412)
    • d4a8564 Bump sphinx-copybutton from 0.5.0 to 0.5.1 in /docs (#3390)
    • 2793249 Wordsmith current_style.md (#3383)
    • d97b789 Remove whitespaces of whitespace-only files (#3348)
    • c23a5c1 Clarify that Black runs with --safe by default (#3378)
    • 8091b25 Correctly handle trailing commas that are inside a line's leading non-nested ...
    • ffaaf48 Compare each .gitignore found with an appropiate relative path (#3338)
    • Additional commits viewable in compare view

    Dependabot compatibility score

    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 commands and options

    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)
    dependencies python 
    opened by dependabot[bot] 6
  • Bump pyright from 1.1.282 to 1.1.283

    Bump pyright from 1.1.282 to 1.1.283

    Bumps pyright from 1.1.282 to 1.1.283.

    Commits

    Dependabot compatibility score

    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 commands and options

    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)
    dependencies python 
    opened by dependabot[bot] 6
  • Bump flake8-html from 0.4.2 to 0.4.3

    Bump flake8-html from 0.4.2 to 0.4.3

    Bumps flake8-html from 0.4.2 to 0.4.3.

    Release notes

    Sourced from flake8-html's releases.

    0.4.3

    What's Changed

    New Contributors

    Full Changelog: https://github.com/lordmauve/flake8-html/compare/v0.4.2...v0.4.3

    Changelog

    Sourced from flake8-html's changelog.

    ======= History

    Commits
    • 621e14a CI: Fix Windows builds
    • 2d97597 Bump version to 0.4.3
    • b935f0b Add support for flake8 version >= 5.0.0. Fix test case to run with recent ves...
    • 1bd0718 Update wheel from 0.37.1 to 0.38.4
    • a37c52c Show interpreter version in GHA matrix
    • See full diff in compare view

    Dependabot compatibility score

    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 commands and options

    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)
    dependencies python 
    opened by dependabot[bot] 6
  • Bump piped from `8a38689` to `f7ba03d`

    Bump piped from `8a38689` to `f7ba03d`

    Bumps piped from 8a38689 to f7ba03d.

    Commits

    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 commands and options

    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)
    dependencies submodules 
    opened by dependabot[bot] 3
  • Bump pyright from 1.1.263 to 1.1.278

    Bump pyright from 1.1.263 to 1.1.278

    Bumps pyright from 1.1.263 to 1.1.278.

    Commits

    Dependabot compatibility score

    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 commands and options

    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)
    dependencies python 
    opened by dependabot[bot] 3
  • Bump mkdocstrings[python] from 0.18.0 to 0.18.1

    Bump mkdocstrings[python] from 0.18.0 to 0.18.1

    Bumps mkdocstrings[python] from 0.18.0 to 0.18.1.

    Changelog

    Sourced from mkdocstrings[python]'s changelog.

    0.18.1 - 2022-03-01

    Compare with 0.18.0

    Bug Fixes

    • Don't preemptively register identifiers as anchors (c7ac043 by Timothée Mazzucotelli).
    Commits
    • 61c1666 chore: Prepare release 0.18.1
    • 824fbeb ci: Fix mypy warning
    • c7ac043 fix: Don't preemptively register identifiers as anchors
    • 5867162 docs: Update note about supported docstring options
    • d8d7b70 docs: Fix typing in recipes
    • 828d51f docs: Use new handler options
    • 484522d chore: Template upgrade
    • 13d696d docs: Improve code reference recipe
    • a943967 docs: Fix indentation
    • 526bb6c docs: Update README
    • Additional commits viewable in compare view

    Dependabot compatibility score

    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 commands and options

    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)
    dependencies python 
    opened by dependabot[bot] 3
  • Bump pyright from 1.1.263 to 1.1.266

    Bump pyright from 1.1.263 to 1.1.266

    Bumps pyright from 1.1.263 to 1.1.266.

    Commits

    Dependabot compatibility score

    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 commands and options

    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)
    dependencies python 
    opened by dependabot[bot] 2
  • Bump pyright from 1.1.231 to 1.1.232

    Bump pyright from 1.1.231 to 1.1.232

    Bumps pyright from 1.1.231 to 1.1.232.

    Commits

    Dependabot compatibility score

    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 commands and options

    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)
    dependencies python 
    opened by dependabot[bot] 2
  • Bump pyright from 1.1.225 to 1.1.226

    Bump pyright from 1.1.225 to 1.1.226

    Bumps pyright from 1.1.225 to 1.1.226.

    Commits

    Dependabot compatibility score

    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 commands and options

    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)
    dependencies python 
    opened by dependabot[bot] 2
  • Bump flit from 3.6.0 to 3.7.0

    Bump flit from 3.6.0 to 3.7.0

    Bumps flit from 3.6.0 to 3.7.0.

    Changelog

    Sourced from flit's changelog.

    Release history

    Version 3.7

    • Support for :ref:external data files <pyproject_toml_external_data> such as man pages or Jupyter extension support files (:ghpull:510).
    • Project names are now lowercase in wheel filenames and .dist-info folder names, in line with the specifications (:ghpull:498).
    • Improved support for :doc:bootstrapping <bootstrap> a Python environment, e.g. for downstream packagers (:ghpull:511). flit_core.wheel is usable with python -m to create wheels before the build <https://pypi.org/project/build/>_ tool is available, and flit_core sdists also include a script to install itself from a wheel before installer <https://pypi.org/project/installer/>_ is available.
    • Use newer importlib APIs, fixing some deprecation warnings (:ghpull:499).

    Version 3.6

    • flit_core now bundles the tomli <https://pypi.org/project/tomli/>_ TOML parser library (version 1.2.3) to avoid a circular dependency between flit_core and tomli (:ghpull:492). This means flit_core now has no dependencies except Python itself, both at build time and at runtime, simplifying :doc:bootstrapping <bootstrap>.

    Version 3.5.1

    • Fix development installs with flit install --symlink and --pth-file, which were broken in 3.5.0, especially for packages using a src folder (:ghpull:472).

    Version 3.5

    • You can now use Flit to distribute a module or package inside a namespace package (as defined by :pep:420). To do this, specify the import name of the concrete, inner module you are packaging - e.g. name = "sphinxcontrib.foo"
      • either in the [project] table, or under [tool.flit.module] if you want to use a different name on PyPI (:ghpull:468).
    • Flit no longer generates a setup.py file in sdists (.tar.gz packages) by default (:ghpull:462). Modern packaging tools don't need this. You can use the --setup-py flag to keep adding it for now, but this will probably be removed at some point in the future.
    • Fixed how flit init handles authors' names with non-ASCII characters (:ghpull:460).
    • When flit init generates a LICENSE file, the new pyproject.toml now references it (:ghpull:467).

    ... (truncated)

    Commits
    • bdafdfe Bump version: 3.6.0 → 3.7.0
    • 621075d Merge pull request #528 from pypa/relnotes-3.7
    • fed7a7e Release notes for 3.7
    • ced1ef7 Merge pull request #511 from jameshilliard/bootstrap
    • a63f42b Merge pull request #499 from pypa/importlib-warning
    • f06839b Merge branch 'main' into bootstrap
    • 4794dce Merge pull request #510 from pypa/data-dir
    • 08ac42d Reword docstring for walk_data_dir about output format
    • 9112376 Merge pull request #526 from blink1073/patch-1
    • 8360b64 ignore push events on other branchs
    • Additional commits viewable in compare view

    Dependabot compatibility score

    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 commands and options

    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)
    dependencies python 
    opened by dependabot[bot] 2
  • Bump piped from `8a38689` to `4ce6d09`

    Bump piped from `8a38689` to `4ce6d09`

    Bumps piped from 8a38689 to 4ce6d09.

    Commits

    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 commands and options

    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)
    dependencies submodules 
    opened by dependabot[bot] 1
  • Generic class for declaring injected callback in typehint

    Generic class for declaring injected callback in typehint

    Summary

    Checklist

    • [ ] I have run nox and all the pipelines have passed.
    • [ ] I have made unittests according to the code I have added/modified/deleted.

    Related issues

    opened by FasterSpeeding 1
  • Add a manual injection declarer + optimise DI

    Add a manual injection declarer + optimise DI

    Summary

    Checklist

    • [ ] I have run nox and all the pipelines have passed.
    • [ ] I have made unittests according to the code I have added/modified/deleted.

    Related issues

    opened by FasterSpeeding 0
  • Add dev 3.12 support

    Add dev 3.12 support

    Summary

    Checklist

    • [ ] I have run nox and all the pipelines have passed.
    • [ ] I have made unittests according to the code I have added/modified/deleted.

    Related issues

    opened by FasterSpeeding 0
  • Add a system for having a context based local DI client

    Add a system for having a context based local DI client

    Summary

    Checklist

    • [ ] I have run nox and all the pipelines have passed.
    • [ ] I have made unittests according to the code I have added/modified/deleted.

    Related issues

    opened by FasterSpeeding 1
  • FR: Inject without manipulating the signature

    FR: Inject without manipulating the signature

    Some use-cases may require injections to be dynamic, the current approach does not allow this.

    The ideal usage would be

    @client.as_self_injecting_idk
    async def callback(
        parameter: MyType
    ):
        ...
    
    callback.set_injection("parameter", alluka.InjectedType(MyType))
    
    opened by thesadru 0
Releases(v0.1.3)
  • v0.1.3(Nov 12, 2022)

    0.1.3 - 2022-11-12

    Added

    • alluka.abc.Client is now set as a type dependency by default.

    Changed

    • Renamed AsyncOnlyError to SyncOnlyError (AsyncOnlyError has been kept as a deprecated alias).
    • Relaxed typing around DI for async callbacks to allow for returning a union of Coroutine[Any, Any, T] | T.

    Fixed

    • Don't error on async callbacks which return a coroutine after being awaited during DI when assertions are enabled.

    Removed

    • The project metadata dunder attributes from [alluka][]. importlib.metadata should be used to get this metadata instead.
    Source code(tar.gz)
    Source code(zip)
  • v0.1.2(Jul 6, 2022)

    0.1.2 - 2022-07-06

    Changed

    • The optional introspect_annotations parameter for alluka.Client.__init__ is now keyword only.
    • tanjun.abc.Client is now a real abc.ABC.

    Deprecated

    • alluka.abc.Undefined and alluka.abc.UNDEFINED for removal in v0.2.0 as these will no-longer be used.
    • get_type_dependency and get_cached_result returning UNDEFINED as the default when no default is passed will be replaced by a KeyError raise in v0.2.0.
    Source code(tar.gz)
    Source code(zip)
  • v0.1.1(Mar 20, 2022)

  • v0.1.0(Feb 25, 2022)

    0.1.0 - 2022-02-25

    All of the 0.1.0 entries are relative to the feature set exposed while this was a part of Tanjun.

    Added

    • Support for synchronous dependency injection (this comes with AsyncOnlyError)
    • Abstract interface for the client with limited functionality.
    • call_with_di and call_with_async_di to alluka.abc.Context as a shorthand for executing a callback with that context.
    • call_with_di, call_with_async_di, call_with_ctx and call_with_ctx_async methods to the injection client for executing callbacks with DI.
    • Support for inferring the type of a parameter from its type hint when no type or callback is explicitly provided.
    • Support for using typing.Annotated to declare parameter DI. This takes two forms:
      • parameter: alluka.Inject[Type] to infer specifically a type dependency.
      • parameter: typing.Annotated(Type, alluka.inject(type=.../callback=...)).

    Changed

    • Passed keyword arguments are now prioritised over dependency injection.

    Removed

    • The public CallackDescriptor and TypeDescriptor classes as callbacks are now processed within the client and any necessary caching is kept internal.
    Source code(tar.gz)
    Source code(zip)
Owner
Lucina
Stuck in a back alley being bitten by snakes and getting tetanus from rusty nails.
Lucina
Automated rop chain generation

This is the accompanying code to the blog post talking about automated rop chain generation. Build the test file with: make Install the dependencies:

Christopher Roberts 14 Nov 22, 2022
Solcast Integration for Home Assistant

Solcast Solar Home Assistant(https://www.home-assistant.io/) Component This custom component integrates the Solcast API into Home Assistant. Modified

Greg 45 Dec 20, 2022
This tool allows you to do goole dorking much easier

This tool allows you to do goole dorking much easier

Steven 8 Mar 06, 2022
A feed generator. Currently supports generating RSS feeds from Google, Bing, and Yahoo news.

A feed generator. Currently supports generating RSS feeds from Google, Bing, and Yahoo news.

Josh Cardenzana 0 Dec 13, 2021
List of all D&D 5e monsters: WotC + popular third-party sourcebooks

Xio's Guide to Monsters If you're a DM like me, and you have multiple sources of D&D 5e monsters that include WotC as well as third-party suppliers, y

20 Jan 06, 2023
SysCFG R/W Utility written in Swift

MagicCFG SysCFG R/W Utility written in Swift MagicCFG is one of our first, successful applications that we launched last year. The app makes it possib

Jan Fabel 82 Aug 08, 2022
Python API for HotBits random data generator

HotBits Python API Python API for HotBits random data generator. Description This project is random data generator. It uses is HotBits API web service

Filip Š 2 Sep 11, 2020
A python script based on OpenCV-Python, you can automatically hang up the Destiny 2 Throne to get the Dawning Essence.

A python script based on OpenCV-Python, you can automatically hang up the Destiny 2 Throne to get the Dawning Essence.

1 Dec 19, 2021
An AI-powered device to stop people from stealing my packages.

Package Theft Prevention Device An AI-powered device to stop people from stealing my packages. Installation To install on a raspberry pi, clone the re

rydercalmdown 157 Nov 24, 2022
A module to develop and apply old-style links

Old-Linkage-Dev (OLD) Old Linkage Development is a module to develop and apply old-style links. Old-style links stand for some traditional or conventi

Tarcadia 2 Dec 04, 2021
This suite consists of two different scripts, made to automate attacks against NoSQL databases.

NoSQL-Attack-Suite This suite consists of two different scripts, made to automate attacks against NoSQL databases. The first one looks for a NoSQL Aut

16 Dec 26, 2022
Badge-Link-Creater 'For more beautiful profiles.'

Badge-Link-Creater 'For more beautiful profiles.' Ready Badges Prepares the codes of the previously prepared badges for you. Note Click here for more

Mücahit Gündüz 9 Oct 19, 2022
Script to quickly get the metrics from Github repos to analyze.

commit-prefix-analysis Script to quickly get the metrics from Github repos to analyze. Setup Install the Github CLI. You'll know its working when runn

David Carpenter 1 Dec 17, 2022
Eros is an expiremental programming language built using simple Python code.

Eros is an expiremental programming language built using simple Python code. Featuring an easy syntax and unique features like type slicing, the language remains an expirement that grows in down time

zxro 2 Nov 21, 2021
Python for downloading model data (HRRR, RAP, GFS, NBM, etc.) from NOMADS, NOAA's Big Data Program partners (Amazon, Google, Microsoft), and the University of Utah Pando Archive System.

Python for downloading model data (HRRR, RAP, GFS, NBM, etc.) from NOMADS, NOAA's Big Data Program partners (Amazon, Google, Microsoft), and the University of Utah Pando Archive System.

Brian Blaylock 194 Jan 02, 2023
A program made in PYTHON🐍 that automatically performs data insertions into a POSTGRES database 🐘 , using as base a .CSV file 📁 , useful in mass data insertions

A program made in PYTHON🐍 that automatically performs data insertions into a POSTGRES database 🐘 , using as base a .CSV file 📁 , useful in mass data insertions.

Davi Galdino 1 Oct 17, 2022
Python flexible slugify function

Python flexible slugify function

Dmitry Voronin 471 Dec 20, 2022
Simple GUI menu for micropython using a rotary encoder and basic display.

Micropython encoder based menu This is a simple menu system written in micropython. It uses a switch, a rotary encoder and an OLED display.

80 Jan 07, 2023
Laurence Billingham 1 Feb 16, 2022
The refactoring tutorial I wrote for PyConDE 2022. You can also work through the exercises on your own.

Refactoring 101 planet images by Justin Nichol on opengameart.org CC-BY 3.0 Goal of this Tutorial In this tutorial, you will refactor a space travel t

Kristian Rother 9 Jun 10, 2022