aspen_pysys.base.factory

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

Interface for HYSYS object factory methods.

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

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.HysysCase, obj: HysysObjReadable) -> aspen_pysys.base.HysysNamedObject:
44    @staticmethod
45    @abstractmethod
46    def get_named_obj(connection: HysysCase, obj: HysysObjReadable) -> HysysNamedObject:
47        """Get a named object.
48
49        Args:
50            connection (HysysCase): Simulation case
51            obj (HysysObjReadable): Raw HYSYS object
52
53        Returns:
54            HysysNamedObject: Named object
55        """

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

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:
75    @staticmethod
76    @abstractmethod
77    def get_func(
78        attr: str,
79        parent: HysysObject,
80    ) -> HysysFunction:
81        """Get a function.
82
83        Args:
84            attr (str): Attribute name
85            parent (HysysObject): Parent of function
86
87        Returns:
88            HysysFunction: Function
89        """

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

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[[aspen_pysys.base.HysysObject], ~T] = <function HysysObjFactory.<lambda>>) -> aspen_pysys.base.primitive.HysysDictionary[~T]:
109    @staticmethod
110    @abstractmethod
111    def get_dict[T: HysysObject](
112        attr: str,
113        parent: HysysObject,
114        mapper: Callable[[HysysObject], T] = lambda obj: obj,
115    ) -> HysysDictionary[T]:
116        """Get a dictionary.
117
118        Args:
119            attr (str): Attribute name
120            parent (HysysObject): Parent of dictionaruy
121            mapper (Callable[[HysysObject], T], optional): Mapper function to map objects to specific types. Defaults to lambda obj: obj.
122
123        Returns:
124            HysysDictionary[T]: Dictionary
125        """  # 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):
31class HysysObjManager(HysysObjFactory):
32    """Helper class that constructs the right type of HysysObject."""
33
34    @override
35    @staticmethod
36    def get_obj(connection: HysysCase, obj: HysysObjReadable) -> HysysObject:
37        return HysysObject(connection, obj)
38
39    @override
40    @staticmethod
41    def get_named_obj(connection: HysysCase, obj: HysysObjReadable) -> HysysNamedObject:
42        return HysysNamedObject(connection, obj)
43
44    @override
45    @staticmethod
46    def get_const[T](
47        attr: str,
48        parent: HysysObject,
49        typ: type[T],
50    ) -> HysysConstant[T]:
51        return HysysConstant(attr, parent, typ)
52
53    @override
54    @staticmethod
55    def get_func(
56        attr: str,
57        parent: HysysObject,
58    ) -> HysysFunction:
59        return HysysFunction(attr, parent)
60
61    @override
62    @staticmethod
63    def get_array(
64        attr: str,
65        parent: HysysObject,
66        count: int | None,
67    ) -> HysysArray:
68        return HysysArray(attr, parent, count)
69
70    @override
71    @staticmethod
72    def get_dict[T: HysysObject](
73        attr: str,
74        parent: HysysObject,
75        mapper: Callable[[HysysObject], T] = lambda obj: obj,
76    ) -> HysysDictionary[T]:
77        return HysysDictionary[T](attr, parent, mapper)

Helper class that constructs the right type of HysysObject.

@override
@staticmethod
def get_obj( connection: aspen_pysys.case.HysysCase, obj: HysysObjReadable) -> aspen_pysys.base.HysysObject:
34    @override
35    @staticmethod
36    def get_obj(connection: HysysCase, obj: HysysObjReadable) -> HysysObject:
37        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.HysysCase, obj: HysysObjReadable) -> aspen_pysys.base.HysysNamedObject:
39    @override
40    @staticmethod
41    def get_named_obj(connection: HysysCase, obj: HysysObjReadable) -> HysysNamedObject:
42        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]) -> aspen_pysys.base.primitive.HysysConstant[~T]:
44    @override
45    @staticmethod
46    def get_const[T](
47        attr: str,
48        parent: HysysObject,
49        typ: type[T],
50    ) -> HysysConstant[T]:
51        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:
53    @override
54    @staticmethod
55    def get_func(
56        attr: str,
57        parent: HysysObject,
58    ) -> HysysFunction:
59        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:
61    @override
62    @staticmethod
63    def get_array(
64        attr: str,
65        parent: HysysObject,
66        count: int | None,
67    ) -> HysysArray:
68        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[[aspen_pysys.base.HysysObject], ~T] = <function HysysObjManager.<lambda>>) -> aspen_pysys.base.primitive.HysysDictionary[~T]:
70    @override
71    @staticmethod
72    def get_dict[T: HysysObject](
73        attr: str,
74        parent: HysysObject,
75        mapper: Callable[[HysysObject], T] = lambda obj: obj,
76    ) -> HysysDictionary[T]:
77        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