Source code for cplex.constant_class
# --------------------------------------------------------------------------
# File: constant_class.py
# ---------------------------------------------------------------------------
# Licensed Materials - Property of IBM
# 5725-A06 5725-A29 5724-Y48 5724-Y49 5724-Y54 5724-Y55 5655-Y21
# Copyright IBM Corporation 2008, 2024. All Rights Reserved.
#
# US Government Users Restricted Rights - Use, duplication or
# disclosure restricted by GSA ADP Schedule Contract with
# IBM Corp.
# --------------------------------------------------------------------------
"""A base class for classes that contain groups of constants."""
[docs]
class ConstantClass():
"""A base class for classes that contain groups of constants."""
[docs]
def __init__(self):
"""Creates a new ConstantClass.
This constructor is not meant to be used externally.
"""
self.__constant_map = None
def _get_constant_map(self):
return {key: value
for key, value
in self.__class__.__dict__.items()
if not key.startswith("_")}
[docs]
def __getitem__(self, item):
"""Converts a constant to a string."""
if self.__constant_map is None:
self.__constant_map = self._get_constant_map()
for name, value in self.__constant_map.items():
if item == value:
return name
raise KeyError(item)
[docs]
def __iter__(self):
"""Iterate over the constants in this class."""
if self.__constant_map is None:
self.__constant_map = self._get_constant_map()
for value in self.__constant_map.values():
yield value