Mirrored from GitHub github.com/roostorg/osprey
0

Configure Feed

Select the types of activity you want to include in your feed.

[Package] replace unidecode with ISC anyascii (#442)

author
Juan Mrad
committer
GitHub
date (Jul 22, 2026, 12:31 PM -0500) commit 92cdda5a parent 68447c38
+47 -28
+1 -2
.github/workflows/license-check-python.yml
··· 47 47 # First-party packages (no license metadata needed): 48 48 # osprey-rpc, osprey-worker, example_plugins, example_atproto_plugins 49 49 # Packages pending license policy review: 50 - # unidecode: GPL v2+ (#354) 51 50 # tld: GPL v2 / LGPL / MPL 1.1 (#355) 52 51 # psycopg2-binary: LGPL (#357) 53 52 # simplejson: Academic Free License + MIT (#358) ··· 57 56 google-crc32c \ 58 57 ddtrace \ 59 58 osprey-rpc osprey-worker example_plugins example_atproto_plugins \ 60 - unidecode tld psycopg2-binary simplejson text-unidecode 59 + tld psycopg2-binary simplejson text-unidecode
+2 -2
osprey_worker/src/osprey/engine/stdlib/udfs/string.py
··· 8 8 from typing import Literal, Set, cast 9 9 from urllib.parse import ParseResult, urlparse, urlunparse 10 10 11 + from anyascii import anyascii 11 12 from osprey.engine.stdlib.udfs._prelude import ( 12 13 ArgumentsBase, 13 14 ConstExpr, ··· 15 16 UDFBase, 16 17 ValidationContext, 17 18 ) 18 - from unidecode import unidecode 19 19 20 20 from .categories import UdfCategories 21 21 ··· 396 396 s = new_s 397 397 398 398 if arguments.unidecode: 399 - s = unidecode(s) 399 + s = anyascii(s) 400 400 401 401 if arguments.upper and not arguments.lower: 402 402 s = s.upper()
+20
osprey_worker/src/osprey/engine/stdlib/udfs/tests/test_strings.py
··· 272 272 273 273 274 274 @pytest.mark.parametrize( 275 + 's,expected', 276 + [ 277 + ('Κνωσός', 'Knwsos'), # Greek -> Latin transliteration (ω -> w per Greek romanization) 278 + ('René', 'Rene'), # accented Latin 279 + ('日本語', 'RiBenYu'), # CJK characters (anyascii does not insert spaces between characters) 280 + ('Москва', 'Moskva'), # Cyrillic 281 + ('hello', 'hello'), # pure ASCII passes through unchanged 282 + ('café', 'cafe'), # common accented word 283 + ], 284 + ) 285 + def test_string_clean_unidecode(s: str, expected: str, execute: ExecuteFunction) -> None: 286 + data = execute( 287 + f""" 288 + S = StringClean(s="{s}", unidecode=True) 289 + """ 290 + ) 291 + assert data['S'] == expected 292 + 293 + 294 + @pytest.mark.parametrize( 275 295 'text,expected_result', 276 296 [ 277 297 (f'https://{QUICK_BROWN_FOX_DOMAIN_1}', [QUICK_BROWN_FOX_DOMAIN_1]), # simple domain
+1 -1
pyproject.toml
··· 72 72 "traitlets==5.14.3", 73 73 "typing-extensions==4.12.2", 74 74 "typing-inspect==0.9.0", 75 - "unidecode==1.3.8", 75 + "anyascii==0.3.3", 76 76 "werkzeug==1.0.1", 77 77 # --- Type stubs (used by mypy, not imported directly) --- 78 78 "types-cachetools==6.1.0.20250717",
+23 -23
uv.lock
··· 26 26 27 27 [manifest.dependency-groups] 28 28 common = [ 29 + { name = "anyascii", specifier = "==0.3.3" }, 29 30 { name = "blinker", specifier = "==1.9.0" }, 30 31 { name = "click", specifier = "==7.1.2" }, 31 32 { name = "datadog", specifier = "==0.51.0" }, ··· 109 110 { name = "types-werkzeug", specifier = "==1.0.9" }, 110 111 { name = "typing-extensions", specifier = "==4.12.2" }, 111 112 { name = "typing-inspect", specifier = "==0.9.0" }, 112 - { name = "unidecode", specifier = "==1.3.8" }, 113 113 { name = "werkzeug", specifier = "==1.0.1" }, 114 114 ] 115 115 dev = [ ··· 150 150 sdist = { url = "https://files.pythonhosted.org/packages/9b/22/a2d928e0e42baad0471d12ec44c71152ac870486e8298dddb2893b888c29/aiodns-4.0.4.tar.gz", hash = "sha256:cb10e0c0d2591636716ad2fe402e977c16d71bdaf76bb8cb49e8a6633596f736", size = 29918, upload-time = "2026-05-20T01:54:15.557Z" } 151 151 wheels = [ 152 152 { url = "https://files.pythonhosted.org/packages/7f/70/72e4ab117425ccdc4d10bd523a94c1baa051a15586057d64a4c6888f9e3f/aiodns-4.0.4-py3-none-any.whl", hash = "sha256:c24dd605bac70a1676ce503f967a98483ff163507198557d8e9db16267e6cfd2", size = 12696, upload-time = "2026-05-20T01:54:14.134Z" }, 153 + ] 154 + 155 + [[package]] 156 + name = "anyascii" 157 + version = "0.3.3" 158 + source = { registry = "https://pypi.org/simple" } 159 + sdist = { url = "https://files.pythonhosted.org/packages/db/ba/edebda727008390936da4a9bf677c19cd63b32d51e864656d2cbd1028e25/anyascii-0.3.3.tar.gz", hash = "sha256:c94e9dd9d47b3d9494eca305fef9447d00b4bf1a32aff85aa746fa3ec7fb95c3", size = 264680, upload-time = "2025-06-29T03:33:30.427Z" } 160 + wheels = [ 161 + { url = "https://files.pythonhosted.org/packages/c2/76/783b75a21ce3563b8709050de030ae253853b147bd52e141edc1025aa268/anyascii-0.3.3-py3-none-any.whl", hash = "sha256:f5ab5e53c8781a36b5a40e1296a0eeda2f48c649ef10c3921c1381b1d00dee7a", size = 345090, upload-time = "2025-06-29T03:33:28.356Z" }, 153 162 ] 154 163 155 164 [[package]] ··· 882 891 "python_full_version < '3.12' and platform_machine == 'x86_64'", 883 892 ] 884 893 dependencies = [ 885 - { name = "six", marker = "platform_machine == 'x86_64'" }, 894 + { name = "six" }, 886 895 ] 887 896 sdist = { url = "https://files.pythonhosted.org/packages/a3/1c/c42834d4fee45c5cf2d9546e97e879a1cbcdecfd16eb1a12144dcb91edae/grpcio-1.49.1.tar.gz", hash = "sha256:d4725fc9ec8e8822906ae26bb26f5546891aa7fbc3443de970cc556d43a5c99f", size = 22059239, upload-time = "2022-09-22T03:02:44.376Z" } 888 897 wheels = [ ··· 956 965 "python_full_version < '3.12' and platform_machine == 'x86_64'", 957 966 ] 958 967 dependencies = [ 959 - { name = "googleapis-common-protos", marker = "platform_machine == 'x86_64'" }, 960 - { name = "grpcio", version = "1.49.1", source = { registry = "https://pypi.org/simple" }, marker = "platform_machine == 'x86_64'" }, 961 - { name = "protobuf", marker = "platform_machine == 'x86_64'" }, 968 + { name = "googleapis-common-protos" }, 969 + { name = "grpcio", version = "1.49.1", source = { registry = "https://pypi.org/simple" } }, 970 + { name = "protobuf" }, 962 971 ] 963 972 sdist = { url = "https://files.pythonhosted.org/packages/19/99/7cd6af0c6da3084fa39818af3e3de1f4ca21127004e87f39a2affe290521/grpcio-status-1.49.1.tar.gz", hash = "sha256:658f48dc146ee0c7b6eebd302d74e0d45c00727c20035ff51d68750dbaccf5d9", size = 13505, upload-time = "2022-09-22T03:02:56.074Z" } 964 973 wheels = [ ··· 977 986 "python_full_version < '3.12' and platform_machine != 'x86_64'", 978 987 ] 979 988 dependencies = [ 980 - { name = "googleapis-common-protos", marker = "platform_machine != 'x86_64'" }, 981 - { name = "grpcio", version = "1.53.2", source = { registry = "https://pypi.org/simple" }, marker = "platform_machine != 'x86_64'" }, 982 - { name = "protobuf", marker = "platform_machine != 'x86_64'" }, 989 + { name = "googleapis-common-protos" }, 990 + { name = "grpcio", version = "1.53.2", source = { registry = "https://pypi.org/simple" } }, 991 + { name = "protobuf" }, 983 992 ] 984 993 sdist = { url = "https://files.pythonhosted.org/packages/45/6c/ed089e2b0d9215a1405de8790b2d6593780690d2732e0c208da27dfd86c4/grpcio-status-1.53.2.tar.gz", hash = "sha256:9a0823b99218424f012f59f6e9d17e8f569a67f0ca47cbca27dbf3bdf72c2248", size = 13505, upload-time = "2023-08-02T16:55:34.192Z" } 985 994 wheels = [ ··· 998 1007 "python_full_version < '3.12' and platform_machine == 'x86_64'", 999 1008 ] 1000 1009 dependencies = [ 1001 - { name = "grpcio", version = "1.49.1", source = { registry = "https://pypi.org/simple" }, marker = "platform_machine == 'x86_64'" }, 1002 - { name = "protobuf", marker = "platform_machine == 'x86_64'" }, 1003 - { name = "setuptools", marker = "platform_machine == 'x86_64'" }, 1010 + { name = "grpcio", version = "1.49.1", source = { registry = "https://pypi.org/simple" } }, 1011 + { name = "protobuf" }, 1012 + { name = "setuptools" }, 1004 1013 ] 1005 1014 sdist = { url = "https://files.pythonhosted.org/packages/6c/e4/3416d25aebc4477141a491fae2c9494c5e0437a706c59103a936aac7d072/grpcio-tools-1.49.1.tar.gz", hash = "sha256:84cc64e5b46bad43d5d7bd2fd772b656eba0366961187a847e908e2cb735db91", size = 2252679, upload-time = "2022-09-22T03:03:00.279Z" } 1006 1015 wheels = [ ··· 1022 1031 "python_full_version < '3.12' and platform_machine != 'x86_64'", 1023 1032 ] 1024 1033 dependencies = [ 1025 - { name = "grpcio", version = "1.53.2", source = { registry = "https://pypi.org/simple" }, marker = "platform_machine != 'x86_64'" }, 1026 - { name = "protobuf", marker = "platform_machine != 'x86_64'" }, 1027 - { name = "setuptools", marker = "platform_machine != 'x86_64'" }, 1034 + { name = "grpcio", version = "1.53.2", source = { registry = "https://pypi.org/simple" } }, 1035 + { name = "protobuf" }, 1036 + { name = "setuptools" }, 1028 1037 ] 1029 1038 sdist = { url = "https://files.pythonhosted.org/packages/80/4a/d176f59e4b080f8bcd1242ca9bfa9d1a77a9ef1620725eef846f112b8a99/grpcio-tools-1.53.2.tar.gz", hash = "sha256:1b10f95d1f4af2b9d63c9beccf386b3a5e1a92f14b3f64a9a8385b6ba091e0dc", size = 2257313, upload-time = "2023-08-02T16:55:36.975Z" } 1030 1039 wheels = [ ··· 2692 2701 sdist = { url = "https://files.pythonhosted.org/packages/78/67/9a363818028526e2d4579334460df777115bdec1bb77c08f9db88f6389f2/uc_micro_py-2.0.0.tar.gz", hash = "sha256:c53691e495c8db60e16ffc4861a35469b0ba0821fe409a8a7a0a71864d33a811", size = 6611, upload-time = "2026-03-01T06:31:27.526Z" } 2693 2702 wheels = [ 2694 2703 { url = "https://files.pythonhosted.org/packages/61/73/d21edf5b204d1467e06500080a50f79d49ef2b997c79123a536d4a17d97c/uc_micro_py-2.0.0-py3-none-any.whl", hash = "sha256:3603a3859af53e5a39bc7677713c78ea6589ff188d70f4fee165db88e22b242c", size = 6383, upload-time = "2026-03-01T06:31:26.257Z" }, 2695 - ] 2696 - 2697 - [[package]] 2698 - name = "unidecode" 2699 - version = "1.3.8" 2700 - source = { registry = "https://pypi.org/simple" } 2701 - sdist = { url = "https://files.pythonhosted.org/packages/f7/89/19151076a006b9ac0dd37b1354e031f5297891ee507eb624755e58e10d3e/Unidecode-1.3.8.tar.gz", hash = "sha256:cfdb349d46ed3873ece4586b96aa75258726e2fa8ec21d6f00a591d98806c2f4", size = 192701, upload-time = "2024-01-11T11:58:35.609Z" } 2702 - wheels = [ 2703 - { url = "https://files.pythonhosted.org/packages/84/b7/6ec57841fb67c98f52fc8e4a2d96df60059637cba077edc569a302a8ffc7/Unidecode-1.3.8-py3-none-any.whl", hash = "sha256:d130a61ce6696f8148a3bd8fe779c99adeb4b870584eeb9526584e9aa091fd39", size = 235494, upload-time = "2024-01-11T11:58:33.012Z" }, 2704 2704 ] 2705 2705 2706 2706 [[package]]