Skip to main content

A Low Frequency Oscillator

Project description

LFO - A Low Frequency Oscillator

One of my many interests is playing the modular synth. That instrument is not imaginable without the help of LFOs. They are used to control every controllable knob or slider, they control the speed of oscillators, the fading in and out of filters, they can control each other, the possibilities are literally endless.

This class transfers that concept to python.

Synopsis

lfo = LFO(period, *, ...)
from lfo import LFO
from time import sleep

orbit = LFO(10)
while orbit.cycle < 3:
    print(f'{orbit.sine=} {orbit.cosine=}  {orbit.triangle=}  {orbit.sawtooth=}  {orbit.square=}')
    print(f'{orbit.inv_sine=} {orbit.inv_cosine=}  {orbit.inv_triangle=}  {orbit.inv_sawtooth=}  {orbit.inv_square=}')
    sleep(0.1)

What is an LFO?

So what is an LFO? LFO stands for "Low Frequency Oscillator". It's a curve that doesn't stop and that you can pull out values from. The simplest form is probably a sine wave. Regardless of how often you travel along the circle, you always get consistent and reproducible values out of it.

But LFOs come in many different shapes. Here are the ones implemented right now, but I'm open to suggestions to extend this list:

* lfo.sine, lfo.cosine - A sine wave (and a cosine wave that I don't count extra)
* lfo.triangle - A triangular wave
* lfo.sawtooth - A sawtooth wave
* lfo.square - A square wave
* lfo.one - A wave that always outputs 1
* lfo.zero - A wave that always outputs 0
* lfo.random - A wave that outputs random values
* lfo.inv_<waveform> - The inverse of all these

The lfo registers the start time of its instantiation. If no period length - the duration of one single wave - is provided, it defaults to 1 second.

Whenever you now query a value from the lfo, it gives you the proper function result of that wave for this specific point in time. Also, you can query all of the wave forms from the same lfo.

Each waveform can be scaled and offset. Note, that the inverted waves use the same scale and offset as the normal ones, otherwise they would run out of sync.

There's one important difference to the lfo you might know from your DAW or synth. Since most programmers will use these to ramp other values by multiplication, this lfo is not centered around the 0 point of the y axis, but all waves except sine and cosine variants are positioned so that they return a value between 0 and 1. There are per-wave parameters to change this.

Terminology / Parameter Names

The LFO class

An instance lfo of type LFO offers the following attributes with their default values:

Primary Instancing Attributes, Read/Write

  • lfo.period: float = 1.0
  • lfo.frequency: float = 1.0 (rw) - Internally an alias for 1 / lfo.period

Wave Outputs, Read-Only

  • lfo.sine: float, lfo.inv_sine: float
  • lfo.cosine: float, lfo.inv_cosine: float
  • lfo.triangle: float, lfo.inv_triangle: float
  • lfo.sawtooth: float, lfo.inv_sawtooth: float
  • lfo.square: float, lfo.inv_square: float
  • lfo.one: float, lfo.inv_one: float
  • lfo.zero: float, lfo.inv_zero: float

Waveform Control Parameters

  • lfo.sine_attenuverter: float = 1.0
  • lfo.sine_offset: float = 0.0
  • lfo.cosine_attenuverter: float = 1.0
  • lfo.cosine_offset: float = 0.0
  • lfo.triangle_attenuverter: float = 1.0
  • lfo.triangle_offset: float = 0.0
  • lfo.sawtooth_attenuverter: float = 1.0
  • lfo.sawtooth_offset: float = 0.0
  • lfo.square_attenuverter: float = 1.0
  • lfo.square_offset: float = 0.0
  • lfo.one_attenuverter: float = 1.0
  • lfo.one_offset: float = 0.0
  • lfo.zero_attenuverter: float = 1.0
  • lfo.zero_offset: float = 0.0
  • lfo.pw: float = 0.5
  • lfo.pw_offset: float = 0.0

Read-Only Status Attributes

  • lfo.frozen: bool - Frozen state of the lfo
  • lfo.t: float - Time within the current cycle of the lfo
  • lfo.normalized: float - Like lfo.t, but normalized to 0 - 1
  • lfo.cycle: int - The number of the current cycle of the lfo

Primary Instancing Attributes, Read/Write

lfo.period, lfo.frequency

lfo.period is the primary setting for the lfo. It's the duration between wave repeats.

lfo.frequency is the inverse of the period. While the period defines the duration of one wave cycle, the frequency defines the number of cycles per second.

lfo.cycles

The number of periods this lfo will run through. After it that, it will return the value of the end of its period until it is reset.

See note at lfo.random.

Wave Outputs, Read-Only

If you have ever tried making sounds on a computer, you will be very familiar with the available wave types.

All wave forms come with an inverted version named inv_<waveform>.

Sine, Cosine (And important configuration parameters!)

`lfo.sine`, `lfo.cosine`, `lfo.inv_sine`, `lfo.inv_cosine`

Your off-the-mill sine and cosine waves.

Note: In the first iteration of this library, I thought it was a good idea to position the sine and cosine waves in the range or 0 - 1. This idea does not work well in reality, so they now deliver the values any programmer will expect.

See <waveform>_attenuverter and <waveform>_offset below on how to change this.

Triangle

`lfo.triangle`, `lfo.inv_triangle`

A triangle wave ramps up from 0 to 1 over half of the period. Then it ramps down back to zero for the second half, creating a triangular shape.

Sawtooth

`lfo.sawtooth`, `lfo.inv_sawtooth`

A sawtooth wave starts at 1 and ramps down to 0 over the full length of the period.

Square

`lfo.square`, `lfo.inv_square`

The square wave holds 0 over a given time that defaults to half the period, then it switches to 1.

See lfo.pw and lfo.pw_offset below for some configuration options.

One, Zero

`lfo.one`, `lfo.inv_one`, `lfo.zero`, `lfo.inv_zero`

While it may sound useless to have an object that puts out a constant value, one and zero can be very useful if you want to deactivate an changing behaviour in an object without adding a special if-clause or changing its interface.

Random

`lfo.random`, `lfo.inv_random`

The random wave contains values that are... well, random. They are not a function of time.

Note that inv_random makes zero sense but it still implemented to provide a consistent interface.

Note: A side effect of being independent of time is, that this wave will not "stop" once the all cycles have finished.

Waveform Control Parameters

These settings all control the different wave forms. They are configurable both at class instantiation, as well as in runtime.

The consequence of that is that they can be modulated by another lfo...

<waveform>_attenuverter, <waveform>.offset

All waveforms offer these two modifiers. They can passed to the LFO() init when instantiating, and also during runtime

The weird term attenuverter also comes from the world of modular synths and is a combination of attenuator - a scale factor - and inverter - because a negative scale will invert the wave.

A good use case for these settings are the sine and cosine waves, which return values between -1 and 1. If you want to use them for scaling something instead, you set their attenuverter to 0.5. Now they return values from -0.5 to 0.5. Then you offset them by 0.5 and you have your scaling factor.

So the attenuverter and offset alwasy return

`wave * attenuverter + offset`
lfo = LFO(period, sine_attenuverter=1, sine_offset=0, ...)

This first scales the sine wave back to the range of -1 to 1, and then removes the position shift from the defaults.

Even lfo.one and lfo.zero are impacted by these.

lfo.pw and lfo.pw_offset

NOTE: Mighth be renamed to square_pw and square_pw_offset.

pw stands for pulse width. In a synth, it's the duration a signal is up or down. By default, the square wave is up for half of the period, then switches to down. It's pulse width (up) is 0.5. Setting lfo.pw = 1/3 instead will make the square wave generate a 1 for the first 3rd of the period, and a 0 for the remaining time.

Note: The value of the pulse width parameters is normalized to 0-1. That way, you won't have to modify it every time you change the period of the LFO.

The lfo.pw_offset now shifts the start position of the pulse. By default, it starts at the beginning of the period. But if you would want a narrow pulse in the middle of the wave, you can shift the start.

lfo = LFO(10, pw=2, pw_offset=4)

Will result in a square wave that return 0 until the start of the 4th second. Then it will switch to 1 from second 4 to second 6. Finally, it will be back to 0 from second 6 until the end of the period at second 10.

So with lfo.pw you control the width of the "on-phase", and with lfo.pw_offset you control its position.

Read-Only Status Attributes

lfo.t, lfo.normalized

lfo.t will give you the current time within the current cycle of the curve. This will be a value between 0 and lfo.period.

lfo.normalized will give you the same, but scaled into the range of 0 to 1.

Both attributes will reset after each period.

lfo.cycle

The number of the loop that the lfo is currently in. Increments after each period.

Methods

An LFO is mostly a fire and forget object. But it still offers a small handful of methods

lfo.reset() -> None

Resets the start time of the lfo to the current time. With short periods, this will most likely not be relevant, but an lfo can also run for a very long time, e.g. to ramp up enemy spawns over a level, and you don't want to have it deep in its cycle when the next level begins.

lfo.freeze() -> None, lfo.unfreeze() -> None, lfo.is_frozen() -> bool

Pauses the lfo. The current value is held until the pause is terminated. Note that the lfo's start time shifts so, that the wave it outputs is continuous. It will not jump once it's reactivated.

If you prefer a function interface over the status attribute lfo.frozen above, use lfo.is_frozen(), which returns a bool.

lfo.set_attenuverters(amount: double) -> None

Set all attenuverters to the given amount.

lfo.set_offsets(amount: double) -> None

Set all offsets to the given amount.

lfo.rewind(amount: double) -> None

Rewind the lfo by the given amount in seconds.

lfo.skip(amount: double) -> None

Skip the lfo by the given amount in seconds.

Python Magic Methods

LFO instances properly convert to bool, int and float and can thus be directly compared to all of them.

Note that as of now, the sine curve is used. This might be configurable later... FIXME

So e.g. bool(lfo) is the same as bool(lfo.sine).

LFO instances also provide __call__, so if you prefer the function interface, use lfo() to fetch the sine value from the lfo.

In addition, lfo is both an iterator and iterable.

from lfo import LFO
from time import sleep

l = LFO(10)
next(l)
>>> 0.2457116119475273

for i, v in zip(range(10), l):
    print(i, v)
    sleep(0.25)

>>> 0 -0.9886300710248443
>>> 1 -0.9999805639536082
>>> 2 -0.9866305171025227
>>> 3 -0.9488620508175084
>>> 4 -0.8876400367987355
>>> 5 -0.804481428399949
>>> 6 -0.7013677240075332
>>> 7 -0.5811011443144513
>>> 8 -0.44612926127688374
>>> 9 -0.3002298909230939

Example

_NOTE 1: to preserve the zero-dependencies of lfo, examples/demos will be published in a dedicated package lfo_demos, which is currently in the making but not published yet.

_NOTE 2: This example requires pygame-ce, but the code should be straight forward enough to be directly translated to other frameworks like pyglet.

NOTE 3: Please don't use the badly maintained pygame project anymore.

#!/bin/env python3

import pygame
import pygame._sdl2 as sdl2

from lfo import LFO

TITLE = 'pygame minimal template'
SCREEN = pygame.Rect(0, 0, 1024, 768)
FPS = 60
DT_MAX = 3 / FPS

clock = pygame.time.Clock()
window = pygame.Window(title=TITLE, fullscreen_desktop=True)
renderer = sdl2.Renderer(window)
renderer.logical_size = SCREEN.size

RADIUS = 256
SATELITE_RADIUS = 32

orbit = LFO(10, sine_offset=0.0, cosine_offset=0.0)
satelite = LFO(5, sine_offset=0.0, cosine_offset=0.0)
speedo = LFO(20, sine_attenuverter=0.3, sine_offset=1.0, cosine_attenuverter=0.3, cosine_offset=1.0)
color = LFO(3)

rect = pygame.Rect(0, 0, 10, 10)

running = True
while running:
    dt = min(clock.tick(FPS) / 1000.0, DT_MAX)

    for e in pygame.event.get():
        if e.type == pygame.QUIT:
            running = False
        elif e.type == pygame.KEYDOWN:
            if e.key == pygame.K_ESCAPE:
                running = False

    renderer.draw_color = 'darkslategrey'
    renderer.clear()

    renderer.draw_color = ('red', 'green')[int(color.square)]

    renderer.draw_rect(rect.move_to(center=SCREEN.center))

    x = orbit.cosine * RADIUS + SCREEN.centerx
    y = orbit.sine * RADIUS + SCREEN.centery
    renderer.draw_color = ('yellow', 'magenta')[int(color.square)]
    renderer.draw_rect(rect.move_to(center=(round(x), round(y))))

    x += satelite.cosine * SATELITE_RADIUS
    y += satelite.sine * SATELITE_RADIUS
    renderer.draw_color = ('cyan', 'orange')[int(color.square)]
    renderer.draw_rect(rect.move_to(center=(round(x), round(y))))

    satelite.period = speedo.sine

    x = orbit.sine * 2 * RADIUS + SCREEN.centerx + satelite.sine * SATELITE_RADIUS
    y = orbit.cosine * 2 * RADIUS + SCREEN.centery + satelite.cosine * SATELITE_RADIUS
    renderer.draw_color = ('green', 'red')[int(color.square)]
    renderer.draw_rect(rect.scale_by(2).move_to(center=(round(x), round(y))))


    renderer.present()

    window.title = f'{TITLE} - time={pygame.time.get_ticks()/1000:.2f}  fps={clock.get_fps():.2f}'

Installation

Note that this module is in very early draft, and while it is already useful and functional, things might change...

Installation via pip

lfo is available on pypi and can be installed by

pip install lfo

(You are using venvs, right? RIGHT?!?)

lfo comes with no additional requirements, but it is very good to create input for easing functions from rpeasings. lfo was primarily created as a tool for my pygame projects, but it's a generalized control tool that can be used in many different scenarios and environments.

Pre-built wheels for Windows, Mac and Linux...

...are available on the github releases page at

https://github.com/dickerdackel/lfo/releases

Install from source

Again, use a venv!

lfo is packaged following the python packaging authority at https://www.pypa.io/

You can simply clone the github repo from https://github.com/dickerdackel/lfo

Then change into this directory and install the package - INTO YOUR VENV! - with pip install .

# clone repo
dickerdackel@minime:~$ git clone https://github.com/dickerdackel/lfo
...

# create venv
dickerdackel@minime:~/lfo$ python3 -m venv --prompt lfo .venv

# activate venv
dickerdackel@minime:~/lfo$ . .venv/bin/activate

# install lfo
(lfo) dickerdackel@minime:~/lfo$ pip install .

(lfo) dickerdackel@minime:~/lfo$

Support / Contributing

Issues can be opened on Github

Credits / Acknowledgements

  • Thanks to all the modular synth vendors that showed me the versatility of LFOs

License

This software is provided under the MIT license.

See LICENSE file for details.

Project details


Download files

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

Source Distribution

lfo-0.0.5.tar.gz (28.8 kB view details)

Uploaded Source

Built Distributions

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

lfo-0.0.5-cp314-cp314-win_arm64.whl (21.4 kB view details)

Uploaded CPython 3.14Windows ARM64

lfo-0.0.5-cp314-cp314-win_amd64.whl (23.2 kB view details)

Uploaded CPython 3.14Windows x86-64

lfo-0.0.5-cp314-cp314-win32.whl (22.4 kB view details)

Uploaded CPython 3.14Windows x86

lfo-0.0.5-cp314-cp314-musllinux_1_2_x86_64.whl (52.9 kB view details)

Uploaded CPython 3.14musllinux: musl 1.2+ x86-64

lfo-0.0.5-cp314-cp314-musllinux_1_2_aarch64.whl (52.0 kB view details)

Uploaded CPython 3.14musllinux: musl 1.2+ ARM64

lfo-0.0.5-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (53.3 kB view details)

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

lfo-0.0.5-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl (53.7 kB view details)

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

lfo-0.0.5-cp314-cp314-macosx_11_0_arm64.whl (21.1 kB view details)

Uploaded CPython 3.14macOS 11.0+ ARM64

lfo-0.0.5-cp314-cp314-macosx_10_13_x86_64.whl (20.9 kB view details)

Uploaded CPython 3.14macOS 10.13+ x86-64

lfo-0.0.5-cp313-cp313-win_arm64.whl (21.1 kB view details)

Uploaded CPython 3.13Windows ARM64

lfo-0.0.5-cp313-cp313-win_amd64.whl (22.7 kB view details)

Uploaded CPython 3.13Windows x86-64

lfo-0.0.5-cp313-cp313-win32.whl (21.9 kB view details)

Uploaded CPython 3.13Windows x86

lfo-0.0.5-cp313-cp313-musllinux_1_2_x86_64.whl (52.9 kB view details)

Uploaded CPython 3.13musllinux: musl 1.2+ x86-64

lfo-0.0.5-cp313-cp313-musllinux_1_2_aarch64.whl (51.9 kB view details)

Uploaded CPython 3.13musllinux: musl 1.2+ ARM64

lfo-0.0.5-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (53.2 kB view details)

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

lfo-0.0.5-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl (53.7 kB view details)

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

lfo-0.0.5-cp313-cp313-macosx_11_0_arm64.whl (21.1 kB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

lfo-0.0.5-cp313-cp313-macosx_10_13_x86_64.whl (20.9 kB view details)

Uploaded CPython 3.13macOS 10.13+ x86-64

lfo-0.0.5-cp312-cp312-win_arm64.whl (21.1 kB view details)

Uploaded CPython 3.12Windows ARM64

lfo-0.0.5-cp312-cp312-win_amd64.whl (22.7 kB view details)

Uploaded CPython 3.12Windows x86-64

lfo-0.0.5-cp312-cp312-win32.whl (21.9 kB view details)

Uploaded CPython 3.12Windows x86

lfo-0.0.5-cp312-cp312-musllinux_1_2_x86_64.whl (52.9 kB view details)

Uploaded CPython 3.12musllinux: musl 1.2+ x86-64

lfo-0.0.5-cp312-cp312-musllinux_1_2_aarch64.whl (51.9 kB view details)

Uploaded CPython 3.12musllinux: musl 1.2+ ARM64

lfo-0.0.5-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (53.2 kB view details)

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

lfo-0.0.5-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl (53.6 kB view details)

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

lfo-0.0.5-cp312-cp312-macosx_11_0_arm64.whl (21.1 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

lfo-0.0.5-cp312-cp312-macosx_10_13_x86_64.whl (20.9 kB view details)

Uploaded CPython 3.12macOS 10.13+ x86-64

lfo-0.0.5-cp311-cp311-win_arm64.whl (21.1 kB view details)

Uploaded CPython 3.11Windows ARM64

lfo-0.0.5-cp311-cp311-win_amd64.whl (22.7 kB view details)

Uploaded CPython 3.11Windows x86-64

lfo-0.0.5-cp311-cp311-win32.whl (21.9 kB view details)

Uploaded CPython 3.11Windows x86

lfo-0.0.5-cp311-cp311-musllinux_1_2_x86_64.whl (53.0 kB view details)

Uploaded CPython 3.11musllinux: musl 1.2+ x86-64

lfo-0.0.5-cp311-cp311-musllinux_1_2_aarch64.whl (52.4 kB view details)

Uploaded CPython 3.11musllinux: musl 1.2+ ARM64

lfo-0.0.5-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (53.3 kB view details)

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

lfo-0.0.5-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl (54.0 kB view details)

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

lfo-0.0.5-cp311-cp311-macosx_11_0_arm64.whl (21.2 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

lfo-0.0.5-cp311-cp311-macosx_10_9_x86_64.whl (20.8 kB view details)

Uploaded CPython 3.11macOS 10.9+ x86-64

lfo-0.0.5-cp310-cp310-win_arm64.whl (21.1 kB view details)

Uploaded CPython 3.10Windows ARM64

lfo-0.0.5-cp310-cp310-win_amd64.whl (22.7 kB view details)

Uploaded CPython 3.10Windows x86-64

lfo-0.0.5-cp310-cp310-win32.whl (21.9 kB view details)

Uploaded CPython 3.10Windows x86

lfo-0.0.5-cp310-cp310-musllinux_1_2_x86_64.whl (52.9 kB view details)

Uploaded CPython 3.10musllinux: musl 1.2+ x86-64

lfo-0.0.5-cp310-cp310-musllinux_1_2_aarch64.whl (52.3 kB view details)

Uploaded CPython 3.10musllinux: musl 1.2+ ARM64

lfo-0.0.5-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (53.3 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64manylinux: glibc 2.28+ x86-64

lfo-0.0.5-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl (54.0 kB view details)

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

lfo-0.0.5-cp310-cp310-macosx_11_0_arm64.whl (21.2 kB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

lfo-0.0.5-cp310-cp310-macosx_10_9_x86_64.whl (20.8 kB view details)

Uploaded CPython 3.10macOS 10.9+ x86-64

File details

Details for the file lfo-0.0.5.tar.gz.

File metadata

  • Download URL: lfo-0.0.5.tar.gz
  • Upload date:
  • Size: 28.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.5

File hashes

Hashes for lfo-0.0.5.tar.gz
Algorithm Hash digest
SHA256 3104a7c247484db1c674d162ddbdd0433c27dceb8dec82028ba596d5ca9f087e
MD5 6406959fb9dd1bfb7db8e290c243c722
BLAKE2b-256 250d585b1d826feb69e25d22a0244bfa4769c4d5ce5a39b61c9f294c88303e8d

See more details on using hashes here.

File details

Details for the file lfo-0.0.5-cp314-cp314-win_arm64.whl.

File metadata

  • Download URL: lfo-0.0.5-cp314-cp314-win_arm64.whl
  • Upload date:
  • Size: 21.4 kB
  • Tags: CPython 3.14, Windows ARM64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.5

File hashes

Hashes for lfo-0.0.5-cp314-cp314-win_arm64.whl
Algorithm Hash digest
SHA256 157217c7782b7f256e0156e1d4a53b8ce2f01c1f9d0bcaf6c382ad17a88d21c3
MD5 31e45fe84c5a1f28b0b57dd0f83fd493
BLAKE2b-256 2270956e7099bea200bc2e3bb4e2c8c6f769186fbc013a9bfb56a37fd739292f

See more details on using hashes here.

File details

Details for the file lfo-0.0.5-cp314-cp314-win_amd64.whl.

File metadata

  • Download URL: lfo-0.0.5-cp314-cp314-win_amd64.whl
  • Upload date:
  • Size: 23.2 kB
  • Tags: CPython 3.14, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.5

File hashes

Hashes for lfo-0.0.5-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 8d198129f19aa4029992d93e9b98ebf7734a7ae8cd353325f51b543447070c12
MD5 bab40b549831bb55e6e803873e8c1c7e
BLAKE2b-256 2b1558c6f695fa9cb462afc51cf40611289f1f08fed1e9592ae9542c5208042d

See more details on using hashes here.

File details

Details for the file lfo-0.0.5-cp314-cp314-win32.whl.

File metadata

  • Download URL: lfo-0.0.5-cp314-cp314-win32.whl
  • Upload date:
  • Size: 22.4 kB
  • Tags: CPython 3.14, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.5

File hashes

Hashes for lfo-0.0.5-cp314-cp314-win32.whl
Algorithm Hash digest
SHA256 728b925bd72ff358a9edb479cf48140835774a5f00fc7f6cc88a385a0fca4283
MD5 f71d92b35668a9098d222cc1124c6825
BLAKE2b-256 aacb6ad954b1ea7f387f0ab71c47515ca28c99627301b529cef1755445c891c5

See more details on using hashes here.

File details

Details for the file lfo-0.0.5-cp314-cp314-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for lfo-0.0.5-cp314-cp314-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 a08ddb9e8ed99eafc23ccb73fe536b02f29366e20bd004894aa0f5ae9ab68ada
MD5 8c5e2155b3e3dbe50bc92fad4af2c8bb
BLAKE2b-256 53913f83b384295a4e9917cf14474cd32a2b96ef769a285388c64457c0cf6f25

See more details on using hashes here.

File details

Details for the file lfo-0.0.5-cp314-cp314-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for lfo-0.0.5-cp314-cp314-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 5879ea212ebcb5252a0327e4a8788b4551037e0946891a9a3b9bf290b8b08db4
MD5 981ba12d1ac53fc61f254b5c76f1a604
BLAKE2b-256 99793118c2b0551c163b3f668fab9aa111d3c4ce96194d4b953d6420d22b98e4

See more details on using hashes here.

File details

Details for the file lfo-0.0.5-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for lfo-0.0.5-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 e67a57c1c8139670fcaeaf387a07b56cb3ce9075d674fe2acabf74186f2a1cc5
MD5 fe66a812e9ff49a7b5a66edc34d23cff
BLAKE2b-256 ee546f039bf79f8f10e9fb46b901ab59104344019d3c98b2449a87360d6cb4b3

See more details on using hashes here.

File details

Details for the file lfo-0.0.5-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for lfo-0.0.5-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 3fc324d504e72507fe31194c0e49f334ff94b14760bdd233fe3c6b585d08d628
MD5 bb0c2e5fa68e8fcd3053c6dda231c879
BLAKE2b-256 47d00363ddb9aa39b95c8f5e00ec2b06c5e3bcb7c4a15d1fff1285375332bfbd

See more details on using hashes here.

File details

Details for the file lfo-0.0.5-cp314-cp314-macosx_11_0_arm64.whl.

File metadata

  • Download URL: lfo-0.0.5-cp314-cp314-macosx_11_0_arm64.whl
  • Upload date:
  • Size: 21.1 kB
  • Tags: CPython 3.14, macOS 11.0+ ARM64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.5

File hashes

Hashes for lfo-0.0.5-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 bc82c6e19fe3435217155e40c113e5fc8f7a824a4064bdece5a1d50688f5f2d1
MD5 c5552ef860aee04d1c3efaa6e1b64ddf
BLAKE2b-256 99b08f6250935f01bad90bb47d83316f4f415738b93fc9d4e5e4d25b34e9b27a

See more details on using hashes here.

File details

Details for the file lfo-0.0.5-cp314-cp314-macosx_10_13_x86_64.whl.

File metadata

File hashes

Hashes for lfo-0.0.5-cp314-cp314-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 b17631c870aef65713b8877f87d45f4dfcc557a29d5826cca9dc33bdfaed5ee6
MD5 65c02d5e362372b8b716827de2c6a94f
BLAKE2b-256 804ad94ac08a1e5dbb3b7de7092bc57467032c5597d702bd4df006b2fcff4ded

See more details on using hashes here.

File details

Details for the file lfo-0.0.5-cp313-cp313-win_arm64.whl.

File metadata

  • Download URL: lfo-0.0.5-cp313-cp313-win_arm64.whl
  • Upload date:
  • Size: 21.1 kB
  • Tags: CPython 3.13, Windows ARM64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.5

File hashes

Hashes for lfo-0.0.5-cp313-cp313-win_arm64.whl
Algorithm Hash digest
SHA256 276ea2845f077b27d80ecbf0ac0c90170a82fe4aea19947efc0cef0ee247ad43
MD5 dea96070d75730a36b79343b3fafd069
BLAKE2b-256 cd2a9f367ace28f3131a84d6819c2ebc706c2d83441d747d836d9627e70ae193

See more details on using hashes here.

File details

Details for the file lfo-0.0.5-cp313-cp313-win_amd64.whl.

File metadata

  • Download URL: lfo-0.0.5-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 22.7 kB
  • Tags: CPython 3.13, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.5

File hashes

Hashes for lfo-0.0.5-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 d2c2613e65bb1aa7c59d636d0b9f1879f72a2ff97a909eb5b438407fe0d65e0b
MD5 0bf901a0e3e22612728639d339360373
BLAKE2b-256 ca4a3c4280f87eb54de28810b9d53bdf2cd0bddd87ec7ee09416ea266d38268e

See more details on using hashes here.

File details

Details for the file lfo-0.0.5-cp313-cp313-win32.whl.

File metadata

  • Download URL: lfo-0.0.5-cp313-cp313-win32.whl
  • Upload date:
  • Size: 21.9 kB
  • Tags: CPython 3.13, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.5

File hashes

Hashes for lfo-0.0.5-cp313-cp313-win32.whl
Algorithm Hash digest
SHA256 41792ce6e136169c281879dca8085b9cd5f52cd8b24b5e090dcf469e66933d9a
MD5 8bfe15e3fd537938ae0df8f56d86d342
BLAKE2b-256 30f94c65f43224ff712b28152bad47a191274c487f48166340a07a84f8039330

See more details on using hashes here.

File details

Details for the file lfo-0.0.5-cp313-cp313-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for lfo-0.0.5-cp313-cp313-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 2c2200192ce7117cc613f47488dea35a87d162eafb598844b6d74113d1d9d167
MD5 2c43712dd94e6a19561205b9a0d25a3b
BLAKE2b-256 69078b63d662ddda91b9ca5ba6841aa0ffcc37528fa8c2d188074f208966e33c

See more details on using hashes here.

File details

Details for the file lfo-0.0.5-cp313-cp313-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for lfo-0.0.5-cp313-cp313-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 e765c31b29651a0e406813f2371a5adc5e639577ed152153999f948de4d6f253
MD5 2e601ce49e61239a6fad0fb6461ebfdb
BLAKE2b-256 b4e2cb2b7f5de42ea7cb4433033f3759262fed70805107af30466e1ca42dcab8

See more details on using hashes here.

File details

Details for the file lfo-0.0.5-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for lfo-0.0.5-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 6ca1689e066097fb860465f72f3cd86b833ac3a3439c8930c60a8ed5166db88b
MD5 c0f1b428f56a1f2d20b194268d0832ad
BLAKE2b-256 2c3ed06ff4f7e518a0d44acda0a24f3de523fda38364d186899cfd98c37c4370

See more details on using hashes here.

File details

Details for the file lfo-0.0.5-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for lfo-0.0.5-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 d0bd1082dbaf841bd701f976074682ad006ce009452a04863bf5962c609866b4
MD5 a8a625acea5460c0b7da26a2b1b2ec52
BLAKE2b-256 18bd367cab33ea47cc6af7d15d6db68da759c61acc1bdc2d7f3a4d910e5b7018

See more details on using hashes here.

File details

Details for the file lfo-0.0.5-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

  • Download URL: lfo-0.0.5-cp313-cp313-macosx_11_0_arm64.whl
  • Upload date:
  • Size: 21.1 kB
  • Tags: CPython 3.13, macOS 11.0+ ARM64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.5

File hashes

Hashes for lfo-0.0.5-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 79940a12cdff9ac7f103c2338430e17fc457803202b5093e20ab5288c72daf62
MD5 febe51f563f4b64db24a5cc82b51d74d
BLAKE2b-256 80a4a3722f097aa00f47c1d0d3d205423ef9070017c32eff98ffd6a4b3c3fcc1

See more details on using hashes here.

File details

Details for the file lfo-0.0.5-cp313-cp313-macosx_10_13_x86_64.whl.

File metadata

File hashes

Hashes for lfo-0.0.5-cp313-cp313-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 98842d7de8153c1b24fe620b5bb7f8e6b1374f96300d191c59596995945a71f4
MD5 f7ca93b06519b631f59d1cd4af3e9598
BLAKE2b-256 4711563de7a8871db857690f018b01299c5ea73e61fd0eecf0d00512912166c1

See more details on using hashes here.

File details

Details for the file lfo-0.0.5-cp312-cp312-win_arm64.whl.

File metadata

  • Download URL: lfo-0.0.5-cp312-cp312-win_arm64.whl
  • Upload date:
  • Size: 21.1 kB
  • Tags: CPython 3.12, Windows ARM64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.5

File hashes

Hashes for lfo-0.0.5-cp312-cp312-win_arm64.whl
Algorithm Hash digest
SHA256 624b845b911f77f7000881466cc7dd22d5f333fbf9f86fb370ce29ff18830558
MD5 33224c4bd822e61a533ebbfc75224ab3
BLAKE2b-256 9878457c24b35bd70a1fc0283f01a09846a2699c0edd1d95685669a1fe431a81

See more details on using hashes here.

File details

Details for the file lfo-0.0.5-cp312-cp312-win_amd64.whl.

File metadata

  • Download URL: lfo-0.0.5-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 22.7 kB
  • Tags: CPython 3.12, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.5

File hashes

Hashes for lfo-0.0.5-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 da4036ecdecfbd84cf23f3f25079376dc06f0061a69ef54319d766902bc7b4e6
MD5 50db6f83b74a2f89434303e2ddea4e08
BLAKE2b-256 42bb174ec459d9995e6fdf5ba6679c2815bb3cf5dbad9586d04fd7c4c99fd7f4

See more details on using hashes here.

File details

Details for the file lfo-0.0.5-cp312-cp312-win32.whl.

File metadata

  • Download URL: lfo-0.0.5-cp312-cp312-win32.whl
  • Upload date:
  • Size: 21.9 kB
  • Tags: CPython 3.12, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.5

File hashes

Hashes for lfo-0.0.5-cp312-cp312-win32.whl
Algorithm Hash digest
SHA256 cc51a6da402e22b38d6ae53f201d5dfe57672102662566be28d8e040d58cf486
MD5 d4e2135831b9c03186ddda1db9b24b6c
BLAKE2b-256 7127add5036dd8eb042510b44de221a25b2ec2cb554ef9bfca322cb2bf2afcc1

See more details on using hashes here.

File details

Details for the file lfo-0.0.5-cp312-cp312-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for lfo-0.0.5-cp312-cp312-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 f5dd79616ac014462275fb18d72297d4e7e9176a294b7b8b378d5d7c430e80cb
MD5 9c5563153730caad3e53ff6dcc02bfed
BLAKE2b-256 f4499e7bb65598e8fc6cfde301546a7588518289261ea796ce3bb74f750c7dcc

See more details on using hashes here.

File details

Details for the file lfo-0.0.5-cp312-cp312-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for lfo-0.0.5-cp312-cp312-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 d36369d9aa1177f52a1681222087d53b312261904e8dbdda699f542fe5072def
MD5 8a869204c6bfb684f8e787596777ed88
BLAKE2b-256 99d2f10f177aec7bfa1acc429e1c36d58fb868ccb2dd2fd30662ce90aedaa87f

See more details on using hashes here.

File details

Details for the file lfo-0.0.5-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for lfo-0.0.5-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 7b323cdecf9523680bb7043d44bf266f47b067147eba99cda2836792c4a68cdc
MD5 03bc4e8d100c2f412bc67ccb79d45c3e
BLAKE2b-256 5ef9391d7e37262bf11c17688e362ae554440508a3969308b7e6b7d2d0b6b271

See more details on using hashes here.

File details

Details for the file lfo-0.0.5-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for lfo-0.0.5-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 0dfe03454534aa066ba3c95da5c7e5b6506848f8669f9deefdb1723749850e09
MD5 41cd54fec7452e1b02dfaa648534b556
BLAKE2b-256 a9a1873a67c77cef9b07f0b4f73c372770072330ffcae91586b034a0c2091ef7

See more details on using hashes here.

File details

Details for the file lfo-0.0.5-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

  • Download URL: lfo-0.0.5-cp312-cp312-macosx_11_0_arm64.whl
  • Upload date:
  • Size: 21.1 kB
  • Tags: CPython 3.12, macOS 11.0+ ARM64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.5

File hashes

Hashes for lfo-0.0.5-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 d37ce0a08f8a33fdbc461032c05c427c8fe1791ffbfb2f52f3b07ddf83aa44a1
MD5 1f3a4dd26eb40421230a8a1a5d6a239e
BLAKE2b-256 fe89e83e1e26026b6b90ac5081acd32f16809144050deebda857c1f8407fc7bc

See more details on using hashes here.

File details

Details for the file lfo-0.0.5-cp312-cp312-macosx_10_13_x86_64.whl.

File metadata

File hashes

Hashes for lfo-0.0.5-cp312-cp312-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 4a6a11d7a8d25e8efac22cc6ccbd3d17de95dabb1804c937b7dcbcd41e40d6f2
MD5 7a016ec0858f3b50e07b43384b0f8514
BLAKE2b-256 a638ba15bcb0097f5233876854889f4a1a62c5f0eeffd8589d22c6f83ddeae47

See more details on using hashes here.

File details

Details for the file lfo-0.0.5-cp311-cp311-win_arm64.whl.

File metadata

  • Download URL: lfo-0.0.5-cp311-cp311-win_arm64.whl
  • Upload date:
  • Size: 21.1 kB
  • Tags: CPython 3.11, Windows ARM64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.5

File hashes

Hashes for lfo-0.0.5-cp311-cp311-win_arm64.whl
Algorithm Hash digest
SHA256 ff858919251cec5efb17178b4415cc94c0e637cb359d413638178702d8492048
MD5 6ab722cc117d349ff17e32cbf95343de
BLAKE2b-256 04faf73d8c2db45c14265f4cf25092d48cc2ac1f51b5027fab3dc5049213fa92

See more details on using hashes here.

File details

Details for the file lfo-0.0.5-cp311-cp311-win_amd64.whl.

File metadata

  • Download URL: lfo-0.0.5-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 22.7 kB
  • Tags: CPython 3.11, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.5

File hashes

Hashes for lfo-0.0.5-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 be79b57455b1268aeffd8610510579f8666228c9df4bc8616469e45461e5ad2d
MD5 31d8775d5be4d79cd5de453f90dd5950
BLAKE2b-256 48ce4b136a45424e844664bf476545f5a6adaa9e66f0889591339d724d9fc5a5

See more details on using hashes here.

File details

Details for the file lfo-0.0.5-cp311-cp311-win32.whl.

File metadata

  • Download URL: lfo-0.0.5-cp311-cp311-win32.whl
  • Upload date:
  • Size: 21.9 kB
  • Tags: CPython 3.11, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.5

File hashes

Hashes for lfo-0.0.5-cp311-cp311-win32.whl
Algorithm Hash digest
SHA256 fb2ca6a6d958eb19d192c437ef5e06924c11498a12415347f3f26c89382c22f1
MD5 d163feea26e13ee08545a5cbd9208fdf
BLAKE2b-256 97f5d4a28df88bf59bb155c01ff0255f25291bd6fecdcbc6613c757902183724

See more details on using hashes here.

File details

Details for the file lfo-0.0.5-cp311-cp311-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for lfo-0.0.5-cp311-cp311-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 166c341d78e9bea074bdb7e989b238b371e6160bc8fa1a3cf9d0e4fdade2722d
MD5 2f0cd1c12cd22349a5b8c20796a6e042
BLAKE2b-256 f7e9e19c5f917c62a6245340d271427c86d6b427a86e1a7e31f1ffe96ae08852

See more details on using hashes here.

File details

Details for the file lfo-0.0.5-cp311-cp311-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for lfo-0.0.5-cp311-cp311-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 d61c78255574bb0d169e0b01e36bf4be38e6d70e7c18d5e13f405beb3dd3a0c7
MD5 f5102de865e45507fcc6623857b8b814
BLAKE2b-256 3111dc039cac9f46091cf1b443ea45c824db4d615036917591b578c5fe15d16f

See more details on using hashes here.

File details

Details for the file lfo-0.0.5-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for lfo-0.0.5-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 1fab74427e74eeed34dbd6c3aa385b7543c5a26b9ca49c449bd20dc3660e6808
MD5 8516720a5bce023d9bf1306bfae46cf8
BLAKE2b-256 97559ff5578b536b97abfa9bee8684cc85195bc5d15ab7d944c3be4dcec81ce8

See more details on using hashes here.

File details

Details for the file lfo-0.0.5-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for lfo-0.0.5-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 5a497e139eeb4756192bb26d69345ee6131bde8d1517676fc1c78a0c90c38ecb
MD5 a90a85b214b56acdf7fe61191a6b2e29
BLAKE2b-256 e843366bc080b048c39a3c0aba56160decff31a2df51b56c26326d0954416f08

See more details on using hashes here.

File details

Details for the file lfo-0.0.5-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

  • Download URL: lfo-0.0.5-cp311-cp311-macosx_11_0_arm64.whl
  • Upload date:
  • Size: 21.2 kB
  • Tags: CPython 3.11, macOS 11.0+ ARM64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.5

File hashes

Hashes for lfo-0.0.5-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 6b90aea43175a5082a0e2176c825e1fef02164ddc6591b3d9f1f914e49534ac5
MD5 220f9ca75ebaef46068e94e7a6bb38b5
BLAKE2b-256 af19b08348d68b7b2c1faee9e53ada88a98b8371c8c1ed7865b6839b2d426d4c

See more details on using hashes here.

File details

Details for the file lfo-0.0.5-cp311-cp311-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for lfo-0.0.5-cp311-cp311-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 058a2777c6b2c0ed9e01a43849e4b000a493c05060aa9ec63731a28f002e8247
MD5 2accfee7cfee2b02ca51d92adac8cb4c
BLAKE2b-256 90179d5d47141b750849ad284242232b02305310df90078b479694fa25a48d1a

See more details on using hashes here.

File details

Details for the file lfo-0.0.5-cp310-cp310-win_arm64.whl.

File metadata

  • Download URL: lfo-0.0.5-cp310-cp310-win_arm64.whl
  • Upload date:
  • Size: 21.1 kB
  • Tags: CPython 3.10, Windows ARM64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.5

File hashes

Hashes for lfo-0.0.5-cp310-cp310-win_arm64.whl
Algorithm Hash digest
SHA256 1f3b6d59ad1c6f8c07288eb9eae9d4075b0a11de4a4cd082f95a16e12fb71d4c
MD5 ecdd79f9ae13a3a951d1c194b803cbc6
BLAKE2b-256 6c92a74c438f170b2080e9a461257f0667552c1b689f98585840c5f952960a53

See more details on using hashes here.

File details

Details for the file lfo-0.0.5-cp310-cp310-win_amd64.whl.

File metadata

  • Download URL: lfo-0.0.5-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 22.7 kB
  • Tags: CPython 3.10, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.5

File hashes

Hashes for lfo-0.0.5-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 b10fb3db7478602bda3352a89575ad6dba632b88c30ea1d2a2e91d02fbdda708
MD5 e06e387485375b4cc2640ca2ec3a377f
BLAKE2b-256 e7bccc3325691d9f6cf69d65d54e8bb63026564b473b82245f4fb0e1894a4f67

See more details on using hashes here.

File details

Details for the file lfo-0.0.5-cp310-cp310-win32.whl.

File metadata

  • Download URL: lfo-0.0.5-cp310-cp310-win32.whl
  • Upload date:
  • Size: 21.9 kB
  • Tags: CPython 3.10, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.5

File hashes

Hashes for lfo-0.0.5-cp310-cp310-win32.whl
Algorithm Hash digest
SHA256 84e60c30f6641376b5f7365d2000a2586a8665a9350486181cd5c2c58b42d329
MD5 930fbffdcb3d63de56aec13b6997e70d
BLAKE2b-256 9dafb6d7c4f6ca5348df8ebe850535e550c88cccf9d053f0cd48635117100958

See more details on using hashes here.

File details

Details for the file lfo-0.0.5-cp310-cp310-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for lfo-0.0.5-cp310-cp310-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 57f497741b9f44240f2861e91649302598577ca318f88e166e44125bc90c54ba
MD5 62edabfbf6742dbe297f96be8f856845
BLAKE2b-256 4bfe43aac3521b652691fb4b2fb5257938a88f2806271fe43e1f45d39f455044

See more details on using hashes here.

File details

Details for the file lfo-0.0.5-cp310-cp310-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for lfo-0.0.5-cp310-cp310-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 c9f499579c38414b1886ac58d7c3b08e92d5d13ef97c6fbbf97ad5bb7ee39cd6
MD5 cafeb8b120a2312291551fbd21d0852c
BLAKE2b-256 34f3e40c8becfcc9d9d38f610de9b063c3ae420be1bc4938d280c164d74a5170

See more details on using hashes here.

File details

Details for the file lfo-0.0.5-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for lfo-0.0.5-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 c3ef87c20e2e69fa945babd411fa1d1bf8612dbdfb063336b12dd12aea7e8b36
MD5 453b5fda913e48d2ce82e7005526c6de
BLAKE2b-256 be149bb37da084fdd6471a27b9238fa0e2e8b5781d19e9d3e1ab7b7b69818e7a

See more details on using hashes here.

File details

Details for the file lfo-0.0.5-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for lfo-0.0.5-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 244cc927b969500090852ab17db3bc772969021f9ca07f8ec83214f47f0ef495
MD5 5e3eca35e88b4ee2bf97641347e42f58
BLAKE2b-256 febcb0f0440aa1b4e6c95efd1a9a208039d628db9048b4e799a85d8fd7743a1c

See more details on using hashes here.

File details

Details for the file lfo-0.0.5-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

  • Download URL: lfo-0.0.5-cp310-cp310-macosx_11_0_arm64.whl
  • Upload date:
  • Size: 21.2 kB
  • Tags: CPython 3.10, macOS 11.0+ ARM64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.5

File hashes

Hashes for lfo-0.0.5-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 e74d692975e4a6764405cb7843800677635a9cf34dd46e39844be3fd9c76c1bb
MD5 aa8bc972772b2ec25b48e5c2d9f97385
BLAKE2b-256 bd3c1474457adb81b13e879cdc96119d9ba40c43e26390e178f7d01e1edd0585

See more details on using hashes here.

File details

Details for the file lfo-0.0.5-cp310-cp310-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for lfo-0.0.5-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 74c6eefd862d10a2176b62508d1b818c46e20e575a0ff1e9f428b44fb1d60586
MD5 3ce48e8b4b2e0049f151779291ee4ef8
BLAKE2b-256 b9f424d488837081c2c84eba726f47bcbb8fea94dad3d04dc42193066b78649d

See more details on using hashes here.

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