fix(lint): remove unused imports and reformat with black
This commit is contained in:
@@ -7,7 +7,6 @@ from app.core.pricing.black_scholes import (
|
||||
DEFAULT_RISK_FREE_RATE,
|
||||
DEFAULT_VOLATILITY,
|
||||
BlackScholesInputs,
|
||||
OptionType,
|
||||
black_scholes_price_and_greeks,
|
||||
)
|
||||
from app.models.option import OptionContract
|
||||
|
||||
@@ -412,11 +412,14 @@ def strategy_metrics_from_snapshot(
|
||||
]
|
||||
|
||||
scenario_price = spot * _pct_factor(scenario_pct)
|
||||
scenario_gold_value = _as_money(gold_weight * PricePerWeight(
|
||||
amount=scenario_price,
|
||||
currency=BaseCurrency.USD,
|
||||
per_unit=WeightUnit.OUNCE_TROY,
|
||||
))
|
||||
scenario_gold_value = _as_money(
|
||||
gold_weight
|
||||
* PricePerWeight(
|
||||
amount=scenario_price,
|
||||
currency=BaseCurrency.USD,
|
||||
per_unit=WeightUnit.OUNCE_TROY,
|
||||
)
|
||||
)
|
||||
current_gold_value = _as_money(gold_weight * current_spot)
|
||||
unhedged_equity = scenario_gold_value - loan_amount
|
||||
scenario_payoff_per_unit = _strategy_option_payoff_per_unit(strategy, spot, scenario_price)
|
||||
|
||||
@@ -260,16 +260,24 @@ class PricePerWeight:
|
||||
adjusted_weight = other.to_unit(self._per_unit_typed)
|
||||
return Money(amount=adjusted_weight.amount * self.amount, currency=self._currency_typed)
|
||||
if isinstance(other, Decimal):
|
||||
return PricePerWeight(amount=self.amount * other, currency=self._currency_typed, per_unit=self._per_unit_typed)
|
||||
return PricePerWeight(
|
||||
amount=self.amount * other, currency=self._currency_typed, per_unit=self._per_unit_typed
|
||||
)
|
||||
if isinstance(other, int):
|
||||
return PricePerWeight(amount=self.amount * Decimal(other), currency=self._currency_typed, per_unit=self._per_unit_typed)
|
||||
return PricePerWeight(
|
||||
amount=self.amount * Decimal(other), currency=self._currency_typed, per_unit=self._per_unit_typed
|
||||
)
|
||||
return NotImplemented
|
||||
|
||||
def __rmul__(self, other: object) -> PricePerWeight:
|
||||
if isinstance(other, bool):
|
||||
return NotImplemented
|
||||
if isinstance(other, Decimal):
|
||||
return PricePerWeight(amount=self.amount * other, currency=self._currency_typed, per_unit=self._per_unit_typed)
|
||||
return PricePerWeight(
|
||||
amount=self.amount * other, currency=self._currency_typed, per_unit=self._per_unit_typed
|
||||
)
|
||||
if isinstance(other, int):
|
||||
return PricePerWeight(amount=self.amount * Decimal(other), currency=self._currency_typed, per_unit=self._per_unit_typed)
|
||||
return PricePerWeight(
|
||||
amount=self.amount * Decimal(other), currency=self._currency_typed, per_unit=self._per_unit_typed
|
||||
)
|
||||
return NotImplemented
|
||||
|
||||
@@ -17,7 +17,6 @@ from app.models.backtest import (
|
||||
from app.services.backtesting.databento_source import DatabentoHistoricalPriceSource, DatabentoSourceConfig
|
||||
from app.services.backtesting.fixture_source import (
|
||||
FixtureBoundSyntheticHistoricalProvider,
|
||||
SharedHistoricalFixtureSource,
|
||||
build_backtest_ui_fixture_source,
|
||||
)
|
||||
from app.services.backtesting.historical_provider import (
|
||||
|
||||
@@ -86,8 +86,7 @@ def calculate_true_pnl(
|
||||
|
||||
|
||||
def get_default_premium_for_product(
|
||||
underlying: str,
|
||||
product_type: str = "default"
|
||||
underlying: str, product_type: str = "default"
|
||||
) -> tuple[Decimal | None, Decimal | None]:
|
||||
"""Get default premium/spread for common gold products.
|
||||
|
||||
|
||||
@@ -159,7 +159,7 @@ def test_homepage_and_options_page_render() -> None:
|
||||
assert "RuntimeError" not in backtests_workspace_text
|
||||
assert "Server error" not in backtests_workspace_text
|
||||
assert "Traceback" not in backtests_workspace_text
|
||||
|
||||
|
||||
# Test backtest run by filling in fixture-supported dates
|
||||
page.get_by_label("Start date").fill("2024-01-02")
|
||||
page.get_by_label("End date").fill("2024-01-08")
|
||||
@@ -184,7 +184,7 @@ def test_homepage_and_options_page_render() -> None:
|
||||
# Page should render without runtime errors
|
||||
assert "RuntimeError" not in event_workspace_text
|
||||
assert "Traceback" not in event_workspace_text
|
||||
|
||||
|
||||
# Fill in value and run comparison
|
||||
page.get_by_label("Initial portfolio value").fill("100000")
|
||||
page.get_by_role("button", name="Run comparison").click()
|
||||
@@ -194,14 +194,14 @@ def test_homepage_and_options_page_render() -> None:
|
||||
# Should have results or error, but not runtime crash
|
||||
assert "RuntimeError" not in event_result_text
|
||||
assert "Traceback" not in event_result_text
|
||||
|
||||
|
||||
# Test preset selection
|
||||
page.get_by_label("Event preset").click()
|
||||
page.get_by_text("GLD January 2024 Drawdown", exact=True).click()
|
||||
page.wait_for_timeout(1000)
|
||||
event_preset_text = page.locator("body").inner_text(timeout=15000)
|
||||
assert "RuntimeError" not in event_preset_text
|
||||
|
||||
|
||||
page.goto(workspace_url, wait_until="domcontentloaded", timeout=30000)
|
||||
overview_text = page.locator("body").inner_text(timeout=15000)
|
||||
assert "Hedge Analysis" in overview_text
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
"""Tests for page validation functions and constants."""
|
||||
|
||||
from __future__ import annotations
|
||||
|
||||
from datetime import date, timedelta
|
||||
@@ -218,7 +219,7 @@ class TestValidateDateRangeForSymbolBoundaryCases:
|
||||
"""Test that start > end is caught before symbol-specific bounds."""
|
||||
# Inverted range that's also before GLD launch
|
||||
start = date(2000, 1, 1) # Before GLD launch
|
||||
end = date(1999, 1, 1) # Before start
|
||||
end = date(1999, 1, 1) # Before start
|
||||
error = validate_date_range_for_symbol(start, end, "GLD")
|
||||
# Should get "start > end" error, not "before min date" error
|
||||
assert error is not None
|
||||
@@ -311,4 +312,4 @@ class TestValidateNumericInputs:
|
||||
error_low = validate_numeric_inputs(1000.0, 50000.0, 0.01)
|
||||
assert error_low is None
|
||||
error_high = validate_numeric_inputs(1000.0, 50000.0, 0.99)
|
||||
assert error_high is None
|
||||
assert error_high is None
|
||||
|
||||
Reference in New Issue
Block a user