day15.lib package

Submodules

day15.lib.classes module

Classes for day15.

class day15.lib.classes.AddRemove(value, names=None, *, module=None, qualname=None, type=None, start=1, boundary=None)[source]

Bases: IntEnum

Simple instruction to add or remove lens.

Add = 0
Remove = 1
class day15.lib.classes.Box(id: int = 0, contents: list[~day15.lib.classes.Lens] = <factory>)[source]

Bases: object

Box can contain a variety of Lenses.

add_lens(lens: Lens) None[source]

Add/replace a lens to this box.

If a lens name already exists, swap its power; otherwise just add it

calculate_power() int[source]

Calculates power of the box by summing powers of the lenses.

contents: list[Lens]
id: int = 0
remove_lens(lens_name: str) None[source]

If a lens with a matching name is inside, remove it.

class day15.lib.classes.Lens(name: str, focal_length: int)[source]

Bases: object

Lens object.

focal_length: int
name: str
class day15.lib.classes.Step(lens_name: str, box: int, process: AddRemove, focal_length: int | None = None)[source]

Bases: object

well defined step.

box: int
focal_length: int | None = None
lens_name: str
process: AddRemove

Module contents

Library modules for classes.