Skip to content

feat: Rename from pyLDB to pyBDL#6

Merged
AN0DA merged 3 commits intomainfrom
rename-to-pybdl
Dec 7, 2025
Merged

feat: Rename from pyLDB to pyBDL#6
AN0DA merged 3 commits intomainfrom
rename-to-pybdl

Conversation

@AN0DA
Copy link
Owner

@AN0DA AN0DA commented Dec 7, 2025

📋 Summary

This PR renames the package from pyldb to pybdl across the entire codebase, including package structure, imports, documentation, and configuration files. This is a comprehensive refactoring that updates all references to maintain consistency with the new naming convention while preserving all existing functionality.

🎯 Purpose & Context

The package has been renamed from pyldb to pybdl to better align with the official naming of the Local Data Bank (BDL) API. This change ensures consistency across the codebase and improves clarity for users. The refactoring maintains 100% functional compatibility—only the package name and import paths have changed.

🔧 Changes Made

Package Structure

  • Renamed package directory from pyldb/ to pybdl/
  • Updated all internal imports and module references
  • Updated package initialization files (__init__.py)

Configuration & Build

  • Updated pyproject.toml with new package name (pyBDL)
  • Updated uv.lock to reflect package name changes
  • Modified Makefile targets to reference new package path
  • Updated coverage configuration paths

Documentation

  • Updated all RST documentation files:
    • docs/access_layer.rst - Updated all code examples and references
    • docs/api_clients.rst - Updated API client documentation
    • docs/main_client.rst - Updated main client examples
    • docs/config.rst - Updated configuration examples
    • docs/rate_limiting.rst - Updated rate limiting documentation
    • docs/index.rst - Updated index references
    • docs/appendix.rst - Updated appendix references
  • Updated docs/examples.ipynb notebook with new import statements
  • Updated docs/conf.py Sphinx configuration
  • Updated README.md with new package name

CI/CD & Workflows

  • Updated GitHub Actions workflows:
    • .github/workflows/pr_checks.yml - Updated paths and package references
    • .github/workflows/release.yml - Updated PyPI package URL and paths
    • .github/workflows/sphinx.yml - Updated documentation build paths
  • Updated conventional commits configuration (git-conventional-commits.yaml)

Tests

  • Updated all test files (unit, integration, e2e) with new import statements
  • Updated test configuration files (conftest.py)
  • Updated test fixtures and mocks to use new package name
  • All test files maintain their original test logic and assertions

Code Changes

  • Updated main client class references (LDBBDL, LDBConfigBDLConfig)
  • Updated all API client references and method calls
  • Updated access layer references
  • Updated utility functions and helpers

Files Changed: 108 files (713 insertions, 713 deletions)

✅ Testing

Automated Testing

  • All existing unit tests pass with updated imports
  • All integration tests pass with new package structure
  • All end-to-end tests pass with updated client initialization
  • CI/CD pipeline validates all changes through automated workflows

Manual Testing Checklist

  • Verify package can be imported: from pybdl import BDL, BDLConfig
  • Verify client initialization works: bdl = BDL(BDLConfig(api_key="test"))
  • Verify all access layer methods work correctly
  • Verify all API client methods work correctly
  • Verify documentation builds successfully
  • Verify examples notebook runs without errors

Test Coverage

  • No functionality changes—only naming updates
  • All test suites maintain their original coverage
  • No new edge cases introduced

🚨 Breaking Changes & Migration Notes

⚠️ Breaking Changes

This is a breaking change for all existing users. The package name and import paths have changed.

Migration Guide

Before:

from pyldb import LDB, LDBConfig

ldb = LDB(LDBConfig(api_key="your-api-key"))
levels_df = ldb.levels.list_levels()

After:

from pybdl import BDL, BDLConfig

bdl = BDL(BDLConfig(api_key="your-api-key"))
levels_df = bdl.levels.list_levels()

Required Actions for Users

  1. Update installation: Reinstall the package (if installed via pip/uv)
  2. Update imports: Change all from pyldb import ... to from pybdl import ...
  3. Update client initialization: Change LDB to BDL and LDBConfig to BDLConfig
  4. Update variable names: Consider renaming ldb variables to bdl for consistency (optional)

Backward Compatibility

  • ❌ No backward compatibility maintained
  • ⚠️ This is a major version change candidate
  • 📝 Consider releasing as v1.0.0 or v2.0.0 to signal breaking change

🔍 Review Focus Areas

Critical Review Points

  1. Import statements: Verify all imports are correctly updated across all files
  2. Documentation examples: Ensure all code examples in docs use new naming
  3. Test coverage: Confirm all tests still pass and cover the same functionality
  4. CI/CD workflows: Verify workflow paths and package references are correct
  5. Package metadata: Check pyproject.toml for correct package name and URLs

Areas Requiring Special Attention

  • String literals: Check for any hardcoded "pyldb" strings that might have been missed
  • Comments and docstrings: Verify documentation strings reference correct package name
  • Error messages: Ensure error messages use correct package name
  • Logging: Check if any log messages reference old package name

Security & Performance

  • No security implications—pure refactoring
  • No performance impact—only naming changes
  • No architectural changes

📦 Dependencies & Side Effects

Dependencies

  • No new dependencies added
  • No dependency version changes
  • uv.lock updated only to reflect package name change

Side Effects

  • PyPI Package: Package will need to be published under new name pybdl
  • Documentation URLs: Any external links to old package name will need updating
  • User Code: All existing user code will break until updated

Configuration Changes

  • No environment variable changes required
  • No configuration file format changes
  • Only import paths need updating

🚀 Deployment Notes

Pre-Deployment Checklist

  • Verify PyPI package name availability (pybdl)
  • Update PyPI package metadata and URLs
  • Update any external documentation links
  • Prepare migration guide for users
  • Consider deprecation notice for old package name (if maintaining both)

Deployment Steps

  1. Merge this PR to main branch
  2. Create new release tag (consider major version bump)
  3. Publish new package to PyPI under pybdl name
  4. Update repository README and documentation
  5. Announce breaking change to users

Post-Deployment

  • Monitor for user issues related to migration
  • Update any CI/CD pipelines that reference old package name
  • Archive or deprecate old pyldb package on PyPI (if applicable)

Environment Considerations

  • No environment-specific changes required
  • No database migrations needed
  • No infrastructure changes needed

AN0DA added 2 commits December 7, 2025 15:37
- Renamed the package from `pyldb` to `pybdl` across all files, including configuration, documentation, and test cases.
- Updated URLs in the GitHub workflows and documentation to reflect the new package name.
- Adjusted import statements in tests and source files to ensure compatibility with the new naming convention.
- Enhanced overall consistency in naming throughout the codebase.
- Deleted the `pr-description.md` file, which contained a detailed overview of the access layer implementation and related changes.
- This file was previously used for pull request documentation and is no longer necessary following the completion of the associated features and enhancements.
@github-actions
Copy link

github-actions bot commented Dec 7, 2025

Test Results (Python 3.13)

426 tests  ±0   417 ✅ ±0   4s ⏱️ -1s
  1 suites ±0     9 💤 ±0 
  1 files   ±0     0 ❌ ±0 

Results for commit e82777f. ± Comparison against base commit a78e0ed.

This pull request removes 6 and adds 6 tests. Note that renamed tests count towards both.
tests.unit.test_client ‑ test_ldb_accepts_dict_config
tests.unit.test_client ‑ test_ldb_anonymous_access
tests.unit.test_client ‑ test_ldb_config_default
tests.unit.test_client ‑ test_ldb_config_dict_with_none_api_key
tests.unit.test_client ‑ test_ldb_config_type_error
tests.unit.test_client ‑ test_ldb_initializes_all_apis
tests.unit.test_client ‑ test_bdl_accepts_dict_config
tests.unit.test_client ‑ test_bdl_anonymous_access
tests.unit.test_client ‑ test_bdl_config_default
tests.unit.test_client ‑ test_bdl_config_dict_with_none_api_key
tests.unit.test_client ‑ test_bdl_config_type_error
tests.unit.test_client ‑ test_bdl_initializes_all_apis

♻️ This comment has been updated with latest results.

@github-actions
Copy link

github-actions bot commented Dec 7, 2025

Test Results (Python 3.12)

426 tests  ±0   417 ✅ ±0   4s ⏱️ -1s
  1 suites ±0     9 💤 ±0 
  1 files   ±0     0 ❌ ±0 

Results for commit e82777f. ± Comparison against base commit a78e0ed.

This pull request removes 6 and adds 6 tests. Note that renamed tests count towards both.
tests.unit.test_client ‑ test_ldb_accepts_dict_config
tests.unit.test_client ‑ test_ldb_anonymous_access
tests.unit.test_client ‑ test_ldb_config_default
tests.unit.test_client ‑ test_ldb_config_dict_with_none_api_key
tests.unit.test_client ‑ test_ldb_config_type_error
tests.unit.test_client ‑ test_ldb_initializes_all_apis
tests.unit.test_client ‑ test_bdl_accepts_dict_config
tests.unit.test_client ‑ test_bdl_anonymous_access
tests.unit.test_client ‑ test_bdl_config_default
tests.unit.test_client ‑ test_bdl_config_dict_with_none_api_key
tests.unit.test_client ‑ test_bdl_config_type_error
tests.unit.test_client ‑ test_bdl_initializes_all_apis

♻️ This comment has been updated with latest results.

@github-actions
Copy link

github-actions bot commented Dec 7, 2025

Test Results (Python 3.11)

426 tests  ±0   417 ✅ ±0   5s ⏱️ ±0s
  1 suites ±0     9 💤 ±0 
  1 files   ±0     0 ❌ ±0 

Results for commit e82777f. ± Comparison against base commit a78e0ed.

This pull request removes 6 and adds 6 tests. Note that renamed tests count towards both.
tests.unit.test_client ‑ test_ldb_accepts_dict_config
tests.unit.test_client ‑ test_ldb_anonymous_access
tests.unit.test_client ‑ test_ldb_config_default
tests.unit.test_client ‑ test_ldb_config_dict_with_none_api_key
tests.unit.test_client ‑ test_ldb_config_type_error
tests.unit.test_client ‑ test_ldb_initializes_all_apis
tests.unit.test_client ‑ test_bdl_accepts_dict_config
tests.unit.test_client ‑ test_bdl_anonymous_access
tests.unit.test_client ‑ test_bdl_config_default
tests.unit.test_client ‑ test_bdl_config_dict_with_none_api_key
tests.unit.test_client ‑ test_bdl_config_type_error
tests.unit.test_client ‑ test_bdl_initializes_all_apis

♻️ This comment has been updated with latest results.

@github-actions
Copy link

github-actions bot commented Dec 7, 2025

Test Results

426 tests   417 ✅  5s ⏱️
  1 suites    9 💤
  1 files      0 ❌

Results for commit e82777f.

♻️ This comment has been updated with latest results.

- Enhanced the documentation for the AggregatesAccess class by adding a code block to illustrate the example of column renaming.
- This change improves clarity and usability for developers working with the aggregates API and its DataFrame conversion capabilities.
@AN0DA AN0DA merged commit c804b19 into main Dec 7, 2025
24 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.

1 participant