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
A PowSyBl and Python integration based on GraalVM native image

PyPowSyBl The PyPowSyBl project gives access PowSyBl Java framework to Python developers. This Python integration relies on GraalVM to compile Java co

powsybl 23 Dec 14, 2022
Python project setup, updater, and launcher

pyLaunch Python project setup, updater, and launcher Purpose: Increase project productivity and provide features easily. Once installed as a git submo

DAAV, LLC 1 Jan 07, 2022
firefox session recovery

firefox session recovery

Ahmad Sadraei 5 Nov 29, 2022
OB_Template is a vault template reference for using Obsidian.

Obsidian Template OB_Template is a vault template reference for using Obsidian. If you've tested out Obsidian. and worked through the "Obsidian Help"

323 Dec 27, 2022
A Python wrapper for Matrix Synapse admin API

Synapse-admin-api-python A Python wrapper for Matrix Synapse admin API. Versioning This library now supports up to Synapse 1.45.0, any Admin API intro

Knugi 9 Sep 28, 2022
Emulate and Dissect MSF and *other* attacks

Need help in analyzing Windows shellcode or attack coming from Metasploit Framework or Cobalt Strike (or may be also other malicious or obfuscated code)? Do you need to automate tasks with simple scr

123 Dec 16, 2022
Covid-ml-predictors - COVID predictions using AI.

COVID Predictions This repo contains ML models to be trained on COVID-19 data from the UK, sourced off of Kaggle here. This uses many different ML mod

1 Jan 09, 2022
Generate your personal 8-bit avatars using Cellular Automata, a mathematical model that simulates life, survival, and extinction

Try the interactive demo here ✨ ✨ Sprites-as-a-Service is an open-source web application that allows you to generate custom 8-bit sprites using Cellul

Lj Miranda 265 Dec 26, 2022
A simple code for processing images to local binary pattern.

This figure is gotten from this link https://link.springer.com/chapter/10.1007/978-3-030-01449-0_24 LBP-Local-Binary-Pattern A simple code for process

Happy N. Monday 3 Feb 15, 2022
Cross-platform MachO/ObjC Static binary analysis tool & library. class-dump + otool + lipo + more

ktool Static Mach-O binary metadata analysis tool / information dumper pip3 install k2l Development is currently taking place on the @python3.10 branc

Kritanta 301 Dec 28, 2022
Script to work around some quirks of the blender obj importer

ObjFix 1.0 (WIP) Script to work around some quirks of the blender obj importer Installation Download this repo In Blender, press "Edit" on the top-bar

Red_3D 4 Nov 20, 2021
XHacks 2021 Startup Track Winner: Be Heard. Educate, Enact, Empower. No voice left behind. (backend)

Be Heard: X Hacks 2021 Submission Educate, Enact, Empower. No voice left behind. Inspiration To say 2020 was an eventful year would be an understateme

3 Jul 14, 2022
The only purpose of a byte-sized application is to help you create .desktop entry files for downloaded applications.

Turtle 🐢 The only purpose of a byte-sized application is to help you create .desktop entry files for downloaded applications. As of usual with elemen

TenderOwl 14 Dec 29, 2022
An implementation of multimap with per-item expiration backed up by Redis.

MultiMapWithTTL An implementation of multimap with per-item expiration backed up by Redis. Documentation: https://loggi.github.io/python-multimapwitht

Loggi 2 Jan 17, 2022
Type Persian without confusing words for yourself and others, in Adobe Connect

About In the Adobe Connect chat section, to type in Persian or Arabic, the written words will be confused and will be written and sent illegibly (This

Matin Najafi 23 Nov 26, 2021
Petuhlang is a joke-like language, based on Python.

Petuhlang is a joke-like language, based on Python. It updates builtins to make a new syntax based on operators rewrite.

DenyS 9 Jun 19, 2022
Minos-python - A framework which helps you create reactive microservices in Python

minos-python Summary [TODO] Packages minos-microservice-aggregate minos-microser

Minos Framework 380 Jan 04, 2023
Model synchronization from dbt to Metabase.

dbt-metabase Model synchronization from dbt to Metabase. If dbt is your source of truth for database schemas and you use Metabase as your analytics to

Mike Gouline 270 Jan 08, 2023
dta Convert Dict To Attributes!

dta (Dict to Attributes) dta is very small dict (or json) to attributes converter. It is only have 1 files and applied to every python versions.

Rukchad Wongprayoon 0 Dec 31, 2021