glitchlings 0.4.3__cp312-cp312-win_amd64.whl → 0.4.5__cp312-cp312-win_amd64.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 glitchlings might be problematic. Click here for more details.

Files changed (39) hide show
  1. glitchlings/__init__.py +4 -0
  2. glitchlings/_zoo_rust.cp312-win_amd64.pyd +0 -0
  3. glitchlings/compat.py +2 -4
  4. glitchlings/config.py +2 -4
  5. glitchlings/data/__init__.py +1 -0
  6. glitchlings/data/hokey_assets.json +193 -0
  7. glitchlings/dlc/_shared.py +86 -1
  8. glitchlings/dlc/huggingface.py +6 -6
  9. glitchlings/dlc/prime.py +1 -1
  10. glitchlings/dlc/pytorch.py +9 -59
  11. glitchlings/dlc/pytorch_lightning.py +10 -34
  12. glitchlings/lexicon/__init__.py +5 -1
  13. glitchlings/lexicon/_cache.py +3 -5
  14. glitchlings/lexicon/vector.py +6 -5
  15. glitchlings/lexicon/wordnet.py +4 -8
  16. glitchlings/util/hokey_generator.py +144 -0
  17. glitchlings/util/stretch_locator.py +140 -0
  18. glitchlings/util/stretchability.py +375 -0
  19. glitchlings/zoo/__init__.py +5 -1
  20. glitchlings/zoo/_rate.py +114 -1
  21. glitchlings/zoo/_rust_extensions.py +143 -0
  22. glitchlings/zoo/adjax.py +3 -4
  23. glitchlings/zoo/apostrofae.py +3 -4
  24. glitchlings/zoo/core.py +21 -9
  25. glitchlings/zoo/hokey.py +173 -0
  26. glitchlings/zoo/jargoyle.py +6 -2
  27. glitchlings/zoo/redactyl.py +4 -5
  28. glitchlings/zoo/reduple.py +3 -4
  29. glitchlings/zoo/rushmore.py +3 -4
  30. glitchlings/zoo/scannequin.py +3 -4
  31. glitchlings/zoo/typogre.py +3 -4
  32. glitchlings/zoo/zeedub.py +3 -4
  33. {glitchlings-0.4.3.dist-info → glitchlings-0.4.5.dist-info}/METADATA +32 -8
  34. glitchlings-0.4.5.dist-info/RECORD +53 -0
  35. glitchlings-0.4.3.dist-info/RECORD +0 -46
  36. {glitchlings-0.4.3.dist-info → glitchlings-0.4.5.dist-info}/WHEEL +0 -0
  37. {glitchlings-0.4.3.dist-info → glitchlings-0.4.5.dist-info}/entry_points.txt +0 -0
  38. {glitchlings-0.4.3.dist-info → glitchlings-0.4.5.dist-info}/licenses/LICENSE +0 -0
  39. {glitchlings-0.4.3.dist-info → glitchlings-0.4.5.dist-info}/top_level.txt +0 -0
glitchlings/zoo/zeedub.py CHANGED
@@ -6,12 +6,11 @@ from collections.abc import Sequence
6
6
  from typing import Any, cast
7
7
 
8
8
  from ._rate import resolve_rate
9
+ from ._rust_extensions import get_rust_operation
9
10
  from .core import AttackOrder, AttackWave, Glitchling
10
11
 
11
- try:
12
- from glitchlings._zoo_rust import inject_zero_widths as _inject_zero_widths_rust
13
- except ImportError: # pragma: no cover - compiled extension not present
14
- _inject_zero_widths_rust = None
12
+ # Load Rust-accelerated operation if available
13
+ _inject_zero_widths_rust = get_rust_operation("inject_zero_widths")
15
14
 
16
15
  _DEFAULT_ZERO_WIDTH_CHARACTERS: tuple[str, ...] = (
17
16
  "\u200b", # ZERO WIDTH SPACE
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: glitchlings
3
- Version: 0.4.3
3
+ Version: 0.4.5
4
4
  Summary: Monsters for your language games.
5
5
  Author: osoleve
6
6
  License: Apache License
@@ -217,6 +217,7 @@ Classifier: Programming Language :: Python :: 3
217
217
  Classifier: Programming Language :: Python :: 3.10
218
218
  Classifier: Programming Language :: Python :: 3.11
219
219
  Classifier: Programming Language :: Python :: 3.12
220
+ Classifier: Programming Language :: Python :: 3.13
220
221
  Classifier: Programming Language :: Rust
221
222
  Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
222
223
  Classifier: Topic :: Software Development :: Testing
@@ -237,9 +238,10 @@ Requires-Dist: mkdocs-material>=9.5.0; extra == "all"
237
238
  Requires-Dist: mkdocstrings[python]>=0.24.0; extra == "all"
238
239
  Requires-Dist: mkdocstrings-python>=1.10.0; extra == "all"
239
240
  Requires-Dist: mypy>=1.8.0; extra == "all"
240
- Requires-Dist: numpy<=2.0,>=1.24; extra == "all"
241
+ Requires-Dist: numpy<3.0,>=1.24; extra == "all"
241
242
  Requires-Dist: pre-commit>=3.8.0; extra == "all"
242
243
  Requires-Dist: pytest>=8.0.0; extra == "all"
244
+ Requires-Dist: pytest-cov>=4.1.0; extra == "all"
243
245
  Requires-Dist: ruff>=0.6.0; extra == "all"
244
246
  Requires-Dist: verifiers>=0.1.3.post0; extra == "all"
245
247
  Provides-Extra: hf
@@ -247,7 +249,7 @@ Requires-Dist: datasets>=4.0.0; extra == "hf"
247
249
  Provides-Extra: lightning
248
250
  Requires-Dist: pytorch_lightning>=2.0.0; extra == "lightning"
249
251
  Provides-Extra: vectors
250
- Requires-Dist: numpy<=2.0,>=1.24; extra == "vectors"
252
+ Requires-Dist: numpy<3.0,>=1.24; extra == "vectors"
251
253
  Requires-Dist: spacy>=3.7.2; extra == "vectors"
252
254
  Requires-Dist: gensim>=4.3.2; extra == "vectors"
253
255
  Provides-Extra: st
@@ -259,8 +261,9 @@ Provides-Extra: torch
259
261
  Requires-Dist: torch>=2.0.0; extra == "torch"
260
262
  Provides-Extra: dev
261
263
  Requires-Dist: pytest>=8.0.0; extra == "dev"
264
+ Requires-Dist: pytest-cov>=4.1.0; extra == "dev"
262
265
  Requires-Dist: hypothesis>=6.140.0; extra == "dev"
263
- Requires-Dist: numpy<=2.0,>=1.24; extra == "dev"
266
+ Requires-Dist: numpy<3.0,>=1.24; extra == "dev"
264
267
  Requires-Dist: mkdocs>=1.6.0; extra == "dev"
265
268
  Requires-Dist: mkdocstrings[python]>=0.24.0; extra == "dev"
266
269
  Requires-Dist: mkdocs-material>=9.5.0; extra == "dev"
@@ -291,6 +294,12 @@ Dynamic: license-file
291
294
  Every language game breeds monsters.
292
295
  ```
293
296
 
297
+ [![PyPI version](https://img.shields.io/pypi/v/glitchlings.svg)](https://pypi.org/project/glitchlings/)
298
+ [![PyPI Status](https://github.com/osoleve/glitchlings/actions/workflows/publish.yml/badge.svg)](https://github.com/osoleve/glitchlings/actions/workflows/publish.yml)
299
+ [![Lint and Type](https://github.com/osoleve/glitchlings/actions/workflows/ci.yml/badge.svg)](https://github.com/osoleve/glitchlings/actions/workflows/ci.yml)
300
+ [![Website status](https://img.shields.io/website-up-down-green-red/https/osoleve.github.io/glitchlings)](https://osoleve.github.io/glitchlings/)
301
+ [![License](https://img.shields.io/github/license/osoleve/glitchlings.svg)](https://github.com/osoleve/glitchlings/blob/main/LICENSE)
302
+
294
303
  `Glitchlings` are **utilities for corrupting the text inputs to your language models in deterministic, _linguistically principled_** ways.
295
304
  Each embodies a different way that documents can be compromised in the wild.
296
305
 
@@ -379,6 +388,7 @@ glitchlings --list
379
388
  ```text
380
389
  Typogre — scope: Character, order: early
381
390
  Apostrofae — scope: Character, order: normal
391
+ Hokey — scope: Character, order: first
382
392
  Mim1c — scope: Character, order: last
383
393
  Jargoyle — scope: Word, order: normal
384
394
  Adjax — scope: Word, order: normal
@@ -426,10 +436,6 @@ options:
426
436
  ```
427
437
  <!-- END: CLI_USAGE -->
428
438
 
429
- Run `python docs/build_cli_reference.py` whenever you tweak the CLI so the README stays in sync with the actual output. The script executes the commands above and replaces the block between the markers automatically.
430
-
431
- Prefer inline tweaks? You can still configure glitchlings directly in the shell:
432
-
433
439
  ```bash
434
440
  # Run Typogre against the contents of a file and inspect the diff.
435
441
  glitchlings -g typogre --file documents/report.txt --diff
@@ -504,6 +510,22 @@ _Wait, was that...?_
504
510
  > - `banned_characters (Collection[str])`: Characters that must never appear as replacements (default: none).
505
511
  > - `seed (int)`: The random seed for reproducibility (default: 151).
506
512
 
513
+ ### Hokey
514
+
515
+ _She's soooooo coooool!_
516
+
517
+ > _**Passionista.**_ Hokey sometimes gets a little excited and elongates words for emphasis.
518
+ >
519
+ > Args
520
+ >
521
+ > - `rate (float)`: Share of high-scoring tokens to stretch (default: 0.3).
522
+ > - `extension_min` / `extension_max (int)`: Bounds for extra repetitions (defaults: 2 / 5).
523
+ > - `word_length_threshold (int)`: Preferred maximum alphabetic length; longer words are damped instead of excluded (default: 6).
524
+ > - `base_p (float)`: Base probability for the heavy-tailed sampler (default: 0.45).
525
+ > - `seed (int)`: The random seed for reproducibility (default: 151).
526
+
527
+ _Apocryphal Glitchling contributed by Chloé Nunes_
528
+
507
529
  ### Scannequin
508
530
 
509
531
  _How can a computer need reading glasses?_
@@ -536,7 +558,9 @@ _Uh oh. The worst person you know just bought a thesaurus._
536
558
  > Args
537
559
  >
538
560
  > - `rate (float)`: The maximum proportion of words to replace (default: 0.01, 1%).
561
+ >
539
562
  - `part_of_speech`: The WordNet-style part(s) of speech to target (default: nouns). Accepts `wn.NOUN`, `wn.VERB`, `wn.ADJ`, `wn.ADV`, any iterable of those tags, or the string `"any"` to include them all. Vector/graph backends ignore this filter while still honouring deterministic sampling.
563
+ >
540
564
  > - `seed (int)`: The random seed for reproducibility (default: 151).
541
565
 
542
566
  ### Reduple
@@ -0,0 +1,53 @@
1
+ glitchlings/__init__.py,sha256=pNL6Vx6ggpRq-vW0CXJjnWOe_LktP6Zz9xNhqDHj3Dw,1301
2
+ glitchlings/__main__.py,sha256=nB7btO_T4wBFOcyawfWpjEindVrUfTqqV5hdeeS1HT8,128
3
+ glitchlings/_zoo_rust.cp312-win_amd64.pyd,sha256=n6JIWy90SisD2DU1q3nl7Prb5n4Kafqqf3nYEGA0ivQ,2350080
4
+ glitchlings/compat.py,sha256=j4lkWNtyox5sen5j7u0SHfnk8QUn-yicaqvuLlZp1-s,9174
5
+ glitchlings/config.py,sha256=rBBHRmkIyoWRPcUFrsxmSm08qxZ07wDAuO5AAF6sjAk,13323
6
+ glitchlings/config.toml,sha256=OywXmEpuOPtyJRbcRt4cwQkHiZ__5axEHoCaX9ye-uA,102
7
+ glitchlings/main.py,sha256=eCUEFsu8-NLDz1xyKNDIucVm975HNQZJYm6YCv8RIyg,10987
8
+ glitchlings/data/__init__.py,sha256=kIT4a2EDNo_R-iL8kVisJ8PxR_BrygNYegfG_Ua6DcE,69
9
+ glitchlings/data/hokey_assets.json,sha256=1GaSEzXwtT1nvf0B9mFyLzHOcqzKbPreibsC6iBWAHA,3083
10
+ glitchlings/dlc/__init__.py,sha256=iFDTwkaWl2C0_QUYykIXfmOUzy__oURX_BiJhexf-8o,312
11
+ glitchlings/dlc/_shared.py,sha256=q1xMclEsbR0KIEn9chwZXRubMnIvU-uIc_0PxCFpmqE,4560
12
+ glitchlings/dlc/huggingface.py,sha256=6wD4Vu2jp1d8GYSUiAvOAXqCO9w4HBxCOSfbJM8Ylzw,2657
13
+ glitchlings/dlc/prime.py,sha256=8-Ix8bjKyDKDMyXHDESE-gFDwC6blAP3mPXm1YiP3_U,8861
14
+ glitchlings/dlc/pytorch.py,sha256=xR-uoeo8f6g-aM2CmQ1cfHKfqn12uwRA9eCebEO5wXA,6399
15
+ glitchlings/dlc/pytorch_lightning.py,sha256=EQq7SMlvNoyBLYVW2Vi19H5k8VUqoAiNx8IqkDWqy5I,8214
16
+ glitchlings/lexicon/__init__.py,sha256=oSLI1bOMfTpqiI7bMp9beeQ7Vp81G5coXxwdmCIQfV0,6199
17
+ glitchlings/lexicon/_cache.py,sha256=MRvomTi2Rx0l9FzHm91VrfRkrHqACjS5LG4a4OOCvLY,4180
18
+ glitchlings/lexicon/metrics.py,sha256=TZAafSKgHpUS4h6vCuhTKGsvu_fru9kMqsXqLID6BTM,4734
19
+ glitchlings/lexicon/vector.py,sha256=1YivmCdb9IFqVNQTJiTztxRoFQi7Fmmg-8qKO7FUKzM,23252
20
+ glitchlings/lexicon/wordnet.py,sha256=Kdj0k1m9GJAdH41zVw0MkEAoLy0-KG0ZyS6hGFq_raY,7804
21
+ glitchlings/lexicon/data/default_vector_cache.json,sha256=bnMV4tHIVOQtK7FDH81yqSLRkeViEzclGKXrrS8fEJ8,1079
22
+ glitchlings/util/__init__.py,sha256=Q5lkncOaM6f2eJK3HAtZyxpCjGnekCpwPloqasS3JDo,4869
23
+ glitchlings/util/adapters.py,sha256=mFhPlE8JaFuO_C-3_aqhgwkqa6isV8Y2ifqVh3Iv9JM,720
24
+ glitchlings/util/hokey_generator.py,sha256=hNWVbscVeKvcqwFtJ1oaWYf2Z0qHSxy0-iMLjht6zuM,4627
25
+ glitchlings/util/stretch_locator.py,sha256=tM4XsQ_asNXQq2Yee8STybFMCC2HbSKCu9I49G0yJ3c,4334
26
+ glitchlings/util/stretchability.py,sha256=ja1PJKVAKySUP5G2T0Q_THwIvydJn49xYFaQn58cQYw,13194
27
+ glitchlings/zoo/__init__.py,sha256=Ab69SD_RUXfiWUEzqU3wteGWobpm2kkbmwndYLEbv_0,5511
28
+ glitchlings/zoo/_ocr_confusions.py,sha256=pPlvJOoan3ouwwGt8hATcO-9luIrGJl0vwUqssUMXD8,1236
29
+ glitchlings/zoo/_rate.py,sha256=KxFDFJEGWsv76v1JcoHXIETj9kGdbbAiUqCPwAcWcDw,3710
30
+ glitchlings/zoo/_rust_extensions.py,sha256=SdU06m-qjf-rRHnqM5OMophx1IacoI4KbyRu2HXrTUc,4354
31
+ glitchlings/zoo/_sampling.py,sha256=AAPLObjqKrmX882TX8hdvPHReBOcv0Z4pUuW6AxuGgU,1640
32
+ glitchlings/zoo/_text_utils.py,sha256=LqCa33E-Qxbk6N5AVfxEmAz6C2u7_mCF0xPT9-404A8,2854
33
+ glitchlings/zoo/adjax.py,sha256=8AqTfcJe50vPVxER5wREuyr4qqsmyKqi-klDW77HVYM,3646
34
+ glitchlings/zoo/apostrofae.py,sha256=WB1zvCc1_YvTD9XdTNtFrK8H9FleaF-UNMCai_E7lqE,3949
35
+ glitchlings/zoo/core.py,sha256=tkJFqGwpVa7qQxkUr9lsHOB8zS3lDCo987R6Nvz375U,21257
36
+ glitchlings/zoo/hokey.py,sha256=h-yjCLqYAZFksIYw4fMniuTWUywFw9GU9yUFs_uECHo,5471
37
+ glitchlings/zoo/jargoyle.py,sha256=kgKw_hsaJaKQjrxzt_CMlgtZApedM6I2-U3d3aeipXs,12014
38
+ glitchlings/zoo/mim1c.py,sha256=GqUMErVAVcqMAZjx4hhJ0Af25CxA0Aorv3U_fTqLZek,3546
39
+ glitchlings/zoo/ocr_confusions.tsv,sha256=S-IJEYCIXYKT1Uu7Id8Lnvg5pw528yNigTtWUdnMv9k,213
40
+ glitchlings/zoo/redactyl.py,sha256=xSdt-Az3HI8XLC-uV8hK6JIoNa1nL-cTCFCoShFvKt0,5752
41
+ glitchlings/zoo/reduple.py,sha256=YfdKZPr2TO2ZK7h8K5xlsnoubEZ3kQLRpDX65GzrKls,4372
42
+ glitchlings/zoo/rushmore.py,sha256=JjLKTKQoXlvp0uvCzMRlJSXE_N2VFZPHMF_nkolKm3g,4439
43
+ glitchlings/zoo/scannequin.py,sha256=-YG6tRTE72MGw4CpWAPo42gFaCTpyDvOJnk0gynitCg,5041
44
+ glitchlings/zoo/typogre.py,sha256=X6jcnCYifNtoSwe2ig7YS3QrODyrACirMZ9pjN5LLBA,6917
45
+ glitchlings/zoo/zeedub.py,sha256=KApSCSiTr3b412vsA8UHWFhYQDxe_jg0308wWK-GNtM,5025
46
+ glitchlings/zoo/assets/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
47
+ glitchlings/zoo/assets/apostrofae_pairs.json,sha256=lPLFLndzn_f7_5wZizxsLMnwBY4O63zsCvDjyJ56MLA,553
48
+ glitchlings-0.4.5.dist-info/licenses/LICENSE,sha256=EFEP1evBfHaxsMTBjxm0sZVRp2wct8QLvHE1saII5FI,11538
49
+ glitchlings-0.4.5.dist-info/METADATA,sha256=sULt2kvkK1lfhdqBbSvawNoRNyevwLsFrITBPMBrE9M,34146
50
+ glitchlings-0.4.5.dist-info/WHEEL,sha256=8UP9x9puWI0P1V_d7K2oMTBqfeLNm21CTzZ_Ptr0NXU,101
51
+ glitchlings-0.4.5.dist-info/entry_points.txt,sha256=kGOwuAsjFDLtztLisaXtOouq9wFVMOJg5FzaAkg-Hto,54
52
+ glitchlings-0.4.5.dist-info/top_level.txt,sha256=VHFNBrLjtDwPCYXbGKi6o17Eueedi81eNbR3hBOoST0,12
53
+ glitchlings-0.4.5.dist-info/RECORD,,
@@ -1,46 +0,0 @@
1
- glitchlings/__init__.py,sha256=jyfvslkaFlYVefDFq0CQKkc52F8p8I1UrbFbcyihFCU,1249
2
- glitchlings/__main__.py,sha256=nB7btO_T4wBFOcyawfWpjEindVrUfTqqV5hdeeS1HT8,128
3
- glitchlings/_zoo_rust.cp312-win_amd64.pyd,sha256=pLx_CNCEqSUru7tMbOXImtyEds8deMJ86O5U44Tnydw,2206208
4
- glitchlings/compat.py,sha256=xM5fT5RELgIdQTmgKQFZaPZJJpOg0noC-gLDcO390Ro,9192
5
- glitchlings/config.py,sha256=pKpM5onr9UG8sHKVIZKj2Ti2gD5bZ6N1wyxOhzgrviQ,13341
6
- glitchlings/config.toml,sha256=OywXmEpuOPtyJRbcRt4cwQkHiZ__5axEHoCaX9ye-uA,102
7
- glitchlings/main.py,sha256=eCUEFsu8-NLDz1xyKNDIucVm975HNQZJYm6YCv8RIyg,10987
8
- glitchlings/dlc/__init__.py,sha256=iFDTwkaWl2C0_QUYykIXfmOUzy__oURX_BiJhexf-8o,312
9
- glitchlings/dlc/_shared.py,sha256=i66HyJJiHpR0mug7zmfmxB17Vs3CSqBTsk5CuVaLDk0,2040
10
- glitchlings/dlc/huggingface.py,sha256=Ym8dTArb-43AnCyukOO1m66iAbs8al9YkIWB3rGdhTk,2657
11
- glitchlings/dlc/prime.py,sha256=KY3so8WOwksbsKhZXfWorsZSYvIdPiUtc8e9apHabkM,8861
12
- glitchlings/dlc/pytorch.py,sha256=oQxdRWcPqMhfwjLtzoKjcO9gk-GhOajoUW5o6r1s3eU,8039
13
- glitchlings/dlc/pytorch_lightning.py,sha256=ZpqCPisplrBGpZQ2nLKvLtcVYpD1WwwW8d35ZpP8YW8,8786
14
- glitchlings/lexicon/__init__.py,sha256=2DIrssOImSA9Ms7fJRgn-qhBhPQN_E05CuGppyFklzM,6139
15
- glitchlings/lexicon/_cache.py,sha256=KWqJ__WrM2ccIlplaaqoVT0ns65uU5WHewlJd4BvnJE,4196
16
- glitchlings/lexicon/metrics.py,sha256=TZAafSKgHpUS4h6vCuhTKGsvu_fru9kMqsXqLID6BTM,4734
17
- glitchlings/lexicon/vector.py,sha256=x9iT1O8Osolwt08g41V_70WHZt_b4OGzHBU72YHkmwg,23181
18
- glitchlings/lexicon/wordnet.py,sha256=fJi5SNa-sLpQiTIoXorkYzc2ZArejIms6zhoe8TPIOg,7840
19
- glitchlings/lexicon/data/default_vector_cache.json,sha256=bnMV4tHIVOQtK7FDH81yqSLRkeViEzclGKXrrS8fEJ8,1079
20
- glitchlings/util/__init__.py,sha256=Q5lkncOaM6f2eJK3HAtZyxpCjGnekCpwPloqasS3JDo,4869
21
- glitchlings/util/adapters.py,sha256=mFhPlE8JaFuO_C-3_aqhgwkqa6isV8Y2ifqVh3Iv9JM,720
22
- glitchlings/zoo/__init__.py,sha256=j21naQtFunJYgdgYsyTNYUSa7sl88yNQWaGP8sWyw5U,5411
23
- glitchlings/zoo/_ocr_confusions.py,sha256=pPlvJOoan3ouwwGt8hATcO-9luIrGJl0vwUqssUMXD8,1236
24
- glitchlings/zoo/_rate.py,sha256=o7B9_EfadjshSGLH0B5BHgj1J0OJWVCSXkEE8hljmxc,522
25
- glitchlings/zoo/_sampling.py,sha256=AAPLObjqKrmX882TX8hdvPHReBOcv0Z4pUuW6AxuGgU,1640
26
- glitchlings/zoo/_text_utils.py,sha256=LqCa33E-Qxbk6N5AVfxEmAz6C2u7_mCF0xPT9-404A8,2854
27
- glitchlings/zoo/adjax.py,sha256=R2GSRNZ9tt5uB0YZwZCeMdv2Zu1aZZ_IIEvphNK7W1A,3674
28
- glitchlings/zoo/apostrofae.py,sha256=z6vjp4dUdYrJptSruOGxSvN-ruKCZvvpDzXNI2sbT1M,4050
29
- glitchlings/zoo/core.py,sha256=cMAc8LxZBZMnFixRfJGbDaqe_vRHvQORxxn9D0nYj_g,21063
30
- glitchlings/zoo/jargoyle.py,sha256=SXp-KEbyqLzfKfVAGoXfj1vKbG5qHYmBFs9Q7Ic8JHA,11899
31
- glitchlings/zoo/mim1c.py,sha256=GqUMErVAVcqMAZjx4hhJ0Af25CxA0Aorv3U_fTqLZek,3546
32
- glitchlings/zoo/ocr_confusions.tsv,sha256=S-IJEYCIXYKT1Uu7Id8Lnvg5pw528yNigTtWUdnMv9k,213
33
- glitchlings/zoo/redactyl.py,sha256=WlWLK1yz9F0572dlvwI72wLrarwiPBD5_pUe2qf6oKY,5710
34
- glitchlings/zoo/reduple.py,sha256=HIE9T2lXS9Ki-O2dzo9UVAs58uzC6ES_qkj25S0r2zE,4407
35
- glitchlings/zoo/rushmore.py,sha256=tdAr-Vlrn02dQkQL_rAENv56FltSEW1tutGluMrY98g,4476
36
- glitchlings/zoo/scannequin.py,sha256=OsUfyHX_dO0T20Md5vePLzr-hL8TYKEOwCGx0r5e6g4,5072
37
- glitchlings/zoo/typogre.py,sha256=zQPUgdP9xwXiRTzkYvW1SCURHpt4uM5-WIly_SCDcPs,6944
38
- glitchlings/zoo/zeedub.py,sha256=UxIX5oqtalXgTxKidK12GNOLyXmcMfMJyFMnDSRsGAI,5061
39
- glitchlings/zoo/assets/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
40
- glitchlings/zoo/assets/apostrofae_pairs.json,sha256=lPLFLndzn_f7_5wZizxsLMnwBY4O63zsCvDjyJ56MLA,553
41
- glitchlings-0.4.3.dist-info/licenses/LICENSE,sha256=EFEP1evBfHaxsMTBjxm0sZVRp2wct8QLvHE1saII5FI,11538
42
- glitchlings-0.4.3.dist-info/METADATA,sha256=Yga6x_fBjSasVQJTQGdN7oB8sJWaX-MTpmlZ8luFomE,32866
43
- glitchlings-0.4.3.dist-info/WHEEL,sha256=8UP9x9puWI0P1V_d7K2oMTBqfeLNm21CTzZ_Ptr0NXU,101
44
- glitchlings-0.4.3.dist-info/entry_points.txt,sha256=kGOwuAsjFDLtztLisaXtOouq9wFVMOJg5FzaAkg-Hto,54
45
- glitchlings-0.4.3.dist-info/top_level.txt,sha256=VHFNBrLjtDwPCYXbGKi6o17Eueedi81eNbR3hBOoST0,12
46
- glitchlings-0.4.3.dist-info/RECORD,,