followthemoney 3.6.4__tar.gz → 3.7.1__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.

Potentially problematic release.


This version of followthemoney might be problematic. Click here for more details.

Files changed (167) hide show
  1. {followthemoney-3.6.4/followthemoney.egg-info → followthemoney-3.7.1}/PKG-INFO +1 -1
  2. {followthemoney-3.6.4 → followthemoney-3.7.1}/followthemoney/__init__.py +1 -1
  3. {followthemoney-3.6.4 → followthemoney-3.7.1}/followthemoney/mapping/entity.py +15 -6
  4. {followthemoney-3.6.4 → followthemoney-3.7.1}/followthemoney/property.py +6 -0
  5. {followthemoney-3.6.4 → followthemoney-3.7.1}/followthemoney/proxy.py +4 -4
  6. {followthemoney-3.6.4 → followthemoney-3.7.1}/followthemoney/schema/Address.yaml +1 -0
  7. {followthemoney-3.6.4 → followthemoney-3.7.1}/followthemoney/schema/BankAccount.yaml +4 -1
  8. {followthemoney-3.6.4 → followthemoney-3.7.1}/followthemoney/schema/Company.yaml +3 -0
  9. {followthemoney-3.6.4 → followthemoney-3.7.1}/followthemoney/schema/CryptoWallet.yaml +1 -0
  10. {followthemoney-3.6.4 → followthemoney-3.7.1}/followthemoney/schema/Documentation.yml +3 -2
  11. {followthemoney-3.6.4 → followthemoney-3.7.1}/followthemoney/schema/Identification.yaml +1 -0
  12. {followthemoney-3.6.4 → followthemoney-3.7.1}/followthemoney/schema/LegalEntity.yaml +7 -0
  13. {followthemoney-3.6.4 → followthemoney-3.7.1}/followthemoney/schema/Organization.yaml +1 -1
  14. {followthemoney-3.6.4 → followthemoney-3.7.1}/followthemoney/schema/Person.yaml +2 -2
  15. {followthemoney-3.6.4 → followthemoney-3.7.1}/followthemoney/schema/Position.yaml +1 -1
  16. {followthemoney-3.6.4 → followthemoney-3.7.1}/followthemoney/schema/Post.yaml +1 -1
  17. {followthemoney-3.6.4 → followthemoney-3.7.1}/followthemoney/schema/Project.yaml +1 -1
  18. {followthemoney-3.6.4 → followthemoney-3.7.1}/followthemoney/schema/Sanction.yaml +1 -0
  19. {followthemoney-3.6.4 → followthemoney-3.7.1}/followthemoney/schema/Security.yaml +2 -0
  20. {followthemoney-3.6.4 → followthemoney-3.7.1}/followthemoney/schema/Thing.yaml +1 -0
  21. {followthemoney-3.6.4 → followthemoney-3.7.1}/followthemoney/schema/Vessel.yaml +2 -0
  22. {followthemoney-3.6.4 → followthemoney-3.7.1}/followthemoney/translations/ar/LC_MESSAGES/followthemoney.mo +0 -0
  23. {followthemoney-3.6.4 → followthemoney-3.7.1}/followthemoney/translations/ar/LC_MESSAGES/followthemoney.po +5 -5
  24. {followthemoney-3.6.4 → followthemoney-3.7.1}/followthemoney/translations/bs/LC_MESSAGES/followthemoney.mo +0 -0
  25. {followthemoney-3.6.4 → followthemoney-3.7.1}/followthemoney/translations/bs/LC_MESSAGES/followthemoney.po +3 -3
  26. {followthemoney-3.6.4 → followthemoney-3.7.1}/followthemoney/translations/de/LC_MESSAGES/followthemoney.mo +0 -0
  27. {followthemoney-3.6.4 → followthemoney-3.7.1}/followthemoney/translations/de/LC_MESSAGES/followthemoney.po +5 -5
  28. {followthemoney-3.6.4 → followthemoney-3.7.1}/followthemoney/translations/es/LC_MESSAGES/followthemoney.mo +0 -0
  29. {followthemoney-3.6.4 → followthemoney-3.7.1}/followthemoney/translations/es/LC_MESSAGES/followthemoney.po +5 -5
  30. {followthemoney-3.6.4 → followthemoney-3.7.1}/followthemoney/translations/fr/LC_MESSAGES/followthemoney.mo +0 -0
  31. {followthemoney-3.6.4 → followthemoney-3.7.1}/followthemoney/translations/fr/LC_MESSAGES/followthemoney.po +5 -5
  32. {followthemoney-3.6.4 → followthemoney-3.7.1}/followthemoney/translations/fr/followthemoney.po +3 -3
  33. {followthemoney-3.6.4 → followthemoney-3.7.1}/followthemoney/translations/messages.pot +143 -60
  34. {followthemoney-3.6.4 → followthemoney-3.7.1}/followthemoney/translations/nb/LC_MESSAGES/followthemoney.mo +0 -0
  35. {followthemoney-3.6.4 → followthemoney-3.7.1}/followthemoney/translations/nb/LC_MESSAGES/followthemoney.po +3 -3
  36. {followthemoney-3.6.4 → followthemoney-3.7.1}/followthemoney/translations/nl/LC_MESSAGES/followthemoney.mo +0 -0
  37. {followthemoney-3.6.4 → followthemoney-3.7.1}/followthemoney/translations/nl/LC_MESSAGES/followthemoney.po +3 -3
  38. {followthemoney-3.6.4 → followthemoney-3.7.1}/followthemoney/translations/pt_BR/LC_MESSAGES/followthemoney.mo +0 -0
  39. {followthemoney-3.6.4 → followthemoney-3.7.1}/followthemoney/translations/pt_BR/LC_MESSAGES/followthemoney.po +3 -3
  40. followthemoney-3.7.1/followthemoney/translations/ru/LC_MESSAGES/followthemoney.mo +0 -0
  41. {followthemoney-3.6.4 → followthemoney-3.7.1}/followthemoney/translations/ru/LC_MESSAGES/followthemoney.po +5 -5
  42. {followthemoney-3.6.4 → followthemoney-3.7.1}/followthemoney/translations/ru/followthemoney.po +4 -4
  43. {followthemoney-3.6.4 → followthemoney-3.7.1}/followthemoney/translations/tr/LC_MESSAGES/followthemoney.mo +0 -0
  44. {followthemoney-3.6.4 → followthemoney-3.7.1}/followthemoney/translations/tr/LC_MESSAGES/followthemoney.po +3 -3
  45. {followthemoney-3.6.4 → followthemoney-3.7.1}/followthemoney/types/checksum.py +1 -0
  46. {followthemoney-3.6.4 → followthemoney-3.7.1}/followthemoney/types/common.py +12 -4
  47. {followthemoney-3.6.4 → followthemoney-3.7.1}/followthemoney/types/country.py +1 -0
  48. {followthemoney-3.6.4 → followthemoney-3.7.1}/followthemoney/types/date.py +1 -0
  49. {followthemoney-3.6.4 → followthemoney-3.7.1}/followthemoney/types/gender.py +1 -0
  50. {followthemoney-3.6.4 → followthemoney-3.7.1}/followthemoney/types/iban.py +4 -1
  51. {followthemoney-3.6.4 → followthemoney-3.7.1}/followthemoney/types/identifier.py +1 -0
  52. {followthemoney-3.6.4 → followthemoney-3.7.1}/followthemoney/types/ip.py +1 -0
  53. {followthemoney-3.6.4 → followthemoney-3.7.1}/followthemoney/types/language.py +1 -0
  54. {followthemoney-3.6.4 → followthemoney-3.7.1}/followthemoney/types/name.py +5 -1
  55. {followthemoney-3.6.4 → followthemoney-3.7.1}/followthemoney/types/phone.py +1 -0
  56. {followthemoney-3.6.4 → followthemoney-3.7.1}/followthemoney/types/string.py +5 -2
  57. {followthemoney-3.6.4 → followthemoney-3.7.1}/followthemoney/types/topic.py +2 -0
  58. {followthemoney-3.6.4 → followthemoney-3.7.1}/followthemoney/types/url.py +1 -0
  59. {followthemoney-3.6.4 → followthemoney-3.7.1/followthemoney.egg-info}/PKG-INFO +1 -1
  60. {followthemoney-3.6.4 → followthemoney-3.7.1}/followthemoney.egg-info/requires.txt +1 -1
  61. {followthemoney-3.6.4 → followthemoney-3.7.1}/setup.py +2 -2
  62. followthemoney-3.6.4/followthemoney/translations/ru/LC_MESSAGES/followthemoney.mo +0 -0
  63. {followthemoney-3.6.4 → followthemoney-3.7.1}/LICENSE +0 -0
  64. {followthemoney-3.6.4 → followthemoney-3.7.1}/MANIFEST.in +0 -0
  65. {followthemoney-3.6.4 → followthemoney-3.7.1}/README.md +0 -0
  66. {followthemoney-3.6.4 → followthemoney-3.7.1}/followthemoney/cli/__init__.py +0 -0
  67. {followthemoney-3.6.4 → followthemoney-3.7.1}/followthemoney/cli/aggregate.py +0 -0
  68. {followthemoney-3.6.4 → followthemoney-3.7.1}/followthemoney/cli/cli.py +0 -0
  69. {followthemoney-3.6.4 → followthemoney-3.7.1}/followthemoney/cli/exports.py +0 -0
  70. {followthemoney-3.6.4 → followthemoney-3.7.1}/followthemoney/cli/mapping.py +0 -0
  71. {followthemoney-3.6.4 → followthemoney-3.7.1}/followthemoney/cli/sieve.py +0 -0
  72. {followthemoney-3.6.4 → followthemoney-3.7.1}/followthemoney/cli/util.py +0 -0
  73. {followthemoney-3.6.4 → followthemoney-3.7.1}/followthemoney/compare.py +0 -0
  74. {followthemoney-3.6.4 → followthemoney-3.7.1}/followthemoney/exc.py +0 -0
  75. {followthemoney-3.6.4 → followthemoney-3.7.1}/followthemoney/export/__init__.py +0 -0
  76. {followthemoney-3.6.4 → followthemoney-3.7.1}/followthemoney/export/common.py +0 -0
  77. {followthemoney-3.6.4 → followthemoney-3.7.1}/followthemoney/export/csv.py +0 -0
  78. {followthemoney-3.6.4 → followthemoney-3.7.1}/followthemoney/export/excel.py +0 -0
  79. {followthemoney-3.6.4 → followthemoney-3.7.1}/followthemoney/export/graph.py +0 -0
  80. {followthemoney-3.6.4 → followthemoney-3.7.1}/followthemoney/export/neo4j.py +0 -0
  81. {followthemoney-3.6.4 → followthemoney-3.7.1}/followthemoney/export/rdf.py +0 -0
  82. {followthemoney-3.6.4 → followthemoney-3.7.1}/followthemoney/graph.py +0 -0
  83. {followthemoney-3.6.4 → followthemoney-3.7.1}/followthemoney/helpers.py +0 -0
  84. {followthemoney-3.6.4 → followthemoney-3.7.1}/followthemoney/mapping/__init__.py +0 -0
  85. {followthemoney-3.6.4 → followthemoney-3.7.1}/followthemoney/mapping/csv.py +0 -0
  86. {followthemoney-3.6.4 → followthemoney-3.7.1}/followthemoney/mapping/property.py +0 -0
  87. {followthemoney-3.6.4 → followthemoney-3.7.1}/followthemoney/mapping/query.py +0 -0
  88. {followthemoney-3.6.4 → followthemoney-3.7.1}/followthemoney/mapping/source.py +0 -0
  89. {followthemoney-3.6.4 → followthemoney-3.7.1}/followthemoney/mapping/sql.py +0 -0
  90. {followthemoney-3.6.4 → followthemoney-3.7.1}/followthemoney/messages.py +0 -0
  91. {followthemoney-3.6.4 → followthemoney-3.7.1}/followthemoney/model.py +0 -0
  92. {followthemoney-3.6.4 → followthemoney-3.7.1}/followthemoney/namespace.py +0 -0
  93. {followthemoney-3.6.4 → followthemoney-3.7.1}/followthemoney/offshore.py +0 -0
  94. {followthemoney-3.6.4 → followthemoney-3.7.1}/followthemoney/ontology.py +0 -0
  95. {followthemoney-3.6.4 → followthemoney-3.7.1}/followthemoney/py.typed +0 -0
  96. {followthemoney-3.6.4 → followthemoney-3.7.1}/followthemoney/rdf.py +0 -0
  97. {followthemoney-3.6.4 → followthemoney-3.7.1}/followthemoney/schema/Airplane.yaml +0 -0
  98. {followthemoney-3.6.4 → followthemoney-3.7.1}/followthemoney/schema/Analyzable.yaml +0 -0
  99. {followthemoney-3.6.4 → followthemoney-3.7.1}/followthemoney/schema/Article.yaml +0 -0
  100. {followthemoney-3.6.4 → followthemoney-3.7.1}/followthemoney/schema/Assessment.yaml +0 -0
  101. {followthemoney-3.6.4 → followthemoney-3.7.1}/followthemoney/schema/Asset.yaml +0 -0
  102. {followthemoney-3.6.4 → followthemoney-3.7.1}/followthemoney/schema/Associate.yaml +0 -0
  103. {followthemoney-3.6.4 → followthemoney-3.7.1}/followthemoney/schema/Audio.yaml +0 -0
  104. {followthemoney-3.6.4 → followthemoney-3.7.1}/followthemoney/schema/Call.yaml +0 -0
  105. {followthemoney-3.6.4 → followthemoney-3.7.1}/followthemoney/schema/CallForTenders.yaml +0 -0
  106. {followthemoney-3.6.4 → followthemoney-3.7.1}/followthemoney/schema/Contract.yaml +0 -0
  107. {followthemoney-3.6.4 → followthemoney-3.7.1}/followthemoney/schema/ContractAward.yaml +0 -0
  108. {followthemoney-3.6.4 → followthemoney-3.7.1}/followthemoney/schema/CourtCase.yaml +0 -0
  109. {followthemoney-3.6.4 → followthemoney-3.7.1}/followthemoney/schema/CourtCaseParty.yaml +0 -0
  110. {followthemoney-3.6.4 → followthemoney-3.7.1}/followthemoney/schema/Debt.yaml +0 -0
  111. {followthemoney-3.6.4 → followthemoney-3.7.1}/followthemoney/schema/Directorship.yaml +0 -0
  112. {followthemoney-3.6.4 → followthemoney-3.7.1}/followthemoney/schema/Document.yaml +0 -0
  113. {followthemoney-3.6.4 → followthemoney-3.7.1}/followthemoney/schema/EconomicActivity.yaml +0 -0
  114. {followthemoney-3.6.4 → followthemoney-3.7.1}/followthemoney/schema/Email.yaml +0 -0
  115. {followthemoney-3.6.4 → followthemoney-3.7.1}/followthemoney/schema/Employment.yaml +0 -0
  116. {followthemoney-3.6.4 → followthemoney-3.7.1}/followthemoney/schema/Event.yaml +0 -0
  117. {followthemoney-3.6.4 → followthemoney-3.7.1}/followthemoney/schema/Family.yaml +0 -0
  118. {followthemoney-3.6.4 → followthemoney-3.7.1}/followthemoney/schema/Folder.yaml +0 -0
  119. {followthemoney-3.6.4 → followthemoney-3.7.1}/followthemoney/schema/HyperText.yaml +0 -0
  120. {followthemoney-3.6.4 → followthemoney-3.7.1}/followthemoney/schema/Image.yaml +0 -0
  121. {followthemoney-3.6.4 → followthemoney-3.7.1}/followthemoney/schema/Interest.yaml +0 -0
  122. {followthemoney-3.6.4 → followthemoney-3.7.1}/followthemoney/schema/Interval.yaml +0 -0
  123. {followthemoney-3.6.4 → followthemoney-3.7.1}/followthemoney/schema/License.yaml +0 -0
  124. {followthemoney-3.6.4 → followthemoney-3.7.1}/followthemoney/schema/Membership.yaml +0 -0
  125. {followthemoney-3.6.4 → followthemoney-3.7.1}/followthemoney/schema/Mention.yaml +0 -0
  126. {followthemoney-3.6.4 → followthemoney-3.7.1}/followthemoney/schema/Message.yaml +0 -0
  127. {followthemoney-3.6.4 → followthemoney-3.7.1}/followthemoney/schema/Note.yaml +0 -0
  128. {followthemoney-3.6.4 → followthemoney-3.7.1}/followthemoney/schema/Occupancy.yaml +0 -0
  129. {followthemoney-3.6.4 → followthemoney-3.7.1}/followthemoney/schema/Ownership.yaml +0 -0
  130. {followthemoney-3.6.4 → followthemoney-3.7.1}/followthemoney/schema/Package.yaml +0 -0
  131. {followthemoney-3.6.4 → followthemoney-3.7.1}/followthemoney/schema/Page.yaml +0 -0
  132. {followthemoney-3.6.4 → followthemoney-3.7.1}/followthemoney/schema/Pages.yaml +0 -0
  133. {followthemoney-3.6.4 → followthemoney-3.7.1}/followthemoney/schema/Passport.yaml +0 -0
  134. {followthemoney-3.6.4 → followthemoney-3.7.1}/followthemoney/schema/Payment.yaml +0 -0
  135. {followthemoney-3.6.4 → followthemoney-3.7.1}/followthemoney/schema/PlainText.yaml +0 -0
  136. {followthemoney-3.6.4 → followthemoney-3.7.1}/followthemoney/schema/ProjectParticipant.yaml +0 -0
  137. {followthemoney-3.6.4 → followthemoney-3.7.1}/followthemoney/schema/PublicBody.yaml +0 -0
  138. {followthemoney-3.6.4 → followthemoney-3.7.1}/followthemoney/schema/RealEstate.yaml +0 -0
  139. {followthemoney-3.6.4 → followthemoney-3.7.1}/followthemoney/schema/Representation.yaml +0 -0
  140. {followthemoney-3.6.4 → followthemoney-3.7.1}/followthemoney/schema/Similar.yaml +0 -0
  141. {followthemoney-3.6.4 → followthemoney-3.7.1}/followthemoney/schema/Succession.yaml +0 -0
  142. {followthemoney-3.6.4 → followthemoney-3.7.1}/followthemoney/schema/Table.yaml +0 -0
  143. {followthemoney-3.6.4 → followthemoney-3.7.1}/followthemoney/schema/TaxRoll.yaml +0 -0
  144. {followthemoney-3.6.4 → followthemoney-3.7.1}/followthemoney/schema/Trip.yaml +0 -0
  145. {followthemoney-3.6.4 → followthemoney-3.7.1}/followthemoney/schema/UnknownLink.yaml +0 -0
  146. {followthemoney-3.6.4 → followthemoney-3.7.1}/followthemoney/schema/UserAccount.yaml +0 -0
  147. {followthemoney-3.6.4 → followthemoney-3.7.1}/followthemoney/schema/Value.yaml +0 -0
  148. {followthemoney-3.6.4 → followthemoney-3.7.1}/followthemoney/schema/Vehicle.yaml +0 -0
  149. {followthemoney-3.6.4 → followthemoney-3.7.1}/followthemoney/schema/Video.yaml +0 -0
  150. {followthemoney-3.6.4 → followthemoney-3.7.1}/followthemoney/schema/Workbook.yaml +0 -0
  151. {followthemoney-3.6.4 → followthemoney-3.7.1}/followthemoney/schema.py +0 -0
  152. {followthemoney-3.6.4 → followthemoney-3.7.1}/followthemoney/types/__init__.py +0 -0
  153. {followthemoney-3.6.4 → followthemoney-3.7.1}/followthemoney/types/address.py +0 -0
  154. {followthemoney-3.6.4 → followthemoney-3.7.1}/followthemoney/types/email.py +0 -0
  155. {followthemoney-3.6.4 → followthemoney-3.7.1}/followthemoney/types/entity.py +0 -0
  156. {followthemoney-3.6.4 → followthemoney-3.7.1}/followthemoney/types/json.py +0 -0
  157. {followthemoney-3.6.4 → followthemoney-3.7.1}/followthemoney/types/mimetype.py +0 -0
  158. {followthemoney-3.6.4 → followthemoney-3.7.1}/followthemoney/types/number.py +0 -0
  159. {followthemoney-3.6.4 → followthemoney-3.7.1}/followthemoney/types/registry.py +0 -0
  160. {followthemoney-3.6.4 → followthemoney-3.7.1}/followthemoney/util.py +0 -0
  161. {followthemoney-3.6.4 → followthemoney-3.7.1}/followthemoney.egg-info/SOURCES.txt +0 -0
  162. {followthemoney-3.6.4 → followthemoney-3.7.1}/followthemoney.egg-info/dependency_links.txt +0 -0
  163. {followthemoney-3.6.4 → followthemoney-3.7.1}/followthemoney.egg-info/entry_points.txt +0 -0
  164. {followthemoney-3.6.4 → followthemoney-3.7.1}/followthemoney.egg-info/namespace_packages.txt +0 -0
  165. {followthemoney-3.6.4 → followthemoney-3.7.1}/followthemoney.egg-info/not-zip-safe +0 -0
  166. {followthemoney-3.6.4 → followthemoney-3.7.1}/followthemoney.egg-info/top_level.txt +0 -0
  167. {followthemoney-3.6.4 → followthemoney-3.7.1}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: followthemoney
3
- Version: 3.6.4
3
+ Version: 3.7.1
4
4
  Home-page: https://followthemoney.tech/
5
5
  Author: Organized Crime and Corruption Reporting Project
6
6
  Author-email: data@occrp.org
@@ -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.6.4"
6
+ __version__ = "3.7.1"
7
7
 
8
8
 
9
9
  model_path = os.path.dirname(__file__)
@@ -20,7 +20,6 @@ log = logging.getLogger(__name__)
20
20
 
21
21
 
22
22
  class EntityMapping(object):
23
-
24
23
  __slots__ = (
25
24
  "model",
26
25
  "name",
@@ -117,22 +116,30 @@ class EntityMapping(object):
117
116
  if prop.prop.type == registry.country:
118
117
  discarded_values = prop.map(proxy, record, entities)
119
118
  for value in discarded_values:
120
- log.warn(f"[{self.name}] Discarded unclean value \"{value}\" for property \"{prop.prop.qname}\".")
119
+ log.warning(
120
+ f'[{self.name}] Discarded unclean value "{value}" for property "{prop.prop.qname}".'
121
+ )
121
122
 
122
123
  for prop in self.properties:
123
124
  if prop.prop.type != registry.country:
124
125
  discarded_values = prop.map(proxy, record, entities)
125
126
  for value in discarded_values:
126
- log.warn(f"[{self.name}] Discarding unclean value \"{value}\" for property \"{prop.prop.qname}\".")
127
+ log.warning(
128
+ f'[{self.name}] Discarding unclean value "{value}" for property "{prop.prop.qname}".'
129
+ )
127
130
 
128
131
  # Generate the ID at the end to avoid self-reference checks on empty
129
132
  # keys.
130
133
  proxy.id = self.compute_key(record)
131
134
  if proxy.id is None:
132
135
  if self.id_column:
133
- log.warn(f"[{self.name}] Skipping entity because no ID could be computed. Make sure that there are no empty values in the \"{self.id_column}\" column.")
136
+ log.warning(
137
+ f'[{self.name}] Skipping entity because no ID could be computed. Make sure that there are no empty values in the "{self.id_column}" column.'
138
+ )
134
139
  if self.keys:
135
- log.warn(f"[{self.name}] Skipping entity because no ID could be computed. Make sure that there are no empty values in key columns.")
140
+ log.warning(
141
+ f"[{self.name}] Skipping entity because no ID could be computed. Make sure that there are no empty values in key columns."
142
+ )
136
143
  return None
137
144
 
138
145
  for prop in self.properties:
@@ -141,7 +148,9 @@ class EntityMapping(object):
141
148
  # the mapping, not in the model. Basically it means: if
142
149
  # this row of source data doesn't have that field, then do
143
150
  # not map it again.
144
- log.warn(f"[{self.name}] Skipping entity because required property \"{prop.prop.name}\" is empty.")
151
+ log.warning(
152
+ f'[{self.name}] Skipping entity because required property "{prop.prop.name}" is empty.'
153
+ )
145
154
  return None
146
155
  return proxy
147
156
 
@@ -24,6 +24,7 @@ class PropertyDict(TypedDict, total=False):
24
24
  hidden: Optional[bool]
25
25
  matchable: Optional[bool]
26
26
  deprecated: Optional[bool]
27
+ maxLength: Optional[int]
27
28
  # stub: Optional[bool]
28
29
  rdf: Optional[str]
29
30
  range: Optional[str]
@@ -58,6 +59,7 @@ class Property:
58
59
  "type",
59
60
  "matchable",
60
61
  "deprecated",
62
+ "max_length",
61
63
  "_range",
62
64
  "format",
63
65
  "range",
@@ -109,6 +111,9 @@ class Property:
109
111
  else:
110
112
  self.matchable = self.type.matchable
111
113
 
114
+ #: The maximum length of the property value.
115
+ self.max_length = int(data.get("maxLength") or self.type.max_length)
116
+
112
117
  #: If the property is of type ``entity``, the set of valid schema to be added
113
118
  #: in this property can be constrained. For example, an asset can be owned,
114
119
  #: but a person cannot be owned.
@@ -197,6 +202,7 @@ class Property:
197
202
  "qname": self.qname,
198
203
  "label": self.label,
199
204
  "type": self.type.name,
205
+ "maxLength": self.max_length,
200
206
  }
201
207
  if self.description:
202
208
  data["description"] = self.description
@@ -220,8 +220,8 @@ class EntityProxy(object):
220
220
  # Somewhat hacky: limit the maximum size of any particular
221
221
  # field to avoid overloading upstream aleph/elasticsearch.
222
222
  value_size = len(value)
223
- if prop.type.max_size is not None:
224
- if self._size + value_size > prop.type.max_size:
223
+ if prop.type.total_size is not None:
224
+ if self._size + value_size > prop.type.total_size:
225
225
  # msg = "[%s] too large. Rejecting additional values."
226
226
  # log.warning(msg, prop.name)
227
227
  return None
@@ -309,7 +309,7 @@ class EntityProxy(object):
309
309
  if self.schema.source_prop is not None and self.schema.target_prop is not None:
310
310
  sources = self.get(self.schema.source_prop)
311
311
  targets = self.get(self.schema.target_prop)
312
- for (source, target) in product(sources, targets):
312
+ for source, target in product(sources, targets):
313
313
  yield (source, target)
314
314
 
315
315
  def get_type_values(
@@ -414,7 +414,7 @@ class EntityProxy(object):
414
414
  for a more generous matching approach than the actual country values."""
415
415
  countries = set(self.countries)
416
416
  if not len(countries):
417
- for (prop, value) in self.itervalues():
417
+ for prop, value in self.itervalues():
418
418
  hint = prop.type.country_hint(value)
419
419
  if hint is not None:
420
420
  countries.add(hint)
@@ -54,6 +54,7 @@ Address:
54
54
  postalCode:
55
55
  label: "Postal code"
56
56
  description: "Zip code or postcode."
57
+ maxLength: 16
57
58
  region:
58
59
  label: "Region"
59
60
  description: "Also province or area."
@@ -4,7 +4,7 @@ BankAccount:
4
4
  extends:
5
5
  - Asset
6
6
  description: >
7
- An account held at a bank and controlled by an owner. This may also be used
7
+ An account held at a bank and controlled by an owner. This may also be used
8
8
  to describe more complex arrangements like correspondent bank settlement accounts.
9
9
  matchable: true
10
10
  featured:
@@ -27,15 +27,18 @@ BankAccount:
27
27
  accountNumber:
28
28
  label: Account number
29
29
  type: identifier
30
+ maxLength: 64
30
31
  iban:
31
32
  label: IBAN
32
33
  # type: identifier
33
34
  # format: iban
34
35
  type: iban
36
+ maxLength: 64
35
37
  bic:
36
38
  label: Bank Identifier Code
37
39
  type: identifier
38
40
  format: bic
41
+ maxLength: 16
39
42
  bank:
40
43
  label: Bank
41
44
  type: entity
@@ -31,6 +31,7 @@ Company:
31
31
  label: "VOEN"
32
32
  description: "Azerbaijan taxpayer ID"
33
33
  type: identifier
34
+ maxLength: 32
34
35
  coatoCode:
35
36
  label: "COATO / SOATO / OKATO"
36
37
  type: identifier
@@ -107,6 +108,8 @@ Company:
107
108
  label: PermID
108
109
  description: LSEG/Refinitiv code for a company
109
110
  type: identifier
111
+ maxLength: 16
110
112
  ricCode:
111
113
  label: Reuters Instrument Code
112
114
  type: identifier
115
+ maxLength: 16
@@ -23,6 +23,7 @@ CryptoWallet:
23
23
  label: Address
24
24
  description: Public key used to identify the wallet
25
25
  type: identifier
26
+ maxLength: 128
26
27
  privateKey:
27
28
  label: Private key
28
29
  creationDate:
@@ -2,9 +2,10 @@ Documentation:
2
2
  label: "Documentation"
3
3
  plural: "Documentations"
4
4
  description: >
5
- Links some entity to a document, which might provide further detail or
5
+ Links some entity to a document, which might provide further detail or
6
6
  evidence regarding the entity.
7
- extends: Interest
7
+ extends:
8
+ - Interest
8
9
  matchable: false
9
10
  featured:
10
11
  - document
@@ -35,5 +35,6 @@ Identification:
35
35
  number:
36
36
  label: "Document number"
37
37
  type: identifier
38
+ maxLength: 64
38
39
  authority:
39
40
  label: "Authority"
@@ -82,6 +82,7 @@ LegalEntity:
82
82
  label: "V.A.T. Identifier"
83
83
  description: "(EU) VAT number"
84
84
  type: identifier
85
+ maxLength: 32
85
86
  jurisdiction:
86
87
  label: Jurisdiction
87
88
  type: country
@@ -109,30 +110,36 @@ LegalEntity:
109
110
  description: "Russian company ID"
110
111
  type: identifier
111
112
  # format: inn
113
+ maxLength: 32
112
114
  ogrnCode:
113
115
  label: "OGRN"
114
116
  description: "Major State Registration Number"
115
117
  type: identifier
116
118
  # format: ogrn
119
+ maxLength: 32
117
120
  leiCode:
118
121
  # cf. https://www.gleif.org/en/about-lei/introducing-the-legal-entity-identifier-lei
119
122
  label: "LEI"
120
123
  description: "Legal Entity Identifier"
121
124
  type: identifier
122
125
  format: lei
126
+ maxLength: 32
123
127
  dunsCode:
124
128
  label: "DUNS"
125
129
  description: "Data Universal Numbering System - Dun & Bradstreet identifier"
126
130
  type: identifier
131
+ maxLength: 32
127
132
  npiCode:
128
133
  label: "NPI"
129
134
  description: "National Provider Identifier"
130
135
  type: identifier
136
+ maxLength: 32
131
137
  swiftBic:
132
138
  label: "SWIFT/BIC"
133
139
  description: "Bank identifier code"
134
140
  type: identifier
135
141
  format: bic
142
+ maxLength: 16
136
143
  parent:
137
144
  label: "Parent company"
138
145
  description: "If this entity is a subsidiary, another entity (company or organisation) is its parent"
@@ -5,7 +5,7 @@ Organization:
5
5
  plural: Organizations
6
6
  description: >
7
7
  Any type of incorporated entity that cannot be owned by another (see Company). This
8
- might include charities, foundations or state-owned enterprises, depending on their
8
+ might include charities, foundations or state-owned enterprises, depending on their
9
9
  jurisdiction.
10
10
  matchable: true
11
11
  featured:
@@ -90,8 +90,8 @@ Person:
90
90
  label: Eye color
91
91
  hairColor:
92
92
  label: Hair color
93
- identifyingMarks:
94
- label: Identifying marks
93
+ appearance:
94
+ label: Physical appearance
95
95
  religion:
96
96
  label: Religion
97
97
  political:
@@ -8,7 +8,7 @@ Position:
8
8
  description: >
9
9
  A post, role or position within an organization or body.
10
10
  This describes a position one or more people may occupy
11
- and not the occupation of the post by a specific individual at a
11
+ and not the occupation of the post by a specific individual at a
12
12
  specific point in time.
13
13
 
14
14
  'subnationalArea' should be used to further restrict the scope of the
@@ -9,7 +9,7 @@ Post:
9
9
  # But they're using it to define the post as an abstract thing, this
10
10
  # describes the interval in which it is held by an individual.
11
11
  description: >
12
- A post, role or position held by an individual within an organization
12
+ A post, role or position held by an individual within an organization
13
13
  or body. This describes the period for which the position is held,
14
14
  not the abstract concept of the post.
15
15
  featured:
@@ -24,4 +24,4 @@ Project:
24
24
  phase:
25
25
  label: "Phase"
26
26
  goal:
27
- label: "Project goal"
27
+ label: "Project goal"
@@ -31,6 +31,7 @@ Sanction:
31
31
  unscId:
32
32
  label: "UN SC identifier"
33
33
  type: identifier
34
+ maxLength: 16
34
35
  program:
35
36
  label: "Program"
36
37
  provisions:
@@ -25,6 +25,7 @@ Security:
25
25
  description: International Securities Identification Number
26
26
  type: identifier
27
27
  format: isin
28
+ maxLength: 16
28
29
  registrationNumber:
29
30
  label: Registration number
30
31
  type: identifier
@@ -35,6 +36,7 @@ Security:
35
36
  label: Financial Instrument Global Identifier
36
37
  type: identifier
37
38
  format: figi
39
+ maxLength: 16
38
40
  issuer:
39
41
  label: "Issuer"
40
42
  type: entity
@@ -58,6 +58,7 @@ Thing:
58
58
  label: Wikidata ID
59
59
  type: identifier
60
60
  format: qid
61
+ maxLength: 32
61
62
  keywords:
62
63
  label: Keywords
63
64
  topics:
@@ -20,6 +20,7 @@ Vessel:
20
20
  imoNumber:
21
21
  label: IMO Number
22
22
  type: identifier
23
+ maxLength: 16
23
24
  crsNumber:
24
25
  label: CRS Number
25
26
  type: identifier
@@ -50,3 +51,4 @@ Vessel:
50
51
  mmsi:
51
52
  label: MMSI
52
53
  type: identifier
54
+ maxLength: 16
@@ -450,7 +450,7 @@ msgstr "حسابات بنكية"
450
450
  #: followthemoney/schema/BankAccount.yaml
451
451
  msgid ""
452
452
  "An account held at a bank and controlled by an owner. This may also be used"
453
- " to describe more complex arrangements like correspondent bank settlement "
453
+ " to describe more complex arrangements like correspondent bank settlement "
454
454
  "accounts.\n"
455
455
  msgstr ""
456
456
 
@@ -1625,7 +1625,7 @@ msgstr "مستندات التوثيق"
1625
1625
  #. Documentation.description
1626
1626
  #: followthemoney/schema/Documentation.yml
1627
1627
  msgid ""
1628
- "Links some entity to a document, which might provide further detail or "
1628
+ "Links some entity to a document, which might provide further detail or "
1629
1629
  "evidence regarding the entity.\n"
1630
1630
  msgstr ""
1631
1631
 
@@ -2761,7 +2761,7 @@ msgstr "منظمات"
2761
2761
  msgid ""
2762
2762
  "Any type of incorporated entity that cannot be owned by another (see "
2763
2763
  "Company). This might include charities, foundations or state-owned "
2764
- "enterprises, depending on their jurisdiction.\n"
2764
+ "enterprises, depending on their jurisdiction.\n"
2765
2765
  msgstr ""
2766
2766
 
2767
2767
  #. Ownership.label
@@ -3129,7 +3129,7 @@ msgstr ""
3129
3129
  #. Position.description
3130
3130
  #: followthemoney/schema/Position.yaml
3131
3131
  msgid ""
3132
- "A post, role or position within an organization or body. This describes a position one or more people may occupy and not the occupation of the post by a specific individual at a specific point in time.\n"
3132
+ "A post, role or position within an organization or body. This describes a position one or more people may occupy and not the occupation of the post by a specific individual at a specific point in time.\n"
3133
3133
  "'subnationalArea' should be used to further restrict the scope of the position. It should not simply represent some regional aspect of the role - e.g. the constituency of a national member of parliament - when their legislative jurisdiction is nationwide.\n"
3134
3134
  msgstr ""
3135
3135
 
@@ -3161,7 +3161,7 @@ msgstr ""
3161
3161
  #. Post.description
3162
3162
  #: followthemoney/schema/Post.yaml
3163
3163
  msgid ""
3164
- "A post, role or position held by an individual within an organization or "
3164
+ "A post, role or position held by an individual within an organization or "
3165
3165
  "body. This describes the period for which the position is held, not the "
3166
3166
  "abstract concept of the post.\n"
3167
3167
  msgstr ""
@@ -440,7 +440,7 @@ msgstr ""
440
440
  #: followthemoney/schema/BankAccount.yaml
441
441
  msgid ""
442
442
  "An account held at a bank and controlled by an owner. This may also be used"
443
- " to describe more complex arrangements like correspondent bank settlement "
443
+ " to describe more complex arrangements like correspondent bank settlement "
444
444
  "accounts.\n"
445
445
  msgstr ""
446
446
 
@@ -1345,7 +1345,7 @@ msgstr ""
1345
1345
  #. Documentation.description
1346
1346
  #: followthemoney/schema/Documentation.yml
1347
1347
  msgid ""
1348
- "Links some entity to a document, which might provide further detail or "
1348
+ "Links some entity to a document, which might provide further detail or "
1349
1349
  "evidence regarding the entity.\n"
1350
1350
  msgstr ""
1351
1351
 
@@ -2416,7 +2416,7 @@ msgstr "Organizacije"
2416
2416
  msgid ""
2417
2417
  "Any type of incorporated entity that cannot be owned by another (see "
2418
2418
  "Company). This might include charities, foundations or state-owned "
2419
- "enterprises, depending on their juristiction.\n"
2419
+ "enterprises, depending on their juristiction.\n"
2420
2420
  msgstr ""
2421
2421
 
2422
2422
  #. Ownership.label
@@ -453,7 +453,7 @@ msgstr "Bankkonten"
453
453
  #: followthemoney/schema/BankAccount.yaml
454
454
  msgid ""
455
455
  "An account held at a bank and controlled by an owner. This may also be used"
456
- " to describe more complex arrangements like correspondent bank settlement "
456
+ " to describe more complex arrangements like correspondent bank settlement "
457
457
  "accounts.\n"
458
458
  msgstr ""
459
459
 
@@ -1623,7 +1623,7 @@ msgstr "Dokumentationen"
1623
1623
  #. Documentation.description
1624
1624
  #: followthemoney/schema/Documentation.yml
1625
1625
  msgid ""
1626
- "Links some entity to a document, which might provide further detail or "
1626
+ "Links some entity to a document, which might provide further detail or "
1627
1627
  "evidence regarding the entity.\n"
1628
1628
  msgstr ""
1629
1629
  "Eine Verweis von einem Objekt auf in Dokument, das weitere Details oder "
@@ -2758,7 +2758,7 @@ msgstr "Organisationen"
2758
2758
  msgid ""
2759
2759
  "Any type of incorporated entity that cannot be owned by another (see "
2760
2760
  "Company). This might include charities, foundations or state-owned "
2761
- "enterprises, depending on their jurisdiction.\n"
2761
+ "enterprises, depending on their jurisdiction.\n"
2762
2762
  msgstr ""
2763
2763
 
2764
2764
  #. Ownership.label
@@ -3129,7 +3129,7 @@ msgstr ""
3129
3129
  #. Position.description
3130
3130
  #: followthemoney/schema/Position.yaml
3131
3131
  msgid ""
3132
- "A post, role or position within an organization or body. This describes a position one or more people may occupy and not the occupation of the post by a specific individual at a specific point in time.\n"
3132
+ "A post, role or position within an organization or body. This describes a position one or more people may occupy and not the occupation of the post by a specific individual at a specific point in time.\n"
3133
3133
  "'subnationalArea' should be used to further restrict the scope of the position. It should not simply represent some regional aspect of the role - e.g. the constituency of a national member of parliament - when their legislative jurisdiction is nationwide.\n"
3134
3134
  msgstr ""
3135
3135
 
@@ -3161,7 +3161,7 @@ msgstr ""
3161
3161
  #. Post.description
3162
3162
  #: followthemoney/schema/Post.yaml
3163
3163
  msgid ""
3164
- "A post, role or position held by an individual within an organization or "
3164
+ "A post, role or position held by an individual within an organization or "
3165
3165
  "body. This describes the period for which the position is held, not the "
3166
3166
  "abstract concept of the post.\n"
3167
3167
  msgstr ""
@@ -450,7 +450,7 @@ msgstr "Cuentas bancarias"
450
450
  #: followthemoney/schema/BankAccount.yaml
451
451
  msgid ""
452
452
  "An account held at a bank and controlled by an owner. This may also be used"
453
- " to describe more complex arrangements like correspondent bank settlement "
453
+ " to describe more complex arrangements like correspondent bank settlement "
454
454
  "accounts.\n"
455
455
  msgstr ""
456
456
 
@@ -1628,7 +1628,7 @@ msgstr "Documentos"
1628
1628
  #. Documentation.description
1629
1629
  #: followthemoney/schema/Documentation.yml
1630
1630
  msgid ""
1631
- "Links some entity to a document, which might provide further detail or "
1631
+ "Links some entity to a document, which might provide further detail or "
1632
1632
  "evidence regarding the entity.\n"
1633
1633
  msgstr ""
1634
1634
 
@@ -2768,7 +2768,7 @@ msgstr "Organizaciones"
2768
2768
  msgid ""
2769
2769
  "Any type of incorporated entity that cannot be owned by another (see "
2770
2770
  "Company). This might include charities, foundations or state-owned "
2771
- "enterprises, depending on their jurisdiction.\n"
2771
+ "enterprises, depending on their jurisdiction.\n"
2772
2772
  msgstr ""
2773
2773
 
2774
2774
  #. Ownership.label
@@ -3137,7 +3137,7 @@ msgstr ""
3137
3137
  #. Position.description
3138
3138
  #: followthemoney/schema/Position.yaml
3139
3139
  msgid ""
3140
- "A post, role or position within an organization or body. This describes a position one or more people may occupy and not the occupation of the post by a specific individual at a specific point in time.\n"
3140
+ "A post, role or position within an organization or body. This describes a position one or more people may occupy and not the occupation of the post by a specific individual at a specific point in time.\n"
3141
3141
  "'subnationalArea' should be used to further restrict the scope of the position. It should not simply represent some regional aspect of the role - e.g. the constituency of a national member of parliament - when their legislative jurisdiction is nationwide.\n"
3142
3142
  msgstr ""
3143
3143
 
@@ -3169,7 +3169,7 @@ msgstr ""
3169
3169
  #. Post.description
3170
3170
  #: followthemoney/schema/Post.yaml
3171
3171
  msgid ""
3172
- "A post, role or position held by an individual within an organization or "
3172
+ "A post, role or position held by an individual within an organization or "
3173
3173
  "body. This describes the period for which the position is held, not the "
3174
3174
  "abstract concept of the post.\n"
3175
3175
  msgstr ""
@@ -452,7 +452,7 @@ msgstr "Comptes bancaires"
452
452
  #: followthemoney/schema/BankAccount.yaml
453
453
  msgid ""
454
454
  "An account held at a bank and controlled by an owner. This may also be used"
455
- " to describe more complex arrangements like correspondent bank settlement "
455
+ " to describe more complex arrangements like correspondent bank settlement "
456
456
  "accounts.\n"
457
457
  msgstr ""
458
458
  "Un compte détenu dans une banque et contrôlé par un propriétaire. Cette "
@@ -1639,7 +1639,7 @@ msgstr "Documentations"
1639
1639
  #. Documentation.description
1640
1640
  #: followthemoney/schema/Documentation.yml
1641
1641
  msgid ""
1642
- "Links some entity to a document, which might provide further detail or "
1642
+ "Links some entity to a document, which might provide further detail or "
1643
1643
  "evidence regarding the entity.\n"
1644
1644
  msgstr ""
1645
1645
  "Associe une entité à un document qui est susceptible d’apporter plus "
@@ -2791,7 +2791,7 @@ msgstr "Organisations"
2791
2791
  msgid ""
2792
2792
  "Any type of incorporated entity that cannot be owned by another (see "
2793
2793
  "Company). This might include charities, foundations or state-owned "
2794
- "enterprises, depending on their jurisdiction.\n"
2794
+ "enterprises, depending on their jurisdiction.\n"
2795
2795
  msgstr ""
2796
2796
 
2797
2797
  #. Ownership.label
@@ -3164,7 +3164,7 @@ msgstr ""
3164
3164
  #. Position.description
3165
3165
  #: followthemoney/schema/Position.yaml
3166
3166
  msgid ""
3167
- "A post, role or position within an organization or body. This describes a position one or more people may occupy and not the occupation of the post by a specific individual at a specific point in time.\n"
3167
+ "A post, role or position within an organization or body. This describes a position one or more people may occupy and not the occupation of the post by a specific individual at a specific point in time.\n"
3168
3168
  "'subnationalArea' should be used to further restrict the scope of the position. It should not simply represent some regional aspect of the role - e.g. the constituency of a national member of parliament - when their legislative jurisdiction is nationwide.\n"
3169
3169
  msgstr ""
3170
3170
 
@@ -3196,7 +3196,7 @@ msgstr ""
3196
3196
  #. Post.description
3197
3197
  #: followthemoney/schema/Post.yaml
3198
3198
  msgid ""
3199
- "A post, role or position held by an individual within an organization or "
3199
+ "A post, role or position held by an individual within an organization or "
3200
3200
  "body. This describes the period for which the position is held, not the "
3201
3201
  "abstract concept of the post.\n"
3202
3202
  msgstr ""
@@ -442,7 +442,7 @@ msgstr "Comptes bancaires"
442
442
  #: followthemoney/schema/BankAccount.yaml
443
443
  msgid ""
444
444
  "An account held at a bank and controlled by an owner. This may also be used"
445
- " to describe more complex arrangements like correspondent bank settlement "
445
+ " to describe more complex arrangements like correspondent bank settlement "
446
446
  "accounts.\n"
447
447
  msgstr ""
448
448
  "Un compte détenu dans une banque et contrôlé par un propriétaire. Cette "
@@ -1368,7 +1368,7 @@ msgstr "Documentations"
1368
1368
  #. Documentation.description
1369
1369
  #: followthemoney/schema/Documentation.yml
1370
1370
  msgid ""
1371
- "Links some entity to a document, which might provide further detail or "
1371
+ "Links some entity to a document, which might provide further detail or "
1372
1372
  "evidence regarding the entity.\n"
1373
1373
  msgstr ""
1374
1374
  "Associe une entité à un document qui est susceptible d’apporter plus "
@@ -2465,7 +2465,7 @@ msgstr "Organisations"
2465
2465
  msgid ""
2466
2466
  "Any type of incorporated entity that cannot be owned by another (see "
2467
2467
  "Company). This might include charities, foundations or state-owned "
2468
- "enterprises, depending on their juristiction.\n"
2468
+ "enterprises, depending on their juristiction.\n"
2469
2469
  msgstr ""
2470
2470
  "Tout type d’entité constituée qui ne peut être détenue par une autre (voir "
2471
2471
  "Société). Il peut s’agir d’une organisation caritative, d’une fondation ou "