Skip to content

Conversation

@jslee02
Copy link
Member

@jslee02 jslee02 commented Nov 24, 2025

  • Flatten dartpy’s public surface: promote core symbols to dartpy, alias utils as dartpy.io, and keep dartpy.gui as the sole subpackage; legacy deep modules remain importable but now warn and are scheduled for removal in DART 8.
  • Add runtime shims for snake_case aliases and legacy module warnings, with env toggles (DARTPY_ENABLE_SNAKE_CASE, DARTPY_WARN_ON_CAMELCASE, DARTPY_ENABLE_LEGACY_MODULES, DARTPY_WARN_ON_LEGACY_MODULES).
  • Ensure the pure-Python shims (_naming.py, _layout.py) are copied/installed with the extension and update docs to describe the flattened layout and migration path.

Context: The existing dartpy API mirrored C++ namespaces and camelCase naming. For the DART 7 line we want a more Pythonic surface while keeping one-version compatibility; DART 8 will drop legacy modules/camelCase.

Before/after example:

# Before (deep module + camelCase)
import dartpy.dynamics as dyn
skel = dyn.Skeleton.create()
q = skel.getPositions()

# After (flattened + snake_case)
import dartpy as dart
skel = dart.Skeleton.create()
q = skel.get_positions()
# file parsers live under dartpy.io (alias of utils)
loader = dart.io.DartLoader()

Before creating a pull request

  • Run pixi run test-all to lint, build, and test your changes (not run here)
  • Add unit tests for new functionality (none added yet; runtime shims only)
  • Document new methods and classes (docs updated for layout/naming)
  • Add Python bindings (dartpy) if applicable (shims wired; C++ bindings unchanged)

@jslee02 jslee02 added this to the DART 7.0 milestone Nov 24, 2025
@codecov
Copy link

codecov bot commented Nov 24, 2025

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 61.07%. Comparing base (7160371) to head (39fff61).
⚠️ Report is 5 commits behind head on main.

Additional details and impacted files
@@            Coverage Diff             @@
##             main    #2259      +/-   ##
==========================================
+ Coverage   61.05%   61.07%   +0.01%     
==========================================
  Files         353      353              
  Lines       32144    32154      +10     
  Branches     4183     4188       +5     
==========================================
+ Hits        19627    19639      +12     
+ Misses      12517    12514       -3     
- Partials        0        1       +1     
Flag Coverage Δ
unittests 61.07% <ø> (+0.01%) ⬆️

Flags with carried forward coverage won't be shown. Click here to find out more.
see 4 files with indirect coverage changes

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

@jslee02 jslee02 force-pushed the refactor/dartpy_snake_case branch from b60291e to 614f5ed Compare November 24, 2025 22:47
jslee02 and others added 11 commits November 24, 2025 16:04
# Conflicts:
#	docs/readthedocs/locales/ko/LC_MESSAGES/dartpy/api/modules/collision.po
#	docs/readthedocs/locales/ko/LC_MESSAGES/dartpy/api/modules/common.po
#	docs/readthedocs/locales/ko/LC_MESSAGES/dartpy/api/modules/constraint.po
#	docs/readthedocs/locales/ko/LC_MESSAGES/dartpy/api/modules/dynamics.po
#	docs/readthedocs/locales/ko/LC_MESSAGES/dartpy/api/modules/math.po
#	docs/readthedocs/locales/ko/LC_MESSAGES/dartpy/api/modules/optimizer.po
#	docs/readthedocs/locales/ko/LC_MESSAGES/dartpy/api/modules/simulation.po
#	docs/readthedocs/locales/ko/LC_MESSAGES/dartpy/api/modules/utils.po
@jslee02 jslee02 merged commit a124b9b into main Nov 25, 2025
4 of 30 checks passed
@jslee02 jslee02 deleted the refactor/dartpy_snake_case branch November 25, 2025 01:05
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.

2 participants