brynq-sdk-nmbrs 2.3.2.dev0__tar.gz → 2.3.4.dev0__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.
- {brynq_sdk_nmbrs-2.3.2.dev0 → brynq_sdk_nmbrs-2.3.4.dev0}/PKG-INFO +1 -1
- {brynq_sdk_nmbrs-2.3.2.dev0 → brynq_sdk_nmbrs-2.3.4.dev0}/brynq_sdk_nmbrs/bank.py +5 -2
- {brynq_sdk_nmbrs-2.3.2.dev0 → brynq_sdk_nmbrs-2.3.4.dev0}/brynq_sdk_nmbrs/schemas/address.py +8 -5
- {brynq_sdk_nmbrs-2.3.2.dev0 → brynq_sdk_nmbrs-2.3.4.dev0}/brynq_sdk_nmbrs/schemas/manager.py +19 -18
- {brynq_sdk_nmbrs-2.3.2.dev0 → brynq_sdk_nmbrs-2.3.4.dev0}/brynq_sdk_nmbrs/schemas/schedules.py +33 -17
- {brynq_sdk_nmbrs-2.3.2.dev0 → brynq_sdk_nmbrs-2.3.4.dev0}/brynq_sdk_nmbrs/schemas/wagecomponents.py +66 -9
- {brynq_sdk_nmbrs-2.3.2.dev0 → brynq_sdk_nmbrs-2.3.4.dev0}/brynq_sdk_nmbrs/wagecomponents.py +81 -45
- {brynq_sdk_nmbrs-2.3.2.dev0 → brynq_sdk_nmbrs-2.3.4.dev0}/brynq_sdk_nmbrs.egg-info/PKG-INFO +1 -1
- {brynq_sdk_nmbrs-2.3.2.dev0 → brynq_sdk_nmbrs-2.3.4.dev0}/setup.py +1 -1
- {brynq_sdk_nmbrs-2.3.2.dev0 → brynq_sdk_nmbrs-2.3.4.dev0}/brynq_sdk_nmbrs/__init__.py +0 -0
- {brynq_sdk_nmbrs-2.3.2.dev0 → brynq_sdk_nmbrs-2.3.4.dev0}/brynq_sdk_nmbrs/absence.py +0 -0
- {brynq_sdk_nmbrs-2.3.2.dev0 → brynq_sdk_nmbrs-2.3.4.dev0}/brynq_sdk_nmbrs/address.py +0 -0
- {brynq_sdk_nmbrs-2.3.2.dev0 → brynq_sdk_nmbrs-2.3.4.dev0}/brynq_sdk_nmbrs/children.py +0 -0
- {brynq_sdk_nmbrs-2.3.2.dev0 → brynq_sdk_nmbrs-2.3.4.dev0}/brynq_sdk_nmbrs/companies.py +0 -0
- {brynq_sdk_nmbrs-2.3.2.dev0 → brynq_sdk_nmbrs-2.3.4.dev0}/brynq_sdk_nmbrs/contract.py +0 -0
- {brynq_sdk_nmbrs-2.3.2.dev0 → brynq_sdk_nmbrs-2.3.4.dev0}/brynq_sdk_nmbrs/costcenter.py +0 -0
- {brynq_sdk_nmbrs-2.3.2.dev0 → brynq_sdk_nmbrs-2.3.4.dev0}/brynq_sdk_nmbrs/costunit.py +0 -0
- {brynq_sdk_nmbrs-2.3.2.dev0 → brynq_sdk_nmbrs-2.3.4.dev0}/brynq_sdk_nmbrs/days.py +0 -0
- {brynq_sdk_nmbrs-2.3.2.dev0 → brynq_sdk_nmbrs-2.3.4.dev0}/brynq_sdk_nmbrs/debtors.py +0 -0
- {brynq_sdk_nmbrs-2.3.2.dev0 → brynq_sdk_nmbrs-2.3.4.dev0}/brynq_sdk_nmbrs/department.py +0 -0
- {brynq_sdk_nmbrs-2.3.2.dev0 → brynq_sdk_nmbrs-2.3.4.dev0}/brynq_sdk_nmbrs/document.py +0 -0
- {brynq_sdk_nmbrs-2.3.2.dev0 → brynq_sdk_nmbrs-2.3.4.dev0}/brynq_sdk_nmbrs/employee_wage_tax_settings.py +0 -0
- {brynq_sdk_nmbrs-2.3.2.dev0 → brynq_sdk_nmbrs-2.3.4.dev0}/brynq_sdk_nmbrs/employees.py +0 -0
- {brynq_sdk_nmbrs-2.3.2.dev0 → brynq_sdk_nmbrs-2.3.4.dev0}/brynq_sdk_nmbrs/employment.py +0 -0
- {brynq_sdk_nmbrs-2.3.2.dev0 → brynq_sdk_nmbrs-2.3.4.dev0}/brynq_sdk_nmbrs/function.py +0 -0
- {brynq_sdk_nmbrs-2.3.2.dev0 → brynq_sdk_nmbrs-2.3.4.dev0}/brynq_sdk_nmbrs/hours.py +0 -0
- {brynq_sdk_nmbrs-2.3.2.dev0 → brynq_sdk_nmbrs-2.3.4.dev0}/brynq_sdk_nmbrs/leave.py +0 -0
- {brynq_sdk_nmbrs-2.3.2.dev0 → brynq_sdk_nmbrs-2.3.4.dev0}/brynq_sdk_nmbrs/manager.py +0 -0
- {brynq_sdk_nmbrs-2.3.2.dev0 → brynq_sdk_nmbrs-2.3.4.dev0}/brynq_sdk_nmbrs/salaries.py +0 -0
- {brynq_sdk_nmbrs-2.3.2.dev0 → brynq_sdk_nmbrs-2.3.4.dev0}/brynq_sdk_nmbrs/salary_tables.py +0 -0
- {brynq_sdk_nmbrs-2.3.2.dev0 → brynq_sdk_nmbrs-2.3.4.dev0}/brynq_sdk_nmbrs/schedules.py +0 -0
- {brynq_sdk_nmbrs-2.3.2.dev0 → brynq_sdk_nmbrs-2.3.4.dev0}/brynq_sdk_nmbrs/schemas/__init__.py +0 -0
- {brynq_sdk_nmbrs-2.3.2.dev0 → brynq_sdk_nmbrs-2.3.4.dev0}/brynq_sdk_nmbrs/schemas/absence.py +0 -0
- {brynq_sdk_nmbrs-2.3.2.dev0 → brynq_sdk_nmbrs-2.3.4.dev0}/brynq_sdk_nmbrs/schemas/bank.py +0 -0
- {brynq_sdk_nmbrs-2.3.2.dev0 → brynq_sdk_nmbrs-2.3.4.dev0}/brynq_sdk_nmbrs/schemas/children.py +0 -0
- {brynq_sdk_nmbrs-2.3.2.dev0 → brynq_sdk_nmbrs-2.3.4.dev0}/brynq_sdk_nmbrs/schemas/company.py +0 -0
- {brynq_sdk_nmbrs-2.3.2.dev0 → brynq_sdk_nmbrs-2.3.4.dev0}/brynq_sdk_nmbrs/schemas/contracts.py +0 -0
- {brynq_sdk_nmbrs-2.3.2.dev0 → brynq_sdk_nmbrs-2.3.4.dev0}/brynq_sdk_nmbrs/schemas/costcenter.py +0 -0
- {brynq_sdk_nmbrs-2.3.2.dev0 → brynq_sdk_nmbrs-2.3.4.dev0}/brynq_sdk_nmbrs/schemas/costunit.py +0 -0
- {brynq_sdk_nmbrs-2.3.2.dev0 → brynq_sdk_nmbrs-2.3.4.dev0}/brynq_sdk_nmbrs/schemas/days.py +0 -0
- {brynq_sdk_nmbrs-2.3.2.dev0 → brynq_sdk_nmbrs-2.3.4.dev0}/brynq_sdk_nmbrs/schemas/debtor.py +0 -0
- {brynq_sdk_nmbrs-2.3.2.dev0 → brynq_sdk_nmbrs-2.3.4.dev0}/brynq_sdk_nmbrs/schemas/department.py +0 -0
- {brynq_sdk_nmbrs-2.3.2.dev0 → brynq_sdk_nmbrs-2.3.4.dev0}/brynq_sdk_nmbrs/schemas/document.py +0 -0
- {brynq_sdk_nmbrs-2.3.2.dev0 → brynq_sdk_nmbrs-2.3.4.dev0}/brynq_sdk_nmbrs/schemas/employees.py +0 -0
- {brynq_sdk_nmbrs-2.3.2.dev0 → brynq_sdk_nmbrs-2.3.4.dev0}/brynq_sdk_nmbrs/schemas/employment.py +0 -0
- {brynq_sdk_nmbrs-2.3.2.dev0 → brynq_sdk_nmbrs-2.3.4.dev0}/brynq_sdk_nmbrs/schemas/function.py +0 -0
- {brynq_sdk_nmbrs-2.3.2.dev0 → brynq_sdk_nmbrs-2.3.4.dev0}/brynq_sdk_nmbrs/schemas/hours.py +0 -0
- {brynq_sdk_nmbrs-2.3.2.dev0 → brynq_sdk_nmbrs-2.3.4.dev0}/brynq_sdk_nmbrs/schemas/leave.py +0 -0
- {brynq_sdk_nmbrs-2.3.2.dev0 → brynq_sdk_nmbrs-2.3.4.dev0}/brynq_sdk_nmbrs/schemas/salary.py +0 -0
- {brynq_sdk_nmbrs-2.3.2.dev0 → brynq_sdk_nmbrs-2.3.4.dev0}/brynq_sdk_nmbrs/schemas/social_insurance.py +0 -0
- {brynq_sdk_nmbrs-2.3.2.dev0 → brynq_sdk_nmbrs-2.3.4.dev0}/brynq_sdk_nmbrs/schemas/wage_tax.py +0 -0
- {brynq_sdk_nmbrs-2.3.2.dev0 → brynq_sdk_nmbrs-2.3.4.dev0}/brynq_sdk_nmbrs/schemas/wage_tax_settings.py +0 -0
- {brynq_sdk_nmbrs-2.3.2.dev0 → brynq_sdk_nmbrs-2.3.4.dev0}/brynq_sdk_nmbrs/social_insurance.py +0 -0
- {brynq_sdk_nmbrs-2.3.2.dev0 → brynq_sdk_nmbrs-2.3.4.dev0}/brynq_sdk_nmbrs/wage_tax.py +0 -0
- {brynq_sdk_nmbrs-2.3.2.dev0 → brynq_sdk_nmbrs-2.3.4.dev0}/brynq_sdk_nmbrs.egg-info/SOURCES.txt +0 -0
- {brynq_sdk_nmbrs-2.3.2.dev0 → brynq_sdk_nmbrs-2.3.4.dev0}/brynq_sdk_nmbrs.egg-info/dependency_links.txt +0 -0
- {brynq_sdk_nmbrs-2.3.2.dev0 → brynq_sdk_nmbrs-2.3.4.dev0}/brynq_sdk_nmbrs.egg-info/not-zip-safe +0 -0
- {brynq_sdk_nmbrs-2.3.2.dev0 → brynq_sdk_nmbrs-2.3.4.dev0}/brynq_sdk_nmbrs.egg-info/requires.txt +0 -0
- {brynq_sdk_nmbrs-2.3.2.dev0 → brynq_sdk_nmbrs-2.3.4.dev0}/brynq_sdk_nmbrs.egg-info/top_level.txt +0 -0
- {brynq_sdk_nmbrs-2.3.2.dev0 → brynq_sdk_nmbrs-2.3.4.dev0}/setup.cfg +0 -0
|
@@ -1,9 +1,12 @@
|
|
|
1
1
|
import math
|
|
2
|
+
from typing import Any, Dict
|
|
3
|
+
|
|
2
4
|
import pandas as pd
|
|
3
5
|
import requests
|
|
6
|
+
|
|
4
7
|
from brynq_sdk_functions import Functions
|
|
5
|
-
|
|
6
|
-
from .schemas.bank import
|
|
8
|
+
|
|
9
|
+
from .schemas.bank import BankCreate, BankDelete, BankGet, BankUpdate
|
|
7
10
|
|
|
8
11
|
|
|
9
12
|
class Bank:
|
{brynq_sdk_nmbrs-2.3.2.dev0 → brynq_sdk_nmbrs-2.3.4.dev0}/brynq_sdk_nmbrs/schemas/address.py
RENAMED
|
@@ -1,12 +1,15 @@
|
|
|
1
|
+
from typing import Annotated, Optional
|
|
2
|
+
|
|
1
3
|
import pandas as pd
|
|
2
4
|
import pandera as pa
|
|
3
|
-
from pandera import Bool
|
|
4
|
-
from pandera.typing import Series, String, Float, DateTime
|
|
5
5
|
import pandera.extensions as extensions
|
|
6
|
-
from
|
|
7
|
-
from typing import
|
|
6
|
+
from pandera import Bool
|
|
7
|
+
from pandera.typing import DateTime, Float, Series, String
|
|
8
8
|
from pydantic import BaseModel, Field, StringConstraints
|
|
9
9
|
|
|
10
|
+
from brynq_sdk_functions import BrynQPanderaDataFrameModel
|
|
11
|
+
|
|
12
|
+
|
|
10
13
|
# ---------------------------
|
|
11
14
|
# Get Schemas
|
|
12
15
|
# ---------------------------
|
|
@@ -98,4 +101,4 @@ class AddressUpdate(BaseModel):
|
|
|
98
101
|
address_type: str = Field("HomeAddress", example="HomeAddress", description="Address type", alias="type")
|
|
99
102
|
|
|
100
103
|
class Config:
|
|
101
|
-
populate_by_name = True
|
|
104
|
+
populate_by_name = True
|
{brynq_sdk_nmbrs-2.3.2.dev0 → brynq_sdk_nmbrs-2.3.4.dev0}/brynq_sdk_nmbrs/schemas/manager.py
RENAMED
|
@@ -1,13 +1,14 @@
|
|
|
1
1
|
from datetime import datetime
|
|
2
|
+
from typing import Optional
|
|
2
3
|
|
|
3
4
|
import pandas as pd
|
|
4
5
|
import pandera as pa
|
|
5
|
-
from pandera.typing import Series, String, Float, DateTime
|
|
6
6
|
import pandera.extensions as extensions
|
|
7
|
+
from pandera.typing import DateTime, Float, Series, String
|
|
8
|
+
from pydantic import BaseModel, Field
|
|
9
|
+
|
|
7
10
|
from brynq_sdk_functions import BrynQPanderaDataFrameModel
|
|
8
11
|
|
|
9
|
-
from typing import Optional
|
|
10
|
-
from pydantic import BaseModel, Field
|
|
11
12
|
|
|
12
13
|
# ---------------------------
|
|
13
14
|
# Get Schemas
|
|
@@ -46,24 +47,24 @@ class ManagerBasicGet(BrynQPanderaDataFrameModel):
|
|
|
46
47
|
class EmployeeManagerGet(BrynQPanderaDataFrameModel):
|
|
47
48
|
employee_id: Series[pa.String] = pa.Field(coerce=True, description="Employee ID", alias="employeeId")
|
|
48
49
|
manager_id: Series[pa.String] = pa.Field(coerce=True, description="Manager ID", alias="managerId")
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
50
|
+
manager_number: Series[pd.Int64Dtype] = pa.Field(coerce=True, description="Manager number", alias="number")
|
|
51
|
+
manager_first_name: Series[pa.String] = pa.Field(coerce=True, description="Manager first name", alias="firstName")
|
|
52
|
+
manager_last_name: Series[pa.String] = pa.Field(coerce=True, description="Manager last name", alias="lastName")
|
|
53
|
+
manager_gender: Series[pa.String] = pa.Field(coerce=True, nullable=True, description="Manager gender", alias="gender")
|
|
54
|
+
manager_phone_number: Series[pa.String] = pa.Field(coerce=True, nullable=True, description="Manager phone number", alias="phoneNumber")
|
|
55
|
+
manager_cellphone: Series[pa.String] = pa.Field(coerce=True, nullable=True, description="Manager cellphone", alias="cellphone")
|
|
56
|
+
manager_fax: Series[pa.String] = pa.Field(coerce=True, nullable=True, description="Manager fax", alias="fax")
|
|
57
|
+
manager_email: Series[pa.String] = pa.Field(coerce=True, nullable=True, description="Manager email", alias="email")
|
|
57
58
|
created_at: Series[datetime] = pa.Field(coerce=True, description="Manager created at", alias="createdAt")
|
|
58
59
|
period_period: Series[pd.Int64Dtype] = pa.Field(coerce=True, description="Period", alias="period.period")
|
|
59
60
|
period_year: Series[pd.Int64Dtype] = pa.Field(coerce=True, description="Year", alias="period.year")
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
61
|
+
manager_department_id: Series[pa.String] = pa.Field(coerce=True, nullable=True, description="Department ID", alias="department.departmentId")
|
|
62
|
+
manager_department_code: Series[pd.Int64Dtype] = pa.Field(coerce=True, nullable=True, description="Department Code", alias="department.code")
|
|
63
|
+
manager_department_description: Series[pa.String] = pa.Field(coerce=True, nullable=True, description="Department Description", alias="department.description")
|
|
64
|
+
manager_department_created_at: Series[datetime] = pa.Field(coerce=True, nullable=True, description="Department Created At", alias="department.createdAt")
|
|
65
|
+
manager_function_id: Series[pa.String] = pa.Field(coerce=True, nullable=True, description="Function ID", alias="function.functionId")
|
|
66
|
+
manager_function_code: Series[pd.Int64Dtype] = pa.Field(coerce=True, nullable=True, description="Function Code", alias="function.code")
|
|
67
|
+
manager_function_description: Series[pa.String] = pa.Field(coerce=True, nullable=True, description="Function Description", alias="function.description")
|
|
67
68
|
function_created_at: Series[datetime] = pa.Field(coerce=True, nullable=True, description="Function Created At", alias="function.createdAt")
|
|
68
69
|
|
|
69
70
|
class _Annotation:
|
{brynq_sdk_nmbrs-2.3.2.dev0 → brynq_sdk_nmbrs-2.3.4.dev0}/brynq_sdk_nmbrs/schemas/schedules.py
RENAMED
|
@@ -1,20 +1,26 @@
|
|
|
1
1
|
from datetime import datetime
|
|
2
|
-
from typing import
|
|
2
|
+
from typing import Any, Dict, Optional
|
|
3
|
+
|
|
3
4
|
import pandas as pd
|
|
4
5
|
import pandera as pa
|
|
5
|
-
from pandera import Bool, Int
|
|
6
|
-
from pandera.typing import Series, String, Float, DateTime
|
|
7
6
|
import pandera.extensions as extensions
|
|
8
|
-
from
|
|
7
|
+
from pandera import Bool, Int
|
|
8
|
+
from pandera.typing import DateTime, Float, Series, String
|
|
9
9
|
from pydantic import BaseModel, Field
|
|
10
10
|
|
|
11
|
+
from brynq_sdk_functions import BrynQPanderaDataFrameModel
|
|
12
|
+
|
|
13
|
+
|
|
11
14
|
# ---------------------------
|
|
12
15
|
# Get Schemas
|
|
13
16
|
# ---------------------------
|
|
14
17
|
class ScheduleGet(BrynQPanderaDataFrameModel):
|
|
15
18
|
schedule_id: Series[String] = pa.Field(coerce=True, description="Schedule ID", alias="scheduleId")
|
|
16
|
-
|
|
19
|
+
start_date_schedule: Series[datetime] = pa.Field(coerce=True, description="Start Date", alias="startDate")
|
|
17
20
|
parttime_percentage: Series[Float] = pa.Field(coerce=True, description="Part-Time Percentage", alias="parttimePercentage")
|
|
21
|
+
hours_per_week: Series[Float] = pa.Field(coerce=True, nullable=True, description="Hours per week", alias="hoursPerWeek")
|
|
22
|
+
days_per_week: Series[Float] = pa.Field(coerce=True, nullable=True, description="Days per week", alias="daysPerWeek")
|
|
23
|
+
|
|
18
24
|
week1_hours_monday: Series[Float] = pa.Field(coerce=True, description="Week 1 Hours Monday", alias="week1.hoursMonday")
|
|
19
25
|
week1_hours_tuesday: Series[Float] = pa.Field(coerce=True, description="Week 1 Hours Tuesday", alias="week1.hoursTuesday")
|
|
20
26
|
week1_hours_wednesday: Series[Float] = pa.Field(coerce=True, description="Week 1 Hours Wednesday", alias="week1.hoursWednesday")
|
|
@@ -42,19 +48,28 @@ class ScheduleGet(BrynQPanderaDataFrameModel):
|
|
|
42
48
|
}
|
|
43
49
|
}
|
|
44
50
|
|
|
45
|
-
|
|
46
51
|
# ---------------------------
|
|
47
52
|
# Upload Schemas
|
|
48
53
|
# ---------------------------
|
|
49
|
-
class
|
|
54
|
+
class ScheduleHoursWeek1(BaseModel):
|
|
55
|
+
"""Schedule hours for each day of the week"""
|
|
56
|
+
week1_hours_monday: Optional[float] = Field(None, description="Monday hours", alias="hoursMonday")
|
|
57
|
+
week1_hours_tuesday: Optional[float] = Field(None, description="Tuesday hours", alias="hoursTuesday")
|
|
58
|
+
week1_hours_wednesday: Optional[float] = Field(None, description="Wednesday hours", alias="hoursWednesday")
|
|
59
|
+
week1_hours_thursday: Optional[float] = Field(None, description="Thursday hours", alias="hoursThursday")
|
|
60
|
+
week1_hours_friday: Optional[float] = Field(None, description="Friday hours", alias="hoursFriday")
|
|
61
|
+
week1_hours_saturday: Optional[float] = Field(None, description="Saturday hours", alias="hoursSaturday")
|
|
62
|
+
week1_hours_sunday: Optional[float] = Field(None, description="Sunday hours", alias="hoursSunday")
|
|
63
|
+
|
|
64
|
+
class ScheduleHoursWeek2(BaseModel):
|
|
50
65
|
"""Schedule hours for each day of the week"""
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
66
|
+
week2_hours_monday: Optional[float] = Field(None, description="Monday hours", alias="hoursMonday")
|
|
67
|
+
week2_hours_tuesday: Optional[float] = Field(None, description="Tuesday hours", alias="hoursTuesday")
|
|
68
|
+
week2_hours_wednesday: Optional[float] = Field(None, description="Wednesday hours", alias="hoursWednesday")
|
|
69
|
+
week2_hours_thursday: Optional[float] = Field(None, description="Thursday hours", alias="hoursThursday")
|
|
70
|
+
week2_hours_friday: Optional[float] = Field(None, description="Friday hours", alias="hoursFriday")
|
|
71
|
+
week2_hours_saturday: Optional[float] = Field(None, description="Saturday hours", alias="hoursSaturday")
|
|
72
|
+
week2_hours_sunday: Optional[float] = Field(None, description="Sunday hours", alias="hoursSunday")
|
|
58
73
|
|
|
59
74
|
class ScheduleCreate(BaseModel):
|
|
60
75
|
"""
|
|
@@ -62,8 +77,9 @@ class ScheduleCreate(BaseModel):
|
|
|
62
77
|
"""
|
|
63
78
|
start_date_schedule: datetime = Field(..., description="Start date of the schedule", example="2021-01-01T09:29:18Z", alias="startDate")
|
|
64
79
|
hours_per_week: Optional[float] = Field(None, description="Hours per week", example=40, alias="hoursPerWeek")
|
|
65
|
-
|
|
66
|
-
|
|
80
|
+
# split per week schema so we can better sync with get fields.
|
|
81
|
+
week1: Optional[ScheduleHoursWeek1] = Field(None, description="Week 1 schedule hours", alias="week1")
|
|
82
|
+
week2: Optional[ScheduleHoursWeek2] = Field(None, description="Week 2 schedule hours", alias="week2")
|
|
67
83
|
|
|
68
84
|
class Config:
|
|
69
85
|
json_encoders = {
|
|
@@ -141,4 +157,4 @@ class ScheduleUpdate(BaseModel):
|
|
|
141
157
|
)
|
|
142
158
|
|
|
143
159
|
class Config:
|
|
144
|
-
populate_by_name = True
|
|
160
|
+
populate_by_name = True
|
{brynq_sdk_nmbrs-2.3.2.dev0 → brynq_sdk_nmbrs-2.3.4.dev0}/brynq_sdk_nmbrs/schemas/wagecomponents.py
RENAMED
|
@@ -1,11 +1,19 @@
|
|
|
1
1
|
import math
|
|
2
|
+
from typing import Optional
|
|
3
|
+
|
|
2
4
|
import pandas as pd
|
|
3
5
|
import pandera as pa
|
|
4
|
-
from pandera.typing import Series, String
|
|
5
|
-
from
|
|
6
|
+
from pandera.typing import Float, Series, String
|
|
7
|
+
from pydantic import (
|
|
8
|
+
BaseModel,
|
|
9
|
+
Field,
|
|
10
|
+
confloat,
|
|
11
|
+
conint,
|
|
12
|
+
field_validator,
|
|
13
|
+
model_serializer,
|
|
14
|
+
)
|
|
6
15
|
|
|
7
|
-
from
|
|
8
|
-
from pydantic import BaseModel, Field, conint, confloat
|
|
16
|
+
from brynq_sdk_functions import BrynQPanderaDataFrameModel
|
|
9
17
|
|
|
10
18
|
|
|
11
19
|
# ---------------------------
|
|
@@ -61,8 +69,8 @@ class VariableWageComponentGet(BrynQPanderaDataFrameModel):
|
|
|
61
69
|
# Upload Schemas
|
|
62
70
|
# ---------------------------
|
|
63
71
|
class PeriodPost(BaseModel):
|
|
64
|
-
|
|
65
|
-
|
|
72
|
+
period_details_year: int = Field(..., ge=1900, le=2100, example=2021, description="Year", alias="year")
|
|
73
|
+
period_details_period: int = Field(..., ge=1, le=53, example=4, description="Period", alias="period")
|
|
66
74
|
|
|
67
75
|
class FixedWageComponentCreate(BaseModel):
|
|
68
76
|
code: int = Field(..., ge=1, example=1100, description="Wage Component Code", alias="code")
|
|
@@ -72,9 +80,36 @@ class FixedWageComponentCreate(BaseModel):
|
|
|
72
80
|
comment: Optional[str] = Field(None, example="some comment", description="Comment", alias="comment")
|
|
73
81
|
cost_center_id: Optional[str] = Field(None, example="aa506564-d1db-4fa8-83dc-d68db4cfcd82", description="Cost Center ID", alias="costCenterId")
|
|
74
82
|
cost_unit_id: Optional[str] = Field(None, example="d8ac6afb-2ac6-43bf-9880-2d382cdace43", description="Cost Unit ID", alias="costUnitId")
|
|
75
|
-
period_details: PeriodPost
|
|
83
|
+
period_details: Optional[PeriodPost] = Field(None, description="Period Details", alias="periodDetails")
|
|
76
84
|
unprotected_mode: Optional[bool] = Field(None, example=True, description="Unprotected Mode", alias="unprotectedMode")
|
|
77
85
|
|
|
86
|
+
@field_validator("end_year", "end_period", mode="before")
|
|
87
|
+
@classmethod
|
|
88
|
+
def empty_str_to_none(cls, v):
|
|
89
|
+
"""Convert empty strings to None for optional integer fields"""
|
|
90
|
+
if v == "" or v is None:
|
|
91
|
+
return None
|
|
92
|
+
return v
|
|
93
|
+
|
|
94
|
+
@field_validator("period_details", mode="before")
|
|
95
|
+
@classmethod
|
|
96
|
+
def empty_dict_to_none(cls, v):
|
|
97
|
+
"""Convert empty dicts to None for period_details"""
|
|
98
|
+
if isinstance(v, dict) and (not v or all(val is None for val in v.values())):
|
|
99
|
+
return None
|
|
100
|
+
return v
|
|
101
|
+
|
|
102
|
+
@model_serializer(mode='wrap')
|
|
103
|
+
def serialize_model(self, serializer, info):
|
|
104
|
+
data = serializer(self)
|
|
105
|
+
# Exclude periodDetails if it exists but is None or all its nested fields are None
|
|
106
|
+
if 'periodDetails' in data and data['periodDetails'] is not None:
|
|
107
|
+
if isinstance(data['periodDetails'], dict) and all(v is None for v in data['periodDetails'].values()):
|
|
108
|
+
data.pop('periodDetails')
|
|
109
|
+
elif 'periodDetails' in data and data['periodDetails'] is None:
|
|
110
|
+
data.pop('periodDetails')
|
|
111
|
+
return data
|
|
112
|
+
|
|
78
113
|
class FixedWageComponentUpdate(BaseModel):
|
|
79
114
|
fixed_wage_component_id: str = Field(..., example="643c6b90-57c6-4199-9e4e-ded553572d78", description="Fixed Wage Component ID", alias="fixedWageComponentId")
|
|
80
115
|
code: Optional[int] = Field(None, ge=1, example=1100, description="Wage Component Code", alias="code")
|
|
@@ -93,9 +128,28 @@ class VariableWageComponentCreate(BaseModel):
|
|
|
93
128
|
comment: Optional[str] = Field(None, example="comment", description="Comment", alias="comment")
|
|
94
129
|
cost_center_id: Optional[str] = Field(None, example="aa506564-d1db-4fa8-83dc-d68db4cfcd82", description="Cost Center ID", alias="costCenterId")
|
|
95
130
|
cost_unit_id: Optional[str] = Field(None, example="d8ac6afb-2ac6-43bf-9880-2d382cdace43", description="Cost Unit ID", alias="costUnitId")
|
|
96
|
-
period_details: PeriodPost
|
|
131
|
+
period_details: Optional[PeriodPost] = Field(None, description="Period Details", alias="periodDetails")
|
|
97
132
|
unprotected_mode: Optional[bool] = Field(None, example=True, description="Unprotected Mode", alias="unprotectedMode")
|
|
98
133
|
|
|
134
|
+
@field_validator("period_details", mode="before")
|
|
135
|
+
@classmethod
|
|
136
|
+
def empty_dict_to_none(cls, v):
|
|
137
|
+
"""Convert empty dicts to None for period_details"""
|
|
138
|
+
if isinstance(v, dict) and (not v or all(val is None for val in v.values())):
|
|
139
|
+
return None
|
|
140
|
+
return v
|
|
141
|
+
|
|
142
|
+
@model_serializer(mode='wrap')
|
|
143
|
+
def serialize_model(self, serializer, info):
|
|
144
|
+
data = serializer(self)
|
|
145
|
+
# Exclude periodDetails if it exists but is None or all its nested fields are None
|
|
146
|
+
if 'periodDetails' in data and data['periodDetails'] is not None:
|
|
147
|
+
if isinstance(data['periodDetails'], dict) and all(v is None for v in data['periodDetails'].values()):
|
|
148
|
+
data.pop('periodDetails')
|
|
149
|
+
elif 'periodDetails' in data and data['periodDetails'] is None:
|
|
150
|
+
data.pop('periodDetails')
|
|
151
|
+
return data
|
|
152
|
+
|
|
99
153
|
class VariableWageComponentUpdate(BaseModel):
|
|
100
154
|
variable_wage_component_id: str = Field(..., example="7fc59095-daed-4746-a7f8-a454e38e3683", description="Variable Wage Component ID", alias="variableWageComponentId")
|
|
101
155
|
code: Optional[int] = Field(None, ge=1, example=3045, description="Wage Component Code", alias="code")
|
|
@@ -107,4 +161,7 @@ class VariableWageComponentUpdate(BaseModel):
|
|
|
107
161
|
unprotected_mode: Optional[bool] = Field(None, example=True, description="Unprotected Mode", alias="unprotectedMode")
|
|
108
162
|
|
|
109
163
|
class WageComponentDelete(BaseModel):
|
|
110
|
-
|
|
164
|
+
fixed_wage_component_id: str = Field(..., example="7fc59095-daed-4746-a7f8-a454e38e3683", description="Wage Component ID", alias="wageComponentId")
|
|
165
|
+
|
|
166
|
+
class Config:
|
|
167
|
+
populate_by_name = True
|
|
@@ -1,17 +1,19 @@
|
|
|
1
|
-
import
|
|
1
|
+
from typing import Any, Dict
|
|
2
|
+
|
|
2
3
|
import pandas as pd
|
|
3
4
|
import requests
|
|
4
|
-
|
|
5
|
+
|
|
6
|
+
from brynq_sdk_functions import Functions
|
|
7
|
+
|
|
5
8
|
from .schemas.wagecomponents import (
|
|
9
|
+
FixedWageComponentCreate,
|
|
6
10
|
FixedWageComponentGet,
|
|
11
|
+
FixedWageComponentUpdate,
|
|
12
|
+
VariableWageComponentCreate,
|
|
7
13
|
VariableWageComponentGet,
|
|
8
|
-
FixedWageComponentCreate,
|
|
9
|
-
FixedWageComponentUpdate,
|
|
10
|
-
VariableWageComponentCreate,
|
|
11
14
|
VariableWageComponentUpdate,
|
|
12
|
-
WageComponentDelete
|
|
15
|
+
WageComponentDelete,
|
|
13
16
|
)
|
|
14
|
-
from brynq_sdk_functions import Functions
|
|
15
17
|
|
|
16
18
|
|
|
17
19
|
class EmployeeFixedWageComponents:
|
|
@@ -62,24 +64,25 @@ class EmployeeFixedWageComponents:
|
|
|
62
64
|
def create(self, employee_id: str, data: Dict[str, Any]):
|
|
63
65
|
"""
|
|
64
66
|
Create a new fixed wage component for an employee using Pydantic validation.
|
|
65
|
-
|
|
67
|
+
|
|
66
68
|
Args:
|
|
67
69
|
employee_id: The ID of the employee
|
|
68
70
|
data: Dictionary containing fixed wage component data with fields matching
|
|
69
71
|
the FixedWageComponentCreate schema (using camelCase field names)
|
|
70
|
-
|
|
72
|
+
|
|
71
73
|
Returns:
|
|
72
74
|
Response from the API
|
|
73
75
|
"""
|
|
74
76
|
# Validate with Pydantic model - this will raise an error if required fields are missing
|
|
75
|
-
|
|
76
|
-
|
|
77
|
+
nested_data = self.nmbrs.flat_dict_to_nested_dict(data, FixedWageComponentCreate)
|
|
78
|
+
wage_component_model = FixedWageComponentCreate(**nested_data)
|
|
79
|
+
|
|
77
80
|
if self.nmbrs.mock_mode:
|
|
78
81
|
return wage_component_model
|
|
79
|
-
|
|
82
|
+
|
|
80
83
|
# Convert validated model to dict for API payload
|
|
81
|
-
payload = wage_component_model.
|
|
82
|
-
|
|
84
|
+
payload = wage_component_model.model_dump(exclude_none=True, by_alias=True)
|
|
85
|
+
|
|
83
86
|
# Send request
|
|
84
87
|
resp = self.nmbrs.session.post(
|
|
85
88
|
url=f"{self.nmbrs.base_url}employees/{employee_id}/fixedwagecomponent",
|
|
@@ -91,24 +94,35 @@ class EmployeeFixedWageComponents:
|
|
|
91
94
|
def update(self, employee_id: str, data: Dict[str, Any]):
|
|
92
95
|
"""
|
|
93
96
|
Update an existing fixed wage component for an employee using Pydantic validation.
|
|
94
|
-
|
|
97
|
+
|
|
95
98
|
Args:
|
|
96
99
|
employee_id: The ID of the employee
|
|
97
100
|
data: Dictionary containing fixed wage component data with fields matching
|
|
98
101
|
the FixedWageComponentUpdate schema (using camelCase field names)
|
|
99
|
-
|
|
102
|
+
|
|
100
103
|
Returns:
|
|
101
104
|
Response from the API
|
|
102
105
|
"""
|
|
106
|
+
# Clean empty strings before validation
|
|
107
|
+
data = {k: (None if v == "" else v) for k, v in data.items()}
|
|
108
|
+
# Handle flat period_details fields
|
|
109
|
+
if 'period_details_period' in data and data['period_details_period'] == "":
|
|
110
|
+
data['period_details_period'] = None
|
|
111
|
+
if 'period_details_year' in data and data['period_details_year'] == "":
|
|
112
|
+
data['period_details_year'] = None
|
|
113
|
+
if 'period_details' in data and isinstance(data['period_details'], dict):
|
|
114
|
+
data['period_details'] = {k: (None if v == "" else v) for k, v in data['period_details'].items()}
|
|
115
|
+
|
|
103
116
|
# Validate with Pydantic model - this will raise an error if required fields are missing
|
|
104
|
-
|
|
105
|
-
|
|
117
|
+
nested_data = self.nmbrs.flat_dict_to_nested_dict(data, FixedWageComponentUpdate)
|
|
118
|
+
wage_component_model = FixedWageComponentUpdate(**nested_data)
|
|
119
|
+
|
|
106
120
|
if self.nmbrs.mock_mode:
|
|
107
121
|
return wage_component_model
|
|
108
|
-
|
|
122
|
+
|
|
109
123
|
# Convert validated model to dict for API payload
|
|
110
|
-
payload = wage_component_model.
|
|
111
|
-
|
|
124
|
+
payload = wage_component_model.model_dump(exclude_none=True, by_alias=True)
|
|
125
|
+
|
|
112
126
|
# Send request
|
|
113
127
|
resp = self.nmbrs.session.put(
|
|
114
128
|
url=f"{self.nmbrs.base_url}employees/{employee_id}/fixedwagecomponent",
|
|
@@ -120,20 +134,20 @@ class EmployeeFixedWageComponents:
|
|
|
120
134
|
def delete(self, employee_id: str, wagecomponent_id: str):
|
|
121
135
|
"""
|
|
122
136
|
Delete a wage component for an employee.
|
|
123
|
-
|
|
137
|
+
|
|
124
138
|
Args:
|
|
125
139
|
employee_id: The ID of the employee
|
|
126
140
|
wagecomponent_id: The ID of the wage component to delete
|
|
127
|
-
|
|
141
|
+
|
|
128
142
|
Returns:
|
|
129
143
|
Response from the API
|
|
130
144
|
"""
|
|
131
145
|
# Validate with Pydantic model
|
|
132
|
-
delete_model = WageComponentDelete(
|
|
133
|
-
|
|
146
|
+
delete_model = WageComponentDelete(fixed_wage_component_id=wagecomponent_id)
|
|
147
|
+
|
|
134
148
|
if self.nmbrs.mock_mode:
|
|
135
149
|
return delete_model
|
|
136
|
-
|
|
150
|
+
|
|
137
151
|
resp = self.nmbrs.session.delete(
|
|
138
152
|
url=f"{self.nmbrs.base_url}employees/{employee_id}/wagecomponents/{wagecomponent_id}",
|
|
139
153
|
timeout=self.nmbrs.timeout
|
|
@@ -189,24 +203,35 @@ class EmployeeVariableWageComponents:
|
|
|
189
203
|
def create(self, employee_id: str, data: Dict[str, Any]):
|
|
190
204
|
"""
|
|
191
205
|
Create a new variable wage component for an employee using Pydantic validation.
|
|
192
|
-
|
|
206
|
+
|
|
193
207
|
Args:
|
|
194
208
|
employee_id: The ID of the employee
|
|
195
209
|
data: Dictionary containing variable wage component data with fields matching
|
|
196
210
|
the VariableWageComponentCreate schema (using camelCase field names)
|
|
197
|
-
|
|
211
|
+
|
|
198
212
|
Returns:
|
|
199
213
|
Response from the API
|
|
200
214
|
"""
|
|
215
|
+
# Clean empty strings before validation
|
|
216
|
+
data = {k: (None if v == "" else v) for k, v in data.items()}
|
|
217
|
+
# Handle flat period_details fields
|
|
218
|
+
if 'period_details_period' in data and data['period_details_period'] == "":
|
|
219
|
+
data['period_details_period'] = None
|
|
220
|
+
if 'period_details_year' in data and data['period_details_year'] == "":
|
|
221
|
+
data['period_details_year'] = None
|
|
222
|
+
if 'period_details' in data and isinstance(data['period_details'], dict):
|
|
223
|
+
data['period_details'] = {k: (None if v == "" else v) for k, v in data['period_details'].items()}
|
|
224
|
+
|
|
201
225
|
# Validate with Pydantic model - this will raise an error if required fields are missing
|
|
202
|
-
|
|
203
|
-
|
|
226
|
+
nested_data = self.nmbrs.flat_dict_to_nested_dict(data, VariableWageComponentCreate)
|
|
227
|
+
wage_component_model = VariableWageComponentCreate(**nested_data)
|
|
228
|
+
|
|
204
229
|
if self.nmbrs.mock_mode:
|
|
205
230
|
return wage_component_model
|
|
206
|
-
|
|
231
|
+
|
|
207
232
|
# Convert validated model to dict for API payload
|
|
208
|
-
payload = wage_component_model.
|
|
209
|
-
|
|
233
|
+
payload = wage_component_model.model_dump(exclude_none=True, by_alias=True)
|
|
234
|
+
|
|
210
235
|
# Send request
|
|
211
236
|
resp = self.nmbrs.session.post(
|
|
212
237
|
url=f"{self.nmbrs.base_url}employees/{employee_id}/variablewagecomponent",
|
|
@@ -218,24 +243,35 @@ class EmployeeVariableWageComponents:
|
|
|
218
243
|
def update(self, employee_id: str, data: Dict[str, Any]):
|
|
219
244
|
"""
|
|
220
245
|
Update an existing variable wage component for an employee using Pydantic validation.
|
|
221
|
-
|
|
246
|
+
|
|
222
247
|
Args:
|
|
223
248
|
employee_id: The ID of the employee
|
|
224
249
|
data: Dictionary containing variable wage component data with fields matching
|
|
225
250
|
the VariableWageComponentUpdate schema (using camelCase field names)
|
|
226
|
-
|
|
251
|
+
|
|
227
252
|
Returns:
|
|
228
253
|
Response from the API
|
|
229
254
|
"""
|
|
255
|
+
# Clean empty strings before validation
|
|
256
|
+
data = {k: (None if v == "" else v) for k, v in data.items()}
|
|
257
|
+
# Handle flat period_details fields
|
|
258
|
+
if 'period_details_period' in data and data['period_details_period'] == "":
|
|
259
|
+
data['period_details_period'] = None
|
|
260
|
+
if 'period_details_year' in data and data['period_details_year'] == "":
|
|
261
|
+
data['period_details_year'] = None
|
|
262
|
+
if 'period_details' in data and isinstance(data['period_details'], dict):
|
|
263
|
+
data['period_details'] = {k: (None if v == "" else v) for k, v in data['period_details'].items()}
|
|
264
|
+
|
|
230
265
|
# Validate with Pydantic model - this will raise an error if required fields are missing
|
|
231
|
-
|
|
232
|
-
|
|
266
|
+
nested_data = self.nmbrs.flat_dict_to_nested_dict(data, VariableWageComponentUpdate)
|
|
267
|
+
wage_component_model = VariableWageComponentUpdate(**nested_data)
|
|
268
|
+
|
|
233
269
|
if self.nmbrs.mock_mode:
|
|
234
270
|
return wage_component_model
|
|
235
|
-
|
|
271
|
+
|
|
236
272
|
# Convert validated model to dict for API payload
|
|
237
|
-
payload = wage_component_model.
|
|
238
|
-
|
|
273
|
+
payload = wage_component_model.model_dump(exclude_none=True, by_alias=True)
|
|
274
|
+
|
|
239
275
|
# Send request
|
|
240
276
|
resp = self.nmbrs.session.put(
|
|
241
277
|
url=f"{self.nmbrs.base_url}employees/{employee_id}/variablewagecomponent",
|
|
@@ -247,20 +283,20 @@ class EmployeeVariableWageComponents:
|
|
|
247
283
|
def delete(self, employee_id: str, wagecomponent_id: str):
|
|
248
284
|
"""
|
|
249
285
|
Delete a wage component for an employee.
|
|
250
|
-
|
|
286
|
+
|
|
251
287
|
Args:
|
|
252
288
|
employee_id: The ID of the employee
|
|
253
289
|
wagecomponent_id: The ID of the wage component to delete
|
|
254
|
-
|
|
290
|
+
|
|
255
291
|
Returns:
|
|
256
292
|
Response from the API
|
|
257
293
|
"""
|
|
258
294
|
# Validate with Pydantic model
|
|
259
|
-
delete_model = WageComponentDelete(
|
|
260
|
-
|
|
295
|
+
delete_model = WageComponentDelete(fixed_wage_component_id=wagecomponent_id)
|
|
296
|
+
|
|
261
297
|
if self.nmbrs.mock_mode:
|
|
262
298
|
return delete_model
|
|
263
|
-
|
|
299
|
+
|
|
264
300
|
resp = self.nmbrs.session.delete(
|
|
265
301
|
url=f"{self.nmbrs.base_url}employees/{employee_id}/wagecomponents/{wagecomponent_id}",
|
|
266
302
|
timeout=self.nmbrs.timeout
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{brynq_sdk_nmbrs-2.3.2.dev0 → brynq_sdk_nmbrs-2.3.4.dev0}/brynq_sdk_nmbrs/schemas/__init__.py
RENAMED
|
File without changes
|
{brynq_sdk_nmbrs-2.3.2.dev0 → brynq_sdk_nmbrs-2.3.4.dev0}/brynq_sdk_nmbrs/schemas/absence.py
RENAMED
|
File without changes
|
|
File without changes
|
{brynq_sdk_nmbrs-2.3.2.dev0 → brynq_sdk_nmbrs-2.3.4.dev0}/brynq_sdk_nmbrs/schemas/children.py
RENAMED
|
File without changes
|
{brynq_sdk_nmbrs-2.3.2.dev0 → brynq_sdk_nmbrs-2.3.4.dev0}/brynq_sdk_nmbrs/schemas/company.py
RENAMED
|
File without changes
|
{brynq_sdk_nmbrs-2.3.2.dev0 → brynq_sdk_nmbrs-2.3.4.dev0}/brynq_sdk_nmbrs/schemas/contracts.py
RENAMED
|
File without changes
|
{brynq_sdk_nmbrs-2.3.2.dev0 → brynq_sdk_nmbrs-2.3.4.dev0}/brynq_sdk_nmbrs/schemas/costcenter.py
RENAMED
|
File without changes
|
{brynq_sdk_nmbrs-2.3.2.dev0 → brynq_sdk_nmbrs-2.3.4.dev0}/brynq_sdk_nmbrs/schemas/costunit.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{brynq_sdk_nmbrs-2.3.2.dev0 → brynq_sdk_nmbrs-2.3.4.dev0}/brynq_sdk_nmbrs/schemas/department.py
RENAMED
|
File without changes
|
{brynq_sdk_nmbrs-2.3.2.dev0 → brynq_sdk_nmbrs-2.3.4.dev0}/brynq_sdk_nmbrs/schemas/document.py
RENAMED
|
File without changes
|
{brynq_sdk_nmbrs-2.3.2.dev0 → brynq_sdk_nmbrs-2.3.4.dev0}/brynq_sdk_nmbrs/schemas/employees.py
RENAMED
|
File without changes
|
{brynq_sdk_nmbrs-2.3.2.dev0 → brynq_sdk_nmbrs-2.3.4.dev0}/brynq_sdk_nmbrs/schemas/employment.py
RENAMED
|
File without changes
|
{brynq_sdk_nmbrs-2.3.2.dev0 → brynq_sdk_nmbrs-2.3.4.dev0}/brynq_sdk_nmbrs/schemas/function.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{brynq_sdk_nmbrs-2.3.2.dev0 → brynq_sdk_nmbrs-2.3.4.dev0}/brynq_sdk_nmbrs/schemas/wage_tax.py
RENAMED
|
File without changes
|
|
File without changes
|
{brynq_sdk_nmbrs-2.3.2.dev0 → brynq_sdk_nmbrs-2.3.4.dev0}/brynq_sdk_nmbrs/social_insurance.py
RENAMED
|
File without changes
|
|
File without changes
|
{brynq_sdk_nmbrs-2.3.2.dev0 → brynq_sdk_nmbrs-2.3.4.dev0}/brynq_sdk_nmbrs.egg-info/SOURCES.txt
RENAMED
|
File without changes
|
|
File without changes
|
{brynq_sdk_nmbrs-2.3.2.dev0 → brynq_sdk_nmbrs-2.3.4.dev0}/brynq_sdk_nmbrs.egg-info/not-zip-safe
RENAMED
|
File without changes
|
{brynq_sdk_nmbrs-2.3.2.dev0 → brynq_sdk_nmbrs-2.3.4.dev0}/brynq_sdk_nmbrs.egg-info/requires.txt
RENAMED
|
File without changes
|
{brynq_sdk_nmbrs-2.3.2.dev0 → brynq_sdk_nmbrs-2.3.4.dev0}/brynq_sdk_nmbrs.egg-info/top_level.txt
RENAMED
|
File without changes
|
|
File without changes
|