aboutsummaryrefslogtreecommitdiff
path: root/src/utils.py
blob: ccf92c054c6294dd288f35a9ce9aa78a0262047f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
import io

def transfer(reader, writer, content_length = None, buffer_size = io.DEFAULT_BUFFER_SIZE):
    if content_length is None:
        while (data := reader.read(buffer_size)):
            writer.write(data)
    else:
        remaining = content_length
        while remaining > 0:
            size = min(buffer_size, remaining)
            writer.write(reader.read(size))
            remaining -= size

def sanitize_filename(s: str) -> str:
    return '.'.join([sanitize_filename_part(p) for p in s.split('.')])

def sanitize_filename_part(s: str) -> str:
    alnum_or_space = ''.join([c if c.isalnum() else ' ' for c in s])
    return '-'.join(alnum_or_space.split())