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

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions