followthemoney 1.3.7__py3-none-any.whl → 3.8.0__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 (186) hide show
  1. followthemoney/__init__.py +5 -3
  2. followthemoney/cli/__init__.py +17 -0
  3. followthemoney/cli/aggregate.py +56 -0
  4. followthemoney/cli/cli.py +88 -0
  5. followthemoney/cli/exports.py +121 -0
  6. followthemoney/cli/mapping.py +85 -0
  7. followthemoney/cli/sieve.py +67 -0
  8. followthemoney/cli/util.py +142 -0
  9. followthemoney/compare.py +130 -60
  10. followthemoney/exc.py +19 -6
  11. followthemoney/export/common.py +29 -0
  12. followthemoney/export/csv.py +82 -0
  13. followthemoney/export/excel.py +75 -0
  14. followthemoney/export/graph.py +79 -0
  15. followthemoney/export/neo4j.py +182 -0
  16. followthemoney/export/rdf.py +26 -0
  17. followthemoney/graph.py +308 -0
  18. followthemoney/helpers.py +212 -0
  19. followthemoney/mapping/__init__.py +1 -1
  20. followthemoney/mapping/csv.py +67 -35
  21. followthemoney/mapping/entity.py +116 -44
  22. followthemoney/mapping/property.py +90 -44
  23. followthemoney/mapping/query.py +27 -19
  24. followthemoney/mapping/source.py +15 -5
  25. followthemoney/mapping/sql.py +75 -61
  26. followthemoney/messages.py +13 -7
  27. followthemoney/model.py +108 -56
  28. followthemoney/namespace.py +119 -0
  29. followthemoney/offshore.py +48 -0
  30. followthemoney/ontology.py +77 -0
  31. followthemoney/property.py +204 -71
  32. followthemoney/proxy.py +455 -118
  33. followthemoney/rdf.py +9 -0
  34. followthemoney/schema/Address.yaml +78 -0
  35. followthemoney/schema/Airplane.yaml +17 -10
  36. followthemoney/schema/Analyzable.yaml +54 -0
  37. followthemoney/schema/Article.yaml +16 -0
  38. followthemoney/schema/Assessment.yaml +32 -0
  39. followthemoney/schema/Asset.yaml +10 -4
  40. followthemoney/schema/Associate.yaml +41 -0
  41. followthemoney/schema/Audio.yaml +24 -0
  42. followthemoney/schema/BankAccount.yaml +53 -9
  43. followthemoney/schema/Call.yaml +48 -0
  44. followthemoney/schema/CallForTenders.yaml +117 -0
  45. followthemoney/schema/Company.yaml +37 -12
  46. followthemoney/schema/Contract.yaml +41 -7
  47. followthemoney/schema/ContractAward.yaml +30 -11
  48. followthemoney/schema/CourtCase.yaml +16 -10
  49. followthemoney/schema/CourtCaseParty.yaml +17 -6
  50. followthemoney/schema/CryptoWallet.yaml +48 -0
  51. followthemoney/schema/Debt.yaml +37 -0
  52. followthemoney/schema/Directorship.yaml +17 -4
  53. followthemoney/schema/Document.yaml +72 -139
  54. followthemoney/schema/Documentation.yml +38 -0
  55. followthemoney/schema/EconomicActivity.yaml +32 -17
  56. followthemoney/schema/Email.yaml +76 -0
  57. followthemoney/schema/Employment.yaml +39 -0
  58. followthemoney/schema/Event.yaml +35 -3
  59. followthemoney/schema/Family.yaml +41 -0
  60. followthemoney/schema/Folder.yaml +13 -0
  61. followthemoney/schema/HyperText.yaml +21 -0
  62. followthemoney/schema/Identification.yaml +40 -0
  63. followthemoney/schema/Image.yaml +25 -0
  64. followthemoney/schema/Interest.yaml +3 -6
  65. followthemoney/schema/Interval.yaml +56 -5
  66. followthemoney/schema/LegalEntity.yaml +81 -20
  67. followthemoney/schema/License.yaml +7 -3
  68. followthemoney/schema/Membership.yaml +19 -4
  69. followthemoney/schema/Mention.yaml +54 -0
  70. followthemoney/schema/Message.yaml +73 -0
  71. followthemoney/schema/Note.yaml +23 -0
  72. followthemoney/schema/Occupancy.yaml +40 -0
  73. followthemoney/schema/Organization.yaml +38 -3
  74. followthemoney/schema/Ownership.yaml +16 -4
  75. followthemoney/schema/Package.yaml +17 -0
  76. followthemoney/schema/Page.yaml +43 -0
  77. followthemoney/schema/Pages.yaml +23 -0
  78. followthemoney/schema/Passport.yaml +15 -17
  79. followthemoney/schema/Payment.yaml +38 -7
  80. followthemoney/schema/Person.yaml +61 -5
  81. followthemoney/schema/PlainText.yaml +17 -0
  82. followthemoney/schema/Position.yaml +50 -0
  83. followthemoney/schema/Post.yaml +42 -0
  84. followthemoney/schema/Project.yaml +27 -0
  85. followthemoney/schema/ProjectParticipant.yaml +36 -0
  86. followthemoney/schema/PublicBody.yaml +14 -3
  87. followthemoney/schema/RealEstate.yaml +19 -3
  88. followthemoney/schema/Representation.yaml +17 -6
  89. followthemoney/schema/Sanction.yaml +44 -20
  90. followthemoney/schema/Security.yaml +59 -0
  91. followthemoney/schema/Similar.yaml +37 -0
  92. followthemoney/schema/Succession.yaml +36 -0
  93. followthemoney/schema/Table.yaml +32 -0
  94. followthemoney/schema/TaxRoll.yaml +27 -9
  95. followthemoney/schema/Thing.yaml +69 -13
  96. followthemoney/schema/Trip.yaml +42 -0
  97. followthemoney/schema/UnknownLink.yaml +17 -6
  98. followthemoney/schema/UserAccount.yaml +44 -0
  99. followthemoney/schema/Value.yaml +5 -1
  100. followthemoney/schema/Vehicle.yaml +25 -8
  101. followthemoney/schema/Vessel.yaml +18 -10
  102. followthemoney/schema/Video.yaml +20 -0
  103. followthemoney/schema/Workbook.yaml +18 -0
  104. followthemoney/schema.py +406 -135
  105. followthemoney/translations/ar/LC_MESSAGES/followthemoney.mo +0 -0
  106. followthemoney/translations/ar/LC_MESSAGES/followthemoney.po +2900 -787
  107. followthemoney/translations/bs/LC_MESSAGES/followthemoney.mo +0 -0
  108. followthemoney/translations/bs/LC_MESSAGES/followthemoney.po +2108 -520
  109. followthemoney/translations/de/LC_MESSAGES/followthemoney.mo +0 -0
  110. followthemoney/translations/de/LC_MESSAGES/followthemoney.po +2902 -782
  111. followthemoney/translations/es/LC_MESSAGES/followthemoney.mo +0 -0
  112. followthemoney/translations/es/LC_MESSAGES/followthemoney.po +2893 -779
  113. followthemoney/translations/fr/LC_MESSAGES/followthemoney.mo +0 -0
  114. followthemoney/translations/fr/LC_MESSAGES/followthemoney.po +4362 -0
  115. followthemoney/translations/fr/followthemoney.po +3861 -0
  116. followthemoney/translations/messages.pot +3021 -725
  117. followthemoney/translations/nb/LC_MESSAGES/followthemoney.mo +0 -0
  118. followthemoney/translations/nb/LC_MESSAGES/followthemoney.po +3778 -0
  119. followthemoney/translations/nl/LC_MESSAGES/followthemoney.mo +0 -0
  120. followthemoney/translations/nl/LC_MESSAGES/followthemoney.po +3837 -0
  121. followthemoney/translations/pt_BR/LC_MESSAGES/followthemoney.mo +0 -0
  122. followthemoney/translations/pt_BR/LC_MESSAGES/followthemoney.po +3784 -0
  123. followthemoney/translations/ru/LC_MESSAGES/followthemoney.mo +0 -0
  124. followthemoney/translations/ru/LC_MESSAGES/followthemoney.po +2837 -539
  125. followthemoney/translations/ru/followthemoney.po +4221 -0
  126. followthemoney/translations/tr/LC_MESSAGES/followthemoney.mo +0 -0
  127. followthemoney/translations/tr/LC_MESSAGES/followthemoney.po +2073 -491
  128. followthemoney/types/__init__.py +35 -17
  129. followthemoney/types/address.py +41 -21
  130. followthemoney/types/checksum.py +25 -0
  131. followthemoney/types/common.py +233 -88
  132. followthemoney/types/country.py +89 -56
  133. followthemoney/types/date.py +59 -76
  134. followthemoney/types/email.py +66 -35
  135. followthemoney/types/entity.py +66 -13
  136. followthemoney/types/gender.py +66 -0
  137. followthemoney/types/iban.py +47 -28
  138. followthemoney/types/identifier.py +49 -22
  139. followthemoney/types/ip.py +35 -21
  140. followthemoney/types/json.py +58 -0
  141. followthemoney/types/language.py +124 -37
  142. followthemoney/types/mimetype.py +44 -0
  143. followthemoney/types/name.py +56 -12
  144. followthemoney/types/number.py +30 -0
  145. followthemoney/types/phone.py +92 -34
  146. followthemoney/types/registry.py +52 -0
  147. followthemoney/types/string.py +43 -0
  148. followthemoney/types/topic.py +94 -0
  149. followthemoney/types/url.py +39 -17
  150. followthemoney/util.py +139 -45
  151. followthemoney-3.8.0.dist-info/METADATA +153 -0
  152. followthemoney-3.8.0.dist-info/RECORD +157 -0
  153. {followthemoney-1.3.7.dist-info → followthemoney-3.8.0.dist-info}/WHEEL +1 -2
  154. followthemoney-3.8.0.dist-info/entry_points.txt +17 -0
  155. followthemoney-1.3.7.dist-info/LICENSE.txt → followthemoney-3.8.0.dist-info/licenses/LICENSE +1 -1
  156. followthemoney/link.py +0 -75
  157. followthemoney/schema/Associate.yml +0 -19
  158. followthemoney/schema/Family.yml +0 -19
  159. followthemoney/schema/Land.yml +0 -9
  160. followthemoney/schema/Relationship.yaml +0 -26
  161. followthemoney/types/domain.py +0 -50
  162. followthemoney-1.3.7.dist-info/DESCRIPTION.rst +0 -3
  163. followthemoney-1.3.7.dist-info/METADATA +0 -39
  164. followthemoney-1.3.7.dist-info/RECORD +0 -108
  165. followthemoney-1.3.7.dist-info/entry_points.txt +0 -3
  166. followthemoney-1.3.7.dist-info/metadata.json +0 -1
  167. followthemoney-1.3.7.dist-info/namespace_packages.txt +0 -1
  168. followthemoney-1.3.7.dist-info/top_level.txt +0 -3
  169. ns/ontology.py +0 -128
  170. tests/types/test_addresses.py +0 -24
  171. tests/types/test_common.py +0 -32
  172. tests/types/test_countries.py +0 -27
  173. tests/types/test_dates.py +0 -73
  174. tests/types/test_domains.py +0 -23
  175. tests/types/test_emails.py +0 -32
  176. tests/types/test_entity.py +0 -19
  177. tests/types/test_iban.py +0 -109
  178. tests/types/test_identifiers.py +0 -27
  179. tests/types/test_ip.py +0 -29
  180. tests/types/test_languages.py +0 -23
  181. tests/types/test_names.py +0 -33
  182. tests/types/test_phones.py +0 -24
  183. tests/types/test_registry.py +0 -14
  184. tests/types/test_urls.py +0 -23
  185. {ns → followthemoney/export}/__init__.py +0 -0
  186. /tests/types/__init__.py → /followthemoney/py.typed +0 -0
@@ -0,0 +1,42 @@
1
+ Trip:
2
+ label: "Trip"
3
+ plural: "Trips"
4
+ extends:
5
+ - Event
6
+ matchable: false
7
+ caption:
8
+ - name
9
+ - startDate
10
+ - endDate
11
+ required:
12
+ - name
13
+ - endLocation
14
+ - startLocation
15
+ featured:
16
+ - endLocation
17
+ - startLocation
18
+ - vehicle
19
+ - startDate
20
+ - endDate
21
+ properties:
22
+ startLocation:
23
+ label: "Start location"
24
+ type: entity
25
+ range: Address
26
+ reverse:
27
+ name: tripsDeparting
28
+ label: "Trips departing"
29
+ endLocation:
30
+ label: "End location"
31
+ type: entity
32
+ range: Address
33
+ reverse:
34
+ name: tripsIncoming
35
+ label: "Trips incoming"
36
+ vehicle:
37
+ label: "Vehicle"
38
+ type: entity
39
+ range: Vehicle
40
+ reverse:
41
+ name: tripsInvolved
42
+ label: "Trips"
@@ -1,13 +1,24 @@
1
1
  # Two entities are connected but the nature of the connection is tbd
2
- UnknownLink:
3
- label: "Link"
4
- extends: Interest
5
- icon: fa-user-circle
2
+ UnknownLink:
3
+ label: "Other link"
4
+ plural: "Other links"
5
+ extends:
6
+ - Interest
6
7
  matchable: false
7
8
  featured:
8
9
  - subject
9
10
  - object
10
11
  - role
12
+ required:
13
+ - subject
14
+ - object
15
+ edge:
16
+ source: subject
17
+ label: "linked to"
18
+ target: object
19
+ directed: false
20
+ caption:
21
+ - role
11
22
  properties:
12
23
  subject:
13
24
  label: "Subject"
@@ -15,11 +26,11 @@ UnknownLink:
15
26
  name: unknownLinkTo
16
27
  label: "Linked to"
17
28
  type: entity
18
- schema: Thing
29
+ range: Thing
19
30
  object:
20
31
  label: "Object"
21
32
  reverse:
22
33
  name: unknownLinkFrom
23
34
  label: "Linked from"
24
35
  type: entity
25
- schema: Thing
36
+ range: Thing
@@ -0,0 +1,44 @@
1
+ UserAccount:
2
+ extends:
3
+ - Thing
4
+ label: "User account"
5
+ plural: "User accounts"
6
+ matchable: true
7
+ generated: true
8
+ featured:
9
+ - username
10
+ - service
11
+ - email
12
+ - owner
13
+ required:
14
+ - username
15
+ caption:
16
+ - username
17
+ - email
18
+ - service
19
+ properties:
20
+ owner:
21
+ label: "Owner"
22
+ type: entity
23
+ range: LegalEntity
24
+ reverse:
25
+ name: userAccounts
26
+ label: "User accounts"
27
+ service:
28
+ label: "Service"
29
+ type: string
30
+ email:
31
+ label: "E-Mail"
32
+ type: email
33
+ number:
34
+ label: "Phone Number"
35
+ type: phone
36
+ username:
37
+ label: "Username"
38
+ type: string
39
+ password:
40
+ label: "Password"
41
+ type: string
42
+ ipAddress:
43
+ label: "IP address"
44
+ type: ip
@@ -1,13 +1,17 @@
1
1
  Value:
2
2
  label: "Value"
3
+ plural: "Values"
3
4
  abstract: true
4
5
  matchable: false
5
6
  properties:
6
7
  amount:
7
8
  label: "Amount"
9
+ type: number
8
10
  currency:
9
11
  label: "Currency"
10
12
  amountUsd:
11
13
  label: "Amount in USD"
14
+ type: number
12
15
  amountEur:
13
- label: "Amount in EUR"
16
+ label: "Amount in EUR"
17
+ type: number
@@ -1,37 +1,54 @@
1
1
  Vehicle:
2
2
  label: Vehicle
3
3
  plural: Vehicles
4
- extends: Asset
5
- icon: fa-bicycle
4
+ extends:
5
+ - Asset
6
6
  matchable: false
7
7
  featured:
8
8
  - type
9
9
  - name
10
- - registrationNumber
10
+ - registrationNumber
11
11
  - country
12
12
  - owner
13
+ caption:
14
+ - name
15
+ - registrationNumber
16
+ temporalExtent:
17
+ start:
18
+ - buildDate
19
+ - registrationDate
20
+ end:
21
+ - deregistrationDate
13
22
  properties:
14
23
  registrationNumber:
15
- label: Registration Number
24
+ label: Registration number
16
25
  type: identifier
17
26
  type:
18
27
  label: Type
19
28
  model:
20
29
  label: Model
21
30
  owner:
31
+ # Use `Ownership` link instead.
32
+ deprecated: true
22
33
  label: Owner
23
34
  type: entity
24
35
  range: LegalEntity
36
+ reverse:
37
+ name: ownedVehicles
38
+ label: "Vehicles owned"
25
39
  operator:
26
40
  label: Operator
27
41
  type: entity
28
42
  range: LegalEntity
43
+ reverse:
44
+ name: operatedVehicles
45
+ label: "Vehicles operated"
29
46
  buildDate:
30
47
  label: Build Date
31
48
  type: date
32
- country:
33
- label: Country
34
- type: country
35
49
  registrationDate:
36
50
  label: Registration Date
37
- type: date
51
+ type: date
52
+ deregistrationDate:
53
+ label: De-registration Date
54
+ type: date
@@ -1,23 +1,30 @@
1
1
  Vessel:
2
2
  label: Vessel
3
3
  plural: Vessels
4
- #extends: Asset
5
- extends: Vehicle
6
- icon: fa-ship
7
- matchable: false
4
+ description: >
5
+ A boat or ship. Typically flying some sort of national flag.
6
+ extends:
7
+ - Vehicle
8
+ matchable: true
8
9
  featured:
9
10
  - name
10
11
  - imoNumber
11
12
  - type
13
+ - flag
14
+ required:
15
+ - name
16
+ caption:
17
+ - name
18
+ - imoNumber
12
19
  properties:
13
20
  imoNumber:
14
21
  label: IMO Number
15
22
  type: identifier
23
+ format: imo
24
+ maxLength: 16
16
25
  crsNumber:
17
26
  label: CRS Number
18
27
  type: identifier
19
- #type:
20
- # label: Type
21
28
  flag:
22
29
  label: Flag
23
30
  type: country
@@ -27,23 +34,24 @@ Vessel:
27
34
  label: Navigation Area
28
35
  tonnage:
29
36
  label: Tonnage
37
+ type: number
30
38
  grossRegisteredTonnage:
31
39
  label: Gross Registered Tonnage
40
+ type: number
32
41
  nameChangeDate:
33
42
  label: Date of Name Change
34
43
  type: date
35
44
  callSign:
36
45
  label: Call Sign
37
46
  type: identifier
38
- pastNames:
39
- label: Past Names
40
- type: name
41
47
  pastFlags:
42
48
  label: Past Flags
49
+ type: country
43
50
  pastTypes:
44
51
  label: Past Types
45
52
  #buildDate:
46
53
  # label: Build Date
47
54
  mmsi:
48
55
  label: MMSI
49
- type: identifier
56
+ type: identifier
57
+ maxLength: 16
@@ -0,0 +1,20 @@
1
+ Video:
2
+ extends:
3
+ - Document
4
+ label: Video
5
+ plural: Videos
6
+ matchable: false
7
+ generated: true
8
+ featured:
9
+ - title
10
+ - fileName
11
+ - mimeType
12
+ - parent
13
+ caption:
14
+ - fileName
15
+ - title
16
+ properties:
17
+ duration:
18
+ label: "Duration"
19
+ description: "Duration of the video in ms"
20
+ type: number
@@ -0,0 +1,18 @@
1
+ Workbook:
2
+ extends:
3
+ - Folder
4
+ label: Workbook
5
+ plural: Workbooks
6
+ description: >
7
+ A spreadsheet document, for example from Excel. Each spreadsheet contains a set
8
+ of sheets that hold actual data.
9
+ matchable: false
10
+ generated: true
11
+ featured:
12
+ - title
13
+ - fileName
14
+ # - mimeType
15
+ - parent
16
+ caption:
17
+ - fileName
18
+ - title