bayesline.api.equity.UniverseSettings#

pydantic model bayesline.api.equity.UniverseSettings#

Define an asset universe as a set of regional, industry and market cap filters.

Show JSON schema
{
   "title": "UniverseSettings",
   "description": "Define an asset universe as a set of regional, industry and market cap filters.",
   "type": "object",
   "properties": {
      "id_type": {
         "default": "bayesid",
         "description": "The default id type to use for the universe.",
         "examples": [
            "cusip9",
            "bayesid"
         ],
         "title": "Id Type",
         "type": "string"
      },
      "calendar": {
         "$ref": "#/$defs/CalendarSettings",
         "description": "The calendar settings to use for the universe."
      },
      "categorical_filters": {
         "description": "\n        Filters that determine which categorical codes to include and exclude in the universe.\n        ",
         "items": {
            "$ref": "#/$defs/CategoricalFilterSettings"
         },
         "title": "Categorical Filters",
         "type": "array"
      },
      "portfolio_filter": {
         "anyOf": [
            {
               "type": "string"
            },
            {
               "type": "integer"
            },
            {
               "$ref": "#/$defs/PortfolioOrganizerSettings"
            },
            {
               "type": "null"
            }
         ],
         "default": null,
         "description": "The portfolio organizer settings to use as an underlying schema of portfolios. Universe will be filtered across the superset of all portfolios.",
         "title": "Portfolio Filter"
      },
      "mcap_filter": {
         "$ref": "#/$defs/MCapFilterSettings",
         "description": "\n        Filters that determine which market caps to include and exclude in the universe.\n        "
      }
   },
   "$defs": {
      "CalendarSettings": {
         "additionalProperties": false,
         "description": "Calendar settings carrying exchange filters to construct calendars from.",
         "properties": {
            "filters": {
               "default": [
                  [
                     "XNYS"
                  ]
               ],
               "description": "The filters to apply. Each filter is a list of exchange MIC codes. The outer list will be treated as an OR conditions, while the inner lists will be treated as an AND conditions. For example, `[['A', 'B'], ['C']]` means that the holidays are the days where either A and B are both holidays, or C is a holiday.",
               "examples": [
                  [
                     [
                        "XNYS"
                     ]
                  ],
                  [
                     [
                        "XNYS",
                        "XNAS"
                     ]
                  ],
                  [
                     [
                        "XNYS"
                     ],
                     [
                        "XNAS"
                     ]
                  ]
               ],
               "items": {
                  "items": {
                     "type": "string"
                  },
                  "type": "array"
               },
               "minItems": 1,
               "title": "Filters",
               "type": "array"
            }
         },
         "title": "CalendarSettings",
         "type": "object"
      },
      "CategoricalFilterSettings": {
         "additionalProperties": false,
         "description": "Specify include and exclude filters for categorical codes.\n\nExamples of categorical codes are industries or countries. Assets are included if\nthey are part of at least one include and not part of any exclude.\n\nBy default all codes for the given hierarchy are included.",
         "properties": {
            "hierarchy": {
               "description": "The categorical hierarchy to use.",
               "examples": [
                  "trbc"
               ],
               "minLength": 1,
               "title": "Hierarchy",
               "type": "string"
            },
            "include": {
               "anyOf": [
                  {
                     "items": {
                        "type": "string"
                     },
                     "type": "array"
                  },
                  {
                     "const": "All",
                     "type": "string"
                  }
               ],
               "default": "All",
               "description": "Valid industry codes or labels for given hierarchy at any level. If labels are used which may be duplicated, then the code with the highest level is used. If 'All', all codes are included.",
               "examples": [
                  [
                     "3571"
                  ],
                  "All",
                  [
                     "Materials",
                     "1010"
                  ],
                  [
                     "Europe",
                     "CAN"
                  ]
               ],
               "title": "Include"
            },
            "exclude": {
               "description": "Valid industry codes or labels for given hierarchy at any level. If labels are used which may be duplicated, then the code with the lowest level is used.",
               "examples": [
                  [
                     "3571"
                  ],
                  [
                     "Materials",
                     "1010"
                  ],
                  [
                     "JPN"
                  ]
               ],
               "items": {
                  "type": "string"
               },
               "title": "Exclude",
               "type": "array"
            }
         },
         "required": [
            "hierarchy"
         ],
         "title": "CategoricalFilterSettings",
         "type": "object"
      },
      "MCapFilterSettings": {
         "additionalProperties": false,
         "description": "Specify the lower and upper bound for the market cap filter.\n\nBy default the bounds are infinite.",
         "properties": {
            "lower": {
               "default": 0.0,
               "description": "Lower bound of the cap filter in USD.",
               "examples": [
                  10000000000.0
               ],
               "minimum": 0,
               "title": "Lower",
               "type": "number"
            },
            "upper": {
               "default": 1e+20,
               "description": "Upper bound of the cap filter in USD.",
               "examples": [
                  1000000000000.0
               ],
               "exclusiveMinimum": 0.0,
               "minimum": 0,
               "title": "Upper",
               "type": "number"
            }
         },
         "title": "MCapFilterSettings",
         "type": "object"
      },
      "PortfolioOrganizerSettings": {
         "additionalProperties": false,
         "description": "Definition of where to source portfolio data from.\n\nSpecifies which portfolios to enable (from different sources).\nDifferent sources (e.g. uploaded portfolios) can provide the same portfolio\nidentifiers. These settings allow to specify which portfolios to enable from\nwhich sources.",
         "properties": {
            "enabled_portfolios": {
               "anyOf": [
                  {
                     "type": "string"
                  },
                  {
                     "additionalProperties": {
                        "type": "string"
                     },
                     "type": "object"
                  }
               ],
               "description": "The enabled portfolios from different sources. The key is the portfolio ID, and the value is the source (name of the underlying portfolio service). Pass a str to reference an entire portfolio source (e.g. all portfolios from an upload).",
               "title": "Enabled Portfolios"
            },
            "auxiliary_portfolios": {
               "additionalProperties": {
                  "type": "string"
               },
               "description": "Portfolios pulled in by fund-of-funds (FoF) cascade. Informational: always recomputed from ``enabled_portfolios`` plus the FoF graph at load time. Persisted as-is on save; any stale values are overwritten on the next normalize. The loader's effective enabled set is the union of ``enabled_portfolios`` and ``auxiliary_portfolios`` with user-explicit entries winning on key collision.",
               "title": "Auxiliary Portfolios",
               "type": "object"
            }
         },
         "required": [
            "enabled_portfolios"
         ],
         "title": "PortfolioOrganizerSettings",
         "type": "object"
      }
   },
   "additionalProperties": false
}

Config:
  • frozen: bool = True

  • extra: str = forbid

Fields:
  • calendar (bayesline.api._src.equity.calendar_settings.CalendarSettings)

  • categorical_filters (list[bayesline.api._src.equity.universe_settings.CategoricalFilterSettings])

  • id_type (str)

  • mcap_filter (bayesline.api._src.equity.universe_settings.MCapFilterSettings)

  • portfolio_filter (str | int | bayesline.api._src.equity.portfolio_settings.PortfolioOrganizerSettings | None)

Validators:
  • check_unique_filters » categorical_filters

  • validate_calendar » calendar

  • validate_categorical_filters » categorical_filters

  • validate_id_type » id_type

field id_type: IdType = 'bayesid'#

The default id type to use for the universe.

Validated by:
  • _strip_unknown_on_load

  • validate_id_type

field calendar: CalendarSettings [Optional]#

The calendar settings to use for the universe.

Validated by:
  • _strip_unknown_on_load

  • validate_calendar

field categorical_filters: list[CategoricalFilterSettings] [Optional]#

Filters that determine which categorical codes to include and exclude in the universe.

Validated by:
  • _strip_unknown_on_load

  • check_unique_filters

  • validate_categorical_filters

field portfolio_filter: Annotated[str | int | PortfolioOrganizerSettings | None, Field(description='The portfolio organizer settings to use as an underlying schema of portfolios. Universe will be filtered across the superset of all portfolios.', default=None)] = None#

The portfolio organizer settings to use as an underlying schema of portfolios. Universe will be filtered across the superset of all portfolios.

Validated by:
  • _strip_unknown_on_load

field mcap_filter: MCapFilterSettings [Optional]#

Filters that determine which market caps to include and exclude in the universe.

Validated by:
  • _strip_unknown_on_load

get_references() Sequence[str | int]#

Get references for this universe settings object.

Returns#

Sequence[str | int]

A sequence of references (strings or integers) for this universe settings object.

map_references(fn: Callable[[str | int], str | int]) Self#

Return a copy with every reference rewritten by fn.

The structural dual of get_references(): it applies fn to each reference this settings object holds — recursing into nested settings — and returns a rewritten copy, leaving all non-reference fields untouched. The base implementation has no references and returns self unchanged, mirroring get_references() (whose default is []); a subclass that overrides one must override the other in lockstep so the two stay consistent (a parity test enforces this).

fn is applied purely structurally — this object knows where its references live, not what a rewrite means. Any resolution context (e.g. a current user or a user directory) must be captured by the caller in the fn closure; the settings layer never learns of it.

Parameters#

fnCallable[[str | int], str | int]

Applied to each reference leaf. Must preserve a reference’s kind (a name stays a name, an id stays an id).

Returns#

Self

A copy with references rewritten.

property menu_type: type[UniverseSettingsMenu]#

Get the menu type for this settings object.

Returns#

type[M]

The menu type for this settings object.

validator check_unique_filters list[CategoricalFilterSettings]  »  categorical_filters#
validator validate_id_type str  »  id_type#
validator validate_calendar CalendarSettings  »  calendar#
validator validate_categorical_filters list[CategoricalFilterSettings]  »  categorical_filters#
describe(menu: UniverseSettingsMenu) str#

Describe the universe settings.

Parameters#

menuUniverseSettingsMenu

The settings menu to use to describe the settings.

Returns#

str

A description of the universe settings.