A friendly, Pythonic programming language for beginners and creative coders
Project description
AbuLang 🚀
A friendly, Pythonic programming language designed for beginners, educators, and creative coders. Write Python with a more intuitive syntax!
Features ✨
- Beginner-Friendly: Simple, readable syntax inspired by natural language
- Python-Powered: Runs on Python 3.8+ with full Python compatibility
- Multi-Format Support: Switch between YAML, JSON, CSV, and more
- Built-in Packages: AbuSmart, AbuFILES, AbuINSTALL, AbuChess
- Neural Chess AI: Play against a trained neural network chess engine
- File Operations: Easy file handling with
save_as()andget_line() - Interactive REPL: Command-line interface for quick testing
- Educational: Perfect for teaching programming concepts
Installation 📦
Via pip (Recommended)
pip install abulang
From source
git clone https://github.com/yourusername/abulang.git
cd abulang
pip install -e .
Quick Start 🎯
Hello World
show "Hello, World!"
Variables and Math
x = 10
y = 5
show "Sum: " + str(x + y)
show "Product: " + str(x * y)
Functions
def greet(name):
return "Hello, " + name + "!"
show greet("Abu")
Loops
for i in range(5):
show i
Using Libraries
libra math
result = math.sqrt(16)
show result
Multi-Format Blocks
switch(yaml)
database:
host: localhost
port: 5432
save_as(config.yaml)
# Read it back
line = get_line 2 config.yaml
show line
AbuLang Packages
# System utilities
libra AbuSmart
show smart.time()
# File operations
libra AbuFILES
files.save_data("data", {"key": "value"})
# Chess AI
libra AbuChess
chess.AIweb() # Launch web interface
Running AbuLang Files
Command Line
abulang myprogram.abu
Python
from abulang import run
code = """
show "Hello from AbuLang!"
x = 10
show x
"""
run(code)
Interactive REPL
abulang
Documentation 📚
Core Commands
I/O
show- Display outputask- Get user input
Variables
x = value- Assign variablelibra module- Import library
Control Flow
if,elif,else- Conditionalsfor,while- Loopsdef- Define functions
Multi-Format
switch(yaml)- Switch to YAML modesave_as(file)- Save to fileget_line N file- Read line from file
Packages 📦
AbuSmart
System utilities: time, date, shutdown, webcam, notifications
libra AbuSmart
show smart.time()
smart.webcam()
AbuFILES
File operations with multiple formats
libra AbuFILES
files.save_data("data", {"name": "Abu"})
loaded = files.load_data("data")
AbuINSTALL
Package manager (pip wrapper)
libra AbuINSTALL
installer.install("requests")
installer.check("numpy")
AbuChess
Neural network chess AI
libra AbuChess
chess.AIweb() # Web interface
chess.play() # CLI game
chess.train() # Train AI
Examples 🎮
Game: Guessing Game
libra random
secret = random.randint(1, 100)
guesses = 0
while True:
guess = ask "Guess the number: "
guess = int(guess)
guesses = guesses + 1
if guess < secret:
show "Too low!"
elif guess > secret:
show "Too high!"
else:
show "You got it in " + str(guesses) + " guesses!"
break
Data Processing
libra stat
data = [10, 20, 30, 40, 50]
show "Mean: " + str(stat.mean(data))
show "Sum: " + str(sum(data))
show "Count: " + str(len(data))
File Handling
libra AbuFILES
switch(yaml)
users:
- name: Alice
age: 30
- name: Bob
age: 25
save_as(users.yaml)
# Read it
line = get_line 3 users.yaml
show line
System Requirements
- Python 3.8 or higher
- pip (Python package manager)
- ~50MB disk space
Optional Dependencies
For full feature support:
psutil- System informationpyperclip- Clipboard operationstorch- Chess AI (GPU support)flask- Chess web interface
Contributing 🤝
Contributions are welcome! Please:
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit changes (
git commit -m 'Add amazing feature') - Push to branch (
git push origin feature/amazing-feature) - Open a Pull Request
License 📄
This project is licensed under the MIT License - see LICENSE file for details.
Changelog 📝
v3.0.0 (Current)
- Multi-format block support (YAML, JSON, CSV, etc.)
- AbuChess neural network integration
- AbuSmart system utilities
- AbuFILES file operations
- AbuINSTALL package manager
- Multi-line block support
- Improved error messages
v2.0.0
- GUI alias system
- Flexible syntax support
- Smart parentheses handling
v1.0.0
- Initial release
- Basic interpreter
- Core commands
Support 💬
- Issues: GitHub Issues
- Discussions: GitHub Discussions
- Email: your.email@example.com
Roadmap 🗺️
- Web-based IDE
- Mobile app
- VS Code extension
- Jupyter notebook support
- Package manager (abulang packages)
- Debugger
- Performance profiler
- Type hints support
Credits 🙏
- Inspired by Python, Lua, and educational languages
- Chess AI based on AlphaZero architecture
- Built with ❤️ for the programming community
Acknowledgments
- Python community
- Stockfish chess engine
- All contributors and users
Made with ❤️ by Abu
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file abulang-3.1.tar.gz.
File metadata
- Download URL: abulang-3.1.tar.gz
- Upload date:
- Size: 69.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
55f1e6bdcb1bee9776fe035278bb7d9135a5f0d9abec72586194f21859758afa
|
|
| MD5 |
99727a78f8611dd06124da3edeceb95f
|
|
| BLAKE2b-256 |
96cbdab367dd03ee0974c4ea0201e8859f457a1d06fd55b10eb216a887c099af
|
File details
Details for the file abulang-3.1-py3-none-any.whl.
File metadata
- Download URL: abulang-3.1-py3-none-any.whl
- Upload date:
- Size: 20.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
163a336a0e9ea4e9f79c88492da333e33446b505c5a3d428602025b9456f9673
|
|
| MD5 |
d3a3df5c5a88217f644fdce074f9812d
|
|
| BLAKE2b-256 |
b601b351c8e6913fa4ed2f9b99e9b9d5c4b759ad9284e608d47b308c540ea14a
|