Skip to main content

Asyncio plugins, components, dependency injection and configs

Project description

This is heavily inspired by Pyramid and my daily needs to fastly create and maintain microservice like applications.

a plugin mechanic

  • plugin may depend on other plugins

  • plugins yield tasks to run

  • a context registry serves as a store for application components created by plugins

  • a dependency injection creates intermediate components

  • a config source is mapped to plugin specific configuration and may be fully overridden by environment vars

  • structlog boilerplate for json/tty logging

  • fork the process and share bound sockets

  • pytest fixtures to reduce testing boilerplate

You bootstrap like following:

from buvar import plugin

plugin.stage("some.module.with.prepare")
# some.module.with.prepare
from buvar import context, plugin

class Foo:
    ...


async def task():
    asyncio.sleep(1)


async def server():
    my_component = context.get(Foo)
    await asyncio.Future()


# there is also plugin.Teardown and plugin.Cancel
async def prepare(load: plugin.Loader):
    await load('.another.plugin')

    # create some long lasting components
    my_component = context.add(Foo())

    # you may run simple tasks
    yield task()

    # you may run server tasks
    yield server()

a components and dependency injection solution

Dependency injection relies on registered adapters, which may be a function, a method, a class, a classmethod or a generic classmthod.

Dependencies are looked up in components or may be provided via kwargs.

from buvar import di

class Bar:
    pass

class Foo:
    def __init__(self, bar: Bar = None):
        self.bar = bar

    @classmethod
    async def adapt(cls, baz: str) -> Foo:
        return Foo()

async def adapt(bar: Bar) -> Foo
    foo = Foo(bar)
    return foo


async def task():
    foo = await di.nject(Foo, baz="baz")
    assert foo.bar is None

    bar = Bar()
    foo = await di.nject(Foo, bar=bar)
    assert foo.bar is bar

async def prepare():
    di.register(Foo.adapt)
    di.register(adapt)

    yield task()

a config source

buvar.config.ConfigSource is just a dict, which merges arbitrary dicts into one. It serves as the single source of truth for application variability.

You can load a section of config values into your custom attrs class instance. ConfigSource will override values by environment variables if present.

config.toml

log_level = "DEBUG"
show_warnings = "yes"

[foobar]
some = "value"
export APP_FOOBAR_SOME=thing
import attr
import toml

from buvar import config

@attr.s(auto_attribs=True)
class GeneralConfig:
    log_level: str = "INFO"
    show_warnings: bool = config.bool_var(False)


@attr.s(auto_attribs=True)
class FoobarConfig:
   some: str


source = config.ConfigSource(toml.load('config.toml'), env_prefix="APP")

general_config = source.load(GeneralConfig)
assert general_config == GeneralConfig(log_level="DEBUG", show_warnings=True)

foobar_config = source.load(FoobarConfig, 'foobar')
assert foobar_config.some == "thing"

There is a shortcut to the above approach provided by buvar.config.Config, which requires to be subclassed from it with a distinct section attribute. If one adds a buvar.config.ConfigSource component, he will receive the mapped config in one call.

from buvar import config, plugin


@attr.s(auto_attribs=True)
class GeneralConfig(config.Config):
    log_level: str = "INFO"
    show_warnings: bool = config.bool_var(False)


@attr.s(auto_attribs=True)
class FoobarConfig(config.Config, section="foobar"):
    some: str


async def prepare(load: plugin.Loader):
    # this would by typically placed in the main CLI entry point
    source = context.add(config.ConfigSource(toml.load('config.toml'), env_prefix="APP"))

    # to provide the adapter to di, which could also be done in the main entry point
    await load(config)
    foobar_config = await di.nject(FoobarConfig)

a structlog

Just structlog boilerplate.

import sys

from buvar import log

log_config = log.LogConfig(tty=sys.stdout.isatty(), level="DEBUG")
log_config.setup()

forked process and shared sockets

You may fork your process and bind and share sockets, to leverage available CPUs e.g. for serving an aiohttp microservice.

Signals like INT, TERM, HUP are forwarded to the child processes.

import aiohttp.web
from buvar import fork, plugin, di, context
from buvar_aiohttp import AioHttpConfig


async def hello(request):
    return aiohttp.web.Response(body=b"Hello, world")


async def prepare_aiohttp(load: plugin.Loader):
    await load("buvar_aiohttp")

    app = await di.nject(aiohttp.web.Application)
    app.router.add_route("GET", "/", hello)


context.add(AioHttpConfig(host="0.0.0.0", port=5678))

fork.stage(prepare_aiohttp, forks=0, sockets=["tcp://:5678"])

pytest

There are a couple of pytest fixtures provided to get your context into a reasonable state:

buvar_config_source

A dict with arbitrary application settings.

buvar_context

The basic context staging operates on.

buvar_stage

The actual stage processing all plugins.

buvar_load

The loader to add plugins to the stage.

buvar_plugin_context

The context all plugins share, when they are prepared.

Following markers may be applied to a test

buvar_plugins(plugin, ...)

Load all plugins into plugin context.

import pytest


async def prepare():
    from buvar import context

    context.add("foobar")


@pytest.mark.asyncio
@pytest.mark.buvar_plugins("tests.test_testing")
async def test_wrapped_stage_context():
    from buvar import context, plugin

    assert context.get(str) == "foobar"
    assert context.get(plugin.Cancel)


@pytest.mark.asyncio
@pytest.mark.buvar_plugins()
async def test_wrapped_stage_context_load(buvar_load):
    from buvar import context, plugin

    await buvar_load(prepare)
    assert context.get(str) == "foobar"
    assert context.get(plugin.Cancel)

Project details


Release history Release notifications | RSS feed

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

buvar-0.44.18.tar.gz (33.9 kB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

buvar-0.44.18-cp314-cp314t-musllinux_1_2_x86_64.whl (618.2 kB view details)

Uploaded CPython 3.14tmusllinux: musl 1.2+ x86-64

buvar-0.44.18-cp314-cp314t-musllinux_1_2_aarch64.whl (615.8 kB view details)

Uploaded CPython 3.14tmusllinux: musl 1.2+ ARM64

buvar-0.44.18-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl (638.7 kB view details)

Uploaded CPython 3.14tmanylinux: glibc 2.17+ ARM64manylinux: glibc 2.28+ ARM64

buvar-0.44.18-cp314-cp314t-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl (623.1 kB view details)

Uploaded CPython 3.14tmanylinux: glibc 2.28+ x86-64manylinux: glibc 2.5+ x86-64

buvar-0.44.18-cp314-cp314t-macosx_11_0_arm64.whl (113.9 kB view details)

Uploaded CPython 3.14tmacOS 11.0+ ARM64

buvar-0.44.18-cp314-cp314-musllinux_1_2_x86_64.whl (545.1 kB view details)

Uploaded CPython 3.14musllinux: musl 1.2+ x86-64

buvar-0.44.18-cp314-cp314-musllinux_1_2_aarch64.whl (531.6 kB view details)

Uploaded CPython 3.14musllinux: musl 1.2+ ARM64

buvar-0.44.18-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl (541.2 kB view details)

Uploaded CPython 3.14manylinux: glibc 2.17+ ARM64manylinux: glibc 2.28+ ARM64

buvar-0.44.18-cp314-cp314-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl (544.4 kB view details)

Uploaded CPython 3.14manylinux: glibc 2.28+ x86-64manylinux: glibc 2.5+ x86-64

buvar-0.44.18-cp314-cp314-macosx_11_0_arm64.whl (105.2 kB view details)

Uploaded CPython 3.14macOS 11.0+ ARM64

buvar-0.44.18-cp313-cp313-musllinux_1_2_x86_64.whl (549.1 kB view details)

Uploaded CPython 3.13musllinux: musl 1.2+ x86-64

buvar-0.44.18-cp313-cp313-musllinux_1_2_aarch64.whl (531.5 kB view details)

Uploaded CPython 3.13musllinux: musl 1.2+ ARM64

buvar-0.44.18-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl (542.2 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ ARM64manylinux: glibc 2.28+ ARM64

buvar-0.44.18-cp313-cp313-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl (550.0 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.28+ x86-64manylinux: glibc 2.5+ x86-64

buvar-0.44.18-cp313-cp313-macosx_11_0_arm64.whl (104.8 kB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

buvar-0.44.18-cp312-cp312-musllinux_1_2_x86_64.whl (570.4 kB view details)

Uploaded CPython 3.12musllinux: musl 1.2+ x86-64

buvar-0.44.18-cp312-cp312-musllinux_1_2_aarch64.whl (552.9 kB view details)

Uploaded CPython 3.12musllinux: musl 1.2+ ARM64

buvar-0.44.18-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl (562.6 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ ARM64manylinux: glibc 2.28+ ARM64

buvar-0.44.18-cp312-cp312-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl (571.6 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.28+ x86-64manylinux: glibc 2.5+ x86-64

buvar-0.44.18-cp312-cp312-macosx_11_0_arm64.whl (106.4 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

buvar-0.44.18-cp311-cp311-musllinux_1_2_x86_64.whl (533.1 kB view details)

Uploaded CPython 3.11musllinux: musl 1.2+ x86-64

buvar-0.44.18-cp311-cp311-musllinux_1_2_aarch64.whl (527.6 kB view details)

Uploaded CPython 3.11musllinux: musl 1.2+ ARM64

buvar-0.44.18-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl (532.8 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ ARM64manylinux: glibc 2.28+ ARM64

buvar-0.44.18-cp311-cp311-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl (530.9 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.28+ x86-64manylinux: glibc 2.5+ x86-64

buvar-0.44.18-cp311-cp311-macosx_11_0_arm64.whl (106.4 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

File details

Details for the file buvar-0.44.18.tar.gz.

File metadata

  • Download URL: buvar-0.44.18.tar.gz
  • Upload date:
  • Size: 33.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for buvar-0.44.18.tar.gz
Algorithm Hash digest
SHA256 880767cebfdc271fb63a86cd088266b86df355252ba4467c69aa960d571311ae
MD5 ac71e0c315f3f261914b37dd45ffa8e0
BLAKE2b-256 43d51203462de0b28746947dfafdd1d43d5e2a38a88025b4107e2ffb7e9ef482

See more details on using hashes here.

Provenance

The following attestation bundles were made for buvar-0.44.18.tar.gz:

Publisher: package.yaml on diefans/buvar

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file buvar-0.44.18-cp314-cp314t-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for buvar-0.44.18-cp314-cp314t-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 97b9d25592f6f73f69bd3262926a0303af426afd338a4de76f40db3a1dcde268
MD5 f9787879a0cbea45b1d32d8222275d95
BLAKE2b-256 2be6ddb7243dbcd38cc5d66543bcda24af9e64bc6b8f9b2c0222d1e4bec072c1

See more details on using hashes here.

Provenance

The following attestation bundles were made for buvar-0.44.18-cp314-cp314t-musllinux_1_2_x86_64.whl:

Publisher: package.yaml on diefans/buvar

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file buvar-0.44.18-cp314-cp314t-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for buvar-0.44.18-cp314-cp314t-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 5ce2e8726476711144613dbb6d047f9ddc3e3f3f33bbbe95e6612277e04fd2b5
MD5 0c2f22e289d6a333dceaf838f650e750
BLAKE2b-256 939b1397ff9f9e78d12b9f7378b03a6406dfa1ecaab13b776983c847377ea774

See more details on using hashes here.

Provenance

The following attestation bundles were made for buvar-0.44.18-cp314-cp314t-musllinux_1_2_aarch64.whl:

Publisher: package.yaml on diefans/buvar

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file buvar-0.44.18-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for buvar-0.44.18-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 1e9b4cc09b884d493608eccea037d58541ec415e1b6f14271ccb3b39f7e18153
MD5 5db9e8e75ac4a9084a943bbb48e603c3
BLAKE2b-256 dc9cf1232fb823ced344c2e27e534e6377257889e2398349b1c5ac18ad4369e7

See more details on using hashes here.

Provenance

The following attestation bundles were made for buvar-0.44.18-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl:

Publisher: package.yaml on diefans/buvar

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file buvar-0.44.18-cp314-cp314t-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl.

File metadata

File hashes

Hashes for buvar-0.44.18-cp314-cp314t-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl
Algorithm Hash digest
SHA256 72105d8542f1cf2018274f739dea7560691d3b5106a6bbd42dc81cf3e0a1639b
MD5 3a6c435f01c569735ef86680575fa4b3
BLAKE2b-256 9d3ec7e6b626263ae671c8ec5997120d4791b5fc2b7f9b45fa4862f3624891bf

See more details on using hashes here.

Provenance

The following attestation bundles were made for buvar-0.44.18-cp314-cp314t-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl:

Publisher: package.yaml on diefans/buvar

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file buvar-0.44.18-cp314-cp314t-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for buvar-0.44.18-cp314-cp314t-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 4c4a31cd8a504bda0a0ef541b611abb0bd7a9ca40407d897d864f6e3483b746e
MD5 a55d887b9acd54d3e6cb06a5df9bcb60
BLAKE2b-256 92982564be21d837829d53f8b89cf539f9383945e6493e610b03ad00a8edeb7d

See more details on using hashes here.

Provenance

The following attestation bundles were made for buvar-0.44.18-cp314-cp314t-macosx_11_0_arm64.whl:

Publisher: package.yaml on diefans/buvar

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file buvar-0.44.18-cp314-cp314-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for buvar-0.44.18-cp314-cp314-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 de495786fd22741985445aff9eadaef15c863bd2680fdb65ea7dbf00a08f0f65
MD5 12f2fae4273a4a040f05a83ea4e62f80
BLAKE2b-256 4e925e2c2ee1e9f9ed89354ea69dc1e6db58c2a662b224675f86df7ed15af0da

See more details on using hashes here.

Provenance

The following attestation bundles were made for buvar-0.44.18-cp314-cp314-musllinux_1_2_x86_64.whl:

Publisher: package.yaml on diefans/buvar

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file buvar-0.44.18-cp314-cp314-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for buvar-0.44.18-cp314-cp314-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 970fba53c7fbe4322c424062c4ef5bdb4fb373e179ad20c2213e0da258f04a81
MD5 6f99d8f829a47def73e76f681bdb08f6
BLAKE2b-256 b71e79c81ab1976553ed04cd3aa27ef07861d861e66d6a7fc460788c8151749c

See more details on using hashes here.

Provenance

The following attestation bundles were made for buvar-0.44.18-cp314-cp314-musllinux_1_2_aarch64.whl:

Publisher: package.yaml on diefans/buvar

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file buvar-0.44.18-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for buvar-0.44.18-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 45c5f1335331b09b1507e4c4252d3ac98cfdcad7ce2c908c0fe00b7a11b51538
MD5 d6b7c8d7343929c341f9f0b5abdbb557
BLAKE2b-256 eb2fa25400c8fb3c7969f12100874d19dc6339678e4c4255a0eb90ded533319d

See more details on using hashes here.

Provenance

The following attestation bundles were made for buvar-0.44.18-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl:

Publisher: package.yaml on diefans/buvar

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file buvar-0.44.18-cp314-cp314-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl.

File metadata

File hashes

Hashes for buvar-0.44.18-cp314-cp314-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl
Algorithm Hash digest
SHA256 8b43988dc018d4d59d043b2edcb29f7cbe98d0d7da23d64b4d816f16e320be33
MD5 c6530cb2304d26502ad46ae86de088fc
BLAKE2b-256 16772a9bd38efe089028cdc58bf058f2a29af84f8dead915727b8d28c20fb158

See more details on using hashes here.

Provenance

The following attestation bundles were made for buvar-0.44.18-cp314-cp314-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl:

Publisher: package.yaml on diefans/buvar

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file buvar-0.44.18-cp314-cp314-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for buvar-0.44.18-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 2719790785e25cc49d5f83d79a62d242f0e87c7cdd74737935f728e9b3b75556
MD5 52fa6185ba1c5816152057c85f22c500
BLAKE2b-256 4b27a728e3c355f2d97173c41c89c25d8662538aa6d1fada9082eb4085e3a6d5

See more details on using hashes here.

Provenance

The following attestation bundles were made for buvar-0.44.18-cp314-cp314-macosx_11_0_arm64.whl:

Publisher: package.yaml on diefans/buvar

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file buvar-0.44.18-cp313-cp313-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for buvar-0.44.18-cp313-cp313-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 e1718af8a0b4c5519213bd8b4e37e8a7323ab5b6f16e5957f31fa7b95cb315eb
MD5 f89ffd39f5a716574e033db4def891a0
BLAKE2b-256 f1c4e1be66602bbb158898479ad311d5266125256e227ac1419d7066e4230363

See more details on using hashes here.

Provenance

The following attestation bundles were made for buvar-0.44.18-cp313-cp313-musllinux_1_2_x86_64.whl:

Publisher: package.yaml on diefans/buvar

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file buvar-0.44.18-cp313-cp313-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for buvar-0.44.18-cp313-cp313-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 44636688011147b8c643c9afd9d94b30efc687445dccd9ae5c892327951cd7f9
MD5 927ffb2f31f46d1b822ff84ce46f6b66
BLAKE2b-256 8afd6307b358d4d8b868cde6281a66e07589fbb9365df388486a709fe6cb9e71

See more details on using hashes here.

Provenance

The following attestation bundles were made for buvar-0.44.18-cp313-cp313-musllinux_1_2_aarch64.whl:

Publisher: package.yaml on diefans/buvar

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file buvar-0.44.18-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for buvar-0.44.18-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 4368612813efb7ea92080ec93365ef4a8937d8e1bbc242dbe5e7373a9476d077
MD5 f76aaca6a97253b4ba18aa6bfb0091ee
BLAKE2b-256 100a36d3841944908bf11ab6b00cfcef94aad09b8414b17b574f3348b0bc34da

See more details on using hashes here.

Provenance

The following attestation bundles were made for buvar-0.44.18-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl:

Publisher: package.yaml on diefans/buvar

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file buvar-0.44.18-cp313-cp313-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl.

File metadata

File hashes

Hashes for buvar-0.44.18-cp313-cp313-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl
Algorithm Hash digest
SHA256 3c5f54c29f522e47c88af6bbe2b638ce6e3fbb1b64b4f5f0268d8007c91f1b26
MD5 6af8ae90ea534a2cf869cc28b759139d
BLAKE2b-256 72a736f2237cdf22e1af52e659607721019dbec629ac486fe6530967c7813e7c

See more details on using hashes here.

Provenance

The following attestation bundles were made for buvar-0.44.18-cp313-cp313-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl:

Publisher: package.yaml on diefans/buvar

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file buvar-0.44.18-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for buvar-0.44.18-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 390133f1b51d17e9f2e216fc7edf67de56b9b314ff87d31ebc786f4467f52140
MD5 4d4b321bece90a051e2d58ff58a9df46
BLAKE2b-256 4e6126aab3cdfb6b0c6a5734153c9f072c875e47587910c60218eb4f95cb2f9f

See more details on using hashes here.

Provenance

The following attestation bundles were made for buvar-0.44.18-cp313-cp313-macosx_11_0_arm64.whl:

Publisher: package.yaml on diefans/buvar

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file buvar-0.44.18-cp312-cp312-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for buvar-0.44.18-cp312-cp312-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 a9fb6df7178b03816869c22b3f738734f5616e4206bb88fa075df87040b00715
MD5 54c013e79de78cb066300deb9159b711
BLAKE2b-256 20490877e5fb92a31e5104eab287dc726614862af4f06a1040ecf69b82543303

See more details on using hashes here.

Provenance

The following attestation bundles were made for buvar-0.44.18-cp312-cp312-musllinux_1_2_x86_64.whl:

Publisher: package.yaml on diefans/buvar

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file buvar-0.44.18-cp312-cp312-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for buvar-0.44.18-cp312-cp312-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 7244f01f58cf32f5d92ab04a76a775fe64d91e22cf6de3ea899da1b1a8763d98
MD5 1ac3153c5538296eaa4ce12fb8f8cf6b
BLAKE2b-256 253a6b55edc2574e81477a95a78c595fe9dc5339f391b5ffad3694a3c945b4b2

See more details on using hashes here.

Provenance

The following attestation bundles were made for buvar-0.44.18-cp312-cp312-musllinux_1_2_aarch64.whl:

Publisher: package.yaml on diefans/buvar

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file buvar-0.44.18-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for buvar-0.44.18-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 24095d99ba420019bcd7c92968a7d1aec5c8685fa62d5f8f33d428bdab245a97
MD5 242eba704aaf852845c778a68ad7f8b4
BLAKE2b-256 46d2dfa1862108f7c714a3ffd1d5d52c5fc2476b36dc7b33e2aee18450f99924

See more details on using hashes here.

Provenance

The following attestation bundles were made for buvar-0.44.18-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl:

Publisher: package.yaml on diefans/buvar

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file buvar-0.44.18-cp312-cp312-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl.

File metadata

File hashes

Hashes for buvar-0.44.18-cp312-cp312-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl
Algorithm Hash digest
SHA256 d0b957790ba0401bef8a46a2d4e15f29eb7cc4c6a72f146cf88c4921e0772a40
MD5 b10eb0b68380ee80f58eaa8be8f2dcbf
BLAKE2b-256 7c15a5e9819e959ac495d62ca94c917fca4a0a601def2b3180e0c16a68fffdcd

See more details on using hashes here.

Provenance

The following attestation bundles were made for buvar-0.44.18-cp312-cp312-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl:

Publisher: package.yaml on diefans/buvar

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file buvar-0.44.18-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for buvar-0.44.18-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 a6af10c1d1db0f47df9ae48594254c6840dfd0aa2da8437794acba5683453aab
MD5 943eb64ef91c80b7e26a8ea814b4c1d9
BLAKE2b-256 3b3ecfce30080cdbbeeb9df71a387b56e732dae9d9d36396422508c9b14ea54c

See more details on using hashes here.

Provenance

The following attestation bundles were made for buvar-0.44.18-cp312-cp312-macosx_11_0_arm64.whl:

Publisher: package.yaml on diefans/buvar

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file buvar-0.44.18-cp311-cp311-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for buvar-0.44.18-cp311-cp311-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 2c62d94da9818a05f7c59b4e4c1866732068bd2e023fc4a13d4528b7ec34c17f
MD5 ddf3ffe76c1a82b7d1bfe87bfd8daa2c
BLAKE2b-256 b23ec7b64c57e2f434e0a55a53d66ef5437d1c905249219cfe3dd41bdde1d1e7

See more details on using hashes here.

Provenance

The following attestation bundles were made for buvar-0.44.18-cp311-cp311-musllinux_1_2_x86_64.whl:

Publisher: package.yaml on diefans/buvar

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file buvar-0.44.18-cp311-cp311-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for buvar-0.44.18-cp311-cp311-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 d9e5f99379655d91088a8dd5993d13c872ca4f920d4207f022b6556becdaea25
MD5 50b308636cb6370c2bb73f42c6d8cc2b
BLAKE2b-256 a7a1d21170050d0c4b647f6f2bff7db62eeba975dd59f209c5394ebfb3b726d3

See more details on using hashes here.

Provenance

The following attestation bundles were made for buvar-0.44.18-cp311-cp311-musllinux_1_2_aarch64.whl:

Publisher: package.yaml on diefans/buvar

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file buvar-0.44.18-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for buvar-0.44.18-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 eff7fd0861e700605c8ae20587d75d2a106581c70f04ca3100a97c11230e2691
MD5 8a86f004751cb645fcbd7f9c1642b640
BLAKE2b-256 cdd69301d77b9744b8c08eb7d8cfe4000fcd66ca8cc6e1799c9e38f93507bdbd

See more details on using hashes here.

Provenance

The following attestation bundles were made for buvar-0.44.18-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl:

Publisher: package.yaml on diefans/buvar

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file buvar-0.44.18-cp311-cp311-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl.

File metadata

File hashes

Hashes for buvar-0.44.18-cp311-cp311-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl
Algorithm Hash digest
SHA256 7af66a9109ec014c38183dbe85d0e6782ac521ebc26bb050d0d7903419766b02
MD5 af03bf9a39a1822b209784ffe03303b0
BLAKE2b-256 e915850449186064413e8ef42f946c9b75b7a9c7672f5f48f4878c1399d11243

See more details on using hashes here.

Provenance

The following attestation bundles were made for buvar-0.44.18-cp311-cp311-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl:

Publisher: package.yaml on diefans/buvar

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file buvar-0.44.18-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for buvar-0.44.18-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 94c5bbbb15a364bcd55b60827babb63f70c13323ff3dc8ed553029c63ea09805
MD5 df20cc76b0ed1eab0e00934279338176
BLAKE2b-256 9ac8755d1f92837873c5050bfad042b35e7c3be355008e09c386fc2bb8ad56f8

See more details on using hashes here.

Provenance

The following attestation bundles were made for buvar-0.44.18-cp311-cp311-macosx_11_0_arm64.whl:

Publisher: package.yaml on diefans/buvar

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page