Skip to content

Changing ActionView._deque.maxlen in subclasses  #300

@glyg

Description

@glyg

Is your feature request related to a problem? Please describe.
I tried to lower the length of the ActionView _deque but could not find a way that would not result in a bug

Describe the solution you'd like

I would like to have a method to specify the ActionView queue length, ideally at the subclass definition level.

Describe alternatives you've considered
I tried:

  1. Changing the class attribute
class MyAction(ActionView):
    args = {
        "averages": fields.Integer(
            missing=20,
            example=20,
            description="Number of images to average over",
        )
    }
    # Marshal the response as a string representation of the array
    schema = fields.String()
    _deque = Deque(maxlen=10)
    ...

I believe this is rendered useless by the __init_subclass__ method.

  1. Overwritting the _deque at init:
class MyAction(ActionView):
    args = {
        "averages": fields.Integer(
            missing=20,
            example=20,
            description="Number of images to average over",
        )
    }
    # Marshal the response as a string representation of the array
    schema = fields.String()
    def __init__(self, *args, **kwargs):
        super().__init__(*args, **kwargs)
        self._deque = Deque(maxlen=10)
    ...

This solution is causing the request to hang.

I also tried subclassing __init_subclass__ (?) but to no avail.

Thanks again for your work, sorry for the spam today :)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions