wbfdm 1.55.5__tar.gz → 1.55.6__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of wbfdm might be problematic. Click here for more details.
- {wbfdm-1.55.5 → wbfdm-1.55.6}/PKG-INFO +1 -1
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/contrib/qa/jinja2/qa/sql/ibes/financials.sql +1 -1
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/contrib/qa/sync/utils.py +4 -1
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/import_export/handlers/instrument.py +43 -24
- {wbfdm-1.55.5 → wbfdm-1.55.6}/.gitignore +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/pyproject.toml +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/__init__.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/admin/__init__.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/admin/classifications.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/admin/esg.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/admin/exchanges.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/admin/instrument_lists.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/admin/instrument_prices.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/admin/instrument_requests.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/admin/instruments.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/admin/instruments_relationships.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/admin/options.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/analysis/__init__.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/analysis/esg/__init__.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/analysis/esg/enums.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/analysis/esg/esg_analysis.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/analysis/esg/utils.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/analysis/financial_analysis/__init__.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/analysis/financial_analysis/change_point_detection.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/analysis/financial_analysis/financial_metric_analysis.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/analysis/financial_analysis/financial_ratio_analysis.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/analysis/financial_analysis/financial_statistics_analysis.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/analysis/financial_analysis/statement_with_estimates.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/analysis/financial_analysis/utils.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/analysis/technical_analysis/__init__.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/analysis/technical_analysis/technical_analysis.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/analysis/technical_analysis/traces.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/analysis/utils.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/apps.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/backends/dto.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/contrib/__init__.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/contrib/dsws/__init__.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/contrib/dsws/client.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/contrib/dsws/dataloaders/market_data.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/contrib/internal/__init__.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/contrib/internal/dataloaders/__init__.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/contrib/internal/dataloaders/market_data.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/contrib/metric/__init__.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/contrib/metric/admin/__init__.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/contrib/metric/admin/instruments.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/contrib/metric/admin/metrics.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/contrib/metric/apps.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/contrib/metric/backends/__init__.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/contrib/metric/backends/base.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/contrib/metric/backends/performances.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/contrib/metric/backends/statistics.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/contrib/metric/backends/utils.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/contrib/metric/decorators.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/contrib/metric/dispatch.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/contrib/metric/dto.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/contrib/metric/exceptions.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/contrib/metric/factories.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/contrib/metric/filters.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/contrib/metric/migrations/0001_initial.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/contrib/metric/migrations/0002_remove_instrumentmetric_unique_instrument_metric_and_more.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/contrib/metric/migrations/__init__.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/contrib/metric/models.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/contrib/metric/orchestrators.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/contrib/metric/registry.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/contrib/metric/serializers.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/contrib/metric/tasks.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/contrib/metric/tests/__init__.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/contrib/metric/tests/backends/__init__.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/contrib/metric/tests/backends/test_performances.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/contrib/metric/tests/backends/test_statistics.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/contrib/metric/tests/conftest.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/contrib/metric/tests/test_dto.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/contrib/metric/tests/test_models.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/contrib/metric/tests/test_tasks.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/contrib/metric/tests/test_viewsets.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/contrib/metric/urls.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/contrib/metric/viewsets/__init__.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/contrib/metric/viewsets/configs/__init__.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/contrib/metric/viewsets/configs/display.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/contrib/metric/viewsets/configs/menus.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/contrib/metric/viewsets/configs/utils.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/contrib/metric/viewsets/mixins.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/contrib/metric/viewsets/viewsets.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/contrib/msci/__init__.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/contrib/msci/client.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/contrib/msci/dataloaders/__init__.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/contrib/msci/dataloaders/esg.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/contrib/msci/dataloaders/esg_controversies.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/contrib/msci/sync.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/contrib/msci/tests/__init__.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/contrib/msci/tests/conftest.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/contrib/msci/tests/test_client.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/contrib/qa/__init__.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/contrib/qa/apps.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/contrib/qa/database_routers.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/contrib/qa/dataloaders/__init__.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/contrib/qa/dataloaders/adjustments.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/contrib/qa/dataloaders/corporate_actions.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/contrib/qa/dataloaders/financials.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/contrib/qa/dataloaders/fx_rates.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/contrib/qa/dataloaders/market_data.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/contrib/qa/dataloaders/officers.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/contrib/qa/dataloaders/reporting_dates.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/contrib/qa/dataloaders/statements.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/contrib/qa/dataloaders/utils.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/contrib/qa/jinja2/qa/sql/companies.sql +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/contrib/qa/jinja2/qa/sql/ibes/base_estimates.sql +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/contrib/qa/jinja2/qa/sql/ibes/calendarized.sql +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/contrib/qa/jinja2/qa/sql/ibes/complete.sql +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/contrib/qa/jinja2/qa/sql/ibes/estimates.sql +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/contrib/qa/jinja2/qa/sql/instruments.sql +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/contrib/qa/jinja2/qa/sql/quotes.sql +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/contrib/qa/sync/exchanges.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/contrib/qa/sync/instruments.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/contrib/qa/tasks.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/dataloaders/__init__.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/dataloaders/cache.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/dataloaders/protocols.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/dataloaders/proxies.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/dataloaders/types.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/dynamic_preferences_registry.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/enums.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/factories/__init__.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/factories/classifications.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/factories/controversies.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/factories/exchanges.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/factories/instrument_list.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/factories/instrument_prices.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/factories/instruments.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/factories/instruments_relationships.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/factories/options.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/figures/__init__.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/figures/financials/__init__.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/figures/financials/financial_analysis_charts.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/figures/financials/financials_charts.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/filters/__init__.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/filters/classifications.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/filters/exchanges.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/filters/financials.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/filters/financials_analysis.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/filters/instrument_prices.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/filters/instruments.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/filters/utils.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/import_export/__init__.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/import_export/backends/__init__.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/import_export/backends/cbinsights/__init__.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/import_export/backends/cbinsights/deals.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/import_export/backends/cbinsights/equities.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/import_export/backends/cbinsights/mixin.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/import_export/backends/cbinsights/utils/__init__.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/import_export/backends/cbinsights/utils/classifications.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/import_export/backends/cbinsights/utils/client.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/import_export/backends/refinitiv/__init__.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/import_export/backends/refinitiv/daily_fundamental.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/import_export/backends/refinitiv/fiscal_period.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/import_export/backends/refinitiv/forecast.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/import_export/backends/refinitiv/fundamental.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/import_export/backends/refinitiv/geographic_segment.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/import_export/backends/refinitiv/instrument.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/import_export/backends/refinitiv/instrument_price.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/import_export/backends/refinitiv/mixin.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/import_export/backends/refinitiv/utils/__init__.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/import_export/backends/refinitiv/utils/controller.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/import_export/handlers/__init__.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/import_export/handlers/instrument_list.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/import_export/handlers/instrument_price.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/import_export/handlers/option.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/import_export/handlers/private_equities.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/import_export/parsers/__init__.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/import_export/parsers/cbinsights/__init__.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/import_export/parsers/cbinsights/deals.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/import_export/parsers/cbinsights/equities.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/import_export/parsers/cbinsights/fundamentals.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/import_export/parsers/refinitiv/__init__.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/import_export/parsers/refinitiv/daily_fundamental.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/import_export/parsers/refinitiv/forecast.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/import_export/parsers/refinitiv/fundamental.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/import_export/parsers/refinitiv/geographic_segment.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/import_export/parsers/refinitiv/instrument.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/import_export/parsers/refinitiv/instrument_price.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/import_export/parsers/refinitiv/utils.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/import_export/resources/__init__.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/import_export/resources/classification.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/import_export/resources/instrument_prices.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/import_export/resources/instruments.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/jinja2.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/locale/de/LC_MESSAGES/django.mo +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/locale/de/LC_MESSAGES/django.po +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/locale/en/LC_MESSAGES/django.mo +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/locale/en/LC_MESSAGES/django.po +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/locale/fr/LC_MESSAGES/django.mo +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/locale/fr/LC_MESSAGES/django.po +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/management/__init__.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/migrations/0001_initial.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/migrations/0002_rename_statements_instrumentlookup_financials_and_more.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/migrations/0003_instrument_estimate_backend_and_more.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/migrations/0004_rename_financials_instrumentlookup_statements_and_more.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/migrations/0005_instrument_corporate_action_backend.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/migrations/0006_instrument_officer_backend.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/migrations/0007_instrument_country_instrument_currency_and_more.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/migrations/0008_controversy.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/migrations/0009_alter_controversy_flag_alter_controversy_initiated_and_more.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/migrations/0010_classification_classificationgroup_deal_exchange_and_more.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/migrations/0011_delete_instrumentlookup_instrument_corporate_actions_and_more.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/migrations/0012_instrumentprice_created_instrumentprice_modified.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/migrations/0013_instrument_is_investable_universe_and_more.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/migrations/0014_alter_controversy_instrument.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/migrations/0015_instrument_instrument_investible_index.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/migrations/0016_instrumenttype_name_repr.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/migrations/0017_instrument_instrument_security_index.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/migrations/0018_instrument_instrument_level_index.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/migrations/0019_alter_controversy_source.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/migrations/0020_optionaggregate_option_and_more.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/migrations/0021_delete_instrumentdailystatistics.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/migrations/0022_instrument_cusip_option_open_interest_20d_and_more.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/migrations/0023_instrument_unique_ric_instrument_unique_rmc_and_more.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/migrations/0024_option_open_interest_10d_option_volume_10d_and_more.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/migrations/0025_instrument_is_primary_and_more.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/migrations/0026_instrument_is_cash_equivalent.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/migrations/0027_remove_instrument_unique_ric_and_more.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/migrations/0028_instrumentprice_annualized_daily_volatility.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/migrations/0029_alter_instrumentprice_volume.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/migrations/0030_alter_relatedinstrumentthroughmodel_related_type.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/migrations/0031_exchange_apply_round_lot_size_and_more.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/migrations/0032_alter_instrumentprice_outstanding_shares.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/migrations/__init__.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/models/__init__.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/models/esg/__init__.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/models/esg/controversies.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/models/exchanges/__init__.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/models/exchanges/exchanges.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/models/fields.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/models/fk_fields.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/models/indicators.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/models/instruments/__init__.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/models/instruments/classifications.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/models/instruments/instrument_lists.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/models/instruments/instrument_prices.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/models/instruments/instrument_relationships.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/models/instruments/instrument_requests.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/models/instruments/instruments.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/models/instruments/llm/__init__.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/models/instruments/llm/create_instrument_news_relationships.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/models/instruments/mixin/__init__.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/models/instruments/mixin/financials_computed.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/models/instruments/mixin/financials_serializer_fields.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/models/instruments/mixin/instruments.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/models/instruments/options.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/models/instruments/private_equities.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/models/instruments/querysets.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/models/instruments/utils.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/preferences.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/serializers/__init__.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/serializers/esg.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/serializers/exchanges.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/serializers/instruments/__init__.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/serializers/instruments/classifications.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/serializers/instruments/instrument_lists.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/serializers/instruments/instrument_prices.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/serializers/instruments/instrument_relationships.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/serializers/instruments/instrument_requests.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/serializers/instruments/instruments.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/serializers/instruments/mixins.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/serializers/officers.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/signals.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/sync/__init__.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/sync/abstract.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/sync/runner.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/tasks.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/tests/__init__.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/tests/analysis/__init__.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/tests/analysis/financial_analysis/__init__.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/tests/analysis/financial_analysis/test_statement_with_estimates.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/tests/analysis/financial_analysis/test_utils.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/tests/analysis/test_esg.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/tests/conftest.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/tests/dataloaders/__init__.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/tests/dataloaders/test_cache.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/tests/models/__init__.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/tests/models/test_classifications.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/tests/models/test_exchanges.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/tests/models/test_instrument_list.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/tests/models/test_instrument_prices.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/tests/models/test_instruments.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/tests/models/test_merge.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/tests/models/test_options.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/tests/models/test_queryset.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/tests/test_tasks.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/tests/tests.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/urls.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/utils.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/viewsets/__init__.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/viewsets/configs/__init__.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/viewsets/configs/buttons/__init__.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/viewsets/configs/buttons/classifications.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/viewsets/configs/buttons/exchanges.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/viewsets/configs/buttons/instrument_prices.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/viewsets/configs/buttons/instruments.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/viewsets/configs/display/__init__.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/viewsets/configs/display/classifications.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/viewsets/configs/display/esg.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/viewsets/configs/display/exchanges.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/viewsets/configs/display/financial_summary.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/viewsets/configs/display/instrument_lists.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/viewsets/configs/display/instrument_prices.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/viewsets/configs/display/instrument_requests.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/viewsets/configs/display/instruments.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/viewsets/configs/display/instruments_relationships.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/viewsets/configs/display/monthly_performances.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/viewsets/configs/display/officers.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/viewsets/configs/display/prices.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/viewsets/configs/display/statement_with_estimates.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/viewsets/configs/display/statements.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/viewsets/configs/endpoints/__init__.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/viewsets/configs/endpoints/classifications.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/viewsets/configs/endpoints/esg.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/viewsets/configs/endpoints/exchanges.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/viewsets/configs/endpoints/financials_analysis.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/viewsets/configs/endpoints/instrument_lists.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/viewsets/configs/endpoints/instrument_prices.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/viewsets/configs/endpoints/instrument_requests.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/viewsets/configs/endpoints/instruments.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/viewsets/configs/endpoints/instruments_relationships.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/viewsets/configs/endpoints/statements.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/viewsets/configs/menus/__init__.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/viewsets/configs/menus/classifications.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/viewsets/configs/menus/exchanges.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/viewsets/configs/menus/instrument_lists.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/viewsets/configs/menus/instruments.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/viewsets/configs/menus/instruments_relationships.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/viewsets/configs/titles/__init__.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/viewsets/configs/titles/classifications.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/viewsets/configs/titles/esg.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/viewsets/configs/titles/exchanges.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/viewsets/configs/titles/financial_ratio_analysis.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/viewsets/configs/titles/financials_analysis.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/viewsets/configs/titles/instrument_prices.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/viewsets/configs/titles/instrument_requests.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/viewsets/configs/titles/instruments.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/viewsets/configs/titles/instruments_relationships.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/viewsets/configs/titles/market_data.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/viewsets/configs/titles/prices.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/viewsets/configs/titles/statement_with_estimates.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/viewsets/esg.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/viewsets/exchanges.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/viewsets/financial_analysis/__init__.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/viewsets/financial_analysis/financial_metric_analysis.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/viewsets/financial_analysis/financial_ratio_analysis.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/viewsets/financial_analysis/financial_summary.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/viewsets/financial_analysis/statement_with_estimates.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/viewsets/instruments/__init__.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/viewsets/instruments/classifications.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/viewsets/instruments/financials_analysis.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/viewsets/instruments/instrument_lists.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/viewsets/instruments/instrument_prices.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/viewsets/instruments/instrument_requests.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/viewsets/instruments/instruments.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/viewsets/instruments/instruments_relationships.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/viewsets/instruments/utils.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/viewsets/market_data.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/viewsets/mixins.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/viewsets/officers.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/viewsets/prices.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/viewsets/statements/__init__.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/viewsets/statements/statements.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/viewsets/technical_analysis/__init__.py +0 -0
- {wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/viewsets/technical_analysis/monthly_performances.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: wbfdm
|
|
3
|
-
Version: 1.55.
|
|
3
|
+
Version: 1.55.6
|
|
4
4
|
Summary: The workbench module ensures rapid access to diverse financial data (market, fundamental, forecasts, ESG), with features for storing instruments, classifying them, and conducting financial analysis.
|
|
5
5
|
Author-email: Christopher Wittlinger <c.wittlinger@stainly.com>
|
|
6
6
|
Requires-Dist: roman==4.*
|
|
@@ -299,4 +299,7 @@ def trigger_partial_update(
|
|
|
299
299
|
for _, security_id in cursor.execute(
|
|
300
300
|
f"SELECT UpdateFlag_, {id_field} FROM {table_change_name}"
|
|
301
301
|
).fetchall():
|
|
302
|
-
|
|
302
|
+
try:
|
|
303
|
+
update_or_create_item(security_id)
|
|
304
|
+
except Exception as e:
|
|
305
|
+
logger.error(f"Error updating instrument {security_id}: {e}")
|
|
@@ -8,6 +8,7 @@ from django.contrib.postgres.search import TrigramSimilarity
|
|
|
8
8
|
from django.core.exceptions import MultipleObjectsReturned
|
|
9
9
|
from django.db import IntegrityError, models
|
|
10
10
|
from django.db.models import Q
|
|
11
|
+
from slugify import slugify
|
|
11
12
|
from wbcore.contrib.currency.import_export.handlers import CurrencyImportHandler
|
|
12
13
|
from wbcore.contrib.geography.models import Geography
|
|
13
14
|
from wbcore.contrib.io.exceptions import DeserializationError
|
|
@@ -24,6 +25,7 @@ class InstrumentLookup:
|
|
|
24
25
|
"refinitiv_mnemonic_code",
|
|
25
26
|
"identifier",
|
|
26
27
|
"ticker",
|
|
28
|
+
"currency",
|
|
27
29
|
]
|
|
28
30
|
|
|
29
31
|
def __init__(self, model, trigram_similarity_min_score: float = 0.8):
|
|
@@ -33,10 +35,18 @@ class InstrumentLookup:
|
|
|
33
35
|
|
|
34
36
|
@classmethod
|
|
35
37
|
def _get_cache_key(cls, **data):
|
|
36
|
-
if data
|
|
37
|
-
return "-".join([f"{k}:{data.get(k, None)}" for k in cls.ORDERED_KEYS if data.get(k, None) is not None])
|
|
38
|
+
return "-".join([f"{k}:{slugify(str(data[k]))}" for k in cls.ORDERED_KEYS if data.get(k, None) is not None])
|
|
38
39
|
|
|
39
|
-
def
|
|
40
|
+
def _get_cache(self, **kwargs):
|
|
41
|
+
cache_key = self._get_cache_key(**kwargs)
|
|
42
|
+
if cache_key and cache_key in self.cache:
|
|
43
|
+
return self.cache[cache_key]
|
|
44
|
+
|
|
45
|
+
def _set_cache(self, instrument, **kwargs):
|
|
46
|
+
cache_key = self._get_cache_key(**kwargs)
|
|
47
|
+
self.cache[cache_key] = instrument
|
|
48
|
+
|
|
49
|
+
def _lookup_security(
|
|
40
50
|
self,
|
|
41
51
|
instrument_type=None,
|
|
42
52
|
currency=None,
|
|
@@ -47,10 +57,6 @@ class InstrumentLookup:
|
|
|
47
57
|
**identifiers,
|
|
48
58
|
):
|
|
49
59
|
identifiers = {k: v for k, v in identifiers.items() if v is not None}
|
|
50
|
-
# General lookup, we try to gracefully find the instrument based on all available identifier fields
|
|
51
|
-
cache_key = self._get_cache_key(**identifiers)
|
|
52
|
-
if cache_key and cache_key in self.cache:
|
|
53
|
-
return self.cache[cache_key]
|
|
54
60
|
|
|
55
61
|
instrument = None
|
|
56
62
|
|
|
@@ -126,7 +132,7 @@ class InstrumentLookup:
|
|
|
126
132
|
instrument = instruments.first()
|
|
127
133
|
elif instrument_type and identifiers:
|
|
128
134
|
# if instrument type was provided but we still didn't find the security, we try without the instrument type in case it was mislabeled
|
|
129
|
-
instrument = self.
|
|
135
|
+
instrument = self._lookup_security(
|
|
130
136
|
only_investable_universe=only_investable_universe,
|
|
131
137
|
exact_lookup=exact_lookup,
|
|
132
138
|
currency=currency,
|
|
@@ -135,7 +141,7 @@ class InstrumentLookup:
|
|
|
135
141
|
)
|
|
136
142
|
if not instrument and name and identifiers:
|
|
137
143
|
# Sometime, identifier provided emptied the queryset of possible instruments. In a last chance approach, we try to only look for security with the given name
|
|
138
|
-
instrument = self.
|
|
144
|
+
instrument = self._lookup_security(
|
|
139
145
|
only_investable_universe=only_investable_universe,
|
|
140
146
|
exact_lookup=exact_lookup,
|
|
141
147
|
instrument_type=instrument_type,
|
|
@@ -143,27 +149,40 @@ class InstrumentLookup:
|
|
|
143
149
|
exchange=exchange,
|
|
144
150
|
name=name,
|
|
145
151
|
)
|
|
146
|
-
if instrument:
|
|
147
|
-
|
|
152
|
+
if instrument and only_investable_universe and instrument.parent:
|
|
153
|
+
instrument = instrument.parent
|
|
148
154
|
return instrument
|
|
149
155
|
|
|
156
|
+
def _lookup_quote(self, security, currency=None, exchange=None, **kwargs):
|
|
157
|
+
quotes = security.children.all()
|
|
158
|
+
if not quotes.exists():
|
|
159
|
+
return security
|
|
160
|
+
if quotes.count() == 1:
|
|
161
|
+
return quotes.first()
|
|
162
|
+
if exchange and quotes.filter(exchange=exchange).count() == 1:
|
|
163
|
+
return quotes.get(exchange=exchange)
|
|
164
|
+
if currency:
|
|
165
|
+
quotes = quotes.filter(currency=currency)
|
|
166
|
+
if quotes.count() == 1:
|
|
167
|
+
return quotes.first()
|
|
168
|
+
if quotes.filter(is_investable_universe=True).count() == 1:
|
|
169
|
+
return quotes.get(is_investable_universe=True)
|
|
170
|
+
return security.children.filter(is_primary=True).first()
|
|
171
|
+
|
|
150
172
|
def lookup(self, only_security: bool = False, exact_lookup: bool = False, **lookup_kwargs):
|
|
151
173
|
# To speed up lookup process, we try to get the quote from the investable universe first
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
174
|
+
if instrument := self._get_cache(**lookup_kwargs):
|
|
175
|
+
return instrument
|
|
176
|
+
instrument = self._lookup_security(only_investable_universe=True, exact_lookup=exact_lookup, **lookup_kwargs)
|
|
177
|
+
if not instrument:
|
|
178
|
+
instrument = self._lookup_security(
|
|
155
179
|
only_investable_universe=False, exact_lookup=exact_lookup, **lookup_kwargs
|
|
156
180
|
)
|
|
157
|
-
if not only_security and
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
if exchange and quotes.filter(exchange=exchange).exists():
|
|
163
|
-
return quotes.filter(exchange=exchange).first()
|
|
164
|
-
else:
|
|
165
|
-
return quotes.filter(is_primary=True).first()
|
|
166
|
-
return security
|
|
181
|
+
if not only_security and instrument:
|
|
182
|
+
instrument = self._lookup_quote(instrument, **lookup_kwargs)
|
|
183
|
+
if instrument:
|
|
184
|
+
self._set_cache(instrument, **lookup_kwargs)
|
|
185
|
+
return instrument
|
|
167
186
|
|
|
168
187
|
|
|
169
188
|
class InstrumentImportHandler(ImportExportHandler):
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/analysis/financial_analysis/financial_metric_analysis.py
RENAMED
|
File without changes
|
|
File without changes
|
{wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/analysis/financial_analysis/financial_statistics_analysis.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{wbfdm-1.55.5 → wbfdm-1.55.6}/wbfdm/import_export/backends/cbinsights/utils/classifications.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|