brynq-sdk-nmbrs 2.3.4.dev0__py3-none-any.whl → 2.4.5__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.
Files changed (51) hide show
  1. brynq_sdk_nmbrs/__init__.py +95 -91
  2. brynq_sdk_nmbrs/absence.py +1 -4
  3. brynq_sdk_nmbrs/address.py +5 -81
  4. brynq_sdk_nmbrs/bank.py +1 -2
  5. brynq_sdk_nmbrs/companies.py +130 -39
  6. brynq_sdk_nmbrs/contract.py +0 -1
  7. brynq_sdk_nmbrs/days.py +1 -1
  8. brynq_sdk_nmbrs/debtors.py +53 -65
  9. brynq_sdk_nmbrs/department.py +23 -111
  10. brynq_sdk_nmbrs/document.py +195 -4
  11. brynq_sdk_nmbrs/employee_wage_tax_settings.py +13 -5
  12. brynq_sdk_nmbrs/employees.py +55 -21
  13. brynq_sdk_nmbrs/employment.py +0 -2
  14. brynq_sdk_nmbrs/extra_fields.py +126 -0
  15. brynq_sdk_nmbrs/function.py +35 -97
  16. brynq_sdk_nmbrs/leave.py +53 -58
  17. brynq_sdk_nmbrs/manager.py +51 -35
  18. brynq_sdk_nmbrs/salaries.py +48 -65
  19. brynq_sdk_nmbrs/salary_tables.py +1 -4
  20. brynq_sdk_nmbrs/schedules.py +5 -78
  21. brynq_sdk_nmbrs/schemas/absence.py +26 -16
  22. brynq_sdk_nmbrs/schemas/address.py +2 -29
  23. brynq_sdk_nmbrs/schemas/children.py +0 -2
  24. brynq_sdk_nmbrs/schemas/contracts.py +7 -6
  25. brynq_sdk_nmbrs/schemas/costcenter.py +2 -2
  26. brynq_sdk_nmbrs/schemas/costunit.py +2 -0
  27. brynq_sdk_nmbrs/schemas/days.py +13 -11
  28. brynq_sdk_nmbrs/schemas/debtor.py +6 -28
  29. brynq_sdk_nmbrs/schemas/department.py +5 -39
  30. brynq_sdk_nmbrs/schemas/document.py +0 -2
  31. brynq_sdk_nmbrs/schemas/employee_wage_tax_settings.py +75 -0
  32. brynq_sdk_nmbrs/schemas/employees.py +2 -0
  33. brynq_sdk_nmbrs/schemas/extra_fields.py +56 -0
  34. brynq_sdk_nmbrs/schemas/function.py +5 -32
  35. brynq_sdk_nmbrs/schemas/hours.py +5 -1
  36. brynq_sdk_nmbrs/schemas/leave.py +17 -6
  37. brynq_sdk_nmbrs/schemas/manager.py +11 -20
  38. brynq_sdk_nmbrs/schemas/salary.py +11 -1
  39. brynq_sdk_nmbrs/schemas/schedules.py +2 -54
  40. brynq_sdk_nmbrs/schemas/svw_settings.py +116 -0
  41. brynq_sdk_nmbrs/schemas/wage_tax.py +53 -21
  42. brynq_sdk_nmbrs/schemas/wagecomponents.py +6 -9
  43. brynq_sdk_nmbrs/svw_settings.py +213 -0
  44. brynq_sdk_nmbrs/wage_tax.py +120 -11
  45. {brynq_sdk_nmbrs-2.3.4.dev0.dist-info → brynq_sdk_nmbrs-2.4.5.dist-info}/METADATA +1 -1
  46. brynq_sdk_nmbrs-2.4.5.dist-info/RECORD +58 -0
  47. brynq_sdk_nmbrs/schemas/social_insurance.py +0 -73
  48. brynq_sdk_nmbrs/social_insurance.py +0 -130
  49. brynq_sdk_nmbrs-2.3.4.dev0.dist-info/RECORD +0 -55
  50. {brynq_sdk_nmbrs-2.3.4.dev0.dist-info → brynq_sdk_nmbrs-2.4.5.dist-info}/WHEEL +0 -0
  51. {brynq_sdk_nmbrs-2.3.4.dev0.dist-info → brynq_sdk_nmbrs-2.4.5.dist-info}/top_level.txt +0 -0
@@ -1,73 +0,0 @@
1
- import pandas as pd
2
- import pandera as pa
3
- from pandera import Bool
4
- from pandera.typing import Series, String, DateTime
5
- from brynq_sdk_functions import BrynQPanderaDataFrameModel
6
- from typing import Optional
7
- from pydantic import BaseModel, Field
8
-
9
- # ---------------------------
10
- # Get Schemas
11
- # ---------------------------
12
- class SocialInsuranceGet(BrynQPanderaDataFrameModel):
13
- employee_id: Series[String] = pa.Field(coerce=True, description="Employee ID", alias="employee_id")
14
- id: Series[String] = pa.Field(coerce=True, description="SVW Settings ID", alias="Id")
15
- creation_date: Series[DateTime] = pa.Field(coerce=True, nullable=True, description="Creation Date", alias="CreationDate")
16
- start_period: Series[pd.Int64Dtype] = pa.Field(coerce=True, nullable=True, description="Start Period", alias="StartPeriod")
17
- start_year: Series[pd.Int64Dtype] = pa.Field(coerce=True, nullable=True, description="Start Year", alias="StartYear")
18
- influence_obliged_insurance: Series[Bool] = pa.Field(coerce=True, nullable=True, description="Whether employee influences obligatory insurance status", alias="InfluenceObligedInsurance")
19
- wage_cost_benefit: Series[Bool] = pa.Field(coerce=True, nullable=True, description="Eligible for wage cost subsidy (LKV - Loonkostenvoordeel)", alias="WageCostBenefit")
20
- cao: Series[String] = pa.Field(coerce=True, nullable=True, description="Collectieve Arbeidsovereenkomst (Collective Labor Agreement)", alias="CAO")
21
- wao_wia: Series[Bool] = pa.Field(coerce=True, nullable=True, description="Disability Insurance (WAO/WIA - Wet Arbeidsongeschiktheid)", alias="Wao_Wia")
22
- ww: Series[Bool] = pa.Field(coerce=True, nullable=True, description="Unemployment Insurance (WW - Werkloosheidswet)", alias="Ww")
23
- zw: Series[Bool] = pa.Field(coerce=True, nullable=True, description="Sickness Benefits (ZW - Ziektewet)", alias="Zw")
24
- income_related_contribution_zvw: Series[Bool] = pa.Field(coerce=True, nullable=True, description="Income Related Health Insurance Contribution (ZVW - Zorgverzekeringswet)", alias="IncomeRelatedContributionZvw")
25
- code_zvw: Series[String] = pa.Field(coerce=True, nullable=True, description="Health Insurance Code (ZVW)", alias="CodeZvw")
26
- risk_group: Series[String] = pa.Field(coerce=True, nullable=True, description="Risk Group for premium calculation", alias="RiskGroup")
27
- sector: Series[String] = pa.Field(coerce=True, nullable=True, description="Industry Sector code", alias="Sector")
28
- employment_type: Series[pd.Int64Dtype] = pa.Field(coerce=True, nullable=True, description="Employment Type", alias="EmploymentType")
29
- phase_classification: Series[pd.Int64Dtype] = pa.Field(coerce=True, nullable=True, description="Phase Classification", alias="PhaseClassification")
30
- employment_sequence_tax_id: Series[pd.Int64Dtype] = pa.Field(coerce=True, nullable=True, description="Employment Sequence Tax ID", alias="EmploymentSequenceTaxId")
31
-
32
- class _Annotation:
33
- primary_key = "id"
34
- foreign_keys = {
35
- "employee_id": {
36
- "parent_schema": "EmployeeSchema",
37
- "parent_column": "employee_id",
38
- "cardinality": "N:1"
39
- }
40
- }
41
-
42
- # ---------------------------
43
- # Upload Schemas
44
- # ---------------------------
45
- class SocialInsuranceUpdate(BaseModel):
46
- employee_id: int = Field(None, example="1234567890", description="Employee ID", alias="EmployeeId")
47
- influence_obliged_insurance: Optional[bool] = Field(None, example="1234567890", description="Influence Obliged Insurance", alias="InfluenceObligedInsurance")
48
- wage_cost_benefit: bool = Field(..., example="1234567890", description="Wage Cost Benefit", alias="WageCostBenefit")
49
- code_cao: int = Field(..., example="1234567890", description="Code Cao", alias="CodeCao")
50
- wao_wia: bool = Field(..., example="1234567890", description="Wao Wia", alias="Wao_Wia")
51
- ww: bool = Field(..., example="1234567890", description="Ww", alias="Ww")
52
- zw: bool = Field(..., example="1234567890", description="Zw", alias="Zw")
53
- income_related_contribution_zvw: bool = Field(None, example="1234567890", description="Income Related Contribution Zvw", alias="IncomeRelatedContributionZvw")
54
- code_zvw: Optional[int] = Field(None, example="1234567890", description="Code Zvw", alias="CodeZvw")
55
- risk_group: int = Field(None, example="1234567890", description="Risk Group", alias="RiskGroup")
56
- sector: int = Field(None, example="1234567890", description="Sector", alias="Sector")
57
- employment_type: int = Field(None, example="1234567890", description="Employment Type", alias="EmploymentType")
58
- phase_classification: int = Field(None, example="1234567890", description="Phase Classification", alias="PhaseClassification")
59
- employment_sequence_tax_id: int = Field(None, example="1234567890", description="Employment Sequence Tax Id", alias="EmploymentSequenceTaxId")
60
-
61
- def to_soap_settings(self, soap_client):
62
- """Convert to SOAP SVWSettings object"""
63
- SVWSettingsType = soap_client.get_type(
64
- '{https://api.nmbrs.nl/soap/v3/EmployeeService}SVWSettings'
65
- )
66
-
67
- # Get payload with alias renaming, excluding employee_id field
68
- payload = self.model_dump(exclude_none=True, by_alias=True, exclude={'employee_id'})
69
-
70
- return SVWSettingsType(**payload)
71
-
72
- class Config:
73
- populate_by_name = True
@@ -1,130 +0,0 @@
1
- from typing import Any, Dict, Union, Tuple
2
- import pandas as pd
3
-
4
- from .schemas.social_insurance import SocialInsuranceUpdate, SocialInsuranceGet
5
- from zeep.exceptions import Fault
6
- from zeep.helpers import serialize_object
7
- from brynq_sdk_functions import Functions
8
-
9
-
10
- class SocialInsurance:
11
- def __init__(self, nmbrs):
12
- self.nmbrs = nmbrs
13
- self.soap_client_employees = nmbrs.soap_client_employees
14
-
15
- def get(self, employee_id: Union[int, str]) -> Tuple[pd.DataFrame, pd.DataFrame]:
16
- """
17
- Get current social insurance settings for an employee.
18
-
19
- Args:
20
- employee_id: The ID of the employee
21
-
22
- Returns:
23
- Tuple of (valid_data, invalid_data) DataFrames
24
- """
25
- if self.nmbrs.mock_mode:
26
- return pd.DataFrame(), pd.DataFrame()
27
-
28
- try:
29
- response = self.nmbrs.soap_client_employees.service.SVW_GetCurrent(
30
- EmployeeId=int(employee_id),
31
- _soapheaders={'AuthHeaderWithDomain': self.nmbrs.soap_auth_header_employees}
32
- )
33
-
34
- if response:
35
- serialized_response = serialize_object(response)
36
- if not isinstance(serialized_response, list):
37
- serialized_response = [serialized_response]
38
- df = pd.DataFrame(serialized_response)
39
- df['employee_id'] = str(employee_id)
40
-
41
- valid_data, invalid_data = Functions.validate_data(df=df, schema=SocialInsuranceGet, debug=True)
42
- return valid_data, invalid_data
43
- else:
44
- return pd.DataFrame(), pd.DataFrame()
45
-
46
- except Fault as e:
47
- raise Exception(f"SOAP request failed: {str(e)}")
48
- except Exception as e:
49
- raise Exception(f"Failed to get Social Insurance: {str(e)}")
50
-
51
- def get_all_by_company(self, company_id: Union[int, str]) -> Tuple[pd.DataFrame, pd.DataFrame]:
52
- """
53
- Get all social insurance settings for all employees in a company.
54
-
55
- Args:
56
- company_id: The ID of the company
57
-
58
- Returns:
59
- Tuple of (valid_data, invalid_data) DataFrames
60
- """
61
- if self.nmbrs.mock_mode:
62
- return pd.DataFrame(), pd.DataFrame()
63
-
64
- try:
65
- response = self.nmbrs.soap_client_employees.service.SVW_GetAll_AllEmployeesByCompany(
66
- CompanyID=int(company_id),
67
- _soapheaders={'AuthHeaderWithDomain': self.nmbrs.soap_auth_header_employees}
68
- )
69
-
70
- if response:
71
- all_data = []
72
- for emp in response:
73
- emp_id = emp.EmployeeId
74
- if emp.EmployeeSVWSettings and emp.EmployeeSVWSettings.EmployeeSVWSettings:
75
- for svw in emp.EmployeeSVWSettings.EmployeeSVWSettings:
76
- svw_data = serialize_object(svw)
77
- svw_data['employee_id'] = str(emp_id)
78
- all_data.append(svw_data)
79
-
80
- if all_data:
81
- df = pd.DataFrame(all_data)
82
- valid_data, invalid_data = Functions.validate_data(df=df, schema=SocialInsuranceGet, debug=True)
83
- return valid_data, invalid_data
84
- else:
85
- return pd.DataFrame(), pd.DataFrame()
86
- else:
87
- return pd.DataFrame(), pd.DataFrame()
88
-
89
- except Fault as e:
90
- raise Exception(f"SOAP request failed: {str(e)}")
91
- except Exception as e:
92
- raise Exception(f"Failed to get Social Insurance for company: {str(e)}")
93
-
94
- def update(self, data: Dict[str, Any]) -> pd.DataFrame:
95
- try:
96
- social_insurance_model = SocialInsuranceUpdate(**data)
97
-
98
- if self.nmbrs.mock_mode:
99
- return social_insurance_model
100
-
101
- # Use the model's built-in SOAP conversion method
102
- social_insurance_settings = social_insurance_model.to_soap_settings(self.nmbrs.soap_client_employees)
103
-
104
- # Make SOAP request with clean, simple call
105
- response = self.nmbrs.soap_client_employees.service.SVW_UpdateCurrent(
106
- EmployeeId=social_insurance_model.employee_id,
107
- SVWSettings=social_insurance_settings,
108
- _soapheaders=[self.nmbrs.soap_auth_header]
109
- )
110
-
111
- # Convert response to DataFrame
112
- if response:
113
- # Convert Zeep objects to Python dictionaries
114
- serialized_response = serialize_object(response)
115
-
116
- # Convert to list if it's not already
117
- if not isinstance(serialized_response, list):
118
- serialized_response = [serialized_response]
119
-
120
- # Convert to DataFrame
121
- df = pd.DataFrame(serialized_response)
122
-
123
- return df
124
- else:
125
- return pd.DataFrame()
126
-
127
- except Fault as e:
128
- raise Exception(f"SOAP request failed: {str(e)}")
129
- except Exception as e:
130
- raise Exception(f"Failed to update Social Insurance: {str(e)}")
@@ -1,55 +0,0 @@
1
- brynq_sdk_nmbrs/__init__.py,sha256=nLoRHD7jH2z521_hyeG0uMPEAvpz-BFQ1nUmgWWwRJI,10889
2
- brynq_sdk_nmbrs/absence.py,sha256=xNzoDgw0Jj-JYS68lpwNzbrDy3BKsR-Iz-anlJW7YS0,4658
3
- brynq_sdk_nmbrs/address.py,sha256=x_AmaNPp-rjsHie2i6EfiC5hYoZQbJxiLYB7-REvEyg,5427
4
- brynq_sdk_nmbrs/bank.py,sha256=_XRQMBgSovaaLhx_lIaFDtGOeBtRbZ4skaXgtbck3lc,4168
5
- brynq_sdk_nmbrs/children.py,sha256=jlA8R0fLTwq53TTYZQPar01iZWtZgGiDnZxdIELXKGc,4377
6
- brynq_sdk_nmbrs/companies.py,sha256=e4I6mjItbuQN-ZeEe1I4HD-4x3lW5brTAc0C6fMEloQ,5243
7
- brynq_sdk_nmbrs/contract.py,sha256=lccpAbhNjj4x45WOnF7h2LlBG5XCXelnis7WyPvJJrE,4527
8
- brynq_sdk_nmbrs/costcenter.py,sha256=eT_tHPI5VzC1Do46fYlXbv1Pi4l9izi6b03eXJkjfLg,7923
9
- brynq_sdk_nmbrs/costunit.py,sha256=AUpik9lz-HaE23Z1_kw0dWdcgaBR9m0UDUK8AIcXj-E,3269
10
- brynq_sdk_nmbrs/days.py,sha256=T2ZdMCN1iE6WseX40Hn8-iNRCz47kWUuwNVRwQJX7TY,4534
11
- brynq_sdk_nmbrs/debtors.py,sha256=5YRqi3n6XoI3ccubRt6AnEj80oAGsAJjUlss_dwZxVo,3274
12
- brynq_sdk_nmbrs/department.py,sha256=uhV-ZlnfcrhhZznXYiWSoySRynE73AW5XuD7CWYEqNM,8324
13
- brynq_sdk_nmbrs/document.py,sha256=9t1l9oN2k6xZj0OkhBRjvVijGTuQNM_5o5AyYloJvY8,2539
14
- brynq_sdk_nmbrs/employee_wage_tax_settings.py,sha256=mFFZ8ltivztBOSLG-V_bfJgaxMVLefr6syfBHZQLmfQ,4031
15
- brynq_sdk_nmbrs/employees.py,sha256=O-agb_l8cb3cFjZ46u4XekrNF2B2TZwyen6EnkOeQqI,10944
16
- brynq_sdk_nmbrs/employment.py,sha256=L5Oc-5Y3bj2Eqm5u8lDGIgwYSS-leK8fRaVQKePCLhI,3839
17
- brynq_sdk_nmbrs/function.py,sha256=QuDHrgVy_KNP2rM6L53MXKYJsr5FZlb8vwTcW3AM6P8,7379
18
- brynq_sdk_nmbrs/hours.py,sha256=3pbl6IA8BBC6wrfTvkJha1LJi4SjrZCBINUANhuDvDQ,8140
19
- brynq_sdk_nmbrs/leave.py,sha256=XL3xXNUmkjpbvoXjY42m4uLm4rfB4WsvU0WDP2t88N8,8270
20
- brynq_sdk_nmbrs/manager.py,sha256=wE2UJYPsKUN5jv3HmLpVAERcxcChwoMLfFgja8vxM6U,9441
21
- brynq_sdk_nmbrs/salaries.py,sha256=zGKPrkvm1672gYR7aVwXUnLP3AbyoUhWn2TGZANLggA,5500
22
- brynq_sdk_nmbrs/salary_tables.py,sha256=T7_bJE-CtRF08FWyLJnXm5Q3Q5Usozx4iCByqoTPOwo,9390
23
- brynq_sdk_nmbrs/schedules.py,sha256=vXJ3iZ3BatosL3V_v7UlABrTJVmXXpgSItCrxrCfDXc,5714
24
- brynq_sdk_nmbrs/social_insurance.py,sha256=4hmuXoeHGl2LUhXwtRL2KMXFu9iyrUgsYHTgUAINMSA,5105
25
- brynq_sdk_nmbrs/wage_tax.py,sha256=ukNV-BxOHiwPm0ktYdvuul-S6RZuJWHN34RpAdV1rH4,9554
26
- brynq_sdk_nmbrs/wagecomponents.py,sha256=fr9FpRMyB9yxQTT2t_5_Aa9_CdjqN9erj0ZseaGJjkM,11611
27
- brynq_sdk_nmbrs/schemas/__init__.py,sha256=rwMb9AJSBXn_50SOa1rIvwOsCrtpj3vQxjXioxrxuyI,2301
28
- brynq_sdk_nmbrs/schemas/absence.py,sha256=f2ZDpy0qnyUyCjk2JjTNCazB_12lmP462MkI4eyf3ws,3320
29
- brynq_sdk_nmbrs/schemas/address.py,sha256=Wd_Jq8bEOpKYSHMoDgG0P6fme8SRmQVK9h3zkSYsDlE,5767
30
- brynq_sdk_nmbrs/schemas/bank.py,sha256=QWMGevA4TKju8i20kAwEaV3FW7tpG4vjo0XTQvX90pw,4359
31
- brynq_sdk_nmbrs/schemas/children.py,sha256=Vae7v2XPKwGQh3Oiz8cg-N0nbnTxDGVzMjOA7cKzFCY,3293
32
- brynq_sdk_nmbrs/schemas/company.py,sha256=utYRXj_ch-RmI-AIShTqPj-LpdftEc8seHzkHZbxgew,1049
33
- brynq_sdk_nmbrs/schemas/contracts.py,sha256=g5Wcn6QGhc95ZIyySSECiyMKJ_lUoeQgfa8rb-30ms0,4138
34
- brynq_sdk_nmbrs/schemas/costcenter.py,sha256=YYuHr_9eNxM3pRXLYEBT4CU8KCleyJO9O-2d-_91AME,6961
35
- brynq_sdk_nmbrs/schemas/costunit.py,sha256=WsICBZz2xliPoRyl1qT61AzcHE0o2ytmQLWCTmTSHww,1682
36
- brynq_sdk_nmbrs/schemas/days.py,sha256=rLMETxP9yYD7mBX2pZDK9IJs4w16ejuwZ0tBip9bY6Q,6774
37
- brynq_sdk_nmbrs/schemas/debtor.py,sha256=iCrVgSvwn0qXLGsEDlthmCznO_a2SsDWIV6ipsZmjZw,1608
38
- brynq_sdk_nmbrs/schemas/department.py,sha256=Rhm-vTq5QdvMZeCrsgTF3hvzo1IC76MT4f2Gi8nK5qk,4475
39
- brynq_sdk_nmbrs/schemas/document.py,sha256=RXTWQqoURv1G25foLtjcmWxcbFjneiuzlKjLcgGV_2E,598
40
- brynq_sdk_nmbrs/schemas/employees.py,sha256=23bIe7KJIiVGrNSzDnUZIpNd5JVRxWS1x9V8qqMj7ms,11327
41
- brynq_sdk_nmbrs/schemas/employment.py,sha256=cAZ5hfn01ipv3gTB3cSVRYKBBoeXSbE2K8L5nu0T2QY,2489
42
- brynq_sdk_nmbrs/schemas/function.py,sha256=fPtF1yYJ_UMTx0ZTT2I3vBMW430doD3oi0HZ892shh8,3427
43
- brynq_sdk_nmbrs/schemas/hours.py,sha256=dwH7_Dn0atztYHh35UzEX2i6e1Jr8ltZun_zsAXbbRw,7845
44
- brynq_sdk_nmbrs/schemas/leave.py,sha256=IGV_n3lIeMQ5m9jV9ew2dz-F0oaN_BQBuiQ8h2tQ3ss,3893
45
- brynq_sdk_nmbrs/schemas/manager.py,sha256=X6YdhSU2tqpTyjZzTaluPREBUqzskROwjuXvVg2OPyM,9176
46
- brynq_sdk_nmbrs/schemas/salary.py,sha256=2dU9Pj1FM_4mGJEZAAsU1-6z6Wkjhc_cyjuN5Gdok_s,6168
47
- brynq_sdk_nmbrs/schemas/schedules.py,sha256=ycS3Gb7ozqXro-56I1jQqaI_EP4fDPLRGYKkOdL06vI,10068
48
- brynq_sdk_nmbrs/schemas/social_insurance.py,sha256=Bmxzas6rFZ5j127GtvixsZJWv0PAucVZ_m73p_THryo,5377
49
- brynq_sdk_nmbrs/schemas/wage_tax.py,sha256=5BKZCwy6pZGyNRiPftN53bkLkUZkAIHcPice6aJsOmo,12122
50
- brynq_sdk_nmbrs/schemas/wage_tax_settings.py,sha256=LkZqNff4Eo79HdwB-o9fYwpZh-fqBccf_DnHWkWNRRM,5705
51
- brynq_sdk_nmbrs/schemas/wagecomponents.py,sha256=_l9KlS1z_-L3rHVrl2Q-rYMUcWJmv-DUx3P4Anm6Ans,9711
52
- brynq_sdk_nmbrs-2.3.4.dev0.dist-info/METADATA,sha256=_W8lsNDqbqkyJa0DY1M68yON-gjGcKPgsa_lSwtLSlE,534
53
- brynq_sdk_nmbrs-2.3.4.dev0.dist-info/WHEEL,sha256=wUyA8OaulRlbfwMtmQsvNngGrxQHAvkKcvRmdizlJi0,92
54
- brynq_sdk_nmbrs-2.3.4.dev0.dist-info/top_level.txt,sha256=LrSQFzIV7FP02jBHdBKubiCbIy0C_5YnTz3DSYYoQzg,16
55
- brynq_sdk_nmbrs-2.3.4.dev0.dist-info/RECORD,,