brynq-sdk-bob 2.6.7__tar.gz → 2.7.0__tar.gz

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.
Files changed (34) hide show
  1. {brynq_sdk_bob-2.6.7 → brynq_sdk_bob-2.7.0}/PKG-INFO +1 -1
  2. {brynq_sdk_bob-2.6.7 → brynq_sdk_bob-2.7.0}/brynq_sdk_bob/__init__.py +5 -4
  3. brynq_sdk_bob-2.7.0/brynq_sdk_bob/reports.py +38 -0
  4. {brynq_sdk_bob-2.6.7 → brynq_sdk_bob-2.7.0}/brynq_sdk_bob/schemas/people.py +8 -2
  5. {brynq_sdk_bob-2.6.7 → brynq_sdk_bob-2.7.0}/brynq_sdk_bob.egg-info/PKG-INFO +1 -1
  6. {brynq_sdk_bob-2.6.7 → brynq_sdk_bob-2.7.0}/brynq_sdk_bob.egg-info/SOURCES.txt +1 -0
  7. {brynq_sdk_bob-2.6.7 → brynq_sdk_bob-2.7.0}/setup.py +1 -1
  8. {brynq_sdk_bob-2.6.7 → brynq_sdk_bob-2.7.0}/brynq_sdk_bob/bank.py +0 -0
  9. {brynq_sdk_bob-2.6.7 → brynq_sdk_bob-2.7.0}/brynq_sdk_bob/company.py +0 -0
  10. {brynq_sdk_bob-2.6.7 → brynq_sdk_bob-2.7.0}/brynq_sdk_bob/custom_tables.py +0 -0
  11. {brynq_sdk_bob-2.6.7 → brynq_sdk_bob-2.7.0}/brynq_sdk_bob/documents.py +0 -0
  12. {brynq_sdk_bob-2.6.7 → brynq_sdk_bob-2.7.0}/brynq_sdk_bob/employment.py +0 -0
  13. {brynq_sdk_bob-2.6.7 → brynq_sdk_bob-2.7.0}/brynq_sdk_bob/named_lists.py +0 -0
  14. {brynq_sdk_bob-2.6.7 → brynq_sdk_bob-2.7.0}/brynq_sdk_bob/payments.py +0 -0
  15. {brynq_sdk_bob-2.6.7 → brynq_sdk_bob-2.7.0}/brynq_sdk_bob/payroll_history.py +0 -0
  16. {brynq_sdk_bob-2.6.7 → brynq_sdk_bob-2.7.0}/brynq_sdk_bob/people.py +0 -0
  17. {brynq_sdk_bob-2.6.7 → brynq_sdk_bob-2.7.0}/brynq_sdk_bob/salaries.py +0 -0
  18. {brynq_sdk_bob-2.6.7 → brynq_sdk_bob-2.7.0}/brynq_sdk_bob/schemas/__init__.py +0 -0
  19. {brynq_sdk_bob-2.6.7 → brynq_sdk_bob-2.7.0}/brynq_sdk_bob/schemas/bank.py +0 -0
  20. {brynq_sdk_bob-2.6.7 → brynq_sdk_bob-2.7.0}/brynq_sdk_bob/schemas/custom_tables.py +0 -0
  21. {brynq_sdk_bob-2.6.7 → brynq_sdk_bob-2.7.0}/brynq_sdk_bob/schemas/employment.py +0 -0
  22. {brynq_sdk_bob-2.6.7 → brynq_sdk_bob-2.7.0}/brynq_sdk_bob/schemas/named_lists.py +0 -0
  23. {brynq_sdk_bob-2.6.7 → brynq_sdk_bob-2.7.0}/brynq_sdk_bob/schemas/payments.py +0 -0
  24. {brynq_sdk_bob-2.6.7 → brynq_sdk_bob-2.7.0}/brynq_sdk_bob/schemas/payroll_history.py +0 -0
  25. {brynq_sdk_bob-2.6.7 → brynq_sdk_bob-2.7.0}/brynq_sdk_bob/schemas/salary.py +0 -0
  26. {brynq_sdk_bob-2.6.7 → brynq_sdk_bob-2.7.0}/brynq_sdk_bob/schemas/timeoff.py +0 -0
  27. {brynq_sdk_bob-2.6.7 → brynq_sdk_bob-2.7.0}/brynq_sdk_bob/schemas/work.py +0 -0
  28. {brynq_sdk_bob-2.6.7 → brynq_sdk_bob-2.7.0}/brynq_sdk_bob/timeoff.py +0 -0
  29. {brynq_sdk_bob-2.6.7 → brynq_sdk_bob-2.7.0}/brynq_sdk_bob/work.py +0 -0
  30. {brynq_sdk_bob-2.6.7 → brynq_sdk_bob-2.7.0}/brynq_sdk_bob.egg-info/dependency_links.txt +0 -0
  31. {brynq_sdk_bob-2.6.7 → brynq_sdk_bob-2.7.0}/brynq_sdk_bob.egg-info/not-zip-safe +0 -0
  32. {brynq_sdk_bob-2.6.7 → brynq_sdk_bob-2.7.0}/brynq_sdk_bob.egg-info/requires.txt +0 -0
  33. {brynq_sdk_bob-2.6.7 → brynq_sdk_bob-2.7.0}/brynq_sdk_bob.egg-info/top_level.txt +0 -0
  34. {brynq_sdk_bob-2.6.7 → brynq_sdk_bob-2.7.0}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 1.0
2
2
  Name: brynq_sdk_bob
3
- Version: 2.6.7
3
+ Version: 2.7.0
4
4
  Summary: Bob wrapper from BrynQ
5
5
  Home-page: UNKNOWN
6
6
  Author: BrynQ
@@ -1,11 +1,9 @@
1
1
  import base64
2
- import re
3
- from typing import Union, List, Optional, Literal
4
- import pandas as pd
2
+ from typing import List, Optional, Literal
5
3
  import requests
6
4
  import os
5
+ from .reports import Reports
7
6
  from brynq_sdk_brynq import BrynQ
8
- from brynq_sdk_functions import Functions
9
7
  from .bank import Bank
10
8
  from .company import Company
11
9
  from .documents import CustomDocuments
@@ -17,6 +15,7 @@ from .salaries import Salaries
17
15
  from .timeoff import TimeOff
18
16
  from .work import Work
19
17
  from .custom_tables import CustomTables
18
+ from .payroll_history import History
20
19
 
21
20
  class Bob(BrynQ):
22
21
  def __init__(self, system_type: Optional[Literal['source', 'target']] = None, test_environment: bool = True, debug: bool = False, target_system: str = None):
@@ -40,6 +39,8 @@ class Bob(BrynQ):
40
39
  self.companies = Company(self)
41
40
  self.named_lists = NamedLists(self)
42
41
  self.custom_tables = CustomTables(self)
42
+ self.payroll_history = History(self)
43
+ self.reports = Reports(self)
43
44
  self.data_interface_id = os.getenv("DATA_INTERFACE_ID")
44
45
  self.debug = debug
45
46
 
@@ -0,0 +1,38 @@
1
+ from datetime import datetime
2
+ from io import BytesIO
3
+ from typing import Optional
4
+
5
+ import pandas as pd
6
+ from brynq_sdk_functions import Functions
7
+
8
+
9
+ class Reports:
10
+ def __init__(self, bob):
11
+ self.bob = bob
12
+
13
+ def get(self) -> pd.DataFrame:
14
+ resp = self.bob.session.get(url=f"{self.bob.base_url}company/reports", timeout=self.bob.timeout)
15
+ resp.raise_for_status()
16
+ data = resp.json()
17
+ df = pd.json_normalize(
18
+ data,
19
+ record_path='views'
20
+ )
21
+ # df = self.bob.rename_camel_columns_to_snake_case(df)
22
+ # valid_documents, invalid_documents = Functions.validate_data(df=df, schema=DocumentsSchema, debug=True)
23
+
24
+ return df
25
+
26
+ def download(self, report_id: Optional[str] = None, report_name: Optional[str] = None) -> dict:
27
+ if report_id:
28
+ url = f"{self.bob.base_url}company/reports/{report_id}"
29
+ elif report_name:
30
+ url = f"{self.bob.base_url}company/reports/download/{report_name}"
31
+ else:
32
+ raise ValueError("Either report_id or report_name must be provided")
33
+
34
+ resp = self.bob.session.get(url=url, timeout=self.bob.timeout)
35
+ resp.raise_for_status()
36
+ data = resp.json()
37
+
38
+ return data
@@ -220,10 +220,16 @@ class PeopleSchema(BrynQPanderaDataFrameModel):
220
220
  payroll_employment_weekly_hours: Optional[Series[Float]] = pa.Field(coerce=True, nullable=True, description="Weekly Hours", alias="payroll.employment.weeklyHours")
221
221
 
222
222
  # Salary information
223
- payroll_salary_monthly_payment: Optional[Series[Float]] = pa.Field(coerce=True, nullable=True, description="Base salary (monthly_", alias="payroll.salary.monthlyPayment")
223
+ # SOLUTION NOW FOR MFT: TODO: FIX UNNESTING (including .value.value)
224
+ payroll_salary_monthly_get: Optional[Series[str]] = pa.Field(coerce=True, nullable=True, description="Base salary (monthly), used for getting nested json", alias="payroll.salary.monthlyPayment")
225
+ payroll_salary_monthly_payment: Optional[Series[Float]] = pa.Field(coerce=True, nullable=True, description="Base salary (monthly)", alias="payroll.salary.monthlyPayment.value")
226
+ payroll_salary_monthly_payment_currency: Optional[Series[str]] = pa.Field(coerce=True, nullable=True, description="Base salary (monthly) currency", alias="payroll.salary.monthlyPayment.currency")
227
+
224
228
  payroll_salary_yearly_get: Optional[Series[str]] = pa.Field(coerce=True, nullable=True, description="Base salary (yearly), used for getting nested json", alias="payroll.salary.yearlyPayment")
225
229
  payroll_salary_yearly_payment: Optional[Series[Float]] = pa.Field(coerce=True, nullable=True, description="Base salary (yearly)", alias="payroll.salary.yearlyPayment.value")
226
- payroll_salary_yearly_payment_currency: Optional[Series[str]] = pa.Field(coerce=True, nullable=True, description="Base salary (yearly)", alias="payroll.salary.yearlyPayment.currency")
230
+ payroll_salary_yearly_payment_currency: Optional[Series[str]] = pa.Field(coerce=True, nullable=True, description="Base salary (yearly) currency", alias="payroll.salary.yearlyPayment.currency")
231
+
232
+ payroll_salary_active_effective_date: Optional[Series[str]] = pa.Field(coerce=True, nullable=True, description="effective date payment", alias="payroll.salary.activeEffectiveDate")
227
233
  payroll_salary_payment: Optional[Series[Float]] = pa.Field(coerce=True, nullable=True, description="Base Salary", alias="payroll.salary.payment")
228
234
 
229
235
  # Emergency contact
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 1.0
2
2
  Name: brynq-sdk-bob
3
- Version: 2.6.7
3
+ Version: 2.7.0
4
4
  Summary: Bob wrapper from BrynQ
5
5
  Home-page: UNKNOWN
6
6
  Author: BrynQ
@@ -9,6 +9,7 @@ brynq_sdk_bob/named_lists.py
9
9
  brynq_sdk_bob/payments.py
10
10
  brynq_sdk_bob/payroll_history.py
11
11
  brynq_sdk_bob/people.py
12
+ brynq_sdk_bob/reports.py
12
13
  brynq_sdk_bob/salaries.py
13
14
  brynq_sdk_bob/timeoff.py
14
15
  brynq_sdk_bob/work.py
@@ -2,7 +2,7 @@ from setuptools import setup, find_namespace_packages
2
2
 
3
3
  setup(
4
4
  name='brynq_sdk_bob',
5
- version='2.6.7',
5
+ version='2.7.0',
6
6
  description='Bob wrapper from BrynQ',
7
7
  long_description='Bob wrapper from BrynQ',
8
8
  author='BrynQ',
File without changes