26 lines
465 B
Python
26 lines
465 B
Python
from functools import lru_cache
|
|
|
|
class Symbol:
|
|
_name: str
|
|
|
|
def __init__(self, name):
|
|
self._name = name
|
|
|
|
@property
|
|
def name(self):
|
|
return self._name
|
|
|
|
@lru_cache(maxsize=None)
|
|
def symbol(name: str) -> Symbol:
|
|
return Symbol(name)
|
|
|
|
def symbolName(sym: Symbol) -> str:
|
|
# return sym.name[1:]
|
|
return sym.name
|
|
|
|
def symbolKey(sym: Symbol) -> str:
|
|
return sym.name
|
|
|
|
def isSymbol(obj) -> bool:
|
|
return isinstance(obj, Symbol)
|