letify 2.1.0__tar.gz → 2.1.2__tar.gz
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.
- {letify-2.1.0 → letify-2.1.2}/PKG-INFO +1 -1
- {letify-2.1.0 → letify-2.1.2}/letify/__init__.py +1 -1
- {letify-2.1.0 → letify-2.1.2}/letify/protocol/worker.py +30 -11
- {letify-2.1.0 → letify-2.1.2}/letify-core/Cargo.lock +3 -3
- {letify-2.1.0 → letify-2.1.2}/letify-core/Cargo.toml +1 -1
- {letify-2.1.0 → letify-2.1.2}/letify-ext/package-lock.json +2 -2
- {letify-2.1.0 → letify-2.1.2}/letify-ext/package.json +1 -1
- {letify-2.1.0 → letify-2.1.2}/pyproject.toml +1 -1
- {letify-2.1.0 → letify-2.1.2}/.github/workflows/ci.yml +0 -0
- {letify-2.1.0 → letify-2.1.2}/.github/workflows/docs.yml +0 -0
- {letify-2.1.0 → letify-2.1.2}/.github/workflows/publish.yml +0 -0
- {letify-2.1.0 → letify-2.1.2}/.gitignore +0 -0
- {letify-2.1.0 → letify-2.1.2}/.researchtree +0 -0
- {letify-2.1.0 → letify-2.1.2}/LICENSE +0 -0
- {letify-2.1.0 → letify-2.1.2}/README.md +0 -0
- {letify-2.1.0 → letify-2.1.2}/docs/guide/01-getting-started.md +0 -0
- {letify-2.1.0 → letify-2.1.2}/docs/guide/02-providers.md +0 -0
- {letify-2.1.0 → letify-2.1.2}/docs/guide/03-execution-modes.md +0 -0
- {letify-2.1.0 → letify-2.1.2}/docs/guide/04-environments-and-data.md +0 -0
- {letify-2.1.0 → letify-2.1.2}/docs/guide/05-concurrency.md +0 -0
- {letify-2.1.0 → letify-2.1.2}/docs/guide/06-cost.md +0 -0
- {letify-2.1.0 → letify-2.1.2}/docs/guide/07-troubleshooting.md +0 -0
- {letify-2.1.0 → letify-2.1.2}/docs/guide/08-releasing.md +0 -0
- {letify-2.1.0 → letify-2.1.2}/docs/guide/README.md +0 -0
- {letify-2.1.0 → letify-2.1.2}/docs/guide/ko/01-/354/213/234/354/236/221/355/225/230/352/270/260.md" +0 -0
- {letify-2.1.0 → letify-2.1.2}/docs/guide/ko/02-/355/224/204/353/241/234/353/260/224/354/235/264/353/215/224.md" +0 -0
- {letify-2.1.0 → letify-2.1.2}/docs/guide/ko/03-/354/213/244/355/226/211-/353/260/251/354/213/235.md" +0 -0
- {letify-2.1.0 → letify-2.1.2}/docs/guide/ko/04-/355/231/230/352/262/275/352/263/274-/353/215/260/354/235/264/355/204/260.md" +0 -0
- {letify-2.1.0 → letify-2.1.2}/docs/guide/ko/05-/353/217/231/354/213/234-/354/213/244/355/226/211.md" +0 -0
- {letify-2.1.0 → letify-2.1.2}/docs/guide/ko/06-/353/271/204/354/232/251.md" +0 -0
- {letify-2.1.0 → letify-2.1.2}/docs/guide/ko/07-/353/254/270/354/240/234-/355/225/264/352/262/260.md" +0 -0
- {letify-2.1.0 → letify-2.1.2}/docs/guide/ko/08-/353/246/264/353/246/254/354/212/244.md" +0 -0
- {letify-2.1.0 → letify-2.1.2}/docs/guide/ko/README.md +0 -0
- {letify-2.1.0 → letify-2.1.2}/docs/locales/README_ko.md +0 -0
- {letify-2.1.0 → letify-2.1.2}/docs/mkdocs.yml +0 -0
- {letify-2.1.0 → letify-2.1.2}/examples/README.md +0 -0
- {letify-2.1.0 → letify-2.1.2}/examples/nvfp4-lora/.letify.example +0 -0
- {letify-2.1.0 → letify-2.1.2}/examples/nvfp4-lora/00_smoke.py +0 -0
- {letify-2.1.0 → letify-2.1.2}/examples/nvfp4-lora/01_sweep.py +0 -0
- {letify-2.1.0 → letify-2.1.2}/examples/nvfp4-lora/02_resume.py +0 -0
- {letify-2.1.0 → letify-2.1.2}/examples/nvfp4-lora/03_watch.py +0 -0
- {letify-2.1.0 → letify-2.1.2}/examples/nvfp4-lora/README.md +0 -0
- {letify-2.1.0 → letify-2.1.2}/examples/nvfp4-lora/README_ko.md +0 -0
- {letify-2.1.0 → letify-2.1.2}/examples/nvfp4-lora/common.py +0 -0
- {letify-2.1.0 → letify-2.1.2}/examples/nvfp4-lora/recipe.py +0 -0
- {letify-2.1.0 → letify-2.1.2}/letify/cli.py +0 -0
- {letify-2.1.0 → letify-2.1.2}/letify/config/__init__.py +0 -0
- {letify-2.1.0 → letify-2.1.2}/letify/config/inventory.py +0 -0
- {letify-2.1.0 → letify-2.1.2}/letify/config/login.py +0 -0
- {letify-2.1.0 → letify-2.1.2}/letify/config/schema.py +0 -0
- {letify-2.1.0 → letify-2.1.2}/letify/config/secrets.py +0 -0
- {letify-2.1.0 → letify-2.1.2}/letify/config/writer.py +0 -0
- {letify-2.1.0 → letify-2.1.2}/letify/declare/__init__.py +0 -0
- {letify-2.1.0 → letify-2.1.2}/letify/declare/cache.py +0 -0
- {letify-2.1.0 → letify-2.1.2}/letify/declare/env.py +0 -0
- {letify-2.1.0 → letify-2.1.2}/letify/declare/function.py +0 -0
- {letify-2.1.0 → letify-2.1.2}/letify/declare/instance.py +0 -0
- {letify-2.1.0 → letify-2.1.2}/letify/errors.py +0 -0
- {letify-2.1.0 → letify-2.1.2}/letify/install.py +0 -0
- {letify-2.1.0 → letify-2.1.2}/letify/launcher.py +0 -0
- {letify-2.1.0 → letify-2.1.2}/letify/paths.py +0 -0
- {letify-2.1.0 → letify-2.1.2}/letify/protocol/__init__.py +0 -0
- {letify-2.1.0 → letify-2.1.2}/letify/protocol/codec.py +0 -0
- {letify-2.1.0 → letify-2.1.2}/letify/protocol/driver.py +0 -0
- {letify-2.1.0 → letify-2.1.2}/letify/protocol/handle.py +0 -0
- {letify-2.1.0 → letify-2.1.2}/letify/protocol/wire.py +0 -0
- {letify-2.1.0 → letify-2.1.2}/letify/providers/__init__.py +0 -0
- {letify-2.1.0 → letify-2.1.2}/letify/providers/base.py +0 -0
- {letify-2.1.0 → letify-2.1.2}/letify/providers/colab.py +0 -0
- {letify-2.1.0 → letify-2.1.2}/letify/providers/colab_files.py +0 -0
- {letify-2.1.0 → letify-2.1.2}/letify/providers/colab_keepalive.py +0 -0
- {letify-2.1.0 → letify-2.1.2}/letify/providers/elice.py +0 -0
- {letify-2.1.0 → letify-2.1.2}/letify/providers/kaggle.py +0 -0
- {letify-2.1.0 → letify-2.1.2}/letify/providers/kaggle_adapter.py +0 -0
- {letify-2.1.0 → letify-2.1.2}/letify/providers/local.py +0 -0
- {letify-2.1.0 → letify-2.1.2}/letify/providers/modal.py +0 -0
- {letify-2.1.0 → letify-2.1.2}/letify/providers/modal_adapter.py +0 -0
- {letify-2.1.0 → letify-2.1.2}/letify/providers/naming.py +0 -0
- {letify-2.1.0 → letify-2.1.2}/letify/providers/shell.py +0 -0
- {letify-2.1.0 → letify-2.1.2}/letify/providers/tunnel.py +0 -0
- {letify-2.1.0 → letify-2.1.2}/letify/providers/usage.py +0 -0
- {letify-2.1.0 → letify-2.1.2}/letify/remoting/__init__.py +0 -0
- {letify-2.1.0 → letify-2.1.2}/letify/remoting/capability.py +0 -0
- {letify-2.1.0 → letify-2.1.2}/letify/remoting/device/__init__.py +0 -0
- {letify-2.1.0 → letify-2.1.2}/letify/remoting/device/client.py +0 -0
- {letify-2.1.0 → letify-2.1.2}/letify/remoting/device/cuda.py +0 -0
- {letify-2.1.0 → letify-2.1.2}/letify/remoting/device/executor.py +0 -0
- {letify-2.1.0 → letify-2.1.2}/letify/remoting/device/frames.py +0 -0
- {letify-2.1.0 → letify-2.1.2}/letify/remoting/device/guard.py +0 -0
- {letify-2.1.0 → letify-2.1.2}/letify/remoting/device/tensor.py +0 -0
- {letify-2.1.0 → letify-2.1.2}/letify/remoting/device/trace.py +0 -0
- {letify-2.1.0 → letify-2.1.2}/letify/remoting/device/value.py +0 -0
- {letify-2.1.0 → letify-2.1.2}/letify/remoting/loader.py +0 -0
- {letify-2.1.0 → letify-2.1.2}/letify/remoting/probe.py +0 -0
- {letify-2.1.0 → letify-2.1.2}/letify/render.py +0 -0
- {letify-2.1.0 → letify-2.1.2}/letify/runtime/__init__.py +0 -0
- {letify-2.1.0 → letify-2.1.2}/letify/runtime/bootstrap.py +0 -0
- {letify-2.1.0 → letify-2.1.2}/letify/runtime/channel.py +0 -0
- {letify-2.1.0 → letify-2.1.2}/letify/runtime/lease.py +0 -0
- {letify-2.1.0 → letify-2.1.2}/letify/runtime/pool.py +0 -0
- {letify-2.1.0 → letify-2.1.2}/letify/runtime/session.py +0 -0
- {letify-2.1.0 → letify-2.1.2}/letify/runtime/telemetry.py +0 -0
- {letify-2.1.0 → letify-2.1.2}/letify/store/__init__.py +0 -0
- {letify-2.1.0 → letify-2.1.2}/letify/store/backends/__init__.py +0 -0
- {letify-2.1.0 → letify-2.1.2}/letify/store/backends/filesystem.py +0 -0
- {letify-2.1.0 → letify-2.1.2}/letify/store/backends/google_auth.py +0 -0
- {letify-2.1.0 → letify-2.1.2}/letify/store/backends/layout.py +0 -0
- {letify-2.1.0 → letify-2.1.2}/letify/store/backends/objects.py +0 -0
- {letify-2.1.0 → letify-2.1.2}/letify/store/cas.py +0 -0
- {letify-2.1.0 → letify-2.1.2}/letify/store/pathdata.py +0 -0
- {letify-2.1.0 → letify-2.1.2}/letify/store/sendorder.py +0 -0
- {letify-2.1.0 → letify-2.1.2}/letify/store/volume.py +0 -0
- {letify-2.1.0 → letify-2.1.2}/letify/stubs.py +0 -0
- {letify-2.1.0 → letify-2.1.2}/letify/tools.py +0 -0
- {letify-2.1.0 → letify-2.1.2}/letify/transport/__init__.py +0 -0
- {letify-2.1.0 → letify-2.1.2}/letify/transport/agent.py +0 -0
- {letify-2.1.0 → letify-2.1.2}/letify/transport/announce.py +0 -0
- {letify-2.1.0 → letify-2.1.2}/letify/transport/link.py +0 -0
- {letify-2.1.0 → letify-2.1.2}/letify/transport/nat.py +0 -0
- {letify-2.1.0 → letify-2.1.2}/letify/transport/pipeline.py +0 -0
- {letify-2.1.0 → letify-2.1.2}/letify/transport/portmap.py +0 -0
- {letify-2.1.0 → letify-2.1.2}/letify/transport/probe.py +0 -0
- {letify-2.1.0 → letify-2.1.2}/letify/transport/quic.py +0 -0
- {letify-2.1.0 → letify-2.1.2}/letify/transport/rendezvous.py +0 -0
- {letify-2.1.0 → letify-2.1.2}/letify/transport/setup.py +0 -0
- {letify-2.1.0 → letify-2.1.2}/letify/transport/sshopts.py +0 -0
- {letify-2.1.0 → letify-2.1.2}/letify/transport/strategies.py +0 -0
- {letify-2.1.0 → letify-2.1.2}/letify-core/.gitignore +0 -0
- {letify-2.1.0 → letify-2.1.2}/letify-core/build.py +0 -0
- {letify-2.1.0 → letify-2.1.2}/letify-core/letify-agent/Cargo.toml +0 -0
- {letify-2.1.0 → letify-2.1.2}/letify-core/letify-agent/src/driver.rs +0 -0
- {letify-2.1.0 → letify-2.1.2}/letify-core/letify-agent/src/main.rs +0 -0
- {letify-2.1.0 → letify-2.1.2}/letify-core/letify-driver/Cargo.toml +0 -0
- {letify-2.1.0 → letify-2.1.2}/letify-core/letify-driver/src/client.rs +0 -0
- {letify-2.1.0 → letify-2.1.2}/letify-core/letify-driver/src/exports.rs +0 -0
- {letify-2.1.0 → letify-2.1.2}/letify-core/letify-driver/src/image.rs +0 -0
- {letify-2.1.0 → letify-2.1.2}/letify-core/letify-driver/src/lib.rs +0 -0
- {letify-2.1.0 → letify-2.1.2}/letify-core/letify-driver/src/status.rs +0 -0
- {letify-2.1.0 → letify-2.1.2}/letify-core/letify-driver/src/table.rs +0 -0
- {letify-2.1.0 → letify-2.1.2}/letify-core/letify-quic/Cargo.toml +0 -0
- {letify-2.1.0 → letify-2.1.2}/letify-core/letify-quic/src/main.rs +0 -0
- {letify-2.1.0 → letify-2.1.2}/letify-core/letify-wire/Cargo.toml +0 -0
- {letify-2.1.0 → letify-2.1.2}/letify-core/letify-wire/src/lib.rs +0 -0
- {letify-2.1.0 → letify-2.1.2}/letify-core/letify-wire/tests/throughput.rs +0 -0
- {letify-2.1.0 → letify-2.1.2}/letify-core/rust-toolchain.toml +0 -0
- {letify-2.1.0 → letify-2.1.2}/letify-ext/.vscodeignore +0 -0
- {letify-2.1.0 → letify-2.1.2}/letify-ext/LICENSE +0 -0
- {letify-2.1.0 → letify-2.1.2}/letify-ext/README.md +0 -0
- {letify-2.1.0 → letify-2.1.2}/letify-ext/media/icon.svg +0 -0
- {letify-2.1.0 → letify-2.1.2}/letify-ext/src/cli.ts +0 -0
- {letify-2.1.0 → letify-2.1.2}/letify-ext/src/extension.ts +0 -0
- {letify-2.1.0 → letify-2.1.2}/letify-ext/src/history.ts +0 -0
- {letify-2.1.0 → letify-2.1.2}/letify-ext/src/model.ts +0 -0
- {letify-2.1.0 → letify-2.1.2}/letify-ext/src/poll.ts +0 -0
- {letify-2.1.0 → letify-2.1.2}/letify-ext/src/render.ts +0 -0
- {letify-2.1.0 → letify-2.1.2}/letify-ext/test/cli.test.ts +0 -0
- {letify-2.1.0 → letify-2.1.2}/letify-ext/test/manifest.test.ts +0 -0
- {letify-2.1.0 → letify-2.1.2}/letify-ext/test/model.test.ts +0 -0
- {letify-2.1.0 → letify-2.1.2}/letify-ext/test/regressions.test.ts +0 -0
- {letify-2.1.0 → letify-2.1.2}/letify-ext/tsconfig.json +0 -0
- {letify-2.1.0 → letify-2.1.2}/letify_providers.py +0 -0
- {letify-2.1.0 → letify-2.1.2}/scripts/sync-main.sh +0 -0
- {letify-2.1.0 → letify-2.1.2}/scripts/version.py +0 -0
- {letify-2.1.0 → letify-2.1.2}/tests/conftest.py +0 -0
- {letify-2.1.0 → letify-2.1.2}/tests/fake_kaggle_adapter.py +0 -0
- {letify-2.1.0 → letify-2.1.2}/tests/fake_modal_adapter.py +0 -0
- {letify-2.1.0 → letify-2.1.2}/tests/test_cli.py +0 -0
- {letify-2.1.0 → letify-2.1.2}/tests/test_cli_output.py +0 -0
- {letify-2.1.0 → letify-2.1.2}/tests/test_colab_keepalive.py +0 -0
- {letify-2.1.0 → letify-2.1.2}/tests/test_config.py +0 -0
- {letify-2.1.0 → letify-2.1.2}/tests/test_core.py +0 -0
- {letify-2.1.0 → letify-2.1.2}/tests/test_data.py +0 -0
- {letify-2.1.0 → letify-2.1.2}/tests/test_data_streaming.py +0 -0
- {letify-2.1.0 → letify-2.1.2}/tests/test_declare.py +0 -0
- {letify-2.1.0 → letify-2.1.2}/tests/test_device.py +0 -0
- {letify-2.1.0 → letify-2.1.2}/tests/test_editor_sessions.py +0 -0
- {letify-2.1.0 → letify-2.1.2}/tests/test_elice.py +0 -0
- {letify-2.1.0 → letify-2.1.2}/tests/test_frames.py +0 -0
- {letify-2.1.0 → letify-2.1.2}/tests/test_install.py +0 -0
- {letify-2.1.0 → letify-2.1.2}/tests/test_kaggle.py +0 -0
- {letify-2.1.0 → letify-2.1.2}/tests/test_kaggle_cookie.py +0 -0
- {letify-2.1.0 → letify-2.1.2}/tests/test_kaggle_link.py +0 -0
- {letify-2.1.0 → letify-2.1.2}/tests/test_link_log.py +0 -0
- {letify-2.1.0 → letify-2.1.2}/tests/test_notebook.py +0 -0
- {letify-2.1.0 → letify-2.1.2}/tests/test_parallel_placement.py +0 -0
- {letify-2.1.0 → letify-2.1.2}/tests/test_paths.py +0 -0
- {letify-2.1.0 → letify-2.1.2}/tests/test_portmap.py +0 -0
- {letify-2.1.0 → letify-2.1.2}/tests/test_protocol.py +0 -0
- {letify-2.1.0 → letify-2.1.2}/tests/test_providers.py +0 -0
- {letify-2.1.0 → letify-2.1.2}/tests/test_quic.py +0 -0
- {letify-2.1.0 → letify-2.1.2}/tests/test_remoting.py +0 -0
- {letify-2.1.0 → letify-2.1.2}/tests/test_render.py +0 -0
- {letify-2.1.0 → letify-2.1.2}/tests/test_runtime.py +0 -0
- {letify-2.1.0 → letify-2.1.2}/tests/test_ship.py +0 -0
- {letify-2.1.0 → letify-2.1.2}/tests/test_store.py +0 -0
- {letify-2.1.0 → letify-2.1.2}/tests/test_strategies.py +0 -0
- {letify-2.1.0 → letify-2.1.2}/tests/test_stubs.py +0 -0
- {letify-2.1.0 → letify-2.1.2}/tests/test_transport.py +0 -0
- {letify-2.1.0 → letify-2.1.2}/tests/test_tunnel_setup.py +0 -0
- {letify-2.1.0 → letify-2.1.2}/tests/test_version.py +0 -0
|
@@ -954,7 +954,8 @@ def _data_place_now(state, path, entry):
|
|
|
954
954
|
# the link then fails the file that was there is lost: a body that listed the
|
|
955
955
|
# directory is left with a name it cannot stat. Spec "What the body sees before a
|
|
956
956
|
# file arrives". _DATA_PARTIAL names are filtered from every patched listing.
|
|
957
|
-
staged = "%s%slink%d" % (
|
|
957
|
+
staged = "%s%slink%d.%d" % (
|
|
958
|
+
path, _DATA_PARTIAL, os.getpid(), threading.get_ident())
|
|
958
959
|
try:
|
|
959
960
|
os.link(source, staged)
|
|
960
961
|
os.replace(staged, path)
|
|
@@ -967,7 +968,8 @@ def _data_place_now(state, path, entry):
|
|
|
967
968
|
if not linked:
|
|
968
969
|
# Copied to a name of its own and renamed into place, so a reader never stats a
|
|
969
970
|
# file that is half written. Spec "What the body sees before a file arrives".
|
|
970
|
-
partial = "%s%s%d" % (
|
|
971
|
+
partial = "%s%s%d.%d" % (
|
|
972
|
+
path, _DATA_PARTIAL, os.getpid(), threading.get_ident())
|
|
971
973
|
try:
|
|
972
974
|
shutil.copyfile(source, partial)
|
|
973
975
|
os.replace(partial, path)
|
|
@@ -977,7 +979,15 @@ def _data_place_now(state, path, entry):
|
|
|
977
979
|
except OSError:
|
|
978
980
|
pass
|
|
979
981
|
return False
|
|
980
|
-
|
|
982
|
+
try:
|
|
983
|
+
info = os.stat(path)
|
|
984
|
+
except OSError:
|
|
985
|
+
# Another thread is placing this same path, so the name is between its link and
|
|
986
|
+
# its rename. Leaving the path pending and reporting nothing placed is right: the
|
|
987
|
+
# other thread finishes the placement. Raising here instead ends the whole call,
|
|
988
|
+
# which is how a race between the opening sweep and the data thread surfaced as
|
|
989
|
+
# `FileNotFoundError` on a file the body had just listed.
|
|
990
|
+
return False
|
|
981
991
|
cached = (info.st_size, info.st_mtime_ns) if linked else None
|
|
982
992
|
state["placed"][path] = (digest, info.st_ino, info.st_size, info.st_mtime_ns, cached)
|
|
983
993
|
state["linked"] += linked
|
|
@@ -1297,23 +1307,32 @@ def _data_install_patch():
|
|
|
1297
1307
|
entries.append(_PendingEntry(name, prefix + name, size))
|
|
1298
1308
|
return _Scandir(entries, found)
|
|
1299
1309
|
|
|
1310
|
+
def missing(path, found, real_name, kwargs):
|
|
1311
|
+
"""Answer a stat that found nothing, from the manifest or by looking again.
|
|
1312
|
+
|
|
1313
|
+
The real stat runs first, so the data thread can place the file and drop it from
|
|
1314
|
+
the pending map in between, leaving the path in neither: not on disk when it was
|
|
1315
|
+
looked for, not pending when the manifest was asked. Looking again settles it,
|
|
1316
|
+
because placement puts the file on disk before it clears pending, so the second
|
|
1317
|
+
look finds it. A path that is genuinely absent raises as it should. Spec "What the
|
|
1318
|
+
body sees before a file arrives"; the listing states the same rule and takes its
|
|
1319
|
+
snapshot first instead, which a stat cannot afford on a data loader's hot path.
|
|
1320
|
+
"""
|
|
1321
|
+
if found is not None:
|
|
1322
|
+
return _data_fake_stat(found[2][1])
|
|
1323
|
+
return real[real_name](path, **kwargs)
|
|
1324
|
+
|
|
1300
1325
|
def stated(path, **kwargs):
|
|
1301
1326
|
try:
|
|
1302
1327
|
return real["stat"](path, **kwargs)
|
|
1303
1328
|
except FileNotFoundError:
|
|
1304
|
-
|
|
1305
|
-
if found is None:
|
|
1306
|
-
raise
|
|
1307
|
-
return _data_fake_stat(found[2][1])
|
|
1329
|
+
return missing(path, pending_of(path), "stat", kwargs)
|
|
1308
1330
|
|
|
1309
1331
|
def lstated(path, **kwargs):
|
|
1310
1332
|
try:
|
|
1311
1333
|
return real["lstat"](path, **kwargs)
|
|
1312
1334
|
except FileNotFoundError:
|
|
1313
|
-
|
|
1314
|
-
if found is None:
|
|
1315
|
-
raise
|
|
1316
|
-
return _data_fake_stat(found[2][1])
|
|
1335
|
+
return missing(path, pending_of(path), "lstat", kwargs)
|
|
1317
1336
|
|
|
1318
1337
|
def disguise(patched, module, name):
|
|
1319
1338
|
"""Give a wrapper the name it replaced, so pickling it finds the name, not the
|
|
@@ -138,7 +138,7 @@ dependencies = [
|
|
|
138
138
|
|
|
139
139
|
[[package]]
|
|
140
140
|
name = "letify-agent"
|
|
141
|
-
version = "2.1.
|
|
141
|
+
version = "2.1.2"
|
|
142
142
|
dependencies = [
|
|
143
143
|
"letify-wire",
|
|
144
144
|
"libloading",
|
|
@@ -146,7 +146,7 @@ dependencies = [
|
|
|
146
146
|
|
|
147
147
|
[[package]]
|
|
148
148
|
name = "letify-driver"
|
|
149
|
-
version = "2.1.
|
|
149
|
+
version = "2.1.2"
|
|
150
150
|
dependencies = [
|
|
151
151
|
"letify-wire",
|
|
152
152
|
]
|
|
@@ -164,7 +164,7 @@ dependencies = [
|
|
|
164
164
|
|
|
165
165
|
[[package]]
|
|
166
166
|
name = "letify-wire"
|
|
167
|
-
version = "2.1.
|
|
167
|
+
version = "2.1.2"
|
|
168
168
|
|
|
169
169
|
[[package]]
|
|
170
170
|
name = "libc"
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "letify-status",
|
|
3
|
-
"version": "2.1.
|
|
3
|
+
"version": "2.1.2",
|
|
4
4
|
"lockfileVersion": 3,
|
|
5
5
|
"requires": true,
|
|
6
6
|
"packages": {
|
|
7
7
|
"": {
|
|
8
8
|
"name": "letify-status",
|
|
9
|
-
"version": "2.1.
|
|
9
|
+
"version": "2.1.2",
|
|
10
10
|
"license": "SEE LICENSE IN LICENSE",
|
|
11
11
|
"devDependencies": {
|
|
12
12
|
"@types/node": "^18.19.0",
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"name": "letify-status",
|
|
3
3
|
"displayName": "letify Status",
|
|
4
4
|
"description": "letify quota and GPU activity in the status bar, read from the letify CLI.",
|
|
5
|
-
"version": "2.1.
|
|
5
|
+
"version": "2.1.2",
|
|
6
6
|
"publisher": "darkpyonix",
|
|
7
7
|
"license": "SEE LICENSE IN LICENSE",
|
|
8
8
|
"repository": {
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{letify-2.1.0 → letify-2.1.2}/docs/guide/ko/01-/354/213/234/354/236/221/355/225/230/352/270/260.md"
RENAMED
|
File without changes
|
|
File without changes
|
{letify-2.1.0 → letify-2.1.2}/docs/guide/ko/03-/354/213/244/355/226/211-/353/260/251/354/213/235.md"
RENAMED
|
File without changes
|
|
File without changes
|
{letify-2.1.0 → letify-2.1.2}/docs/guide/ko/05-/353/217/231/354/213/234-/354/213/244/355/226/211.md"
RENAMED
|
File without changes
|
|
File without changes
|
{letify-2.1.0 → letify-2.1.2}/docs/guide/ko/07-/353/254/270/354/240/234-/355/225/264/352/262/260.md"
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|