Skip to content

Commit 4a62206

Browse files
stainless-botrattrayalex
authored andcommitted
feat(client)!: restructure some methods (#80)
1 parent 6680988 commit 4a62206

19 files changed

+154
-180
lines changed

api.md

+73-73
Large diffs are not rendered by default.

src/finch/_client.py

+4-4
Original file line numberDiff line numberDiff line change
@@ -45,8 +45,8 @@
4545

4646

4747
class Finch(SyncAPIClient):
48-
ats: resources.ATS
4948
hris: resources.HRIS
49+
ats: resources.ATS
5050
providers: resources.Providers
5151
account: resources.Account
5252

@@ -112,8 +112,8 @@ def __init__(
112112
_strict_response_validation=_strict_response_validation,
113113
)
114114

115-
self.ats = resources.ATS(self)
116115
self.hris = resources.HRIS(self)
116+
self.ats = resources.ATS(self)
117117
self.providers = resources.Providers(self)
118118
self.account = resources.Account(self)
119119

@@ -268,8 +268,8 @@ def get_auth_url(
268268

269269

270270
class AsyncFinch(AsyncAPIClient):
271-
ats: resources.AsyncATS
272271
hris: resources.AsyncHRIS
272+
ats: resources.AsyncATS
273273
providers: resources.AsyncProviders
274274
account: resources.AsyncAccount
275275

@@ -335,8 +335,8 @@ def __init__(
335335
_strict_response_validation=_strict_response_validation,
336336
)
337337

338-
self.ats = resources.AsyncATS(self)
339338
self.hris = resources.AsyncHRIS(self)
339+
self.ats = resources.AsyncATS(self)
340340
self.providers = resources.AsyncProviders(self)
341341
self.account = resources.AsyncAccount(self)
342342

src/finch/resources/__init__.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -5,4 +5,4 @@
55
from .account import Account, AsyncAccount
66
from .providers import Providers, AsyncProviders
77

8-
__all__ = ["ATS", "AsyncATS", "HRIS", "AsyncHRIS", "Providers", "AsyncProviders", "Account", "AsyncAccount"]
8+
__all__ = ["HRIS", "AsyncHRIS", "ATS", "AsyncATS", "Providers", "AsyncProviders", "Account", "AsyncAccount"]

src/finch/resources/hris/__init__.py

+7-4
Original file line numberDiff line numberDiff line change
@@ -5,20 +5,23 @@
55
from .benefits import Benefits, AsyncBenefits
66
from .payments import Payments, AsyncPayments
77
from .directory import Directory, AsyncDirectory
8+
from .employments import Employments, AsyncEmployments
89
from .individuals import Individuals, AsyncIndividuals
910
from .pay_statements import PayStatements, AsyncPayStatements
1011

1112
__all__ = [
1213
"CompanyResource",
1314
"AsyncCompanyResource",
14-
"Payments",
15-
"AsyncPayments",
16-
"PayStatements",
17-
"AsyncPayStatements",
1815
"Directory",
1916
"AsyncDirectory",
2017
"Individuals",
2118
"AsyncIndividuals",
19+
"Employments",
20+
"AsyncEmployments",
21+
"Payments",
22+
"AsyncPayments",
23+
"PayStatements",
24+
"AsyncPayStatements",
2225
"Benefits",
2326
"AsyncBenefits",
2427
"HRIS",

src/finch/resources/hris/benefits/individuals.py

+5-5
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,8 @@
1414
EnrolledIndividual,
1515
UnenrolledIndividual,
1616
IndividualEnrolledIDsResponse,
17-
individual_unenroll_params,
1817
individual_enroll_many_params,
18+
individual_unenroll_many_params,
1919
individual_retrieve_many_benefits_params,
2020
)
2121

@@ -147,7 +147,7 @@ def retrieve_many_benefits(
147147
model=IndividualBenefit,
148148
)
149149

150-
def unenroll(
150+
def unenroll_many(
151151
self,
152152
benefit_id: str,
153153
*,
@@ -179,7 +179,7 @@ def unenroll(
179179
f"/employer/benefits/{benefit_id}/individuals",
180180
page=SyncSinglePage[UnenrolledIndividual],
181181
body=maybe_transform(
182-
{"individual_ids": individual_ids}, individual_unenroll_params.IndividualUnenrollParams
182+
{"individual_ids": individual_ids}, individual_unenroll_many_params.IndividualUnenrollManyParams
183183
),
184184
options=make_request_options(
185185
extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
@@ -314,7 +314,7 @@ def retrieve_many_benefits(
314314
model=IndividualBenefit,
315315
)
316316

317-
def unenroll(
317+
def unenroll_many(
318318
self,
319319
benefit_id: str,
320320
*,
@@ -346,7 +346,7 @@ def unenroll(
346346
f"/employer/benefits/{benefit_id}/individuals",
347347
page=AsyncSinglePage[UnenrolledIndividual],
348348
body=maybe_transform(
349-
{"individual_ids": individual_ids}, individual_unenroll_params.IndividualUnenrollParams
349+
{"individual_ids": individual_ids}, individual_unenroll_many_params.IndividualUnenrollManyParams
350350
),
351351
options=make_request_options(
352352
extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout

src/finch/resources/hris/individuals/employment_data.py renamed to src/finch/resources/hris/employments.py

+13-20
Original file line numberDiff line numberDiff line change
@@ -4,24 +4,21 @@
44

55
from typing import List
66

7-
from ...._types import NOT_GIVEN, Body, Query, Headers, NotGiven
8-
from ...._utils import maybe_transform
9-
from ...._resource import SyncAPIResource, AsyncAPIResource
10-
from ....pagination import SyncResponsesPage, AsyncResponsesPage
11-
from ...._base_client import AsyncPaginator, make_request_options
12-
from ....types.hris.individuals import (
13-
EmploymentDataResponse,
14-
employment_data_retrieve_many_params,
15-
)
7+
from ..._types import NOT_GIVEN, Body, Query, Headers, NotGiven
8+
from ..._utils import maybe_transform
9+
from ..._resource import SyncAPIResource, AsyncAPIResource
10+
from ...pagination import SyncResponsesPage, AsyncResponsesPage
11+
from ...types.hris import EmploymentDataResponse, employment_retrieve_many_params
12+
from ..._base_client import AsyncPaginator, make_request_options
1613

17-
__all__ = ["EmploymentData", "AsyncEmploymentData"]
14+
__all__ = ["Employments", "AsyncEmployments"]
1815

1916

20-
class EmploymentData(SyncAPIResource):
17+
class Employments(SyncAPIResource):
2118
def retrieve_many(
2219
self,
2320
*,
24-
requests: List[employment_data_retrieve_many_params.Request],
21+
requests: List[employment_retrieve_many_params.Request],
2522
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
2623
# The extra values given here take precedence over values defined on the client or passed to this method.
2724
extra_headers: Headers | None = None,
@@ -50,9 +47,7 @@ def retrieve_many(
5047
return self._get_api_list(
5148
"/employer/employment",
5249
page=SyncResponsesPage[EmploymentDataResponse],
53-
body=maybe_transform(
54-
{"requests": requests}, employment_data_retrieve_many_params.EmploymentDataRetrieveManyParams
55-
),
50+
body=maybe_transform({"requests": requests}, employment_retrieve_many_params.EmploymentRetrieveManyParams),
5651
options=make_request_options(
5752
extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
5853
),
@@ -61,11 +56,11 @@ def retrieve_many(
6156
)
6257

6358

64-
class AsyncEmploymentData(AsyncAPIResource):
59+
class AsyncEmployments(AsyncAPIResource):
6560
def retrieve_many(
6661
self,
6762
*,
68-
requests: List[employment_data_retrieve_many_params.Request],
63+
requests: List[employment_retrieve_many_params.Request],
6964
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
7065
# The extra values given here take precedence over values defined on the client or passed to this method.
7166
extra_headers: Headers | None = None,
@@ -94,9 +89,7 @@ def retrieve_many(
9489
return self._get_api_list(
9590
"/employer/employment",
9691
page=AsyncResponsesPage[EmploymentDataResponse],
97-
body=maybe_transform(
98-
{"requests": requests}, employment_data_retrieve_many_params.EmploymentDataRetrieveManyParams
99-
),
92+
body=maybe_transform({"requests": requests}, employment_retrieve_many_params.EmploymentRetrieveManyParams),
10093
options=make_request_options(
10194
extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
10295
),

src/finch/resources/hris/hris.py

+13-8
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
from .payments import Payments, AsyncPayments
1010
from .directory import Directory, AsyncDirectory
1111
from ..._resource import SyncAPIResource, AsyncAPIResource
12+
from .employments import Employments, AsyncEmployments
1213
from .individuals import Individuals, AsyncIndividuals
1314
from .pay_statements import PayStatements, AsyncPayStatements
1415

@@ -20,35 +21,39 @@
2021

2122
class HRIS(SyncAPIResource):
2223
company: CompanyResource
23-
payments: Payments
24-
pay_statements: PayStatements
2524
directory: Directory
2625
individuals: Individuals
26+
employments: Employments
27+
payments: Payments
28+
pay_statements: PayStatements
2729
benefits: Benefits
2830

2931
def __init__(self, client: Finch) -> None:
3032
super().__init__(client)
3133
self.company = CompanyResource(client)
32-
self.payments = Payments(client)
33-
self.pay_statements = PayStatements(client)
3434
self.directory = Directory(client)
3535
self.individuals = Individuals(client)
36+
self.employments = Employments(client)
37+
self.payments = Payments(client)
38+
self.pay_statements = PayStatements(client)
3639
self.benefits = Benefits(client)
3740

3841

3942
class AsyncHRIS(AsyncAPIResource):
4043
company: AsyncCompanyResource
41-
payments: AsyncPayments
42-
pay_statements: AsyncPayStatements
4344
directory: AsyncDirectory
4445
individuals: AsyncIndividuals
46+
employments: AsyncEmployments
47+
payments: AsyncPayments
48+
pay_statements: AsyncPayStatements
4549
benefits: AsyncBenefits
4650

4751
def __init__(self, client: AsyncFinch) -> None:
4852
super().__init__(client)
4953
self.company = AsyncCompanyResource(client)
50-
self.payments = AsyncPayments(client)
51-
self.pay_statements = AsyncPayStatements(client)
5254
self.directory = AsyncDirectory(client)
5355
self.individuals = AsyncIndividuals(client)
56+
self.employments = AsyncEmployments(client)
57+
self.payments = AsyncPayments(client)
58+
self.pay_statements = AsyncPayStatements(client)
5459
self.benefits = AsyncBenefits(client)

src/finch/resources/hris/individuals/individuals.py renamed to src/finch/resources/hris/individuals.py

+7-23
Original file line numberDiff line numberDiff line change
@@ -2,29 +2,19 @@
22

33
from __future__ import annotations
44

5-
from typing import TYPE_CHECKING, List, Optional
5+
from typing import List, Optional
66

7-
from ...._types import NOT_GIVEN, Body, Query, Headers, NotGiven
8-
from ...._utils import maybe_transform
9-
from ...._resource import SyncAPIResource, AsyncAPIResource
10-
from ....pagination import SyncResponsesPage, AsyncResponsesPage
11-
from ....types.hris import IndividualResponse, individual_retrieve_many_params
12-
from ...._base_client import AsyncPaginator, make_request_options
13-
from .employment_data import EmploymentData, AsyncEmploymentData
14-
15-
if TYPE_CHECKING:
16-
from ...._client import Finch, AsyncFinch
7+
from ..._types import NOT_GIVEN, Body, Query, Headers, NotGiven
8+
from ..._utils import maybe_transform
9+
from ..._resource import SyncAPIResource, AsyncAPIResource
10+
from ...pagination import SyncResponsesPage, AsyncResponsesPage
11+
from ...types.hris import IndividualResponse, individual_retrieve_many_params
12+
from ..._base_client import AsyncPaginator, make_request_options
1713

1814
__all__ = ["Individuals", "AsyncIndividuals"]
1915

2016

2117
class Individuals(SyncAPIResource):
22-
employment_data: EmploymentData
23-
24-
def __init__(self, client: Finch) -> None:
25-
super().__init__(client)
26-
self.employment_data = EmploymentData(client)
27-
2818
def retrieve_many(
2919
self,
3020
*,
@@ -68,12 +58,6 @@ def retrieve_many(
6858

6959

7060
class AsyncIndividuals(AsyncAPIResource):
71-
employment_data: AsyncEmploymentData
72-
73-
def __init__(self, client: AsyncFinch) -> None:
74-
super().__init__(client)
75-
self.employment_data = AsyncEmploymentData(client)
76-
7761
def retrieve_many(
7862
self,
7963
*,

src/finch/resources/hris/individuals/__init__.py

-6
This file was deleted.

src/finch/types/hris/__init__.py

+5
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
from .benefit_type import BenefitType as BenefitType
99
from .pay_statement import PayStatement as PayStatement
1010
from .company_benefit import CompanyBenefit as CompanyBenefit
11+
from .employment_data import EmploymentData as EmploymentData
1112
from .benefit_frequency import BenefitFrequency as BenefitFrequency
1213
from .supported_benefit import SupportedBenefit as SupportedBenefit
1314
from .benfit_contribution import BenfitContribution as BenfitContribution
@@ -17,9 +18,13 @@
1718
from .benefit_update_params import BenefitUpdateParams as BenefitUpdateParams
1819
from .pay_statement_response import PayStatementResponse as PayStatementResponse
1920
from .individual_in_directory import IndividualInDirectory as IndividualInDirectory
21+
from .employment_data_response import EmploymentDataResponse as EmploymentDataResponse
2022
from .pay_statement_response_body import (
2123
PayStatementResponseBody as PayStatementResponseBody,
2224
)
25+
from .employment_retrieve_many_params import (
26+
EmploymentRetrieveManyParams as EmploymentRetrieveManyParams,
27+
)
2328
from .individual_retrieve_many_params import (
2429
IndividualRetrieveManyParams as IndividualRetrieveManyParams,
2530
)

src/finch/types/hris/benefits/__init__.py

+3-3
Original file line numberDiff line numberDiff line change
@@ -5,12 +5,12 @@
55
from .individual_benefit import IndividualBenefit as IndividualBenefit
66
from .enrolled_individual import EnrolledIndividual as EnrolledIndividual
77
from .unenrolled_individual import UnenrolledIndividual as UnenrolledIndividual
8-
from .individual_unenroll_params import (
9-
IndividualUnenrollParams as IndividualUnenrollParams,
10-
)
118
from .individual_enroll_many_params import (
129
IndividualEnrollManyParams as IndividualEnrollManyParams,
1310
)
11+
from .individual_unenroll_many_params import (
12+
IndividualUnenrollManyParams as IndividualUnenrollManyParams,
13+
)
1414
from .individual_enrolled_ids_response import (
1515
IndividualEnrolledIDsResponse as IndividualEnrolledIDsResponse,
1616
)

src/finch/types/hris/benefits/individual_unenroll_params.py renamed to src/finch/types/hris/benefits/individual_unenroll_many_params.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,9 @@
55
from typing import List
66
from typing_extensions import TypedDict
77

8-
__all__ = ["IndividualUnenrollParams"]
8+
__all__ = ["IndividualUnenrollManyParams"]
99

1010

11-
class IndividualUnenrollParams(TypedDict, total=False):
11+
class IndividualUnenrollManyParams(TypedDict, total=False):
1212
individual_ids: List[str]
1313
"""Array of individual_ids to unenroll."""

src/finch/types/hris/individuals/employment_data.py renamed to src/finch/types/hris/employment_data.py

+3-3
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,9 @@
55

66
from pydantic import Field as FieldInfo
77

8-
from ...income import Income
9-
from ...._models import BaseModel
10-
from ...location import Location
8+
from ..income import Income
9+
from ..._models import BaseModel
10+
from ..location import Location
1111

1212
__all__ = ["EmploymentData", "Department", "Employment", "Manager"]
1313

src/finch/types/hris/individuals/employment_data_response.py renamed to src/finch/types/hris/employment_data_response.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
from typing import Optional
44

5-
from ...._models import BaseModel
5+
from ..._models import BaseModel
66
from .employment_data import EmploymentData
77

88
__all__ = ["EmploymentDataResponse"]

src/finch/types/hris/individuals/employment_data_retrieve_many_params.py renamed to src/finch/types/hris/employment_retrieve_many_params.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,10 @@
55
from typing import List
66
from typing_extensions import Required, TypedDict
77

8-
__all__ = ["EmploymentDataRetrieveManyParams", "Request"]
8+
__all__ = ["EmploymentRetrieveManyParams", "Request"]
99

1010

11-
class EmploymentDataRetrieveManyParams(TypedDict, total=False):
11+
class EmploymentRetrieveManyParams(TypedDict, total=False):
1212
requests: Required[List[Request]]
1313
"""The array of batch requests."""
1414

src/finch/types/hris/individuals/__init__.py

-9
This file was deleted.

0 commit comments

Comments
 (0)