metaflow 2.17.5__py2.py3-none-any.whl → 2.18.1__py2.py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- metaflow/lint.py +22 -0
- metaflow/metaflow_config.py +2 -0
- metaflow/plugins/argo/argo_workflows.py +4 -2
- metaflow/plugins/argo/argo_workflows_cli.py +7 -1
- metaflow/plugins/aws/aws_utils.py +32 -0
- metaflow/plugins/aws/batch/batch.py +8 -0
- metaflow/plugins/aws/batch/batch_cli.py +21 -3
- metaflow/plugins/aws/batch/batch_decorator.py +44 -1
- metaflow/plugins/aws/step_functions/step_functions.py +6 -1
- metaflow/plugins/aws/step_functions/step_functions_cli.py +22 -0
- metaflow/plugins/cards/card_modules/bundle.css +1 -1
- metaflow/plugins/cards/card_modules/main.js +25 -25
- metaflow/plugins/package_cli.py +1 -1
- metaflow/task.py +3 -1
- metaflow/user_configs/config_parameters.py +3 -1
- metaflow/version.py +1 -1
- {metaflow-2.17.5.dist-info → metaflow-2.18.1.dist-info}/METADATA +2 -2
- {metaflow-2.17.5.dist-info → metaflow-2.18.1.dist-info}/RECORD +25 -25
- {metaflow-2.17.5.data → metaflow-2.18.1.data}/data/share/metaflow/devtools/Makefile +0 -0
- {metaflow-2.17.5.data → metaflow-2.18.1.data}/data/share/metaflow/devtools/Tiltfile +0 -0
- {metaflow-2.17.5.data → metaflow-2.18.1.data}/data/share/metaflow/devtools/pick_services.sh +0 -0
- {metaflow-2.17.5.dist-info → metaflow-2.18.1.dist-info}/WHEEL +0 -0
- {metaflow-2.17.5.dist-info → metaflow-2.18.1.dist-info}/entry_points.txt +0 -0
- {metaflow-2.17.5.dist-info → metaflow-2.18.1.dist-info}/licenses/LICENSE +0 -0
- {metaflow-2.17.5.dist-info → metaflow-2.18.1.dist-info}/top_level.txt +0 -0
metaflow/plugins/package_cli.py
CHANGED
@@ -60,7 +60,7 @@ def list(obj, archive=False):
|
|
60
60
|
@click.pass_obj
|
61
61
|
def save(obj, path):
|
62
62
|
with open(path, "wb") as f:
|
63
|
-
f.write(obj.package.blob
|
63
|
+
f.write(obj.package.blob)
|
64
64
|
obj.echo(
|
65
65
|
"Code package saved in *%s* with metadata: %s"
|
66
66
|
% (path, obj.package.package_metadata),
|
metaflow/task.py
CHANGED
@@ -121,8 +121,10 @@ class MetaflowTask(object):
|
|
121
121
|
r = w.post_step(orig_step_func.name, self.flow, raised_exception)
|
122
122
|
except Exception as ex:
|
123
123
|
r = ex
|
124
|
-
if r is None
|
124
|
+
if r is None:
|
125
125
|
raised_exception = None
|
126
|
+
elif isinstance(r, Exception):
|
127
|
+
raised_exception = r
|
126
128
|
elif isinstance(r, tuple):
|
127
129
|
if len(r) == 2:
|
128
130
|
raised_exception, fake_next_call_args = r
|
@@ -271,6 +271,9 @@ class ConfigValue(collections.abc.Mapping, dict):
|
|
271
271
|
v = obj
|
272
272
|
return v
|
273
273
|
|
274
|
+
def __reduce__(self):
|
275
|
+
return (self.__class__, (self.to_dict(),))
|
276
|
+
|
274
277
|
|
275
278
|
class DelayEvaluator(collections.abc.Mapping):
|
276
279
|
"""
|
@@ -484,7 +487,6 @@ class Config(Parameter, collections.abc.Mapping):
|
|
484
487
|
parser: Optional[Union[str, Callable[[str], Dict[Any, Any]]]] = None,
|
485
488
|
**kwargs: Dict[str, str]
|
486
489
|
):
|
487
|
-
|
488
490
|
if default is not None and default_value is not None:
|
489
491
|
raise MetaflowException(
|
490
492
|
"For config '%s', you can only specify default or default_value, not both"
|
metaflow/version.py
CHANGED
@@ -1 +1 @@
|
|
1
|
-
metaflow_version = "2.
|
1
|
+
metaflow_version = "2.18.1"
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: metaflow
|
3
|
-
Version: 2.
|
3
|
+
Version: 2.18.1
|
4
4
|
Summary: Metaflow: More AI and ML, Less Engineering
|
5
5
|
Author: Metaflow Developers
|
6
6
|
Author-email: help@metaflow.org
|
@@ -26,7 +26,7 @@ License-File: LICENSE
|
|
26
26
|
Requires-Dist: requests
|
27
27
|
Requires-Dist: boto3
|
28
28
|
Provides-Extra: stubs
|
29
|
-
Requires-Dist: metaflow-stubs==2.
|
29
|
+
Requires-Dist: metaflow-stubs==2.18.1; extra == "stubs"
|
30
30
|
Dynamic: author
|
31
31
|
Dynamic: author-email
|
32
32
|
Dynamic: classifier
|
@@ -14,9 +14,9 @@ metaflow/flowspec.py,sha256=9wsO2_QoO_VHKusKdpslfbwQREOwf0fAzF-DSEA0iZ8,41968
|
|
14
14
|
metaflow/graph.py,sha256=UOeClj-JeORRlZWOQMI1CirkrCpTvVWvRcSwODCajMg,19263
|
15
15
|
metaflow/includefile.py,sha256=RtISGl1V48qjkJBakUZ9yPpHV102h7pOIFiKP8PLHpc,20927
|
16
16
|
metaflow/integrations.py,sha256=LlsaoePRg03DjENnmLxZDYto3NwWc9z_PtU6nJxLldg,1480
|
17
|
-
metaflow/lint.py,sha256=
|
17
|
+
metaflow/lint.py,sha256=A2NdUq_MnQal_RUCMC8ZOSR0VYZGyi2mSgwPQB0UzQo,15343
|
18
18
|
metaflow/meta_files.py,sha256=vlgJHI8GJUKzXoxdrVoH8yyCF5bhFgwYemUgnyd1wgM,342
|
19
|
-
metaflow/metaflow_config.py,sha256=
|
19
|
+
metaflow/metaflow_config.py,sha256=v0bGKQ3EMGsRyd-UkHZxwrISV_5jsnxFLn8PG2_dyzs,24272
|
20
20
|
metaflow/metaflow_config_funcs.py,sha256=5GlvoafV6SxykwfL8D12WXSfwjBN_NsyuKE_Q3gjGVE,6738
|
21
21
|
metaflow/metaflow_current.py,sha256=pfkXmkyHeMJhxIs6HBJNBEaBDpcl5kz9Wx5mW6F_3qo,7164
|
22
22
|
metaflow/metaflow_environment.py,sha256=20PIhA5R_rJneNj8f8UaWRmznGRPcEd6hP7goj_rc1s,11477
|
@@ -31,12 +31,12 @@ metaflow/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
31
31
|
metaflow/pylint_wrapper.py,sha256=tJjmdsgtbHTCqg_oA6fV6SbWq_3V5XUgE9xH0zJ1CGU,3004
|
32
32
|
metaflow/runtime.py,sha256=3R44AFI04LWahbfa2v0yDYIWHIz6sau26p1SnzYFNew,86888
|
33
33
|
metaflow/tagging_util.py,sha256=ctyf0Q1gBi0RyZX6J0e9DQGNkNHblV_CITfy66axXB4,2346
|
34
|
-
metaflow/task.py,sha256=
|
34
|
+
metaflow/task.py,sha256=jnh_qteVIW0sP3Y2MBfJR2eEv_MGnOW1quPO_1OltH0,39244
|
35
35
|
metaflow/tuple_util.py,sha256=_G5YIEhuugwJ_f6rrZoelMFak3DqAR2tt_5CapS1XTY,830
|
36
36
|
metaflow/unbounded_foreach.py,sha256=p184WMbrMJ3xKYHwewj27ZhRUsSj_kw1jlye5gA9xJk,387
|
37
37
|
metaflow/util.py,sha256=g2SOU_CRzJLgDM_UGF9QDMANMAIHAsDRXE6S76_YzsY,14594
|
38
38
|
metaflow/vendor.py,sha256=A82CGHfStZGDP5pQ5XzRjFkbN1ZC-vFmghXIrzMDDNg,5868
|
39
|
-
metaflow/version.py,sha256=
|
39
|
+
metaflow/version.py,sha256=Vt-9OQFdcG4kw0cOPHwZvR7fKPCHbE2gUgvMaW1UnUE,28
|
40
40
|
metaflow/_vendor/__init__.py,sha256=y_CiwUD3l4eAKvTVDZeqgVujMy31cAM1qjAB-HfI-9s,353
|
41
41
|
metaflow/_vendor/typing_extensions.py,sha256=q9zxWa6p6CzF1zZvSkygSlklduHf_b3K7MCxGz7MJRc,134519
|
42
42
|
metaflow/_vendor/zipp.py,sha256=ajztOH-9I7KA_4wqDYygtHa6xUBVZgFpmZ8FE74HHHI,8425
|
@@ -205,7 +205,7 @@ metaflow/plugins/debug_monitor.py,sha256=Md5X_sDOSssN9pt2D8YcaIjTK5JaQD55UAYTcF6
|
|
205
205
|
metaflow/plugins/environment_decorator.py,sha256=6m9j2B77d-Ja_l_9CTJ__0O6aB2a8Qt_lAZu6UjAcUA,587
|
206
206
|
metaflow/plugins/events_decorator.py,sha256=T_YSK-DlgZhd3ge9PlpTRNaMi15GK0tKZMZl1NdV9DQ,24403
|
207
207
|
metaflow/plugins/logs_cli.py,sha256=77W5UNagU2mOKSMMvrQxQmBLRzvmjK-c8dWxd-Ygbqs,11410
|
208
|
-
metaflow/plugins/package_cli.py,sha256=
|
208
|
+
metaflow/plugins/package_cli.py,sha256=GOxKJs9Wt0x9VtcTJ2EG_wj6pWnlS0XBFAyHpCzzuvs,2000
|
209
209
|
metaflow/plugins/parallel_decorator.py,sha256=wtR_3eRIP3eV7fBIm15oouRjmHBFZ9OklxdaNvttLEQ,9702
|
210
210
|
metaflow/plugins/project_decorator.py,sha256=uhwsguEj7OM_E2OnY1ap3MoGocQHeywuJSa-qPuWn-U,7592
|
211
211
|
metaflow/plugins/resources_decorator.py,sha256=AtoOwg4mHYHYthg-CAfbfam-QiT0ViuDLDoukoDvF6Q,1347
|
@@ -230,8 +230,8 @@ metaflow/plugins/airflow/sensors/s3_sensor.py,sha256=iDReG-7FKnumrtQg-HY6cCUAAqN
|
|
230
230
|
metaflow/plugins/argo/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
231
231
|
metaflow/plugins/argo/argo_client.py,sha256=jLz0FjCTBvFLZt-8lZcMQhDcInhgEcGdPrU2Gvh67zA,17080
|
232
232
|
metaflow/plugins/argo/argo_events.py,sha256=_C1KWztVqgi3zuH57pInaE9OzABc2NnncC-zdwOMZ-w,5909
|
233
|
-
metaflow/plugins/argo/argo_workflows.py,sha256=
|
234
|
-
metaflow/plugins/argo/argo_workflows_cli.py,sha256
|
233
|
+
metaflow/plugins/argo/argo_workflows.py,sha256=URF89Inj4gXQJ5p4_nFPTQihj-LlQZP0yq38kIlmhKU,207599
|
234
|
+
metaflow/plugins/argo/argo_workflows_cli.py,sha256=-blfZp-kAS8oWFTarfou9gRyE4QCnnJwa-0g8QuE0zk,52280
|
235
235
|
metaflow/plugins/argo/argo_workflows_decorator.py,sha256=CLSjPqFTGucZ2_dSQGAYkoWWUZBQ9TCBXul4rxhDj3w,8282
|
236
236
|
metaflow/plugins/argo/argo_workflows_deployer.py,sha256=6kHxEnYXJwzNCM9swI8-0AckxtPWqwhZLerYkX8fxUM,4444
|
237
237
|
metaflow/plugins/argo/argo_workflows_deployer_objects.py,sha256=ydBE-lP42eNKvep36nQdUBPS3rQQErvoA7rCgyp5M6I,14949
|
@@ -242,12 +242,12 @@ metaflow/plugins/argo/generate_input_paths.py,sha256=loYsI6RFX9LlFsHb7Fe-mzlTTtR
|
|
242
242
|
metaflow/plugins/argo/jobset_input_paths.py,sha256=-h0E_e0w6FMiBUod9Rf_XOSCtZv_C0exacw4q1SfIfg,501
|
243
243
|
metaflow/plugins/aws/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
244
244
|
metaflow/plugins/aws/aws_client.py,sha256=BTiLMXa1agjja-N73oWinaOZHs-lGPbfKJG8CqdRgaU,4287
|
245
|
-
metaflow/plugins/aws/aws_utils.py,sha256=
|
245
|
+
metaflow/plugins/aws/aws_utils.py,sha256=5mGZLu6wwTo2KzIke_MFqiomM3sYjAkU7Fx55dIMLfg,8561
|
246
246
|
metaflow/plugins/aws/batch/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
247
|
-
metaflow/plugins/aws/batch/batch.py,sha256=
|
248
|
-
metaflow/plugins/aws/batch/batch_cli.py,sha256=
|
247
|
+
metaflow/plugins/aws/batch/batch.py,sha256=sdhpQVG3QAWD6KlpZH1MRCQcdwO0S4D-qXxgRK2A4bE,18466
|
248
|
+
metaflow/plugins/aws/batch/batch_cli.py,sha256=yZAy6WqZPsCqxjMnRhnTellCjLo27tD_OcoBLHezH8E,12508
|
249
249
|
metaflow/plugins/aws/batch/batch_client.py,sha256=J50RMEXeEXFe5RqNUM1HN22BuDQFYFVQ4FSMOK55VWY,28798
|
250
|
-
metaflow/plugins/aws/batch/batch_decorator.py,sha256=
|
250
|
+
metaflow/plugins/aws/batch/batch_decorator.py,sha256=apKBywlseCGxoKxpLLYQSjK3rz8QEJom4ekKf6OvzNU,20104
|
251
251
|
metaflow/plugins/aws/secrets_manager/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
252
252
|
metaflow/plugins/aws/secrets_manager/aws_secrets_manager_secrets_provider.py,sha256=bBrGw4gRcKX9SLD8iKqPm_S_Zw5Y6F8AjxP6jPbkPpI,8136
|
253
253
|
metaflow/plugins/aws/step_functions/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
@@ -256,8 +256,8 @@ metaflow/plugins/aws/step_functions/event_bridge_client.py,sha256=U9-tqKdih4KR-Z
|
|
256
256
|
metaflow/plugins/aws/step_functions/production_token.py,sha256=rREx9djJzKYDiGhPCZ919pSpfrBCYuhSL5WlwnAojNM,1890
|
257
257
|
metaflow/plugins/aws/step_functions/schedule_decorator.py,sha256=Ab1rW8O_no4HNZm4__iBmFDCDW0Z8-TgK4lnxHHA6HI,1940
|
258
258
|
metaflow/plugins/aws/step_functions/set_batch_environment.py,sha256=ibiGWFHDjKcLfprH3OsX-g2M9lUsh6J-bp7v2cdLhD4,1294
|
259
|
-
metaflow/plugins/aws/step_functions/step_functions.py,sha256=
|
260
|
-
metaflow/plugins/aws/step_functions/step_functions_cli.py,sha256=
|
259
|
+
metaflow/plugins/aws/step_functions/step_functions.py,sha256=dAdJVo2UMsUe2StQak9VlUJK3-GtJ_50jlG8jk5QWLc,54110
|
260
|
+
metaflow/plugins/aws/step_functions/step_functions_cli.py,sha256=MF3UPdZvRgVfZrcD4UCu0Fq-n-EUMM8m7RK57iUvOQs,27152
|
261
261
|
metaflow/plugins/aws/step_functions/step_functions_client.py,sha256=DKpNwAIWElvWjFANs5Ku3rgzjxFoqAD6k-EF8Xhkg3Q,4754
|
262
262
|
metaflow/plugins/aws/step_functions/step_functions_decorator.py,sha256=jzDHYmgU_XvLffZDazR_1viow_1qQFblx9UKyjtoM_0,3788
|
263
263
|
metaflow/plugins/aws/step_functions/step_functions_deployer.py,sha256=JKYtDhKivtXUWPklprZFzkqezh14loGDmk8mNk6QtpI,3714
|
@@ -284,12 +284,12 @@ metaflow/plugins/cards/metadata.py,sha256=tACaw7_XNAICZ4A25celIbgxUF0CxHh7BBpFzK
|
|
284
284
|
metaflow/plugins/cards/card_modules/__init__.py,sha256=WI2IAsFiKGyqPrHtO9S9-MbyVtUTgWJNL4xjJaBErRo,3437
|
285
285
|
metaflow/plugins/cards/card_modules/base.html,sha256=Y208ZKIZqEWWUcoBFTLTdWKAG0C8xH5lmyCRSjaN2FY,21004
|
286
286
|
metaflow/plugins/cards/card_modules/basic.py,sha256=b6aBg7800CjjkQb0J_TOd3JujVR10X2QoXYdwiXFbkE,25831
|
287
|
-
metaflow/plugins/cards/card_modules/bundle.css,sha256=
|
287
|
+
metaflow/plugins/cards/card_modules/bundle.css,sha256=Ey_j7SHMYWFxUA0WOrz-hq1c-0KDolfGoIffay3yNsU,12144
|
288
288
|
metaflow/plugins/cards/card_modules/card.py,sha256=6sbqP5mwf7QWvQvX2N_bC78H9ixuI5sQ8612Q5islys,4627
|
289
289
|
metaflow/plugins/cards/card_modules/components.py,sha256=Y-Yo7UgSOyTB3zs-wDfUqUKl0PI_BzeY1QGcy2fqE2M,26752
|
290
290
|
metaflow/plugins/cards/card_modules/convert_to_native_type.py,sha256=Vcjqn5rfC0kVMdhqDwsYEjknXTbkG_ppraQrQGaQY_E,16245
|
291
291
|
metaflow/plugins/cards/card_modules/main.css,sha256=avu7BTB9qj0M8LvqNLUhikUFQhmAJhQQ7REcUgh9zMw,11725
|
292
|
-
metaflow/plugins/cards/card_modules/main.js,sha256=
|
292
|
+
metaflow/plugins/cards/card_modules/main.js,sha256=mZkgYvl4mN_YlPZmGn7SqZAO8do_SbRjMFR8KmZUdJM,1045780
|
293
293
|
metaflow/plugins/cards/card_modules/renderer_tools.py,sha256=uiTdKHWFInWgtfWArOUSQLnTwqVd4hAw49jfOfg8rGA,1642
|
294
294
|
metaflow/plugins/cards/card_modules/test_cards.py,sha256=t2PZ3QnjCN_KUlDKxAt2FfK1BX2dp8rqK6TjtkCNyew,5876
|
295
295
|
metaflow/plugins/cards/card_modules/chevron/__init__.py,sha256=SicpH_1eT76HUTA8aMuiGLRNKTqgYD1Qfutt2NdTL0E,156
|
@@ -421,19 +421,19 @@ metaflow/tutorials/08-autopilot/README.md,sha256=GnePFp_q76jPs991lMUqfIIh5zSorIe
|
|
421
421
|
metaflow/tutorials/08-autopilot/autopilot.ipynb,sha256=DQoJlILV7Mq9vfPBGW-QV_kNhWPjS5n6SJLqePjFYLY,3191
|
422
422
|
metaflow/user_configs/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
423
423
|
metaflow/user_configs/config_options.py,sha256=d3hKA6WRPe21PdTl7sBnxIp5sE6zBpRtgAGx7hWkkfw,21380
|
424
|
-
metaflow/user_configs/config_parameters.py,sha256=
|
424
|
+
metaflow/user_configs/config_parameters.py,sha256=1KZC1x7i-M-PfscIEOMUJ5NT2HTzFsB0HtNMTp_8hqE,20967
|
425
425
|
metaflow/user_decorators/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
426
426
|
metaflow/user_decorators/common.py,sha256=0u9NRLQ95TfJCjWVEOGT4MJ9WoQgAMBM9kJ2gJGlVjk,5362
|
427
427
|
metaflow/user_decorators/mutable_flow.py,sha256=EywKTN3cnXPQF_s62wQaC4a4aH14j8oeqzD3yZaiDxw,19467
|
428
428
|
metaflow/user_decorators/mutable_step.py,sha256=-BY0UDXf_RCAEnC5JlLzEXGdiw1KD9oSrSxS_SWaB9Y,16791
|
429
429
|
metaflow/user_decorators/user_flow_decorator.py,sha256=2yDwZq9QGv9W-7kEuKwa8o4ZkTvuHJ5ESz7VVrGViAI,9890
|
430
430
|
metaflow/user_decorators/user_step_decorator.py,sha256=4558NR8RJtN22OyTwCXO80bAMhMTaRGMoX12b1GMcPc,27232
|
431
|
-
metaflow-2.
|
432
|
-
metaflow-2.
|
433
|
-
metaflow-2.
|
434
|
-
metaflow-2.
|
435
|
-
metaflow-2.
|
436
|
-
metaflow-2.
|
437
|
-
metaflow-2.
|
438
|
-
metaflow-2.
|
439
|
-
metaflow-2.
|
431
|
+
metaflow-2.18.1.data/data/share/metaflow/devtools/Makefile,sha256=TT4TCq8ALSfqYyGqDPocN5oPcZe2FqoCZxmGO1LmyCc,13760
|
432
|
+
metaflow-2.18.1.data/data/share/metaflow/devtools/Tiltfile,sha256=Ty5p6AD3MwJAcAnOGv4yMz8fExAsnNQ11r8whK6uzzw,21381
|
433
|
+
metaflow-2.18.1.data/data/share/metaflow/devtools/pick_services.sh,sha256=DCnrMXwtApfx3B4S-YiZESMyAFHbXa3VuNL0MxPLyiE,2196
|
434
|
+
metaflow-2.18.1.dist-info/licenses/LICENSE,sha256=nl_Lt5v9VvJ-5lWJDT4ddKAG-VZ-2IaLmbzpgYDz2hU,11343
|
435
|
+
metaflow-2.18.1.dist-info/METADATA,sha256=q84Kvl4VnvecESuF-Qe8aWcgNoTIca8NVEC2zdu_Vyc,6740
|
436
|
+
metaflow-2.18.1.dist-info/WHEEL,sha256=JNWh1Fm1UdwIQV075glCn4MVuCRs0sotJIq-J6rbxCU,109
|
437
|
+
metaflow-2.18.1.dist-info/entry_points.txt,sha256=RvEq8VFlgGe_FfqGOZi0D7ze1hLD0pAtXeNyGfzc_Yc,103
|
438
|
+
metaflow-2.18.1.dist-info/top_level.txt,sha256=v1pDHoWaSaKeuc5fKTRSfsXCKSdW1zvNVmvA-i0if3o,9
|
439
|
+
metaflow-2.18.1.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|