rules:
  - id: missing-hash-with-eq
    patterns:
      - pattern-not-inside: |
          class A(...):
              ...
              def __hash__(self):
                  ...
              ...
              def __eq__(self, $O):
                  ...
      - pattern: |
          class A(...):
            ...
            def __eq__(self, $O): ...
            ...
    message: "Class `$A` has defined `__eq__` which means it should also have defined `__hash__`; "
    languages: [python]
    severity: WARNING
    metadata:
      category: best-practice
      technology:
        - python
