LICENSE.txt
MANIFEST.in
README.md
pyproject.toml
src/qis/__init__.py
src/qis/api.py
src/qis/file_utils.py
src/qis/local_path.py
src/qis/settings.yaml
src/qis/sql_engine.py
src/qis.egg-info/PKG-INFO
src/qis.egg-info/SOURCES.txt
src/qis.egg-info/dependency_links.txt
src/qis.egg-info/requires.txt
src/qis.egg-info/top_level.txt
src/qis/datasets/__init__.py
src/qis/datasets/synthetic.py
src/qis/datasets/tests/synthetic_test.py
src/qis/discrete_portfolio/README.md
src/qis/discrete_portfolio/__init__.py
src/qis/discrete_portfolio/backtester.py
src/qis/discrete_portfolio/execution.py
src/qis/discrete_portfolio/portfolio_adapter.py
src/qis/discrete_portfolio/types.py
src/qis/discrete_portfolio/tests/discrete_backtester_test.py
src/qis/docs/brinson_attribution.md
src/qis/docs/plotting_kwargs.md
src/qis/docs/portfolio_stress.md
src/qis/docs/reporting_frequencies.md
src/qis/docs/sharpe_conventions.md
src/qis/docs/stress_testing.md
src/qis/market_data/README.md
src/qis/market_data/__init__.py
src/qis/market_data/factors_data.py
src/qis/market_data/fx_hedging.py
src/qis/market_data/fx_rates_data.py
src/qis/market_data/reports/__init__.py
src/qis/market_data/reports/fx_hedging_report.py
src/qis/market_data/tests/__init__.py
src/qis/market_data/tests/factors_data_test.py
src/qis/market_data/tests/futures_fx_arithmetic_domain_test.py
src/qis/market_data/tests/fx_cip_identity_test.py
src/qis/market_data/tests/fx_nav_period_end_test.py
src/qis/market_data/tests/fx_rates_data_causality_test.py
src/qis/market_data/tests/fx_spot_alignment_causality_test.py
src/qis/market_data/tests/fx_zero_return_policy_test.py
src/qis/models/__init__.py
src/qis/models/bootstrap/__init__.py
src/qis/models/bootstrap/bootstrap_numba.py
src/qis/models/bootstrap/tests/bootstrap_iid_terminal_row_test.py
src/qis/models/bootstrap/tests/bootstrap_price_ragged_anchor_test.py
src/qis/models/bootstrap/tests/bootstrap_price_series_test.py
src/qis/models/bootstrap/tests/test_bootstrap_ar.py
src/qis/models/bootstrap/tests/test_bootstrap_convention.py
src/qis/models/bootstrap/tests/test_bootstrap_numba.py
src/qis/models/linear/__init__.py
src/qis/models/linear/auto_corr.py
src/qis/models/linear/corr_cov_matrix.py
src/qis/models/linear/ewm.py
src/qis/models/linear/ewm_convolution.py
src/qis/models/linear/ewm_winsor_outliers.py
src/qis/models/linear/pca.py
src/qis/models/linear/plot_correlations.py
src/qis/models/linear/ra_returns.py
src/qis/models/linear/tests/corr_cov_matrix_test.py
src/qis/models/linear/tests/ewm_test.py
src/qis/models/linear/tests/numerical_normalization_test.py
src/qis/models/stats/__init__.py
src/qis/models/stats/rolling_stats.py
src/qis/models/unsmoothing/ar_lag.py
src/qis/models/unsmoothing/dimson_beta.py
src/qis/models/unsmoothing/factor_lag.py
src/qis/models/unsmoothing/joint_lag.py
src/qis/models/unsmoothing/tests/joint_lag_warmup_causality_test.py
src/qis/models/unsmoothing/tests/test_ar_lag_glm.py
src/qis/models/unsmoothing/tests/unsmoothing_warmup_causality_test.py
src/qis/perfstats/__init__.py
src/qis/perfstats/config.py
src/qis/perfstats/desc_table.py
src/qis/perfstats/perf_stats.py
src/qis/perfstats/regime_classifier.py
src/qis/perfstats/returns.py
src/qis/perfstats/signal_diagnostics.py
src/qis/perfstats/timeseries_bfill.py
src/qis/perfstats/turnover.py
src/qis/perfstats/tests/benchmark_source_resolution_test.py
src/qis/perfstats/tests/benchmark_source_validation_test.py
src/qis/perfstats/tests/desc_table_all_missing_test.py
src/qis/perfstats/tests/desc_table_annualized_modes_test.py
src/qis/perfstats/tests/desc_table_constant_moments_test.py
src/qis/perfstats/tests/desc_table_duplicate_score_labels_test.py
src/qis/perfstats/tests/desc_table_module_identity_test.py
src/qis/perfstats/tests/desc_table_near_degenerate_moments_test.py
src/qis/perfstats/tests/desc_table_near_degenerate_spread_test.py
src/qis/perfstats/tests/desc_table_non_finite_test.py
src/qis/perfstats/tests/desc_table_positive_probability_test.py
src/qis/perfstats/tests/desc_table_sample_boundaries_test.py
src/qis/perfstats/tests/desc_table_tstat_boundaries_test.py
src/qis/perfstats/tests/drawdown_boundaries_test.py
src/qis/perfstats/tests/drawdown_nullable_ragged_test.py
src/qis/perfstats/tests/drawdown_reduction_test.py
src/qis/perfstats/tests/estimate_vol_finite_count_test.py
src/qis/perfstats/tests/estimate_vol_input_shape_test.py
src/qis/perfstats/tests/estimate_vol_input_type_test.py
src/qis/perfstats/tests/excess_returns_alignment_test.py
src/qis/perfstats/tests/perf_stats_test.py
src/qis/perfstats/tests/ra_frequency_normalization_test.py
src/qis/perfstats/tests/regime_benchmark_means_test.py
src/qis/perfstats/tests/regime_boundaries_test.py
src/qis/perfstats/tests/regime_classifier_forwarding_test.py
src/qis/perfstats/tests/regime_quantile_cardinality_test.py
src/qis/perfstats/tests/regime_sign_contract_test.py
src/qis/perfstats/tests/regime_sign_missing_test.py
src/qis/perfstats/tests/regime_volatility_degenerate_test.py
src/qis/perfstats/tests/regime_volatility_drop_benchmark_test.py
src/qis/perfstats/tests/regime_volatility_missing_test.py
src/qis/perfstats/tests/returns_boundaries_test.py
src/qis/perfstats/tests/returns_fee_boundaries_test.py
src/qis/perfstats/tests/returns_financing_order_test.py
src/qis/perfstats/tests/returns_financing_validation_test.py
src/qis/perfstats/tests/returns_first_date_test.py
src/qis/perfstats/tests/returns_leverage_test.py
src/qis/perfstats/tests/returns_leverage_validation_test.py
src/qis/perfstats/tests/returns_nullable_prices_test.py
src/qis/perfstats/tests/returns_numpy_test.py
src/qis/perfstats/tests/returns_price_validity_test.py
src/qis/perfstats/tests/risk_table_nullable_regression_test.py
src/qis/perfstats/tests/risk_table_terminal_support_test.py
src/qis/perfstats/tests/sharpe_arithmetic_test.py
src/qis/perfstats/tests/sharpe_conventions_test.py
src/qis/perfstats/tests/sharpe_funding_boundaries_test.py
src/qis/perfstats/tests/test_returns_sorting.py
src/qis/perfstats/tests/test_sharpe_convention.py
src/qis/perfstats/tests/test_signal_diagnostics.py
src/qis/perfstats/tests/timeseries_append_contracts_test.py
src/qis/perfstats/tests/timeseries_append_date_order_test.py
src/qis/perfstats/tests/timeseries_append_duplicate_diff_test.py
src/qis/perfstats/tests/timeseries_bfill_columns_test.py
src/qis/perfstats/tests/timeseries_bfill_date_order_test.py
src/qis/perfstats/tests/timeseries_bfill_empty_provider_test.py
src/qis/perfstats/tests/timeseries_bfill_fill_method_test.py
src/qis/perfstats/tests/timeseries_bfill_frequency_metadata_test.py
src/qis/perfstats/tests/timeseries_bfill_frequency_test.py
src/qis/perfstats/tests/timeseries_bfill_price_initialization_test.py
src/qis/perfstats/tests/timeseries_bfill_test.py
src/qis/perfstats/tests/timeseries_calendar_index_test.py
src/qis/perfstats/tests/total_return_date_order_test.py
src/qis/perfstats/tests/total_return_nullable_test.py
src/qis/perfstats/tests/turnover_test.py
src/qis/plots/README.md
src/qis/plots/__init__.py
src/qis/plots/bars.py
src/qis/plots/boxplot.py
src/qis/plots/contour.py
src/qis/plots/dendrogram.py
src/qis/plots/errorbar.py
src/qis/plots/heatmap.py
src/qis/plots/histogram.py
src/qis/plots/histplot2d.py
src/qis/plots/lineplot.py
src/qis/plots/pie.py
src/qis/plots/qqplot.py
src/qis/plots/scatter.py
src/qis/plots/stackplot.py
src/qis/plots/table.py
src/qis/plots/time_series.py
src/qis/plots/utils.py
src/qis/plots/derived/__init__.py
src/qis/plots/derived/clustering.py
src/qis/plots/derived/data_timeseries.py
src/qis/plots/derived/desc_table.py
src/qis/plots/derived/drawdowns.py
src/qis/plots/derived/gantt_data_history.py
src/qis/plots/derived/model_layer_attribution.py
src/qis/plots/derived/perf_table.py
src/qis/plots/derived/portfolio_breadth.py
src/qis/plots/derived/price_history.py
src/qis/plots/derived/prices.py
src/qis/plots/derived/regime_class_table.py
src/qis/plots/derived/regime_data.py
src/qis/plots/derived/regime_pdf.py
src/qis/plots/derived/regime_scatter.py
src/qis/plots/derived/returns_heatmap.py
src/qis/plots/derived/returns_scatter.py
src/qis/plots/derived/signal_diagnostics_plot.py
src/qis/plots/derived/tests/clustering_test.py
src/qis/plots/derived/tests/model_layer_attribution_plot_test.py
src/qis/plots/derived/tests/model_layer_zero_cost_plot_test.py
src/qis/plots/derived/tests/periodic_returns_ragged_start_test.py
src/qis/plots/derived/tests/portfolio_breadth_plot_test.py
src/qis/plots/derived/tests/returns_heatmap_test.py
src/qis/plots/derived/tests/test_returns_heatmap_sorting.py
src/qis/plots/derived/tests/test_signal_diagnostics.py
src/qis/plots/tests/boxplot_test.py
src/qis/plots/tests/desc_table_none_format_test.py
src/qis/plots/tests/legend_all_zero_first_last_test.py
src/qis/plots/tests/legend_constant_moments_test.py
src/qis/plots/tests/legend_endpoint_selection_test.py
src/qis/plots/tests/legend_missing_ratios_test.py
src/qis/plots/tests/legend_near_degenerate_precision_test.py
src/qis/plots/tests/legend_none_format_test.py
src/qis/plots/tests/legend_nullable_missing_display_test.py
src/qis/plots/tests/legend_std_boundaries_test.py
src/qis/plots/tests/legend_tstat_boundaries_test.py
src/qis/plots/tests/non_finite_desc_plot_test.py
src/qis/plots/tests/plot_smoke_test.py
src/qis/plots/tests/regime_plot_drop_benchmark_test.py
src/qis/plots/tests/stackplot_annotation_options_test.py
src/qis/plots/tests/stackplot_nullable_input_test.py
src/qis/plots/tests/utils_test.py
src/qis/portfolio/__init__.py
src/qis/portfolio/backtester.py
src/qis/portfolio/multi_portfolio_data.py
src/qis/portfolio/portfolio_data.py
src/qis/portfolio/signal_data.py
src/qis/portfolio/attribution/__init__.py
src/qis/portfolio/attribution/brinson.py
src/qis/portfolio/attribution/model_feature.py
src/qis/portfolio/attribution/model_layer.py
src/qis/portfolio/attribution/portfolio_breadth.py
src/qis/portfolio/attribution/tests/brinson_test.py
src/qis/portfolio/attribution/tests/model_feature_test.py
src/qis/portfolio/attribution/tests/model_layer_reporting_test.py
src/qis/portfolio/attribution/tests/model_layer_test.py
src/qis/portfolio/attribution/tests/portfolio_breadth_test.py
src/qis/portfolio/reports/__init__.py
src/qis/portfolio/reports/brinson_attribution.py
src/qis/portfolio/reports/config.py
src/qis/portfolio/reports/factsheet_facade.py
src/qis/portfolio/reports/multi_assets_factsheet.py
src/qis/portfolio/reports/multi_strategy_factsheet.py
src/qis/portfolio/reports/multi_strategy_factsheet_pybloqs.py
src/qis/portfolio/reports/overlays_smart_diversification.py
src/qis/portfolio/reports/strategy_benchmark_factsheet.py
src/qis/portfolio/reports/strategy_benchmark_factsheet_pybloqs.py
src/qis/portfolio/reports/strategy_benchmark_tre_factsheet.py
src/qis/portfolio/reports/strategy_factsheet.py
src/qis/portfolio/reports/strategy_signal_factsheet.py
src/qis/portfolio/reports/tests/strategy_factsheet_test.py
src/qis/portfolio/risk/__init__.py
src/qis/portfolio/risk/contributions.py
src/qis/portfolio/risk/ewm_covar_risk.py
src/qis/portfolio/risk/ewm_factor_model.py
src/qis/portfolio/risk/ex_post_tracking_error.py
src/qis/portfolio/risk/factor_groups.py
src/qis/portfolio/risk/factor_model.py
src/qis/portfolio/risk/risk_model.py
src/qis/portfolio/risk/stress_testing.py
src/qis/portfolio/risk/tests/contributions_test.py
src/qis/portfolio/risk/tests/ex_post_tracking_error_test.py
src/qis/portfolio/risk/tests/factor_model_test.py
src/qis/portfolio/risk/tests/risk_model_test.py
src/qis/portfolio/risk/tests/stress_testing_test.py
src/qis/portfolio/stress/__init__.py
src/qis/portfolio/stress/_bands.py
src/qis/portfolio/stress/_clusters.py
src/qis/portfolio/stress/_diagnostics.py
src/qis/portfolio/stress/_figures.py
src/qis/portfolio/stress/_valuation.py
src/qis/portfolio/stress/analytics.py
src/qis/portfolio/stress/instruments.py
src/qis/portfolio/stress/portfolio.py
src/qis/portfolio/stress/reporting.py
src/qis/portfolio/stress/scenarios.py
src/qis/portfolio/stress/tests/__init__.py
src/qis/portfolio/stress/tests/analytics_test.py
src/qis/portfolio/stress/tests/cluster_contributions_test.py
src/qis/portfolio/stress/tests/conditional_bands_test.py
src/qis/portfolio/stress/tests/conditional_illustration_test.py
src/qis/portfolio/stress/tests/conftest.py
src/qis/portfolio/stress/tests/consumer_contract_test.py
src/qis/portfolio/stress/tests/family_cluster_report_test.py
src/qis/portfolio/stress/tests/instruments_test.py
src/qis/portfolio/stress/tests/portfolio_test.py
src/qis/portfolio/stress/tests/presentation_test.py
src/qis/portfolio/stress/tests/public_api_test.py
src/qis/portfolio/stress/tests/reporting_test.py
src/qis/portfolio/stress/tests/scenarios_test.py
src/qis/portfolio/tests/attribution_reduction_test.py
src/qis/portfolio/tests/backtester_initial_costs_test.py
src/qis/portfolio/tests/backtester_negative_lag_test.py
src/qis/portfolio/tests/backtester_nullable_costs_test.py
src/qis/portfolio/tests/backtester_price_date_order_test.py
src/qis/portfolio/tests/backtester_weight_date_order_test.py
src/qis/portfolio/tests/brinson_inputs_test.py
src/qis/portfolio/tests/brinson_wrapper_test.py
src/qis/portfolio/tests/legend_capacity_test.py
src/qis/portfolio/tests/portfolio_data_nav_alignment_test.py
src/qis/portfolio/tests/test_backtester_costs.py
src/qis/portfolio/tests/test_backtester_weights_consistency.py
src/qis/portfolio/tests/tracking_error_report_test.py
src/qis/tests/__init__.py
src/qis/tests/documentation_analytics_test.py
src/qis/tests/documentation_indexing_test.py
src/qis/tests/documentation_standard_test.py
src/qis/tests/file_utils_test.py
src/qis/tests/module_layout_test.py
src/qis/tests/price_data_run_test.py
src/qis/tests/synthetic_data.py
src/qis/tests/test_concat_sort_convention.py
src/qis/tests/test_core_api.py
src/qis/tests/test_docstring_convention.py
src/qis/tests/test_documentation.py
src/qis/tests/test_examples.py
src/qis/tests/test_nav_sampling_contract.py
src/qis/tests/test_paper_audit.py
src/qis/tests/test_quickstart.py
src/qis/tests/test_reporting_conventions.py
src/qis/tests/test_reporting_goldens.py
src/qis/tests/test_version_metadata.py
src/qis/utils/__init__.py
src/qis/utils/annualisation.py
src/qis/utils/dates.py
src/qis/utils/df_agg.py
src/qis/utils/df_cut.py
src/qis/utils/df_freq.py
src/qis/utils/df_groups.py
src/qis/utils/df_melt.py
src/qis/utils/df_ops.py
src/qis/utils/df_str.py
src/qis/utils/df_to_scores.py
src/qis/utils/df_to_weights.py
src/qis/utils/generic.py
src/qis/utils/np_ops.py
src/qis/utils/regression.py
src/qis/utils/sampling.py
src/qis/utils/struct_ops.py
src/qis/utils/tests/annualisation_business_alias_test.py
src/qis/utils/tests/annualisation_minute_alias_test.py
src/qis/utils/tests/annualisation_three_quarter_test.py
src/qis/utils/tests/dates_upto_unsorted_test.py
src/qis/utils/tests/df_freq_calendar_index_test.py
src/qis/utils/tests/np_ops_covar_to_corr_test.py
src/qis/utils/tests/regression_nullable_test.py
src/qis/utils/tests/regression_test.py
src/qis/utils/tests/sampling_test.py
src/qis/utils/tests/test_df_freq_sorting.py
src/qis/utils/tests/test_static_weights_schedule.py
src/qis/utils/tests/weight_allocation_zero_net_test.py