
self = <test_channel_scalp_short_bp.TestShortBuyingPower object at 0x120824650>

    def test_dtbp_below_regular_uses_dtbp(self):
        """Common margin case: DTBP < regular BP → use DTBP."""
>       from rtrader.services.channel_scalp_service import _short_buying_power

tests/services/test_channel_scalp_short_bp.py:49: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
rtrader/services/channel_scalp_service.py:3205: in <module>
    _ensure_ray_task()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

    def _ensure_ray_task():
        global _ray_evaluate_symbol
        if _ray_evaluate_symbol is not None:
            return
        import ray
    
>       @ray.remote(num_cpus=1, max_retries=2, retry_exceptions=True)
         ^^^^^^^^^^
E       AttributeError: module 'ray' has no attribute 'remote'

rtrader/services/channel_scalp_service.py:3175: AttributeError
