brynq-sdk-bob 2.4.3__tar.gz → 2.5.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 (33) hide show
  1. {brynq_sdk_bob-2.4.3 → brynq_sdk_bob-2.5.0}/PKG-INFO +1 -1
  2. {brynq_sdk_bob-2.4.3 → brynq_sdk_bob-2.5.0}/brynq_sdk_bob/people.py +5 -1
  3. {brynq_sdk_bob-2.4.3 → brynq_sdk_bob-2.5.0}/brynq_sdk_bob/schemas/payments.py +1 -1
  4. {brynq_sdk_bob-2.4.3 → brynq_sdk_bob-2.5.0}/brynq_sdk_bob/schemas/people.py +37 -1
  5. {brynq_sdk_bob-2.4.3 → brynq_sdk_bob-2.5.0}/brynq_sdk_bob.egg-info/PKG-INFO +1 -1
  6. {brynq_sdk_bob-2.4.3 → brynq_sdk_bob-2.5.0}/setup.py +1 -1
  7. {brynq_sdk_bob-2.4.3 → brynq_sdk_bob-2.5.0}/brynq_sdk_bob/__init__.py +0 -0
  8. {brynq_sdk_bob-2.4.3 → brynq_sdk_bob-2.5.0}/brynq_sdk_bob/bank.py +0 -0
  9. {brynq_sdk_bob-2.4.3 → brynq_sdk_bob-2.5.0}/brynq_sdk_bob/company.py +0 -0
  10. {brynq_sdk_bob-2.4.3 → brynq_sdk_bob-2.5.0}/brynq_sdk_bob/custom_tables.py +0 -0
  11. {brynq_sdk_bob-2.4.3 → brynq_sdk_bob-2.5.0}/brynq_sdk_bob/documents.py +0 -0
  12. {brynq_sdk_bob-2.4.3 → brynq_sdk_bob-2.5.0}/brynq_sdk_bob/employment.py +0 -0
  13. {brynq_sdk_bob-2.4.3 → brynq_sdk_bob-2.5.0}/brynq_sdk_bob/named_lists.py +0 -0
  14. {brynq_sdk_bob-2.4.3 → brynq_sdk_bob-2.5.0}/brynq_sdk_bob/payments.py +0 -0
  15. {brynq_sdk_bob-2.4.3 → brynq_sdk_bob-2.5.0}/brynq_sdk_bob/payroll_history.py +0 -0
  16. {brynq_sdk_bob-2.4.3 → brynq_sdk_bob-2.5.0}/brynq_sdk_bob/salaries.py +0 -0
  17. {brynq_sdk_bob-2.4.3 → brynq_sdk_bob-2.5.0}/brynq_sdk_bob/schemas/__init__.py +0 -0
  18. {brynq_sdk_bob-2.4.3 → brynq_sdk_bob-2.5.0}/brynq_sdk_bob/schemas/bank.py +0 -0
  19. {brynq_sdk_bob-2.4.3 → brynq_sdk_bob-2.5.0}/brynq_sdk_bob/schemas/custom_tables.py +0 -0
  20. {brynq_sdk_bob-2.4.3 → brynq_sdk_bob-2.5.0}/brynq_sdk_bob/schemas/employment.py +0 -0
  21. {brynq_sdk_bob-2.4.3 → brynq_sdk_bob-2.5.0}/brynq_sdk_bob/schemas/named_lists.py +0 -0
  22. {brynq_sdk_bob-2.4.3 → brynq_sdk_bob-2.5.0}/brynq_sdk_bob/schemas/payroll_history.py +0 -0
  23. {brynq_sdk_bob-2.4.3 → brynq_sdk_bob-2.5.0}/brynq_sdk_bob/schemas/salary.py +0 -0
  24. {brynq_sdk_bob-2.4.3 → brynq_sdk_bob-2.5.0}/brynq_sdk_bob/schemas/timeoff.py +0 -0
  25. {brynq_sdk_bob-2.4.3 → brynq_sdk_bob-2.5.0}/brynq_sdk_bob/schemas/work.py +0 -0
  26. {brynq_sdk_bob-2.4.3 → brynq_sdk_bob-2.5.0}/brynq_sdk_bob/timeoff.py +0 -0
  27. {brynq_sdk_bob-2.4.3 → brynq_sdk_bob-2.5.0}/brynq_sdk_bob/work.py +0 -0
  28. {brynq_sdk_bob-2.4.3 → brynq_sdk_bob-2.5.0}/brynq_sdk_bob.egg-info/SOURCES.txt +0 -0
  29. {brynq_sdk_bob-2.4.3 → brynq_sdk_bob-2.5.0}/brynq_sdk_bob.egg-info/dependency_links.txt +0 -0
  30. {brynq_sdk_bob-2.4.3 → brynq_sdk_bob-2.5.0}/brynq_sdk_bob.egg-info/not-zip-safe +0 -0
  31. {brynq_sdk_bob-2.4.3 → brynq_sdk_bob-2.5.0}/brynq_sdk_bob.egg-info/requires.txt +0 -0
  32. {brynq_sdk_bob-2.4.3 → brynq_sdk_bob-2.5.0}/brynq_sdk_bob.egg-info/top_level.txt +0 -0
  33. {brynq_sdk_bob-2.4.3 → brynq_sdk_bob-2.5.0}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 1.0
2
2
  Name: brynq_sdk_bob
3
- Version: 2.4.3
3
+ Version: 2.5.0
4
4
  Summary: Bob wrapper from BrynQ
5
5
  Home-page: UNKNOWN
6
6
  Author: BrynQ
@@ -196,7 +196,8 @@ class People:
196
196
 
197
197
  Args:
198
198
  additional_fields (list[str]): Additional fields to get (not defined in the schema)
199
- field_selection (list[str]): Fields to get (defined in the schema), if not provided, all fields are returned
199
+ field_selection (list[str]): Fields to get (defined in the schema), if not provided, all fields are returned.
200
+ Can be either pythonic field names (e.g., 'work_start_date') or Bob API field names (e.g., 'work.startDate').
200
201
  add_payroll_information (list[str]): List of payroll information types to include (valid options: 'entitlement', 'variable')
201
202
 
202
203
  Returns:
@@ -210,6 +211,9 @@ class People:
210
211
  response_fields = list(set(self.field_name_in_response + additional_fields))
211
212
 
212
213
  if field_selection:
214
+ # Convert pythonic field names to aliases (e.g., 'work_start_date' -> 'work.startDate')
215
+ field_selection = PeopleSchema.convert_pythonic_to_alias(field_selection)
216
+
213
217
  body_fields = [field for field in body_fields if field in field_selection]
214
218
  response_fields = [self.endpoint_to_response.get(field) for field in field_selection if field in self.endpoint_to_response]
215
219
 
@@ -9,7 +9,7 @@ class VariablePaymentSchema(BrynQPanderaDataFrameModel):
9
9
  department_percent: Series[Float] = pa.Field(nullable=True, coerce=True, description="Department Percent", alias="departmentPercent")
10
10
  payout_type: Series[String] = pa.Field(coerce=True, description="Payout Type", alias="payoutType")
11
11
  num_of_salaries: Optional[Series[pd.Int64Dtype]] = pa.Field(nullable=True, coerce=True, description="Number of Salaries", alias="numOfSalaries")
12
- end_date: Series[DateTime] = pa.Field(nullable=True, coerce=True, description="End Date", alias="endDate")
12
+ end_date: Optional[Series[DateTime]] = pa.Field(nullable=True, coerce=True, description="End Date", alias="endDate")
13
13
  creation_date: Series[DateTime] = pa.Field(coerce=True, description="Creation Date", alias="creationDate")
14
14
  percentage_of_annual_salary: Series[Float] = pa.Field(nullable=True, coerce=True, description="Percentage of Annual Salary", alias="percentageOfAnnualSalary")
15
15
  individual_percent: Series[Float] = pa.Field(nullable=True, coerce=True, description="Individual Percent", alias="individualPercent")
@@ -1,5 +1,5 @@
1
1
  from datetime import datetime
2
- from typing import Optional
2
+ from typing import Optional, List, Dict
3
3
 
4
4
  import pandas as pd
5
5
  import pandera as pa
@@ -98,3 +98,39 @@ class PeopleSchema(BrynQPanderaDataFrameModel):
98
98
 
99
99
  class Config:
100
100
  coerce = True
101
+
102
+ @classmethod
103
+ def convert_pythonic_to_alias(cls, pythonic_fields: List[str]) -> List[str]:
104
+ """
105
+ Convert pythonic field names to their Bob API aliases.
106
+
107
+ Args:
108
+ pythonic_fields: List of pythonic field names (e.g., ['work_start_date', 'first_name'])
109
+
110
+ Returns:
111
+ List of Bob API field aliases (e.g., ['work.startDate', 'root.firstName'])
112
+ """
113
+ # Get the alias mapping from the class (populated by BrynQPanderaDataFrameModel.__init_subclass__)
114
+ alias_map = getattr(cls, "_alias_map", {})
115
+
116
+ # Convert the provided pythonic fields to aliases
117
+ result = []
118
+ for field in pythonic_fields:
119
+ if field in alias_map:
120
+ result.append(alias_map[field])
121
+ else:
122
+ # If not found in schema, keep the field as-is (could be a custom field)
123
+ result.append(field)
124
+
125
+ return result
126
+
127
+ @classmethod
128
+ def get_pythonic_to_alias_mapping(cls) -> Dict[str, str]:
129
+ """
130
+ Get the complete mapping from pythonic field names to Bob API aliases.
131
+
132
+ Returns:
133
+ Dictionary mapping pythonic field names to aliases
134
+ """
135
+ # Get the alias mapping from the class (populated by BrynQPanderaDataFrameModel.__init_subclass__)
136
+ return getattr(cls, "_alias_map", {})
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 1.0
2
2
  Name: brynq-sdk-bob
3
- Version: 2.4.3
3
+ Version: 2.5.0
4
4
  Summary: Bob wrapper from BrynQ
5
5
  Home-page: UNKNOWN
6
6
  Author: BrynQ
@@ -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.4.3',
5
+ version='2.5.0',
6
6
  description='Bob wrapper from BrynQ',
7
7
  long_description='Bob wrapper from BrynQ',
8
8
  author='BrynQ',
File without changes