Skip to content

Instantly share code, notes, and snippets.

View Diapolo10's full-sized avatar
🏠
Working from home

Lari Liuhamo Diapolo10

🏠
Working from home
View GitHub Profile
@Diapolo10
Diapolo10 / min.py
Last active March 18, 2021 15:12
Python min-function example implementation
#!/usr/bin/env python3
from typing import Callable, Iterable, T
def my_min(iterable: Iterable[T], key: Callable[[T, ...], Any]=lambda x: x) -> T:
iterator = iter(iterable)
try:
lowest = key(next(iterator))
@Diapolo10
Diapolo10 / max.py
Created March 18, 2021 15:11
Python max-function example implementation
#!/usr/bin/env python3
from typing import Callable, Iterable, T
def my_max(iterable: Iterable[T], key: Callable[[T, ...], Any]=lambda x: x) -> T:
iterator = iter(iterable)
try:
highest = key(next(iterator))
@Diapolo10
Diapolo10 / text_binary.py
Created February 20, 2021 20:40
Text-to-binary-to-text in Python
#!/usr/bin/env python3
def text_to_bin(text: str) -> str:
"""Takes a string, converts it to a space-separated string of binary numbers"""
result = []
for char in text:
unicode_value = ord(char)
binary = format(unicode_value, '#010b')
@Diapolo10
Diapolo10 / reduce.py
Last active February 9, 2022 09:31
Python functools.reduce-function example implementation
#!/usr/bin/env python3
from typing import Callable, Iterable, T
def my_reduce(func: Callable[[T, T], T], iterable: Iterable[T]) -> T:
"""
Iterates over the given iterable and feeds the values
through the given function until the iterable is
exhausted, returning the final function value.
"""
@Diapolo10
Diapolo10 / filter.py
Last active March 18, 2021 15:19
Python filter-function implementation
#!/usr/bin/env python3
from typing import Any, Callable, Generator, Iterable, T
def my_filter(func: Callable[[T], Any], iterable: Iterable[T]) -> Generator[T, None, None]:
"""Yields all values from the iterable for which the function returns a truthful value"""
for value in iterable:
if func(value):
yield value
@Diapolo10
Diapolo10 / map.py
Last active February 20, 2021 17:39
Python map-function example implementation
#!/usr/bin/env python3
from typing import Any, Callable, Generator, Iterable, List
def my_map(func: Callable[[Any, ...], Any], *iterables: List[Iterable[Any]]) -> Generator[Any, None, None]:
"""
Mimics the built-in map function, accepting any number of iterables
and yielding values returned by the given function.
"""
@Diapolo10
Diapolo10 / rsa_pq_bruteforce.py
Created February 15, 2021 20:08
RSA prime pair bruteforce searcher
#!/usr/bin/env python3
from typing import Optional, List, Generator
def prime_gen(limit: Optional[int]=None) -> Generator[int, None, None]:
"""Generates prime numbers with an optional upper limit"""
primes = [2]
n = 3
while limit is None or limit >= n:
for prime in primes:
@Diapolo10
Diapolo10 / rsa.py
Last active February 15, 2021 17:54
RSA implementation
#!/usr/bin/env python3
from typing import List
class RSAConfig:
def __init__(self, p, q, e, d):
self.p = p
self.q = q
self.n = p * q
self.phi = (p-1) * (q-1)
self.e = e
@Diapolo10
Diapolo10 / caesar_cipher.py
Last active February 3, 2021 12:38
Caesar cipher
#!/usr/bin/env python3
# Written by Lari Liuhamo
import string
from typing import Generator
def caesar_cipher(message: str, shift: int, alphabet=string.ascii_uppercase) -> str:
"""
Performs the Caesar cipher on a given message (string) by shifting all characters using the given shift.
@Diapolo10
Diapolo10 / n_fib.py
Last active December 15, 2021 23:45
Order N Fibonacci sequence generator
from collections import deque
from typing import Generator
import warnings
def n_fibonacci(n: int = 2) -> Generator[int, None, None]:
"""
Returns a generator that yields the values of a Fibonacci sequence of a given 'base'.
When `n == 0`, the returned sequence simplifies to an infinite sequence of `0`.