| 12345678910111213141516171819202122232425262728293031 |
- #!/usr/bin/env python3
- """
- Wrapper for forum-dl that applies Pydantic v2 compatibility patches.
- This wrapper fixes forum-dl 0.3.0's incompatibility with Pydantic v2 by monkey-patching
- the JsonlWriter class to use model_dump_json() instead of the deprecated json(models_as_dict=False).
- """
- import sys
- # Apply Pydantic v2 compatibility patch BEFORE importing forum_dl
- try:
- from forum_dl.writers.jsonl import JsonlWriter
- from pydantic import BaseModel
- # Check if we're using Pydantic v2
- if hasattr(BaseModel, 'model_dump_json'):
- def _patched_serialize_entry(self, entry):
- """Use Pydantic v2's model_dump_json() instead of deprecated json(models_as_dict=False)"""
- return entry.model_dump_json()
- JsonlWriter._serialize_entry = _patched_serialize_entry
- except (ImportError, AttributeError):
- # forum-dl not installed or already compatible - no patch needed
- pass
- # Now import and run forum-dl's main function
- from forum_dl import main
- if __name__ == '__main__':
- sys.exit(main())
|