Registry / serialization / aeidon

aeidon

JSON →
library1.16pypypi✓ verified 83d ago

Aeidon is a library designed for reading, writing, and manipulating text-based subtitle files (e.g., SRT, ASS, SUB). It is primarily developed as a core component for the Gaupol subtitle editor. The current version is 1.16, and releases occur infrequently, typically 1-3 times per year, focusing on Python compatibility and bug fixes.

pip install aeidon
INSTALL
IMPORT
SIG · AEIDON
A
aeidon
serializationpythonv1.16
Install
1.8s avg
Import
Disk
18MB
Pass rate
10/ 10
Env Coverage10 / 10
glibc
3.93.13
musl
3.93.13
Install & Compatibility
Where this runs
tested against v1.16 · pip install
no network on importno background threads
Install × environment matrix
Each cell = how many times install + import succeeded across repeated harness runs. Partial = flaky.
glibc = Debian/Ubuntu slim · musl = Alpine Linux
musl
py 3.103.910 runs
installs and imports cleanly · install 0.0s · import 0.000s · 19.7MB
glibc
py 3.103.910 runs
installs and imports cleanly · install 1.8s · import 0.000s · 20MB
18MB installed
● package 18MB
Code
Verified usage

Verified import paths — ran on the pinned version, not inferred.

AffirmationError
from aeidon import AffirmationError
from aeidon.files import File
Calculator
from aeidon import Calculator
Markup
from aeidon import Markup

This quickstart demonstrates how to load SRT subtitle content from a string, manipulate cues (add, shift times), and then save the modified content back to a string using Aeidon's `File` and `SrtFormat` classes.

import io from aeidon.files import File from aeidon.formats import SrtFormat from aeidon.cues import Cue, Time, Line # Simulate an existing SRT file content srt_content = """ 1 00:00:01,000 --> 00:00:03,000 Hello World! 2 00:00:04,500 --> 00:00:06,500 This is a test. """ # Create an Aeidon File object subtitle_file = File() # Load subtitle content from a string (can be a file path too) sio_input = io.StringIO(srt_content) SrtFormat.read(sio_input, subtitle_file) print("--- Original Cues ---") for cue in subtitle_file.cues: print(f" {cue.start_time} --> {cue.end_time}: {[line.text for line in cue.lines]}") # Add a new cue new_cue = Cue() new_cue.start_time = Time(milliseconds=8000) new_cue.end_time = Time(milliseconds=10000) new_cue.lines.append(Line("A new cue added by Aeidon!")) subtitle_file.cues.append(new_cue) # Shift all cues by 2 seconds forward for cue in subtitle_file.cues: cue.start_time = cue.start_time.shift_milliseconds(2000) cue.end_time = cue.end_time.shift_milliseconds(2000) print("\n--- Modified Cues (shifted and new cue) ---") for cue in subtitle_file.cues: print(f" {cue.start_time} --> {cue.end_time}: {[line.text for line in cue.lines]}") # Save the modified subtitle content to a string sio_output = io.StringIO() SrtFormat.write(sio_output, subtitle_file) print("\n--- Saved SRT Content ---") print(sio_output.getvalue()) sio_input.close() sio_output.close()
Debug
Known issues
breakingAeidon dropped support for Python versions older than 3.5 starting with version 1.15. Attempting to install or run Aeidon 1.15+ on Python < 3.5 will result in installation errors or runtime `SyntaxError`.
fix
Upgrade your Python environment to 3.5 or newer. The latest stable Python is recommended for best compatibility.
affects: >=1.15
gotchaOn Python 3.12 and newer, `distutils` was removed from the standard library. Aeidon (versions < 1.14) may fail to install or run due to missing `distutils` modules. Version 1.14 fixed this by leveraging `setuptools` to provide `distutils` compatibility.
fix
Upgrade Aeidon to version 1.14 or newer (`pip install --upgrade aeidon`). Ensure `setuptools` is installed and up-to-date (`pip install --upgrade setuptools`).
affects: <1.14 on Python >=3.12
deprecatedAeidon versions older than 1.16 may encounter deprecation warnings or runtime issues on future Python versions (e.g., Python 3.15+) due to its use of `locale.getdefaultlocale` and `importlib.load_module`, which are being removed. While Aeidon 1.16 addresses these, using older versions with cutting-edge Python may lead to errors.
fix
Upgrade Aeidon to version 1.16 or newer (`pip install --upgrade aeidon`) to ensure forward compatibility with upcoming Python releases.
affects: <1.16 with Python >=3.15
gotchaVersion 1.15 removed the dependency on `chardet` and introduced `charset-normalizer`. While this is an internal change, if you had custom environments relying on `chardet` for some reason (e.g., indirect dependency resolution), this change might affect your setup or cause `ModuleNotFoundError` if `charset-normalizer` is not installed.
fix
Ensure `charset-normalizer` is installed in your environment. It should be automatically installed by `pip` when installing Aeidon 1.15+.
affects: >=1.15
Upgrade
Version history
1.16latest on PyPI · released Apr 13, 2026
Audit
Dependencies
charset-normalizerrequiredUsed for robust character encoding detection when reading subtitle files. Required since version 1.15.
setuptoolsrequiredRequired on Python 3.12+ for `distutils` compatibility, which Aeidon uses internally. Included as an indirect dependency.
Agent activity
56 hits · last 30 days
node
48
OpenAI (training)
1
Resources