followthemoney 4.3.0__py3-none-any.whl → 4.5.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.
- followthemoney/__init__.py +1 -1
- followthemoney/compare.py +6 -0
- followthemoney/dataset/dataset.py +18 -0
- followthemoney/entity.py +29 -15
- followthemoney/mapping/csv.py +3 -1
- followthemoney/model.py +6 -5
- followthemoney/property.py +23 -4
- followthemoney/proxy.py +32 -11
- followthemoney/schema/Company.yaml +5 -0
- followthemoney/schema/CryptoWallet.yaml +4 -0
- followthemoney/schema/Image.yaml +7 -0
- followthemoney/schema/LegalEntity.yaml +10 -0
- followthemoney/schema/Organization.yaml +5 -0
- followthemoney/schema/Person.yaml +4 -0
- followthemoney/schema/PublicBody.yaml +4 -0
- followthemoney/schema/Thing.yaml +3 -2
- followthemoney/schema.py +16 -2
- followthemoney/settings.py +19 -0
- followthemoney/statement/entity.py +31 -7
- followthemoney/statement/serialize.py +18 -13
- followthemoney/statement/statement.py +151 -42
- followthemoney/statement/util.py +23 -2
- followthemoney/types/address.py +3 -3
- followthemoney/types/checksum.py +3 -3
- followthemoney/types/country.py +19 -4
- followthemoney/types/date.py +13 -3
- followthemoney/types/entity.py +3 -3
- followthemoney/types/gender.py +6 -6
- followthemoney/types/identifier.py +8 -8
- followthemoney/types/ip.py +3 -3
- followthemoney/types/json.py +2 -2
- followthemoney/types/language.py +3 -3
- followthemoney/types/mimetype.py +3 -3
- followthemoney/types/name.py +3 -3
- followthemoney/types/number.py +2 -2
- followthemoney/types/phone.py +3 -3
- followthemoney/types/string.py +2 -2
- followthemoney/types/topic.py +6 -3
- followthemoney/types/url.py +3 -3
- followthemoney/util.py +6 -14
- {followthemoney-4.3.0.dist-info → followthemoney-4.5.0.dist-info}/METADATA +3 -3
- {followthemoney-4.3.0.dist-info → followthemoney-4.5.0.dist-info}/RECORD +45 -44
- {followthemoney-4.3.0.dist-info → followthemoney-4.5.0.dist-info}/WHEEL +1 -1
- {followthemoney-4.3.0.dist-info → followthemoney-4.5.0.dist-info}/entry_points.txt +0 -0
- {followthemoney-4.3.0.dist-info → followthemoney-4.5.0.dist-info}/licenses/LICENSE +0 -0
followthemoney/types/language.py
CHANGED
|
@@ -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.util import defer as _, gettext
|
|
7
|
-
from followthemoney.
|
|
7
|
+
from followthemoney.settings import get_env_list
|
|
8
8
|
|
|
9
9
|
if TYPE_CHECKING:
|
|
10
10
|
from followthemoney.proxy import EntityProxy
|
|
@@ -16,8 +16,8 @@ class LanguageType(EnumType):
|
|
|
16
16
|
for additional languages once there is a specific need for them to be
|
|
17
17
|
supported."""
|
|
18
18
|
|
|
19
|
-
name =
|
|
20
|
-
group =
|
|
19
|
+
name = "language"
|
|
20
|
+
group = "languages"
|
|
21
21
|
label = _("Language")
|
|
22
22
|
plural = _("Languages")
|
|
23
23
|
matchable = False
|
followthemoney/types/mimetype.py
CHANGED
|
@@ -3,7 +3,7 @@ from rigour.mime import normalize_mimetype, parse_mimetype
|
|
|
3
3
|
from rigour.mime import DEFAULT
|
|
4
4
|
|
|
5
5
|
from followthemoney.types.common import PropertyType
|
|
6
|
-
from followthemoney.util import
|
|
6
|
+
from followthemoney.util import defer as _
|
|
7
7
|
|
|
8
8
|
if TYPE_CHECKING:
|
|
9
9
|
from followthemoney.proxy import EntityProxy
|
|
@@ -18,8 +18,8 @@ class MimeType(PropertyType):
|
|
|
18
18
|
MIME type properties do not contain parameters as used in HTTP headers,
|
|
19
19
|
like `charset=UTF-8`."""
|
|
20
20
|
|
|
21
|
-
name =
|
|
22
|
-
group =
|
|
21
|
+
name = "mimetype"
|
|
22
|
+
group = "mimetypes"
|
|
23
23
|
label = _("MIME-Type")
|
|
24
24
|
plural = _("MIME-Types")
|
|
25
25
|
matchable = False
|
followthemoney/types/name.py
CHANGED
|
@@ -7,7 +7,7 @@ from rigour.text.distance import levenshtein_similarity
|
|
|
7
7
|
|
|
8
8
|
from followthemoney.types.common import PropertyType
|
|
9
9
|
from followthemoney.util import dampen
|
|
10
|
-
from followthemoney.util import
|
|
10
|
+
from followthemoney.util import defer as _
|
|
11
11
|
|
|
12
12
|
if TYPE_CHECKING:
|
|
13
13
|
from followthemoney.proxy import EntityProxy
|
|
@@ -21,8 +21,8 @@ class NameType(PropertyType):
|
|
|
21
21
|
No validation rules apply, and things having multiple names must be considered
|
|
22
22
|
a perfectly ordinary case."""
|
|
23
23
|
|
|
24
|
-
name =
|
|
25
|
-
group =
|
|
24
|
+
name = "name"
|
|
25
|
+
group = "names"
|
|
26
26
|
label = _("Name")
|
|
27
27
|
plural = _("Names")
|
|
28
28
|
matchable = True
|
followthemoney/types/number.py
CHANGED
|
@@ -2,7 +2,7 @@ import re
|
|
|
2
2
|
from typing import Optional, Tuple
|
|
3
3
|
|
|
4
4
|
from followthemoney.types.common import PropertyType
|
|
5
|
-
from followthemoney.util import
|
|
5
|
+
from followthemoney.util import defer as _
|
|
6
6
|
|
|
7
7
|
|
|
8
8
|
class NumberType(PropertyType):
|
|
@@ -24,7 +24,7 @@ class NumberType(PropertyType):
|
|
|
24
24
|
_FLOAT_FMT = "{:" + SEPARATOR + "." + str(PRECISION) + "f}"
|
|
25
25
|
_INT_FMT = "{:" + SEPARATOR + "d}"
|
|
26
26
|
|
|
27
|
-
name =
|
|
27
|
+
name = "number"
|
|
28
28
|
label = _("Number")
|
|
29
29
|
plural = _("Numbers")
|
|
30
30
|
matchable = False
|
followthemoney/types/phone.py
CHANGED
|
@@ -6,7 +6,7 @@ from phonenumbers.phonenumberutil import region_code_for_number, NumberParseExce
|
|
|
6
6
|
|
|
7
7
|
from followthemoney.types.common import PropertyType
|
|
8
8
|
from followthemoney.util import defer as _
|
|
9
|
-
from followthemoney.util import
|
|
9
|
+
from followthemoney.util import dampen
|
|
10
10
|
|
|
11
11
|
if TYPE_CHECKING:
|
|
12
12
|
from followthemoney.proxy import EntityProxy
|
|
@@ -29,8 +29,8 @@ class PhoneType(PropertyType):
|
|
|
29
29
|
validation outcome from doing the two operations the other way around. Always
|
|
30
30
|
define the country first."""
|
|
31
31
|
|
|
32
|
-
name =
|
|
33
|
-
group =
|
|
32
|
+
name = "phone"
|
|
33
|
+
group = "phones"
|
|
34
34
|
label = _("Phone number")
|
|
35
35
|
plural = _("Phone numbers")
|
|
36
36
|
matchable = True
|
followthemoney/types/string.py
CHANGED
|
@@ -6,7 +6,7 @@ from followthemoney.util import MEGABYTE
|
|
|
6
6
|
class StringType(PropertyType):
|
|
7
7
|
"""A simple string property with no additional semantics."""
|
|
8
8
|
|
|
9
|
-
name =
|
|
9
|
+
name = "string"
|
|
10
10
|
label = _("Label")
|
|
11
11
|
plural = _("Labels")
|
|
12
12
|
matchable = False
|
|
@@ -21,7 +21,7 @@ class TextType(StringType):
|
|
|
21
21
|
string properties, it might make sense to treat properties of this type as
|
|
22
22
|
full-text search material."""
|
|
23
23
|
|
|
24
|
-
name =
|
|
24
|
+
name = "text"
|
|
25
25
|
label = _("Text")
|
|
26
26
|
plural = _("Texts")
|
|
27
27
|
total_size = 30 * MEGABYTE
|
followthemoney/types/topic.py
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
from babel.core import Locale
|
|
2
2
|
|
|
3
3
|
from followthemoney.types.common import EnumType, EnumValues
|
|
4
|
-
from followthemoney.util import
|
|
4
|
+
from followthemoney.util import gettext, defer as _
|
|
5
5
|
|
|
6
6
|
|
|
7
7
|
class TopicType(EnumType):
|
|
@@ -15,8 +15,8 @@ class TopicType(EnumType):
|
|
|
15
15
|
enable queries such as _find all paths between a government procurement
|
|
16
16
|
award and a politician_."""
|
|
17
17
|
|
|
18
|
-
name =
|
|
19
|
-
group =
|
|
18
|
+
name = "topic"
|
|
19
|
+
group = "topics"
|
|
20
20
|
label = _("Topic")
|
|
21
21
|
plural = _("Topics")
|
|
22
22
|
matchable = False
|
|
@@ -86,6 +86,8 @@ class TopicType(EnumType):
|
|
|
86
86
|
"sanction.linked": _("Sanction-linked entity"),
|
|
87
87
|
"sanction.counter": _("Counter-sanctioned entity"),
|
|
88
88
|
"export.control": _("Export controlled"),
|
|
89
|
+
# For BIS 50% rule:
|
|
90
|
+
"export.control.linked": _("Export control-linked"),
|
|
89
91
|
"export.risk": _("Trade risk"),
|
|
90
92
|
"debarment": _("Debarred entity"),
|
|
91
93
|
"poi": _("Person of interest"),
|
|
@@ -103,6 +105,7 @@ class TopicType(EnumType):
|
|
|
103
105
|
"crime",
|
|
104
106
|
"debarment",
|
|
105
107
|
"export.control",
|
|
108
|
+
"export.control.linked",
|
|
106
109
|
"export.risk",
|
|
107
110
|
"poi",
|
|
108
111
|
"mare.detained",
|
followthemoney/types/url.py
CHANGED
|
@@ -2,7 +2,7 @@ from typing import Optional, TYPE_CHECKING
|
|
|
2
2
|
from rigour.urls import clean_url, compare_urls
|
|
3
3
|
|
|
4
4
|
from followthemoney.types.common import PropertyType
|
|
5
|
-
from followthemoney.util import
|
|
5
|
+
from followthemoney.util import dampen, defer as _
|
|
6
6
|
|
|
7
7
|
if TYPE_CHECKING:
|
|
8
8
|
from followthemoney.proxy import EntityProxy
|
|
@@ -16,8 +16,8 @@ class UrlType(PropertyType):
|
|
|
16
16
|
SCHEMES = ("http", "https", "ftp", "mailto")
|
|
17
17
|
DEFAULT_SCHEME = "http"
|
|
18
18
|
|
|
19
|
-
name =
|
|
20
|
-
group =
|
|
19
|
+
name = "url"
|
|
20
|
+
group = "urls"
|
|
21
21
|
label = _("URL")
|
|
22
22
|
plural = _("URLs")
|
|
23
23
|
matchable = True
|
followthemoney/util.py
CHANGED
|
@@ -10,10 +10,11 @@ from threading import local
|
|
|
10
10
|
from typing import cast, Dict, Any, List, Optional, TypeVar, Union
|
|
11
11
|
from normality import stringify
|
|
12
12
|
from normality.cleaning import remove_unsafe_chars
|
|
13
|
-
from
|
|
13
|
+
from rigour.env import ENCODING
|
|
14
14
|
from banal import is_mapping, unique_list, ensure_list
|
|
15
15
|
|
|
16
16
|
MEGABYTE = 1024 * 1024
|
|
17
|
+
HASH_ENCODING = "utf-8"
|
|
17
18
|
DEFAULT_LOCALE = "en"
|
|
18
19
|
ENTITY_ID_LEN = 200
|
|
19
20
|
|
|
@@ -55,16 +56,7 @@ def get_locale() -> Locale:
|
|
|
55
56
|
return Locale.parse(state.locale)
|
|
56
57
|
|
|
57
58
|
|
|
58
|
-
def
|
|
59
|
-
value = stringify(os.environ.get(name))
|
|
60
|
-
if value is not None:
|
|
61
|
-
values = value.split(":")
|
|
62
|
-
if len(values):
|
|
63
|
-
return values
|
|
64
|
-
return default
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
def sanitize_text(value: Any, encoding: str = DEFAULT_ENCODING) -> Optional[str]:
|
|
59
|
+
def sanitize_text(value: Any, encoding: str = ENCODING) -> Optional[str]:
|
|
68
60
|
text = stringify(value, encoding_default=encoding)
|
|
69
61
|
if text is None:
|
|
70
62
|
return None
|
|
@@ -74,8 +66,8 @@ def sanitize_text(value: Any, encoding: str = DEFAULT_ENCODING) -> Optional[str]
|
|
|
74
66
|
log.warning("Cannot NFC text: %s", ex)
|
|
75
67
|
return None
|
|
76
68
|
text = remove_unsafe_chars(text)
|
|
77
|
-
byte_text = text.encode(
|
|
78
|
-
text = byte_text.decode(
|
|
69
|
+
byte_text = text.encode("utf-8", "replace")
|
|
70
|
+
text = byte_text.decode("utf-8", "replace")
|
|
79
71
|
if len(text) == 0:
|
|
80
72
|
return None
|
|
81
73
|
return text
|
|
@@ -88,7 +80,7 @@ def key_bytes(key: Any) -> bytes:
|
|
|
88
80
|
text = stringify(key)
|
|
89
81
|
if text is None:
|
|
90
82
|
return b""
|
|
91
|
-
return text.encode(
|
|
83
|
+
return text.encode(ENCODING)
|
|
92
84
|
|
|
93
85
|
|
|
94
86
|
def join_text(*parts: Any, sep: str = " ") -> Optional[str]:
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: followthemoney
|
|
3
|
-
Version: 4.
|
|
3
|
+
Version: 4.5.0
|
|
4
4
|
Summary: A data model for anti corruption data modeling and analysis.
|
|
5
5
|
Project-URL: Documentation, https://followthemoney.tech/
|
|
6
6
|
Project-URL: Repository, https://github.com/opensanctions/followthemoney.git
|
|
@@ -48,9 +48,9 @@ Requires-Dist: prefixdate<1.0.0,>=0.5.0
|
|
|
48
48
|
Requires-Dist: pydantic<3.0.0,>=2.11.0
|
|
49
49
|
Requires-Dist: pytz>=2021.1
|
|
50
50
|
Requires-Dist: pyyaml<7.0.0,>=5.0.0
|
|
51
|
-
Requires-Dist: rdflib<7.
|
|
51
|
+
Requires-Dist: rdflib<7.6.0,>=6.2.0
|
|
52
52
|
Requires-Dist: requests<3.0.0,>=2.21.0
|
|
53
|
-
Requires-Dist: rigour<2.0.0,>=1.
|
|
53
|
+
Requires-Dist: rigour<2.0.0,>=1.6.0
|
|
54
54
|
Requires-Dist: sqlalchemy[mypy]<3.0.0,>=2.0.0
|
|
55
55
|
Provides-Extra: dev
|
|
56
56
|
Requires-Dist: build; extra == 'dev'
|
|
@@ -1,19 +1,20 @@
|
|
|
1
|
-
followthemoney/__init__.py,sha256=
|
|
2
|
-
followthemoney/compare.py,sha256=
|
|
3
|
-
followthemoney/entity.py,sha256=
|
|
1
|
+
followthemoney/__init__.py,sha256=3Mvq7FWl0cNbTovkJhys0iHU24UdFT44P2AqszoGs-8,856
|
|
2
|
+
followthemoney/compare.py,sha256=6y6fqtbbfW7ee4_EVXPcKCIr75GjPqXvtHfvExJ-KK0,6119
|
|
3
|
+
followthemoney/entity.py,sha256=biAjuuHlwsVT02imAsaWP0YtgdfU8skCntzBU3mgJpg,4052
|
|
4
4
|
followthemoney/exc.py,sha256=GyMgwY4QVm87hLevDfV7gM1MJsDqfNCi_UQw7F_A8X8,858
|
|
5
5
|
followthemoney/graph.py,sha256=7X1CGHGvmktS2LSZqld2iXWzG7B831eCNYyBqamqEJ8,10921
|
|
6
6
|
followthemoney/helpers.py,sha256=KCdv1XAE7KQEXBiXp52Kvuck7wMaeNVBM3uaFemcvb4,7873
|
|
7
7
|
followthemoney/messages.py,sha256=zUEa9CFecU8nRafIzhN6TKCh1kEihiIyIS1qr8PxY4g,806
|
|
8
|
-
followthemoney/model.py,sha256=
|
|
8
|
+
followthemoney/model.py,sha256=kwv3GT9vGqEMF-m4z94OZJ0phFzcv-K0Eme1ElOMEmU,7346
|
|
9
9
|
followthemoney/names.py,sha256=LODQqExKEHdH4z6Mmbhlm0KeKRzGcptaSWzYXZ7lONI,1120
|
|
10
10
|
followthemoney/namespace.py,sha256=utggu9IGA8bhgEYom3OUB1KxkAJR_TrMNbY5MUF_db8,4536
|
|
11
11
|
followthemoney/ontology.py,sha256=WWY_PYQGl5Ket4zZBuZglzQxD2Bh9UqHok6GJNNX7GA,3001
|
|
12
|
-
followthemoney/property.py,sha256=
|
|
13
|
-
followthemoney/proxy.py,sha256=
|
|
12
|
+
followthemoney/property.py,sha256=1w7p9aKLxRqFRnl3PlssqmvulSErl_0D5T2SefT3UFU,8675
|
|
13
|
+
followthemoney/proxy.py,sha256=ZD8jK88oj1aUTpF7s6r91g8tmTiEfubUKX7CGV5I9rE,20714
|
|
14
14
|
followthemoney/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
15
|
-
followthemoney/schema.py,sha256=
|
|
16
|
-
followthemoney/
|
|
15
|
+
followthemoney/schema.py,sha256=dwZg0eZF7yaxP9fJ5NQUKWadWZYTo9U-sVzzXZn_6do,18500
|
|
16
|
+
followthemoney/settings.py,sha256=wkwrkDPypsAICLo-d7l-zpKrKe_fTVYPllZO-RX3oGM,507
|
|
17
|
+
followthemoney/util.py,sha256=JCZ35h_qrqxWO1FTxpa0eoOiko6DWTD9u1QKmH5ZaLU,4150
|
|
17
18
|
followthemoney/value.py,sha256=BJ4Sj5Tg2kMrslR6FjQUr96d8Kt75U7ny9NgzVGT0ZE,2335
|
|
18
19
|
followthemoney/cli/__init__.py,sha256=0mmz84uhXRp2qUn3syKnDXofU3MMAAe291s7htqX0Bg,187
|
|
19
20
|
followthemoney/cli/aggregate.py,sha256=xQTFpU3cVVj7fplpX4OJVrRlTVpn6b9kBr_Vb87pKfg,2164
|
|
@@ -26,7 +27,7 @@ followthemoney/cli/util.py,sha256=C3nGMVY3-9JHSFLn3AGvTNcAdvGcgfFS-7jXIzKg6Ik,47
|
|
|
26
27
|
followthemoney/dataset/__init__.py,sha256=rOKsI39dccDaYcSa7ASoNKkhmbFYUArxMCRqtrxy2iE,477
|
|
27
28
|
followthemoney/dataset/catalog.py,sha256=bIpxr0jvJeutNSmCaXREQac7TyvZak2Y_QoCFdCM0d4,3001
|
|
28
29
|
followthemoney/dataset/coverage.py,sha256=rBnKs7VngCtIuaDqrF5D0ygCHg8NAMkYbmtl7336PSI,724
|
|
29
|
-
followthemoney/dataset/dataset.py,sha256=
|
|
30
|
+
followthemoney/dataset/dataset.py,sha256=7lP3gz94AAaxX6J7OWlNmvPoWkoKvH7ISwoNqYsC4Go,5495
|
|
30
31
|
followthemoney/dataset/publisher.py,sha256=nexZe9XexV8WI5Id999vf5OH_DPUmiKQ_GT3c59eF44,893
|
|
31
32
|
followthemoney/dataset/resource.py,sha256=S_-tNjMwHQ8LcSOsZO_xhXD-vLK90wyxtIRBbyCJ0Xo,1164
|
|
32
33
|
followthemoney/dataset/util.py,sha256=mfVTXdbNnWly6cXo4SjNzHuJK1c1uNBwULYOVg1gK5I,1617
|
|
@@ -38,7 +39,7 @@ followthemoney/export/graph.py,sha256=v0z1FgadyFk5aQ0A5q8E9R4fSO-Tpi5JU9YTDwnRKD
|
|
|
38
39
|
followthemoney/export/neo4j.py,sha256=4Lih9lt3-5ATERhyMcfJfkiETG3tqj9vY4N9s7jiYmw,7049
|
|
39
40
|
followthemoney/export/rdf.py,sha256=BOd4AIAVobwpmJ5GjyIqn9ZQHUwKQ-3fMdnD-Lcid0s,2978
|
|
40
41
|
followthemoney/mapping/__init__.py,sha256=iwNqzzvrzJNbNDlOCaDLlBTUrNTlnYHIB5cvo_-9oN4,82
|
|
41
|
-
followthemoney/mapping/csv.py,sha256=
|
|
42
|
+
followthemoney/mapping/csv.py,sha256=bRaqFsr02DNBUZBj-GIBzJOaumnIRu8QbNlYWOMqjHU,3238
|
|
42
43
|
followthemoney/mapping/entity.py,sha256=-x_VBHiVthIrZZ-PVKD3oBAq6LYcsyeYW-9TFv80k7M,5905
|
|
43
44
|
followthemoney/mapping/property.py,sha256=41V16HJh6da7oKdSJWyRcyMkx2XFd6iDm9-4PH7Wihw,5036
|
|
44
45
|
followthemoney/mapping/query.py,sha256=8M6bOlEX2p_bbVwEwTu_1slEtU0cfRJB7ajZp-F07CE,2622
|
|
@@ -54,12 +55,12 @@ followthemoney/schema/Audio.yaml,sha256=Eb1rZGUEOX7XDAj_1YIN28NCBzMvkopQBNwgHt_k
|
|
|
54
55
|
followthemoney/schema/BankAccount.yaml,sha256=60v-VD296lW1Qq7fx--CzxfPNwfCcyMV6xIl8OrSy5g,1431
|
|
55
56
|
followthemoney/schema/Call.yaml,sha256=kbVCnVxucBrEplxehXHThLSJAJjy_GhWan-IeZZjr0M,980
|
|
56
57
|
followthemoney/schema/CallForTenders.yaml,sha256=2IWonTzfSbrkynMoEWqv5fekUeFM_xDKpKIbRe1XDbo,3227
|
|
57
|
-
followthemoney/schema/Company.yaml,sha256=
|
|
58
|
+
followthemoney/schema/Company.yaml,sha256=R2reqGWtCtURvIAvVB8lRQqGiGPXqjSNdkSWrXLY26w,3546
|
|
58
59
|
followthemoney/schema/Contract.yaml,sha256=aSPB64T1h-0nuLDv6krasUvvoPZgo6sWUbv60c3vmzI,1541
|
|
59
60
|
followthemoney/schema/ContractAward.yaml,sha256=b2spaZHYCaP1yR1RCsrI7mUjk-fAF7BUE3dc8Vl3cUQ,1689
|
|
60
61
|
followthemoney/schema/CourtCase.yaml,sha256=lcovnY0Ne_xcggvkqfCW_RHvsRKo8kFTCPCyovAXRtI,599
|
|
61
62
|
followthemoney/schema/CourtCaseParty.yaml,sha256=MpodN2251V_MYD2dBOHZ_qD7Uv6cLg8Gd_b-I8HZjPI,588
|
|
62
|
-
followthemoney/schema/CryptoWallet.yaml,sha256=
|
|
63
|
+
followthemoney/schema/CryptoWallet.yaml,sha256=haae5h-b8qNBh9FQB2clBUqNYpdLoyyI_NEWMxe3tZ8,1192
|
|
63
64
|
followthemoney/schema/Debt.yaml,sha256=gSGl1xKPaPWAYYEcX7MxezVn3Gu-CYBIzxGzMd9UTm4,657
|
|
64
65
|
followthemoney/schema/Directorship.yaml,sha256=BMx2AQTLy5ta_lWPnYKj7LFjZWTwtu1hgWncISdKf28,773
|
|
65
66
|
followthemoney/schema/Document.yaml,sha256=JxoYl_2o-ebVXh5MzRIKEHfV3q_E--wXGO2HG7zBaZg,2646
|
|
@@ -72,29 +73,29 @@ followthemoney/schema/Family.yaml,sha256=cgZ7ZM_2p_dzUGrLVj8QL86gpeDM-AoK8AbyHjh
|
|
|
72
73
|
followthemoney/schema/Folder.yaml,sha256=W12iJHTYua7bF7oTpgiDbarEkfa0Q2gSmfLdl537HQY,180
|
|
73
74
|
followthemoney/schema/HyperText.yaml,sha256=Wg5dWeLrVjbXiI-ao69tosJ7rI0DvNU8cCo8AhUXwh4,319
|
|
74
75
|
followthemoney/schema/Identification.yaml,sha256=6txjZs6-3Kn94c3G4tDeDt9Jb4FW55-xjSnYVrvmiEA,853
|
|
75
|
-
followthemoney/schema/Image.yaml,sha256=
|
|
76
|
+
followthemoney/schema/Image.yaml,sha256=5fjTy46LqzoybJlPs79RAaBuI-9_i6y77419KGiGOTM,753
|
|
76
77
|
followthemoney/schema/Interest.yaml,sha256=VUrehmsN1WgtS1oAa5jn_JGtSkZGGYLGNahp-R5JhOQ,282
|
|
77
78
|
followthemoney/schema/Interval.yaml,sha256=8YJQ51GI-GxvbjYs3uC593kQtCepWW_7ZiNnlbPm2aM,2084
|
|
78
|
-
followthemoney/schema/LegalEntity.yaml,sha256=
|
|
79
|
+
followthemoney/schema/LegalEntity.yaml,sha256=cG-o0slUnQNoJsrgQuk_CaFA_bschjalHHPl-zoKRPA,5352
|
|
79
80
|
followthemoney/schema/License.yaml,sha256=bXESXY-JpSmc5sthZe4sssXhx50UoLPAMED9FvEUyRU,534
|
|
80
81
|
followthemoney/schema/Membership.yaml,sha256=IPmaOX4Ai2r4sGcA5ig2WmLvWHb38akdxp4smEdDWOE,710
|
|
81
82
|
followthemoney/schema/Mention.yaml,sha256=nBeulR_Jm4x75aJ7yNF0TAVhHJqXQaEzOutLIn_YU-4,1086
|
|
82
83
|
followthemoney/schema/Message.yaml,sha256=PAxZ2NRFVvnOlp9Ohh5fJDEThjJ0jm3M2YCbJ9KtMuE,1565
|
|
83
84
|
followthemoney/schema/Note.yaml,sha256=NohwtFupxIssZuEgQowiQWqKit4uQ-OatAu3yp9eJj4,411
|
|
84
85
|
followthemoney/schema/Occupancy.yaml,sha256=WojlqzuWao84MJxRE9K6a-1D-Jtu78-0h6laODhdKw8,975
|
|
85
|
-
followthemoney/schema/Organization.yaml,sha256=
|
|
86
|
+
followthemoney/schema/Organization.yaml,sha256=Dl6cFDBVFaQfiZrqnaeZAVNvGUiAtj7F4v_ZLxVtPCM,1155
|
|
86
87
|
followthemoney/schema/Ownership.yaml,sha256=tLWESE9VX0aUuhe6C1pToq2-auPVZBdE3xvBmTRfmPc,1057
|
|
87
88
|
followthemoney/schema/Package.yaml,sha256=gPr-P3lcg7OOAav_KVa8baK4yK57JwfcXwxXheD96UQ,310
|
|
88
89
|
followthemoney/schema/Page.yaml,sha256=YjYqaH2sOry0z4xh44CsX_eyuRClD6ZS0d2o2uQXFbo,1062
|
|
89
90
|
followthemoney/schema/Pages.yaml,sha256=KKPGZ06Ehp5mWIGnYfHUBN9jT03bk8nakw0pB5bA_7E,450
|
|
90
91
|
followthemoney/schema/Passport.yaml,sha256=rpuLC86sdXnHF-prFQM4mAqYzlSGWKvPE4Cphtn2KRw,805
|
|
91
92
|
followthemoney/schema/Payment.yaml,sha256=WRBJuj9ljsxLBs-0g9Z9UD87uR1RTtuUiYnWOnKr1qA,1757
|
|
92
|
-
followthemoney/schema/Person.yaml,sha256=
|
|
93
|
+
followthemoney/schema/Person.yaml,sha256=eFvXYhXbJ9RlhCeX0a0Fv6p_67JD9lMdBAJImZiSzMU,2864
|
|
93
94
|
followthemoney/schema/PlainText.yaml,sha256=hfnVi-HmQeDbqDquSpkPJax9hNm86ioXGr4hzNzyPFE,278
|
|
94
95
|
followthemoney/schema/Position.yaml,sha256=ZpxjWOLxwva_on32r9WD5ys0Ty3YxCju41mg9HG-pe0,1308
|
|
95
96
|
followthemoney/schema/Project.yaml,sha256=2svtyGJopS0UrqPiuYGpBzj30V7k3LRDX4N1U56y4yY,462
|
|
96
97
|
followthemoney/schema/ProjectParticipant.yaml,sha256=xNehEu90uqUfboNouezhZQ8ZQLxzWq1yyNO4kua-Lyc,727
|
|
97
|
-
followthemoney/schema/PublicBody.yaml,sha256=
|
|
98
|
+
followthemoney/schema/PublicBody.yaml,sha256=N_3-dFNsilHxgIjkq60049PKX46wP0PvP7y9uDpnlwo,367
|
|
98
99
|
followthemoney/schema/RealEstate.yaml,sha256=NWFHXqEHskYQN-kvQESZpu74nztShqoYSZEjZAr-DHM,1363
|
|
99
100
|
followthemoney/schema/Representation.yaml,sha256=sCvFnUDQaElq2cqSB0rILcMYb2gaMZqlzxlHxyX9IGg,792
|
|
100
101
|
followthemoney/schema/Risk.yaml,sha256=2BRVBqb6wiLHxb_V50P-YMAOhjC64UVHDyh5PASpCIA,728
|
|
@@ -104,7 +105,7 @@ followthemoney/schema/Similar.yaml,sha256=gD8rZEaPQWzU-rEfsKdn62uEucF3KxYBcPMoSd
|
|
|
104
105
|
followthemoney/schema/Succession.yaml,sha256=RMJQqZ4Fv88N1RvWTAgjYg9BB5cELSj5CCAjM681Fpg,749
|
|
105
106
|
followthemoney/schema/Table.yaml,sha256=GcsIAgSO9t2tvObA9zU2HhxlSqTe9CePmUnagu1Z0vI,641
|
|
106
107
|
followthemoney/schema/TaxRoll.yaml,sha256=ugMzaaS7uyq2OLD50eGLcfvd6Cg0cSt65-T9GVqpRSA,746
|
|
107
|
-
followthemoney/schema/Thing.yaml,sha256=
|
|
108
|
+
followthemoney/schema/Thing.yaml,sha256=iUaGvGRBqhsVUg-Cx_CNw9WewlWsl9vylU2wiFDQ1qg,2975
|
|
108
109
|
followthemoney/schema/Trip.yaml,sha256=nLQD_ApmVJ8D56Czl7K700hhNZjzFV9FOQ3NBSQDLiM,771
|
|
109
110
|
followthemoney/schema/UnknownLink.yaml,sha256=lneS_HZNgeLyJxwzWnLx0ZoyY3MXt99I_K2X_o9z5g8,682
|
|
110
111
|
followthemoney/schema/UserAccount.yaml,sha256=2bbPKNtt1R3zWSSkaq_SVzRPfFzX74kAxwtIxTymHA8,840
|
|
@@ -114,10 +115,10 @@ followthemoney/schema/Vessel.yaml,sha256=zWHUfSK8g6Pz58ZyCaK0AFJ4u_UHjEIUGC4c_7o
|
|
|
114
115
|
followthemoney/schema/Video.yaml,sha256=LY3DYMWTHXiAhL0hxBCNCz50cp2sPbUlEhhig5Fbjos,327
|
|
115
116
|
followthemoney/schema/Workbook.yaml,sha256=iikWPElz4klA7SkWH7eae6xqhbkMCIP_3zdeXzFEMU0,354
|
|
116
117
|
followthemoney/statement/__init__.py,sha256=7m2VUCAuqNZXIY0WFJRFkw5UG14QuxATL4f_xbqKwhw,633
|
|
117
|
-
followthemoney/statement/entity.py,sha256=
|
|
118
|
-
followthemoney/statement/serialize.py,sha256=
|
|
119
|
-
followthemoney/statement/statement.py,sha256=
|
|
120
|
-
followthemoney/statement/util.py,sha256=
|
|
118
|
+
followthemoney/statement/entity.py,sha256=vznbPTMSWcezYt--bu2RretMresgwp-bUqCsv4w-U90,19568
|
|
119
|
+
followthemoney/statement/serialize.py,sha256=PcG2Qf1jYcF_rF1YybYWBhX7NiX6WZ94u1WUv9Mh-Lw,7386
|
|
120
|
+
followthemoney/statement/statement.py,sha256=bAwrrKyYRdJVxRGuXDQIOA7cdEngk1NKUaij_gAwSd4,11876
|
|
121
|
+
followthemoney/statement/util.py,sha256=jHBwK3FIBynUJZRlBBOHayalAFrqpXf2f2JwkHi0zAU,1450
|
|
121
122
|
followthemoney/translations/messages.pot,sha256=JhtY9NJ9wP_EAX4APxOqMyvKcX53oIC9kAxBsliJkf4,107703
|
|
122
123
|
followthemoney/translations/ar/LC_MESSAGES/followthemoney.mo,sha256=uhb2crSNh8K2ts_QUeD2wvgWgzzpLJWRzXok-Uyx3Zk,38795
|
|
123
124
|
followthemoney/translations/ar/LC_MESSAGES/followthemoney.po,sha256=DuIfvR5v0sPGwFbeg3y6_jCbeglvHWXQ2LDH6prfwLc,121326
|
|
@@ -142,27 +143,27 @@ followthemoney/translations/ru/LC_MESSAGES/followthemoney.po,sha256=7SQWytOTvoAQ
|
|
|
142
143
|
followthemoney/translations/tr/LC_MESSAGES/followthemoney.mo,sha256=SC84e_ZF_oFJG1NKdyZY_W6Kb6POORZB6wdeAcEWmnE,487
|
|
143
144
|
followthemoney/translations/tr/LC_MESSAGES/followthemoney.po,sha256=AZC3marhtVVq8Ck1FOgnt4sbDMz548nX48O9GDwImbQ,89826
|
|
144
145
|
followthemoney/types/__init__.py,sha256=rWwQeiuMh2BNIuvhpMfJ4bPADDvt9Axu1eedvNFi0qY,3350
|
|
145
|
-
followthemoney/types/address.py,sha256=
|
|
146
|
-
followthemoney/types/checksum.py,sha256=
|
|
146
|
+
followthemoney/types/address.py,sha256=Gc-hqz00dRRkeANqkyPD2wtt7ksR9wMf4CX-U-5XvMo,2214
|
|
147
|
+
followthemoney/types/checksum.py,sha256=_0ev2Wwtd4iX_bLz0Lu-xcJIxNfH_V9kBKKtuZhoAwg,802
|
|
147
148
|
followthemoney/types/common.py,sha256=4ks7zPT8rknrGSd4JFc1zRkS-TL4SX-25_ZbjcVDos0,10081
|
|
148
|
-
followthemoney/types/country.py,sha256=
|
|
149
|
-
followthemoney/types/date.py,sha256=
|
|
149
|
+
followthemoney/types/country.py,sha256=pwDiI_ipts9Oi2U7fHALYMJPCJHOqyI_2Liq7XI2XrA,2086
|
|
150
|
+
followthemoney/types/date.py,sha256=SGk8q8qICIrA5Lf6wPbDU6v6oJYEiu1dZFZ18BO7i80,3551
|
|
150
151
|
followthemoney/types/email.py,sha256=L3RTYrMABlNQF7hCynXGfzoj6YNEHW5JAY_BwuhoZdA,3375
|
|
151
|
-
followthemoney/types/entity.py,sha256=
|
|
152
|
-
followthemoney/types/gender.py,sha256=
|
|
153
|
-
followthemoney/types/identifier.py,sha256=
|
|
154
|
-
followthemoney/types/ip.py,sha256=
|
|
155
|
-
followthemoney/types/json.py,sha256=
|
|
156
|
-
followthemoney/types/language.py,sha256=
|
|
157
|
-
followthemoney/types/mimetype.py,sha256=
|
|
158
|
-
followthemoney/types/name.py,sha256=
|
|
159
|
-
followthemoney/types/number.py,sha256=
|
|
160
|
-
followthemoney/types/phone.py,sha256=
|
|
161
|
-
followthemoney/types/string.py,sha256=
|
|
162
|
-
followthemoney/types/topic.py,sha256=
|
|
163
|
-
followthemoney/types/url.py,sha256=
|
|
164
|
-
followthemoney-4.
|
|
165
|
-
followthemoney-4.
|
|
166
|
-
followthemoney-4.
|
|
167
|
-
followthemoney-4.
|
|
168
|
-
followthemoney-4.
|
|
152
|
+
followthemoney/types/entity.py,sha256=56h6x8Ct7hWZIC3BjZHmRKGy9Ff2vuULNWH3xDRsKiU,2317
|
|
153
|
+
followthemoney/types/gender.py,sha256=XY9us98Sk25O1xnHN-88tbv9pHy6Mn7SR8GRYi6v5gI,1683
|
|
154
|
+
followthemoney/types/identifier.py,sha256=TYJwE7urjHFxEcDuiZMxGoCN6n34rAIdCt5_96Y7vI0,2198
|
|
155
|
+
followthemoney/types/ip.py,sha256=rCXkRrh_jDeWAhswCgSe6Z4uhIW7yvLAxIEw4x1SM3A,1279
|
|
156
|
+
followthemoney/types/json.py,sha256=Hefwns1-ziJf310MWvdfX5ICkOgj9cnnMJuqq1e6qKY,1676
|
|
157
|
+
followthemoney/types/language.py,sha256=ymEXaHAPIZGlGySUqzadB7tMB6mW1ASsl1G6EtqKdls,2730
|
|
158
|
+
followthemoney/types/mimetype.py,sha256=oqVP8EfGckPAI3WAziHomp6oUN7KXdIPWzGZPsRtIA8,1242
|
|
159
|
+
followthemoney/types/name.py,sha256=zd0aC4VGp1SYUI8Rj0-ZXlrpUI7ZcnJIljZqsEsV-CY,2363
|
|
160
|
+
followthemoney/types/number.py,sha256=vpAyhmc7UQlIm8h7Z5k8k4cTk37ykRF-AgYA1r_g1QQ,3934
|
|
161
|
+
followthemoney/types/phone.py,sha256=_HanfxxTV7jp75gZO2evBc9HWwQTxEMQRaoVDcoXDIQ,3790
|
|
162
|
+
followthemoney/types/string.py,sha256=SEh3xqQCnm377PGvwfR6ao85pHJCNeCUWBKnvccrJ7I,1216
|
|
163
|
+
followthemoney/types/topic.py,sha256=9FIH_WmwVOFg1CJRBF4KeE6vNTn-QQkzsKU5XaMqNJ0,4604
|
|
164
|
+
followthemoney/types/url.py,sha256=sSHKtzvm4kc-VTvNCPIDykOG1hUoawhORj6Bklo0a2A,1434
|
|
165
|
+
followthemoney-4.5.0.dist-info/METADATA,sha256=dteJlaqiJHM7Du9BTLMiOgl-DEjNp2ewkkFU8nMcCYA,6747
|
|
166
|
+
followthemoney-4.5.0.dist-info/WHEEL,sha256=WLgqFyCfm_KASv4WHyYy0P3pM_m7J5L9k2skdKLirC8,87
|
|
167
|
+
followthemoney-4.5.0.dist-info/entry_points.txt,sha256=caoFTlf213jhg5sz3TNSofutjUTzaKtWATuSIdd9Cps,653
|
|
168
|
+
followthemoney-4.5.0.dist-info/licenses/LICENSE,sha256=H6_EVXisnJC0-18CjXIaqrBSFq_VH3OnS7u3dccOv6g,1148
|
|
169
|
+
followthemoney-4.5.0.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|