datasette-enrichments-slow 0.1__py3-none-any.whl → 0.3__py3-none-any.whl

Sign up to get free protection for your applications and to get access to all the features.
@@ -2,6 +2,7 @@ import asyncio
2
2
  from datasette_enrichments import Enrichment
3
3
  from datasette import hookimpl
4
4
  from wtforms import Form, FloatField
5
+ import random
5
6
 
6
7
 
7
8
  @hookimpl
@@ -25,6 +26,21 @@ class SlowEnrichment(Enrichment):
25
26
  description="How many seconds to delay for each row",
26
27
  default=0.1,
27
28
  )
29
+ error_rate = FloatField(
30
+ "Error rate",
31
+ description="What portion of rows should be errors? Between 0 and 1.0",
32
+ default=0,
33
+ )
34
+ pause_rate = FloatField(
35
+ "Pause rate",
36
+ description="Chance an item should pause the run, 0 to 1.0",
37
+ default=0,
38
+ )
39
+ cancel_rate = FloatField(
40
+ "Cancel rate",
41
+ description="Chance an item should cancel the run, 0 to 1.0",
42
+ default=0,
43
+ )
28
44
 
29
45
  return ConfigForm
30
46
 
@@ -36,5 +52,14 @@ class SlowEnrichment(Enrichment):
36
52
  pks,
37
53
  config,
38
54
  ):
55
+ error_rate = config.get("error_rate") or 0
56
+ cancel_rate = config.get("cancel_rate") or 0
57
+ pause_rate = config.get("pause_rate") or 0
39
58
  for row in rows:
59
+ if error_rate and random.random() < error_rate:
60
+ raise ValueError("Error rate")
61
+ if cancel_rate and random.random() < cancel_rate:
62
+ raise self.Cancel()
63
+ if pause_rate and random.random() < pause_rate:
64
+ raise self.Pause()
40
65
  await asyncio.sleep(config["delay"])
@@ -1,6 +1,6 @@
1
- Metadata-Version: 2.1
1
+ Metadata-Version: 2.2
2
2
  Name: datasette-enrichments-slow
3
- Version: 0.1
3
+ Version: 0.3
4
4
  Summary: An enrichment on a slow loop to help debug progress bars
5
5
  Author: Simon Willison
6
6
  License: Apache-2.0
@@ -14,7 +14,7 @@ Requires-Python: >=3.9
14
14
  Description-Content-Type: text/markdown
15
15
  License-File: LICENSE
16
16
  Requires-Dist: datasette
17
- Requires-Dist: datasette-enrichments
17
+ Requires-Dist: datasette-enrichments>=0.5
18
18
  Provides-Extra: test
19
19
  Requires-Dist: pytest; extra == "test"
20
20
  Requires-Dist: pytest-asyncio; extra == "test"
@@ -0,0 +1,7 @@
1
+ datasette_enrichments_slow/__init__.py,sha256=oLtRUwe3rzp8KX1mu1BLwST_f53Lb2BtwNrQ90aQRMg,1962
2
+ datasette_enrichments_slow-0.3.dist-info/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
3
+ datasette_enrichments_slow-0.3.dist-info/METADATA,sha256=DTBKLQUV1pLjRCwr83jVltX6UfmD7_FAVZfXGrpLpjc,2298
4
+ datasette_enrichments_slow-0.3.dist-info/WHEEL,sha256=In9FTNxeP60KnTkGw7wk6mJPYd_dQSjEZmXdBdMCI-8,91
5
+ datasette_enrichments_slow-0.3.dist-info/entry_points.txt,sha256=cvHA2Xq1fpH6lmAljMedKADFzSa_4Lj7Px38hCoqHDQ,58
6
+ datasette_enrichments_slow-0.3.dist-info/top_level.txt,sha256=o-W1XO60TGFcagSJ9HljP25g_m1q_qnZxSJ9ftY70XQ,27
7
+ datasette_enrichments_slow-0.3.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: setuptools (75.6.0)
2
+ Generator: setuptools (75.8.0)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5
 
@@ -1,7 +0,0 @@
1
- datasette_enrichments_slow/__init__.py,sha256=YH4FHP8NmsURC3lYDapLXmMPY_6Fsczrh15wk_6YpWU,924
2
- datasette_enrichments_slow-0.1.dist-info/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
3
- datasette_enrichments_slow-0.1.dist-info/METADATA,sha256=6VJ5WKbUn1tvxxLgJVp-zGUDJCZDLaI4vyGoKWDxris,2293
4
- datasette_enrichments_slow-0.1.dist-info/WHEEL,sha256=PZUExdf71Ui_so67QXpySuHtCi3-J3wvF4ORK6k_S8U,91
5
- datasette_enrichments_slow-0.1.dist-info/entry_points.txt,sha256=cvHA2Xq1fpH6lmAljMedKADFzSa_4Lj7Px38hCoqHDQ,58
6
- datasette_enrichments_slow-0.1.dist-info/top_level.txt,sha256=o-W1XO60TGFcagSJ9HljP25g_m1q_qnZxSJ9ftY70XQ,27
7
- datasette_enrichments_slow-0.1.dist-info/RECORD,,