Skip to content

Fix: Add missing dependencies jmespath and pyparsing to pyproject.toml#380

Merged
ghanse merged 1 commit intodatabrickslabs:masterfrom
rsleedbx:fix/add-missing-dependencies-jmespath-pyparsing
Feb 3, 2026
Merged

Fix: Add missing dependencies jmespath and pyparsing to pyproject.toml#380
ghanse merged 1 commit intodatabrickslabs:masterfrom
rsleedbx:fix/add-missing-dependencies-jmespath-pyparsing

Conversation

@rsleedbx
Copy link
Contributor

@rsleedbx rsleedbx commented Feb 3, 2026

Fix: Add missing dependencies jmespath and pyparsing

Closes #379

Description

This PR fixes missing dependency declarations in pyproject.toml. The package imports jmespath and pyparsing in its source code but doesn't declare them as dependencies, causing ModuleNotFoundError on fresh installations.

Changes

Added two missing dependencies to pyproject.toml:

dependencies = [
    "databricks-sdk~=0.57",
+   "jmespath>=1.0.0",
+   "pyparsing>=3.0.0",
]

Evidence of Missing Dependencies

File: dbldatagen/utils.py (line 18)

import jmespath

File: dbldatagen/schema_parser.py (line 10)

import pyparsing as pp

These imports exist in the codebase but the packages are not declared as dependencies in pyproject.toml, causing failures on fresh installations.

Impact

Before This Fix:

  • ❌ Fresh installations fail with ModuleNotFoundError
  • ❌ Users must manually discover and install missing packages
  • ❌ Breaks automated CI/CD pipelines
  • ❌ Poor user experience for new users

After This Fix:

  • ✅ All dependencies installed automatically with pip
  • ✅ Package works out of the box
  • ✅ Improved reliability and user experience
  • ✅ CI/CD pipelines work without manual intervention
  • ✅ Professional, production-ready package

Testing

✅ Tested in production environment where the missing dependencies were discovered
✅ Fresh virtual environment installation now works correctly
✅ All features using jmespath and pyparsing function properly
✅ No breaking changes to existing functionality
✅ Backward compatible - existing installations unaffected

Why These Version Constraints?

  • jmespath>=1.0.0 - Stable, mature package (current: 1.0.1)
  • pyparsing>=3.0.0 - Current stable major version (3.x series)

Using >= provides flexibility while ensuring minimum required versions are met. Both packages are mature with stable APIs.

Verification Steps

Before this fix:

python -m venv test_env
source test_env/bin/activate
pip install dbldatagen
# Result: ModuleNotFoundError when using the package

After this fix:

python -m venv test_env
source test_env/bin/activate
pip install dbldatagen
# Result: All dependencies installed automatically ✅

Related Issue

Fixes #379 - Missing dependencies: jmespath and pyparsing not declared in pyproject.toml

Checklist

  • Changes are minimal and focused on the issue
  • No breaking changes introduced
  • Dependencies are well-established, stable packages
  • Version constraints are appropriate
  • Tested in production environment
  • Backward compatible with existing installations
  • Improves package reliability and user experience

Additional Notes

This is a critical fix that affects all fresh installations of the package. The change is minimal (2 lines) but has significant impact on usability and reliability. Both jmespath and pyparsing are mature, widely-used packages with minimal maintenance burden.

The fix has been tested in production environments where the missing dependencies were initially discovered, and all functionality works as expected.

The package imports jmespath in utils.py and pyparsing in schema_parser.py
but these dependencies were not declared in pyproject.toml, causing
ModuleNotFoundError on fresh installations.

This fix adds both missing dependencies:
- jmespath>=1.0.0 (used in dbldatagen/utils.py)
- pyparsing>=3.0.0 (used in dbldatagen/schema_parser.py)

Fixes: Missing dependency declarations
Impact: Users no longer need to manually install these packages
@rsleedbx rsleedbx requested review from a team as code owners February 3, 2026 21:06
@rsleedbx rsleedbx requested review from nfx and renardeinside and removed request for a team February 3, 2026 21:06
@codecov
Copy link

codecov bot commented Feb 3, 2026

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 92.12%. Comparing base (4687b8c) to head (536cbf3).
⚠️ Report is 1 commits behind head on master.

Additional details and impacted files
@@           Coverage Diff           @@
##           master     #380   +/-   ##
=======================================
  Coverage   92.12%   92.12%           
=======================================
  Files          47       47           
  Lines        4217     4217           
  Branches      766      766           
=======================================
  Hits         3885     3885           
  Misses        186      186           
  Partials      146      146           

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@ghanse ghanse merged commit 7881d7d into databrickslabs:master Feb 3, 2026
5 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[BUG] Missing dependencies: jmespath and pyparsing not declared in pyproject.toml

2 participants