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.2.tar.gz (16.1 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.2-py3-none-any.whl (14.7 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: braillebase-0.2.2.tar.gz
  • Upload date:
  • Size: 16.1 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.2.tar.gz
Algorithm Hash digest
SHA256 49ebba348251966f86ae3b5136859ed7847e7f24fcb6d6505caeb59569db6b62
MD5 228d72bb47356b43fcf0b23dff509cff
BLAKE2b-256 809e144dd125559e1c34db1f6d9f1fa32298c9ed691c2b36e1c6e8b5c2ca88cc

See more details on using hashes here.

File details

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

File metadata

  • Download URL: braillebase-0.2.2-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.2-py3-none-any.whl
Algorithm Hash digest
SHA256 383a4ab674ce707dbea4bbb5bfa87cf92f4f0bd71ad4eab9ebcbf73e7f3e2784
MD5 2b80d01bd947496149677b099661752d
BLAKE2b-256 051b7263159d765d4b79bf88c33a0fb3717d2dcb70f0a36e0d48a9a294b95e38

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

0.2.4

2 files

0.2.3

2 files

This release

0.2.2 This release

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