docs: def subsets_changed(last_observed_subsets, subsets):
          """
          >>> Kubernetes.subsets_changed([], [])
          False
          >>> Kubernetes.subsets_changed([], [k8s_client.V1EndpointSubset()])
          True
          >>> s1 = [k8s_client.V1EndpointSubset(addresses=[k8s_client.V1EndpointAddress(ip='1.2.3.4')])]
          >>> s2 = [k8s_client.V1EndpointSubset(addresses=[k8s_client.V1EndpointAddress(ip='1.2.3.5')])]
          >>> Kubernetes.subsets_changed(s1, s2)
          True
          >>> a = [k8s_client.V1EndpointAddress(ip='1.2.3.4')]
          >>> s1 = [k8s_client.V1EndpointSubset(addresses=a, ports=[k8s_client.V1EndpointPort(protocol='TCP', port=1)])]
          >>> s2 = [k8s_client.V1EndpointSubset(addresses=a, ports=[k8s_client.V1EndpointPort(port=5432)])]
          >>> Kubernetes.subsets_changed(s1, s2)
          True
          >>> p1 = k8s_client.V1EndpointPort(name='port1', port=1)
          >>> p2 = k8s_client.V1EndpointPort(name='port2', port=2)
          >>> p3 = k8s_client.V1EndpointPort(name='port3', port=3)
          >>> s1 = [k8s_client.V1EndpointSubset(addresses=a, ports=[p1, p2])]
          >>> s2 = [k8s_client.V1EndpointSubset(addresses=a, ports=[p2, p3])]
          >>> Kubernetes.subsets_changed(s1, s2)
          True
          >>> s2 = [k8s_client.V1EndpointSubset(addresses=a, ports=[p2, p1])]
          >>> Kubernetes.subsets_changed(s1, s2)
          False
          """
          if len(last_observed_subsets) != len(subsets):
              return True
          if subsets == []:
              return False
          if len(last_observed_subsets[0].addresses or []) != 1 or \
                  last_observed_subsets[0].addresses[0].ip != subsets[0].addresses[0].ip or \
                  len(last_observed_subsets[0].ports) != len(subsets[0].ports):
              return True
          if len(subsets[0].ports) == 1:
              return not Kubernetes.compare_ports(last_observed_subsets[0].ports[0], subsets[0].ports[0])
          observed_ports = {p.name: p for p in last_observed_subsets[0].ports}
          for p in subsets[0].ports:
              if p.name not in observed_ports or not Kubernetes.compare_ports(p, observed_ports.pop(p.name)):
                  return True
          return False