Skip to content

feat: Add Comprehensive Dreadnode Data Types: Image, Audio, Video, Table, and Object3D#48

Merged
monoxgas merged 8 commits into
mainfrom
users/raja/add-media-support
May 29, 2025
Merged

feat: Add Comprehensive Dreadnode Data Types: Image, Audio, Video, Table, and Object3D#48
monoxgas merged 8 commits into
mainfrom
users/raja/add-media-support

Conversation

@rdheekonda
Copy link
Copy Markdown
Contributor

@rdheekonda rdheekonda commented May 9, 2025

  • Added Python API for custom data types dn.Image, dn.Table, dn.Audio, dn.Video, and dn.Object3D
  • Format-specific serialization with optimal storage handling.
  • Support for various input sources (files, numpy arrays, PIL objects for images, PyDUB for audio, moviepy for Video)
  • Added self-contained examples with sample data generation placed under examples/log_object folder

Generated Summary:

  • Introduced new data types: Audio, Image, Object3D, Table, Video for Dreadnode logging.
  • Created corresponding modules for each data type, allowing better organization and modularity.
  • Implemented the Audio class with support for various formats, including file paths, numpy arrays, raw bytes, and pydub AudioSegments.
  • Developed the Image class to handle local images, PIL Image objects, numpy arrays, and base64 strings.
  • Added Object3D class for logging 3D models with support for multiple file formats.
  • Integrated Table class for logging tabular data with support for pandas DataFrames, CSV/JSON/Parquet files, and numpy arrays.
  • Constructed Video class for managing video data, accepting video files, numpy arrays of frames, and MoviePy VideoClip objects.
  • All classes feature to_serializable method for converting their data to a serializable format along with metadata.
  • Improved code organization and separation of concerns by adding a base class BaseDataType.
  • Overall, these enhancements aim to significantly improve the flexibility and capabilities of Dreadnode logging for multimedia types.

This summary was generated with ❤️ by rigging

@dreadnode-renovate-bot dreadnode-renovate-bot Bot added area/python Changes to Python package configuration and dependencies area/examples Changes to example code and demonstrations labels May 9, 2025
@rdheekonda rdheekonda requested a review from monoxgas May 12, 2025 16:10
@vabruzzo
Copy link
Copy Markdown
Contributor

FYI looks like pydub might be a necessary dependency? it's missing when i try to use this branch

@rdheekonda
Copy link
Copy Markdown
Contributor Author

FYI looks like pydub might be a necessary dependency? it's missing when i try to use this branch

Great catch, added the pydub dependency.

@vabruzzo
Copy link
Copy Markdown
Contributor

thanks. im still having some trouble with dependencies. now it says:
ModuleNotFoundError: No module named 'pyaudioop' but when i try to install this package its not found in the registry

@rdheekonda
Copy link
Copy Markdown
Contributor Author

thanks. im still having some trouble with dependencies. now it says: ModuleNotFoundError: No module named 'pyaudioop' but when i try to install this package its not found in the registry

I recreated a fresh environment and re-ran the audio demo notebook—everything worked smoothly on my end. I’m on a Mac, Could be an OS-specific issue—what operating system are you running?

@vabruzzo
Copy link
Copy Markdown
Contributor

vabruzzo commented May 15, 2025

i found the issue, its related to this: jiaaro/pydub#839

it was due to me being on python 3.13. i was able to fix it by installing audioop-lts as the issue instructs 👍

@monoxgas monoxgas merged commit c0a712b into main May 29, 2025
8 checks passed
@monoxgas monoxgas deleted the users/raja/add-media-support branch May 29, 2025 18:39
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area/examples Changes to example code and demonstrations area/python Changes to Python package configuration and dependencies

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants