fun light game
This commit is contained in:
parent
b34f557c64
commit
5f905156c2
6
.gitignore
vendored
6
.gitignore
vendored
|
@ -6,3 +6,9 @@
|
||||||
|
|
||||||
# nix flake
|
# nix flake
|
||||||
/.direnv
|
/.direnv
|
||||||
|
|
||||||
|
# vendored libs
|
||||||
|
# TODO: script out retrieval of these?
|
||||||
|
/requirements
|
||||||
|
/lib
|
||||||
|
/examples
|
||||||
|
|
129
code.py
129
code.py
|
@ -1,4 +1,127 @@
|
||||||
from adafruit_datetime import datetime, date, time
|
# import rtc
|
||||||
|
# import time
|
||||||
|
# import board
|
||||||
|
# import digitalio
|
||||||
|
# import time
|
||||||
|
# import neopixel
|
||||||
|
|
||||||
|
# from adafruit_datetime import datetime
|
||||||
|
|
||||||
|
# from board import *
|
||||||
|
# import time
|
||||||
|
|
||||||
|
# pixels = neopixel.NeoPixel(NEOPIXEL, 12)
|
||||||
|
# RED = 0x100000
|
||||||
|
# while True:
|
||||||
|
# for i in range(len(pixels)):
|
||||||
|
# pixels[i] = RED
|
||||||
|
|
||||||
|
# tz = "America/Chicago"
|
||||||
|
# rtc.datetime = time.struct_time((2017, 10, 29, 15, 14, 15, 0, -1, -1))
|
||||||
|
# TODO: for proper datetime reporting, may need to regularly be updated with tzdata?
|
||||||
|
|
||||||
|
# TODO: set all LEDs (neopixels?) to off (board.NEOPIXEL, board.LED)
|
||||||
|
# TODO: clear OLED (sh1106)
|
||||||
|
# TODO: mute speaker (board.SPEAKER)
|
||||||
|
# TODO: update clock every half-second or so (for blinking colon?)
|
||||||
|
# TODO: check out the repl over the serial console! (^C)
|
||||||
|
# then try help() and help("modules")
|
||||||
|
# import board; dir(board)
|
||||||
|
|
||||||
|
# print("Hello, Mom!")
|
||||||
|
# print("Cur datetime:", datetime.now())
|
||||||
|
# SPDX-FileCopyrightText: 2021 Kattni Rembor for Adafruit Industries
|
||||||
|
#
|
||||||
|
# SPDX-License-Identifier: MIT
|
||||||
|
"""Keypad and rotary encoder example for Adafruit MacroPad"""
|
||||||
|
import board
|
||||||
|
import digitalio
|
||||||
|
import rotaryio
|
||||||
|
import neopixel
|
||||||
|
import keypad
|
||||||
|
import random
|
||||||
|
import math
|
||||||
|
import displayio
|
||||||
|
import array
|
||||||
|
import time
|
||||||
|
|
||||||
|
try:
|
||||||
|
from audiocore import RawSample
|
||||||
|
except ImportError:
|
||||||
|
from audioio import RawSample
|
||||||
|
|
||||||
|
try:
|
||||||
|
from audioio import AudioOut
|
||||||
|
except ImportError:
|
||||||
|
try:
|
||||||
|
from audiopwmio import PWMAudioOut as AudioOut
|
||||||
|
except ImportError:
|
||||||
|
pass # not always supported by every board!
|
||||||
|
|
||||||
|
# palette = displayio.Palette(3)
|
||||||
|
# palette[0] = 0x000000
|
||||||
|
# palette[1] = 0x888888
|
||||||
|
# palette[2] = 0xFFFFFF
|
||||||
|
|
||||||
|
# bitmap = displayio.Bitmap(128, 64, 3)
|
||||||
|
# bitmap[23, 42] = 2
|
||||||
|
|
||||||
|
speaker_enable = digitalio.DigitalInOut(board.SPEAKER_ENABLE)
|
||||||
|
speaker_enable.direction = digitalio.Direction.OUTPUT
|
||||||
|
speaker_enable.value = False
|
||||||
|
|
||||||
|
wave_freqs = [440 + (x * 2) for x in range(13)]
|
||||||
|
waves = []
|
||||||
|
wave_samples = []
|
||||||
|
SAMPLERATE = 8000
|
||||||
|
|
||||||
|
for i in range(len(wave_freqs)):
|
||||||
|
length = int(SAMPLERATE // wave_freqs[i])
|
||||||
|
waves.append(array.array("H", [0] * length))
|
||||||
|
print(wave_freqs[i], length)
|
||||||
|
for j in range(length):
|
||||||
|
waves[i][j] = int(math.sin(math.pi * 2 * j / length) * (2 ** 15) + 2 ** 15)
|
||||||
|
wave_samples.append(RawSample(waves[i]))
|
||||||
|
|
||||||
|
audio = AudioOut(board.SPEAKER)
|
||||||
|
|
||||||
|
# A single sine wave sample is hundredths of a second long. If you set loop=False, it will play
|
||||||
|
# a single instance of the sample (a quick burst of sound) and then silence for the rest of the
|
||||||
|
# duration of the time.sleep(). If loop=True, it will play the single instance of the sample
|
||||||
|
# continuously for the duration of the time.sleep().
|
||||||
|
|
||||||
|
from rainbowio import colorwheel
|
||||||
|
key_pins = (board.KEY1, board.KEY2, board.KEY3, board.KEY4, board.KEY5, board.KEY6, board.KEY7, board.KEY8, board.KEY9, board.KEY10, board.KEY11, board.KEY12)
|
||||||
|
keys = keypad.Keys(key_pins, value_when_pressed=False, pull=True)
|
||||||
|
encoder = rotaryio.IncrementalEncoder(board.ROTA, board.ROTB)
|
||||||
|
button = digitalio.DigitalInOut(board.BUTTON)
|
||||||
|
button.switch_to_input(pull=digitalio.Pull.UP)
|
||||||
|
pixels = neopixel.NeoPixel(board.NEOPIXEL, 12, brightness=1.0)
|
||||||
|
for n in range(len(pixels)):
|
||||||
|
pixels[n] = 0x101010
|
||||||
|
init = random.randrange(0, 255)
|
||||||
|
last_position = 0
|
||||||
|
color_value = (init + (last_position * 6)) % 255
|
||||||
|
pixels[4] = colorwheel(color_value)
|
||||||
|
while True:
|
||||||
|
if not button.value:
|
||||||
|
pixels.brightness = 0.0
|
||||||
|
for i in range(len(pixels)):
|
||||||
|
pixels[i] = 0x000000
|
||||||
|
else:
|
||||||
|
pixels.brightness = 1.0
|
||||||
|
position = encoder.position
|
||||||
|
if position != last_position:
|
||||||
|
print("Rotary:", position)
|
||||||
|
last_position = position
|
||||||
|
color_value = (init + (last_position * 6)) % 255
|
||||||
|
event = keys.events.get()
|
||||||
|
if event:
|
||||||
|
print(event)
|
||||||
|
if event.pressed:
|
||||||
|
pixels[event.key_number] = colorwheel(color_value)
|
||||||
|
audio.play(wave_samples[event.key_number], loop=True) # Play the single sine_wave sample continuously...
|
||||||
|
else:
|
||||||
|
audio.stop() # and then stop.
|
||||||
|
# pixels[event.key_number] = 0
|
||||||
|
|
||||||
print("Hello, Mom!")
|
|
||||||
print("Cur datetime:", datetime.now())
|
|
||||||
|
|
150
flake.lock
150
flake.lock
|
@ -1,62 +1,5 @@
|
||||||
{
|
{
|
||||||
"nodes": {
|
"nodes": {
|
||||||
"flake-utils": {
|
|
||||||
"inputs": {
|
|
||||||
"systems": "systems"
|
|
||||||
},
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1694529238,
|
|
||||||
"narHash": "sha256-zsNZZGTGnMOf9YpHKJqMSsa0dXbfmxeoJ7xHlrt+xmY=",
|
|
||||||
"owner": "numtide",
|
|
||||||
"repo": "flake-utils",
|
|
||||||
"rev": "ff7b65b44d01cf9ba6a71320833626af21126384",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "numtide",
|
|
||||||
"repo": "flake-utils",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"flake-utils_2": {
|
|
||||||
"inputs": {
|
|
||||||
"systems": "systems_2"
|
|
||||||
},
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1694529238,
|
|
||||||
"narHash": "sha256-zsNZZGTGnMOf9YpHKJqMSsa0dXbfmxeoJ7xHlrt+xmY=",
|
|
||||||
"owner": "numtide",
|
|
||||||
"repo": "flake-utils",
|
|
||||||
"rev": "ff7b65b44d01cf9ba6a71320833626af21126384",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "numtide",
|
|
||||||
"repo": "flake-utils",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"nix-github-actions": {
|
|
||||||
"inputs": {
|
|
||||||
"nixpkgs": [
|
|
||||||
"poetry2nix",
|
|
||||||
"nixpkgs"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1698974481,
|
|
||||||
"narHash": "sha256-yPncV9Ohdz1zPZxYHQf47S8S0VrnhV7nNhCawY46hDA=",
|
|
||||||
"owner": "nix-community",
|
|
||||||
"repo": "nix-github-actions",
|
|
||||||
"rev": "4bb5e752616262457bc7ca5882192a564c0472d2",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "nix-community",
|
|
||||||
"repo": "nix-github-actions",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"nixpkgs": {
|
"nixpkgs": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1700794826,
|
"lastModified": 1700794826,
|
||||||
|
@ -73,100 +16,9 @@
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"poetry2nix": {
|
|
||||||
"inputs": {
|
|
||||||
"flake-utils": "flake-utils_2",
|
|
||||||
"nix-github-actions": "nix-github-actions",
|
|
||||||
"nixpkgs": [
|
|
||||||
"nixpkgs"
|
|
||||||
],
|
|
||||||
"systems": "systems_3",
|
|
||||||
"treefmt-nix": "treefmt-nix"
|
|
||||||
},
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1700890240,
|
|
||||||
"narHash": "sha256-AKbWnuDzDuXaYSXHXSj0Sa1DSmUm1KaFNJhf2MEhoS0=",
|
|
||||||
"owner": "nix-community",
|
|
||||||
"repo": "poetry2nix",
|
|
||||||
"rev": "674fc0ef18bb62f3aea7684e09f20046a3cdfedf",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "nix-community",
|
|
||||||
"repo": "poetry2nix",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"root": {
|
"root": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"flake-utils": "flake-utils",
|
"nixpkgs": "nixpkgs"
|
||||||
"nixpkgs": "nixpkgs",
|
|
||||||
"poetry2nix": "poetry2nix"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"systems": {
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1681028828,
|
|
||||||
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
|
|
||||||
"owner": "nix-systems",
|
|
||||||
"repo": "default",
|
|
||||||
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "nix-systems",
|
|
||||||
"repo": "default",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"systems_2": {
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1681028828,
|
|
||||||
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
|
|
||||||
"owner": "nix-systems",
|
|
||||||
"repo": "default",
|
|
||||||
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "nix-systems",
|
|
||||||
"repo": "default",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"systems_3": {
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1681028828,
|
|
||||||
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
|
|
||||||
"owner": "nix-systems",
|
|
||||||
"repo": "default",
|
|
||||||
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"id": "systems",
|
|
||||||
"type": "indirect"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"treefmt-nix": {
|
|
||||||
"inputs": {
|
|
||||||
"nixpkgs": [
|
|
||||||
"poetry2nix",
|
|
||||||
"nixpkgs"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1699786194,
|
|
||||||
"narHash": "sha256-3h3EH1FXQkIeAuzaWB+nK0XK54uSD46pp+dMD3gAcB4=",
|
|
||||||
"owner": "numtide",
|
|
||||||
"repo": "treefmt-nix",
|
|
||||||
"rev": "e82f32aa7f06bbbd56d7b12186d555223dc399d1",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "numtide",
|
|
||||||
"repo": "treefmt-nix",
|
|
||||||
"type": "github"
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
38
flake.nix
38
flake.nix
|
@ -1,34 +1,16 @@
|
||||||
{
|
{
|
||||||
description = "Application packaged using poetry2nix";
|
inputs.nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
|
||||||
|
|
||||||
inputs = {
|
|
||||||
flake-utils.url = "github:numtide/flake-utils";
|
|
||||||
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
|
|
||||||
poetry2nix = {
|
|
||||||
url = "github:nix-community/poetry2nix";
|
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
outputs = {
|
outputs = {
|
||||||
self,
|
self,
|
||||||
nixpkgs,
|
nixpkgs,
|
||||||
flake-utils,
|
}: let
|
||||||
poetry2nix,
|
system = "x86_64-linux";
|
||||||
}:
|
pkgs = nixpkgs.legacyPackages.${system};
|
||||||
flake-utils.lib.eachDefaultSystem (system: let
|
# lib = nixpkgs.lib;
|
||||||
# see https://github.com/nix-community/poetry2nix/tree/master#api for more functions and examples.
|
in {
|
||||||
pkgs = nixpkgs.legacyPackages.${system};
|
devShells.${system}.default = pkgs.mkShell {
|
||||||
inherit (poetry2nix.lib.mkPoetry2Nix {inherit pkgs;}) mkPoetryApplication;
|
packages = with pkgs; [circup] ++ (with pkgs.python311Packages; [python-lsp-server]);
|
||||||
in {
|
};
|
||||||
packages = {
|
};
|
||||||
myapp = mkPoetryApplication {projectDir = self;};
|
|
||||||
default = self.packages.${system}.myapp;
|
|
||||||
};
|
|
||||||
|
|
||||||
devShells.default = pkgs.mkShell {
|
|
||||||
inputsFrom = [self.packages.${system}.myapp];
|
|
||||||
packages = with pkgs; [poetry] ++ (with pkgs.python311Packages; [python-lsp-server]);
|
|
||||||
};
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
|
|
156
poetry.lock
generated
156
poetry.lock
generated
|
@ -1,156 +0,0 @@
|
||||||
# This file is automatically @generated by Poetry 1.7.0 and should not be changed by hand.
|
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "adafruit-blinka"
|
|
||||||
version = "8.25.0"
|
|
||||||
description = "CircuitPython APIs for non-CircuitPython versions of Python such as CPython on Linux and MicroPython."
|
|
||||||
optional = false
|
|
||||||
python-versions = ">=3.7.0"
|
|
||||||
files = [
|
|
||||||
{file = "Adafruit-Blinka-8.25.0.tar.gz", hash = "sha256:4cae1655a60c341d97e59108c0fa4f3963e8373b6195381e3b7f76ce1f4c2a5b"},
|
|
||||||
{file = "Adafruit_Blinka-8.25.0-py3-none-any.whl", hash = "sha256:6ccb124143bfc1073af7225445c75781e5415ecb97484bd24a9e0d9dbfb90816"},
|
|
||||||
]
|
|
||||||
|
|
||||||
[package.dependencies]
|
|
||||||
adafruit-circuitpython-typing = "*"
|
|
||||||
Adafruit-PlatformDetect = ">=3.53.0"
|
|
||||||
Adafruit-PureIO = ">=1.1.7"
|
|
||||||
pyftdi = ">=0.40.0"
|
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "adafruit-circuitpython-busdevice"
|
|
||||||
version = "5.2.6"
|
|
||||||
description = "CircuitPython bus device classes to manage bus sharing."
|
|
||||||
optional = false
|
|
||||||
python-versions = "*"
|
|
||||||
files = [
|
|
||||||
{file = "adafruit-circuitpython-busdevice-5.2.6.tar.gz", hash = "sha256:ed06f5552e5567b0c89589c5bc6ef3adcac67d59eb505ce9127af99f33c2bc90"},
|
|
||||||
{file = "adafruit_circuitpython_busdevice-5.2.6-py3-none-any.whl", hash = "sha256:9f25577843f0a338a0936a1b57436f4451f7783b38e3cf46160b6be78faeaa44"},
|
|
||||||
]
|
|
||||||
|
|
||||||
[package.dependencies]
|
|
||||||
Adafruit-Blinka = ">=7.0.0"
|
|
||||||
adafruit-circuitpython-typing = "*"
|
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "adafruit-circuitpython-datetime"
|
|
||||||
version = "1.2.6"
|
|
||||||
description = "Subset of CPython datetime module"
|
|
||||||
optional = false
|
|
||||||
python-versions = "*"
|
|
||||||
files = [
|
|
||||||
{file = "adafruit-circuitpython-datetime-1.2.6.tar.gz", hash = "sha256:f54867c184d8ae8295c66085893870370470350afebe720a52f715124f556236"},
|
|
||||||
{file = "adafruit_circuitpython_datetime-1.2.6-py3-none-any.whl", hash = "sha256:47c70ac4ed63b070136b1a211d3c47e1cce7ae99a5fced4d03b804cbd6db08f1"},
|
|
||||||
]
|
|
||||||
|
|
||||||
[package.dependencies]
|
|
||||||
Adafruit-Blinka = "*"
|
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "adafruit-circuitpython-requests"
|
|
||||||
version = "2.0.2"
|
|
||||||
description = "A requests-like library for web interfacing"
|
|
||||||
optional = false
|
|
||||||
python-versions = "*"
|
|
||||||
files = [
|
|
||||||
{file = "adafruit-circuitpython-requests-2.0.2.tar.gz", hash = "sha256:fec34d21be9d721a44bd1471e3651630eb7d394ce806de2fb39536dac73408aa"},
|
|
||||||
{file = "adafruit_circuitpython_requests-2.0.2-py3-none-any.whl", hash = "sha256:91e7634cd223ee3adf22ca3cf6e8f34713a56a3809031f37ec31b90a3a9f503f"},
|
|
||||||
]
|
|
||||||
|
|
||||||
[package.dependencies]
|
|
||||||
Adafruit-Blinka = "*"
|
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "adafruit-circuitpython-typing"
|
|
||||||
version = "1.9.5"
|
|
||||||
description = "Types needed for type annotation that are not in `typing`"
|
|
||||||
optional = false
|
|
||||||
python-versions = "*"
|
|
||||||
files = [
|
|
||||||
{file = "adafruit-circuitpython-typing-1.9.5.tar.gz", hash = "sha256:6a2a7a4f60d54348f3c4aad8f4dd0d0f0aaf9c854ddd1761b20d5146440faa1d"},
|
|
||||||
{file = "adafruit_circuitpython_typing-1.9.5-py3-none-any.whl", hash = "sha256:02625de1f8fdeb42db5a88999d2dc7a905339b30c673f7a2d8608b840e8520cc"},
|
|
||||||
]
|
|
||||||
|
|
||||||
[package.dependencies]
|
|
||||||
Adafruit-Blinka = "*"
|
|
||||||
adafruit-circuitpython-busdevice = "*"
|
|
||||||
adafruit-circuitpython-requests = "*"
|
|
||||||
typing-extensions = ">=4.0,<5.0"
|
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "adafruit-platformdetect"
|
|
||||||
version = "3.54.0"
|
|
||||||
description = "Platform detection for use by libraries like Adafruit-Blinka."
|
|
||||||
optional = false
|
|
||||||
python-versions = "*"
|
|
||||||
files = [
|
|
||||||
{file = "Adafruit-PlatformDetect-3.54.0.tar.gz", hash = "sha256:3fe7fb781a83d3f28812bcbff34edd4100afb68901d9c62ee22d07e824d82168"},
|
|
||||||
{file = "Adafruit_PlatformDetect-3.54.0-py3-none-any.whl", hash = "sha256:fecae7a6612bbcd32d1f40c2d2f1aa263c554be5e52cc6fa4eebaf8b80c33519"},
|
|
||||||
]
|
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "adafruit-pureio"
|
|
||||||
version = "1.1.11"
|
|
||||||
description = "Pure python (i.e. no native extensions) access to Linux IO including I2C and SPI. Drop in replacement for smbus and spidev modules."
|
|
||||||
optional = false
|
|
||||||
python-versions = ">=3.5.0"
|
|
||||||
files = [
|
|
||||||
{file = "Adafruit_PureIO-1.1.11-py3-none-any.whl", hash = "sha256:281ab2099372cc0decc26326918996cbf21b8eed694ec4764d51eefa029d324e"},
|
|
||||||
{file = "Adafruit_PureIO-1.1.11.tar.gz", hash = "sha256:c4cfbb365731942d1f1092a116f47dfdae0aef18c5b27f1072b5824ad5ea8c7c"},
|
|
||||||
]
|
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "pyftdi"
|
|
||||||
version = "0.55.0"
|
|
||||||
description = "FTDI device driver (pure Python)"
|
|
||||||
optional = false
|
|
||||||
python-versions = ">=3.8"
|
|
||||||
files = [
|
|
||||||
{file = "pyftdi-0.55.0-py3-none-any.whl", hash = "sha256:6af7b6c73da1256fd5140076fe77a616c13e44dd0779dd561dac1b5981dbd43f"},
|
|
||||||
{file = "pyftdi-0.55.0.tar.gz", hash = "sha256:a747bbbccc4eeea26cefa2c8bd3d2b8bef8c94ecb6969bb9c75a63640887519a"},
|
|
||||||
]
|
|
||||||
|
|
||||||
[package.dependencies]
|
|
||||||
pyserial = ">=3.0"
|
|
||||||
pyusb = ">=1.0.0,<1.2.0 || >1.2.0"
|
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "pyserial"
|
|
||||||
version = "3.5"
|
|
||||||
description = "Python Serial Port Extension"
|
|
||||||
optional = false
|
|
||||||
python-versions = "*"
|
|
||||||
files = [
|
|
||||||
{file = "pyserial-3.5-py2.py3-none-any.whl", hash = "sha256:c4451db6ba391ca6ca299fb3ec7bae67a5c55dde170964c7a14ceefec02f2cf0"},
|
|
||||||
{file = "pyserial-3.5.tar.gz", hash = "sha256:3c77e014170dfffbd816e6ffc205e9842efb10be9f58ec16d3e8675b4925cddb"},
|
|
||||||
]
|
|
||||||
|
|
||||||
[package.extras]
|
|
||||||
cp2110 = ["hidapi"]
|
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "pyusb"
|
|
||||||
version = "1.2.1"
|
|
||||||
description = "Python USB access module"
|
|
||||||
optional = false
|
|
||||||
python-versions = ">=3.6.0"
|
|
||||||
files = [
|
|
||||||
{file = "pyusb-1.2.1-py3-none-any.whl", hash = "sha256:2b4c7cb86dbadf044dfb9d3a4ff69fd217013dbe78a792177a3feb172449ea36"},
|
|
||||||
{file = "pyusb-1.2.1.tar.gz", hash = "sha256:a4cc7404a203144754164b8b40994e2849fde1cfff06b08492f12fff9d9de7b9"},
|
|
||||||
]
|
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "typing-extensions"
|
|
||||||
version = "4.8.0"
|
|
||||||
description = "Backported and Experimental Type Hints for Python 3.8+"
|
|
||||||
optional = false
|
|
||||||
python-versions = ">=3.8"
|
|
||||||
files = [
|
|
||||||
{file = "typing_extensions-4.8.0-py3-none-any.whl", hash = "sha256:8f92fc8806f9a6b641eaa5318da32b44d401efaac0f6678c9bc448ba3605faa0"},
|
|
||||||
{file = "typing_extensions-4.8.0.tar.gz", hash = "sha256:df8e4339e9cb77357558cbdbceca33c303714cf861d1eef15e1070055ae8b7ef"},
|
|
||||||
]
|
|
||||||
|
|
||||||
[metadata]
|
|
||||||
lock-version = "2.0"
|
|
||||||
python-versions = "^3.11"
|
|
||||||
content-hash = "222a24d7a18347e2035b793fd793724c3457b8b2a897e2385917d6ee0b063c71"
|
|
|
@ -1,15 +0,0 @@
|
||||||
[tool.poetry]
|
|
||||||
name = "macropad"
|
|
||||||
version = "1.0.0-alpha"
|
|
||||||
description = ""
|
|
||||||
authors = ["Daniel Flanagan <daniel@lyte.dev>"]
|
|
||||||
license = "GPL"
|
|
||||||
readme = "README.md"
|
|
||||||
|
|
||||||
[tool.poetry.dependencies]
|
|
||||||
python = "^3.11"
|
|
||||||
adafruit-circuitpython-datetime = "^1.2.6"
|
|
||||||
|
|
||||||
[build-system]
|
|
||||||
requires = ["poetry-core"]
|
|
||||||
build-backend = "poetry.core.masonry.api"
|
|
Loading…
Reference in a new issue