cuenca-validations 2.1.16.dev7__py3-none-any.whl → 2.1.16.dev9__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.
@@ -1,5 +1,5 @@
1
1
  __all__ = [
2
- 'AccountUseTypes',
2
+ 'AccountUseType',
3
3
  'AccountQuery',
4
4
  'Address',
5
5
  'ApiKeyQuery',
@@ -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',
@@ -53,8 +54,8 @@ __all__ = [
53
54
  'KYCValidationSource',
54
55
  'Language',
55
56
  'LimitedWalletRequest',
56
- 'MonthlyMovementsTypes',
57
- 'MonthlySpendingTypes',
57
+ 'MonthlyMovementsType',
58
+ 'MonthlySpendingType',
58
59
  'PartnerRequest',
59
60
  'PartnerUpdateRequest',
60
61
  'PhoneNumber',
@@ -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',
@@ -120,7 +122,7 @@ __all__ = [
120
122
 
121
123
  from .card import StrictPaymentCardNumber
122
124
  from .enums import (
123
- AccountUseTypes,
125
+ AccountUseType,
124
126
  AuthorizerTransaction,
125
127
  BankAccountStatus,
126
128
  CardErrorType,
@@ -140,12 +142,13 @@ from .enums import (
140
142
  FileExtension,
141
143
  FileFormat,
142
144
  Gender,
145
+ IncomeType,
143
146
  IssuerNetwork,
144
147
  KYCFileType,
145
148
  KYCValidationSource,
146
149
  Language,
147
- MonthlyMovementsTypes,
148
- MonthlySpendingTypes,
150
+ MonthlyMovementsType,
151
+ MonthlySpendingType,
149
152
  PlatformType,
150
153
  PosCapability,
151
154
  Profession,
@@ -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,
@@ -706,24 +706,31 @@ class Profession(str, Enum):
706
706
  oficios = 'oficios'
707
707
 
708
708
 
709
- class AccountUseTypes(str, Enum):
709
+ class AccountUseType(str, Enum):
710
710
  personal_expenses = 'personal_expenses'
711
711
  business_expenses = 'business_expenses'
712
712
  payment_of_goods_or_services = 'payment_of_goods_or_services'
713
713
  send_or_receive_transfers = 'send_or_receive_transfers'
714
714
 
715
715
 
716
- class MonthlyMovementsTypes(str, Enum):
716
+ class MonthlyMovementsType(str, Enum):
717
717
  between_1_and_20 = 'between_1_and_20'
718
718
  between_20_and_40 = 'between_20_and_40'
719
719
  between_40_and_60 = 'between_40_and_60'
720
720
  more_than_60 = 'more_than_60'
721
721
 
722
722
 
723
- class MonthlySpendingTypes(str, Enum):
723
+ class MonthlySpendingType(str, Enum):
724
724
  less_than_1k = 'less_than_1k'
725
725
  between_1k_and_10k = 'between_1k_and_10k'
726
726
  between_10k_and_20k = 'between_10k_and_20k'
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'
@@ -13,9 +13,10 @@ from pydantic import (
13
13
 
14
14
  from ..validators import sanitize_dict, sanitize_item
15
15
  from .enums import (
16
- AccountUseTypes,
17
- MonthlyMovementsTypes,
18
- MonthlySpendingTypes,
16
+ AccountUseType,
17
+ IncomeType,
18
+ MonthlyMovementsType,
19
+ MonthlySpendingType,
19
20
  Profession,
20
21
  State,
21
22
  )
@@ -128,51 +129,63 @@ def get_profession_name(profession: Profession) -> str:
128
129
 
129
130
 
130
131
  names_account_use_types = {
131
- AccountUseTypes.personal_expenses: 'Gastos personales o familiares',
132
- AccountUseTypes.business_expenses: (
132
+ AccountUseType.personal_expenses: 'Gastos personales o familiares',
133
+ AccountUseType.business_expenses: (
133
134
  'Gastos relacionados con tu actividad económica'
134
135
  ),
135
- AccountUseTypes.payment_of_goods_or_services: 'Pago de bienes o servicios',
136
- AccountUseTypes.send_or_receive_transfers: (
136
+ AccountUseType.payment_of_goods_or_services: 'Pago de bienes o servicios',
137
+ AccountUseType.send_or_receive_transfers: (
137
138
  'Enviar o recibir transferencias'
138
139
  ),
139
140
  }
140
141
 
141
142
 
142
- def get_account_use_type_name(account_use_type: AccountUseTypes) -> str:
143
+ def get_account_use_type_name(account_use_type: AccountUseType) -> str:
143
144
  return names_account_use_types[account_use_type]
144
145
 
145
146
 
146
147
  names_monthly_movements_types = {
147
- MonthlyMovementsTypes.between_1_and_20: 'Entre 1 y 20 movimientos',
148
- MonthlyMovementsTypes.between_20_and_40: 'Entre 20 y 40 movimientos',
149
- MonthlyMovementsTypes.between_40_and_60: 'Entre 40 y 60 movimientos',
150
- MonthlyMovementsTypes.more_than_60: 'Más de 60 movimientos',
148
+ MonthlyMovementsType.between_1_and_20: 'Entre 1 y 20 movimientos',
149
+ MonthlyMovementsType.between_20_and_40: 'Entre 20 y 40 movimientos',
150
+ MonthlyMovementsType.between_40_and_60: 'Entre 40 y 60 movimientos',
151
+ MonthlyMovementsType.more_than_60: 'Más de 60 movimientos',
151
152
  }
152
153
 
153
154
 
154
155
  def get_monthly_movements_type_name(
155
- monthly_movements_type: MonthlyMovementsTypes,
156
+ monthly_movements_type: MonthlyMovementsType,
156
157
  ) -> str:
157
158
  return names_monthly_movements_types[monthly_movements_type]
158
159
 
159
160
 
160
161
  names_monthly_spending_types = {
161
- MonthlySpendingTypes.less_than_1k: 'Menos de $1,000',
162
- MonthlySpendingTypes.between_1k_and_10k: 'Entre $1,000 y $10,000',
163
- MonthlySpendingTypes.between_10k_and_20k: 'Entre $10,000 y $20,000',
164
- MonthlySpendingTypes.between_20k_and_50k: 'Entre $20,000 y $50,000',
165
- MonthlySpendingTypes.between_50k_and_100k: 'Entre $50,000 y $100,000',
166
- MonthlySpendingTypes.more_than_100k: 'Más de $100,000',
162
+ MonthlySpendingType.less_than_1k: 'Menos de $1,000',
163
+ MonthlySpendingType.between_1k_and_10k: 'Entre $1,000 y $10,000',
164
+ MonthlySpendingType.between_10k_and_20k: 'Entre $10,000 y $20,000',
165
+ MonthlySpendingType.between_20k_and_50k: 'Entre $20,000 y $50,000',
166
+ MonthlySpendingType.between_50k_and_100k: 'Entre $50,000 y $100,000',
167
+ MonthlySpendingType.more_than_100k: 'Más de $100,000',
167
168
  }
168
169
 
169
170
 
170
171
  def get_monthly_spending_type_name(
171
- monthly_spending_type: MonthlySpendingTypes,
172
+ monthly_spending_type: MonthlySpendingType,
172
173
  ) -> str:
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
@@ -17,7 +17,7 @@ from pydantic_core import core_schema
17
17
  from pydantic_extra_types.coordinate import Coordinate
18
18
 
19
19
  from ..types.enums import (
20
- AccountUseTypes,
20
+ AccountUseType,
21
21
  AuthorizerTransaction,
22
22
  CardDesign,
23
23
  CardFundingType,
@@ -30,11 +30,12 @@ from ..types.enums import (
30
30
  EcommerceIndicator,
31
31
  FileExtension,
32
32
  Gender,
33
+ IncomeType,
33
34
  IssuerNetwork,
34
35
  KYCFileType,
35
36
  KYCValidationSource,
36
- MonthlyMovementsTypes,
37
- MonthlySpendingTypes,
37
+ MonthlyMovementsType,
38
+ MonthlySpendingType,
38
39
  PlatformType,
39
40
  PosCapability,
40
41
  Profession,
@@ -462,9 +463,10 @@ class UserRequest(BaseModel):
462
463
  ...,
463
464
  description='ID of previously validated email verification',
464
465
  )
465
- account_use_type: Optional[AccountUseTypes] = None
466
- monthly_movements_type: Optional[MonthlyMovementsTypes] = None
467
- monthly_spending_type: Optional[MonthlySpendingTypes] = None
466
+ account_use_type: Optional[AccountUseType] = None
467
+ monthly_movements_type: Optional[MonthlyMovementsType] = None
468
+ monthly_spending_type: Optional[MonthlySpendingType] = None
469
+ income_type: Optional[IncomeType] = None
468
470
 
469
471
  model_config = ConfigDict(
470
472
  json_schema_extra={
@@ -501,9 +503,10 @@ class UserUpdateRequest(BaseModel):
501
503
  pronouns: Optional[str] = None
502
504
  status: Optional[UserStatus] = None
503
505
  required_level: Optional[int] = None
504
- account_use_type: Optional[AccountUseTypes] = None
505
- monthly_movements_type: Optional[MonthlyMovementsTypes] = None
506
- monthly_spending_type: Optional[MonthlySpendingTypes] = None
506
+ account_use_type: Optional[AccountUseType] = None
507
+ monthly_movements_type: Optional[MonthlyMovementsType] = None
508
+ monthly_spending_type: Optional[MonthlySpendingType] = 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.dev9'
@@ -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.dev9
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=zG5-HwiJzz-FJ8RiYGkbr4miTJ5op_melxELFBwNxXg,28
8
+ cuenca_validations/types/__init__.py,sha256=CIfqLhBxUMX5YAI-FvX9pnHB233BivGJZj1lFNddx-k,5415
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=_dU5LYzrKbE87IGn8hHIy5tgbKNrHZIxIhuVGYHZMEs,20345
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=oU81Qyk_XgysdlEVsYy23MreGX8WIE-0bwgb2EkfcT4,5421
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=IU0gbWxvs7QTcBfA1WsUqhm2RJPCXjytCy3jClAFp4A,21678
18
+ cuenca_validations-2.1.16.dev9.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=2CSwhYn5WDFBHQl2239FD9J7KlB2_Tt7RVqQUlFcwnI,20074
26
+ cuenca_validations-2.1.16.dev9.dist-info/METADATA,sha256=wqDyQHcZccWupzsTnbnpbL5XwBteo_-X6vjavuom018,1600
27
+ cuenca_validations-2.1.16.dev9.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
28
+ cuenca_validations-2.1.16.dev9.dist-info/top_level.txt,sha256=4233xdOs2HtuT-GFRjcDcwK0IwdwvWdczOtk0fPB6Gw,25
29
+ cuenca_validations-2.1.16.dev9.dist-info/RECORD,,
tests/test_types.py CHANGED
@@ -18,16 +18,18 @@ 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,
24
25
  get_state_name,
25
26
  )
26
27
  from cuenca_validations.types.enums import (
27
- AccountUseTypes,
28
+ AccountUseType,
28
29
  EcommerceIndicator,
29
- MonthlyMovementsTypes,
30
- MonthlySpendingTypes,
30
+ IncomeType,
31
+ MonthlyMovementsType,
32
+ MonthlySpendingType,
31
33
  Profession,
32
34
  SessionType,
33
35
  State,
@@ -559,23 +561,27 @@ 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
- get_account_use_type_name(AccountUseTypes.personal_expenses)
570
+ get_account_use_type_name(AccountUseType.personal_expenses)
565
571
  == 'Gastos personales o familiares'
566
572
  )
567
573
 
568
574
 
569
575
  def test_get_monthly_spending_type_name() -> None:
570
576
  assert (
571
- get_monthly_spending_type_name(MonthlySpendingTypes.less_than_1k)
577
+ get_monthly_spending_type_name(MonthlySpendingType.less_than_1k)
572
578
  == 'Menos de $1,000'
573
579
  )
574
580
 
575
581
 
576
582
  def test_get_monthly_movements_type_name() -> None:
577
583
  assert (
578
- get_monthly_movements_type_name(MonthlyMovementsTypes.between_1_and_20)
584
+ get_monthly_movements_type_name(MonthlyMovementsType.between_1_and_20)
579
585
  == 'Entre 1 y 20 movimientos'
580
586
  )
581
587