wbfdm 1.54.8__tar.gz → 1.54.10__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.54.8 → wbfdm-1.54.10}/PKG-INFO +1 -1
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/contrib/dsws/dataloaders/market_data.py +29 -2
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/contrib/qa/dataloaders/market_data.py +3 -1
- {wbfdm-1.54.8 → wbfdm-1.54.10}/.gitignore +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/pyproject.toml +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/__init__.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/admin/__init__.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/admin/classifications.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/admin/esg.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/admin/exchanges.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/admin/instrument_lists.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/admin/instrument_prices.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/admin/instrument_requests.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/admin/instruments.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/admin/instruments_relationships.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/admin/options.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/analysis/__init__.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/analysis/esg/__init__.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/analysis/esg/enums.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/analysis/esg/esg_analysis.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/analysis/esg/utils.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/analysis/financial_analysis/__init__.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/analysis/financial_analysis/change_point_detection.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/analysis/financial_analysis/financial_metric_analysis.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/analysis/financial_analysis/financial_ratio_analysis.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/analysis/financial_analysis/financial_statistics_analysis.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/analysis/financial_analysis/statement_with_estimates.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/analysis/financial_analysis/utils.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/analysis/technical_analysis/__init__.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/analysis/technical_analysis/technical_analysis.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/analysis/technical_analysis/traces.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/analysis/utils.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/apps.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/backends/dto.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/contrib/__init__.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/contrib/dsws/__init__.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/contrib/dsws/client.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/contrib/internal/__init__.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/contrib/internal/dataloaders/__init__.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/contrib/internal/dataloaders/market_data.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/contrib/metric/__init__.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/contrib/metric/admin/__init__.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/contrib/metric/admin/instruments.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/contrib/metric/admin/metrics.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/contrib/metric/apps.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/contrib/metric/backends/__init__.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/contrib/metric/backends/base.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/contrib/metric/backends/performances.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/contrib/metric/backends/statistics.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/contrib/metric/backends/utils.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/contrib/metric/decorators.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/contrib/metric/dispatch.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/contrib/metric/dto.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/contrib/metric/exceptions.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/contrib/metric/factories.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/contrib/metric/filters.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/contrib/metric/migrations/0001_initial.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/contrib/metric/migrations/0002_remove_instrumentmetric_unique_instrument_metric_and_more.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/contrib/metric/migrations/__init__.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/contrib/metric/models.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/contrib/metric/orchestrators.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/contrib/metric/registry.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/contrib/metric/serializers.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/contrib/metric/tasks.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/contrib/metric/tests/__init__.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/contrib/metric/tests/backends/__init__.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/contrib/metric/tests/backends/test_performances.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/contrib/metric/tests/backends/test_statistics.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/contrib/metric/tests/conftest.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/contrib/metric/tests/test_dto.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/contrib/metric/tests/test_models.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/contrib/metric/tests/test_tasks.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/contrib/metric/tests/test_viewsets.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/contrib/metric/urls.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/contrib/metric/viewsets/__init__.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/contrib/metric/viewsets/configs/__init__.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/contrib/metric/viewsets/configs/display.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/contrib/metric/viewsets/configs/menus.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/contrib/metric/viewsets/configs/utils.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/contrib/metric/viewsets/mixins.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/contrib/metric/viewsets/viewsets.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/contrib/msci/__init__.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/contrib/msci/client.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/contrib/msci/dataloaders/__init__.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/contrib/msci/dataloaders/esg.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/contrib/msci/dataloaders/esg_controversies.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/contrib/msci/sync.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/contrib/msci/tests/__init__.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/contrib/msci/tests/conftest.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/contrib/msci/tests/test_client.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/contrib/qa/__init__.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/contrib/qa/apps.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/contrib/qa/database_routers.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/contrib/qa/dataloaders/__init__.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/contrib/qa/dataloaders/adjustments.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/contrib/qa/dataloaders/corporate_actions.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/contrib/qa/dataloaders/financials.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/contrib/qa/dataloaders/officers.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/contrib/qa/dataloaders/reporting_dates.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/contrib/qa/dataloaders/statements.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/contrib/qa/dataloaders/utils.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/contrib/qa/jinja2/qa/sql/companies.sql +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/contrib/qa/jinja2/qa/sql/ibes/base_estimates.sql +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/contrib/qa/jinja2/qa/sql/ibes/calendarized.sql +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/contrib/qa/jinja2/qa/sql/ibes/complete.sql +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/contrib/qa/jinja2/qa/sql/ibes/estimates.sql +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/contrib/qa/jinja2/qa/sql/ibes/financials.sql +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/contrib/qa/jinja2/qa/sql/instruments.sql +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/contrib/qa/jinja2/qa/sql/quotes.sql +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/contrib/qa/sync/exchanges.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/contrib/qa/sync/instruments.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/contrib/qa/sync/utils.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/contrib/qa/tasks.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/dataloaders/__init__.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/dataloaders/cache.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/dataloaders/protocols.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/dataloaders/proxies.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/dataloaders/types.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/dynamic_preferences_registry.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/enums.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/factories/__init__.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/factories/classifications.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/factories/controversies.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/factories/exchanges.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/factories/instrument_list.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/factories/instrument_prices.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/factories/instruments.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/factories/instruments_relationships.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/factories/options.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/figures/__init__.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/figures/financials/__init__.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/figures/financials/financial_analysis_charts.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/figures/financials/financials_charts.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/filters/__init__.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/filters/classifications.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/filters/exchanges.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/filters/financials.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/filters/financials_analysis.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/filters/instrument_prices.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/filters/instruments.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/filters/utils.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/import_export/__init__.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/import_export/backends/__init__.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/import_export/backends/cbinsights/__init__.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/import_export/backends/cbinsights/deals.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/import_export/backends/cbinsights/equities.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/import_export/backends/cbinsights/mixin.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/import_export/backends/cbinsights/utils/__init__.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/import_export/backends/cbinsights/utils/classifications.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/import_export/backends/cbinsights/utils/client.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/import_export/backends/refinitiv/__init__.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/import_export/backends/refinitiv/daily_fundamental.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/import_export/backends/refinitiv/fiscal_period.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/import_export/backends/refinitiv/forecast.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/import_export/backends/refinitiv/fundamental.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/import_export/backends/refinitiv/geographic_segment.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/import_export/backends/refinitiv/instrument.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/import_export/backends/refinitiv/instrument_price.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/import_export/backends/refinitiv/mixin.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/import_export/backends/refinitiv/utils/__init__.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/import_export/backends/refinitiv/utils/controller.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/import_export/handlers/__init__.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/import_export/handlers/instrument.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/import_export/handlers/instrument_list.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/import_export/handlers/instrument_price.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/import_export/handlers/option.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/import_export/handlers/private_equities.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/import_export/parsers/__init__.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/import_export/parsers/cbinsights/__init__.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/import_export/parsers/cbinsights/deals.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/import_export/parsers/cbinsights/equities.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/import_export/parsers/cbinsights/fundamentals.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/import_export/parsers/refinitiv/__init__.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/import_export/parsers/refinitiv/daily_fundamental.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/import_export/parsers/refinitiv/forecast.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/import_export/parsers/refinitiv/fundamental.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/import_export/parsers/refinitiv/geographic_segment.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/import_export/parsers/refinitiv/instrument.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/import_export/parsers/refinitiv/instrument_price.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/import_export/parsers/refinitiv/utils.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/import_export/resources/__init__.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/import_export/resources/classification.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/import_export/resources/instrument_prices.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/import_export/resources/instruments.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/jinja2.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/locale/de/LC_MESSAGES/django.mo +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/locale/de/LC_MESSAGES/django.po +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/locale/en/LC_MESSAGES/django.mo +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/locale/en/LC_MESSAGES/django.po +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/locale/fr/LC_MESSAGES/django.mo +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/locale/fr/LC_MESSAGES/django.po +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/management/__init__.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/migrations/0001_initial.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/migrations/0002_rename_statements_instrumentlookup_financials_and_more.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/migrations/0003_instrument_estimate_backend_and_more.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/migrations/0004_rename_financials_instrumentlookup_statements_and_more.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/migrations/0005_instrument_corporate_action_backend.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/migrations/0006_instrument_officer_backend.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/migrations/0007_instrument_country_instrument_currency_and_more.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/migrations/0008_controversy.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/migrations/0009_alter_controversy_flag_alter_controversy_initiated_and_more.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/migrations/0010_classification_classificationgroup_deal_exchange_and_more.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/migrations/0011_delete_instrumentlookup_instrument_corporate_actions_and_more.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/migrations/0012_instrumentprice_created_instrumentprice_modified.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/migrations/0013_instrument_is_investable_universe_and_more.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/migrations/0014_alter_controversy_instrument.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/migrations/0015_instrument_instrument_investible_index.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/migrations/0016_instrumenttype_name_repr.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/migrations/0017_instrument_instrument_security_index.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/migrations/0018_instrument_instrument_level_index.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/migrations/0019_alter_controversy_source.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/migrations/0020_optionaggregate_option_and_more.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/migrations/0021_delete_instrumentdailystatistics.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/migrations/0022_instrument_cusip_option_open_interest_20d_and_more.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/migrations/0023_instrument_unique_ric_instrument_unique_rmc_and_more.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/migrations/0024_option_open_interest_10d_option_volume_10d_and_more.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/migrations/0025_instrument_is_primary_and_more.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/migrations/0026_instrument_is_cash_equivalent.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/migrations/0027_remove_instrument_unique_ric_and_more.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/migrations/0028_instrumentprice_annualized_daily_volatility.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/migrations/0029_alter_instrumentprice_volume.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/migrations/0030_alter_relatedinstrumentthroughmodel_related_type.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/migrations/0031_exchange_apply_round_lot_size_and_more.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/migrations/__init__.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/models/__init__.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/models/esg/__init__.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/models/esg/controversies.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/models/exchanges/__init__.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/models/exchanges/exchanges.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/models/fields.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/models/fk_fields.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/models/indicators.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/models/instruments/__init__.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/models/instruments/classifications.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/models/instruments/instrument_lists.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/models/instruments/instrument_prices.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/models/instruments/instrument_relationships.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/models/instruments/instrument_requests.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/models/instruments/instruments.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/models/instruments/llm/__init__.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/models/instruments/llm/create_instrument_news_relationships.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/models/instruments/mixin/__init__.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/models/instruments/mixin/financials_computed.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/models/instruments/mixin/financials_serializer_fields.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/models/instruments/mixin/instruments.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/models/instruments/options.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/models/instruments/private_equities.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/models/instruments/querysets.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/models/instruments/utils.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/preferences.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/serializers/__init__.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/serializers/esg.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/serializers/exchanges.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/serializers/instruments/__init__.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/serializers/instruments/classifications.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/serializers/instruments/instrument_lists.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/serializers/instruments/instrument_prices.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/serializers/instruments/instrument_relationships.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/serializers/instruments/instrument_requests.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/serializers/instruments/instruments.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/serializers/instruments/mixins.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/serializers/officers.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/signals.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/sync/__init__.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/sync/abstract.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/sync/runner.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/tasks.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/tests/__init__.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/tests/analysis/__init__.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/tests/analysis/financial_analysis/__init__.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/tests/analysis/financial_analysis/test_statement_with_estimates.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/tests/analysis/financial_analysis/test_utils.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/tests/analysis/test_esg.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/tests/conftest.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/tests/dataloaders/__init__.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/tests/dataloaders/test_cache.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/tests/models/__init__.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/tests/models/test_classifications.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/tests/models/test_exchanges.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/tests/models/test_instrument_list.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/tests/models/test_instrument_prices.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/tests/models/test_instruments.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/tests/models/test_merge.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/tests/models/test_options.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/tests/test_tasks.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/tests/tests.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/urls.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/utils.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/viewsets/__init__.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/viewsets/configs/__init__.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/viewsets/configs/buttons/__init__.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/viewsets/configs/buttons/classifications.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/viewsets/configs/buttons/exchanges.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/viewsets/configs/buttons/instrument_prices.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/viewsets/configs/buttons/instruments.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/viewsets/configs/display/__init__.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/viewsets/configs/display/classifications.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/viewsets/configs/display/esg.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/viewsets/configs/display/exchanges.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/viewsets/configs/display/financial_summary.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/viewsets/configs/display/instrument_lists.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/viewsets/configs/display/instrument_prices.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/viewsets/configs/display/instrument_requests.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/viewsets/configs/display/instruments.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/viewsets/configs/display/instruments_relationships.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/viewsets/configs/display/monthly_performances.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/viewsets/configs/display/officers.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/viewsets/configs/display/prices.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/viewsets/configs/display/statement_with_estimates.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/viewsets/configs/display/statements.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/viewsets/configs/endpoints/__init__.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/viewsets/configs/endpoints/classifications.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/viewsets/configs/endpoints/esg.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/viewsets/configs/endpoints/exchanges.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/viewsets/configs/endpoints/financials_analysis.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/viewsets/configs/endpoints/instrument_lists.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/viewsets/configs/endpoints/instrument_prices.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/viewsets/configs/endpoints/instrument_requests.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/viewsets/configs/endpoints/instruments.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/viewsets/configs/endpoints/instruments_relationships.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/viewsets/configs/endpoints/statements.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/viewsets/configs/menus/__init__.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/viewsets/configs/menus/classifications.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/viewsets/configs/menus/exchanges.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/viewsets/configs/menus/instrument_lists.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/viewsets/configs/menus/instruments.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/viewsets/configs/menus/instruments_relationships.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/viewsets/configs/titles/__init__.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/viewsets/configs/titles/classifications.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/viewsets/configs/titles/esg.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/viewsets/configs/titles/exchanges.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/viewsets/configs/titles/financial_ratio_analysis.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/viewsets/configs/titles/financials_analysis.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/viewsets/configs/titles/instrument_prices.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/viewsets/configs/titles/instrument_requests.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/viewsets/configs/titles/instruments.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/viewsets/configs/titles/instruments_relationships.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/viewsets/configs/titles/market_data.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/viewsets/configs/titles/prices.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/viewsets/configs/titles/statement_with_estimates.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/viewsets/esg.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/viewsets/exchanges.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/viewsets/financial_analysis/__init__.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/viewsets/financial_analysis/financial_metric_analysis.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/viewsets/financial_analysis/financial_ratio_analysis.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/viewsets/financial_analysis/financial_summary.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/viewsets/financial_analysis/statement_with_estimates.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/viewsets/instruments/__init__.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/viewsets/instruments/classifications.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/viewsets/instruments/financials_analysis.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/viewsets/instruments/instrument_lists.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/viewsets/instruments/instrument_prices.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/viewsets/instruments/instrument_requests.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/viewsets/instruments/instruments.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/viewsets/instruments/instruments_relationships.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/viewsets/instruments/utils.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/viewsets/market_data.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/viewsets/mixins.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/viewsets/officers.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/viewsets/prices.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/viewsets/statements/__init__.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/viewsets/statements/statements.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/viewsets/technical_analysis/__init__.py +0 -0
- {wbfdm-1.54.8 → wbfdm-1.54.10}/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.54.
|
|
3
|
+
Version: 1.54.10
|
|
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.*
|
|
@@ -5,6 +5,7 @@ from typing import Iterator
|
|
|
5
5
|
from DatastreamPy import DSUserObjectFault
|
|
6
6
|
from django.conf import settings
|
|
7
7
|
from pandas.tseries.offsets import BDay
|
|
8
|
+
from wbcore.contrib.currency.models import Currency, CurrencyFXRates
|
|
8
9
|
from wbcore.contrib.dataloader.dataloaders import Dataloader
|
|
9
10
|
from wbfdm.dataloaders.protocols import MarketDataProtocol
|
|
10
11
|
from wbfdm.dataloaders.types import MarketDataDict
|
|
@@ -34,6 +35,8 @@ class DSWSMarketDataDataloader(MarketDataProtocol, Dataloader):
|
|
|
34
35
|
to_date: date | None = None,
|
|
35
36
|
exact_date: date | None = None,
|
|
36
37
|
frequency: Frequency = Frequency.DAILY,
|
|
38
|
+
target_currency: str | None = None,
|
|
39
|
+
apply_fx_rate: bool = True,
|
|
37
40
|
**kwargs,
|
|
38
41
|
) -> Iterator[MarketDataDict]:
|
|
39
42
|
"""Get prices for instruments.
|
|
@@ -55,6 +58,12 @@ class DSWSMarketDataDataloader(MarketDataProtocol, Dataloader):
|
|
|
55
58
|
"id",
|
|
56
59
|
)
|
|
57
60
|
}
|
|
61
|
+
instruments = {entity.id: entity for entity in self.entities}
|
|
62
|
+
try:
|
|
63
|
+
target_currency = Currency.objects.get(key=target_currency)
|
|
64
|
+
except Currency.DoesNotExist:
|
|
65
|
+
target_currency = None
|
|
66
|
+
|
|
58
67
|
if (dsws_username := getattr(settings, "REFINITIV_DATASTREAM_USERNAME", None)) and (
|
|
59
68
|
dsws_password := getattr(settings, "REFINITIV_DATASTREAM_PASSWORD", None)
|
|
60
69
|
):
|
|
@@ -80,13 +89,31 @@ class DSWSMarketDataDataloader(MarketDataProtocol, Dataloader):
|
|
|
80
89
|
for row in df.to_dict("records"):
|
|
81
90
|
jsondate = row["Dates"].date()
|
|
82
91
|
external_id = row["Instrument"]
|
|
83
|
-
|
|
84
|
-
|
|
92
|
+
fx_rate = 1.0
|
|
93
|
+
if target_currency:
|
|
94
|
+
instrument = instruments[default_lookup[external_id]["id"]]
|
|
95
|
+
if instrument.currency != target_currency:
|
|
96
|
+
with suppress(CurrencyFXRates.DoesNotExist):
|
|
97
|
+
fx_rate = instrument.currency.convert(jsondate, target_currency)
|
|
98
|
+
data = dict(fx_rate=fx_rate)
|
|
85
99
|
for market_value in values:
|
|
86
100
|
data[market_value.value] = row.get(FIELD_MAP[market_value.value], None)
|
|
101
|
+
if (
|
|
102
|
+
apply_fx_rate
|
|
103
|
+
and data[market_value.value]
|
|
104
|
+
and market_value.value
|
|
105
|
+
not in [
|
|
106
|
+
MarketData.MARKET_CAPITALIZATION.value,
|
|
107
|
+
MarketData.VOLUME.value,
|
|
108
|
+
MarketData.VWAP.value,
|
|
109
|
+
]
|
|
110
|
+
):
|
|
111
|
+
data[market_value.value] *= fx_rate
|
|
112
|
+
|
|
87
113
|
with suppress(KeyError):
|
|
88
114
|
if default_symbol := default_lookup[external_id].get("symbol", None):
|
|
89
115
|
data["close"] = row[default_symbol]
|
|
116
|
+
|
|
90
117
|
yield MarketDataDict(
|
|
91
118
|
id=f"{default_lookup[external_id]['id']}_{jsondate}",
|
|
92
119
|
valuation_date=jsondate,
|
|
@@ -98,7 +98,9 @@ class DatastreamMarketDataDataloader(MarketDataProtocol, Dataloader):
|
|
|
98
98
|
fx_code = pk.Table("DS2FxCode")
|
|
99
99
|
fx_rate = pk.Table("DS2FxRate")
|
|
100
100
|
query = (
|
|
101
|
-
query.select(
|
|
101
|
+
query.select(
|
|
102
|
+
(Case().when(pricing.Currency == target_currency, 1).else_(1 / fx_rate.midrate)).as_("fx_rate")
|
|
103
|
+
)
|
|
102
104
|
# Join FX code table matching currencies and ensuring SPOT rate type
|
|
103
105
|
.left_join(fx_code)
|
|
104
106
|
.on(
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
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.54.8 → wbfdm-1.54.10}/wbfdm/analysis/financial_analysis/financial_metric_analysis.py
RENAMED
|
File without changes
|
{wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/analysis/financial_analysis/financial_ratio_analysis.py
RENAMED
|
File without changes
|
{wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/analysis/financial_analysis/financial_statistics_analysis.py
RENAMED
|
File without changes
|
{wbfdm-1.54.8 → wbfdm-1.54.10}/wbfdm/analysis/financial_analysis/statement_with_estimates.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
|
{wbfdm-1.54.8 → wbfdm-1.54.10}/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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
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.54.8 → wbfdm-1.54.10}/wbfdm/migrations/0003_instrument_estimate_backend_and_more.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|