followthemoney 3.7.7__py2.py3-none-any.whl → 3.7.9__py2.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.
@@ -3,7 +3,7 @@ import os
3
3
  from followthemoney.model import Model
4
4
  from followthemoney.util import set_model_locale
5
5
 
6
- __version__ = "3.7.7"
6
+ __version__ = "3.7.9"
7
7
 
8
8
 
9
9
  model_path = os.path.dirname(__file__)
@@ -34,6 +34,7 @@ LegalEntity:
34
34
  label: Phone
35
35
  type: phone
36
36
  description: "Phone number"
37
+ maxLength: 32
37
38
  website:
38
39
  label: Website
39
40
  type: url
@@ -128,12 +129,18 @@ LegalEntity:
128
129
  label: "DUNS"
129
130
  description: "Data Universal Numbering System - Dun & Bradstreet identifier"
130
131
  type: identifier
132
+ maxLength: 16
133
+ uniqueEntityId:
134
+ label: "Unique Entity ID"
135
+ description: "UEI from SAM.gov"
136
+ type: identifier
131
137
  maxLength: 32
132
138
  npiCode:
133
139
  label: "NPI"
134
140
  description: "National Provider Identifier"
135
141
  type: identifier
136
- maxLength: 32
142
+ format: npi
143
+ maxLength: 16
137
144
  swiftBic:
138
145
  label: "SWIFT/BIC"
139
146
  description: "Bank identifier code"
@@ -34,6 +34,14 @@ Sanction:
34
34
  maxLength: 16
35
35
  program:
36
36
  label: "Program"
37
+ programId:
38
+ # This is a unique identifier for the program issued by OpenSanctions, but
39
+ # could also be used for authority-issued IDs in other usage scenarios.
40
+ label: "Program ID"
41
+ type: identifier
42
+ programUrl:
43
+ label: "Program URL"
44
+ type: url
37
45
  provisions:
38
46
  label: "Scope of sanctions"
39
47
  status:
@@ -44,6 +44,7 @@ Vessel:
44
44
  type: identifier
45
45
  pastFlags:
46
46
  label: Past Flags
47
+ type: country
47
48
  pastTypes:
48
49
  label: Past Types
49
50
  #buildDate:
@@ -4,7 +4,7 @@ from rigour.langs import iso_639_alpha3
4
4
 
5
5
  from followthemoney.types.common import EnumType, EnumValues
6
6
  from followthemoney.rdf import URIRef, Identifier
7
- from followthemoney.util import defer as _
7
+ from followthemoney.util import defer as _, gettext
8
8
  from followthemoney.util import get_env_list
9
9
 
10
10
  if TYPE_CHECKING:
@@ -93,12 +93,16 @@ class LanguageType(EnumType):
93
93
  LANGUAGES = [lang.lower().strip() for lang in LANGUAGES]
94
94
 
95
95
  def _locale_names(self, locale: Locale) -> EnumValues:
96
- names = {}
96
+ names = {
97
+ "ara": gettext("Arabic"),
98
+ "nor": gettext("Norwegian"),
99
+ }
97
100
  for lang in self.LANGUAGES:
98
- names[lang] = lang
101
+ if lang not in names:
102
+ names[lang] = lang
99
103
  for code, label in locale.languages.items():
100
104
  code = iso_639_alpha3(code)
101
- if code in self.LANGUAGES:
105
+ if code in self.LANGUAGES and names[code] == code:
102
106
  names[code] = label
103
107
  return names
104
108
 
@@ -1,8 +1,9 @@
1
1
  from typing import TYPE_CHECKING, Optional, Sequence
2
- from rigour.text.distance import levenshtein_similarity
3
- from rigour.names import pick_name
4
2
  from normality import slugify
5
3
  from normality.cleaning import collapse_spaces, strip_quotes
4
+ from rigour.env import MAX_NAME_LENGTH
5
+ from rigour.names import pick_name
6
+ from rigour.text.distance import levenshtein_similarity
6
7
  from fingerprints.cleanup import clean_name_light
7
8
 
8
9
  from followthemoney.types.common import PropertyType
@@ -27,7 +28,7 @@ class NameType(PropertyType):
27
28
  plural = _("Names")
28
29
  matchable = True
29
30
  pivot = True
30
- max_length = 384
31
+ max_length = MAX_NAME_LENGTH
31
32
 
32
33
  def clean_text(
33
34
  self,
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: followthemoney
3
- Version: 3.7.7
3
+ Version: 3.7.9
4
4
  Home-page: https://followthemoney.tech/
5
5
  Author: Organized Crime and Corruption Reporting Project
6
6
  Author-email: data@occrp.org
@@ -16,7 +16,7 @@ Requires-Dist: pyyaml<7.0.0,>=5.0.0
16
16
  Requires-Dist: types-PyYAML
17
17
  Requires-Dist: sqlalchemy2-stubs
18
18
  Requires-Dist: banal<1.1.0,>=1.0.6
19
- Requires-Dist: rigour<1.0.0,>=0.6.1
19
+ Requires-Dist: rigour<1.0.0,>=0.7.2
20
20
  Requires-Dist: click<9.0.0,>=8.0
21
21
  Requires-Dist: stringcase<2.0.0,>=1.2.0
22
22
  Requires-Dist: requests<3.0.0,>=2.21.0
@@ -1,4 +1,4 @@
1
- followthemoney/__init__.py,sha256=m6oAqbX5eN-m6C15neim5yQPHZO_NoZBVijDF-JvExs,360
1
+ followthemoney/__init__.py,sha256=oxDD8L1pDIDurOWJZ1r0tmntMWXi1c_BNuApZbZBLws,360
2
2
  followthemoney/compare.py,sha256=1GFkCfTzA8QR0CH90kvySR8hvl9hQRUerW5Xw2Ivmpg,5134
3
3
  followthemoney/exc.py,sha256=ynZs_UnTVxHR-iBfat_CpVLraYzVX5yLtVf5Ti14hl4,734
4
4
  followthemoney/graph.py,sha256=VNDKrUBkz_-DmKsr5v-Xm8VfxzabnTwkU_MFk92_TjA,10848
@@ -67,7 +67,7 @@ followthemoney/schema/Identification.yaml,sha256=6txjZs6-3Kn94c3G4tDeDt9Jb4FW55-
67
67
  followthemoney/schema/Image.yaml,sha256=wuznboWECGiV96_GQiXq1-oKNoxO8zKisR4xyusnEn8,394
68
68
  followthemoney/schema/Interest.yaml,sha256=VUrehmsN1WgtS1oAa5jn_JGtSkZGGYLGNahp-R5JhOQ,282
69
69
  followthemoney/schema/Interval.yaml,sha256=WtmSoBngajhpNLtDZ8Ocpdd0I0tLG-7A4afuHXxssow,1919
70
- followthemoney/schema/LegalEntity.yaml,sha256=uHwkJAVjhQnRm4yNEq6Z-V_f5a-prQmaEYyx30svajE,3927
70
+ followthemoney/schema/LegalEntity.yaml,sha256=bVyh6hc-tU5Qh6333Mo2CZLuHljchV_wfpn0nUaXJBk,4098
71
71
  followthemoney/schema/License.yaml,sha256=9Ye5vGEBhi7ttGqf0DdAGCJCN3zz5HtGu52dCcmCsQk,452
72
72
  followthemoney/schema/Membership.yaml,sha256=IPmaOX4Ai2r4sGcA5ig2WmLvWHb38akdxp4smEdDWOE,710
73
73
  followthemoney/schema/Mention.yaml,sha256=nBeulR_Jm4x75aJ7yNF0TAVhHJqXQaEzOutLIn_YU-4,1086
@@ -90,7 +90,7 @@ followthemoney/schema/ProjectParticipant.yaml,sha256=xNehEu90uqUfboNouezhZQ8ZQLx
90
90
  followthemoney/schema/PublicBody.yaml,sha256=BNfLBqH1OapoEninAjWmqZx_n-G5QUnzzydW7300TiY,301
91
91
  followthemoney/schema/RealEstate.yaml,sha256=NWFHXqEHskYQN-kvQESZpu74nztShqoYSZEjZAr-DHM,1363
92
92
  followthemoney/schema/Representation.yaml,sha256=sCvFnUDQaElq2cqSB0rILcMYb2gaMZqlzxlHxyX9IGg,792
93
- followthemoney/schema/Sanction.yaml,sha256=bYxbdUvxxi6ZtLUkBN0uMnokzncxrvdTcYV2VQcMl8s,957
93
+ followthemoney/schema/Sanction.yaml,sha256=_gpveGkOOneqJ6aSAE1M4Dlu9xGwyoROdMLOOJHc2I4,1239
94
94
  followthemoney/schema/Security.yaml,sha256=X-WrnI5OMizLu52OCX6cJm-JTbr_fg4KussYOvTsylw,1166
95
95
  followthemoney/schema/Similar.yaml,sha256=gD8rZEaPQWzU-rEfsKdn62uEucF3KxYBcPMoSdnxvME,817
96
96
  followthemoney/schema/Succession.yaml,sha256=RMJQqZ4Fv88N1RvWTAgjYg9BB5cELSj5CCAjM681Fpg,749
@@ -102,7 +102,7 @@ followthemoney/schema/UnknownLink.yaml,sha256=lneS_HZNgeLyJxwzWnLx0ZoyY3MXt99I_K
102
102
  followthemoney/schema/UserAccount.yaml,sha256=V1JWwwcggCO4G9ByJY9zlQ0uOVp8HQK2mRXwqaGJnBM,763
103
103
  followthemoney/schema/Value.yaml,sha256=cNHTCtakMTXDW0Qpb6ArZodi9rMJ-Ebvp1WsOIRRzw4,310
104
104
  followthemoney/schema/Vehicle.yaml,sha256=WyjfHL7XxEQQ1h0IyOBYKAZ40BEghQaM7_mkFnWyVBg,990
105
- followthemoney/schema/Vessel.yaml,sha256=k6_EofFv_hW8TkgVE2wQ5AKA7QH7dk6b1ghuVb6T3Yg,1039
105
+ followthemoney/schema/Vessel.yaml,sha256=aEqCXJ2h2J_UK6hdRUrA2w8Rqb43s8I4yqeICcfzF1w,1059
106
106
  followthemoney/schema/Video.yaml,sha256=LY3DYMWTHXiAhL0hxBCNCz50cp2sPbUlEhhig5Fbjos,327
107
107
  followthemoney/schema/Workbook.yaml,sha256=iikWPElz4klA7SkWH7eae6xqhbkMCIP_3zdeXzFEMU0,354
108
108
  followthemoney/translations/messages.pot,sha256=P3zcZ-gJhBi8Db7XjaSijhvFhZAInhpcwsA1Vlwjuzg,106899
@@ -141,9 +141,9 @@ followthemoney/types/iban.py,sha256=QYD49erJCB6I2nbtTagRMvpa4RyjezfB4Fpat2QLwAc,
141
141
  followthemoney/types/identifier.py,sha256=Gk4h75_KyjkdtomrK9Ldsh9rD7-bsenFryevJFwqlX0,2036
142
142
  followthemoney/types/ip.py,sha256=BxGARP9JWEWvyRnr7A7xUNwmTxyFd9kwXSZrKR0TK2Q,1412
143
143
  followthemoney/types/json.py,sha256=Hefwns1-ziJf310MWvdfX5ICkOgj9cnnMJuqq1e6qKY,1676
144
- followthemoney/types/language.py,sha256=gbOnrScpC8bOwlbygaMZa-mddoJonX3GPhCHg03i_0I,2632
144
+ followthemoney/types/language.py,sha256=_EKfGXNkzEZyFtLau-jDRxIxebMe4gEMc60aeQ26H9A,2791
145
145
  followthemoney/types/mimetype.py,sha256=EZ5hIdn-wosfLc-GjXDaOzevxaSXPbSPHDUJmPT1h0I,1355
146
- followthemoney/types/name.py,sha256=fSAeg_f_y07Ld6jncIFScCg3Jpr-jLXzCMkZfk3AeUc,2189
146
+ followthemoney/types/name.py,sha256=_Vu-MPYbgdN55gNBT2qHh-RDgbLQgT2l_kftnqJIEdw,2240
147
147
  followthemoney/types/number.py,sha256=9l5v3hcAoJ4V6jaBS_-Kc1gtdJlQrY9L98ElC5e_PLQ,943
148
148
  followthemoney/types/phone.py,sha256=2YFbPBtMepvCWTdcxXq3Fq4AU8B4QYk1FARBpsH8xjs,4040
149
149
  followthemoney/types/registry.py,sha256=hvQ1oIWz_4PpyUnKA5azbaZCulNb5LCIPyC-AQYVVyw,1936
@@ -177,10 +177,10 @@ tests/types/test_phones.py,sha256=_GTl-0r5hok8ovUJPRqP7k9kJYMVbanjYUMLrbzFb5U,11
177
177
  tests/types/test_registry.py,sha256=IkrHjrEiIIPd4PdMFUg_jVh_gsE6CzGXIF8s3LIbnl0,296
178
178
  tests/types/test_topic.py,sha256=m35GSwTy-r77YACGDDac09nYLBIUua42Dy7z292m9EU,707
179
179
  tests/types/test_urls.py,sha256=JVmzJ0DKDBle_xLjmOHn0hgDTCpLmljrcfbOM1GSGRw,1170
180
- followthemoney-3.7.7.dist-info/LICENSE,sha256=Jln3uF70A9AQySyrP9JAW6sQTubLoKVQunvuJqISv7w,1098
181
- followthemoney-3.7.7.dist-info/METADATA,sha256=Gdr0d5SSivLqjVrAB9gd8c3_Ex0lRtDQSWbR1q79J-E,4453
182
- followthemoney-3.7.7.dist-info/WHEEL,sha256=QyeGbh-t8WT0nt0_LNSP02jN-g4ymd1egk1U3osCGMU,110
183
- followthemoney-3.7.7.dist-info/entry_points.txt,sha256=wpgi-5-jyqCy-yw0eYZbnhBuPja_q3RJmiEl7NymXtQ,593
184
- followthemoney-3.7.7.dist-info/namespace_packages.txt,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
185
- followthemoney-3.7.7.dist-info/top_level.txt,sha256=O33_kGPehy6-69B_k01UgMK55_JOhwqe2de7ND23b-Y,21
186
- followthemoney-3.7.7.dist-info/RECORD,,
180
+ followthemoney-3.7.9.dist-info/LICENSE,sha256=Jln3uF70A9AQySyrP9JAW6sQTubLoKVQunvuJqISv7w,1098
181
+ followthemoney-3.7.9.dist-info/METADATA,sha256=6hLJZmkmopNdDMZMv7shCcEWvYBwr5BCLhYpbDoKoaA,4453
182
+ followthemoney-3.7.9.dist-info/WHEEL,sha256=Kh9pAotZVRFj97E15yTA4iADqXdQfIVTHcNaZTjxeGM,110
183
+ followthemoney-3.7.9.dist-info/entry_points.txt,sha256=wpgi-5-jyqCy-yw0eYZbnhBuPja_q3RJmiEl7NymXtQ,593
184
+ followthemoney-3.7.9.dist-info/namespace_packages.txt,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
185
+ followthemoney-3.7.9.dist-info/top_level.txt,sha256=O33_kGPehy6-69B_k01UgMK55_JOhwqe2de7ND23b-Y,21
186
+ followthemoney-3.7.9.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: bdist_wheel (0.45.0)
2
+ Generator: bdist_wheel (0.45.1)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py2-none-any
5
5
  Tag: py3-none-any