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
Web3 Solidity Connector

With this project, you can compile your sol files and create new transactions including creating contract and calling the state changer functions. You can integrate integrate your sol files with Pyth

Fethi Tekyaygil 3 Oct 09, 2022
Python wrapper around Apple App Store Api

App Store Connect Api This is a Python wrapper around the Apple App Store Api : https://developer.apple.com/documentation/appstoreconnectapi So far, i

123 Jan 06, 2023
A simple but flexible plugin system for Python.

PluginBase PluginBase is a module for Python that enables the development of flexible plugin systems in Python. Step 1: from pluginbase import PluginB

Armin Ronacher 1k Dec 16, 2022
LSO, also known as Linux Swap Operator, is a software with both GUI and terminal versions that you can manage the Swap area for Linux operating systems.

LSO - Linux Swap Operator Türkçe - LSO Nedir? LSO, diğer adıyla Linux Swap Operator Linux işletim sistemleri için Swap alanını yönetebileceğiniz hem G

Eren İnce 4 Feb 09, 2022
If Google News had a Python library

pygooglenews If Google News had a Python library Created by Artem from newscatcherapi.com but you do not need anything from us or from anyone else to

Artem Bugara 1.1k Jan 08, 2023
This repo created to complete the task HACKTOBER 2021, contribute now and get your special T-Shirt & Sticker. TO SUPPORT OWNER PLEASE PRESS STAR BUTTON

❤ THIS REPO WILL CLOSED IN 31 OCT 00:00 ❤ This repository will automatically assign the hacktoberfest and hacktoberfest-accepted labels to all submitt

Rajendra Rakha 307 Dec 27, 2022
Skip spotify ads by automatically restarting application when ad comes

SpotiByeAds No one likes interruptions! Don't you hate it when you're listening to your favorite jazz track or your EDM playlist and an ad for Old Spi

Partho 287 Dec 29, 2022
Job Guy Backend

جاب‌گای چیست؟ اونجا وضعیت چطوریه؟ یه سوال به همین کلیت و ابهام معمولا وقتی برای یه شرکت رزومه می‌فرستیم این سوال کلی و بزرگ برای همه پیش میاد.اونجا وض

Jobguy.work 217 Dec 25, 2022
⚡KiCad library containing footprints and symbols for inductive analog keyboard switches

Inductive Analog Switches This library contains footprints and symbols for inductive analog keyboard switches for use with the Texas Instruments LDC13

Elias Sjögreen 3 Jun 30, 2022
Reference python implementation of Chia pool operations for pool operators

This repository provides a sample server written in python, which is meant to server as a basis for a Chia Pool. While this is a fully functional implementation, it requires some work in scalability

Chia Network 451 Dec 13, 2022
urlwatch is intended to help you watch changes in webpages and get notified of any changes.

urlwatch is intended to help you watch changes in webpages and get notified (via e-mail, in your terminal or through various third party services) of any changes.

Thomas Perl 2.5k Jan 08, 2023
dragmap-meth: Fast and accurate aligner for bisulfite sequencing reads using dragmap

dragmap_meth (dragmap_meth.py) Alignment of BS-Seq reads using dragmap. Intro This works for single-end reads and for paired-end reads from the direct

Shaojun Xie 3 Jul 14, 2022
ABT aka Animated Background Tool is a windows only python program that makes it that you can have animated background.

ABT ABT aka Animated Background Tool is a windows only python program that makes it that you can have animated background. 𝓡𝓔𝓐𝓓 𝓜𝓔, An Important

Yeeterboi4 2 Jul 16, 2022
A few of my adventures with Devito.

Devito-playbox A few of my adventures with Devito. This repository contains a few notebooks and scripts that will lead me in the road of learning this

Átila Saraiva Quintela Soares 1 Feb 08, 2022
Catalogue CRUD Application

This Python program creates a relational SQL database hosted on the Snowflake platform, then opens a CRUD GUI to manipulate and view the data. In this application, it is used as a book catalogue. CUR

0 Dec 13, 2022
Simple Python-based web application to allow UGM students to fill their QR presence list without having another device in hand.

Praesentia Praesentia is a simple Python-based web application to allow UGM students to fill their QR presence list without having another device in h

loncat 20 Sep 29, 2022
Multitrack exporter for OP-Z

Underbridge for OP-Z Multitrack exporter Description Exports patterns and projects individual audio tracks to seperate folders for use in your DAW. Py

Thomas Herrmann 71 Dec 25, 2022
A simple but fully functional calculator that will take multiple operations.

Functional-Calculator A simple but fully functional calculator that will take multiple operations. Usage Run the following command through terminal: p

Uzziel Ariel 1 Dec 22, 2022
Simple Python tool to check if there is an Office 365 instance linked to a domain.

o365chk.py Simple Python script to check if there is an Office365 instance linked to a particular domain.

Steven Harris 37 Jan 02, 2023
Simple application that does transformation with HPF and LPFs.

Simple application that applies Butterworth, Gaussian & Ideal kernels on HPF and LPFs -aka Frequency Domain Filtering- Upload image from sidebar, set

Merve Noyan 3 Jul 06, 2022