Import All Public Modules

This notebook is a smoke test: it imports every public module in AbaQuant and confirms the package loads cleanly. It is a good first notebook to run after installing AbaQuant, since it will fail fast if something is missing from your environment.

What you’ll see:

  • How to make abaquant importable from a notebook (works both for an installed package and for a local source checkout).

  • The full list of public modules covered by AbaQuant’s stable v1 namespace.

Setup

Make sure abaquant can be imported, whether it’s installed or you’re running from a local source checkout.

import abaquant
print(f"AbaQuant version: {abaquant.__version__}")
AbaQuant version: 1.0.0rc1

Public module inventory

These are the modules that make up AbaQuant’s documented v1 surface.

import importlib

PUBLIC_MODULES = (
    "abaquant",
    "abaquant.derivatives.vanilla",
    "abaquant.derivatives.trees",
    "abaquant.derivatives.forwards",
    "abaquant.derivatives.strategies",
    "abaquant.derivatives.exotics",
    "abaquant.financial_math.tvm",
    "abaquant.financial_math.rates",
    "abaquant.rates",
    "abaquant.financial_math.annuities",
    "abaquant.financial_math.bonds",
    "abaquant.financial_math.cashflows",
    "abaquant.financial_math.corporate",
    "abaquant.financial_math.equity",
    "abaquant.financial_math.loans",
    "abaquant.financial_math.portfolio",
    "abaquant.financial_math.risk",
    "abaquant.derivatives.models",
    "abaquant.derivatives.advanced",
    "abaquant.derivatives.models.black_scholes",
    "abaquant.derivatives.models.binomial",
    "abaquant.derivatives.models.bachelier",
    "abaquant.derivatives.models.heston",
    "abaquant.derivatives.models.merton",
    "abaquant.derivatives.models.nig",
    "abaquant.derivatives.models.sabr",
    "abaquant.derivatives.models.variance_gamma",
    "abaquant.derivatives.calibration",
    "abaquant.derivatives.calibration.core",
    "abaquant.derivatives.analytics.distributions",
    "abaquant.derivatives.analytics.parity",
    "abaquant.derivatives.analytics.volatility",
    "abaquant.derivatives.monte_carlo",
    "abaquant.derivatives.numerics.implied_volatility",
    "abaquant.derivatives.simulation.gbm",
    "abaquant.derivatives.simulation.merton",
    "abaquant.derivatives.simulation.levy",
    "abaquant.credit.fundamentals",
    "abaquant.credit.cds",
    "abaquant.credit.cdo",
    "abaquant.credit.copula",
    "abaquant.credit.transitions",
    "abaquant.credit.valuation",
    "abaquant.credit.risk",
    "abaquant.credit.distribution",
    "abaquant.portfolio.optimization",
    "abaquant.portfolio.efficient_frontier",
    "abaquant.portfolio.risk_metrics",
    "abaquant.portfolio.backtesting",
    "abaquant.portfolio.stress_testing",
    "abaquant.portfolio.hierarchical",
    "abaquant.risk",
    "abaquant.risk.dashboard",
    "abaquant.reports",
    "abaquant.reports.exportable",
    "abaquant.core",
    "abaquant.core.provenance",
    "abaquant.marketdata",
    "abaquant.marketdata.financials",
    "abaquant.marketdata.option_chain_analytics",
    "abaquant.marketdata.providers.sec",
    "abaquant.visualization",
)

print(f"Modules to import: {len(PUBLIC_MODULES)}")
Modules to import: 62

Run the import smoke test

def import_public_modules():
    """Import every public module and return its import status."""
    return {
        module_name: type(importlib.import_module(module_name)).__name__
        for module_name in PUBLIC_MODULES
    }

statuses = import_public_modules()
print(f"Imported {len(statuses)} modules successfully.\n")
for name, kind in list(statuses.items())[:8]:
    print(f"{name:45s} -> {kind}")
Imported 62 modules successfully.

abaquant                                      -> module
abaquant.derivatives.vanilla                  -> module
abaquant.derivatives.trees                    -> module
abaquant.derivatives.forwards                 -> module
abaquant.derivatives.strategies               -> module
abaquant.derivatives.exotics                  -> module
abaquant.financial_math.tvm                   -> module
abaquant.financial_math.rates                 -> module

Takeaway

If this notebook runs top to bottom without errors, your AbaQuant environment is healthy and every documented public module is importable. From here, move on to the domain-specific notebooks (derivatives, financial math, credit, portfolio, market data, etc.) to see AbaQuant in action.