Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
26 commits
Select commit Hold shift + click to select a range
28bf099
Setup project with basic Github Actions workflow
xl4624 Oct 25, 2025
cf0d7c2
Merge pull request #1 from swe-students-fall2025/project-setup
apoorvib Oct 25, 2025
185466f
Implement colorize_ascii()
xl4624 Oct 27, 2025
d1c0898
Merge pull request #2 from swe-students-fall2025/colorize-ascii
apoorvib Oct 27, 2025
835120b
basic function and unit test for get command
Morinzzz Oct 27, 2025
8b9bc2a
Merge pull request #3 from swe-students-fall2025/Morin
yf2685-beep Oct 27, 2025
c6fcd61
Add animation feature and CLI trigger, with tests
yf2685-beep Oct 30, 2025
6d62e47
Fix animate_scroll frame count and scrolling logic
yf2685-beep Oct 30, 2025
c5506fd
Merge pull request #5 from swe-students-fall2025/fix/animate-scroll
yf2685-beep Oct 31, 2025
9fc97d3
Update pyproject.toml name for TestPyPI
yf2685-beep Oct 31, 2025
5a413a1
update package name in pyproject.toml
yf2685-beep Oct 31, 2025
6347579
Merge pull request #6 from swe-students-fall2025/fix/pyproject-update
xl4624 Oct 31, 2025
172c2ef
Fix animation scroll logic in animate.py
yf2685-beep Nov 2, 2025
a66d5d9
Merge pull request #7 from swe-students-fall2025/feature/animate-fix
Morinzzz Nov 2, 2025
4a99f94
Finalized font designs for A-Z and 0-9 characters
apoorvib Nov 3, 2025
9c28231
Created some sample commands, developed rendering file, modified font…
apoorvib Nov 3, 2025
f4c5358
comment part of the tests
Morinzzz Nov 3, 2025
7f8d607
Merge pull request #9 from swe-students-fall2025/feature/animate-fix
xl4624 Nov 3, 2025
ed84ab7
fix CI error temporarily
Morinzzz Nov 3, 2025
565c3f4
Merge pull request #8 from swe-students-fall2025/feature/render
xl4624 Nov 3, 2025
6680567
Added CI badge to the README file
Nov 3, 2025
fa7ef82
intergraed main and test, with demo commands
Morinzzz Nov 3, 2025
a39067c
Merge pull request #10 from swe-students-fall2025/badge
Morinzzz Nov 3, 2025
cc76672
fix main_test.py
Morinzzz Nov 3, 2025
fadea68
Merge pull request #11 from swe-students-fall2025/feature/commands
knp4830 Nov 3, 2025
e42a9c2
added more commands
Nov 4, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
46 changes: 46 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
name: CI

on:
push:
branches: [pipfile-experiment]
pull_request:
branches: [pipfile-experiment]

jobs:
test:
runs-on: ubuntu-latest
env:
PIP_DISABLE_PIP_VERSION_CHECK: "1"
PIP_ROOT_USER_ACTION: "ignore"
strategy:
fail-fast: false
matrix:
python-version: ["3.12", "3.13"]
steps:
- uses: actions/checkout@v5
- uses: actions/setup-python@v6
with:
python-version: ${{ matrix.python-version }}

- name: Install dependencies and pytest
run: |
python -m pip install --upgrade pip
python -m pip install -e ".[dev]"
python -m pytest

build:
runs-on: ubuntu-latest
env:
PIP_DISABLE_PIP_VERSION_CHECK: "1"
PIP_ROOT_USER_ACTION: "ignore"
steps:
- uses: actions/checkout@v5
- uses: actions/setup-python@v6
with:
python-version: "3.12"

- name: Build sdist and wheel
run: |
python -m pip install --upgrade pip
python -m pip install -e ".[dev]"
python -m build
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -147,3 +147,6 @@ dmypy.json

# Cython debug symbols
cython_debug/

# Project proposal file
Project_3_proposal.docx
77 changes: 77 additions & 0 deletions DEMO_COMMANDS.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,77 @@
# minecraft-textcraft Demo Commands

## Quick Start
```bash
# Basic text rendering
python -m minecraft_textcraft "HELLO"

# With color
python -m minecraft_textcraft "HELLO" --color GREEN

# With command
python -m minecraft_textcraft 'GET \\sword NOW'

# With animation
python -m minecraft_textcraft "HELLO" --effect type
```

## Text Rendering
```bash
python -m minecraft_textcraft "HELLO"
python -m minecraft_textcraft "HELLO" --color GREEN
python -m minecraft_textcraft "HELLO" --color RED
python -m minecraft_textcraft "HELLO" --color BLUE
python -m minecraft_textcraft "HELLO" --color YELLOW
```

## Commands
```bash
# List all commands
python -m minecraft_textcraft --list

# List categories
python -m minecraft_textcraft --list-categories

# Get command ASCII art
python -m minecraft_textcraft --get sword
python -m minecraft_textcraft --get earth

# Command with color
python -m minecraft_textcraft --get sword --color GREEN
```

## Text with Commands
```bash
# Text + command + color
python -m minecraft_textcraft 'GET \\sword NOW' --color RED
```

## Animations
```bash
# Typewriter effect
python -m minecraft_textcraft "HELLO" --effect type --color GREEN

# Scroll effect
python -m minecraft_textcraft "HELLO" --effect scroll --color BLUE

# Wave effect
python -m minecraft_textcraft "HELLO" --effect wave --color YELLOW
```

## Full Features Demo
```bash
# Text + command + animation + color + custom FPS
python -m minecraft_textcraft 'GET \\sword NOW' --effect type --color GREEN --fps 20
python -m minecraft_textcraft 'HELLO \\sword' --effect scroll --color RED

```

## Options
- **Colors**: `RED`, `GREEN`, `BLUE`, `YELLOW`
- **Effects**: `type`, `scroll`, `wave`
- **FPS**: `10-30` (default: 12)

## Help
```bash
python -m minecraft_textcraft --help
```
14 changes: 14 additions & 0 deletions Pipfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
[[source]]
url = "https://pypi.org/simple"
verify_ssl = true
name = "pypi"

[packages]
minecraft-textcraft = {extras = ["dev"], file = ".", editable = true}

[dev-packages]
pytest = "*"
build = "*"

[requires]
python_version = "3"
84 changes: 84 additions & 0 deletions Pipfile.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

32 changes: 30 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,31 @@
# Python Package Exercise
[![CI](https://github.com/swe-students-fall2025/3-python-package-brio/actions/workflows/ci.yml/badge.svg)](https://github.com/swe-students-fall2025/3-python-package-brio/actions/workflows/ci.yml)
# minecraft-textcraft

A Python package that converts text into blocky Minecraft-style ASCII art, with support for special inline commands like \sword, \heart, and \diamond. Commands are center-aligned with text for a professional, visually appealing output.

# Quickstart

To setup:
```bash
git clone git@github.com:swe-students-fall2025/3-python-package-brio.git
cd 3-python-package-brio
pipenv shell
pipenv install -e ".[dev]"
```

To build:
```bash
pipenv run python -m build
```
Artifacts will be in `dist/`.

To run:
```bash
pipenv run minecraft-textcraft
```

To run tests:
```bash
pipenv run pytest
```

An exercise to create a Python package, build it, test it, distribute it, and use it. See [instructions](./instructions.md) for details.
20 changes: 20 additions & 0 deletions pyproject.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
[build-system]
requires = ["setuptools>=77.0", "wheel"]
build-backend = "setuptools.build_meta"

[project]
name = "minecraft-textcraft"
version = "0.0.2"
description = "A Python package that converts text into blocky Minecraft-style ASCII art..."
readme = "README.md"
license = "GPL-3.0-or-later"
requires-python = ">=3.7"
classifiers = [
"Programming Language :: Python :: 3",
"Intended Audience :: Education",
"Operating System :: OS Independent",
]
[project.optional-dependencies]
dev = ["pytest", "build"]
[project.scripts]
minecraft-textcraft = "minecraft_textcraft.__main__:main"
7 changes: 7 additions & 0 deletions src/minecraft_textcraft/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
__version__ = "0.0.1"

from .add import add
from .colorize_ascii import colorize_ascii, Color
from .commands import getCommand, getCommandByName, get_command, listCategories, listCommands
from .animate import animate_typewriter, animate_scroll, animate_wave, play_animation
from .render import render, renderTextOnly, renderCommandOnly, renderTextAndCommands
Loading
Loading