Skip to content
Snippets Groups Projects
documents.py 1.1 KiB
Newer Older
  • Learn to ignore specific revisions
  • """Classes for JSON documents used in upstream communication."""
    
    import attr
    
    
    @attr.s
    class Activity:
        """Activity on a task."""
    
    
        activity = attr.ib(default='', validator=attr.validators.instance_of(str))
        current_command_idx = attr.ib(default=0, validator=attr.validators.instance_of(int))
        task_progress_percentage = attr.ib(default=0, validator=attr.validators.instance_of(int))
        command_progress_percentage = attr.ib(default=0, validator=attr.validators.instance_of(int))
    
    
    
    @attr.s
    class MayKeepRunningResponse:
        """Response from the /may-i-run/{task-id} endpoint"""
    
    
        may_keep_running = attr.ib(
            validator=attr.validators.instance_of(bool))
        reason = attr.ib(
            default=None,
            validator=attr.validators.optional(attr.validators.instance_of(str)))
        status_requested = attr.ib(
            default=None,
            validator=attr.validators.optional(attr.validators.instance_of(str)))
    
    
    @attr.s
    class StatusChangeRequest:
        """Response from the /task endpoint when we're requested to change our status"""
    
        status_requested = attr.ib(validator=attr.validators.instance_of(str))