Skip to main content

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!

PyPI version Python 3.8+ License: MIT GitHub Stars

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() and get_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 output
  • ask - Get user input

Variables

  • x = value - Assign variable
  • libra module - Import library

Control Flow

  • if, elif, else - Conditionals
  • for, while - Loops
  • def - Define functions

Multi-Format

  • switch(yaml) - Switch to YAML mode
  • save_as(file) - Save to file
  • get_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 information
  • pyperclip - Clipboard operations
  • torch - Chess AI (GPU support)
  • flask - Chess web interface

Contributing 🤝

Contributions are welcome! Please:

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/amazing-feature)
  3. Commit changes (git commit -m 'Add amazing feature')
  4. Push to branch (git push origin feature/amazing-feature)
  5. 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 💬

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

⭐ Star us on GitHub!

Project details


Download files

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

Source Distribution

abulang-3.1.tar.gz (69.7 kB view details)

Uploaded Source

Built Distribution

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

abulang-3.1-py3-none-any.whl (20.0 kB view details)

Uploaded Python 3

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

Hashes for abulang-3.1.tar.gz
Algorithm Hash digest
SHA256 55f1e6bdcb1bee9776fe035278bb7d9135a5f0d9abec72586194f21859758afa
MD5 99727a78f8611dd06124da3edeceb95f
BLAKE2b-256 96cbdab367dd03ee0974c4ea0201e8859f457a1d06fd55b10eb216a887c099af

See more details on using hashes here.

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

Hashes for abulang-3.1-py3-none-any.whl
Algorithm Hash digest
SHA256 163a336a0e9ea4e9f79c88492da333e33446b505c5a3d428602025b9456f9673
MD5 d3a3df5c5a88217f644fdce074f9812d
BLAKE2b-256 b601b351c8e6913fa4ed2f9b99e9b9d5c4b759ad9284e608d47b308c540ea14a

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page