futurehouse-client 0.3.18.dev186__py3-none-any.whl → 0.3.19__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,12 +1,22 @@
1
1
  from .clients.job_client import JobClient, JobNames
2
- from .clients.rest_client import PQATaskResponse, TaskResponse, TaskResponseVerbose
3
2
  from .clients.rest_client import RestClient as FutureHouseClient
3
+ from .models.app import (
4
+ FinchTaskResponse,
5
+ PhoenixTaskResponse,
6
+ PQATaskResponse,
7
+ TaskRequest,
8
+ TaskResponse,
9
+ TaskResponseVerbose,
10
+ )
4
11
 
5
12
  __all__ = [
13
+ "FinchTaskResponse",
6
14
  "FutureHouseClient",
7
15
  "JobClient",
8
16
  "JobNames",
9
17
  "PQATaskResponse",
18
+ "PhoenixTaskResponse",
19
+ "TaskRequest",
10
20
  "TaskResponse",
11
21
  "TaskResponseVerbose",
12
22
  ]
@@ -1,12 +1,11 @@
1
1
  from .job_client import JobClient, JobNames
2
- from .rest_client import PQATaskResponse, TaskResponse, TaskResponseVerbose
3
2
  from .rest_client import RestClient as FutureHouseClient
3
+ from .rest_client import TaskResponse, TaskResponseVerbose
4
4
 
5
5
  __all__ = [
6
6
  "FutureHouseClient",
7
7
  "JobClient",
8
8
  "JobNames",
9
- "PQATaskResponse",
10
9
  "TaskResponse",
11
10
  "TaskResponseVerbose",
12
11
  ]
@@ -8,7 +8,13 @@ from aviary.env import Frame
8
8
  from pydantic import BaseModel
9
9
  from tenacity import before_sleep_log, retry, stop_after_attempt, wait_exponential
10
10
 
11
- from futurehouse_client.models.app import Stage
11
+ from futurehouse_client.models.app import (
12
+ FinchTaskResponse,
13
+ PhoenixTaskResponse,
14
+ PQATaskResponse,
15
+ Stage,
16
+ TaskResponse,
17
+ )
12
18
  from futurehouse_client.models.rest import (
13
19
  FinalEnvironmentRequest,
14
20
  StoreAgentStatePostRequest,
@@ -31,6 +37,19 @@ class JobNames(StrEnum):
31
37
  DUMMY = "job-futurehouse-dummy-env"
32
38
  PHOENIX = "job-futurehouse-phoenix"
33
39
  FINCH = "job-futurehouse-data-analysis-crow-high"
40
+ CHIMP = "job-futurehouse-chimp"
41
+
42
+ @classmethod
43
+ def _get_response_mapping(cls) -> dict[str, type[TaskResponse]]:
44
+ return {
45
+ cls.CROW: PQATaskResponse,
46
+ cls.FALCON: PQATaskResponse,
47
+ cls.OWL: PQATaskResponse,
48
+ cls.CHIMP: PQATaskResponse,
49
+ cls.PHOENIX: PhoenixTaskResponse,
50
+ cls.FINCH: FinchTaskResponse,
51
+ cls.DUMMY: TaskResponse,
52
+ }
34
53
 
35
54
  @classmethod
36
55
  def from_stage(cls, job_name: str, stage: Stage | None = None) -> str:
@@ -52,6 +71,13 @@ class JobNames(StrEnum):
52
71
  f"Invalid job name: {job_name}. \nOptions are: {', '.join([name.name for name in cls])}"
53
72
  ) from e
54
73
 
74
+ @staticmethod
75
+ def get_response_object_from_job(job_name: str) -> type[TaskResponse]:
76
+ return JobNames._get_response_mapping()[job_name]
77
+
78
+ def get_response_object(self) -> type[TaskResponse]:
79
+ return self._get_response_mapping()[self.name]
80
+
55
81
 
56
82
  class JobClient:
57
83
  REQUEST_TIMEOUT: ClassVar[float] = 30.0 # sec