brynq-sdk-bob 2.9.2__py3-none-any.whl → 2.9.3__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.
- brynq_sdk_bob/payments.py +26 -10
- {brynq_sdk_bob-2.9.2.dist-info → brynq_sdk_bob-2.9.3.dist-info}/METADATA +1 -1
- {brynq_sdk_bob-2.9.2.dist-info → brynq_sdk_bob-2.9.3.dist-info}/RECORD +5 -5
- {brynq_sdk_bob-2.9.2.dist-info → brynq_sdk_bob-2.9.3.dist-info}/WHEEL +1 -1
- {brynq_sdk_bob-2.9.2.dist-info → brynq_sdk_bob-2.9.3.dist-info}/top_level.txt +0 -0
brynq_sdk_bob/payments.py
CHANGED
|
@@ -1,7 +1,11 @@
|
|
|
1
|
+
import time
|
|
2
|
+
from typing import List, Optional
|
|
3
|
+
|
|
1
4
|
import pandas as pd
|
|
2
|
-
|
|
5
|
+
|
|
3
6
|
from brynq_sdk_functions import Functions
|
|
4
|
-
|
|
7
|
+
|
|
8
|
+
from .schemas.payments import ActualPaymentsSchema, VariablePaymentSchema
|
|
5
9
|
|
|
6
10
|
|
|
7
11
|
class Payments:
|
|
@@ -10,18 +14,30 @@ class Payments:
|
|
|
10
14
|
self.schema = VariablePaymentSchema
|
|
11
15
|
|
|
12
16
|
def get(self, person_ids: List[str]) -> (pd.DataFrame, pd.DataFrame):
|
|
13
|
-
|
|
17
|
+
records = []
|
|
18
|
+
|
|
14
19
|
for person_id in person_ids:
|
|
15
|
-
|
|
20
|
+
# Throttle requests to respect API rate limits
|
|
21
|
+
time.sleep(0.2)
|
|
22
|
+
|
|
23
|
+
resp = self.bob.session.get(
|
|
24
|
+
url=f"{self.bob.base_url}people/{person_id}/variable",
|
|
25
|
+
timeout=self.bob.timeout
|
|
26
|
+
)
|
|
16
27
|
resp.raise_for_status()
|
|
28
|
+
|
|
17
29
|
data = resp.json()
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
30
|
+
|
|
31
|
+
# Normalize nested json and assign ID before appending to list
|
|
32
|
+
df_temp = pd.json_normalize(data, record_path='values')
|
|
33
|
+
df_temp['employee_id'] = person_id
|
|
34
|
+
records.append(df_temp)
|
|
35
|
+
|
|
36
|
+
# Concatenate once to improve performance
|
|
37
|
+
df = pd.concat(records, ignore_index=True) if records else pd.DataFrame()
|
|
38
|
+
|
|
24
39
|
valid_payments, invalid_payments = Functions.validate_data(df=df, schema=self.schema, debug=True)
|
|
40
|
+
|
|
25
41
|
return valid_payments, invalid_payments
|
|
26
42
|
|
|
27
43
|
def get_actual_payments(
|
|
@@ -5,7 +5,7 @@ brynq_sdk_bob/custom_tables.py,sha256=MvnR2mIcyK0rpwd0P7xV3BPIvCYQVEClBvo901GttP
|
|
|
5
5
|
brynq_sdk_bob/documents.py,sha256=ww101owiBGARCxOANdDtmWrNedSBe9V-BEed6QspQPg,1756
|
|
6
6
|
brynq_sdk_bob/employment.py,sha256=uNllQrIBbo8yPG_2-ln1PWeWUFU672T289PpWWvL-V8,763
|
|
7
7
|
brynq_sdk_bob/named_lists.py,sha256=ksLXV2ysBFegq4gZiiaC56gjkgdnPzL7WajZTGvjYIM,1069
|
|
8
|
-
brynq_sdk_bob/payments.py,sha256=
|
|
8
|
+
brynq_sdk_bob/payments.py,sha256=43Ctdt5T8gtpCud67dm75xa90W8m6FyMrU2hAWKrzMc,4221
|
|
9
9
|
brynq_sdk_bob/payroll_history.py,sha256=wHo6da7kLDe1ViL4egyMdyJBMZnWVhwjNjmh4cTCTeY,3972
|
|
10
10
|
brynq_sdk_bob/people.py,sha256=t1A1dABX6UZ0pyLTGOL-Sp5pHY630KWIyIO3JQ_Pjdk,5970
|
|
11
11
|
brynq_sdk_bob/reports.py,sha256=Tawmqm_ZmQ487loyk-29-A_fTCrgImbWCEf6zfwuaq4,1245
|
|
@@ -23,7 +23,7 @@ brynq_sdk_bob/schemas/people.py,sha256=42BJVgJmT-h5kzuQl6iI7wZDSGNA0KTQQVIAqeeyH
|
|
|
23
23
|
brynq_sdk_bob/schemas/salary.py,sha256=TSaM1g92y3oiDcUrfJW7ushgKZenI9xB6XW3kKuU0dE,4540
|
|
24
24
|
brynq_sdk_bob/schemas/timeoff.py,sha256=gTYu_bNcfHrkTz4eIHCZ4WzgMTj2U4nI3X6JTzDovhk,12817
|
|
25
25
|
brynq_sdk_bob/schemas/work.py,sha256=SvP7FrF1AygHhe12QT6dDxFzmLYs6HScAov5K6FsNvI,3139
|
|
26
|
-
brynq_sdk_bob-2.9.
|
|
27
|
-
brynq_sdk_bob-2.9.
|
|
28
|
-
brynq_sdk_bob-2.9.
|
|
29
|
-
brynq_sdk_bob-2.9.
|
|
26
|
+
brynq_sdk_bob-2.9.3.dist-info/METADATA,sha256=22KCffoyrlMZiWe7hUzwBHzTXX-ZN473ARSYNzwKjrA,371
|
|
27
|
+
brynq_sdk_bob-2.9.3.dist-info/WHEEL,sha256=qELbo2s1Yzl39ZmrAibXA2jjPLUYfnVhUNTlyF1rq0Y,92
|
|
28
|
+
brynq_sdk_bob-2.9.3.dist-info/top_level.txt,sha256=oGiWqOuAAiVoLIzGe6F-Lo4IJBYz5ftOwBft7HtPuoY,14
|
|
29
|
+
brynq_sdk_bob-2.9.3.dist-info/RECORD,,
|
|
File without changes
|