예제 #1
0
def rot13_encrypt(message):
    message = message.lower().encode()
    lower_chars = bytes.maketrans(
        ascii_lowercase.encode(),
        ascii_lowercase[13:].encode() + ascii_lowercase[:13].encode())
    #upper_chars = makestrans(ascii_uppercase,ascii_lowercase[13:]) # If upper case chars must stay.
    return message.translate(lower_chars)  #.translate(upper_chars)
예제 #2
0
def test_stream_part_above_read_size():
    stream = StreamChain(ascii_lowercase.encode())
    assert stream.read(4) == b"abcd"
    assert stream.read(8) == b"efghijkl"
    assert stream.read(2) == b"mn"
    assert stream.read(8) == b"opqrstuv"
    assert stream.read(1) == b"w"
    assert stream.read(8) == b"xyz"
    assert stream.read(8) == b""
예제 #3
0
파일: quoting.py 프로젝트: asvetlov/yarl
import re
from string import ascii_letters, ascii_lowercase, digits
from typing import Optional, TYPE_CHECKING, cast

BASCII_LOWERCASE = ascii_lowercase.encode("ascii")
BPCT_ALLOWED = {"%{:02X}".format(i).encode("ascii") for i in range(256)}
GEN_DELIMS = ":/?#[]@"
SUB_DELIMS_WITHOUT_QS = "!$'()*,"
SUB_DELIMS = SUB_DELIMS_WITHOUT_QS + "+&=;"
RESERVED = GEN_DELIMS + SUB_DELIMS
UNRESERVED = ascii_letters + digits + "-._~"
ALLOWED = UNRESERVED + SUB_DELIMS_WITHOUT_QS


_IS_HEX = re.compile(b"[A-Z0-9][A-Z0-9]")


class _Quoter:
    def __init__(
        self, *, safe: str = "", protected: str = "", qs: bool = False
    ) -> None:
        self._safe = safe
        self._protected = protected
        self._qs = qs

    def __call__(self, val: Optional[str]) -> Optional[str]:
        if val is None:
            return None
        if not isinstance(val, str):
            raise TypeError("Argument should be str")
        if not val:
예제 #4
0
파일: quoting.py 프로젝트: xppt/yarl
import os
import re
import sys
from string import ascii_letters, ascii_lowercase, digits
from typing import Optional, TYPE_CHECKING, cast


NO_EXTENSIONS = bool(os.environ.get("YARL_NO_EXTENSIONS"))  # type: bool

if sys.implementation.name != "cpython":
    NO_EXTENSIONS = True


BASCII_LOWERCASE = ascii_lowercase.encode("ascii")
BPCT_ALLOWED = {"%{:02X}".format(i).encode("ascii") for i in range(256)}
GEN_DELIMS = ":/?#[]@"
SUB_DELIMS_WITHOUT_QS = "!$'()*,"
SUB_DELIMS = SUB_DELIMS_WITHOUT_QS + "+&=;"
RESERVED = GEN_DELIMS + SUB_DELIMS
UNRESERVED = ascii_letters + digits + "-._~"
ALLOWED = UNRESERVED + SUB_DELIMS_WITHOUT_QS


_IS_HEX = re.compile(b"[A-Z0-9][A-Z0-9]")


class _Quoter:
    def __init__(
        self,
        *,
        safe: str = "",
예제 #5
0
파일: day05.py 프로젝트: oabm/aoc
        if c in ignore:
            continue

        if len(l) and c ^ l[-1] == 0x20:
            l.pop()
        else:
            l.append(c)

    return l


advent.setup(2018, 5)
fin = advent.get_input(mode='rb')

polymer = fin.read().rstrip()
trimmed = react_fast(polymer)
reacted_len = len(trimmed)

advent.print_answer(1, reacted_len)

best_reacted_len = reacted_len

for l, L in zip(ascii_lowercase.encode(), ascii_uppercase.encode()):
    reacted_len = len(react_fast(trimmed, {l, L}))

    if reacted_len < best_reacted_len:
        best_reacted_len = reacted_len

advent.print_answer(2, best_reacted_len)
예제 #6
0
파일: quote.py 프로젝트: asleep-cult/hata
# -*- coding: utf-8 -*-
from string import ascii_letters, ascii_lowercase, digits

BIN_ASCII_LOWERCASE = ascii_lowercase.encode('ascii')
BIN_PERCENTAGE_ALLOWED = {f'%{index:02X}'.encode('ascii') for index in range(256)}
GEN_DELIMS = ':/?#[]@'
SUB_DELIMS_WO_QS = '!$\'()*,;'
QUERY_STRING_NOT_SAFE = '+&='
SUB_DELIMS = f'{SUB_DELIMS_WO_QS}{QUERY_STRING_NOT_SAFE}'
RESERVED = f'{GEN_DELIMS}{SUB_DELIMS}'
UNRESERVED = f'{ascii_letters}{digits}-._~'
ALLOWED = f'{UNRESERVED}{SUB_DELIMS_WO_QS}'


def quote(value, safe='', protected='', query_string=False):
    """
    Http quotes the given `value`.
    
    Parameters
    ----------
    value : `str`
        The value to quote.
    safe : `str`, Optional
        Additional percentage encoding safe characters. Defaults to empty string.
    protected : `str`, Optional
        Additional character to have percentage encoding preference. Defaults to empty string.
    query_string : `bool`, Optional
        Whether the generated value is a query string key or value. Defaults to `False`
    
    Returns
    -------
예제 #7
0
파일: quoting.py 프로젝트: stasfilin/yarl
from string import ascii_letters, ascii_lowercase, digits

BASCII_LOWERCASE = ascii_lowercase.encode('ascii')
BPCT_ALLOWED = {'%{:02X}'.format(i).encode('ascii') for i in range(256)}
GEN_DELIMS = ":/?#[]@"
SUB_DELIMS_WITHOUT_QS = "!$'()*,"
SUB_DELIMS = SUB_DELIMS_WITHOUT_QS + '+&=;'
RESERVED = GEN_DELIMS + SUB_DELIMS
UNRESERVED = ascii_letters + digits + '-._~'
ALLOWED = UNRESERVED + SUB_DELIMS_WITHOUT_QS


def _py_quote(val, *, safe='', protected='', qs=False, strict=True):
    if val is None:
        return None
    if not isinstance(val, str):
        raise TypeError("Argument should be str")
    if not val:
        return ''
    val = val.encode('utf8', errors='strict' if strict else 'ignore')
    ret = bytearray()
    pct = b''
    safe += ALLOWED
    if not qs:
        safe += '+&=;'
    safe += protected
    bsafe = safe.encode('ascii')
    idx = 0
    while idx < len(val):
        ch = val[idx]
        idx += 1