1
0
Fork 0
platypush/platypush/entities/procedures.py

43 lines
904 B
Python
Raw Normal View History

2024-08-13 22:27:10 +02:00
import logging
from sqlalchemy import (
Column,
Enum,
ForeignKey,
Integer,
JSON,
String,
)
from platypush.common.db import is_defined
from . import Entity
logger = logging.getLogger(__name__)
if not is_defined('procedure'):
class Procedure(Entity):
"""
Models a procedure entity.
"""
__tablename__ = 'procedure'
id = Column(
Integer, ForeignKey('entity.id', ondelete='CASCADE'), primary_key=True
)
args = Column(JSON, nullable=False, default=[])
procedure_type = Column(
Enum('python', 'config', name='procedure_type'), nullable=False
)
module = Column(String)
source = Column(String)
line = Column(Integer)
2024-08-13 22:27:10 +02:00
__table_args__ = {'keep_existing': True}
__mapper_args__ = {
'polymorphic_identity': __tablename__,
}