https://github.com/kalebu/pyswahili
A Swahili version of programming language to allow Swahili speakers get started with programming
https://github.com/kalebu/pyswahili
opensource programming-language pyswahili python python-swahili python-tanzania swahili swahili-programming-language swahili-transpiler swahilipython tanzania
Last synced: 5 months ago
JSON representation
A Swahili version of programming language to allow Swahili speakers get started with programming
- Host: GitHub
- URL: https://github.com/kalebu/pyswahili
- Owner: Kalebu
- License: mit
- Created: 2020-12-13T06:23:02.000Z (over 4 years ago)
- Default Branch: main
- Last Pushed: 2022-10-10T19:42:03.000Z (over 2 years ago)
- Last Synced: 2024-12-17T06:17:21.807Z (5 months ago)
- Topics: opensource, programming-language, pyswahili, python, python-swahili, python-tanzania, swahili, swahili-programming-language, swahili-transpiler, swahilipython, tanzania
- Language: Python
- Homepage: https://kalebu.github.io/pyswahili/
- Size: 81.1 KB
- Stars: 80
- Watchers: 9
- Forks: 16
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- Funding: .github/FUNDING.yml
- License: LICENSE
Awesome Lists containing this project
README
# [pyswahili](#)
**Pyswahili** is a light weight python library that helps you write your python code in Swahili.
[](https://github.com/Kalebu/pyswahili)
[](https://pepy.tech/project/pyswahili)
[](https://pepy.tech/project/pyswahili)
[](https://pepy.tech/project/pyswahili)
[](https://opensource.org/licenses/MIT)**pyswahili** is not a completely independent language but more of a swahili version of **python language**, syntax and language grammar is equivalent to python one with only change of **keywords** from english to swahili.
## Transipiler
Transpiler(Pyswahili) translates swahili version of python to english version so that it can be intepreted by the `python Intepreter`.
## Pyswahili File extension ?
There is no official extension for pyswahili, so for now **.py** is fine.
## What can you do with pyswahili ?
Similar to Python, Pyswahili supports both modes; the Read-evaluate-print(**Repl**) loop and `Script mode`.
Repl enable you to interactively execute pyswahili code line by line without requiring to write a complete program while on other side **Script mode** requires you to write your Pyswahili code on a file and run it as whole.
## Getting started
To get started using Pyswahili you might need to either **clone** or **manually download** the repository and then use `pip` command to install the package just as shown below.
```bash
pip install pyswahili
```### Linux users
It might require admistrator priveledge to install so use **sudo** during the installation.
#### Directly from github[Linux]
```bash
$ git clone https://github.com/Kalebu/pyswahili
$ cd pyswahili
$ sudo pip3 install -e pyswahili
```#### Using pip[Linux]
```bash
$ pip3 install pyswahili
```### Window Users
If you're a Windows user, I would recommed running command prompt(cmd) with admistrator priveledge during the installation.
#### Directly from github[Window]
```bash
$ git clone https://github.com/Kalebu/pyswahili
$ cd pyswahili
$ pip install -e pyswahili
```#### Using pip[Window]
```bash
$ pip install pyswahili
```## REPL MODE
Now that the pyswahili package is installed, we can start playing with it, To involve repl just run **pyswahili** without any argument
just as shown below;```bash
_____ _ _ _ _
| __ \ | | (_) (_)
| |__) | _ _____ ____ _| |__ _| |_
| ___/ | | / __\ \ /\ / / _` | '_ \| | | |
| | | |_| \__ \\ V V / (_| | | | | | | |
|_| \__, |___/ \_/\_/ \__,_|_| |_|_|_|_|
__/ |
|___/
author: Kalebu Jordan (github.com/kalebu)
Pyswahili 1.0 on Linux | Saturday 02, January 2021
->
```### Usage
The **Pyswahili REPL** is used the sameway you would user a normal python REPL, supporting basic statements to complex logic with block statements written in swahili,just as illustrated in the example below.
```python
-> a = 12
-> a
12
-> a + 89
101
-> andika('umri wako ni', a)
umri wako ni 12
-> a = a + 13
-> a
25
-> kama a%2==0:
... andika(a, 'ni namba shufwa')
...zaidi:
... andika(a,'ni namba witiri')
...
25 ni namba witiri
```### Functions in pyswahili
You can user keyword `njia` to define a function in pyswahili and `andika` to print the result of the function just as shown below.
```python
-> njia jumla(a, b):
... rudisha a + b
...
-> andika(jumla(20, 21))
41
-> andika(jumla('hello ', '2021'))
hello 2021
```## Loops Pyswahili
You can also use keyword `wakati` to define a while loop, and `vunja` to break the loo just as shown in the example below.
### While loop
```python
-> x = 3
-> wakati x>0:
... andika(x*10)
... x = x - 1
...
30
20
10
```## SCRIPT MODE
In script mode, you're supposed to have write your pyswahili code in a file and then pyswahili will run it as whole, your code should follow pyswahili syntax (python one) for it to be evaluated.
In the example below we used a for-loop to print a table of any entered number.
1. We used keyword `ingiza` to get input from the user.
2. We used keyword `ikiwa` to define a for loop.
3. We used keyword `andika` to print the result.`- hello.py`
```python
namba = ingiza('Namba yoyote : ')
namba = int(namba)ikiwa no imo katiya(1, 12):
andika(no, 'x ', namba, '=', no*namba)
```### Running script
You can run your script by using the command `pyswahili` followed by the name of your script just as shown below.
```bash
$ pyswahili hello.py
Namba yoyote : 8
1 x 8 = 8
2 x 8 = 16
3 x 8 = 24
4 x 8 = 32
5 x 8 = 40
6 x 8 = 48
7 x 8 = 56
8 x 8 = 64
9 x 8 = 72
10 x 8 = 80
11 x 8 = 88
```## SUPPORTED KEYWORDS
If you want to see all the supported keywords in pyswahili, you can view all of them by visiting [Pyswahili supported keywords](https://github.com/Kalebu/pyswahili/blob/main/pyswahili/sw_to_en.py), Keywords are not final, so whenever you see a need for a keyword change feel free to reach me directly.
## How does it work ?
This can be achieved by using Python builtin **lexical scanner** tokenize for python source code, which is capable of breaking the python source code into pieces strings with their **type** (NAME, OP, NUMBER, NEWLINE, IDENT) and so on.
More documentation abouut tokenize can be found on its [official documentation](https://docs.python.org/3/library/tokenize.html)
## Wanna contribute ?
Wanna contribute ? then please [contributing.md](https://github.com/Kalebu/pyswahili/blob/main/CONTRIBUTING.md) to see how
# Give it a star
If you found this repository useful, give it a star so more people can find it.
>You can also keep in touch with me on [Twitter](https://twitter.com/j_kalebu).
## Bug bounty?
If you encounter **issue** with the usage of the package, feel free raise an **issue** so as we can fix it as soon as possible(ASAP) or just reach me directly through [email](isaackeinstein(at)gmail.com)