Skip to content

Model comparison syntax #42

@andportnoy

Description

@andportnoy

Want to compare grids using grid1 | grid2 | grid3, here a stub with a demo:

class Model:
    
    def __init__(self, name):
        self.name = name
        
    def __or__(self, other):
        return ModelComparison([self, other])


class ModelComparison:
    
    def __init__(self, models):
        self.models = models
    
    def __or__(self, other):
        if isinstance(other, Model):
            self.add([other])
        if isinstance(other, self.__class__):
            self.add(other.models)
        return self
    
    def add(self, models):
        self.models += models
        
    def names(self):
        return [model.name for model in self.models]
    
    def __repr__(self):
        return f'Model comparison of models: {self.names()}'

m1 = Model('m1')
m2 = Model('m2')
m3 = Model('m3')
m4 = Model('m4')

m1 | m2 | m3 | m4

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions