cuenca-validations 2.1.16.dev7__py3-none-any.whl → 2.1.16.dev8__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.
@@ -44,6 +44,7 @@ __all__ = [
44
44
  'FileRequest',
45
45
  'FileUploadRequest',
46
46
  'Gender',
47
+ 'IncomeType',
47
48
  'IssuerNetwork',
48
49
  'IdentityQuery',
49
50
  'JSONEncoder',
@@ -111,6 +112,7 @@ __all__ = [
111
112
  'digits',
112
113
  'get_state_name',
113
114
  'get_profession_name',
115
+ 'get_income_type_name',
114
116
  'get_account_use_type_name',
115
117
  'get_monthly_movements_type_name',
116
118
  'get_monthly_spending_type_name',
@@ -140,6 +142,7 @@ from .enums import (
140
142
  FileExtension,
141
143
  FileFormat,
142
144
  Gender,
145
+ IncomeType,
143
146
  IssuerNetwork,
144
147
  KYCFileType,
145
148
  KYCValidationSource,
@@ -174,6 +177,7 @@ from .general import (
174
177
  StrictPositiveInt,
175
178
  digits,
176
179
  get_account_use_type_name,
180
+ get_income_type_name,
177
181
  get_monthly_movements_type_name,
178
182
  get_monthly_spending_type_name,
179
183
  get_profession_name,
@@ -727,3 +727,10 @@ class MonthlySpendingTypes(str, Enum):
727
727
  between_20k_and_50k = 'between_20k_and_50k'
728
728
  between_50k_and_100k = 'between_50k_and_100k'
729
729
  more_than_100k = 'more_than_100k'
730
+
731
+
732
+ class IncomeType(str, Enum):
733
+ salary = 'salary'
734
+ freelance = 'freelance'
735
+ support_from_third_party = 'support_from_third_party'
736
+ variable = 'variable'
@@ -14,6 +14,7 @@ from pydantic import (
14
14
  from ..validators import sanitize_dict, sanitize_item
15
15
  from .enums import (
16
16
  AccountUseTypes,
17
+ IncomeType,
17
18
  MonthlyMovementsTypes,
18
19
  MonthlySpendingTypes,
19
20
  Profession,
@@ -173,6 +174,18 @@ def get_monthly_spending_type_name(
173
174
  return names_monthly_spending_types[monthly_spending_type]
174
175
 
175
176
 
177
+ names_income_types = {
178
+ IncomeType.salary: 'Sueldo o salario fijo',
179
+ IncomeType.freelance: 'Independiente',
180
+ IncomeType.support_from_third_party: 'Apoyo de terceros o familiares',
181
+ IncomeType.variable: 'Variable',
182
+ }
183
+
184
+
185
+ def get_income_type_name(income_type: IncomeType) -> str:
186
+ return names_income_types[income_type]
187
+
188
+
176
189
  @dataclass
177
190
  class LogConfig:
178
191
  masked: bool = False
@@ -30,6 +30,7 @@ from ..types.enums import (
30
30
  EcommerceIndicator,
31
31
  FileExtension,
32
32
  Gender,
33
+ IncomeType,
33
34
  IssuerNetwork,
34
35
  KYCFileType,
35
36
  KYCValidationSource,
@@ -465,6 +466,7 @@ class UserRequest(BaseModel):
465
466
  account_use_type: Optional[AccountUseTypes] = None
466
467
  monthly_movements_type: Optional[MonthlyMovementsTypes] = None
467
468
  monthly_spending_type: Optional[MonthlySpendingTypes] = None
469
+ income_type: Optional[IncomeType] = None
468
470
 
469
471
  model_config = ConfigDict(
470
472
  json_schema_extra={
@@ -504,6 +506,7 @@ class UserUpdateRequest(BaseModel):
504
506
  account_use_type: Optional[AccountUseTypes] = None
505
507
  monthly_movements_type: Optional[MonthlyMovementsTypes] = None
506
508
  monthly_spending_type: Optional[MonthlySpendingTypes] = None
509
+ income_type: Optional[IncomeType] = None
507
510
 
508
511
  @field_validator('beneficiaries')
509
512
  @classmethod
@@ -1 +1 @@
1
- __version__ = '2.1.16.dev7'
1
+ __version__ = '2.1.16.dev8'
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: cuenca_validations
3
- Version: 2.1.16.dev7
3
+ Version: 2.1.16.dev8
4
4
  Summary: Cuenca common validations
5
5
  Home-page: https://github.com/cuenca-mx/cuenca-validations
6
6
  Author: Cuenca
@@ -4,26 +4,26 @@ cuenca_validations/errors.py,sha256=OtM8EgiKqYdz9Hn66AbBO96orL1or7efkyt0vh0Zxbs,
4
4
  cuenca_validations/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
5
5
  cuenca_validations/typing.py,sha256=1QCu81IbVZZpyInjyeAuO-nF36gpT5Gi4o6V9PozuOU,204
6
6
  cuenca_validations/validators.py,sha256=mYJDXxJVokl5jZIA4FYn8wkaMUnOxAH54t1Pfg_0kmQ,1190
7
- cuenca_validations/version.py,sha256=qawF-kLYMYXIdqgBiQeMWY7wduiaZwKXQfTbMP0E7H8,28
8
- cuenca_validations/types/__init__.py,sha256=Wy9HGpF_V12DnMqd5PUYUpReGVhvpALzrxFP7UL5L54,5333
7
+ cuenca_validations/version.py,sha256=-pPaBBRRtsgVQi24Wpg_RAgMhkKX_Ve3vFKgzTR-UW4,28
8
+ cuenca_validations/types/__init__.py,sha256=qsEfNGjAyoZPmgMqFiuA73d-vfoiIWmgIiT2rPaNKv4,5421
9
9
  cuenca_validations/types/card.py,sha256=UGzz8NTFAverUmdUKAK1oGHnOnjSNTpIRUm93vKSSGY,1295
10
- cuenca_validations/types/enums.py,sha256=Fi6SzVavV6gdvIC1lQXdX1VlPjTgK-XxNEHCpEzSuFs,20183
10
+ cuenca_validations/types/enums.py,sha256=9y8Cdiy9DS-IYkXdZyjCLL8S9tjtWUCHobwB2kVpyrE,20348
11
11
  cuenca_validations/types/files.py,sha256=2CszbwF9ytXV9suFFwyDjYG4XxY8UhCjRw3HttVXXNw,269
12
- cuenca_validations/types/general.py,sha256=OiFdzFc5pIoXB0Tmm3IAIfdGP0-5GaeVwvfzHNypTo8,5092
12
+ cuenca_validations/types/general.py,sha256=TWNttymuTm-GsPtQ_hH_iYQ3YHYSBLydTbfcEkD0Q5c,5441
13
13
  cuenca_validations/types/helpers.py,sha256=XPiYVTLDtmBB5R1heWUy1c35zZMh7nh-BmS6rtwEltg,1379
14
14
  cuenca_validations/types/identities.py,sha256=1wkutHzL9Gpd9oAZdyiikNxWKe5iBVAQT3TabR6YG1o,5451
15
15
  cuenca_validations/types/morals.py,sha256=davabh5hAnFVQyM7-yCyDaT5ewXnm0cr1BtqDIwzkX8,1833
16
16
  cuenca_validations/types/queries.py,sha256=Pp7BAPk20hzImxb5EIiy3oI8S6AeCruU-NbQpOlrWVo,5146
17
- cuenca_validations/types/requests.py,sha256=WDibEaZS94YLjRDY6oS7Wr7KZba6MwHSWxYENSXUk6I,21581
18
- cuenca_validations-2.1.16.dev7.dist-info/licenses/LICENSE,sha256=wR76FmxBbfnQpwELkkE5iMF8sFIafEMgXLTE4N4WPTc,1063
17
+ cuenca_validations/types/requests.py,sha256=_XfjKpXNgRPCAPsEmqmuIoMrYpL5XLSNyX-CiJkdTlo,21687
18
+ cuenca_validations-2.1.16.dev8.dist-info/licenses/LICENSE,sha256=wR76FmxBbfnQpwELkkE5iMF8sFIafEMgXLTE4N4WPTc,1063
19
19
  tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
20
20
  tests/test_card.py,sha256=QAfRz7e11gWICPnFJZ2tiYgUsFV3C9TwzJXrDnDNXFw,1202
21
21
  tests/test_errors.py,sha256=ixiIgEuBuzfsL5p4uCFdF32XqFRtTPF6EVhGJ0keOrI,930
22
22
  tests/test_helpers.py,sha256=ubzpi1UXCryLQdgsT_Zm2IX-XE_4L0dnHnhLwH06xK8,748
23
23
  tests/test_requests.py,sha256=HGKybPNlN-Vbf2Ew34csfMR5UzZdVPoX9J8eeD4yCiI,1095
24
24
  tests/test_statement.py,sha256=IOE0rRRBgBZSJv_FLaETEyn5NzzXKMNTqgjv99GX-68,1436
25
- tests/test_types.py,sha256=5q1BJhismfrmJ29LNlwa0DoGxKkMWyo6xc3Z6cwc1Wo,19917
26
- cuenca_validations-2.1.16.dev7.dist-info/METADATA,sha256=tGB4yBUb71KHedabhMp6T5MG2OxDF82osGgr6lhQKlY,1600
27
- cuenca_validations-2.1.16.dev7.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
28
- cuenca_validations-2.1.16.dev7.dist-info/top_level.txt,sha256=4233xdOs2HtuT-GFRjcDcwK0IwdwvWdczOtk0fPB6Gw,25
29
- cuenca_validations-2.1.16.dev7.dist-info/RECORD,,
25
+ tests/test_types.py,sha256=bDwgiPwqhMaRIN-FnyvFMv3_9lkRXyJjEcoHmENRgOA,20080
26
+ cuenca_validations-2.1.16.dev8.dist-info/METADATA,sha256=W2sRpCbRSrssQAwPMkx0j8Z1I_yklLMdvUMjsDzL8PY,1600
27
+ cuenca_validations-2.1.16.dev8.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
28
+ cuenca_validations-2.1.16.dev8.dist-info/top_level.txt,sha256=4233xdOs2HtuT-GFRjcDcwK0IwdwvWdczOtk0fPB6Gw,25
29
+ cuenca_validations-2.1.16.dev8.dist-info/RECORD,,
tests/test_types.py CHANGED
@@ -18,6 +18,7 @@ from cuenca_validations.types import (
18
18
  TransactionStatus,
19
19
  digits,
20
20
  get_account_use_type_name,
21
+ get_income_type_name,
21
22
  get_monthly_movements_type_name,
22
23
  get_monthly_spending_type_name,
23
24
  get_profession_name,
@@ -26,6 +27,7 @@ from cuenca_validations.types import (
26
27
  from cuenca_validations.types.enums import (
27
28
  AccountUseTypes,
28
29
  EcommerceIndicator,
30
+ IncomeType,
29
31
  MonthlyMovementsTypes,
30
32
  MonthlySpendingTypes,
31
33
  Profession,
@@ -559,6 +561,10 @@ def test_get_profession_name() -> None:
559
561
  assert get_profession_name(Profession.empleado) == 'Empleado(a/e)'
560
562
 
561
563
 
564
+ def test_get_income_type_name() -> None:
565
+ assert get_income_type_name(IncomeType.salary) == 'Sueldo o salario fijo'
566
+
567
+
562
568
  def test_get_account_use_type_name() -> None:
563
569
  assert (
564
570
  get_account_use_type_name(AccountUseTypes.personal_expenses)