Science Score: 44.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
✓CITATION.cff file
Found CITATION.cff file -
✓codemeta.json file
Found codemeta.json file -
✓.zenodo.json file
Found .zenodo.json file -
○DOI references
-
○Academic publication links
-
○Academic email domains
-
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (15.1%) to scientific vocabulary
Keywords
Repository
Hausa Programming language that compiles to Python
Basic Info
- Host: GitHub
- Owner: hapy-lang
- License: mit
- Language: Python
- Default Branch: master
- Homepage: https://hapy.world
- Size: 137 KB
Statistics
- Stars: 13
- Watchers: 4
- Forks: 2
- Open Issues: 10
- Releases: 7
Topics
Metadata Files
README.md

Hapy - Write Python in Hausa with braces!
pronounced like ha·pee like "Happy"
Hapy is a simple programming language that uses Hausa vocabulary and compiles to Python. Originally as a final year school project.
Installation
Hapy can be installed using pip (pre-release versions)
note: Hapy is still in development so it might change a lot before full release. You can still join us for the ride!
pip install hapy
If you have installation problems on Windows, try installing Python from the Python website gan and not Microsoft Store.
Check if Hapy is accessible globally, open a new Command-line/terminal and run hapy --help. If you're not seeing Hapy your Python packages directory may not be in PATH or some other pip/python issue. We noticed all problems disappear when we get Python from their website.
Usage
All these commands are to be run in the command line:
hapy --help - prints the help message
hapy --version or hapy -v - prints the installed Hapy version
hapy or hapy repl - launches the REPL. Exit via exit(), or Ctrl-C. Pass --english to use Hapy english vocabulary.
hapy <filename> - execute a script. Hapy uses .hapy file extension. For example: hapy lagbaja.hapy. Pass --compile-only to just print the compiled script or you can pass --save to save the compiled Python in a file.
hapy run <filename> - same as above.
hapy do "<code to evaluate>" - compiles and executes Hapy code as a string. Pass --compile-only to skip execution or pass --english/-e to use Hapy english vocabulary.
More options on the way :)
Example
Let's say 'ayyana' is
defkeyword in Hausa and 'buga' is the
```python # example.hapy
# wannan sharhi ne
ayyana muje(){
nuna("Let's Goooooo");
};
muje();
```
Python output after running hapy example.hapy --save
```python # example.ha.py
# wannan sharhi ne
def muje():
print("Let's Goooooo")
muje()
>>> "Let's Goooooo"
```
Contributing
OH MY GOSH 😂😭, WE'RE SO DESPERATE FOR CONTRIBUTIONS THAT WE'RE LITERALLY BEGGING FOR PULL REQUESTS 🙏🏼💻! WE'RE SERIOUSLY ABOUT TO START CRYING OVER HERE. PLEASE, PLEASE, PLEASE SEND A PR AND MAKE OUR DAY. WE'LL LOVE YOU FOREVER AND EVER ❤️🤗.
Documentation
on it's way...
Hausa -> English Dictionary
key (Hausa): value (English)
```python keywords = { "in": "if", "kokuma": "elif", "then": "then", "indai": "while", "ma": "for", "karo": "import", "tsarin": "class", #Changed from irin to tsarin(structure) in 0.5.0 "yanada": "has", "gada": "inherits", "anfani": "use", "wuce": "pass", "daga": "from", "imbahakaba": "else", "cikin": "in", "Babu": "None", "dawo": "return", "ayyana": "def", "Gaskiya": "True", "Karya": "False", "nuna": "print" }
operators_words = { "ba": "not", "da": "and", "ko": "or", "shine": "=", "cikin": "in", "of": "of", "ba cikin": "not in", "is equal": "is equal", "is not equal": "is not equal", "times": "*", "hada": "+", "raba": "/", "chire": "-" }
builtinfunctions = { "farada": "init", "donnunawa": "repr_", "nuna": "print", "iri": "type", "tsakanin": "range", "kirga": "len", "rubuta": "input", "duka": "all", "tace": "filter", "koyar": "help", "id": "id", "lissafta": "eval", }
```
Goals
- Be able to write code in Hausa
- Support some Python constructs
- Have a limited set of custom modules :)
- Be able to upload and install other snippets (called bites) online [soon...]
Non-goals / Limitations
- Hapy won't try to support all Python things.
- Error messages are not the best currently and won't be translated
- No multi-file Hapy packages, only single file modules (called bites)
- Performance has not been measured yet
Differences with Python syntax
- For design and implementation reasons, Hapy uses braces :-)
- I'm not exactly sure why but Hapy requires semi-colons at the end of statements :-(
- We have some arithmetic word operators such as
plus,times - Classes are different. More details in the (soon to come) docs
Standard library
On it's way...
Noticed something wrong with Hapy or have a suggestion?
SEND A PR MY BROTHA/SISTA or create an issue on the github
Other projects
On it's way...
Credits and inspiration
- (heavily) inspired by this great, easy-to-follow tutorial on programming languages
- The REPL is based on this nice article
- We use Click for the CLI
- Tutorial on distributing Pypi packages
- Some code from Bython is used in our indent module
Similar projects
- Yorlang: Yoruba language programming language (Nodejs/Javascript)
- Enkelt: Swedish language programming language Enkelt (Python)
License
Hapy is released under the MIT License
Reference
If you found Hapy useful enought to cite, please cite using the following BibTeX: ``` @software{segunlean2021, author = {Segun-Lean, Emmanuel and Wuta, Shugaba}, title = {Hapy: Hausa Programming Language}, month = December, year = 2021, url = {https://github.com/hapy-lang/hapy} }
Owner
- Name: Hapy
- Login: hapy-lang
- Kind: organization
- Location: Nigeria
- Website: https://hapy.sturves.tech
- Repositories: 2
- Profile: https://github.com/hapy-lang
Hapy: The Hausa programming language
Citation (CITATION.cff)
# This CITATION.cff file was generated with cffinit.
# Visit https://bit.ly/cffinit to generate yours today!
cff-version: 1.2.0
title: 'Hapy: Hausa Programming Language'
message: >-
Please cite Hapy if you use it in your projects or in your
research. Thanks!
type: software
authors:
- given-names: Emmanuel
family-names: Segun-Lean
email: emmanuel.segunlean@proton.me
- given-names: Shugaba
family-names: Wuta
repository-code: 'https://github.com/hapy-lang/hapy'
url: 'https://hapy.world'
keywords:
- hausa
- programming language
- computing education
license: MIT
version: 0.5.3
date-released: '2023-05-25'
GitHub Events
Total
- Watch event: 3
- Push event: 1
- Pull request event: 2
Last Year
- Watch event: 3
- Push event: 1
- Pull request event: 2
Packages
- Total packages: 1
-
Total downloads:
- pypi 49 last-month
- Total dependent packages: 0
- Total dependent repositories: 2
- Total versions: 8
- Total maintainers: 1
pypi.org: hapy
Basic Python using Hausa vocabulary
- Homepage: https://github.com/hapy-lang/hapy
- Documentation: https://hapy.readthedocs.io/
- License: MIT
-
Latest release: 0.5.3
published over 2 years ago
Rankings
Maintainers (1)
Dependencies
- click ==8.0.3
- click-default-group ==1.2.2
- colorama ==0.4.4
- requirements *
- actions/checkout v2 composite
- actions/setup-python v2 composite