wbfdm 2.2.5__tar.gz → 2.2.6__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of wbfdm might be problematic. Click here for more details.

Files changed (350) hide show
  1. {wbfdm-2.2.5 → wbfdm-2.2.6}/PKG-INFO +2 -2
  2. {wbfdm-2.2.5 → wbfdm-2.2.6}/pyproject.toml +1 -1
  3. wbfdm-2.2.6/wbfdm/contrib/qa/jinja2/qa/sql/companies.sql +100 -0
  4. wbfdm-2.2.6/wbfdm/contrib/qa/jinja2/qa/sql/ibes/base_estimates.sql +33 -0
  5. wbfdm-2.2.6/wbfdm/contrib/qa/jinja2/qa/sql/ibes/calendarized.sql +37 -0
  6. wbfdm-2.2.6/wbfdm/contrib/qa/jinja2/qa/sql/ibes/complete.sql +9 -0
  7. wbfdm-2.2.6/wbfdm/contrib/qa/jinja2/qa/sql/ibes/estimates.sql +3 -0
  8. wbfdm-2.2.6/wbfdm/contrib/qa/jinja2/qa/sql/ibes/financials.sql +79 -0
  9. wbfdm-2.2.6/wbfdm/contrib/qa/jinja2/qa/sql/instruments.sql +100 -0
  10. wbfdm-2.2.6/wbfdm/contrib/qa/jinja2/qa/sql/quotes.sql +98 -0
  11. {wbfdm-2.2.5 → wbfdm-2.2.6}/.gitignore +0 -0
  12. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/__init__.py +0 -0
  13. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/admin/__init__.py +0 -0
  14. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/admin/classifications.py +0 -0
  15. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/admin/esg.py +0 -0
  16. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/admin/exchanges.py +0 -0
  17. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/admin/instrument_lists.py +0 -0
  18. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/admin/instrument_prices.py +0 -0
  19. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/admin/instrument_requests.py +0 -0
  20. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/admin/instruments.py +0 -0
  21. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/admin/instruments_relationships.py +0 -0
  22. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/admin/options.py +0 -0
  23. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/analysis/__init__.py +0 -0
  24. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/analysis/esg/__init__.py +0 -0
  25. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/analysis/esg/enums.py +0 -0
  26. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/analysis/esg/esg_analysis.py +0 -0
  27. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/analysis/esg/utils.py +0 -0
  28. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/analysis/financial_analysis/__init__.py +0 -0
  29. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/analysis/financial_analysis/financial_metric_analysis.py +0 -0
  30. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/analysis/financial_analysis/financial_ratio_analysis.py +0 -0
  31. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/analysis/financial_analysis/financial_statistics_analysis.py +0 -0
  32. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/analysis/financial_analysis/statement_with_estimates.py +0 -0
  33. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/analysis/financial_analysis/utils.py +0 -0
  34. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/analysis/technical_analysis/__init__.py +0 -0
  35. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/analysis/technical_analysis/technical_analysis.py +0 -0
  36. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/analysis/technical_analysis/traces.py +0 -0
  37. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/analysis/utils.py +0 -0
  38. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/apps.py +0 -0
  39. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/backends/dto.py +0 -0
  40. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/contrib/__init__.py +0 -0
  41. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/contrib/dsws/__init__.py +0 -0
  42. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/contrib/dsws/client.py +0 -0
  43. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/contrib/dsws/dataloaders/market_data.py +0 -0
  44. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/contrib/internal/__init__.py +0 -0
  45. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/contrib/internal/dataloaders/__init__.py +0 -0
  46. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/contrib/internal/dataloaders/market_data.py +0 -0
  47. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/contrib/metric/__init__.py +0 -0
  48. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/contrib/metric/admin/__init__.py +0 -0
  49. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/contrib/metric/admin/instruments.py +0 -0
  50. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/contrib/metric/admin/metrics.py +0 -0
  51. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/contrib/metric/apps.py +0 -0
  52. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/contrib/metric/backends/__init__.py +0 -0
  53. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/contrib/metric/backends/base.py +0 -0
  54. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/contrib/metric/backends/performances.py +0 -0
  55. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/contrib/metric/backends/statistics.py +0 -0
  56. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/contrib/metric/decorators.py +0 -0
  57. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/contrib/metric/dispatch.py +0 -0
  58. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/contrib/metric/dto.py +0 -0
  59. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/contrib/metric/exceptions.py +0 -0
  60. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/contrib/metric/factories.py +0 -0
  61. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/contrib/metric/filters.py +0 -0
  62. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/contrib/metric/migrations/0001_initial.py +0 -0
  63. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/contrib/metric/migrations/0002_remove_instrumentmetric_unique_instrument_metric_and_more.py +0 -0
  64. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/contrib/metric/migrations/__init__.py +0 -0
  65. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/contrib/metric/models.py +0 -0
  66. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/contrib/metric/orchestrators.py +0 -0
  67. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/contrib/metric/registry.py +0 -0
  68. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/contrib/metric/serializers.py +0 -0
  69. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/contrib/metric/tasks.py +0 -0
  70. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/contrib/metric/tests/__init__.py +0 -0
  71. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/contrib/metric/tests/backends/__init__.py +0 -0
  72. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/contrib/metric/tests/backends/test_performances.py +0 -0
  73. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/contrib/metric/tests/backends/test_statistics.py +0 -0
  74. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/contrib/metric/tests/conftest.py +0 -0
  75. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/contrib/metric/tests/test_dto.py +0 -0
  76. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/contrib/metric/tests/test_models.py +0 -0
  77. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/contrib/metric/tests/test_tasks.py +0 -0
  78. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/contrib/metric/tests/test_viewsets.py +0 -0
  79. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/contrib/metric/urls.py +0 -0
  80. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/contrib/metric/viewsets/__init__.py +0 -0
  81. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/contrib/metric/viewsets/configs/__init__.py +0 -0
  82. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/contrib/metric/viewsets/configs/display.py +0 -0
  83. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/contrib/metric/viewsets/configs/menus.py +0 -0
  84. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/contrib/metric/viewsets/configs/utils.py +0 -0
  85. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/contrib/metric/viewsets/mixins.py +0 -0
  86. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/contrib/metric/viewsets/viewsets.py +0 -0
  87. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/contrib/msci/__init__.py +0 -0
  88. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/contrib/msci/client.py +0 -0
  89. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/contrib/msci/dataloaders/__init__.py +0 -0
  90. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/contrib/msci/dataloaders/esg.py +0 -0
  91. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/contrib/msci/dataloaders/esg_controversies.py +0 -0
  92. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/contrib/msci/sync.py +0 -0
  93. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/contrib/msci/tests/__init__.py +0 -0
  94. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/contrib/msci/tests/conftest.py +0 -0
  95. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/contrib/msci/tests/test_client.py +0 -0
  96. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/contrib/qa/__init__.py +0 -0
  97. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/contrib/qa/apps.py +0 -0
  98. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/contrib/qa/database_routers.py +0 -0
  99. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/contrib/qa/dataloaders/__init__.py +0 -0
  100. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/contrib/qa/dataloaders/adjustments.py +0 -0
  101. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/contrib/qa/dataloaders/corporate_actions.py +0 -0
  102. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/contrib/qa/dataloaders/financials.py +0 -0
  103. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/contrib/qa/dataloaders/market_data.py +0 -0
  104. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/contrib/qa/dataloaders/officers.py +0 -0
  105. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/contrib/qa/dataloaders/reporting_dates.py +0 -0
  106. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/contrib/qa/dataloaders/statements.py +0 -0
  107. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/contrib/qa/sync/exchanges.py +0 -0
  108. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/contrib/qa/sync/instruments.py +0 -0
  109. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/contrib/qa/sync/utils.py +0 -0
  110. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/contrib/qa/tasks.py +0 -0
  111. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/dataloaders/__init__.py +0 -0
  112. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/dataloaders/cache.py +0 -0
  113. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/dataloaders/protocols.py +0 -0
  114. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/dataloaders/proxies.py +0 -0
  115. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/dataloaders/types.py +0 -0
  116. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/dynamic_preferences_registry.py +0 -0
  117. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/enums.py +0 -0
  118. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/factories/__init__.py +0 -0
  119. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/factories/classifications.py +0 -0
  120. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/factories/controversies.py +0 -0
  121. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/factories/exchanges.py +0 -0
  122. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/factories/instrument_list.py +0 -0
  123. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/factories/instrument_prices.py +0 -0
  124. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/factories/instruments.py +0 -0
  125. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/factories/instruments_relationships.py +0 -0
  126. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/factories/options.py +0 -0
  127. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/figures/__init__.py +0 -0
  128. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/figures/financials/__init__.py +0 -0
  129. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/figures/financials/financial_analysis_charts.py +0 -0
  130. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/figures/financials/financials_charts.py +0 -0
  131. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/filters/__init__.py +0 -0
  132. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/filters/classifications.py +0 -0
  133. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/filters/exchanges.py +0 -0
  134. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/filters/financials.py +0 -0
  135. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/filters/financials_analysis.py +0 -0
  136. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/filters/instrument_prices.py +0 -0
  137. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/filters/instruments.py +0 -0
  138. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/filters/utils.py +0 -0
  139. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/import_export/__init__.py +0 -0
  140. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/import_export/backends/__init__.py +0 -0
  141. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/import_export/backends/cbinsights/__init__.py +0 -0
  142. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/import_export/backends/cbinsights/deals.py +0 -0
  143. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/import_export/backends/cbinsights/equities.py +0 -0
  144. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/import_export/backends/cbinsights/mixin.py +0 -0
  145. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/import_export/backends/cbinsights/utils/__init__.py +0 -0
  146. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/import_export/backends/cbinsights/utils/classifications.py +0 -0
  147. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/import_export/backends/cbinsights/utils/client.py +0 -0
  148. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/import_export/backends/refinitiv/__init__.py +0 -0
  149. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/import_export/backends/refinitiv/daily_fundamental.py +0 -0
  150. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/import_export/backends/refinitiv/fiscal_period.py +0 -0
  151. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/import_export/backends/refinitiv/forecast.py +0 -0
  152. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/import_export/backends/refinitiv/fundamental.py +0 -0
  153. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/import_export/backends/refinitiv/geographic_segment.py +0 -0
  154. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/import_export/backends/refinitiv/instrument.py +0 -0
  155. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/import_export/backends/refinitiv/instrument_price.py +0 -0
  156. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/import_export/backends/refinitiv/mixin.py +0 -0
  157. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/import_export/backends/refinitiv/utils/__init__.py +0 -0
  158. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/import_export/backends/refinitiv/utils/controller.py +0 -0
  159. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/import_export/handlers/__init__.py +0 -0
  160. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/import_export/handlers/instrument.py +0 -0
  161. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/import_export/handlers/instrument_list.py +0 -0
  162. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/import_export/handlers/instrument_price.py +0 -0
  163. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/import_export/handlers/option.py +0 -0
  164. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/import_export/handlers/private_equities.py +0 -0
  165. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/import_export/parsers/__init__.py +0 -0
  166. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/import_export/parsers/cbinsights/__init__.py +0 -0
  167. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/import_export/parsers/cbinsights/deals.py +0 -0
  168. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/import_export/parsers/cbinsights/equities.py +0 -0
  169. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/import_export/parsers/cbinsights/fundamentals.py +0 -0
  170. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/import_export/parsers/refinitiv/__init__.py +0 -0
  171. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/import_export/parsers/refinitiv/daily_fundamental.py +0 -0
  172. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/import_export/parsers/refinitiv/forecast.py +0 -0
  173. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/import_export/parsers/refinitiv/fundamental.py +0 -0
  174. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/import_export/parsers/refinitiv/geographic_segment.py +0 -0
  175. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/import_export/parsers/refinitiv/instrument.py +0 -0
  176. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/import_export/parsers/refinitiv/instrument_price.py +0 -0
  177. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/import_export/parsers/refinitiv/utils.py +0 -0
  178. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/import_export/resources/__init__.py +0 -0
  179. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/import_export/resources/classification.py +0 -0
  180. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/import_export/resources/instrument_prices.py +0 -0
  181. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/import_export/resources/instruments.py +0 -0
  182. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/jinja2.py +0 -0
  183. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/management/__init__.py +0 -0
  184. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/menu.py +0 -0
  185. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/migrations/0001_initial.py +0 -0
  186. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/migrations/0002_rename_statements_instrumentlookup_financials_and_more.py +0 -0
  187. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/migrations/0003_instrument_estimate_backend_and_more.py +0 -0
  188. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/migrations/0004_rename_financials_instrumentlookup_statements_and_more.py +0 -0
  189. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/migrations/0005_instrument_corporate_action_backend.py +0 -0
  190. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/migrations/0006_instrument_officer_backend.py +0 -0
  191. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/migrations/0007_instrument_country_instrument_currency_and_more.py +0 -0
  192. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/migrations/0008_controversy.py +0 -0
  193. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/migrations/0009_alter_controversy_flag_alter_controversy_initiated_and_more.py +0 -0
  194. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/migrations/0010_classification_classificationgroup_deal_exchange_and_more.py +0 -0
  195. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/migrations/0011_delete_instrumentlookup_instrument_corporate_actions_and_more.py +0 -0
  196. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/migrations/0012_instrumentprice_created_instrumentprice_modified.py +0 -0
  197. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/migrations/0013_instrument_is_investable_universe_and_more.py +0 -0
  198. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/migrations/0014_alter_controversy_instrument.py +0 -0
  199. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/migrations/0015_instrument_instrument_investible_index.py +0 -0
  200. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/migrations/0016_instrumenttype_name_repr.py +0 -0
  201. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/migrations/0017_instrument_instrument_security_index.py +0 -0
  202. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/migrations/0018_instrument_instrument_level_index.py +0 -0
  203. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/migrations/0019_alter_controversy_source.py +0 -0
  204. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/migrations/0020_optionaggregate_option_and_more.py +0 -0
  205. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/migrations/0021_delete_instrumentdailystatistics.py +0 -0
  206. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/migrations/0022_instrument_cusip_option_open_interest_20d_and_more.py +0 -0
  207. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/migrations/0023_instrument_unique_ric_instrument_unique_rmc_and_more.py +0 -0
  208. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/migrations/0024_option_open_interest_10d_option_volume_10d_and_more.py +0 -0
  209. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/migrations/0025_instrument_is_primary_and_more.py +0 -0
  210. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/migrations/0026_instrument_is_cash_equivalent.py +0 -0
  211. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/migrations/0027_remove_instrument_unique_ric_and_more.py +0 -0
  212. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/migrations/__init__.py +0 -0
  213. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/models/__init__.py +0 -0
  214. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/models/esg/__init__.py +0 -0
  215. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/models/esg/controversies.py +0 -0
  216. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/models/exchanges/__init__.py +0 -0
  217. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/models/exchanges/exchanges.py +0 -0
  218. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/models/fields.py +0 -0
  219. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/models/fk_fields.py +0 -0
  220. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/models/indicators.py +0 -0
  221. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/models/instruments/__init__.py +0 -0
  222. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/models/instruments/classifications.py +0 -0
  223. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/models/instruments/instrument_lists.py +0 -0
  224. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/models/instruments/instrument_prices.py +0 -0
  225. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/models/instruments/instrument_relationships.py +0 -0
  226. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/models/instruments/instrument_requests.py +0 -0
  227. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/models/instruments/instruments.py +0 -0
  228. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/models/instruments/llm/__init__.py +0 -0
  229. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/models/instruments/llm/create_instrument_news_relationships.py +0 -0
  230. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/models/instruments/mixin/__init__.py +0 -0
  231. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/models/instruments/mixin/financials_computed.py +0 -0
  232. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/models/instruments/mixin/financials_serializer_fields.py +0 -0
  233. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/models/instruments/mixin/instruments.py +0 -0
  234. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/models/instruments/options.py +0 -0
  235. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/models/instruments/private_equities.py +0 -0
  236. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/models/instruments/querysets.py +0 -0
  237. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/models/instruments/utils.py +0 -0
  238. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/preferences.py +0 -0
  239. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/serializers/__init__.py +0 -0
  240. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/serializers/esg.py +0 -0
  241. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/serializers/exchanges.py +0 -0
  242. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/serializers/instruments/__init__.py +0 -0
  243. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/serializers/instruments/classifications.py +0 -0
  244. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/serializers/instruments/instrument_lists.py +0 -0
  245. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/serializers/instruments/instrument_prices.py +0 -0
  246. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/serializers/instruments/instrument_relationships.py +0 -0
  247. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/serializers/instruments/instrument_requests.py +0 -0
  248. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/serializers/instruments/instruments.py +0 -0
  249. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/serializers/instruments/mixins.py +0 -0
  250. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/serializers/officers.py +0 -0
  251. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/signals.py +0 -0
  252. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/sync/__init__.py +0 -0
  253. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/sync/abstract.py +0 -0
  254. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/sync/runner.py +0 -0
  255. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/tasks.py +0 -0
  256. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/tests/__init__.py +0 -0
  257. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/tests/analysis/__init__.py +0 -0
  258. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/tests/analysis/financial_analysis/__init__.py +0 -0
  259. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/tests/analysis/financial_analysis/test_statement_with_estimates.py +0 -0
  260. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/tests/analysis/financial_analysis/test_utils.py +0 -0
  261. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/tests/analysis/test_esg.py +0 -0
  262. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/tests/conftest.py +0 -0
  263. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/tests/dataloaders/__init__.py +0 -0
  264. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/tests/dataloaders/test_cache.py +0 -0
  265. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/tests/models/__init__.py +0 -0
  266. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/tests/models/test_classifications.py +0 -0
  267. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/tests/models/test_exchanges.py +0 -0
  268. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/tests/models/test_instrument_list.py +0 -0
  269. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/tests/models/test_instrument_prices.py +0 -0
  270. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/tests/models/test_instruments.py +0 -0
  271. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/tests/models/test_merge.py +0 -0
  272. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/tests/models/test_options.py +0 -0
  273. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/tests/test_tasks.py +0 -0
  274. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/tests/tests.py +0 -0
  275. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/urls.py +0 -0
  276. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/utils.py +0 -0
  277. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/viewsets/__init__.py +0 -0
  278. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/viewsets/configs/__init__.py +0 -0
  279. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/viewsets/configs/buttons/__init__.py +0 -0
  280. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/viewsets/configs/buttons/classifications.py +0 -0
  281. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/viewsets/configs/buttons/exchanges.py +0 -0
  282. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/viewsets/configs/buttons/instrument_prices.py +0 -0
  283. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/viewsets/configs/buttons/instruments.py +0 -0
  284. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/viewsets/configs/display/__init__.py +0 -0
  285. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/viewsets/configs/display/classifications.py +0 -0
  286. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/viewsets/configs/display/esg.py +0 -0
  287. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/viewsets/configs/display/exchanges.py +0 -0
  288. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/viewsets/configs/display/instrument_lists.py +0 -0
  289. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/viewsets/configs/display/instrument_prices.py +0 -0
  290. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/viewsets/configs/display/instrument_requests.py +0 -0
  291. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/viewsets/configs/display/instruments.py +0 -0
  292. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/viewsets/configs/display/instruments_relationships.py +0 -0
  293. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/viewsets/configs/display/monthly_performances.py +0 -0
  294. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/viewsets/configs/display/officers.py +0 -0
  295. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/viewsets/configs/display/prices.py +0 -0
  296. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/viewsets/configs/display/statement_with_estimates.py +0 -0
  297. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/viewsets/configs/display/statements.py +0 -0
  298. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/viewsets/configs/endpoints/__init__.py +0 -0
  299. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/viewsets/configs/endpoints/classifications.py +0 -0
  300. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/viewsets/configs/endpoints/esg.py +0 -0
  301. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/viewsets/configs/endpoints/exchanges.py +0 -0
  302. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/viewsets/configs/endpoints/financials_analysis.py +0 -0
  303. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/viewsets/configs/endpoints/instrument_lists.py +0 -0
  304. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/viewsets/configs/endpoints/instrument_prices.py +0 -0
  305. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/viewsets/configs/endpoints/instrument_requests.py +0 -0
  306. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/viewsets/configs/endpoints/instruments.py +0 -0
  307. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/viewsets/configs/endpoints/instruments_relationships.py +0 -0
  308. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/viewsets/configs/endpoints/statements.py +0 -0
  309. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/viewsets/configs/menus/__init__.py +0 -0
  310. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/viewsets/configs/menus/classifications.py +0 -0
  311. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/viewsets/configs/menus/exchanges.py +0 -0
  312. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/viewsets/configs/menus/instrument_lists.py +0 -0
  313. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/viewsets/configs/menus/instruments.py +0 -0
  314. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/viewsets/configs/menus/instruments_relationships.py +0 -0
  315. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/viewsets/configs/titles/__init__.py +0 -0
  316. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/viewsets/configs/titles/classifications.py +0 -0
  317. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/viewsets/configs/titles/esg.py +0 -0
  318. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/viewsets/configs/titles/exchanges.py +0 -0
  319. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/viewsets/configs/titles/financial_ratio_analysis.py +0 -0
  320. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/viewsets/configs/titles/financials_analysis.py +0 -0
  321. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/viewsets/configs/titles/instrument_prices.py +0 -0
  322. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/viewsets/configs/titles/instrument_requests.py +0 -0
  323. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/viewsets/configs/titles/instruments.py +0 -0
  324. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/viewsets/configs/titles/instruments_relationships.py +0 -0
  325. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/viewsets/configs/titles/market_data.py +0 -0
  326. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/viewsets/configs/titles/prices.py +0 -0
  327. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/viewsets/configs/titles/statement_with_estimates.py +0 -0
  328. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/viewsets/esg.py +0 -0
  329. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/viewsets/exchanges.py +0 -0
  330. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/viewsets/financial_analysis/__init__.py +0 -0
  331. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/viewsets/financial_analysis/financial_metric_analysis.py +0 -0
  332. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/viewsets/financial_analysis/financial_ratio_analysis.py +0 -0
  333. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/viewsets/financial_analysis/statement_with_estimates.py +0 -0
  334. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/viewsets/instruments/__init__.py +0 -0
  335. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/viewsets/instruments/classifications.py +0 -0
  336. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/viewsets/instruments/financials_analysis.py +0 -0
  337. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/viewsets/instruments/instrument_lists.py +0 -0
  338. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/viewsets/instruments/instrument_prices.py +0 -0
  339. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/viewsets/instruments/instrument_requests.py +0 -0
  340. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/viewsets/instruments/instruments.py +0 -0
  341. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/viewsets/instruments/instruments_relationships.py +0 -0
  342. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/viewsets/instruments/utils.py +0 -0
  343. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/viewsets/market_data.py +0 -0
  344. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/viewsets/mixins.py +0 -0
  345. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/viewsets/officers.py +0 -0
  346. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/viewsets/prices.py +0 -0
  347. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/viewsets/statements/__init__.py +0 -0
  348. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/viewsets/statements/statements.py +0 -0
  349. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/viewsets/technical_analysis/__init__.py +0 -0
  350. {wbfdm-2.2.5 → wbfdm-2.2.6}/wbfdm/viewsets/technical_analysis/monthly_performances.py +0 -0
@@ -1,6 +1,6 @@
1
- Metadata-Version: 2.3
1
+ Metadata-Version: 2.4
2
2
  Name: wbfdm
3
- Version: 2.2.5
3
+ Version: 2.2.6
4
4
  Summary: The workbench module ensures rapid access to diverse financial data (market, fundamental, forecasts, ESG), with features for storing instruments, classifying them, and conducting financial analysis.
5
5
  Author-email: Christopher Wittlinger <c.wittlinger@stainly.com>
6
6
  Requires-Dist: roman==4.*
@@ -32,7 +32,7 @@ package = true
32
32
  path = "../../pyproject.toml"
33
33
 
34
34
  [tool.hatch.build]
35
- include = ["wbfdm/**/*.py"]
35
+ include = ["wbfdm/**/*"]
36
36
 
37
37
  [build-system]
38
38
  requires = ["hatchling"]
@@ -0,0 +1,100 @@
1
+ SELECT
2
+ 'qa-ds2-company' AS 'source',
3
+ company.DsCmpyCode AS 'source_id',
4
+ NULL AS 'parent_id',
5
+ coalesce(cmp_ref.PrimaryName, company.DsCmpyName) AS 'name',
6
+ company.CmpyCtryCode AS 'country_id',
7
+ exchange_qt.ISOCurrCode AS 'currency_id',
8
+ 'company' AS 'instrument_type_id',
9
+ rkd_instrument.ISIN AS 'isin',
10
+ rkd_instrument.Ticker AS 'ticker',
11
+ rkd_instrument.RIC AS 'refinitiv_identifier_code',
12
+ country_qt.DsMnem AS 'refinitiv_mnemonic_code',
13
+ rkd_instrument.Cusip AS 'cusip',
14
+ rkd_instrument.Sedol AS 'sedol',
15
+ filing.TxtInfo AS 'description',
16
+ rkd_cmp_det.Employees AS 'employees',
17
+ (select top 1 concat('00', phone.CtryPh, phone.City, phone.PhoneNo) from RKDFndCmpPhone AS phone where phone.Code = rkd_instrument.Code AND PhTypeCode = 1) AS 'phone',
18
+ (select top 1 web.URL from RKDFndCmpWebLink AS web where web.Code = rkd_instrument.Code AND web.URLTypeCode = 1) AS 'primary_url',
19
+ (select string_agg(web.URL, ',') from RKDFndCmpWebLink AS web where web.Code = rkd_instrument.Code AND web.URLTypeCode <> 1) AS 'additional_urls',
20
+ concat(rkd_cmp_det.StAdd1, ', ', rkd_cmp_det.Post, ', ', rkd_cmp_det.City) AS 'headquarter_address',
21
+ convert(Date, COALESCE(rkd_cmp_det.PublicSince, (SELECT MIN(MarketDate) FROM DS2PrimQtPrc WHERE InfoCode = exchange_qt.InfoCode))) AS 'inception_date',
22
+ NULL AS 'delisted_date',
23
+ convert(Date, cmp_ref.LatestFinAnnDt) AS 'last_annual_report',
24
+ convert(Date, cmp_ref.LatestFinIntmDt) AS 'last_interim_report',
25
+ -- MarketData DL
26
+ exchange_qt.InfoCode AS 'quote_code',
27
+ exchange_qt.ExchIntCode AS 'exchange_code',
28
+ -- Fundamental DL
29
+ rkd_instrument.Code AS 'rkd_code',
30
+ -- Forecast DL
31
+ ibes_mapping.EstPermID AS 'ibes_code'
32
+
33
+ FROM DS2Company AS company
34
+
35
+ LEFT JOIN DS2Security AS security
36
+ ON company.DsCmpyCode = security.DsCmpyCode
37
+ AND security.IsMajorSec = 'Y'
38
+
39
+ LEFT JOIN DS2ExchQtInfo AS exchange_qt
40
+ ON exchange_qt.InfoCode = security.PrimQtInfoCode
41
+ AND exchange_qt.IsPrimExchQt = 'Y'
42
+
43
+ LEFT JOIN DS2CtryQtInfo AS country_qt
44
+ ON exchange_qt.InfoCode = country_qt.InfoCode
45
+
46
+ LEFT JOIN vw_SecurityMappingX AS mappingX
47
+ ON mappingX.vencode = security.PrimQtInfoCode
48
+ AND mappingX.ventype = 33
49
+ AND mappingX.rank = 1
50
+ AND mappingX.StartDate = (
51
+ SELECT MAX(I.StartDate)
52
+ FROM vw_SecurityMappingX AS I
53
+ WHERE I.typ = mappingX.typ AND I.vencode = mappingX.vencode AND I.ventype = mappingX.ventype
54
+ )
55
+
56
+ LEFT JOIN vw_SecurityMappingX AS mappingRKD
57
+ ON mappingX.seccode = mappingRKD.seccode
58
+ AND mappingX.typ = mappingRKD.typ
59
+ AND mappingRKD.ventype = 26
60
+ AND mappingRKD.rank = 1
61
+ AND mappingRKD.StartDate = (
62
+ SELECT MAX(I.StartDate)
63
+ FROM vw_SecurityMappingX AS I
64
+ WHERE I.typ = mappingRKD.typ AND I.vencode = mappingRKD.vencode AND I.ventype = mappingRKD.ventype
65
+ )
66
+
67
+ LEFT JOIN RKDFndCmpRefIssue AS rkd_instrument
68
+ ON rkd_instrument.IssueCode = mappingRKD.vencode
69
+
70
+ LEFT JOIN RKDFndCmpDet AS rkd_cmp_det
71
+ ON rkd_cmp_det.Code = rkd_instrument.Code
72
+
73
+ LEFT JOIN RKDFndCmpRef AS cmp_ref
74
+ ON cmp_ref.Code = rkd_instrument.Code
75
+
76
+ LEFT JOIN RKDFndCmpFiling AS filing
77
+ ON filing.Code = rkd_instrument.Code
78
+ AND filing.TxtInfoTypeCode = 2
79
+
80
+ LEFT JOIN vw_IBES2Mapping AS ibes_mapping
81
+ ON ibes_mapping.SecCode = mappingX.seccode
82
+ AND ibes_mapping.typ = mappingX.typ
83
+ AND ibes_mapping.Exchange = (
84
+ CASE
85
+ WHEN ibes_mapping.typ = 6 THEN 0
86
+ WHEN ibes_mapping.typ = 1 THEN 1
87
+ END
88
+ )
89
+
90
+ {% if source_id %}
91
+ where company.DsCmpyCode = {{ source_id }}
92
+ {% endif %}
93
+ -- where company.CmpyCtryCode = 'IS'
94
+
95
+ ORDER BY company.DsCmpyCode
96
+
97
+ {% if (offset == 0 or offset) and batch %}
98
+ offset {{ offset|sqlsafe }} rows
99
+ fetch next {{ batch|sqlsafe }} rows only
100
+ {% endif %}
@@ -0,0 +1,33 @@
1
+ {% extends 'qa/sql/ibes/financials.sql' %}
2
+
3
+ {% block additional_fields %}
4
+ (
5
+ select DefActValue * DefScale
6
+ from TreActRpt
7
+ where
8
+ fin.EstPermID = EstPermID
9
+ and fin.PerEndDate = PerEndDate
10
+ and fin.Measure = Measure
11
+ and fin.PerType = PerType
12
+ and ExpireDate is null
13
+ and fin.IsParent = IsParent
14
+ ) as actual_value,
15
+ case
16
+ when fin.DefMeanEst = 0 then null
17
+ else ((
18
+ select DefActValue * DefScale
19
+ from TREActRpt
20
+ where
21
+ fin.EstPermID = EstPermID
22
+ and fin.PerEndDate = PerEndDate
23
+ and fin.Measure = Measure
24
+ and fin.PerType = PerType
25
+ and ExpireDate IS NULL
26
+ and fin.IsParent = IsParent
27
+ ) - (fin.DefMeanEst * fin.DefScale)) / (fin.DefMeanEst * fin.DefScale)
28
+ end AS difference_pct,
29
+ fin.DefHighEst * fin.DefScale AS value_high,
30
+ fin.DefLowEst * fin.DefScale AS value_low,
31
+ fin.DefStdDev * fin.DefScale AS value_stdev,
32
+ fin.NumEsts AS value_amount,
33
+ {% endblock %}
@@ -0,0 +1,37 @@
1
+ with data as (
2
+ {% with financial_table="TreActRpt", value="DefActValue", only_valid=True, estimate=False %}
3
+ {% include 'qa/sql/ibes/financials.sql' %}
4
+ {% endwith %}
5
+
6
+ union
7
+
8
+ {% with financial_table="TreSumPer", value="DefMeanEst", only_valid=True, from_index=1, estimate=True %}
9
+ {% include 'qa/sql/ibes/financials.sql' %}
10
+ {% endwith %}
11
+ )
12
+
13
+ select
14
+ *,
15
+ case
16
+ when period_type = 'Y' and month(period_end_date) = 12 then value
17
+ when period_type = 'Y'
18
+ then month(period_end_date) * value / 12 + (12 - month(period_end_date)) * lead(value, 1) over (partition by financial, external_identifier, period_type order by period_end_date) / 12
19
+ when period_type = 'Q' and (
20
+ (interim = 1 and month(period_end_date) = 3)
21
+ or (interim = 2 and month(period_end_date) = 6)
22
+ or (interim = 3 and month(period_end_date) = 9)
23
+ or (interim = 4 and month(period_end_date) = 12)
24
+ )
25
+ then value
26
+ when period_type = 'Q'
27
+ then month(period_end_date) * value / 3 + (3 - month(period_end_date)) * lead(value, 1) over (partition by financial, external_identifier, period_type order by period_end_date) / 3
28
+
29
+ when period_type = 'S' and (
30
+ (interim = 1 and month(period_end_date) = 6)
31
+ or (interim = 2 and month(period_end_date) = 12)
32
+ )
33
+ then value
34
+ when period_type = 'S'
35
+ then month(period_end_date) * value / 6 + (6 - month(period_end_date)) * lead(value, 1) over (partition by financial, external_identifier, period_type order by period_end_date) / 6
36
+ end as _value
37
+ from data
@@ -0,0 +1,9 @@
1
+ {% with financial_table="TreActRpt", value="DefActValue", only_valid=True, estimate=False %}
2
+ {% include 'qa/sql/ibes/financials.sql' %}
3
+ {% endwith %}
4
+
5
+ union
6
+
7
+ {% with financial_table="TreSumPer", value="DefMeanEst", only_valid=True, from_index=1, estimate=True %}
8
+ {% include 'qa/sql/ibes/financials.sql' %}
9
+ {% endwith %}
@@ -0,0 +1,3 @@
1
+ {% with financial_table="TreSumPer", value="DefMeanEst", estimate=True, only_valid=True %}
2
+ {% include 'qa/sql/ibes/base_estimates.sql' %}
3
+ {% endwith %}
@@ -0,0 +1,79 @@
1
+ select
2
+ case
3
+ when fin.PerType = 2 then 'M'
4
+ when fin.PerType = 3 then 'Q'
5
+ when fin.PerType = 4 then 'Y'
6
+ when fin.PerType = 5 then 'S'
7
+ end as period_type,
8
+ convert(date, fin.ExpireDate) as valid_until,
9
+ fin.EstPermID as external_identifier,
10
+ convert(date, fin.PerEndDate) as period_end_date,
11
+
12
+ idx.FiscalYear as year,
13
+ idx.FiscalIndex as interim,
14
+ idx.PerIndex as 'index',
15
+
16
+ case
17
+ when (code.Description collate Latin1_General_Bin) = 'GBp' then {{ value|identifier }} * DefScale / 100
18
+ else {{ value | identifier }} * DefScale
19
+ end as value,
20
+
21
+ code.Description as currency,
22
+ mapping.financial as financial,
23
+ {% block additional_fields%}{% endblock %}
24
+ {% if estimate %}1{% else %}0{% endif %} as estimate,
25
+ 'qa-ibes' as source
26
+
27
+ from {{ financial_table |identifier }} as fin
28
+
29
+ join TrePerIndex as idx
30
+ on idx.EstPermID = fin.EstPermID
31
+ and idx.PerType = fin.PerType
32
+ and idx.PerEndDate = fin.PerEndDate
33
+
34
+ join stainly_financial_mapping as mapping
35
+ on mapping.ibes_financial = fin.Measure
36
+
37
+ left join TreCode as code
38
+ on code.Code = fin.DefCurrPermID
39
+ and code.CodeType = 7
40
+
41
+ where
42
+ fin.EffectiveDate = (
43
+ select max(EffectiveDate)
44
+ from {{ financial_table |identifier }}
45
+ where
46
+ EstPermID = fin.EstPermID
47
+ and PerEndDate = fin.PerEndDate
48
+ and PerType = fin.PerType
49
+ and Measure = fin.Measure
50
+ and (
51
+ ExpireDate = fin.ExpireDate
52
+ or (fin.ExpireDate is null and ExpireDate is null)
53
+ )
54
+ )
55
+
56
+ and fin.EstPermID in (
57
+ {% for instrument in instruments %}
58
+ {{ instrument }}{% if not loop.last %},{% endif %}
59
+ {% endfor %}
60
+ )
61
+
62
+ and mapping.financial in (
63
+ {% for financial in financials %}
64
+ {{ financial }}{% if not loop.last %},{% endif %}
65
+ {% endfor %}
66
+ )
67
+
68
+ {% if only_valid %}and fin.ExpireDate is null{% endif %}
69
+
70
+ {% if from_year %}and idx.FiscalYear >= {{ from_year }}{% endif %}
71
+ {% if to_year %}and idx.FiscalYear <= {{ to_year }}{% endif %}
72
+
73
+ {% if from_date %}and fin.PerEndDate >= {{ from_date }}{% endif %}
74
+ {% if to_date %}and fin.PerEndDate <= {{ to_date }}{% endif %}
75
+
76
+ {% if from_index or from_index == 0 %}and idx.PerIndex >= {{ from_index }}{% endif %}
77
+ {% if to_index or to_index == 0 %}and idx.PerIndex <= {{ to_index }}{% endif %}
78
+
79
+ {% if period_type == 'annual' %}and idx.FiscalIndex = 0{% elif period_type == 'interim' %}and idx.FiscalIndex > 0{% endif %}
@@ -0,0 +1,100 @@
1
+ SELECT
2
+ 'qa-ds2-security' AS 'source',
3
+ security.DsSecCode AS 'source_id',
4
+ security.IsMajorSec AS 'is_primary',
5
+ company.DsCmpyCode AS 'parent_id',
6
+ coalesce(cmp_ref.PrimaryName, company.DsCmpyName) AS 'name',
7
+ company.CmpyCtryCode AS 'country_id',
8
+ exchange_qt.ISOCurrCode AS 'currency_id',
9
+ country_qt.TypeCode AS 'instrument_type_id',
10
+ rkd_instrument.ISIN AS 'isin',
11
+ rkd_instrument.Ticker AS 'ticker',
12
+ rkd_instrument.RIC AS 'refinitiv_identifier_code',
13
+ country_qt.DsMnem AS 'refinitiv_mnemonic_code',
14
+ rkd_instrument.Cusip AS 'cusip',
15
+ rkd_instrument.Sedol AS 'sedol',
16
+ filing.TxtInfo AS 'description',
17
+ rkd_cmp_det.Employees AS 'employees',
18
+ (select top 1 concat('00', phone.CtryPh, phone.City, phone.PhoneNo) from RKDFndCmpPhone AS phone where phone.Code = rkd_instrument.Code AND PhTypeCode = 1) AS 'phone',
19
+ (select top 1 web.URL from RKDFndCmpWebLink AS web where web.Code = rkd_instrument.Code AND web.URLTypeCode = 1) AS 'primary_url',
20
+ (select string_agg(web.URL, ',') from RKDFndCmpWebLink AS web where web.Code = rkd_instrument.Code AND web.URLTypeCode <> 1) AS 'additional_urls',
21
+ concat(rkd_cmp_det.StAdd1, ', ', rkd_cmp_det.Post, ', ', rkd_cmp_det.City) AS 'headquarter_address',
22
+ convert(Date, COALESCE(rkd_cmp_det.PublicSince, (SELECT MIN(MarketDate) FROM DS2PrimQtPrc WHERE InfoCode = exchange_qt.InfoCode))) AS 'inception_date',
23
+ convert(Date, security.DelistDate) AS 'delisted_date',
24
+ convert(Date, cmp_ref.LatestFinAnnDt) AS 'last_annual_report',
25
+ convert(Date, cmp_ref.LatestFinIntmDt) AS 'last_interim_report',
26
+ -- MarketData DL
27
+ exchange_qt.InfoCode AS 'quote_code',
28
+ exchange_qt.ExchIntCode AS 'exchange_code',
29
+ -- Fundamental DL
30
+ rkd_instrument.Code AS 'rkd_code',
31
+ -- Forecast DL
32
+ ibes_mapping.EstPermID AS 'ibes_code'
33
+
34
+ FROM DS2Security AS security
35
+
36
+ LEFT JOIN DS2Company AS company
37
+ ON security.DsCmpyCode = company.DsCmpyCode
38
+
39
+ LEFT JOIN DS2ExchQtInfo AS exchange_qt
40
+ ON exchange_qt.InfoCode = security.PrimQtInfoCode
41
+ AND exchange_qt.IsPrimExchQt = 'Y'
42
+
43
+ LEFT JOIN DS2CtryQtInfo AS country_qt
44
+ ON exchange_qt.InfoCode = country_qt.InfoCode
45
+
46
+ LEFT JOIN vw_SecurityMappingX AS mappingX
47
+ ON mappingX.vencode = security.PrimQtInfoCode
48
+ AND mappingX.ventype = 33
49
+ AND mappingX.rank = 1
50
+ AND mappingX.StartDate = (
51
+ SELECT MAX(I.StartDate)
52
+ FROM vw_SecurityMappingX AS I
53
+ WHERE I.typ = mappingX.typ AND I.vencode = mappingX.vencode AND I.ventype = mappingX.ventype
54
+ )
55
+
56
+ LEFT JOIN vw_SecurityMappingX AS mappingRKD
57
+ ON mappingX.seccode = mappingRKD.seccode
58
+ AND mappingX.typ = mappingRKD.typ
59
+ AND mappingRKD.ventype = 26
60
+ AND mappingRKD.rank = 1
61
+ AND mappingRKD.StartDate = (
62
+ SELECT MAX(I.StartDate)
63
+ FROM vw_SecurityMappingX AS I
64
+ WHERE I.typ = mappingRKD.typ AND I.vencode = mappingRKD.vencode AND I.ventype = mappingRKD.ventype
65
+ )
66
+
67
+ LEFT JOIN RKDFndCmpRefIssue AS rkd_instrument
68
+ ON rkd_instrument.IssueCode = mappingRKD.vencode
69
+
70
+ LEFT JOIN RKDFndCmpDet AS rkd_cmp_det
71
+ ON rkd_cmp_det.Code = rkd_instrument.Code
72
+
73
+ LEFT JOIN RKDFndCmpRef AS cmp_ref
74
+ ON cmp_ref.Code = rkd_instrument.Code
75
+
76
+ LEFT JOIN RKDFndCmpFiling AS filing
77
+ ON filing.Code = rkd_instrument.Code
78
+ AND filing.TxtInfoTypeCode = 2
79
+
80
+ LEFT JOIN vw_IBES2Mapping AS ibes_mapping
81
+ ON ibes_mapping.SecCode = mappingX.seccode
82
+ AND ibes_mapping.typ = mappingX.typ
83
+ AND ibes_mapping.Exchange = (
84
+ CASE
85
+ WHEN ibes_mapping.typ = 6 THEN 0
86
+ WHEN ibes_mapping.typ = 1 THEN 1
87
+ END
88
+ )
89
+
90
+ {% if source_id %}
91
+ where security.DsSecCode = {{ source_id }}
92
+ {% endif %}
93
+ -- where company.CmpyCtryCode = 'IS'
94
+
95
+ ORDER BY company.DsCmpyCode
96
+
97
+ {% if (offset == 0 or offset) and batch %}
98
+ offset {{ offset|sqlsafe }} rows
99
+ fetch next {{ batch|sqlsafe }} rows only
100
+ {% endif %}
@@ -0,0 +1,98 @@
1
+ SELECT
2
+ 'qa-ds2-quote' AS 'source',
3
+ CONCAT(exchange_qt.InfoCode, '-', exchange_qt.ExchIntCode) AS 'source_id',
4
+ security.DsSecCode AS 'parent_id',
5
+ case
6
+ when exchange_qt.IsPrimExchQt = 'Y' and country_qt.IsPrimQt = 1 and security.DelistDate is null then 'Y'
7
+ else 'N'
8
+ end as is_primary,
9
+ coalesce(cmp_ref.PrimaryName, exchange_qt.DsQtName) AS 'name',
10
+ country_qt.Region AS 'country_id',
11
+ exchange_qt.ISOCurrCode AS 'currency_id',
12
+ 'quote' AS 'instrument_type_id',
13
+ rkd_instrument.ISIN AS 'isin',
14
+ rkd_instrument.Ticker AS 'ticker',
15
+ rkd_instrument.RIC AS 'refinitiv_identifier_code',
16
+ country_qt.DsMnem AS 'refinitiv_mnemonic_code',
17
+ rkd_instrument.Cusip AS 'cusip',
18
+ rkd_instrument.Sedol AS 'sedol',
19
+ filing.TxtInfo AS 'description',
20
+ rkd_cmp_det.Employees AS 'employees',
21
+ (select top 1 concat('00', phone.CtryPh, phone.City, phone.PhoneNo) from RKDFndCmpPhone AS phone where phone.Code = rkd_instrument.Code AND PhTypeCode = 1) AS 'phone',
22
+ (select top 1 web.URL from RKDFndCmpWebLink AS web where web.Code = rkd_instrument.Code AND web.URLTypeCode = 1) AS 'primary_url',
23
+ (select string_agg(web.URL, ',') from RKDFndCmpWebLink AS web where web.Code = rkd_instrument.Code AND web.URLTypeCode <> 1) AS 'additional_urls',
24
+ concat(rkd_cmp_det.StAdd1, ', ', rkd_cmp_det.Post, ', ', rkd_cmp_det.City) AS 'headquarter_address',
25
+ convert(Date, COALESCE(rkd_cmp_det.PublicSince, (SELECT MIN(MarketDate) FROM DS2PrimQtPrc WHERE InfoCode = exchange_qt.InfoCode))) AS 'inception_date',
26
+ convert(Date, security.DelistDate) AS 'delisted_date',
27
+ convert(Date, cmp_ref.LatestFinAnnDt) AS 'last_annual_report',
28
+ convert(Date, cmp_ref.LatestFinIntmDt) AS 'last_interim_report',
29
+ -- MarketData DL
30
+ exchange_qt.InfoCode AS 'quote_code',
31
+ exchange_qt.ExchIntCode AS 'exchange_code',
32
+ -- Fundamental DL
33
+ rkd_instrument.Code AS 'rkd_code',
34
+ -- Forecast DL
35
+ ibes_mapping.EstPermID AS 'ibes_code'
36
+
37
+ FROM DS2ExchQtInfo AS exchange_qt
38
+
39
+ LEFT JOIN DS2CtryQtInfo AS country_qt
40
+ ON exchange_qt.InfoCode = country_qt.InfoCode
41
+
42
+ LEFT JOIN DS2Security AS security
43
+ ON country_qt.DsSecCode = security.DsSecCode
44
+
45
+ LEFT JOIN vw_SecurityMappingX AS mappingX
46
+ ON mappingX.vencode = security.PrimQtInfoCode
47
+ AND mappingX.ventype = 33
48
+ AND mappingX.rank = 1
49
+ AND mappingX.StartDate = (
50
+ SELECT MAX(I.StartDate)
51
+ FROM vw_SecurityMappingX AS I
52
+ WHERE I.typ = mappingX.typ AND I.vencode = mappingX.vencode AND I.ventype = mappingX.ventype
53
+ )
54
+
55
+ LEFT JOIN vw_SecurityMappingX AS mappingRKD
56
+ ON mappingX.seccode = mappingRKD.seccode
57
+ AND mappingX.typ = mappingRKD.typ
58
+ AND mappingRKD.ventype = 26
59
+ AND mappingRKD.rank = 1
60
+ AND mappingRKD.StartDate = (
61
+ SELECT MAX(I.StartDate)
62
+ FROM vw_SecurityMappingX AS I
63
+ WHERE I.typ = mappingRKD.typ AND I.vencode = mappingRKD.vencode AND I.ventype = mappingRKD.ventype
64
+ )
65
+
66
+ LEFT JOIN RKDFndCmpRefIssue AS rkd_instrument
67
+ ON rkd_instrument.IssueCode = mappingRKD.vencode
68
+
69
+ LEFT JOIN RKDFndCmpDet AS rkd_cmp_det
70
+ ON rkd_cmp_det.Code = rkd_instrument.Code
71
+
72
+ LEFT JOIN RKDFndCmpRef AS cmp_ref
73
+ ON cmp_ref.Code = rkd_instrument.Code
74
+
75
+ LEFT JOIN RKDFndCmpFiling AS filing
76
+ ON filing.Code = rkd_instrument.Code
77
+ AND filing.TxtInfoTypeCode = 2
78
+
79
+ LEFT JOIN vw_IBES2Mapping AS ibes_mapping
80
+ ON ibes_mapping.SecCode = mappingX.seccode
81
+ AND ibes_mapping.typ = mappingX.typ
82
+ AND ibes_mapping.Exchange = (
83
+ CASE
84
+ WHEN ibes_mapping.typ = 6 THEN 0
85
+ WHEN ibes_mapping.typ = 1 THEN 1
86
+ END
87
+ )
88
+
89
+ {% if source_id %}
90
+ where CONCAT(exchange_qt.InfoCode, '-', exchange_qt.ExchIntCode) = {{ source_id }}
91
+ {% endif %}
92
+
93
+ ORDER BY exchange_qt.InfoCode, exchange_qt.ExchIntCode
94
+
95
+ {% if (offset == 0 or offset) and batch %}
96
+ offset {{ offset|sqlsafe }} rows
97
+ fetch next {{ batch|sqlsafe }} rows only
98
+ {% endif %}
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes