Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
PR: Implement v4.1.0 Baseline Stability Fixes
Description:
This PR implements the baseline stability improvements planned for the v4.1.0 release, as outlined in notes/v4.1.0-tickets.md. The goal is to enhance packaging, dependency management, and documentation for optional features.
Changes Implemented:
Ticket 1: Centralize Version Definition:
datafog/__about__.py
.setup.py
reads the version dynamically from__about__.py
.Ticket 2: Remove Runtime Dependency Installations:
ensure_installed
logic fromspark_service.py
,donut_processor.py
, andpyspark_udfs.py
.try...except ImportError
blocks with helpful error messages guiding users to install necessary extras (spark
,donut
,ocr
).spark
,donut
,ocr
, andall
extras insetup.py
to manage optional dependencies.Pillow
andpytesseract
are now part of theocr
extra.Ticket 3: Document OCR/Donut/Spark Extras:
README.md
detailing the available extras (ocr
,donut
,spark
,all
) and how to install them (e.g.,pip install 'datafog[spark]'
).Testing & Linting:
tox
for Python 3.10, 3.11, and 3.12. Thetox.ini
configuration already includedextras = all
, ensuring optional dependencies were tested.pre-commit
hooks (isort, black, flake8, prettier) pass successfully.Purpose:
These changes improve the robustness and maintainability of the package by: