ruyi 0.45.0__py3-none-any.whl → 0.45.0a20251230__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.
- ruyi/__main__.py +4 -16
- ruyi/cli/cmd.py +5 -6
- ruyi/cli/config_cli.py +11 -14
- ruyi/cli/main.py +4 -14
- ruyi/cli/oobe.py +3 -7
- ruyi/cli/self_cli.py +34 -48
- ruyi/cli/user_input.py +12 -42
- ruyi/cli/version_cli.py +5 -11
- ruyi/config/__init__.py +2 -26
- ruyi/config/errors.py +7 -19
- ruyi/device/provision.py +55 -116
- ruyi/device/provision_cli.py +3 -6
- ruyi/log/__init__.py +5 -6
- ruyi/mux/runtime.py +6 -19
- ruyi/mux/venv/maker.py +35 -93
- ruyi/mux/venv/venv_cli.py +10 -13
- ruyi/pluginhost/plugin_cli.py +3 -4
- ruyi/resource_bundle/__init__.py +8 -22
- ruyi/resource_bundle/__main__.py +5 -6
- ruyi/resource_bundle/data.py +9 -13
- ruyi/ruyipkg/admin_checksum.py +1 -4
- ruyi/ruyipkg/admin_cli.py +6 -9
- ruyi/ruyipkg/augmented_pkg.py +14 -15
- ruyi/ruyipkg/checksum.py +2 -8
- ruyi/ruyipkg/distfile.py +9 -33
- ruyi/ruyipkg/entity.py +2 -12
- ruyi/ruyipkg/entity_cli.py +12 -20
- ruyi/ruyipkg/entity_provider.py +2 -11
- ruyi/ruyipkg/fetcher.py +9 -38
- ruyi/ruyipkg/install.py +42 -143
- ruyi/ruyipkg/install_cli.py +15 -18
- ruyi/ruyipkg/list.py +20 -27
- ruyi/ruyipkg/list_cli.py +7 -12
- ruyi/ruyipkg/news.py +11 -23
- ruyi/ruyipkg/news_cli.py +7 -10
- ruyi/ruyipkg/profile_cli.py +2 -8
- ruyi/ruyipkg/repo.py +8 -22
- ruyi/ruyipkg/unpack.py +8 -42
- ruyi/ruyipkg/unpack_method.py +1 -5
- ruyi/ruyipkg/update_cli.py +3 -8
- ruyi/telemetry/provider.py +29 -74
- ruyi/telemetry/telemetry_cli.py +8 -9
- ruyi/utils/git.py +11 -18
- ruyi/utils/prereqs.py +5 -10
- ruyi/utils/ssl_patch.py +1 -2
- ruyi/version.py +3 -9
- {ruyi-0.45.0.dist-info → ruyi-0.45.0a20251230.dist-info}/METADATA +1 -2
- ruyi-0.45.0a20251230.dist-info/RECORD +102 -0
- {ruyi-0.45.0.dist-info → ruyi-0.45.0a20251230.dist-info}/WHEEL +1 -1
- ruyi/i18n/__init__.py +0 -129
- ruyi-0.45.0.dist-info/RECORD +0 -103
- {ruyi-0.45.0.dist-info → ruyi-0.45.0a20251230.dist-info}/entry_points.txt +0 -0
- {ruyi-0.45.0.dist-info → ruyi-0.45.0a20251230.dist-info}/licenses/LICENSE-Apache.txt +0 -0
ruyi/i18n/__init__.py
DELETED
|
@@ -1,129 +0,0 @@
|
|
|
1
|
-
from io import BytesIO
|
|
2
|
-
import gettext
|
|
3
|
-
import os
|
|
4
|
-
import sys
|
|
5
|
-
from typing import Final, Mapping, NewType
|
|
6
|
-
|
|
7
|
-
if sys.version_info >= (3, 11):
|
|
8
|
-
from typing import LiteralString
|
|
9
|
-
else:
|
|
10
|
-
# It may happen that Python and typing_extensions are both too old, which
|
|
11
|
-
# is unfortunately the case with Ubuntu 22.04 LTS system packages, meaning
|
|
12
|
-
# typing_extensions cannot guarantee us LiteralString either.
|
|
13
|
-
#
|
|
14
|
-
# We don't expect development work within such an environment, so just
|
|
15
|
-
# alias to str to avoid importing typing_extensions altogether. This also
|
|
16
|
-
# helps CLI startup performance.
|
|
17
|
-
#
|
|
18
|
-
# Unfortunately, simply assigning str to LiteralString would not work either,
|
|
19
|
-
# due to mypy/pyright not wanting us to re-assign types; we have to
|
|
20
|
-
# resort to providing different function signatures for Python 3.10, which
|
|
21
|
-
# is done below.
|
|
22
|
-
#
|
|
23
|
-
# LiteralString = str # type: ignore[misc]
|
|
24
|
-
pass
|
|
25
|
-
|
|
26
|
-
from ..resource_bundle import get_resource_blob
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
def _probe_lang(environ: Mapping[str, str]) -> list[str]:
|
|
30
|
-
"""Probe the environment variables the gettext way, to determine the list
|
|
31
|
-
of preferred languages."""
|
|
32
|
-
languages: list[str] = []
|
|
33
|
-
# check the variables in this order
|
|
34
|
-
for envar in ("LANGUAGE", "LC_ALL", "LC_MESSAGES", "LANG"):
|
|
35
|
-
if val := environ.get(envar):
|
|
36
|
-
languages = val.split(":")
|
|
37
|
-
break
|
|
38
|
-
if "C" not in languages:
|
|
39
|
-
languages.append("C")
|
|
40
|
-
|
|
41
|
-
for i, lang in enumerate(languages):
|
|
42
|
-
# normalize things like en_US.UTF-8 to en_US
|
|
43
|
-
if "." in lang:
|
|
44
|
-
languages[i] = lang.split(".", 1)[0]
|
|
45
|
-
|
|
46
|
-
return languages
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
_DOMAINS = (
|
|
50
|
-
"argparse",
|
|
51
|
-
"ruyi",
|
|
52
|
-
)
|
|
53
|
-
"""gettext domains we supply and use ourselves"""
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
class I18nAdapter:
|
|
57
|
-
"""Adapter for gettext translation functions."""
|
|
58
|
-
|
|
59
|
-
def __init__(self) -> None:
|
|
60
|
-
self._t = gettext.NullTranslations()
|
|
61
|
-
|
|
62
|
-
def hook(self) -> None:
|
|
63
|
-
# monkey-patch the global gettext functions
|
|
64
|
-
# the type ignore comments are necessary because mypy doesn't see
|
|
65
|
-
# the bounded methods as compatible with the unbound functions
|
|
66
|
-
# (it doesn't remove self from the unbound method signature)
|
|
67
|
-
gettext.gettext = self.gettext # type: ignore[assignment]
|
|
68
|
-
gettext.ngettext = self.ngettext # type: ignore[assignment]
|
|
69
|
-
|
|
70
|
-
def init_from_env(self, environ: Mapping[str, str] | None = None) -> None:
|
|
71
|
-
if environ is None:
|
|
72
|
-
environ = os.environ
|
|
73
|
-
|
|
74
|
-
langs = _probe_lang(environ)
|
|
75
|
-
for domain in _DOMAINS:
|
|
76
|
-
for lang in langs:
|
|
77
|
-
if self.set_locale(domain, lang):
|
|
78
|
-
break
|
|
79
|
-
|
|
80
|
-
def _get_mo(self, domain: str, locale: str) -> BytesIO | None:
|
|
81
|
-
# this is always forward-slash-separated, because this is not a concrete
|
|
82
|
-
# filesystem path, rather a resource bundle key
|
|
83
|
-
path = f"locale/{locale}/LC_MESSAGES/{domain}.mo"
|
|
84
|
-
blob = get_resource_blob(path)
|
|
85
|
-
if blob:
|
|
86
|
-
return BytesIO(blob)
|
|
87
|
-
return None
|
|
88
|
-
|
|
89
|
-
def set_locale(self, domain: str, locale: str | None = None) -> bool:
|
|
90
|
-
if locale is not None:
|
|
91
|
-
if mo_file := self._get_mo(domain, locale):
|
|
92
|
-
self._t.add_fallback(gettext.GNUTranslations(mo_file))
|
|
93
|
-
return True
|
|
94
|
-
return False
|
|
95
|
-
|
|
96
|
-
def gettext(self, x: str) -> str:
|
|
97
|
-
return self._t.gettext(x)
|
|
98
|
-
|
|
99
|
-
def ngettext(self, singular: str, plural: str, n: int) -> str:
|
|
100
|
-
return self._t.ngettext(singular, plural, n)
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
ADAPTER: Final = I18nAdapter()
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
DeferredI18nString = NewType("DeferredI18nString", str)
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
if sys.version_info >= (3, 11):
|
|
110
|
-
|
|
111
|
-
def _(x: LiteralString | DeferredI18nString) -> str:
|
|
112
|
-
"""``gettext`` alias that ensures its input is string literal via type
|
|
113
|
-
signature."""
|
|
114
|
-
return ADAPTER.gettext(x)
|
|
115
|
-
|
|
116
|
-
def d_(x: LiteralString) -> DeferredI18nString:
|
|
117
|
-
"""Mark a string literal for deferred translation: call ``_`` at use sites."""
|
|
118
|
-
return DeferredI18nString(x)
|
|
119
|
-
|
|
120
|
-
else:
|
|
121
|
-
|
|
122
|
-
def _(x: str | DeferredI18nString) -> str:
|
|
123
|
-
"""``gettext`` alias that ensures its input is string literal via type
|
|
124
|
-
signature."""
|
|
125
|
-
return ADAPTER.gettext(x)
|
|
126
|
-
|
|
127
|
-
def d_(x: str) -> DeferredI18nString:
|
|
128
|
-
"""Mark a string literal for deferred translation: call ``_`` at use sites."""
|
|
129
|
-
return DeferredI18nString(x)
|
ruyi-0.45.0.dist-info/RECORD
DELETED
|
@@ -1,103 +0,0 @@
|
|
|
1
|
-
ruyi/__init__.py,sha256=_8k6Lm01mK35fGY7N9yQLF2SpmVPU70F2plkS6yG1YU,464
|
|
2
|
-
ruyi/__main__.py,sha256=oj13tC5ie1nYguDgzWu1WJVQvkpUYtj1O9CD9kEG2Hc,3631
|
|
3
|
-
ruyi/cli/__init__.py,sha256=MCdAZ00CLb9atln-pJrdQBmcrZmvPx4SOL5LVDbRc_Q,116
|
|
4
|
-
ruyi/cli/builtin_commands.py,sha256=cYyPSF00DSBH1WMv6mHcMygbFRBGXObMWhbXHs5K1Mc,639
|
|
5
|
-
ruyi/cli/cmd.py,sha256=uPbtCgvvJoGjwPSNyRo4JCu0fta3NJ43avH3DvdfqCk,6761
|
|
6
|
-
ruyi/cli/completer.py,sha256=cnOkU7veDe-jP8ROXZL2uBop2HgWfaAZl6dromnPLx8,1426
|
|
7
|
-
ruyi/cli/completion.py,sha256=ffLs3Dv7pY_uinwH98wkBPohRvAjpUOGqy01OTA_Bgo,841
|
|
8
|
-
ruyi/cli/config_cli.py,sha256=QOQ1AZGaPF7JyeOAFGsYHz4TOBCB_tJqUGqAAf4afjA,4152
|
|
9
|
-
ruyi/cli/main.py,sha256=L-3wK_Sklp9Sc1k1I3G9XS2DkuC5xWaIJQUqYejpQyU,4905
|
|
10
|
-
ruyi/cli/oobe.py,sha256=Fjb2-7mFFz85Q-xxuxUG2FSjY9_7ADUDHeqWGidolmY,2572
|
|
11
|
-
ruyi/cli/self_cli.py,sha256=djH51igQ2Ljrh3L2uFx3f31HGhd9iT8UQxp2x6dvXBs,9137
|
|
12
|
-
ruyi/cli/user_input.py,sha256=t-AYWGHSl7VqyLg82l5cjgkOwj0wyeD_S9h5ZyN3yYg,4513
|
|
13
|
-
ruyi/cli/version_cli.py,sha256=teCysKc7hQ7ewuV-wAPwO6DQerJQDJoyWVFAEhoxtWE,1394
|
|
14
|
-
ruyi/config/__init__.py,sha256=QK8dXWp4Tpr8H_4IKLg3fc3-y5wsvnbFUIiLXd3CXOU,17559
|
|
15
|
-
ruyi/config/editor.py,sha256=piAJ-a68iX6IFWXy1g9OXoSs_3DardZwoaSPdStKKL0,4243
|
|
16
|
-
ruyi/config/errors.py,sha256=VH1bhEkddmqkEqbFDgR-Sqp4_OIz6pB4QUTeLRGuQmk,2888
|
|
17
|
-
ruyi/config/news.py,sha256=83LjQjJHsqOPdRrytG7VBFubG6pyDwJ-Mg37gpBRU20,1061
|
|
18
|
-
ruyi/config/schema.py,sha256=u0TdpoUV6I7ZGZKlHAAGnqZbfaoTiA45UsM5c82M99M,7405
|
|
19
|
-
ruyi/device/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
20
|
-
ruyi/device/provision.py,sha256=aUtD4nc_A7kNpUSQDbZaVi39V2aHKc82UYW03OszlnQ,22534
|
|
21
|
-
ruyi/device/provision_cli.py,sha256=n6qgDsOeZ9Ta0DNX-awTwvcTwp6KsH5vZ7DXcQn8udk,1091
|
|
22
|
-
ruyi/i18n/__init__.py,sha256=5Qmcwk8cP8kYUACw8dJcYvXJOWo6EhLWVg4m60qv64g,4312
|
|
23
|
-
ruyi/log/__init__.py,sha256=VTVstSCUIeyPGyuLnwUGa5JGknqyOMdJyZJBbkHqK5Y,6663
|
|
24
|
-
ruyi/mux/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
25
|
-
ruyi/mux/runtime.py,sha256=7dK55D57c1O8hVRy6fEo4VWa4SbjDHoNYPqFd6YxmgA,7469
|
|
26
|
-
ruyi/mux/venv/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
27
|
-
ruyi/mux/venv/emulator_cfg.py,sha256=vGw-pBtNii2fTllQqloN_o1FAFOOHgF7zDqLMVdIlzk,1125
|
|
28
|
-
ruyi/mux/venv/maker.py,sha256=NEt8L8lV4PwDWsFek__dWhxaIfOThprcCojuwDxLlBw,30640
|
|
29
|
-
ruyi/mux/venv/venv_cli.py,sha256=LL2nmRsqzeFVe8KoXiJl82uTBkemr2X1yX3oooI5RBk,3076
|
|
30
|
-
ruyi/mux/venv_cfg.py,sha256=m75JCVLFWE1gE8OzcNDOHqwUc2c6ikJhZ-GhjsXv94U,6840
|
|
31
|
-
ruyi/pluginhost/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
32
|
-
ruyi/pluginhost/api.py,sha256=Zh69xJfR7PEbM6fjoFZRNqeqTneWAmC71NjA76HodSY,5711
|
|
33
|
-
ruyi/pluginhost/ctx.py,sha256=MsP1L7nchnbSrauId3GaQzv0YJLnWE0u_H3ZFEmjUX8,6590
|
|
34
|
-
ruyi/pluginhost/paths.py,sha256=3EVY3_i3LLff4Lk9py-E317C7_ysiRatfCiuxvCsVWw,4227
|
|
35
|
-
ruyi/pluginhost/plugin_cli.py,sha256=Mdw3JYfdDuKLgxnE7Ca7PA-iCdXupqAl8E58nLL9wbk,998
|
|
36
|
-
ruyi/pluginhost/unsandboxed.py,sha256=A9T-6JFfDNiCAxq47_EhLo_rRmZ3Iyrod3teMWv3-XM,7122
|
|
37
|
-
ruyi/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
38
|
-
ruyi/resource_bundle/__init__.py,sha256=AQonNhDlWGWSFSgcuw74Z296umGe5ojc2gkDYvw3Rqw,900
|
|
39
|
-
ruyi/resource_bundle/__main__.py,sha256=F3M-c9nzeI9Yimnn-qCbLKITAzjPYI8mtR-SvjNayrs,1659
|
|
40
|
-
ruyi/resource_bundle/data.py,sha256=QkFTjlplftVC2sJ7iaDy7_1OLVxa8qn8KbJ9n8g4GQ0,34704
|
|
41
|
-
ruyi/ruyipkg/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
42
|
-
ruyi/ruyipkg/admin_checksum.py,sha256=l-YFbSHUBFM-_Gzv0PnSfk9Xv4Srpb0Vd38SrrpA1y0,2331
|
|
43
|
-
ruyi/ruyipkg/admin_cli.py,sha256=ynlkybso9BH6-HLUjgapBI8Gv_y1pXOn7B4ecaUGWq0,2512
|
|
44
|
-
ruyi/ruyipkg/atom.py,sha256=S0mWmtI0HgfOnbkAK6BlHmCrAiHcJ-QVnub3iCiCJjU,5440
|
|
45
|
-
ruyi/ruyipkg/augmented_pkg.py,sha256=O3q9l5zIygvphi-7BK0oCqkuyYrfDYujHNmAC63pf-k,6987
|
|
46
|
-
ruyi/ruyipkg/canonical_dump.py,sha256=Qu25YXwJpjWUBte0C3bmmaJxe7zyqfN-2-__u2_dJDM,9363
|
|
47
|
-
ruyi/ruyipkg/checksum.py,sha256=O3IsmO_LYgmL7RWbN9F3dqe-56qj6JMAutRALXXkCw4,1451
|
|
48
|
-
ruyi/ruyipkg/cli_completion.py,sha256=kJf7vN5rXi5zAwTI3dr4J8HdUzR3-ZXnsdaNQV6kqzo,1151
|
|
49
|
-
ruyi/ruyipkg/distfile.py,sha256=bsUpJm1zopolOIgMCtZDyDgfLXQW7RpcA1BPPLA8Hug,7624
|
|
50
|
-
ruyi/ruyipkg/entity.py,sha256=Ixs_d8Xw6j_NghafOkp0L9MQIYmKj6upue1GGUJe6uQ,14760
|
|
51
|
-
ruyi/ruyipkg/entity_cli.py,sha256=rxY1EMYzfQ-KCnDjyDjyoSEvNNN0tqOHWidJzLN0COc,4029
|
|
52
|
-
ruyi/ruyipkg/entity_provider.py,sha256=agYmFOWz36RpVIggo8BW6kfRWfYTIcyqsD3IVq065io,9018
|
|
53
|
-
ruyi/ruyipkg/fetcher.py,sha256=SWInsI_aQ2Wv1O_9YJEF1BcAxbb24m4UJwwt5maPl2s,9803
|
|
54
|
-
ruyi/ruyipkg/host.py,sha256=pmqgggi7koDCWgzFexwHpycv4SZ07VF6xUbi4s8FSKA,1399
|
|
55
|
-
ruyi/ruyipkg/install.py,sha256=oLMZgW2Lh3b4Odcx-dNE0BEds9oJzlktm83sr8RHbOw,20345
|
|
56
|
-
ruyi/ruyipkg/install_cli.py,sha256=jUoM6mGGDJKSfjv7GhhE5C1rO-IVvMP2nUESZdWiscM,5363
|
|
57
|
-
ruyi/ruyipkg/list.py,sha256=qxzJIe02rqnA9ngYsfNeqUbYgWba9rzprqk4ScF-YwI,4535
|
|
58
|
-
ruyi/ruyipkg/list_cli.py,sha256=tXpsMEZt0ntOSpuybv534VR4ZDIbbV0PS_A01Z5Lj-4,2345
|
|
59
|
-
ruyi/ruyipkg/list_filter.py,sha256=F64_UhwUEiaUR73EkLu91qoUBA-Yz9mEVWj8XY46MXQ,5467
|
|
60
|
-
ruyi/ruyipkg/msg.py,sha256=d9uF1rBmdT8iVvpTU53XXtNTJzvNhIK68rO-4W4h5wc,3180
|
|
61
|
-
ruyi/ruyipkg/news.py,sha256=kqU8Ci9D9fcUMTd-yGGBwP9kJ3NCznw76Sc24V7xn6g,4223
|
|
62
|
-
ruyi/ruyipkg/news_cli.py,sha256=Z4rS30RRG1fnEGKFTYJcxeKNMvIjei4vyPeYNdkuRn8,2434
|
|
63
|
-
ruyi/ruyipkg/news_store.py,sha256=ocTO4YDpL_HrKaIRFvJ_Gxvpmr7V7-R8b1B8f5Eue9c,5276
|
|
64
|
-
ruyi/ruyipkg/pkg_manifest.py,sha256=FmksKjQyBnU4zA3MFXiHdB2EjNmhs-J9km9vE-zBQlk,18836
|
|
65
|
-
ruyi/ruyipkg/profile.py,sha256=6xwL24crALShqD8bazGOIAFTYCpM_91mD8d6YMxM2FU,10762
|
|
66
|
-
ruyi/ruyipkg/profile_cli.py,sha256=GR-f0PKFRz0BzHvPq-Vii4qGGQ31RqYdUbs7pkvWOAc,1038
|
|
67
|
-
ruyi/ruyipkg/protocols.py,sha256=lPKRaAcK3DY3wmkyO2tKpFvPQ_4QA4aSNNsNLvi78O8,1833
|
|
68
|
-
ruyi/ruyipkg/repo.py,sha256=OqDH0GDGPXxFFyP18dO-ZfFQVAuHKwTdmT9joEwIXzM,25634
|
|
69
|
-
ruyi/ruyipkg/state.py,sha256=Ie4vrt79Wp9P0L36tMj36tOtDlFnIb6uwVGDQCQyg8s,11544
|
|
70
|
-
ruyi/ruyipkg/unpack.py,sha256=XS1pB2ahGXjSRE0ViOQKfjStrgDISf6WGlMzR-USD9U,11991
|
|
71
|
-
ruyi/ruyipkg/unpack_method.py,sha256=qJdZXB7OhLLuXhgejZDpiqK2BqMvxxcLJaMWCkc0G0Y,2179
|
|
72
|
-
ruyi/ruyipkg/update_cli.py,sha256=llq8oHctSQ9ahY0JYvGaoUOYzbMx8Y2VVTuj4GdLUDY,1531
|
|
73
|
-
ruyi/telemetry/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
74
|
-
ruyi/telemetry/aggregate.py,sha256=MhehVOtU7KLICHgOz3sZE5z3OgFa4OmlRIPqXOW_tBU,2334
|
|
75
|
-
ruyi/telemetry/event.py,sha256=GZnFj6E59Q7mjp-2VRApAZH3rT_bu4_cWb5QMCPm-Zc,982
|
|
76
|
-
ruyi/telemetry/provider.py,sha256=1SRqs6Yq2RnKVsthvdcwleWIMbRoi9P0CiikC4YzJPU,23593
|
|
77
|
-
ruyi/telemetry/scope.py,sha256=e45VPAvRAqSxrL0ESorN9SCnR_I6Bwi2CMPJDDshJEE,1133
|
|
78
|
-
ruyi/telemetry/store.py,sha256=IbikQ9dmcuf85SIxlWpXY1aydovM1EzXA9Q6hAo_mXE,10072
|
|
79
|
-
ruyi/telemetry/telemetry_cli.py,sha256=JCgYAH4mJK8e5LPYs6HtoN9WaudDb-jJ33gZkcNgbVo,4072
|
|
80
|
-
ruyi/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
81
|
-
ruyi/utils/ar.py,sha256=w9wiYYdbInLewr5IRTcP0TiOw2ibVDQEmnV0hHm9WlA,2271
|
|
82
|
-
ruyi/utils/ci.py,sha256=66DBm4ooA7yozDtXCJFd1n2jJXTsEnxPSpkNzLfE28M,2970
|
|
83
|
-
ruyi/utils/frontmatter.py,sha256=4EOohEYCZ_q6ncpDv7ktJYf9PN4WEdgFfdE9hZBV3Zg,1052
|
|
84
|
-
ruyi/utils/git.py,sha256=9AumrbBfXBtZwvYvrezDKJJW3TA6HA4gch69eqfGRuo,6232
|
|
85
|
-
ruyi/utils/global_mode.py,sha256=9GES5RyisSXAo14_bP896Jat6BFru_N-DC1V_7bofWY,5684
|
|
86
|
-
ruyi/utils/l10n.py,sha256=l003oQ5M8fWIKQHbYTVSc6oHzFFGU2sbKac7Hh6FNFU,2530
|
|
87
|
-
ruyi/utils/markdown.py,sha256=Mpq--ClM4j9lm_-5zO53ptYePUTLI4rg0V1YshOwsf8,2654
|
|
88
|
-
ruyi/utils/mounts.py,sha256=31BGsVOpD2bO7PYpm8I1ogDHzP3MvrMWznKonS3Ajos,1210
|
|
89
|
-
ruyi/utils/node_info.py,sha256=8-4dtrr2Ww_Cb9iKH_WpTMOWx7wknJKRwMUUZJYo9dQ,6603
|
|
90
|
-
ruyi/utils/nuitka.py,sha256=7mdbmtKnUsGkIp1zxXgGWYrwZcCut3ipd0AP0DrbfZk,1112
|
|
91
|
-
ruyi/utils/porcelain.py,sha256=pF6ieSE2xlnC0HBADFY0m-uuwVNNME3wlbHo2jWdLFA,1403
|
|
92
|
-
ruyi/utils/prereqs.py,sha256=R24UQyHm3pGt2QmZ-5g89AJsxr2eO5SlPrhIoRtz9lM,2181
|
|
93
|
-
ruyi/utils/ssl_patch.py,sha256=HZsJ_nMEzPLjxSl1b8jkYkKU-O6koYK1rdFckic-bi0,5685
|
|
94
|
-
ruyi/utils/templating.py,sha256=94xBJTkIfDqmUBTc9hnLO54zQoC7hwGWONGF3YbaqHk,966
|
|
95
|
-
ruyi/utils/toml.py,sha256=aniIF3SGfR69_s3GWWwlnoKxW4B5IDVY2CM0eUI55_c,3501
|
|
96
|
-
ruyi/utils/url.py,sha256=Wyct6syS4GmZC6mY7SK-YgBWxKl3cOOBXtp9UtvGkto,186
|
|
97
|
-
ruyi/utils/xdg_basedir.py,sha256=RwVH199jPcLVsg5ngR62RaNS5hqnMpkdt31LqkCfa1g,2751
|
|
98
|
-
ruyi/version.py,sha256=qFJ1dp12sOzWy23xY5eKU0c7X8ZaKJy-W4OvavRb1w4,637
|
|
99
|
-
ruyi-0.45.0.dist-info/METADATA,sha256=Pm_WaW_bndLfRLYW1EocJtSuJjp5DYxkOUL-bDyCaEM,24481
|
|
100
|
-
ruyi-0.45.0.dist-info/WHEEL,sha256=3ny-bZhpXrU6vSQ1UPG34FoxZBp3lVcvK0LkgUz6VLk,88
|
|
101
|
-
ruyi-0.45.0.dist-info/entry_points.txt,sha256=GXSNSy7OgFrnlU5xm5dE3l3PGO92Qf6VDIUCdvQNm8E,49
|
|
102
|
-
ruyi-0.45.0.dist-info/licenses/LICENSE-Apache.txt,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
|
|
103
|
-
ruyi-0.45.0.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|