wbfdm 1.49.2__tar.gz → 1.49.4__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.49.2 → wbfdm-1.49.4}/PKG-INFO +1 -1
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/contrib/qa/dataloaders/market_data.py +42 -7
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/dataloaders/types.py +3 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/viewsets/configs/display/instrument_lists.py +10 -9
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/viewsets/configs/display/instruments.py +1 -1
- {wbfdm-1.49.2 → wbfdm-1.49.4}/.gitignore +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/pyproject.toml +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/__init__.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/admin/__init__.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/admin/classifications.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/admin/esg.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/admin/exchanges.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/admin/instrument_lists.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/admin/instrument_prices.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/admin/instrument_requests.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/admin/instruments.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/admin/instruments_relationships.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/admin/options.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/analysis/__init__.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/analysis/esg/__init__.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/analysis/esg/enums.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/analysis/esg/esg_analysis.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/analysis/esg/utils.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/analysis/financial_analysis/__init__.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/analysis/financial_analysis/financial_metric_analysis.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/analysis/financial_analysis/financial_ratio_analysis.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/analysis/financial_analysis/financial_statistics_analysis.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/analysis/financial_analysis/statement_with_estimates.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/analysis/financial_analysis/utils.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/analysis/technical_analysis/__init__.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/analysis/technical_analysis/technical_analysis.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/analysis/technical_analysis/traces.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/analysis/utils.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/apps.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/backends/dto.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/contrib/__init__.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/contrib/dsws/__init__.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/contrib/dsws/client.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/contrib/dsws/dataloaders/market_data.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/contrib/internal/__init__.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/contrib/internal/dataloaders/__init__.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/contrib/internal/dataloaders/market_data.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/contrib/metric/__init__.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/contrib/metric/admin/__init__.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/contrib/metric/admin/instruments.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/contrib/metric/admin/metrics.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/contrib/metric/apps.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/contrib/metric/backends/__init__.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/contrib/metric/backends/base.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/contrib/metric/backends/performances.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/contrib/metric/backends/statistics.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/contrib/metric/backends/utils.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/contrib/metric/decorators.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/contrib/metric/dispatch.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/contrib/metric/dto.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/contrib/metric/exceptions.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/contrib/metric/factories.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/contrib/metric/filters.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/contrib/metric/migrations/0001_initial.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/contrib/metric/migrations/0002_remove_instrumentmetric_unique_instrument_metric_and_more.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/contrib/metric/migrations/__init__.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/contrib/metric/models.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/contrib/metric/orchestrators.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/contrib/metric/registry.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/contrib/metric/serializers.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/contrib/metric/tasks.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/contrib/metric/tests/__init__.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/contrib/metric/tests/backends/__init__.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/contrib/metric/tests/backends/test_performances.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/contrib/metric/tests/backends/test_statistics.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/contrib/metric/tests/conftest.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/contrib/metric/tests/test_dto.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/contrib/metric/tests/test_models.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/contrib/metric/tests/test_tasks.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/contrib/metric/tests/test_viewsets.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/contrib/metric/urls.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/contrib/metric/viewsets/__init__.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/contrib/metric/viewsets/configs/__init__.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/contrib/metric/viewsets/configs/display.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/contrib/metric/viewsets/configs/menus.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/contrib/metric/viewsets/configs/utils.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/contrib/metric/viewsets/mixins.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/contrib/metric/viewsets/viewsets.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/contrib/msci/__init__.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/contrib/msci/client.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/contrib/msci/dataloaders/__init__.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/contrib/msci/dataloaders/esg.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/contrib/msci/dataloaders/esg_controversies.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/contrib/msci/sync.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/contrib/msci/tests/__init__.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/contrib/msci/tests/conftest.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/contrib/msci/tests/test_client.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/contrib/qa/__init__.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/contrib/qa/apps.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/contrib/qa/database_routers.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/contrib/qa/dataloaders/__init__.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/contrib/qa/dataloaders/adjustments.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/contrib/qa/dataloaders/corporate_actions.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/contrib/qa/dataloaders/financials.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/contrib/qa/dataloaders/officers.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/contrib/qa/dataloaders/reporting_dates.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/contrib/qa/dataloaders/statements.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/contrib/qa/dataloaders/utils.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/contrib/qa/jinja2/qa/sql/companies.sql +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/contrib/qa/jinja2/qa/sql/ibes/base_estimates.sql +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/contrib/qa/jinja2/qa/sql/ibes/calendarized.sql +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/contrib/qa/jinja2/qa/sql/ibes/complete.sql +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/contrib/qa/jinja2/qa/sql/ibes/estimates.sql +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/contrib/qa/jinja2/qa/sql/ibes/financials.sql +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/contrib/qa/jinja2/qa/sql/instruments.sql +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/contrib/qa/jinja2/qa/sql/quotes.sql +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/contrib/qa/sync/exchanges.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/contrib/qa/sync/instruments.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/contrib/qa/sync/utils.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/contrib/qa/tasks.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/dataloaders/__init__.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/dataloaders/cache.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/dataloaders/protocols.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/dataloaders/proxies.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/dynamic_preferences_registry.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/enums.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/factories/__init__.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/factories/classifications.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/factories/controversies.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/factories/exchanges.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/factories/instrument_list.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/factories/instrument_prices.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/factories/instruments.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/factories/instruments_relationships.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/factories/options.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/figures/__init__.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/figures/financials/__init__.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/figures/financials/financial_analysis_charts.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/figures/financials/financials_charts.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/filters/__init__.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/filters/classifications.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/filters/exchanges.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/filters/financials.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/filters/financials_analysis.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/filters/instrument_prices.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/filters/instruments.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/filters/utils.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/import_export/__init__.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/import_export/backends/__init__.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/import_export/backends/cbinsights/__init__.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/import_export/backends/cbinsights/deals.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/import_export/backends/cbinsights/equities.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/import_export/backends/cbinsights/mixin.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/import_export/backends/cbinsights/utils/__init__.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/import_export/backends/cbinsights/utils/classifications.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/import_export/backends/cbinsights/utils/client.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/import_export/backends/refinitiv/__init__.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/import_export/backends/refinitiv/daily_fundamental.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/import_export/backends/refinitiv/fiscal_period.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/import_export/backends/refinitiv/forecast.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/import_export/backends/refinitiv/fundamental.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/import_export/backends/refinitiv/geographic_segment.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/import_export/backends/refinitiv/instrument.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/import_export/backends/refinitiv/instrument_price.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/import_export/backends/refinitiv/mixin.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/import_export/backends/refinitiv/utils/__init__.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/import_export/backends/refinitiv/utils/controller.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/import_export/handlers/__init__.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/import_export/handlers/instrument.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/import_export/handlers/instrument_list.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/import_export/handlers/instrument_price.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/import_export/handlers/option.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/import_export/handlers/private_equities.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/import_export/parsers/__init__.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/import_export/parsers/cbinsights/__init__.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/import_export/parsers/cbinsights/deals.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/import_export/parsers/cbinsights/equities.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/import_export/parsers/cbinsights/fundamentals.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/import_export/parsers/refinitiv/__init__.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/import_export/parsers/refinitiv/daily_fundamental.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/import_export/parsers/refinitiv/forecast.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/import_export/parsers/refinitiv/fundamental.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/import_export/parsers/refinitiv/geographic_segment.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/import_export/parsers/refinitiv/instrument.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/import_export/parsers/refinitiv/instrument_price.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/import_export/parsers/refinitiv/utils.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/import_export/resources/__init__.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/import_export/resources/classification.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/import_export/resources/instrument_prices.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/import_export/resources/instruments.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/jinja2.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/management/__init__.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/menu.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/migrations/0001_initial.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/migrations/0002_rename_statements_instrumentlookup_financials_and_more.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/migrations/0003_instrument_estimate_backend_and_more.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/migrations/0004_rename_financials_instrumentlookup_statements_and_more.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/migrations/0005_instrument_corporate_action_backend.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/migrations/0006_instrument_officer_backend.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/migrations/0007_instrument_country_instrument_currency_and_more.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/migrations/0008_controversy.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/migrations/0009_alter_controversy_flag_alter_controversy_initiated_and_more.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/migrations/0010_classification_classificationgroup_deal_exchange_and_more.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/migrations/0011_delete_instrumentlookup_instrument_corporate_actions_and_more.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/migrations/0012_instrumentprice_created_instrumentprice_modified.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/migrations/0013_instrument_is_investable_universe_and_more.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/migrations/0014_alter_controversy_instrument.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/migrations/0015_instrument_instrument_investible_index.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/migrations/0016_instrumenttype_name_repr.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/migrations/0017_instrument_instrument_security_index.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/migrations/0018_instrument_instrument_level_index.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/migrations/0019_alter_controversy_source.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/migrations/0020_optionaggregate_option_and_more.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/migrations/0021_delete_instrumentdailystatistics.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/migrations/0022_instrument_cusip_option_open_interest_20d_and_more.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/migrations/0023_instrument_unique_ric_instrument_unique_rmc_and_more.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/migrations/0024_option_open_interest_10d_option_volume_10d_and_more.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/migrations/0025_instrument_is_primary_and_more.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/migrations/0026_instrument_is_cash_equivalent.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/migrations/0027_remove_instrument_unique_ric_and_more.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/migrations/0028_instrumentprice_annualized_daily_volatility.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/migrations/0029_alter_instrumentprice_volume.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/migrations/0030_alter_relatedinstrumentthroughmodel_related_type.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/migrations/__init__.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/models/__init__.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/models/esg/__init__.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/models/esg/controversies.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/models/exchanges/__init__.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/models/exchanges/exchanges.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/models/fields.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/models/fk_fields.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/models/indicators.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/models/instruments/__init__.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/models/instruments/classifications.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/models/instruments/instrument_lists.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/models/instruments/instrument_prices.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/models/instruments/instrument_relationships.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/models/instruments/instrument_requests.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/models/instruments/instruments.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/models/instruments/llm/__init__.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/models/instruments/llm/create_instrument_news_relationships.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/models/instruments/mixin/__init__.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/models/instruments/mixin/financials_computed.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/models/instruments/mixin/financials_serializer_fields.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/models/instruments/mixin/instruments.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/models/instruments/options.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/models/instruments/private_equities.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/models/instruments/querysets.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/models/instruments/utils.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/preferences.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/serializers/__init__.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/serializers/esg.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/serializers/exchanges.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/serializers/instruments/__init__.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/serializers/instruments/classifications.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/serializers/instruments/instrument_lists.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/serializers/instruments/instrument_prices.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/serializers/instruments/instrument_relationships.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/serializers/instruments/instrument_requests.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/serializers/instruments/instruments.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/serializers/instruments/mixins.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/serializers/officers.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/signals.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/sync/__init__.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/sync/abstract.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/sync/runner.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/tasks.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/tests/__init__.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/tests/analysis/__init__.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/tests/analysis/financial_analysis/__init__.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/tests/analysis/financial_analysis/test_statement_with_estimates.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/tests/analysis/financial_analysis/test_utils.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/tests/analysis/test_esg.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/tests/conftest.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/tests/dataloaders/__init__.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/tests/dataloaders/test_cache.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/tests/models/__init__.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/tests/models/test_classifications.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/tests/models/test_exchanges.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/tests/models/test_instrument_list.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/tests/models/test_instrument_prices.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/tests/models/test_instruments.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/tests/models/test_merge.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/tests/models/test_options.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/tests/test_tasks.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/tests/tests.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/urls.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/utils.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/viewsets/__init__.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/viewsets/configs/__init__.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/viewsets/configs/buttons/__init__.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/viewsets/configs/buttons/classifications.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/viewsets/configs/buttons/exchanges.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/viewsets/configs/buttons/instrument_prices.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/viewsets/configs/buttons/instruments.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/viewsets/configs/display/__init__.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/viewsets/configs/display/classifications.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/viewsets/configs/display/esg.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/viewsets/configs/display/exchanges.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/viewsets/configs/display/financial_summary.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/viewsets/configs/display/instrument_prices.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/viewsets/configs/display/instrument_requests.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/viewsets/configs/display/instruments_relationships.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/viewsets/configs/display/monthly_performances.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/viewsets/configs/display/officers.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/viewsets/configs/display/prices.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/viewsets/configs/display/statement_with_estimates.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/viewsets/configs/display/statements.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/viewsets/configs/endpoints/__init__.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/viewsets/configs/endpoints/classifications.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/viewsets/configs/endpoints/esg.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/viewsets/configs/endpoints/exchanges.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/viewsets/configs/endpoints/financials_analysis.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/viewsets/configs/endpoints/instrument_lists.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/viewsets/configs/endpoints/instrument_prices.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/viewsets/configs/endpoints/instrument_requests.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/viewsets/configs/endpoints/instruments.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/viewsets/configs/endpoints/instruments_relationships.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/viewsets/configs/endpoints/statements.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/viewsets/configs/menus/__init__.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/viewsets/configs/menus/classifications.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/viewsets/configs/menus/exchanges.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/viewsets/configs/menus/instrument_lists.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/viewsets/configs/menus/instruments.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/viewsets/configs/menus/instruments_relationships.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/viewsets/configs/titles/__init__.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/viewsets/configs/titles/classifications.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/viewsets/configs/titles/esg.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/viewsets/configs/titles/exchanges.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/viewsets/configs/titles/financial_ratio_analysis.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/viewsets/configs/titles/financials_analysis.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/viewsets/configs/titles/instrument_prices.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/viewsets/configs/titles/instrument_requests.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/viewsets/configs/titles/instruments.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/viewsets/configs/titles/instruments_relationships.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/viewsets/configs/titles/market_data.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/viewsets/configs/titles/prices.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/viewsets/configs/titles/statement_with_estimates.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/viewsets/esg.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/viewsets/exchanges.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/viewsets/financial_analysis/__init__.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/viewsets/financial_analysis/financial_metric_analysis.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/viewsets/financial_analysis/financial_ratio_analysis.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/viewsets/financial_analysis/financial_summary.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/viewsets/financial_analysis/statement_with_estimates.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/viewsets/instruments/__init__.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/viewsets/instruments/classifications.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/viewsets/instruments/financials_analysis.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/viewsets/instruments/instrument_lists.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/viewsets/instruments/instrument_prices.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/viewsets/instruments/instrument_requests.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/viewsets/instruments/instruments.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/viewsets/instruments/instruments_relationships.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/viewsets/instruments/utils.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/viewsets/market_data.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/viewsets/mixins.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/viewsets/officers.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/viewsets/prices.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/viewsets/statements/__init__.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/viewsets/statements/statements.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/wbfdm/viewsets/technical_analysis/__init__.py +0 -0
- {wbfdm-1.49.2 → wbfdm-1.49.4}/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.49.
|
|
3
|
+
Version: 1.49.4
|
|
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.*
|
|
@@ -10,7 +10,7 @@ from django.db import ProgrammingError, connections
|
|
|
10
10
|
from pypika import Case, Column, MSSQLQuery
|
|
11
11
|
from pypika import functions as fn
|
|
12
12
|
from pypika.enums import Order, SqlTypes
|
|
13
|
-
from pypika.terms import
|
|
13
|
+
from pypika.terms import ValueWrapper
|
|
14
14
|
from wbcore.contrib.dataloader.dataloaders import Dataloader
|
|
15
15
|
from wbcore.contrib.dataloader.utils import dictfetchall
|
|
16
16
|
|
|
@@ -66,7 +66,6 @@ class DatastreamMarketDataDataloader(MarketDataProtocol, Dataloader):
|
|
|
66
66
|
|
|
67
67
|
# Define tables
|
|
68
68
|
pricing = pk.Table("vw_DS2Pricing")
|
|
69
|
-
market_val = pk.Table("vw_DS2MktCap")
|
|
70
69
|
|
|
71
70
|
mapping, create_mapping_table = create_table(
|
|
72
71
|
"#ds2infoexchcode", Column("InfoCode", SqlTypes.INTEGER), Column("ExchIntCode", SqlTypes.INTEGER)
|
|
@@ -118,13 +117,34 @@ class DatastreamMarketDataDataloader(MarketDataProtocol, Dataloader):
|
|
|
118
117
|
|
|
119
118
|
# if market cap or shares outstanding are required we need to join with an additional table
|
|
120
119
|
if MarketData.MARKET_CAPITALIZATION in values or MarketData.SHARES_OUTSTANDING in values:
|
|
121
|
-
|
|
122
|
-
|
|
120
|
+
pricing_2 = pk.Table("vw_DS2Pricing", alias="pricing_2")
|
|
121
|
+
num_shares = pk.Table("DS2NumShares")
|
|
122
|
+
query = query.left_join(pricing_2).on(
|
|
123
|
+
(pricing_2.InfoCode == pricing.InfoCode)
|
|
124
|
+
& (pricing_2.ExchIntcode == pricing.ExchIntCode)
|
|
125
|
+
& (pricing_2.MarketDate == pricing.MarketDate)
|
|
126
|
+
& (pricing_2.AdjType == 0)
|
|
123
127
|
)
|
|
124
128
|
|
|
125
|
-
|
|
129
|
+
value = pricing_2.Close_
|
|
130
|
+
if fx_rate:
|
|
131
|
+
value /= Case().when(pricing_2.Currency == target_currency, 1).else_(fx_rate.midrate)
|
|
132
|
+
|
|
133
|
+
query = query.select(value.as_("undadjusted_close"))
|
|
134
|
+
query = query.select(
|
|
135
|
+
MSSQLQuery.from_(num_shares)
|
|
136
|
+
.select(num_shares.NumShrs * 1_000)
|
|
137
|
+
.where((pricing_2.InfoCode == num_shares.InfoCode) & (num_shares.EventDate <= pricing_2.MarketDate))
|
|
138
|
+
.orderby(num_shares.EventDate, order=Order.desc)
|
|
139
|
+
.limit(1)
|
|
140
|
+
.as_("unadjusted_outstanding_shares")
|
|
141
|
+
)
|
|
142
|
+
|
|
143
|
+
for market_data in filter(
|
|
144
|
+
lambda x: x not in (MarketData.SHARES_OUTSTANDING, MarketData.MARKET_CAPITALIZATION), values
|
|
145
|
+
):
|
|
126
146
|
ds2_value = DS2MarketData[market_data.name].value
|
|
127
|
-
value =
|
|
147
|
+
value = getattr(pricing, ds2_value)
|
|
128
148
|
if fx_rate and market_data is not MarketData.SHARES_OUTSTANDING:
|
|
129
149
|
value /= Case().when(pricing.Currency == target_currency, 1).else_(fx_rate.midrate)
|
|
130
150
|
|
|
@@ -146,12 +166,27 @@ class DatastreamMarketDataDataloader(MarketDataProtocol, Dataloader):
|
|
|
146
166
|
for batch in batched(
|
|
147
167
|
self.entities.values_list("dl_parameters__market_data__parameters", flat=True), 1000
|
|
148
168
|
):
|
|
149
|
-
|
|
169
|
+
sql = reduce(lambda x, y: x.insert(y), batch, MSSQLQuery.into(mapping)).get_sql()
|
|
170
|
+
cursor.execute(sql)
|
|
171
|
+
|
|
172
|
+
# import sqlparse
|
|
173
|
+
# print(sqlparse.format(query.get_sql(), reindent=True))
|
|
150
174
|
|
|
151
175
|
cursor.execute(query.get_sql())
|
|
152
176
|
|
|
153
177
|
for row in dictfetchall(cursor, MarketDataDict):
|
|
154
178
|
row["instrument_id"] = lookup[row["external_identifier"]]
|
|
179
|
+
|
|
180
|
+
if MarketData.MARKET_CAPITALIZATION in values:
|
|
181
|
+
row["market_capitalization"] = row["unadjusted_outstanding_shares"] * (
|
|
182
|
+
row["undadjusted_close"] or 0
|
|
183
|
+
)
|
|
184
|
+
del row["unadjusted_outstanding_shares"]
|
|
185
|
+
del row["undadjusted_close"]
|
|
186
|
+
|
|
187
|
+
if MarketData.SHARES_OUTSTANDING in values:
|
|
188
|
+
row["outstanding_shares"] = (row["market_capitalization"] / row["close"]) if row["close"] else None
|
|
189
|
+
|
|
155
190
|
yield row
|
|
156
191
|
|
|
157
192
|
cursor.execute(MSSQLQuery.drop_table(mapping).get_sql())
|
|
@@ -66,6 +66,9 @@ class MarketDataDict(BaseDict):
|
|
|
66
66
|
market_cap: NotRequired[float]
|
|
67
67
|
calculated: NotRequired[bool]
|
|
68
68
|
|
|
69
|
+
unadjusted_close: NotRequired[float]
|
|
70
|
+
unadjusted_outstanding_shares: NotRequired[float | int]
|
|
71
|
+
|
|
69
72
|
|
|
70
73
|
class CorporateActionDataDict(BaseDict):
|
|
71
74
|
old_shares: float
|
|
@@ -2,7 +2,7 @@ from typing import Optional
|
|
|
2
2
|
|
|
3
3
|
from django.utils.translation import gettext as _
|
|
4
4
|
from wbcore.contrib.color.enums import WBColor
|
|
5
|
-
from wbcore.enums import Operator
|
|
5
|
+
from wbcore.enums import Operator, Unit
|
|
6
6
|
from wbcore.metadata.configs import display as dp
|
|
7
7
|
from wbcore.metadata.configs.display.instance_display import (
|
|
8
8
|
Display,
|
|
@@ -82,16 +82,17 @@ class InstrumentListThroughModelDisplayConfig(dp.DisplayViewConfig):
|
|
|
82
82
|
def get_list_display(self) -> Optional[dp.ListDisplay]:
|
|
83
83
|
fields = []
|
|
84
84
|
if self.view.kwargs.get("instrument_id", None):
|
|
85
|
-
fields = [dp.Field(key="instrument_list", label="Instrument List")]
|
|
86
|
-
|
|
87
|
-
fields = [
|
|
85
|
+
fields = [dp.Field(key="instrument_list", label="Instrument List", width=Unit.PIXEL(250))]
|
|
86
|
+
elif self.view.kwargs.get("instrument_list_id", None):
|
|
87
|
+
fields = [
|
|
88
|
+
dp.Field(key="instrument", label="Instrument", width=Unit.PIXEL(300)),
|
|
89
|
+
dp.Field(key="instrument_str", label="Instrument Scraped", width=Unit.PIXEL(300)),
|
|
90
|
+
]
|
|
88
91
|
fields.extend(
|
|
89
92
|
[
|
|
90
|
-
dp.Field(key="
|
|
91
|
-
dp.Field(key="
|
|
92
|
-
dp.Field(key="
|
|
93
|
-
dp.Field(key="comment", label="Comment"),
|
|
94
|
-
dp.Field(key="validated", label="Validated"),
|
|
93
|
+
dp.Field(key="from_date", label="From Date", width=Unit.PIXEL(125)),
|
|
94
|
+
dp.Field(key="to_date", label="To Date", width=Unit.PIXEL(125)),
|
|
95
|
+
dp.Field(key="comment", label="Comment", width=Unit.PIXEL(350)),
|
|
95
96
|
]
|
|
96
97
|
)
|
|
97
98
|
return dp.ListDisplay(
|
|
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.49.2 → wbfdm-1.49.4}/wbfdm/analysis/financial_analysis/financial_metric_analysis.py
RENAMED
|
File without changes
|
|
File without changes
|
{wbfdm-1.49.2 → wbfdm-1.49.4}/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
|
{wbfdm-1.49.2 → wbfdm-1.49.4}/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
|
|
File without changes
|