Skip to content
This repository has been archived by the owner on May 18, 2024. It is now read-only.

qexat/magic-list

Repository files navigation

Magic List

Logo

Palestine support banner

PyPI badge Downloads Tests Ruff Typechecking License: MIT

Magic List is a module that extends the built-in list type.

Documentation · PyPI package · How to install · Notes for contributors and maintainers

Note

Its development is entirely test-driven: it is battery-tested and requires a test coverage of 100%. It also provides type stubs.

Installation

pip install magic-list

Examples

Fibonacci sequence

Let's write a function that given an integer n, returns the fibonacci sequence up to the n-th member.

For example, fibonacci_sequence(10) would return [0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55].

import operator

from magic_list import L, list

def fibonacci_sequence(n: int) -> list[int]:
    # let's start by creating a list with the first two members, 0 and 1.
    base = L[0, 1]

    # we define a function that we will use to generate the next members of
    # the sequence
    def next_member(current: list[int]) -> int:
        return current.take_right(2).sum()

    return base.fill_right(next_member, n - 1)

Note

The L[0, 1] notation is a way to construct magic lists nicely.

Contributing

First of all, thank you for taking your time to participate in this project! 💕

You might want to check those:

  • Code of Conduct · a document to set standards for respectful and inclusive behavior within the community
  • README-dev.md · documentation to help you familiarize with Magic List's workflow
  • Feature proposals · a list of the proposed features in the past, present and future