wbfdm 1.48.0__tar.gz → 1.49.1__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.48.0 → wbfdm-1.49.1}/PKG-INFO +1 -1
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/factories/instruments.py +11 -3
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/filters/instruments.py +9 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/models/instruments/instrument_requests.py +3 -2
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/models/instruments/instruments.py +5 -1
- {wbfdm-1.48.0 → wbfdm-1.49.1}/.gitignore +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/pyproject.toml +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/__init__.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/admin/__init__.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/admin/classifications.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/admin/esg.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/admin/exchanges.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/admin/instrument_lists.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/admin/instrument_prices.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/admin/instrument_requests.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/admin/instruments.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/admin/instruments_relationships.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/admin/options.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/analysis/__init__.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/analysis/esg/__init__.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/analysis/esg/enums.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/analysis/esg/esg_analysis.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/analysis/esg/utils.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/analysis/financial_analysis/__init__.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/analysis/financial_analysis/financial_metric_analysis.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/analysis/financial_analysis/financial_ratio_analysis.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/analysis/financial_analysis/financial_statistics_analysis.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/analysis/financial_analysis/statement_with_estimates.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/analysis/financial_analysis/utils.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/analysis/technical_analysis/__init__.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/analysis/technical_analysis/technical_analysis.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/analysis/technical_analysis/traces.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/analysis/utils.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/apps.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/backends/dto.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/contrib/__init__.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/contrib/dsws/__init__.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/contrib/dsws/client.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/contrib/dsws/dataloaders/market_data.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/contrib/internal/__init__.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/contrib/internal/dataloaders/__init__.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/contrib/internal/dataloaders/market_data.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/contrib/metric/__init__.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/contrib/metric/admin/__init__.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/contrib/metric/admin/instruments.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/contrib/metric/admin/metrics.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/contrib/metric/apps.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/contrib/metric/backends/__init__.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/contrib/metric/backends/base.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/contrib/metric/backends/performances.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/contrib/metric/backends/statistics.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/contrib/metric/backends/utils.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/contrib/metric/decorators.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/contrib/metric/dispatch.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/contrib/metric/dto.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/contrib/metric/exceptions.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/contrib/metric/factories.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/contrib/metric/filters.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/contrib/metric/migrations/0001_initial.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/contrib/metric/migrations/0002_remove_instrumentmetric_unique_instrument_metric_and_more.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/contrib/metric/migrations/__init__.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/contrib/metric/models.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/contrib/metric/orchestrators.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/contrib/metric/registry.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/contrib/metric/serializers.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/contrib/metric/tasks.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/contrib/metric/tests/__init__.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/contrib/metric/tests/backends/__init__.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/contrib/metric/tests/backends/test_performances.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/contrib/metric/tests/backends/test_statistics.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/contrib/metric/tests/conftest.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/contrib/metric/tests/test_dto.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/contrib/metric/tests/test_models.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/contrib/metric/tests/test_tasks.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/contrib/metric/tests/test_viewsets.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/contrib/metric/urls.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/contrib/metric/viewsets/__init__.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/contrib/metric/viewsets/configs/__init__.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/contrib/metric/viewsets/configs/display.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/contrib/metric/viewsets/configs/menus.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/contrib/metric/viewsets/configs/utils.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/contrib/metric/viewsets/mixins.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/contrib/metric/viewsets/viewsets.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/contrib/msci/__init__.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/contrib/msci/client.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/contrib/msci/dataloaders/__init__.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/contrib/msci/dataloaders/esg.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/contrib/msci/dataloaders/esg_controversies.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/contrib/msci/sync.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/contrib/msci/tests/__init__.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/contrib/msci/tests/conftest.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/contrib/msci/tests/test_client.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/contrib/qa/__init__.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/contrib/qa/apps.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/contrib/qa/database_routers.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/contrib/qa/dataloaders/__init__.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/contrib/qa/dataloaders/adjustments.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/contrib/qa/dataloaders/corporate_actions.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/contrib/qa/dataloaders/financials.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/contrib/qa/dataloaders/market_data.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/contrib/qa/dataloaders/officers.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/contrib/qa/dataloaders/reporting_dates.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/contrib/qa/dataloaders/statements.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/contrib/qa/dataloaders/utils.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/contrib/qa/jinja2/qa/sql/companies.sql +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/contrib/qa/jinja2/qa/sql/ibes/base_estimates.sql +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/contrib/qa/jinja2/qa/sql/ibes/calendarized.sql +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/contrib/qa/jinja2/qa/sql/ibes/complete.sql +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/contrib/qa/jinja2/qa/sql/ibes/estimates.sql +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/contrib/qa/jinja2/qa/sql/ibes/financials.sql +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/contrib/qa/jinja2/qa/sql/instruments.sql +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/contrib/qa/jinja2/qa/sql/quotes.sql +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/contrib/qa/sync/exchanges.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/contrib/qa/sync/instruments.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/contrib/qa/sync/utils.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/contrib/qa/tasks.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/dataloaders/__init__.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/dataloaders/cache.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/dataloaders/protocols.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/dataloaders/proxies.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/dataloaders/types.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/dynamic_preferences_registry.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/enums.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/factories/__init__.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/factories/classifications.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/factories/controversies.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/factories/exchanges.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/factories/instrument_list.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/factories/instrument_prices.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/factories/instruments_relationships.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/factories/options.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/figures/__init__.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/figures/financials/__init__.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/figures/financials/financial_analysis_charts.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/figures/financials/financials_charts.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/filters/__init__.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/filters/classifications.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/filters/exchanges.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/filters/financials.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/filters/financials_analysis.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/filters/instrument_prices.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/filters/utils.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/import_export/__init__.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/import_export/backends/__init__.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/import_export/backends/cbinsights/__init__.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/import_export/backends/cbinsights/deals.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/import_export/backends/cbinsights/equities.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/import_export/backends/cbinsights/mixin.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/import_export/backends/cbinsights/utils/__init__.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/import_export/backends/cbinsights/utils/classifications.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/import_export/backends/cbinsights/utils/client.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/import_export/backends/refinitiv/__init__.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/import_export/backends/refinitiv/daily_fundamental.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/import_export/backends/refinitiv/fiscal_period.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/import_export/backends/refinitiv/forecast.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/import_export/backends/refinitiv/fundamental.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/import_export/backends/refinitiv/geographic_segment.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/import_export/backends/refinitiv/instrument.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/import_export/backends/refinitiv/instrument_price.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/import_export/backends/refinitiv/mixin.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/import_export/backends/refinitiv/utils/__init__.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/import_export/backends/refinitiv/utils/controller.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/import_export/handlers/__init__.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/import_export/handlers/instrument.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/import_export/handlers/instrument_list.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/import_export/handlers/instrument_price.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/import_export/handlers/option.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/import_export/handlers/private_equities.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/import_export/parsers/__init__.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/import_export/parsers/cbinsights/__init__.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/import_export/parsers/cbinsights/deals.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/import_export/parsers/cbinsights/equities.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/import_export/parsers/cbinsights/fundamentals.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/import_export/parsers/refinitiv/__init__.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/import_export/parsers/refinitiv/daily_fundamental.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/import_export/parsers/refinitiv/forecast.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/import_export/parsers/refinitiv/fundamental.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/import_export/parsers/refinitiv/geographic_segment.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/import_export/parsers/refinitiv/instrument.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/import_export/parsers/refinitiv/instrument_price.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/import_export/parsers/refinitiv/utils.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/import_export/resources/__init__.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/import_export/resources/classification.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/import_export/resources/instrument_prices.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/import_export/resources/instruments.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/jinja2.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/management/__init__.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/menu.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/migrations/0001_initial.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/migrations/0002_rename_statements_instrumentlookup_financials_and_more.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/migrations/0003_instrument_estimate_backend_and_more.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/migrations/0004_rename_financials_instrumentlookup_statements_and_more.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/migrations/0005_instrument_corporate_action_backend.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/migrations/0006_instrument_officer_backend.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/migrations/0007_instrument_country_instrument_currency_and_more.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/migrations/0008_controversy.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/migrations/0009_alter_controversy_flag_alter_controversy_initiated_and_more.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/migrations/0010_classification_classificationgroup_deal_exchange_and_more.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/migrations/0011_delete_instrumentlookup_instrument_corporate_actions_and_more.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/migrations/0012_instrumentprice_created_instrumentprice_modified.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/migrations/0013_instrument_is_investable_universe_and_more.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/migrations/0014_alter_controversy_instrument.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/migrations/0015_instrument_instrument_investible_index.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/migrations/0016_instrumenttype_name_repr.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/migrations/0017_instrument_instrument_security_index.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/migrations/0018_instrument_instrument_level_index.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/migrations/0019_alter_controversy_source.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/migrations/0020_optionaggregate_option_and_more.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/migrations/0021_delete_instrumentdailystatistics.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/migrations/0022_instrument_cusip_option_open_interest_20d_and_more.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/migrations/0023_instrument_unique_ric_instrument_unique_rmc_and_more.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/migrations/0024_option_open_interest_10d_option_volume_10d_and_more.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/migrations/0025_instrument_is_primary_and_more.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/migrations/0026_instrument_is_cash_equivalent.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/migrations/0027_remove_instrument_unique_ric_and_more.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/migrations/0028_instrumentprice_annualized_daily_volatility.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/migrations/0029_alter_instrumentprice_volume.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/migrations/0030_alter_relatedinstrumentthroughmodel_related_type.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/migrations/__init__.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/models/__init__.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/models/esg/__init__.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/models/esg/controversies.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/models/exchanges/__init__.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/models/exchanges/exchanges.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/models/fields.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/models/fk_fields.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/models/indicators.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/models/instruments/__init__.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/models/instruments/classifications.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/models/instruments/instrument_lists.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/models/instruments/instrument_prices.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/models/instruments/instrument_relationships.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/models/instruments/llm/__init__.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/models/instruments/llm/create_instrument_news_relationships.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/models/instruments/mixin/__init__.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/models/instruments/mixin/financials_computed.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/models/instruments/mixin/financials_serializer_fields.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/models/instruments/mixin/instruments.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/models/instruments/options.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/models/instruments/private_equities.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/models/instruments/querysets.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/models/instruments/utils.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/preferences.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/serializers/__init__.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/serializers/esg.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/serializers/exchanges.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/serializers/instruments/__init__.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/serializers/instruments/classifications.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/serializers/instruments/instrument_lists.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/serializers/instruments/instrument_prices.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/serializers/instruments/instrument_relationships.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/serializers/instruments/instrument_requests.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/serializers/instruments/instruments.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/serializers/instruments/mixins.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/serializers/officers.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/signals.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/sync/__init__.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/sync/abstract.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/sync/runner.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/tasks.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/tests/__init__.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/tests/analysis/__init__.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/tests/analysis/financial_analysis/__init__.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/tests/analysis/financial_analysis/test_statement_with_estimates.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/tests/analysis/financial_analysis/test_utils.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/tests/analysis/test_esg.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/tests/conftest.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/tests/dataloaders/__init__.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/tests/dataloaders/test_cache.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/tests/models/__init__.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/tests/models/test_classifications.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/tests/models/test_exchanges.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/tests/models/test_instrument_list.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/tests/models/test_instrument_prices.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/tests/models/test_instruments.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/tests/models/test_merge.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/tests/models/test_options.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/tests/test_tasks.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/tests/tests.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/urls.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/utils.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/viewsets/__init__.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/viewsets/configs/__init__.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/viewsets/configs/buttons/__init__.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/viewsets/configs/buttons/classifications.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/viewsets/configs/buttons/exchanges.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/viewsets/configs/buttons/instrument_prices.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/viewsets/configs/buttons/instruments.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/viewsets/configs/display/__init__.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/viewsets/configs/display/classifications.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/viewsets/configs/display/esg.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/viewsets/configs/display/exchanges.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/viewsets/configs/display/financial_summary.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/viewsets/configs/display/instrument_lists.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/viewsets/configs/display/instrument_prices.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/viewsets/configs/display/instrument_requests.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/viewsets/configs/display/instruments.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/viewsets/configs/display/instruments_relationships.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/viewsets/configs/display/monthly_performances.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/viewsets/configs/display/officers.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/viewsets/configs/display/prices.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/viewsets/configs/display/statement_with_estimates.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/viewsets/configs/display/statements.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/viewsets/configs/endpoints/__init__.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/viewsets/configs/endpoints/classifications.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/viewsets/configs/endpoints/esg.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/viewsets/configs/endpoints/exchanges.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/viewsets/configs/endpoints/financials_analysis.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/viewsets/configs/endpoints/instrument_lists.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/viewsets/configs/endpoints/instrument_prices.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/viewsets/configs/endpoints/instrument_requests.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/viewsets/configs/endpoints/instruments.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/viewsets/configs/endpoints/instruments_relationships.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/viewsets/configs/endpoints/statements.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/viewsets/configs/menus/__init__.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/viewsets/configs/menus/classifications.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/viewsets/configs/menus/exchanges.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/viewsets/configs/menus/instrument_lists.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/viewsets/configs/menus/instruments.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/viewsets/configs/menus/instruments_relationships.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/viewsets/configs/titles/__init__.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/viewsets/configs/titles/classifications.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/viewsets/configs/titles/esg.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/viewsets/configs/titles/exchanges.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/viewsets/configs/titles/financial_ratio_analysis.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/viewsets/configs/titles/financials_analysis.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/viewsets/configs/titles/instrument_prices.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/viewsets/configs/titles/instrument_requests.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/viewsets/configs/titles/instruments.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/viewsets/configs/titles/instruments_relationships.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/viewsets/configs/titles/market_data.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/viewsets/configs/titles/prices.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/viewsets/configs/titles/statement_with_estimates.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/viewsets/esg.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/viewsets/exchanges.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/viewsets/financial_analysis/__init__.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/viewsets/financial_analysis/financial_metric_analysis.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/viewsets/financial_analysis/financial_ratio_analysis.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/viewsets/financial_analysis/financial_summary.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/viewsets/financial_analysis/statement_with_estimates.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/viewsets/instruments/__init__.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/viewsets/instruments/classifications.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/viewsets/instruments/financials_analysis.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/viewsets/instruments/instrument_lists.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/viewsets/instruments/instrument_prices.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/viewsets/instruments/instrument_requests.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/viewsets/instruments/instruments.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/viewsets/instruments/instruments_relationships.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/viewsets/instruments/utils.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/viewsets/market_data.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/viewsets/mixins.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/viewsets/officers.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/viewsets/prices.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/viewsets/statements/__init__.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/viewsets/statements/statements.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/wbfdm/viewsets/technical_analysis/__init__.py +0 -0
- {wbfdm-1.48.0 → wbfdm-1.49.1}/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.
|
|
3
|
+
Version: 1.49.1
|
|
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.*
|
|
@@ -2,7 +2,7 @@ import factory
|
|
|
2
2
|
import rstr
|
|
3
3
|
from slugify import slugify
|
|
4
4
|
|
|
5
|
-
from wbfdm.models import Instrument, InstrumentType
|
|
5
|
+
from wbfdm.models import Cash, Instrument, InstrumentType
|
|
6
6
|
|
|
7
7
|
|
|
8
8
|
class InstrumentTypeFactory(factory.django.DjangoModelFactory):
|
|
@@ -52,9 +52,17 @@ class InstrumentFactory(factory.django.DjangoModelFactory):
|
|
|
52
52
|
model = Instrument
|
|
53
53
|
|
|
54
54
|
|
|
55
|
-
class CashFactory(
|
|
55
|
+
class CashFactory(factory.django.DjangoModelFactory):
|
|
56
56
|
is_cash = True
|
|
57
|
-
|
|
57
|
+
currency = factory.SubFactory("wbcore.contrib.currency.factories.CurrencyFactory")
|
|
58
|
+
name = factory.LazyAttribute(lambda o: o.currency.title)
|
|
59
|
+
instrument_type = factory.LazyAttribute(
|
|
60
|
+
lambda o: InstrumentType.objects.get_or_create(key="cash", defaults={"name": "Cash", "short_name": "Cash"})[0]
|
|
61
|
+
)
|
|
62
|
+
|
|
63
|
+
class Meta:
|
|
64
|
+
model = Cash
|
|
65
|
+
django_get_or_create = ("currency",)
|
|
58
66
|
|
|
59
67
|
|
|
60
68
|
class EquityFactory(InstrumentFactory):
|
|
@@ -6,6 +6,7 @@ from wbcore import filters as wb_filters
|
|
|
6
6
|
from wbcore.contrib.tags.filters import TagFilterMixin
|
|
7
7
|
|
|
8
8
|
from wbfdm.filters.utils import _get_default_classification_group_id, get_earliest_date, get_latest_date
|
|
9
|
+
from wbfdm.models import InstrumentType
|
|
9
10
|
from wbfdm.models.instruments import (
|
|
10
11
|
ClassificationGroup,
|
|
11
12
|
Instrument,
|
|
@@ -103,6 +104,14 @@ class InstrumentFilterSet(TagFilterMixin, InstrumentFavoriteGroupFilterSet):
|
|
|
103
104
|
instrument_type__key = wb_filters.CharFilter(label="Instrument Type Key", hidden=True)
|
|
104
105
|
instrument_type__is_classifiable = wb_filters.BooleanFilter(label="Instrument Type Classifiable", hidden=True)
|
|
105
106
|
|
|
107
|
+
instrument_type = wb_filters.ModelMultipleChoiceFilter(
|
|
108
|
+
label="Asset Classes",
|
|
109
|
+
queryset=InstrumentType.objects.all(),
|
|
110
|
+
endpoint=InstrumentType.get_representation_endpoint(),
|
|
111
|
+
value_key=InstrumentType.get_representation_value_key(),
|
|
112
|
+
label_key=InstrumentType.get_representation_label_key(),
|
|
113
|
+
)
|
|
114
|
+
|
|
106
115
|
is_classifiable = wb_filters.BooleanFilter(label="Is Classifiable", method="filter_is_classifiable", hidden=True)
|
|
107
116
|
|
|
108
117
|
def filter_is_classifiable(self, queryset, name, value):
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
from typing import Any, Dict, Optional
|
|
2
2
|
|
|
3
3
|
from django.db import models
|
|
4
|
+
from django.utils.translation import gettext_lazy as _
|
|
4
5
|
from django_fsm import FSMField, transition
|
|
5
6
|
from wbcore.contrib.authentication.models import User
|
|
6
7
|
from wbcore.contrib.currency.models import Currency
|
|
@@ -112,7 +113,7 @@ class InstrumentRequest(WBModel):
|
|
|
112
113
|
|
|
113
114
|
def can_approve(self):
|
|
114
115
|
if self._check_already_existing_instrument():
|
|
115
|
-
return {"non_field_errors": "An instrument already exists with the proposed identifier"}
|
|
116
|
+
return {"non_field_errors": [_("An instrument already exists with the proposed identifier")]}
|
|
116
117
|
|
|
117
118
|
@transition(
|
|
118
119
|
field=status,
|
|
@@ -178,7 +179,7 @@ class InstrumentRequest(WBModel):
|
|
|
178
179
|
|
|
179
180
|
def can_submit(self) -> Dict[str, Any]:
|
|
180
181
|
if self._check_already_existing_instrument():
|
|
181
|
-
return {"non_field_errors": "An instrument already exists with the proposed identifier"}
|
|
182
|
+
return {"non_field_errors": [_("An instrument already exists with the proposed identifier")]}
|
|
182
183
|
|
|
183
184
|
@classmethod
|
|
184
185
|
def get_representation_endpoint(cls) -> str:
|
|
@@ -964,6 +964,10 @@ class CashManager(InstrumentManager):
|
|
|
964
964
|
class Cash(Instrument):
|
|
965
965
|
objects = CashManager()
|
|
966
966
|
|
|
967
|
+
def save(self, *args, **kwargs):
|
|
968
|
+
self.is_cash = True
|
|
969
|
+
super().save(*args, **kwargs)
|
|
970
|
+
|
|
967
971
|
class Meta:
|
|
968
972
|
proxy = True
|
|
969
973
|
|
|
@@ -971,7 +975,7 @@ class Cash(Instrument):
|
|
|
971
975
|
@receiver(post_save, sender="currency.Currency")
|
|
972
976
|
def create_cash_from_currency(sender, instance, created, raw, **kwargs):
|
|
973
977
|
if created:
|
|
974
|
-
|
|
978
|
+
Cash.objects.get_or_create(
|
|
975
979
|
instrument_type=InstrumentType.CASH, currency=instance, defaults={"name": f"Cash {instance.key}"}
|
|
976
980
|
)
|
|
977
981
|
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
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.48.0 → wbfdm-1.49.1}/wbfdm/analysis/financial_analysis/financial_metric_analysis.py
RENAMED
|
File without changes
|
|
File without changes
|
{wbfdm-1.48.0 → wbfdm-1.49.1}/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.48.0 → wbfdm-1.49.1}/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
|