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.
- {followthemoney-3.6.4/followthemoney.egg-info → followthemoney-3.7.1}/PKG-INFO +1 -1
- {followthemoney-3.6.4 → followthemoney-3.7.1}/followthemoney/__init__.py +1 -1
- {followthemoney-3.6.4 → followthemoney-3.7.1}/followthemoney/mapping/entity.py +15 -6
- {followthemoney-3.6.4 → followthemoney-3.7.1}/followthemoney/property.py +6 -0
- {followthemoney-3.6.4 → followthemoney-3.7.1}/followthemoney/proxy.py +4 -4
- {followthemoney-3.6.4 → followthemoney-3.7.1}/followthemoney/schema/Address.yaml +1 -0
- {followthemoney-3.6.4 → followthemoney-3.7.1}/followthemoney/schema/BankAccount.yaml +4 -1
- {followthemoney-3.6.4 → followthemoney-3.7.1}/followthemoney/schema/Company.yaml +3 -0
- {followthemoney-3.6.4 → followthemoney-3.7.1}/followthemoney/schema/CryptoWallet.yaml +1 -0
- {followthemoney-3.6.4 → followthemoney-3.7.1}/followthemoney/schema/Documentation.yml +3 -2
- {followthemoney-3.6.4 → followthemoney-3.7.1}/followthemoney/schema/Identification.yaml +1 -0
- {followthemoney-3.6.4 → followthemoney-3.7.1}/followthemoney/schema/LegalEntity.yaml +7 -0
- {followthemoney-3.6.4 → followthemoney-3.7.1}/followthemoney/schema/Organization.yaml +1 -1
- {followthemoney-3.6.4 → followthemoney-3.7.1}/followthemoney/schema/Person.yaml +2 -2
- {followthemoney-3.6.4 → followthemoney-3.7.1}/followthemoney/schema/Position.yaml +1 -1
- {followthemoney-3.6.4 → followthemoney-3.7.1}/followthemoney/schema/Post.yaml +1 -1
- {followthemoney-3.6.4 → followthemoney-3.7.1}/followthemoney/schema/Project.yaml +1 -1
- {followthemoney-3.6.4 → followthemoney-3.7.1}/followthemoney/schema/Sanction.yaml +1 -0
- {followthemoney-3.6.4 → followthemoney-3.7.1}/followthemoney/schema/Security.yaml +2 -0
- {followthemoney-3.6.4 → followthemoney-3.7.1}/followthemoney/schema/Thing.yaml +1 -0
- {followthemoney-3.6.4 → followthemoney-3.7.1}/followthemoney/schema/Vessel.yaml +2 -0
- {followthemoney-3.6.4 → followthemoney-3.7.1}/followthemoney/translations/ar/LC_MESSAGES/followthemoney.mo +0 -0
- {followthemoney-3.6.4 → followthemoney-3.7.1}/followthemoney/translations/ar/LC_MESSAGES/followthemoney.po +5 -5
- {followthemoney-3.6.4 → followthemoney-3.7.1}/followthemoney/translations/bs/LC_MESSAGES/followthemoney.mo +0 -0
- {followthemoney-3.6.4 → followthemoney-3.7.1}/followthemoney/translations/bs/LC_MESSAGES/followthemoney.po +3 -3
- {followthemoney-3.6.4 → followthemoney-3.7.1}/followthemoney/translations/de/LC_MESSAGES/followthemoney.mo +0 -0
- {followthemoney-3.6.4 → followthemoney-3.7.1}/followthemoney/translations/de/LC_MESSAGES/followthemoney.po +5 -5
- {followthemoney-3.6.4 → followthemoney-3.7.1}/followthemoney/translations/es/LC_MESSAGES/followthemoney.mo +0 -0
- {followthemoney-3.6.4 → followthemoney-3.7.1}/followthemoney/translations/es/LC_MESSAGES/followthemoney.po +5 -5
- {followthemoney-3.6.4 → followthemoney-3.7.1}/followthemoney/translations/fr/LC_MESSAGES/followthemoney.mo +0 -0
- {followthemoney-3.6.4 → followthemoney-3.7.1}/followthemoney/translations/fr/LC_MESSAGES/followthemoney.po +5 -5
- {followthemoney-3.6.4 → followthemoney-3.7.1}/followthemoney/translations/fr/followthemoney.po +3 -3
- {followthemoney-3.6.4 → followthemoney-3.7.1}/followthemoney/translations/messages.pot +143 -60
- {followthemoney-3.6.4 → followthemoney-3.7.1}/followthemoney/translations/nb/LC_MESSAGES/followthemoney.mo +0 -0
- {followthemoney-3.6.4 → followthemoney-3.7.1}/followthemoney/translations/nb/LC_MESSAGES/followthemoney.po +3 -3
- {followthemoney-3.6.4 → followthemoney-3.7.1}/followthemoney/translations/nl/LC_MESSAGES/followthemoney.mo +0 -0
- {followthemoney-3.6.4 → followthemoney-3.7.1}/followthemoney/translations/nl/LC_MESSAGES/followthemoney.po +3 -3
- {followthemoney-3.6.4 → followthemoney-3.7.1}/followthemoney/translations/pt_BR/LC_MESSAGES/followthemoney.mo +0 -0
- {followthemoney-3.6.4 → followthemoney-3.7.1}/followthemoney/translations/pt_BR/LC_MESSAGES/followthemoney.po +3 -3
- followthemoney-3.7.1/followthemoney/translations/ru/LC_MESSAGES/followthemoney.mo +0 -0
- {followthemoney-3.6.4 → followthemoney-3.7.1}/followthemoney/translations/ru/LC_MESSAGES/followthemoney.po +5 -5
- {followthemoney-3.6.4 → followthemoney-3.7.1}/followthemoney/translations/ru/followthemoney.po +4 -4
- {followthemoney-3.6.4 → followthemoney-3.7.1}/followthemoney/translations/tr/LC_MESSAGES/followthemoney.mo +0 -0
- {followthemoney-3.6.4 → followthemoney-3.7.1}/followthemoney/translations/tr/LC_MESSAGES/followthemoney.po +3 -3
- {followthemoney-3.6.4 → followthemoney-3.7.1}/followthemoney/types/checksum.py +1 -0
- {followthemoney-3.6.4 → followthemoney-3.7.1}/followthemoney/types/common.py +12 -4
- {followthemoney-3.6.4 → followthemoney-3.7.1}/followthemoney/types/country.py +1 -0
- {followthemoney-3.6.4 → followthemoney-3.7.1}/followthemoney/types/date.py +1 -0
- {followthemoney-3.6.4 → followthemoney-3.7.1}/followthemoney/types/gender.py +1 -0
- {followthemoney-3.6.4 → followthemoney-3.7.1}/followthemoney/types/iban.py +4 -1
- {followthemoney-3.6.4 → followthemoney-3.7.1}/followthemoney/types/identifier.py +1 -0
- {followthemoney-3.6.4 → followthemoney-3.7.1}/followthemoney/types/ip.py +1 -0
- {followthemoney-3.6.4 → followthemoney-3.7.1}/followthemoney/types/language.py +1 -0
- {followthemoney-3.6.4 → followthemoney-3.7.1}/followthemoney/types/name.py +5 -1
- {followthemoney-3.6.4 → followthemoney-3.7.1}/followthemoney/types/phone.py +1 -0
- {followthemoney-3.6.4 → followthemoney-3.7.1}/followthemoney/types/string.py +5 -2
- {followthemoney-3.6.4 → followthemoney-3.7.1}/followthemoney/types/topic.py +2 -0
- {followthemoney-3.6.4 → followthemoney-3.7.1}/followthemoney/types/url.py +1 -0
- {followthemoney-3.6.4 → followthemoney-3.7.1/followthemoney.egg-info}/PKG-INFO +1 -1
- {followthemoney-3.6.4 → followthemoney-3.7.1}/followthemoney.egg-info/requires.txt +1 -1
- {followthemoney-3.6.4 → followthemoney-3.7.1}/setup.py +2 -2
- followthemoney-3.6.4/followthemoney/translations/ru/LC_MESSAGES/followthemoney.mo +0 -0
- {followthemoney-3.6.4 → followthemoney-3.7.1}/LICENSE +0 -0
- {followthemoney-3.6.4 → followthemoney-3.7.1}/MANIFEST.in +0 -0
- {followthemoney-3.6.4 → followthemoney-3.7.1}/README.md +0 -0
- {followthemoney-3.6.4 → followthemoney-3.7.1}/followthemoney/cli/__init__.py +0 -0
- {followthemoney-3.6.4 → followthemoney-3.7.1}/followthemoney/cli/aggregate.py +0 -0
- {followthemoney-3.6.4 → followthemoney-3.7.1}/followthemoney/cli/cli.py +0 -0
- {followthemoney-3.6.4 → followthemoney-3.7.1}/followthemoney/cli/exports.py +0 -0
- {followthemoney-3.6.4 → followthemoney-3.7.1}/followthemoney/cli/mapping.py +0 -0
- {followthemoney-3.6.4 → followthemoney-3.7.1}/followthemoney/cli/sieve.py +0 -0
- {followthemoney-3.6.4 → followthemoney-3.7.1}/followthemoney/cli/util.py +0 -0
- {followthemoney-3.6.4 → followthemoney-3.7.1}/followthemoney/compare.py +0 -0
- {followthemoney-3.6.4 → followthemoney-3.7.1}/followthemoney/exc.py +0 -0
- {followthemoney-3.6.4 → followthemoney-3.7.1}/followthemoney/export/__init__.py +0 -0
- {followthemoney-3.6.4 → followthemoney-3.7.1}/followthemoney/export/common.py +0 -0
- {followthemoney-3.6.4 → followthemoney-3.7.1}/followthemoney/export/csv.py +0 -0
- {followthemoney-3.6.4 → followthemoney-3.7.1}/followthemoney/export/excel.py +0 -0
- {followthemoney-3.6.4 → followthemoney-3.7.1}/followthemoney/export/graph.py +0 -0
- {followthemoney-3.6.4 → followthemoney-3.7.1}/followthemoney/export/neo4j.py +0 -0
- {followthemoney-3.6.4 → followthemoney-3.7.1}/followthemoney/export/rdf.py +0 -0
- {followthemoney-3.6.4 → followthemoney-3.7.1}/followthemoney/graph.py +0 -0
- {followthemoney-3.6.4 → followthemoney-3.7.1}/followthemoney/helpers.py +0 -0
- {followthemoney-3.6.4 → followthemoney-3.7.1}/followthemoney/mapping/__init__.py +0 -0
- {followthemoney-3.6.4 → followthemoney-3.7.1}/followthemoney/mapping/csv.py +0 -0
- {followthemoney-3.6.4 → followthemoney-3.7.1}/followthemoney/mapping/property.py +0 -0
- {followthemoney-3.6.4 → followthemoney-3.7.1}/followthemoney/mapping/query.py +0 -0
- {followthemoney-3.6.4 → followthemoney-3.7.1}/followthemoney/mapping/source.py +0 -0
- {followthemoney-3.6.4 → followthemoney-3.7.1}/followthemoney/mapping/sql.py +0 -0
- {followthemoney-3.6.4 → followthemoney-3.7.1}/followthemoney/messages.py +0 -0
- {followthemoney-3.6.4 → followthemoney-3.7.1}/followthemoney/model.py +0 -0
- {followthemoney-3.6.4 → followthemoney-3.7.1}/followthemoney/namespace.py +0 -0
- {followthemoney-3.6.4 → followthemoney-3.7.1}/followthemoney/offshore.py +0 -0
- {followthemoney-3.6.4 → followthemoney-3.7.1}/followthemoney/ontology.py +0 -0
- {followthemoney-3.6.4 → followthemoney-3.7.1}/followthemoney/py.typed +0 -0
- {followthemoney-3.6.4 → followthemoney-3.7.1}/followthemoney/rdf.py +0 -0
- {followthemoney-3.6.4 → followthemoney-3.7.1}/followthemoney/schema/Airplane.yaml +0 -0
- {followthemoney-3.6.4 → followthemoney-3.7.1}/followthemoney/schema/Analyzable.yaml +0 -0
- {followthemoney-3.6.4 → followthemoney-3.7.1}/followthemoney/schema/Article.yaml +0 -0
- {followthemoney-3.6.4 → followthemoney-3.7.1}/followthemoney/schema/Assessment.yaml +0 -0
- {followthemoney-3.6.4 → followthemoney-3.7.1}/followthemoney/schema/Asset.yaml +0 -0
- {followthemoney-3.6.4 → followthemoney-3.7.1}/followthemoney/schema/Associate.yaml +0 -0
- {followthemoney-3.6.4 → followthemoney-3.7.1}/followthemoney/schema/Audio.yaml +0 -0
- {followthemoney-3.6.4 → followthemoney-3.7.1}/followthemoney/schema/Call.yaml +0 -0
- {followthemoney-3.6.4 → followthemoney-3.7.1}/followthemoney/schema/CallForTenders.yaml +0 -0
- {followthemoney-3.6.4 → followthemoney-3.7.1}/followthemoney/schema/Contract.yaml +0 -0
- {followthemoney-3.6.4 → followthemoney-3.7.1}/followthemoney/schema/ContractAward.yaml +0 -0
- {followthemoney-3.6.4 → followthemoney-3.7.1}/followthemoney/schema/CourtCase.yaml +0 -0
- {followthemoney-3.6.4 → followthemoney-3.7.1}/followthemoney/schema/CourtCaseParty.yaml +0 -0
- {followthemoney-3.6.4 → followthemoney-3.7.1}/followthemoney/schema/Debt.yaml +0 -0
- {followthemoney-3.6.4 → followthemoney-3.7.1}/followthemoney/schema/Directorship.yaml +0 -0
- {followthemoney-3.6.4 → followthemoney-3.7.1}/followthemoney/schema/Document.yaml +0 -0
- {followthemoney-3.6.4 → followthemoney-3.7.1}/followthemoney/schema/EconomicActivity.yaml +0 -0
- {followthemoney-3.6.4 → followthemoney-3.7.1}/followthemoney/schema/Email.yaml +0 -0
- {followthemoney-3.6.4 → followthemoney-3.7.1}/followthemoney/schema/Employment.yaml +0 -0
- {followthemoney-3.6.4 → followthemoney-3.7.1}/followthemoney/schema/Event.yaml +0 -0
- {followthemoney-3.6.4 → followthemoney-3.7.1}/followthemoney/schema/Family.yaml +0 -0
- {followthemoney-3.6.4 → followthemoney-3.7.1}/followthemoney/schema/Folder.yaml +0 -0
- {followthemoney-3.6.4 → followthemoney-3.7.1}/followthemoney/schema/HyperText.yaml +0 -0
- {followthemoney-3.6.4 → followthemoney-3.7.1}/followthemoney/schema/Image.yaml +0 -0
- {followthemoney-3.6.4 → followthemoney-3.7.1}/followthemoney/schema/Interest.yaml +0 -0
- {followthemoney-3.6.4 → followthemoney-3.7.1}/followthemoney/schema/Interval.yaml +0 -0
- {followthemoney-3.6.4 → followthemoney-3.7.1}/followthemoney/schema/License.yaml +0 -0
- {followthemoney-3.6.4 → followthemoney-3.7.1}/followthemoney/schema/Membership.yaml +0 -0
- {followthemoney-3.6.4 → followthemoney-3.7.1}/followthemoney/schema/Mention.yaml +0 -0
- {followthemoney-3.6.4 → followthemoney-3.7.1}/followthemoney/schema/Message.yaml +0 -0
- {followthemoney-3.6.4 → followthemoney-3.7.1}/followthemoney/schema/Note.yaml +0 -0
- {followthemoney-3.6.4 → followthemoney-3.7.1}/followthemoney/schema/Occupancy.yaml +0 -0
- {followthemoney-3.6.4 → followthemoney-3.7.1}/followthemoney/schema/Ownership.yaml +0 -0
- {followthemoney-3.6.4 → followthemoney-3.7.1}/followthemoney/schema/Package.yaml +0 -0
- {followthemoney-3.6.4 → followthemoney-3.7.1}/followthemoney/schema/Page.yaml +0 -0
- {followthemoney-3.6.4 → followthemoney-3.7.1}/followthemoney/schema/Pages.yaml +0 -0
- {followthemoney-3.6.4 → followthemoney-3.7.1}/followthemoney/schema/Passport.yaml +0 -0
- {followthemoney-3.6.4 → followthemoney-3.7.1}/followthemoney/schema/Payment.yaml +0 -0
- {followthemoney-3.6.4 → followthemoney-3.7.1}/followthemoney/schema/PlainText.yaml +0 -0
- {followthemoney-3.6.4 → followthemoney-3.7.1}/followthemoney/schema/ProjectParticipant.yaml +0 -0
- {followthemoney-3.6.4 → followthemoney-3.7.1}/followthemoney/schema/PublicBody.yaml +0 -0
- {followthemoney-3.6.4 → followthemoney-3.7.1}/followthemoney/schema/RealEstate.yaml +0 -0
- {followthemoney-3.6.4 → followthemoney-3.7.1}/followthemoney/schema/Representation.yaml +0 -0
- {followthemoney-3.6.4 → followthemoney-3.7.1}/followthemoney/schema/Similar.yaml +0 -0
- {followthemoney-3.6.4 → followthemoney-3.7.1}/followthemoney/schema/Succession.yaml +0 -0
- {followthemoney-3.6.4 → followthemoney-3.7.1}/followthemoney/schema/Table.yaml +0 -0
- {followthemoney-3.6.4 → followthemoney-3.7.1}/followthemoney/schema/TaxRoll.yaml +0 -0
- {followthemoney-3.6.4 → followthemoney-3.7.1}/followthemoney/schema/Trip.yaml +0 -0
- {followthemoney-3.6.4 → followthemoney-3.7.1}/followthemoney/schema/UnknownLink.yaml +0 -0
- {followthemoney-3.6.4 → followthemoney-3.7.1}/followthemoney/schema/UserAccount.yaml +0 -0
- {followthemoney-3.6.4 → followthemoney-3.7.1}/followthemoney/schema/Value.yaml +0 -0
- {followthemoney-3.6.4 → followthemoney-3.7.1}/followthemoney/schema/Vehicle.yaml +0 -0
- {followthemoney-3.6.4 → followthemoney-3.7.1}/followthemoney/schema/Video.yaml +0 -0
- {followthemoney-3.6.4 → followthemoney-3.7.1}/followthemoney/schema/Workbook.yaml +0 -0
- {followthemoney-3.6.4 → followthemoney-3.7.1}/followthemoney/schema.py +0 -0
- {followthemoney-3.6.4 → followthemoney-3.7.1}/followthemoney/types/__init__.py +0 -0
- {followthemoney-3.6.4 → followthemoney-3.7.1}/followthemoney/types/address.py +0 -0
- {followthemoney-3.6.4 → followthemoney-3.7.1}/followthemoney/types/email.py +0 -0
- {followthemoney-3.6.4 → followthemoney-3.7.1}/followthemoney/types/entity.py +0 -0
- {followthemoney-3.6.4 → followthemoney-3.7.1}/followthemoney/types/json.py +0 -0
- {followthemoney-3.6.4 → followthemoney-3.7.1}/followthemoney/types/mimetype.py +0 -0
- {followthemoney-3.6.4 → followthemoney-3.7.1}/followthemoney/types/number.py +0 -0
- {followthemoney-3.6.4 → followthemoney-3.7.1}/followthemoney/types/registry.py +0 -0
- {followthemoney-3.6.4 → followthemoney-3.7.1}/followthemoney/util.py +0 -0
- {followthemoney-3.6.4 → followthemoney-3.7.1}/followthemoney.egg-info/SOURCES.txt +0 -0
- {followthemoney-3.6.4 → followthemoney-3.7.1}/followthemoney.egg-info/dependency_links.txt +0 -0
- {followthemoney-3.6.4 → followthemoney-3.7.1}/followthemoney.egg-info/entry_points.txt +0 -0
- {followthemoney-3.6.4 → followthemoney-3.7.1}/followthemoney.egg-info/namespace_packages.txt +0 -0
- {followthemoney-3.6.4 → followthemoney-3.7.1}/followthemoney.egg-info/not-zip-safe +0 -0
- {followthemoney-3.6.4 → followthemoney-3.7.1}/followthemoney.egg-info/top_level.txt +0 -0
- {followthemoney-3.6.4 → followthemoney-3.7.1}/setup.cfg +0 -0
|
@@ -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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
224
|
-
if self._size + value_size > prop.type.
|
|
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
|
|
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
|
|
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)
|
|
@@ -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
|
|
@@ -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:
|
|
7
|
+
extends:
|
|
8
|
+
- Interest
|
|
8
9
|
matchable: false
|
|
9
10
|
featured:
|
|
10
11
|
- document
|
|
@@ -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:
|
|
@@ -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:
|
|
@@ -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
|
|
Binary file
|
|
@@ -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
|
-
"
|
|
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
|
|
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
|
|
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
|
|
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 ""
|
|
Binary file
|
|
@@ -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
|
-
"
|
|
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
|
|
2419
|
+
"enterprises, depending on their juristiction.\n"
|
|
2420
2420
|
msgstr ""
|
|
2421
2421
|
|
|
2422
2422
|
#. Ownership.label
|
|
Binary file
|
|
@@ -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
|
-
"
|
|
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
|
|
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
|
|
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
|
|
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 ""
|
|
Binary file
|
|
@@ -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
|
-
"
|
|
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
|
|
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
|
|
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
|
|
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 ""
|
|
Binary file
|
|
@@ -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
|
-
"
|
|
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
|
|
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
|
|
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
|
|
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 ""
|
{followthemoney-3.6.4 → followthemoney-3.7.1}/followthemoney/translations/fr/followthemoney.po
RENAMED
|
@@ -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
|
-
"
|
|
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
|
|
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 "
|