File: text_braille.py

package info (click to toggle)
inkscape 1.4.2-3
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 402,900 kB
  • sloc: cpp: 547,256; python: 72,677; ansic: 63,355; javascript: 3,864; xml: 2,345; sh: 1,667; makefile: 824; perl: 614
file content (25 lines) | stat: -rwxr-xr-x 623 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#!/usr/bin/env python3
"""Convert the text to braille text"""

import inkex

# https://en.wikipedia.org/wiki/Braille_ASCII#Braille_ASCII_values
U2800_MAP = " A1B'K2L@CIF/MSP\"E3H9O6R^DJG>NTQ,*5<-U8V.%[$+X!&;:4\\0Z7(_?W]#Y)="


class Braille(inkex.TextExtension):
    """Convert to ASCII Braille"""

    @staticmethod
    def map_char(char):
        """Map a single letter to braille"""
        assert isinstance(char, str)
        try:
            mapint = U2800_MAP.index(char.upper())
        except ValueError:
            return char
        return chr(mapint + 0x2800)


if __name__ == "__main__":
    Braille().run()