Skip to main content

Braille Base

  • BrailleBase is an algorithm developed in Python with the goal of making Braille accessible to both blind and sighted individuals.

  • Its architecture was designed to be intuitive, easy to understand, and simple to manipulate, allowing any developer to explore, transform, and integrate Braille data without complexity.

BrailleBase is divided into X parts.

Register Letters and Characters

The first part of BrailleBase is responsible for registering letters, characters, symbols, icons, and other elements. The registration methods are organized into four sets:

General — where all items are registered: letters, numbers, uppercase and lowercase characters, punctuation, and other elements.

Uppercase — stores all uppercase items of the registered language.

CJK — registers phonetic alphabets such as Pinyin, Katakana, Hangul, and other East Asian writing systems.

RTL — stores alphabets that are written and read from right to left.

The Uppercase, CJK, and RTL sets are also added to the General set. Therefore:

General = {General[0], Uppercase[1], CJK[2], RTL[3]}

from braillebase import BrailleBase

class BrailleBaseExemple(BrailleBase):
        def __init__(self):
        super().__init__()
        #Uppercase / Lowercase Rules
        self.setting_braille_rules_uppercase("⠠", "⠠⠄")
        #General
        self.append_braille_letter("a", ["⠁"]) 
        self.append_braille_letter("b", ["⠃"]) 
        self.append_braille_letter("c", ["⠉"]) 
        #Upper
        self.append_braille_letter("A", ["⠁"],1) 
        self.append_braille_letter("B", ["⠃"],1) 
        self.append_braille_letter("C", ["⠉"],1) 
        #CJK
        self.append_braille_letter("あ", ["⠁"],2)
        self.append_braille_letter("い", ["⠃"],2)
        self.append_braille_letter("う", ["⠉"],2)
        self.append_braille_letter("え", ["⠋"],2) 
        self.append_braille_letter("お", ["⠊"],2)
        #RTL
        self.append_braille_letter("ا", ["⠁"], 3) 
        self.append_braille_letter("ب", ["⠃"], 3) 
        self.append_braille_letter("ت", ["⠞"], 3) 
        self.append_braille_letter("ث", ["⠹"], 3) 
        self.append_braille_letter("ج", ["⠚"], 3)
        #Other A
        self.append_braille_letter("⠼", ["⠼"])
        self.append_braille_letter("1", ["⠁"]) 
        self.append_braille_letter("2", ["⠃"])
        #Other B
        self.append_braille_letter(".", ["⠲"])
        self.append_braille_letter(",", ["⠂"]) 
        self.append_braille_letter(";", ["⠆"])
        #Other C
        self.append_braille_letter("[ch]", ["⠡"])
        self.append_braille_letter("[sh]", ["⠩"])
        self.append_braille_letter("[th]", ["⠹"]) 
        #Other D
        self.append_braille_letter("[OW]", ["⠪"], 1)
        self.append_braille_letter("[AR]", ["⠜"], 1)
        self.append_braille_letter("[ING]", ["⠬"], 1) 
        #Other E
        self.append_braille_letter("$", ["⠈", "⠎"])
        self.append_braille_letter("¢", ["⠈", "⠉"])
        self.append_braille_letter("¥", ["⠈", "⠽"])
        self.append_braille_letter("€", ["⠈", "⠑"])

BrailleBase allows you to register or edit braille directly through the instantiated object. Since characters are stored in internal dictionaries, any new registration using an existing key automatically replaces the previous value. This makes it possible to add, correct, or update letters, symbols, and tokens at any point during execution, without recreating the class or reinitializing the system.

Convert Text To Braille

BrailleBase is the superclass that centralizes all the logic for processing, organizing, and analyzing Braille databases. All subclasses inherit this logic and provide different output formats.

A)

BrailleBase supports multiple output formats, including:

  • JSON - output_all_json(txt)
  • CSV - output_all_csv(txt)
  • XML - output_all_xml(txt)
  • YAML - output_all_yaml(txt)
  • Markdown - output_all_markdown(txt)
  • HTML - output_all_html(txt)
  • TXT - output_all_txt(txt)

The sequence of data provided in each set is: index, letter, braille, binary, numbering list, unicode, reverse braille, reverse binary, reverse numbering, reverse unicode.

For example, the braille ⠓ produces the following output:

  • Braille:
  • Numbering: 1-2-5.
  • Binary: 010011
  • Unicode: U+2813
  • Reverse Braille:
  • Reverse Numbering: 2-4-5
  • Reverse Binary: 011010
  • Reverse Unicode: U+281a

B)

Additionally, the class provides different types of Braille output:

I Love Braille!

output_braille_txt(txt)

“Standard Braille — this is the traditional braille used for tactile reading. Each cell represents the raised dots exactly as they would be perceived by the fingers. ⠠⠊⠀⠠⠇⠕⠧⠑⠀⠠⠃⠗⠁⠊⠇⠇⠑⠖

output_braille_txt(txt)

Reverse Braille — this is the mirrored version of standard braille. This format corresponds to braille writing, meaning the arrangement of dots as they appear when embossed or punched, before being read by touch. ⠲⠊⠸⠸⠑⠈⠺⠘⠄⠀⠊⠼⠪⠸⠄⠀⠑⠄

output_binary_txt(txt)

Binary corresponding to each Braille symbol: a string containing a number from 0 to 63 in binary, representing each dot position used in that specific braille cell, where 0 means no dot and 1 means a raised dot.

C)

At the core of the class is the confidence_test method, considered the ‘brain’ of BrailleBase. This method analyzes the provided sentence, identifies the most appropriate token, and returns a list of braille cells in the correct order, representing the final conversion sequence.

from braillebaseenglish import *

bbe = BrailleBaseEnglish()
# Complete output
print(bbe.output_all_json("insert any text"))
print(bbe.output_all_csv("insert any text"))
print(bbe.output_all_xml("insert any text"))
print(bbe.output_all_yaml("insert any text"))
print(bbe.output_all_markdown("insert any text", "insert any footer"))
print(bbe.output_all_html("insert any text", "insert any footer"))
print(bbe.output_all_txt("insert any text", "insert any footer"))
# Simple output
print(bbe.output_braille_txt("insert any text"))
print(bbe.output_reverse_braille_txt("insert any text"))
print(bbe.output_binary_txt("insert any text"))
# Confidence test
print(bbe.confidence_test("insert any text"))

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

braillebase-0.2.4.tar.gz (16.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

braillebase-0.2.4-py3-none-any.whl (14.7 kB view details)

Uploaded Python 3

File details

Details for the file braillebase-0.2.4.tar.gz.

File metadata

  • Download URL: braillebase-0.2.4.tar.gz
  • Upload date:
  • Size: 16.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.13.9

File hashes

Hashes for braillebase-0.2.4.tar.gz
Algorithm Hash digest
SHA256 4678e85698e5c3596bd9e49ba6a4a553e89cd4f6dd756c19e081f1face10fdf0
MD5 793fb7f483af91db6968025cf5093bec
BLAKE2b-256 4d97a86bb02d30432d35a5fe7be45a22174ffbb483e5cd0b0185d94c7053a195

See more details on using hashes here.

File details

Details for the file braillebase-0.2.4-py3-none-any.whl.

File metadata

  • Download URL: braillebase-0.2.4-py3-none-any.whl
  • Upload date:
  • Size: 14.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.13.9

File hashes

Hashes for braillebase-0.2.4-py3-none-any.whl
Algorithm Hash digest
SHA256 cac6c7ce82992797f6a03d47edf307fb1bdf8c9f52f3b1b2fd476ef56dc1f06a
MD5 b746f4865519a3871c067f431f3f317e
BLAKE2b-256 dc29c9bdf8b4077e07bd8bd9ff84d7f37f26332ee29c34a3cb76091b9bd9baac

See more details on using hashes here.

Release history Release notifications | RSS feed

0.2.9

2 files

0.2.7

2 files

0.2.5

2 files

This release

0.2.4 This release

2 files

0.2.3

2 files

0.2.2

2 files

0.2.1

2 files

0.2.0

2 files

0.1.5

2 files

0.1.4

2 files

0.1.3

2 files

0.1.2

2 files

0.1.1

2 files

0.0.15

2 files

0.0.14

2 files

0.0.13

2 files

0.0.12

2 files

0.0.11

2 files

0.0.10

2 files

0.0.9

2 files

0.0.8

2 files

0.0.7

2 files

0.0.6

2 files

0.0.5

2 files

0.0.4

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page