Source code for onetick.py.core._source.symbol
from onetick.py.core._source._symbol_param_column import _SymbolParamColumn
[docs]class SymbolType:
    def __init__(self):
        """
        You can get symbol name and symbol parameters with this class.
        Examples
        --------
        >>> symbols = otp.Symbols('SOME_DB')
        >>> symbols['PARAM'] = 'PAM'
        >>> ticks = otp.DataSource('SOME_DB', tick_type='TT')
        >>> ticks['SYMBOL_PARAM'] = ticks.Symbol.PARAM
        >>> ticks['SYMBOL_NAME'] = ticks.Symbol.name
        >>> ticks = otp.merge([ticks], symbols=symbols)
        >>> ticks()
                             Time  X SYMBOL_PARAM SYMBOL_NAME
        0 2003-12-01 00:00:00.000  1          PAM          S1
        1 2003-12-01 00:00:00.000 -3          PAM          S2
        2 2003-12-01 00:00:00.001  2          PAM          S1
        3 2003-12-01 00:00:00.001 -2          PAM          S2
        4 2003-12-01 00:00:00.002  3          PAM          S1
        5 2003-12-01 00:00:00.002 -1          PAM          S2
        See also
        --------
        :ref:`Databases, symbols, and tick types <symbols_concept>`
        :ref:`Symbol Parameter Objects`
        """
        self._name = _SymbolParamColumn("_SYMBOL_NAME", str)
    @property
    def name(self):
        """
        Get symbol name.
        Returns
        -------
        _SymbolParamColumn
        Examples
        --------
        >>> symbols = otp.Symbols('SOME_DB')
        >>> ticks = otp.DataSource('SOME_DB', tick_type='TT')
        >>> ticks['SYMBOL_NAME'] = ticks.Symbol.name
        >>> ticks = otp.merge([ticks], symbols=symbols)
        >>> ticks()
                             Time  X SYMBOL_NAME
        0 2003-12-01 00:00:00.000  1          S1
        1 2003-12-01 00:00:00.000 -3          S2
        2 2003-12-01 00:00:00.001  2          S1
        3 2003-12-01 00:00:00.001 -2          S2
        4 2003-12-01 00:00:00.002  3          S1
        5 2003-12-01 00:00:00.002 -1          S2
        """
        return self._name
[docs]    def __getattr__(self, item):
        """
        Get symbol parameter by name.
        Returns
        -------
        _SymbolParamColumn
        Examples
        --------
        >>> symbols = otp.Symbols('SOME_DB')
        >>> symbols['PARAM'] = 'PAM'
        >>> ticks = otp.DataSource('SOME_DB', tick_type='TT')
        >>> ticks['SYMBOL_PARAM'] = ticks.Symbol.PARAM
        >>> ticks = otp.merge([ticks], symbols=symbols)
        >>> ticks()
                             Time  X SYMBOL_PARAM
        0 2003-12-01 00:00:00.000  1          PAM
        1 2003-12-01 00:00:00.000 -3          PAM
        2 2003-12-01 00:00:00.001  2          PAM
        3 2003-12-01 00:00:00.001 -2          PAM
        4 2003-12-01 00:00:00.002  3          PAM
        5 2003-12-01 00:00:00.002 -1          PAM
        """
        return _SymbolParamColumn(f"_SYMBOL_PARAM.{item}", str)  
Symbol = SymbolType()  # noqa mypy fix