Skip to content

Commit 10670ef

Browse files
slancer50shacharl
andauthored
Feature/get jobs (#132)
* Refactor imports: replace wildcard aapi imports with explicit module imports * feat: add useArrayFormat support to get_deployed_folders_new_with_http_info * feat: add dynamic deserialization mechanism using cattrs for @attrs-based AAPI models - Automatically discovers all @attrs classes in the aapi module - Registers structure hooks per class to enable nested and dynamic deserialization - Builds and uses a shared JOB_TYPE_MAP for resolving job subclasses from _type - Introduces a shared Converter instance for consistent usage * feat: add get_jobs method to wrap AAPI deploy jobs::get into Workflow * add init file * test: add cattrs to test requirements --------- Co-authored-by: shacharl <shachar_lancer@bmc.il>
1 parent 8fe8324 commit 10670ef

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

82 files changed

+472
-92
lines changed

requirements_test.txt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,4 +2,5 @@
22
pytest
33
keyring
44
coverage
5-
graphviz
5+
graphviz
6+
cattrs

src/aapi/__init__.py

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
from aapi.deleteevents import DeleteEvents
1212
from aapi.do import Do
1313
from aapi.event import Event, EventAdd, EventDelete, EventIn, EventOut, EventOutAdd, EventOutDelete
14-
from aapi.flow_ import Flow_
14+
from aapi.flow import Flow
1515
from aapi.basefolder import SimpleFolder, Folder
1616
from aapi.folderclientdata import FolderClientData
1717
from aapi.businessfield import BusinessField
@@ -76,4 +76,13 @@
7676

7777

7878
from aapi.integration_factory.jobs import *
79-
from aapi.integration_factory.connection_profiles import *
79+
from aapi.integration_factory.connection_profiles import *
80+
81+
# Initialize and configure the shared Converter instance for the entire project.
82+
# This will ensure that custom deserialization (structure hooks) is available globally.
83+
# from aapi.utils.converter import converter
84+
85+
from aapi.utils.converter import initialize_converter
86+
87+
# Initialize the global converter hooks
88+
initialize_converter()

src/aapi/action.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
import attrs
44
import typing
55
import enum
6-
from aapi import *
6+
from aapi.bases import AAPIObject
77

88

99
@attrs.define

src/aapi/addevents.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,9 @@
55
import enum
66
import random
77
import string
8-
from aapi import *
98

9+
from aapi.bases import AAPIObject
10+
from aapi.event import EventOutAdd
1011

1112
@attrs.define
1213
class AddEvents(AAPIObject):

src/aapi/basefolder.py

Lines changed: 17 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,23 @@
33
import attrs
44
import typing
55
import enum
6-
from aapi import *
6+
import typing
77

8+
import attrs
9+
from aapi.addevents import AddEvents
10+
from aapi.bases import AAPIJob, AAPIObject
11+
from aapi.calendar import CalendarRuleBased
12+
from aapi.deleteevents import DeleteEvents
13+
from aapi.event import Event
14+
from aapi.folderclientdata import FolderClientData
15+
from aapi.folderjobbase import SubFolder
16+
from aapi.ifbase import IfBase
17+
from aapi.job import Job
18+
from aapi.notify import Notify
19+
from aapi.resource import ResourceLock
20+
from aapi.tag import TagGlobal
21+
from aapi.waitforevents import WaitForEvents
22+
from aapi.flow import Flow
823

924
@attrs.define
1025
class SimpleFolder(AAPIObject):
@@ -28,7 +43,7 @@ class OrderMethod(enum.Enum):
2843
business_fields: typing.List[typing.Dict[str,str]] = attrs.field(
2944
kw_only=True, metadata={'_aapi_repr_': 'BusinessFields'}, factory=list)
3045
job_list: typing.List[Job] = attrs.field(kw_only=True, factory=list, metadata={
31-
'_abstract_aapi_container_': True})
46+
'_abstract_aapi_container_': True, '_aapi_alias_': 'Jobs'})
3247
flow_list: typing.List[Flow] = attrs.field(kw_only=True, factory=list, metadata={
3348
'_abstract_aapi_container_': True})
3449
folder_client_data_list: typing.List[FolderClientData] = attrs.field(

src/aapi/businessfield.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
import attrs
44
import typing
55
import enum
6-
from aapi import *
6+
from aapi.bases import AAPIObject
77

88

99
@attrs.define

src/aapi/businessparameter.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,8 @@
33
import attrs
44
import typing
55
import enum
6-
from aapi import *
6+
from aapi.bases import AAPIObject
7+
from aapi.sitestandardpossiblevalue import SiteStandardPossibleValue
78

89

910
@attrs.define

src/aapi/calendar.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,9 @@
33
import attrs
44
import typing
55
import enum
6-
from aapi import *
6+
from aapi.bases import AAPIObject
7+
from aapi.period import Period
8+
from aapi.year import Year
79

810
@attrs.define
911
class Calendar(AAPIObject):

src/aapi/calendarfields.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,7 @@
33
import attrs
44
import typing
55
import enum
6-
from aapi import *
7-
6+
from aapi.bases import AAPIObject
87

98
@attrs.define
109
class CalendarFields(AAPIObject):

src/aapi/calendarkey.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,7 @@
33
import attrs
44
import typing
55
import enum
6-
from aapi import *
7-
6+
from aapi.bases import AAPIObject
87

98
@attrs.define
109
class CalendarKey(AAPIObject):

0 commit comments

Comments
 (0)