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
E-Paper display loop with plugins

PaperPi V3 NOTE This version of PaperPi is under heavy development and is not ready for the average user. We are working on adding more screen compati

Aaron Ciuffo 34 Dec 30, 2022
A pypi package details search python module

A pypi package details search python module

Fayas Noushad 5 Nov 30, 2021
A very simple boarding app with DRF

CRUD project with DRF A very simple boarding app with DRF. About The Project 유저 정보를 갖고 게시판을 다루는 프로젝트 입니다. Version Python: 3.9 DB: PostgreSQL 13 Django

1 Nov 13, 2021
A Gura parser implementation for Python

Gura parser This repository contains the implementation of a Gura format parser in Python. Installation pip install gura-parser Usage import gura gur

JWare Solutions 19 Jan 25, 2022
NES development tool made with Python and Lua

NES Builder NES development and romhacking tool made with Python and Lua Current Stage: Alpha Features Open source "Build" project, which exports vari

10 Aug 19, 2022
A fancy and practical functional tools

Funcy A collection of fancy functional tools focused on practicality. Inspired by clojure, underscore and my own abstractions. Keep reading to get an

Alexander Schepanovski 2.9k Dec 29, 2022
🎴 LearnQuick is a flashcard application that you can study with decks and cards.

🎴 LearnQuick is a flashcard application that you can study with decks and cards. The main function of the application is to show the front sides of the created cards to the user and ask them to guess

Mehmet Güdük 7 Aug 21, 2022
Exam assignment for Laboratory of Bioinformatics 2

Exam assignment for Laboratory of Bioinformatics 2 (Alma Mater University of Bologna, Master in Bioinformatics)

2 Oct 22, 2022
Cool little Python scripts & projects I've made.

Little Python Projects A repository for neat little Python scripts I've made! How to run a script: *NOTE: You'll need to install Python v3 or higher.

dood 1 Jan 19, 2022
The Playwright Workshop for TAU: The Homecoming

tau-playwright-workshop This repository contains the instructions and example code for the Playwright workshop for TAU: The Homecoming on December 1,

Pandy Knight 134 Dec 30, 2022
Extended functionality for Namebase past their web UI

Namebase Extended Extended functionality for Namebase past their web UI.

RunDavidMC 12 Sep 02, 2022
Force you (or your user) annotate Python function type hints.

Must-typing Force you (or your user) annotate function type hints. Notice: It's more like a joke, use it carefully. If you call must_typing in your mo

Konge 13 Feb 19, 2022
InfiniPy has some neat features - like the endpoint for function

InfiniPy has some neat features - like the endpoint for function

ZeroTwo 7 Nov 20, 2022
This is the improvised version of Dobot Magician which can be implemented for Dobot M1

pydobotM1 This is the edited driver for Dobot M1 version of the original pydobot library intended for use with the Dobot Magician. Here's what you nee

Shaik Abdullah 2 Jul 11, 2022
Created a Python Keylogger script.

Python Script Simple Keylogger Script WHAT IS IT? Created a Python Keylogger script. HOW IT WORKS Once the script has been executed, it will automatic

AC 0 Dec 12, 2021
Implent of Oracle Base line and Lea-3 Baseline

Oracle-Baseline Implent of Oracle Base line and Lea-3 Baseline Oracle Oracle : This model is used to obtain an oracle with a greedy algorithm similar

Andrew Zeng 2 Nov 12, 2021
Stock Monitoring

Stock Monitoring Description It is a stock monitoring script. This repository is still under developing. Getting Started Prerequisites & Installing pi

Sission 1 Feb 03, 2022
A simple python project that can find Tangkeke in a given image.

A simple python project that can find Tangkeke in a given image. Make the real Tangkeke image as a kernel to convolute the target image. The area wher

张志衡 1 Dec 08, 2021
A web project to control the daily life budget planing

Budget Planning - API In this repo there's only the API and Back-End of the this project. Install and run the project # install virtualenv --python=py

Leonardo Da Vinci 1 Oct 24, 2021
Multifunctional Analysis of Regions through Input-Output

MARIO Multifunctional Analysis of Regions through Input-Output. (Documents) What is it MARIO is a python package for handling input-output tables and

14 Dec 25, 2022