aspen_pysys.base.factory

1# Copyright 2026 Hariidaran Tamilmaran
2
3from aspen_pysys.base.factory.obj_factory import HysysObjFactory
4from aspen_pysys.base.factory.obj_manager import HysysObjManager
5
6__all__ = ["HysysObjFactory", "HysysObjManager"]
class HysysObjFactory(abc.ABC):
 26class HysysObjFactory(ABC):
 27    """Interface for HYSYS object factory methods."""
 28
 29    @staticmethod
 30    @abstractmethod
 31    def get_obj(connection: HysysCase, obj: HysysObjReadable) -> HysysObject:
 32        """Get an object.
 33
 34        Args:
 35            connection (HysysCase): Simulation case
 36            obj (HysysObjReadable): Raw HYSYS object
 37
 38        Returns:
 39            HysysObject: Object
 40        """
 41
 42    @staticmethod
 43    @abstractmethod
 44    def get_named_obj(connection: HysysCase, obj: HysysObjReadable) -> HysysNamedObject:
 45        """Get a named object.
 46
 47        Args:
 48            connection (HysysCase): Simulation case
 49            obj (HysysObjReadable): Raw HYSYS object
 50
 51        Returns:
 52            HysysNamedObject: Named object
 53        """
 54
 55    @staticmethod
 56    @abstractmethod
 57    def get_const[T](
 58        attr: str,
 59        parent: HysysObject,
 60        typ: type[T],
 61    ) -> HysysConstant[T]:
 62        """Get a constant object.
 63
 64        Args:
 65            attr (str): Attribute name
 66            parent (HysysObject): Parent of constant
 67            typ (type[T]): Type of the HYSYS constant for data validation
 68
 69        Returns:
 70            HysysConstant[T]: Constant object
 71        """
 72
 73    @staticmethod
 74    @abstractmethod
 75    def get_func(
 76        attr: str,
 77        parent: HysysObject,
 78    ) -> HysysFunction:
 79        """Get a function.
 80
 81        Args:
 82            attr (str): Attribute name
 83            parent (HysysObject): Parent of function
 84
 85        Returns:
 86            HysysFunction: Function
 87        """
 88
 89    @staticmethod
 90    @abstractmethod
 91    def get_array(
 92        attr: str,
 93        parent: HysysObject,
 94        count: int | None,
 95    ) -> HysysArray:
 96        """Get an array.
 97
 98        Args:
 99            attr (str): Attribute name
100            parent (HysysObject): Parent of array
101            count (int): Length of array
102
103        Returns:
104            HysysArray: Array
105        """
106
107    @staticmethod
108    @abstractmethod
109    def get_dict[T: HysysObject](
110        attr: str,
111        parent: HysysObject,
112        mapper: Callable[[HysysObject], T] = lambda obj: obj,
113    ) -> HysysDictionary[T]:
114        """Get a dictionary.
115
116        Args:
117            attr (str): Attribute name
118            parent (HysysObject): Parent of dictionaruy
119            mapper (Callable[[HysysObject], T], optional): Mapper function to map objects to specific types. Defaults to lambda obj: obj.
120
121        Returns:
122            HysysDictionary[T]: Dictionary
123        """  # noqa: E501

Interface for HYSYS object factory methods.

@staticmethod
@abstractmethod
def get_obj( connection: aspen_pysys.case.hysys_case.HysysCase, obj: HysysObjReadable) -> aspen_pysys.base.HysysObject:
29    @staticmethod
30    @abstractmethod
31    def get_obj(connection: HysysCase, obj: HysysObjReadable) -> HysysObject:
32        """Get an object.
33
34        Args:
35            connection (HysysCase): Simulation case
36            obj (HysysObjReadable): Raw HYSYS object
37
38        Returns:
39            HysysObject: Object
40        """

Get an object.

Arguments:
  • connection (HysysCase): Simulation case
  • obj (HysysObjReadable): Raw HYSYS object
Returns:

HysysObject: Object

@staticmethod
@abstractmethod
def get_named_obj( connection: aspen_pysys.case.hysys_case.HysysCase, obj: HysysObjReadable) -> aspen_pysys.base.HysysNamedObject:
42    @staticmethod
43    @abstractmethod
44    def get_named_obj(connection: HysysCase, obj: HysysObjReadable) -> HysysNamedObject:
45        """Get a named object.
46
47        Args:
48            connection (HysysCase): Simulation case
49            obj (HysysObjReadable): Raw HYSYS object
50
51        Returns:
52            HysysNamedObject: Named object
53        """

Get a named object.

Arguments:
  • connection (HysysCase): Simulation case
  • obj (HysysObjReadable): Raw HYSYS object
Returns:

HysysNamedObject: Named object

@staticmethod
@abstractmethod
def get_const( attr: str, parent: aspen_pysys.base.HysysObject, typ: 'type[T]') -> 'HysysConstant[T]':
55    @staticmethod
56    @abstractmethod
57    def get_const[T](
58        attr: str,
59        parent: HysysObject,
60        typ: type[T],
61    ) -> HysysConstant[T]:
62        """Get a constant object.
63
64        Args:
65            attr (str): Attribute name
66            parent (HysysObject): Parent of constant
67            typ (type[T]): Type of the HYSYS constant for data validation
68
69        Returns:
70            HysysConstant[T]: Constant object
71        """

Get a constant object.

Arguments:
  • attr (str): Attribute name
  • parent (HysysObject): Parent of constant
  • typ (type[T]): Type of the HYSYS constant for data validation
Returns:

HysysConstant[T]: Constant object

@staticmethod
@abstractmethod
def get_func( attr: str, parent: aspen_pysys.base.HysysObject) -> aspen_pysys.base.primitive.HysysFunction:
73    @staticmethod
74    @abstractmethod
75    def get_func(
76        attr: str,
77        parent: HysysObject,
78    ) -> HysysFunction:
79        """Get a function.
80
81        Args:
82            attr (str): Attribute name
83            parent (HysysObject): Parent of function
84
85        Returns:
86            HysysFunction: Function
87        """

Get a function.

Arguments:
  • attr (str): Attribute name
  • parent (HysysObject): Parent of function
Returns:

HysysFunction: Function

@staticmethod
@abstractmethod
def get_array( attr: str, parent: aspen_pysys.base.HysysObject, count: int | None) -> aspen_pysys.base.primitive.HysysArray:
 89    @staticmethod
 90    @abstractmethod
 91    def get_array(
 92        attr: str,
 93        parent: HysysObject,
 94        count: int | None,
 95    ) -> HysysArray:
 96        """Get an array.
 97
 98        Args:
 99            attr (str): Attribute name
100            parent (HysysObject): Parent of array
101            count (int): Length of array
102
103        Returns:
104            HysysArray: Array
105        """

Get an array.

Arguments:
  • attr (str): Attribute name
  • parent (HysysObject): Parent of array
  • count (int): Length of array
Returns:

HysysArray: Array

@staticmethod
@abstractmethod
def get_dict( attr: str, parent: aspen_pysys.base.HysysObject, mapper: 'Callable[[HysysObject], T]' = <function HysysObjFactory.<lambda>>) -> 'HysysDictionary[T]':
107    @staticmethod
108    @abstractmethod
109    def get_dict[T: HysysObject](
110        attr: str,
111        parent: HysysObject,
112        mapper: Callable[[HysysObject], T] = lambda obj: obj,
113    ) -> HysysDictionary[T]:
114        """Get a dictionary.
115
116        Args:
117            attr (str): Attribute name
118            parent (HysysObject): Parent of dictionaruy
119            mapper (Callable[[HysysObject], T], optional): Mapper function to map objects to specific types. Defaults to lambda obj: obj.
120
121        Returns:
122            HysysDictionary[T]: Dictionary
123        """  # noqa: E501

Get a dictionary.

Arguments:
  • attr (str): Attribute name
  • parent (HysysObject): Parent of dictionaruy
  • mapper (Callable[[HysysObject], T], optional): Mapper function to map objects to specific types. Defaults to lambda obj: obj.
Returns:

HysysDictionary[T]: Dictionary

class HysysObjManager(aspen_pysys.base.factory.HysysObjFactory):
29class HysysObjManager(HysysObjFactory):
30    """Helper class that constructs the right type of HysysObject."""
31
32    @override
33    @staticmethod
34    def get_obj(connection: HysysCase, obj: HysysObjReadable) -> HysysObject:
35        return HysysObject(connection, obj)
36
37    @override
38    @staticmethod
39    def get_named_obj(connection: HysysCase, obj: HysysObjReadable) -> HysysNamedObject:
40        return HysysNamedObject(connection, obj)
41
42    @override
43    @staticmethod
44    def get_const[T](
45        attr: str,
46        parent: HysysObject,
47        typ: type[T],
48    ) -> HysysConstant[T]:
49        return HysysConstant(attr, parent, typ)
50
51    @override
52    @staticmethod
53    def get_func(
54        attr: str,
55        parent: HysysObject,
56    ) -> HysysFunction:
57        return HysysFunction(attr, parent)
58
59    @override
60    @staticmethod
61    def get_array(
62        attr: str,
63        parent: HysysObject,
64        count: int | None,
65    ) -> HysysArray:
66        return HysysArray(attr, parent, count)
67
68    @override
69    @staticmethod
70    def get_dict[T: HysysObject](
71        attr: str,
72        parent: HysysObject,
73        mapper: Callable[[HysysObject], T] = lambda obj: obj,
74    ) -> HysysDictionary[T]:
75        return HysysDictionary[T](attr, parent, mapper)

Helper class that constructs the right type of HysysObject.

@override
@staticmethod
def get_obj( connection: aspen_pysys.case.hysys_case.HysysCase, obj: HysysObjReadable) -> aspen_pysys.base.HysysObject:
32    @override
33    @staticmethod
34    def get_obj(connection: HysysCase, obj: HysysObjReadable) -> HysysObject:
35        return HysysObject(connection, obj)

Get an object.

Arguments:
  • connection (HysysCase): Simulation case
  • obj (HysysObjReadable): Raw HYSYS object
Returns:

HysysObject: Object

@override
@staticmethod
def get_named_obj( connection: aspen_pysys.case.hysys_case.HysysCase, obj: HysysObjReadable) -> aspen_pysys.base.HysysNamedObject:
37    @override
38    @staticmethod
39    def get_named_obj(connection: HysysCase, obj: HysysObjReadable) -> HysysNamedObject:
40        return HysysNamedObject(connection, obj)

Get a named object.

Arguments:
  • connection (HysysCase): Simulation case
  • obj (HysysObjReadable): Raw HYSYS object
Returns:

HysysNamedObject: Named object

@override
@staticmethod
def get_const( attr: str, parent: aspen_pysys.base.HysysObject, typ: 'type[T]') -> 'HysysConstant[T]':
42    @override
43    @staticmethod
44    def get_const[T](
45        attr: str,
46        parent: HysysObject,
47        typ: type[T],
48    ) -> HysysConstant[T]:
49        return HysysConstant(attr, parent, typ)

Get a constant object.

Arguments:
  • attr (str): Attribute name
  • parent (HysysObject): Parent of constant
  • typ (type[T]): Type of the HYSYS constant for data validation
Returns:

HysysConstant[T]: Constant object

@override
@staticmethod
def get_func( attr: str, parent: aspen_pysys.base.HysysObject) -> aspen_pysys.base.primitive.HysysFunction:
51    @override
52    @staticmethod
53    def get_func(
54        attr: str,
55        parent: HysysObject,
56    ) -> HysysFunction:
57        return HysysFunction(attr, parent)

Get a function.

Arguments:
  • attr (str): Attribute name
  • parent (HysysObject): Parent of function
Returns:

HysysFunction: Function

@override
@staticmethod
def get_array( attr: str, parent: aspen_pysys.base.HysysObject, count: int | None) -> aspen_pysys.base.primitive.HysysArray:
59    @override
60    @staticmethod
61    def get_array(
62        attr: str,
63        parent: HysysObject,
64        count: int | None,
65    ) -> HysysArray:
66        return HysysArray(attr, parent, count)

Get an array.

Arguments:
  • attr (str): Attribute name
  • parent (HysysObject): Parent of array
  • count (int): Length of array
Returns:

HysysArray: Array

@override
@staticmethod
def get_dict( attr: str, parent: aspen_pysys.base.HysysObject, mapper: 'Callable[[HysysObject], T]' = <function HysysObjManager.<lambda>>) -> 'HysysDictionary[T]':
68    @override
69    @staticmethod
70    def get_dict[T: HysysObject](
71        attr: str,
72        parent: HysysObject,
73        mapper: Callable[[HysysObject], T] = lambda obj: obj,
74    ) -> HysysDictionary[T]:
75        return HysysDictionary[T](attr, parent, mapper)

Get a dictionary.

Arguments:
  • attr (str): Attribute name
  • parent (HysysObject): Parent of dictionaruy
  • mapper (Callable[[HysysObject], T], optional): Mapper function to map objects to specific types. Defaults to lambda obj: obj.
Returns:

HysysDictionary[T]: Dictionary