redis-benchmarks-specification 0.1.309__py3-none-any.whl → 0.1.310__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.

Potentially problematic release.


This version of redis-benchmarks-specification might be problematic. Click here for more details.

Files changed (20) hide show
  1. redis_benchmarks_specification/__cli__/stats.py +20 -11
  2. redis_benchmarks_specification/__common__/runner.py +13 -9
  3. redis_benchmarks_specification/__common__/timeseries.py +3 -3
  4. redis_benchmarks_specification/__compare__/args.py +1 -3
  5. redis_benchmarks_specification/__compare__/compare.py +19 -8
  6. redis_benchmarks_specification/__runner__/args.py +3 -3
  7. redis_benchmarks_specification/__runner__/remote_profiling.py +3 -1
  8. redis_benchmarks_specification/__runner__/runner.py +305 -116
  9. redis_benchmarks_specification/__self_contained_coordinator__/docker.py +6 -1
  10. redis_benchmarks_specification/__self_contained_coordinator__/prepopulation.py +2 -0
  11. redis_benchmarks_specification/__self_contained_coordinator__/runners.py +7 -2
  12. redis_benchmarks_specification/__self_contained_coordinator__/self_contained_coordinator.py +9 -5
  13. redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-100B-expire-use-case.yml +2 -2
  14. redis_benchmarks_specification/test-suites/memtier_benchmark-playbook-session-storage-100k-sessions.yml +3 -2
  15. redis_benchmarks_specification/test-suites/memtier_benchmark-playbook-session-storage-1k-sessions.yml +3 -2
  16. {redis_benchmarks_specification-0.1.309.dist-info → redis_benchmarks_specification-0.1.310.dist-info}/METADATA +3 -2
  17. {redis_benchmarks_specification-0.1.309.dist-info → redis_benchmarks_specification-0.1.310.dist-info}/RECORD +20 -20
  18. {redis_benchmarks_specification-0.1.309.dist-info → redis_benchmarks_specification-0.1.310.dist-info}/WHEEL +1 -1
  19. {redis_benchmarks_specification-0.1.309.dist-info → redis_benchmarks_specification-0.1.310.dist-info}/LICENSE +0 -0
  20. {redis_benchmarks_specification-0.1.309.dist-info → redis_benchmarks_specification-0.1.310.dist-info}/entry_points.txt +0 -0
@@ -8,7 +8,12 @@ from redis_benchmarks_specification.__self_contained_coordinator__.cpuset import
8
8
 
9
9
 
10
10
  def generate_standalone_redis_server_args(
11
- binary, port, dbdir, configuration_parameters=None, redis_arguments="", password=None
11
+ binary,
12
+ port,
13
+ dbdir,
14
+ configuration_parameters=None,
15
+ redis_arguments="",
16
+ password=None,
12
17
  ):
13
18
  added_params = ["port", "protected-mode", "dir", "requirepass"]
14
19
  # start redis-server
@@ -23,6 +23,7 @@ def data_prepopulation_step(
23
23
  port,
24
24
  temporary_dir,
25
25
  test_name,
26
+ redis_password,
26
27
  ):
27
28
  # setup the benchmark
28
29
  (
@@ -53,6 +54,7 @@ def data_prepopulation_step(
53
54
  "localhost",
54
55
  local_benchmark_output_filename,
55
56
  False,
57
+ redis_password,
56
58
  )
57
59
 
58
60
  logging.info(
@@ -310,7 +310,9 @@ def process_self_contained_coordinator_stream(
310
310
  )
311
311
  )
312
312
 
313
- r = redis.StrictRedis(port=redis_proc_start_port, password=redis_password)
313
+ r = redis.StrictRedis(
314
+ port=redis_proc_start_port, password=redis_password
315
+ )
314
316
  r.ping()
315
317
  redis_pids = []
316
318
  redis_info = r.info()
@@ -318,7 +320,9 @@ def process_self_contained_coordinator_stream(
318
320
  if first_redis_pid is not None:
319
321
  redis_pids.append(first_redis_pid)
320
322
  else:
321
- logging.warning("Redis process_id not found in INFO command")
323
+ logging.warning(
324
+ "Redis process_id not found in INFO command"
325
+ )
322
326
  ceil_client_cpu_limit = extract_client_cpu_limit(
323
327
  benchmark_config
324
328
  )
@@ -341,6 +345,7 @@ def process_self_contained_coordinator_stream(
341
345
  redis_proc_start_port,
342
346
  temporary_dir,
343
347
  test_name,
348
+ redis_password,
344
349
  )
345
350
 
346
351
  logging.info(
@@ -495,10 +495,8 @@ def process_self_contained_coordinator_stream(
495
495
  docker_keep_env=False,
496
496
  restore_build_artifacts_default=True,
497
497
  args=None,
498
+ redis_password="redis_coordinator_password_2024",
498
499
  ):
499
- # Use a default password for coordinator Redis instances
500
- redis_password = "redis_coordinator_password_2024"
501
-
502
500
  stream_id = "n/a"
503
501
  overall_result = False
504
502
  total_test_suite_runs = 0
@@ -880,7 +878,9 @@ def process_self_contained_coordinator_stream(
880
878
  temporary_dir,
881
879
  )
882
880
 
883
- r = redis.StrictRedis(port=redis_proc_start_port, password=redis_password)
881
+ r = redis.StrictRedis(
882
+ port=redis_proc_start_port, password=redis_password
883
+ )
884
884
  r.ping()
885
885
  redis_conns = [r]
886
886
  reset_commandstats(redis_conns)
@@ -888,7 +888,9 @@ def process_self_contained_coordinator_stream(
888
888
  redis_info = r.info()
889
889
  first_redis_pid = redis_info.get("process_id")
890
890
  if first_redis_pid is None:
891
- logging.warning("Redis process_id not found in INFO command")
891
+ logging.warning(
892
+ "Redis process_id not found in INFO command"
893
+ )
892
894
  first_redis_pid = "unknown"
893
895
  if git_hash is None and "redis_git_sha1" in redis_info:
894
896
  git_hash = redis_info["redis_git_sha1"]
@@ -932,6 +934,7 @@ def process_self_contained_coordinator_stream(
932
934
  redis_proc_start_port,
933
935
  temporary_dir,
934
936
  test_name,
937
+ redis_password,
935
938
  )
936
939
 
937
940
  execute_init_commands(
@@ -1696,6 +1699,7 @@ def data_prepopulation_step(
1696
1699
  port,
1697
1700
  temporary_dir,
1698
1701
  test_name,
1702
+ redis_password,
1699
1703
  ):
1700
1704
  # setup the benchmark
1701
1705
  (
@@ -40,8 +40,8 @@ clientconfig:
40
40
  arguments: '"--data-size" "100" --command "SETEX __key__ 10 __data__" --command-key-pattern="R"
41
41
  --command "SET __key__ __data__" --command-key-pattern="R" --command "GET __key__"
42
42
  --command-key-pattern="R" --command "DEL __key__" --command-key-pattern="R" -c
43
- 50 -t 2 --hide-histogram --test-time 120 "--key-minimum" "1" "--key-maximum"
44
- "1000000"'
43
+ 50 -t 2 --hide-histogram --test-time 120 --key-minimum 1 --key-maximum
44
+ 1000000'
45
45
  resources:
46
46
  requests:
47
47
  cpus: '3'
@@ -140,9 +140,9 @@ dbconfig:
140
140
  return 'OK'
141
141
  tested-groups:
142
142
  - hash
143
- - zset
143
+ - sorted-set
144
144
  - set
145
- - string
145
+ - scripting
146
146
 
147
147
  tested-commands:
148
148
  - hgetall
@@ -154,6 +154,7 @@ tested-commands:
154
154
  - incr
155
155
  - expire
156
156
  - get
157
+ - eval
157
158
 
158
159
  redis-topologies:
159
160
  - oss-standalone
@@ -140,9 +140,9 @@ dbconfig:
140
140
  return 'OK'
141
141
  tested-groups:
142
142
  - hash
143
- - zset
143
+ - sorted-set
144
144
  - set
145
- - string
145
+ - scripting
146
146
 
147
147
  tested-commands:
148
148
  - hgetall
@@ -154,6 +154,7 @@ tested-commands:
154
154
  - incr
155
155
  - expire
156
156
  - get
157
+ - eval
157
158
 
158
159
  redis-topologies:
159
160
  - oss-standalone
@@ -1,6 +1,6 @@
1
- Metadata-Version: 2.1
1
+ Metadata-Version: 2.3
2
2
  Name: redis-benchmarks-specification
3
- Version: 0.1.309
3
+ Version: 0.1.310
4
4
  Summary: The Redis benchmarks specification describes the cross-language/tools requirements and expectations to foster performance and observability standards around redis related technologies. Members from both industry and academia, including organizations and individuals are encouraged to contribute.
5
5
  Author: filipecosta90
6
6
  Author-email: filipecosta.90@gmail.com
@@ -9,6 +9,7 @@ Classifier: Programming Language :: Python :: 3
9
9
  Classifier: Programming Language :: Python :: 3.10
10
10
  Classifier: Programming Language :: Python :: 3.11
11
11
  Classifier: Programming Language :: Python :: 3.12
12
+ Classifier: Programming Language :: Python :: 3.13
12
13
  Requires-Dist: Flask (>=2.0.3,<3.0.0)
13
14
  Requires-Dist: Flask-HTTPAuth (>=4.4.0,<5.0.0)
14
15
  Requires-Dist: GitPython (>=3.1.20,<4.0.0)
@@ -9,34 +9,34 @@ redis_benchmarks_specification/__builder__/schema.py,sha256=1wcmyVJBcWrBvK58pghN
9
9
  redis_benchmarks_specification/__cli__/__init__.py,sha256=l-G1z-t6twUgi8QLueqoTQLvJmv3hJoEYskGm6H7L6M,83
10
10
  redis_benchmarks_specification/__cli__/args.py,sha256=uZkk1Jom9i0xJ_OpVMrIWbw_70jFo7IswLV2EtKTKEA,7210
11
11
  redis_benchmarks_specification/__cli__/cli.py,sha256=6tt0Ai-JIFEF3ykWFU2_g5ZrzKVIoyLLXUmyzYpVDF4,21843
12
- redis_benchmarks_specification/__cli__/stats.py,sha256=6RHPm0oieaRc4xwxJp8YE05BblpYq5zr2ckrSgsRxNU,28450
12
+ redis_benchmarks_specification/__cli__/stats.py,sha256=8R6fsiR00Uqa-01_Yq0PegriZkiM313KjCpDv5PhEdM,28965
13
13
  redis_benchmarks_specification/__common__/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
14
14
  redis_benchmarks_specification/__common__/builder_schema.py,sha256=kfDpRIk7NkJrb5qj9jzsBhLVNO7K_W2Clumj4pxrkG8,5938
15
15
  redis_benchmarks_specification/__common__/env.py,sha256=kvJ8Ll-fvI_Tc0vynrzUEr22TqnJizzvJ4Lu9RjNr_M,3119
16
16
  redis_benchmarks_specification/__common__/github.py,sha256=9TZtnISsSgXTSAN_VQejo5YRPDPhlU0gjxgKGPw_sP8,10699
17
17
  redis_benchmarks_specification/__common__/package.py,sha256=4uVt1BAZ999LV2rZkq--Tk6otAVIf9YR3g3KGeUpiW4,834
18
- redis_benchmarks_specification/__common__/runner.py,sha256=7Xc8QjwqYXQH9Vnq7s2YiP052zI3dk-OFhO-8Z5XY3o,16589
18
+ redis_benchmarks_specification/__common__/runner.py,sha256=M-o1QZVlp3thFW-55PiaWktk4rX2-xq9mpgrXoYumQQ,16788
19
19
  redis_benchmarks_specification/__common__/spec.py,sha256=D_SN48wg6NMthW_-OS1H5bydSDiuZpfd4WPPj7Vfwmc,5760
20
- redis_benchmarks_specification/__common__/timeseries.py,sha256=w8XQrGPEFuuemDXXz4iny7lYsNbYH0ycQyq3jHIr80g,52916
20
+ redis_benchmarks_specification/__common__/timeseries.py,sha256=uvS3T2zdrSmW_B2S0MYTekJfHUllqU3RlD0LrF957RQ,52904
21
21
  redis_benchmarks_specification/__compare__/__init__.py,sha256=DtBXRp0Q01XgCFmY-1OIePMyyYihVNAjZ1Y8zwqSDN0,101
22
- redis_benchmarks_specification/__compare__/args.py,sha256=nZU22cOgcCfaBn3yIAWmjIT0-8cFWqBQoZOgUXH5YKU,7622
23
- redis_benchmarks_specification/__compare__/compare.py,sha256=2zBPedAQYWY3QlJlwQIcsnZJsGZ1AhH4oLD4Gb8V5XM,62797
22
+ redis_benchmarks_specification/__compare__/args.py,sha256=f3ZSs8GzyIzaMzX2h9cx0nOrnlO4aXToO1SBzBlpzKM,7608
23
+ redis_benchmarks_specification/__compare__/compare.py,sha256=OrpCpY66rlbP5so6aYCdSF9Sy3sdhKrnzVJK1u3XQno,62912
24
24
  redis_benchmarks_specification/__init__.py,sha256=YQIEx2sLPPA0JR9OuCuMNMNtm-f_gqDKgzvNJnkGNKY,491
25
25
  redis_benchmarks_specification/__runner__/__init__.py,sha256=l-G1z-t6twUgi8QLueqoTQLvJmv3hJoEYskGm6H7L6M,83
26
- redis_benchmarks_specification/__runner__/args.py,sha256=YeN7-eOGoqCHKh5FrKz9z5Ee-Rh-3DF9tm2Hb-3m7sQ,10648
27
- redis_benchmarks_specification/__runner__/remote_profiling.py,sha256=JS46mFxnRB2HSU_HO90WE4w7P7usHzX1dwZg1bJpTMc,18588
28
- redis_benchmarks_specification/__runner__/runner.py,sha256=96v6WV1XLtAYd-5d04JYMgUIP4psBPJuniVuOOTXW7s,139649
26
+ redis_benchmarks_specification/__runner__/args.py,sha256=-el2RttOjjc4Y9yOM1P5y9BwIkBPp_Y1k7OsP91P2BI,10651
27
+ redis_benchmarks_specification/__runner__/remote_profiling.py,sha256=R7obNQju8mmY9oKkcndjI4aAuxi84OCLhDSqqaYu1SU,18610
28
+ redis_benchmarks_specification/__runner__/runner.py,sha256=13iPDfyg_ivZyiS44ypbe_qViaJGOwp0Baj7kh3UtqE,144861
29
29
  redis_benchmarks_specification/__self_contained_coordinator__/__init__.py,sha256=l-G1z-t6twUgi8QLueqoTQLvJmv3hJoEYskGm6H7L6M,83
30
30
  redis_benchmarks_specification/__self_contained_coordinator__/args.py,sha256=uxBjdQ78klvsVi6lOfGYQVaWIxc8OI-DwYKY16SgvCY,5952
31
31
  redis_benchmarks_specification/__self_contained_coordinator__/artifacts.py,sha256=OVHqJzDgeSSRfUSiKp1ZTAVv14PvSbk-5yJsAAoUfpw,936
32
32
  redis_benchmarks_specification/__self_contained_coordinator__/build_info.py,sha256=vlg8H8Rxu2falW8xp1GvL1SV1fyBguSbz6Apxc7A2yM,2282
33
33
  redis_benchmarks_specification/__self_contained_coordinator__/clients.py,sha256=EL1V4-i-tTav1mcF_CUosqPF3Q1qi9BZL0zFajEk70c,1878
34
34
  redis_benchmarks_specification/__self_contained_coordinator__/cpuset.py,sha256=sRvtoJIitppcOpm3R5LbVmSfPEAqPumOqVATnF5Wbek,594
35
- redis_benchmarks_specification/__self_contained_coordinator__/docker.py,sha256=nVfF1daQ1eBAgXEIjrfK_AYi4hDQbep4E-Kf_cHjMp8,3065
35
+ redis_benchmarks_specification/__self_contained_coordinator__/docker.py,sha256=eXJM2FybaVNTjvTrKwHextcNmkCIK9HQaG8ZNWjgx18,3086
36
36
  redis_benchmarks_specification/__self_contained_coordinator__/post_processing.py,sha256=sVLKNnWdAqYY9DjVdqRC5tDaIrVSaI3Ca7w8-DQ-LRM,776
37
- redis_benchmarks_specification/__self_contained_coordinator__/prepopulation.py,sha256=qB1rwqkROfuyFotB7MfUQiYS4Gzafd8dd2ca7lT4l2I,2909
38
- redis_benchmarks_specification/__self_contained_coordinator__/runners.py,sha256=SNn175eBbU8con6vH4u2IJOhcwzQcGfRDimNmEdEyvg,29889
39
- redis_benchmarks_specification/__self_contained_coordinator__/self_contained_coordinator.py,sha256=qTTuhFyXHWvuOPdMpZ9Zj2nOWxtplSy7LuowtJHn2to,79214
37
+ redis_benchmarks_specification/__self_contained_coordinator__/prepopulation.py,sha256=1UeFr2T1ZQBcHCSd4W1ZtaWgXyFPfjLyDi_DgDc1eTA,2957
38
+ redis_benchmarks_specification/__self_contained_coordinator__/runners.py,sha256=noRHn9leTfEm2fa1yHBHQd8TUGhFDoU86QQkHABnWSs,30073
39
+ redis_benchmarks_specification/__self_contained_coordinator__/self_contained_coordinator.py,sha256=hlSBMa-n6byXW7zVxq5nzqEKN34DrPpcgN-NnzGk-_c,79375
40
40
  redis_benchmarks_specification/__setups__/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
41
41
  redis_benchmarks_specification/__setups__/topologies.py,sha256=xQ1IJkcTji_ZjLiJd3vOxZpvbNtBLZw9cPkw5hGJKHU,481
42
42
  redis_benchmarks_specification/__spec__/__init__.py,sha256=l-G1z-t6twUgi8QLueqoTQLvJmv3hJoEYskGm6H7L6M,83
@@ -65,7 +65,7 @@ redis_benchmarks_specification/test-suites/memtier_benchmark-10Mkeys-load-hash-5
65
65
  redis_benchmarks_specification/test-suites/memtier_benchmark-10Mkeys-load-hash-5-fields-with-10B-values-pipeline-10.yml,sha256=GyTnz_5sqeouQA7Y8ycSzxl0f4JRsIRJWSgKz-jlMiM,954
66
66
  redis_benchmarks_specification/test-suites/memtier_benchmark-10Mkeys-load-hash-5-fields-with-10B-values.yml,sha256=Ooy_KFYr3DfXgp5USwtgdijuNYTr3FcmpATQd50hZ94,920
67
67
  redis_benchmarks_specification/test-suites/memtier_benchmark-10Mkeys-string-get-10B-pipeline-100-nokeyprefix.yml,sha256=r2TcEUPqry9UTtRgB5Oevfh6uPJunM52IDLCTCNwD6M,1268
68
- redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-100B-expire-use-case.yml,sha256=l_ez1Ub--e-Of0CEQVahzBNbMx1F1B_okdZOX0DmN_8,1527
68
+ redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-100B-expire-use-case.yml,sha256=yBLz-z7-Od1WEDWJayOJfQFjOuu9zW0DfvJN6pEVrzI,1518
69
69
  redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-10B-expire-use-case.yml,sha256=Irv8nNBibf61o3jRwy0dvfNBLD1o0HggLIG6HX7nWb4,1536
70
70
  redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-10B-psetex-expire-use-case.yml,sha256=6EaLGAP2b46g-ePaYti_5MpyiE9EtfF9kQ3bFCPuVCI,1311
71
71
  redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-10B-setex-expire-use-case.yml,sha256=0ALkUtwNKiKyHTndVQxm4UMVD_ZF-MRR-I7tKtE2LuA,1308
@@ -272,12 +272,12 @@ redis_benchmarks_specification/test-suites/memtier_benchmark-nokeys-pubsub-mixed
272
272
  redis_benchmarks_specification/test-suites/memtier_benchmark-nokeys-pubsub-publish-1K-channels-10B-no-subscribers.yml,sha256=zwb27Jmg0mwcthbmdUe0KuzqRzAPs7OHcK2gc9-5VBE,779
273
273
  redis_benchmarks_specification/test-suites/memtier_benchmark-nokeys-server-time-pipeline-10.yml,sha256=7G_J8kUFay7jXhZvsZK5jvVHSLZvhMV0uuDMkZBbeSQ,675
274
274
  redis_benchmarks_specification/test-suites/memtier_benchmark-playbook-session-caching-hash-100k-sessions.yml,sha256=ASQVpVvqwIRFmQYVI8xRf-mvg9nZYYc7ps6259Jb7gk,3600
275
- redis_benchmarks_specification/test-suites/memtier_benchmark-playbook-session-storage-100k-sessions.yml,sha256=FNy157KK1Vmru9xervxuu_A9qOqzwrq9iRLUVJRWiRs,6950
276
- redis_benchmarks_specification/test-suites/memtier_benchmark-playbook-session-storage-1k-sessions.yml,sha256=W6HnNaVhm6qcoEuwkT1Bv_o9hV0r55W58NLKwtlsjhM,6944
275
+ redis_benchmarks_specification/test-suites/memtier_benchmark-playbook-session-storage-100k-sessions.yml,sha256=DWSk7dUhiO_Ej1KrTZ9Fb7hCxCbrYbzwCZizKMH-wLA,6966
276
+ redis_benchmarks_specification/test-suites/memtier_benchmark-playbook-session-storage-1k-sessions.yml,sha256=4tXqjwQqtKgEvS1AUUadsMaGhCbrQctsLTSuEvFWAOw,6960
277
277
  redis_benchmarks_specification/test-suites/template.txt,sha256=d_edIE7Sxa5X7I2yG-Io0bPdbDIHR0oWFoCA3XUt_EU,435
278
278
  redis_benchmarks_specification/vector-search-test-suites/vector_db_benchmark_test.yml,sha256=PD7ow-k4Ll2BkhEC3aIqiaCZt8Hc4aJIp96Lw3J3mcI,791
279
- redis_benchmarks_specification-0.1.309.dist-info/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
280
- redis_benchmarks_specification-0.1.309.dist-info/METADATA,sha256=jG0aNx6k533WMnqIbJiG_j4ngC6ihfy_yvI7ChDeXnw,22726
281
- redis_benchmarks_specification-0.1.309.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
282
- redis_benchmarks_specification-0.1.309.dist-info/entry_points.txt,sha256=x5WBXCZsnDRTZxV7SBGmC65L2k-ygdDOxV8vuKN00Nk,715
283
- redis_benchmarks_specification-0.1.309.dist-info/RECORD,,
279
+ redis_benchmarks_specification-0.1.310.dist-info/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
280
+ redis_benchmarks_specification-0.1.310.dist-info/METADATA,sha256=7IHCSKtWePX1gUfZdxBk_zzvLf873jx2Gxu7d9lrekY,22777
281
+ redis_benchmarks_specification-0.1.310.dist-info/WHEEL,sha256=b4K_helf-jlQoXBBETfwnf4B04YC67LOev0jo4fX5m8,88
282
+ redis_benchmarks_specification-0.1.310.dist-info/entry_points.txt,sha256=x5WBXCZsnDRTZxV7SBGmC65L2k-ygdDOxV8vuKN00Nk,715
283
+ redis_benchmarks_specification-0.1.310.dist-info/RECORD,,
@@ -1,4 +1,4 @@
1
1
  Wheel-Version: 1.0
2
- Generator: poetry-core 1.9.0
2
+ Generator: poetry-core 2.1.3
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any