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 twistable 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 an infinitely repeating curve 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 (see further below for descriptions), but I'm open to suggestions to extend this list:

* lfo.sine, lfo.cosine
* lfo.triangle
* lfo.sawtooth
* lfo.square
* lfo.one
* lfo.zero
* lfo.random
* lfo.inv_<waveform> - All of the above, but inverted

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 these wave forms from the same lfo. The lfo instance basically just defines the heartbeat for all the waves.

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.

The LFO class

Instantiation

wave = LFO(10, default_wave=Wave.inv_sawtooth, ...)

Overview

Primary Instancing Attributes, Read/Write

  • lfo.period: float = 1.0
  • lfo.frequency: float = 1.0 - Internally an alias for 1 / lfo.period
  • lfo.cycles: int = 0
  • lfo.default_wave: lfo.Wave = lfo.Wave.sine

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 and Defaults

  • 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

Detailed Description and Terminology

Primary Instancing Attributes

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 that, it will return the value of the end of its period until it is reset.

The default is 0, which means the lfo will not terminate.

See note at lfo.random.

lfo.default_wave

Set the default wave form when "casting" the lfo to int, float, bool, or when calling it with lfo().

Defaults to lfo.Wave.sine.

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> which returns 1 - <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, since sine and cosine are rarely used to scale things, but to rotate them, 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.

Think "fading out" (sawtooth) and "fading in" (inv_sawtooth).

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. It's basically a timed switch.

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: inv_random makes zero sense but it still implemented to provide a consistent interface.

Note 2: 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.

lfo = LFO(period, sine_attenuverter=0.5, sine_offset=0.5, ...)

So the attenuverter and offset alwasy return

`wave * attenuverter + offset`

Note: 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 in future versions.

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 described further above, use lfo.is_frozen(), which returns a bool.

lfo.set_attenuverters(amount: double) -> None

Set all attenuverters to the given amount.

Note: This might require sine and cosine attenuverters to be set additionally.

lfo.set_offsets(amount: double) -> None

Set all offsets to the given amount.

Note: This might require sine and cosine attenuverters to be set additionally.

lfo.rewind(amount: double) -> None

Rewind the lfo by the given amount in seconds.

lfo.skip(amount: double) -> None

Skip the lfo forward in time by the given amount in seconds.

lfo.set_default_wave(n) -> None

This is the function version of passing default_wave= to the constructor or setting it during runtime.

Set the default wave for lfo(), float(lfo), int(lfo) and bool(lfo) (See Python Magic Methods below).

This accepts an int, but the lfo.Wave enum should be used instead.

lfo.set_default_wave(Wave.inv_triangle)

Python Magic Methods

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

Note: By default, the sine wave is returned. This is configurable by lfo.set_default_wave(n) described above.

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 (or configured default wave) from the lfo.

In addition, lfo is both an iterator and iterable.

from lfo import LFO, Wave
from time import sleep

l = LFO(10, default_wave=Wave.inv_sawtooth)
next(l)
>>> 0.2457116119475273

l.reset()
for i, v in zip(range(10), l):
    print(i, v)
    sleep(1)

>>> 0 1.202999999616594e-07
>>> 1 0.10007948659999999
>>> 2 0.20009758980000003
>>> 3 0.3001155295
>>> 4 0.4001310015999999
>>> 5 0.5001526283
>>> 6 0.6002004129
>>> 7 0.7002980965
>>> 8 0.8003155583
>>> 9 0.9004469224999999
>>> 10 0.00046909910000003663

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.6.tar.gz (29.9 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.6-cp314-cp314-win_arm64.whl (22.4 kB view details)

Uploaded CPython 3.14Windows ARM64

lfo-0.0.6-cp314-cp314-win_amd64.whl (24.1 kB view details)

Uploaded CPython 3.14Windows x86-64

lfo-0.0.6-cp314-cp314-win32.whl (23.3 kB view details)

Uploaded CPython 3.14Windows x86

lfo-0.0.6-cp314-cp314-musllinux_1_2_x86_64.whl (55.9 kB view details)

Uploaded CPython 3.14musllinux: musl 1.2+ x86-64

lfo-0.0.6-cp314-cp314-musllinux_1_2_aarch64.whl (54.6 kB view details)

Uploaded CPython 3.14musllinux: musl 1.2+ ARM64

lfo-0.0.6-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (56.2 kB view details)

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

lfo-0.0.6-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl (56.4 kB view details)

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

lfo-0.0.6-cp314-cp314-macosx_11_0_arm64.whl (22.2 kB view details)

Uploaded CPython 3.14macOS 11.0+ ARM64

lfo-0.0.6-cp314-cp314-macosx_10_13_x86_64.whl (22.0 kB view details)

Uploaded CPython 3.14macOS 10.13+ x86-64

lfo-0.0.6-cp313-cp313-win_arm64.whl (22.0 kB view details)

Uploaded CPython 3.13Windows ARM64

lfo-0.0.6-cp313-cp313-win_amd64.whl (23.6 kB view details)

Uploaded CPython 3.13Windows x86-64

lfo-0.0.6-cp313-cp313-win32.whl (22.8 kB view details)

Uploaded CPython 3.13Windows x86

lfo-0.0.6-cp313-cp313-musllinux_1_2_x86_64.whl (55.9 kB view details)

Uploaded CPython 3.13musllinux: musl 1.2+ x86-64

lfo-0.0.6-cp313-cp313-musllinux_1_2_aarch64.whl (54.5 kB view details)

Uploaded CPython 3.13musllinux: musl 1.2+ ARM64

lfo-0.0.6-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (56.2 kB view details)

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

lfo-0.0.6-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl (56.3 kB view details)

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

lfo-0.0.6-cp313-cp313-macosx_11_0_arm64.whl (22.2 kB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

lfo-0.0.6-cp313-cp313-macosx_10_13_x86_64.whl (22.0 kB view details)

Uploaded CPython 3.13macOS 10.13+ x86-64

lfo-0.0.6-cp312-cp312-win_arm64.whl (22.0 kB view details)

Uploaded CPython 3.12Windows ARM64

lfo-0.0.6-cp312-cp312-win_amd64.whl (23.6 kB view details)

Uploaded CPython 3.12Windows x86-64

lfo-0.0.6-cp312-cp312-win32.whl (22.8 kB view details)

Uploaded CPython 3.12Windows x86

lfo-0.0.6-cp312-cp312-musllinux_1_2_x86_64.whl (55.8 kB view details)

Uploaded CPython 3.12musllinux: musl 1.2+ x86-64

lfo-0.0.6-cp312-cp312-musllinux_1_2_aarch64.whl (54.5 kB view details)

Uploaded CPython 3.12musllinux: musl 1.2+ ARM64

lfo-0.0.6-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (56.2 kB view details)

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

lfo-0.0.6-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl (56.3 kB view details)

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

lfo-0.0.6-cp312-cp312-macosx_11_0_arm64.whl (22.2 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

lfo-0.0.6-cp312-cp312-macosx_10_13_x86_64.whl (22.0 kB view details)

Uploaded CPython 3.12macOS 10.13+ x86-64

lfo-0.0.6-cp311-cp311-win_arm64.whl (22.0 kB view details)

Uploaded CPython 3.11Windows ARM64

lfo-0.0.6-cp311-cp311-win_amd64.whl (23.6 kB view details)

Uploaded CPython 3.11Windows x86-64

lfo-0.0.6-cp311-cp311-win32.whl (22.8 kB view details)

Uploaded CPython 3.11Windows x86

lfo-0.0.6-cp311-cp311-musllinux_1_2_x86_64.whl (55.7 kB view details)

Uploaded CPython 3.11musllinux: musl 1.2+ x86-64

lfo-0.0.6-cp311-cp311-musllinux_1_2_aarch64.whl (54.9 kB view details)

Uploaded CPython 3.11musllinux: musl 1.2+ ARM64

lfo-0.0.6-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (56.1 kB view details)

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

lfo-0.0.6-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl (56.6 kB view details)

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

lfo-0.0.6-cp311-cp311-macosx_11_0_arm64.whl (22.2 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

lfo-0.0.6-cp311-cp311-macosx_10_9_x86_64.whl (21.9 kB view details)

Uploaded CPython 3.11macOS 10.9+ x86-64

lfo-0.0.6-cp310-cp310-win_arm64.whl (22.0 kB view details)

Uploaded CPython 3.10Windows ARM64

lfo-0.0.6-cp310-cp310-win_amd64.whl (23.6 kB view details)

Uploaded CPython 3.10Windows x86-64

lfo-0.0.6-cp310-cp310-win32.whl (22.8 kB view details)

Uploaded CPython 3.10Windows x86

lfo-0.0.6-cp310-cp310-musllinux_1_2_x86_64.whl (55.7 kB view details)

Uploaded CPython 3.10musllinux: musl 1.2+ x86-64

lfo-0.0.6-cp310-cp310-musllinux_1_2_aarch64.whl (54.9 kB view details)

Uploaded CPython 3.10musllinux: musl 1.2+ ARM64

lfo-0.0.6-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (56.1 kB view details)

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

lfo-0.0.6-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl (56.6 kB view details)

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

lfo-0.0.6-cp310-cp310-macosx_11_0_arm64.whl (22.2 kB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

lfo-0.0.6-cp310-cp310-macosx_10_9_x86_64.whl (21.9 kB view details)

Uploaded CPython 3.10macOS 10.9+ x86-64

File details

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

File metadata

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

File hashes

Hashes for lfo-0.0.6.tar.gz
Algorithm Hash digest
SHA256 c78ac0d61e454a4da0039f7e35f42b954fead186abfa12314d8a43774ac5b94a
MD5 21a2b623da4a47a664e3d4ff4438b830
BLAKE2b-256 665dc8b915389c94aa5aa8742622f21239b8e5f39f3a65ebb3b833233585f655

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for lfo-0.0.6-cp314-cp314-win_arm64.whl
Algorithm Hash digest
SHA256 58d04331299a5925c6b5e4be84d9fba6730520def56969728986f7a7dacc027d
MD5 be70bf00825c3310ece1c31547a8299c
BLAKE2b-256 89c958b6478bb51f7d11599d1eeea2eb5f7ee7ae883f343a16872dca5f9a66c6

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for lfo-0.0.6-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 cbad38fdae4a0c723cc7b9c04ccd0d65d63a3cb101e86133bb9366cf5d8b37ac
MD5 b568dc8f2b61150f423604e69c4ce4e0
BLAKE2b-256 00b10d46d2163f1925b998fdaf360c82d26ad46466575a76e3de091b8d32ca09

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for lfo-0.0.6-cp314-cp314-win32.whl
Algorithm Hash digest
SHA256 ee52a7f327f06d1376f334a87d9a74ff0a8f9200ebcf0eb011cdad6172eba9d3
MD5 c4b80fb9cf211f76c22825bb69650519
BLAKE2b-256 f81c7b76232ba7dd475242045221a19cf02e0ee518fd32cf3874300b7d6d4d91

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for lfo-0.0.6-cp314-cp314-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 b33156d8005ac8a82e10372ccb07106b3d7c20d0f5a6c0467585fa0b581654b9
MD5 dbb50ac6408d045776a4ea2b2b3f3bd7
BLAKE2b-256 3662c7153f199efe87abe32301a1fa65b94ced2964e9b48e80cffb625358b2c3

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for lfo-0.0.6-cp314-cp314-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 db7c82952fbd59eda351a8ff03bed7ae133f9cf77c8acf224dc2ac2a954fdc2e
MD5 92ce34398d9a3392f916a6680739c6cf
BLAKE2b-256 be0ed5afca9e0973784a37108c28b067ddfeb894b33d6097e03dd78df74ce967

See more details on using hashes here.

File details

Details for the file lfo-0.0.6-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.6-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 964f993d2ca6564c117a776dee003fcd57cded513c48fd8359c7006bf6c8553a
MD5 049bab328835c795ba1f1ca0a66394eb
BLAKE2b-256 931f6a5b8b56ecc36e0c4753691eded3c7e9454d23021da63c9a879e43a9b026

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for lfo-0.0.6-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 30141bf88adaac562348c37d5e7afc0f06dda59b3dd123e01666e4df077ef6e0
MD5 2b958a438b3932f831ac7d89d60593ae
BLAKE2b-256 670c696307c01f13031e6ddfef3e007fd7190ec700c7f3358158fca7b853a448

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for lfo-0.0.6-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 5e22154c7e595cb128f3d46b6b918d23157b9a51950b6666bd09047cb3e3c564
MD5 8b0844559b14f8efd2c6ed4605d83a0c
BLAKE2b-256 a80dd54125733a269ee12153d3f236350b1caba6262b34621a24154e9564f12b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for lfo-0.0.6-cp314-cp314-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 556f9891820cff479278e84b07abdc67d4a82b477f7cd160286794c9b7abda9f
MD5 97a295fd85ae8421e029cd4b09beae79
BLAKE2b-256 a38d593612b50c3bc2f92527a3285d9ccdc3b38d8eee7f9b99f1e5dd8aaa5306

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for lfo-0.0.6-cp313-cp313-win_arm64.whl
Algorithm Hash digest
SHA256 247045d30887cda3a6d69b61e62787ad3dbd2bb8646fdcae75167a114093a609
MD5 d5a47c489259b73520bb36cdfc0181d7
BLAKE2b-256 6c768ff4e3e3d6e8f4b4f50733758f9f424af9f7397c8c71aae223ce9bcf2a78

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for lfo-0.0.6-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 25eedc5b8d9b1bd368b6b016f2979d11be117cb02c5e30ace8cf11c99b10d8cb
MD5 f0cd3daf861c79e32a4b298773cdb413
BLAKE2b-256 5a267db7fb8770d6c2f8901238ab27f2ca8acb48a36c5d77dc7d13be9e23f0ef

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for lfo-0.0.6-cp313-cp313-win32.whl
Algorithm Hash digest
SHA256 cfed13d98f46f61b2e237dfdc003042a93adabfee11fcc0895faa0fd3ac00c21
MD5 e370b4dfb8632999f1c77d35ea2cfc1e
BLAKE2b-256 edecbeed6d563cb7421dbaa4e39c1ad56cec6f50665b0e4c86a5ac7d4733ceb8

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for lfo-0.0.6-cp313-cp313-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 0454b9d2542fd788691c65e33819495bf7413c3ea6bfecc0e482ae49f637814e
MD5 b53d52b8974a59757b4dc105505081ca
BLAKE2b-256 53893b360f42921abf686669666bdcfd1a755d44ca07ed89afae03bbd706d58e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for lfo-0.0.6-cp313-cp313-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 61c6fb1b56410013ea818188a27580ff329977911142fa27d2866041a61239c8
MD5 6857d9210734ca77cc33757b4c97a25e
BLAKE2b-256 35794f3d477dda93a935aea7c4e6ee28536100a5e4da8acb8a201fbbdf0bc2e0

See more details on using hashes here.

File details

Details for the file lfo-0.0.6-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.6-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 2c1ee358cc45bc035cc21f637c56f9b593b071573abf97d082d588591c2e7b9c
MD5 a4f6fcb75bade2a712d69a54825883eb
BLAKE2b-256 d7370ec8d2eff748dddba412988eb87861f0f153a18f6593bfbeb436f9527150

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for lfo-0.0.6-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 a787dd44c24dada9d9afb9a756d30904f6e2999c2a8bf924e38624034b11032c
MD5 44578ed0d750027e15214fb7aab174a2
BLAKE2b-256 41a510ccba3947cc5b8bd8a95288283f8abbc8aa1e3fc2c9a1fa240246ab2099

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for lfo-0.0.6-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 6fa10448898bd9bdc834c63c6d4926dca954ff90421ab8a8f6dd18458ae0389a
MD5 57e28d12aafd62fb872cb1f14bd55ed0
BLAKE2b-256 fe686bc4ac6071d2108724cb4e61782c9a5a2f32692ab2672c3cb74d95c6057f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for lfo-0.0.6-cp313-cp313-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 d45c551d1f9a1165d47be9ef1e8267139e9ebc3f806f45d56b5df51e4b794d0b
MD5 b598df6b68bdaca7775cdd1d16d9ef18
BLAKE2b-256 30dcb4468e27058bbfbde8187ccbc930390169352fc92029259644b9778d0653

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for lfo-0.0.6-cp312-cp312-win_arm64.whl
Algorithm Hash digest
SHA256 b4fa2479e3dcb9dccd54ba835f7a5ac7d7deb03b2cb49131fd32faacd7d008ee
MD5 f5c5f644a06315e4f800d814607d97f5
BLAKE2b-256 ae732dc94e7575b703592cbcc9028b44c3f8ebb91aa1a10137ce024ed957afb7

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for lfo-0.0.6-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 eec699db9e5c1514f1dd807aa8da10293762353839e89b1f115da1f6afe463e8
MD5 153a8667f53243d9a073108238f638b2
BLAKE2b-256 9f3120c55379b7c44c59447996272b5d3b19d0ce60887b4a483ba0271b87ff15

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for lfo-0.0.6-cp312-cp312-win32.whl
Algorithm Hash digest
SHA256 105abdc68681d426536d3b4f3cc6b06a9c44e2b0a8719ceb1991abdea758d677
MD5 308399dfe5638a3f78e384f4c9ebdb5a
BLAKE2b-256 65acaeb6566ff1f5b8ed0d700d681f6c0a8e0403db9d0c34c33f8946736d2263

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for lfo-0.0.6-cp312-cp312-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 b35f3130d696c05c7cc0b1a8afc71b7a03ba37168503a251fba204625195cf14
MD5 6cc1e371272c9f32398c407c28f64080
BLAKE2b-256 02ec204af1cc66d5e586ecb10d4c1ce5ce20b7689bd7eb0f1eab302ac3d3fa05

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for lfo-0.0.6-cp312-cp312-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 bdc717bc20b157628c76a4edf2fb1e7ef3e49fab68a7b81859e15fbc336d91fc
MD5 2faa8cb3c2853093a22440dec120521d
BLAKE2b-256 2639d4aa9a2796163926d1ae2d84713165ec9e19cf62b02b6b1783720c10fe3b

See more details on using hashes here.

File details

Details for the file lfo-0.0.6-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.6-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 0847895b9bbfcdddc0a94e236286ec96155dd9006172e69a6b197be23c6bc296
MD5 b3f4d495dff9c6d59af41fb152c583e8
BLAKE2b-256 814a246d13e77ca63be04d74f039ba077637f56fa033cfeed4fb3d1562da2d8a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for lfo-0.0.6-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 94c93bca542f8c8e5b55aeefdf8467ef653e42cffecf75548d8bd86318d60244
MD5 2d76188f163d9389f7aa38a92b8086d0
BLAKE2b-256 ef1c59987b4c0d943ae017df528609e0d7f96be8c20345ac9af60767c3a315fd

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for lfo-0.0.6-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 cee6ac59765e826f54ed70ba5d85fbed82c58092cb89a005246d40c72ebb085f
MD5 653563db2974a3b908e0efbd2501c3bf
BLAKE2b-256 f541b2be0bfe8a1c0fc99956ed9fa02125380cc4db908b274f261c164888b01e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for lfo-0.0.6-cp312-cp312-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 b6f4649a707850ff35116951e6d82712ae920550437d00f8b027ed0f9df2c662
MD5 65f44b00a4f629035fda69ea2cd8a684
BLAKE2b-256 23f3bbae4936cdbccf591a790bc8d0b3fa76157fe3c51dbb835641f230fee1f2

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for lfo-0.0.6-cp311-cp311-win_arm64.whl
Algorithm Hash digest
SHA256 558f2a880b0d0645d59013f4701707c4229449db463db719325c3585107f0c2e
MD5 54404f16b4984b4e581e41221e44cb64
BLAKE2b-256 771c488984a7dfee0d87e9abe73d25f4c4c427043dc97dd5550b85c589f1f97a

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for lfo-0.0.6-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 e8440313db42a1c56e25f26a66ae44d3122b3bec68c50f54060733e87d2e5010
MD5 2a9e1a2b9f0ac8f7db17ca6b256e9a8e
BLAKE2b-256 33d7d3db1a789abce874ae2d7a1975a31550cf8d1d29b4298007b053e5fa4342

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for lfo-0.0.6-cp311-cp311-win32.whl
Algorithm Hash digest
SHA256 12f562b01b4c56214041a5e17a1de44267c5aaaad39593c267b1dfd9aa1c170a
MD5 db2be2d7e33a14123ad5454c2904db38
BLAKE2b-256 99a7a80589c2188d57cfa7523bfcf2f1d9f8f1bf243abcb3932c4a0a9abaccf5

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for lfo-0.0.6-cp311-cp311-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 d470c8c07ff29edc50b5682ce3898f6a8567e205e222c9152aa9f37da75eb4ad
MD5 8c082280c5eeb0bcbd1f549d54833822
BLAKE2b-256 92e15462f414905c4886bd354e2fc248b422512ca7c868fa6a4a0f2db21b633d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for lfo-0.0.6-cp311-cp311-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 ab084bb191064b9b99844b06454a27b61643f83c593bf91c800c5cabb8d6f31b
MD5 54341a653b7f467affcc4c0686188395
BLAKE2b-256 4c10f97e28227483c16e10a0df74f118349205a447a3e2c34ed7a82e3b2005ae

See more details on using hashes here.

File details

Details for the file lfo-0.0.6-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.6-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 88a65f727b640416f8008a11f5095d404a1c79f3ac6f3e88487d7d8b9bebb53f
MD5 a17089599e03145e024f90f7eecab2ea
BLAKE2b-256 84524a8126b639892a02ee4309492c0d177be07bd5bf64f95175a377c20175e0

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for lfo-0.0.6-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 c78ccd421f9316e9664695bfe634dac9d066ba47d916d67be843e3514979927f
MD5 16d3cc564174cb99e0b941e6592cba31
BLAKE2b-256 14360a1043427fc35e96e895a5e5a3f67e701913ca96efabac03164bde359d95

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for lfo-0.0.6-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 6ef783bbafeb5d1cda1c72ac03efe5ec2df175ef1a9c87a0865b87c20581d9c6
MD5 4e9567c09aeef054f7b6141c7e66e304
BLAKE2b-256 99d95280f78c3266afd5ae81c3cc28014774d34007f998edb63c25821050f110

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for lfo-0.0.6-cp311-cp311-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 f1a4b1fb02f12e89f30d179fcb181b51853079dcd5f444b57b8178714a61601c
MD5 d9123ad37cb9651b0b6086feb58481f9
BLAKE2b-256 2d913bec9c1ecbe9caeb67453f5dfd88f9871db07c93755e432c061d552594b1

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for lfo-0.0.6-cp310-cp310-win_arm64.whl
Algorithm Hash digest
SHA256 7ebbd5aeae8d015ac0405636236942df2f9456c6c9146b2e985875d8439a7645
MD5 2ac5a18b819290a910a9411ca9cdec45
BLAKE2b-256 d0f26737ef90c448fa8c21332033c072126dafa9c3c1997b8468eb52f11bbece

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for lfo-0.0.6-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 2542ab27e72a9f21e187ad7169edc8edabea5622d80d8d321df0f3d57f925797
MD5 b98276329f04104979fbed8edae06cb3
BLAKE2b-256 23714876c1c063ea6a2d0f2918f75e0c6e9099bd45e0846d74354a866d92516d

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for lfo-0.0.6-cp310-cp310-win32.whl
Algorithm Hash digest
SHA256 f8861aa86dda85d096628f785eff05e23e7d5c9acf0ef509b34e0901516129e6
MD5 a6672553aaa8301350bf34d7cd1397b0
BLAKE2b-256 b6258d3dad09d287c09e0866c9e18831256f164dbd8f334e9ad8c7601d4429ea

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for lfo-0.0.6-cp310-cp310-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 8e20c1384984cc94be6cd35b22836087ba030c5760e8b7e2fe19aff45183452f
MD5 08c85122873c5576b16ee70e0b4cbe42
BLAKE2b-256 e0d6398a20d74d7eaf88e1923c2d3ed81bdc22959c450a02811b6856bc7a4344

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for lfo-0.0.6-cp310-cp310-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 1926fd8df27039b1601679283259d1345c9ee9dec86ef8267873dbad149894dd
MD5 c7607194c875ae9e10ee068ec9de598c
BLAKE2b-256 a67b3f6519fdcdf3eacd8e1c2ebf9b2140531ae8a5238b486b7b5ce381464340

See more details on using hashes here.

File details

Details for the file lfo-0.0.6-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.6-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 4407ac5d8cfff8fffe5a05d93282dc5dbfc626c0c785f6e7aa72aae3270991c6
MD5 a60d3bbe73cb5e4df5307df9534632bb
BLAKE2b-256 634d7403a8b5d2dcae931bec1acf31cb5b5b58bf420eff5e1a61e4bb46eedd12

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for lfo-0.0.6-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 db02c0f0380a03457f33c1326abe5ec4a8ad47b689f3b138a9a2b9547eb1f7b9
MD5 bc903a32a9c2093b9d52de4f92b0a654
BLAKE2b-256 ef6bae55b04852a8943e8b3f9f4b233216edc1543c6e9e5ed3d69f8f8e5bb689

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for lfo-0.0.6-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 f483dd1a9e4fce0fc07ba519994b308fad0696f2dbad5e208f53d82af4bb4562
MD5 481a2520deae818c8fe12ee65772c69f
BLAKE2b-256 c4d70ec4b0153051a1969a86988d32348d48f4b1d98ae092e2b67b532e5017ce

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for lfo-0.0.6-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 bb83e146aefc7c3068d427d579e884b8a6958a5ea6d52fd2a8cdaa5ae0748601
MD5 60c2d1ecd7f3769032ff0bf4668fdd8e
BLAKE2b-256 6ae9cddd5bab5ff55bc3e40f431898ca513f6c33310d635c2ad16f389b470421

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