Lightweight minimalistic Ara framework
Project description
Ara_core
Ara.Core is a lightweight Python framework for building interactive applications with GLFW. It provides an easy way to manage windows, handle input, integrate modules, and run the main loop with logging and error handling out of the box.
Features
Window Management – Create and control an OpenGL context window.
Input Handling – High-level API for keyboard and mouse state:
pressed, down, and up queries for keys and mouse buttons
Cursor locking, movement delta, and scroll tracking
Module System – Plug in custom modules with lifecycle methods
Timing Utilities – Frame delta (dt), elapsed time, and FPS measurement.
Logging – Integrated logging system with configurable levels.
Callbacks – Flexible callback hooks in the main loop.
Quick Start
from ara_core import App
# Create application instance
core = App(title="My First App", width=1280, height=720, log_level="info")
def render(core):
print("GUI rendering")
def update(core):
print(f"Frame time: {core.dt()}")
def terminate(core):
print("Cleanup done!")
# Run with custom callbacks
core.run(render, callback, terminate)
Input API
core.key_pressed("w") # True while 'W' is held
core.key_down("space") # True only on the frame space was pressed
core.key_up("escape") # True only on the frame escape was released
core.mouse_button_pressed("left")
pos = core.get_mouse_pos()
dx, dy = core.get_mouse_delta()
scroll = core.get_mouse_scroll()
Module System
Modules can be classes or instances. They may implement any of the lifecycle methods:
class ExampleModule:
NAME = "module_example"
DEPENDENCIES = {
"update_callback": {
"before": ["core.update"],
"after": ["module_example.other_callback"]
},
"other_callback": {
"before": [],
"after": []
}
}
def __init__(self, core):
self.core = core
def init(self):
print("Module initialized")
def update_callback(self):
print("Module updated")
def other_callback(self):
print("Module other callback")
def terminate(self):
print("Module terminated")
core.add_module(ExampleModule)
Utilities
app.close() – close the window
app.time() – elapsed time since start
app.dt() – delta time of last frame
app.fps() – current frames per second
Requirements
Python 3.8+
GLFW
Ara_log
Install dependencies:
pip install glfw, pyopengl, ara_log
License
MIT License. Feel free to use and modify for your projects.
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 ara_core-1.1.1.tar.gz.
File metadata
- Download URL: ara_core-1.1.1.tar.gz
- Upload date:
- Size: 7.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
39f2acb09e908f6a2beaf2184be9cfdeef17698f880bf96b56ed0200ec8961ce
|
|
| MD5 |
e208e3a31f97ad84f9efb37bf9698aa4
|
|
| BLAKE2b-256 |
84df168a5c343fd432fc4f47877531e5d2bd17ca09a28e2718580a27493258a1
|
File details
Details for the file ara_core-1.1.1-py3-none-any.whl.
File metadata
- Download URL: ara_core-1.1.1-py3-none-any.whl
- Upload date:
- Size: 7.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
41f32112cacd7ba153cb869bbbe8906215350b1bd7541a6838d5b4442e313086
|
|
| MD5 |
19cc3dcacca4f5642af35e9f294a3a3a
|
|
| BLAKE2b-256 |
6330a46084bec20f6a0751899b06f0a101884a4e135d1d874f92be11d262f3d6
|