# Yakut: the new name for PyUAVCAN CLI tool

**URL:** <https://forum.opencyphal.org/t/yakut-the-new-name-for-pyuavcan-cli-tool/1049>\
**Category:** CLI tools (Cynic/Yakut)\
**Created:** [December 30, 2020, 9:32pm UTC](https://forum.opencyphal.org/t/yakut-the-new-name-for-pyuavcan-cli-tool/1049 "2020-12-30T21:32:53Z")\
**Posts on this page:** 8\
**Page:** 1

<div class="post-metadata">

**Author:** ![pavel.kirienko](https://forum.opencyphal.org/user_avatar/forum.opencyphal.org/pavel.kirienko/32/9_2.png) [@pavel.kirienko](https://forum.opencyphal.org/u/pavel.kirienko)\
**Post date:** [December 30, 2020, 9:32pm UTC](https://forum.opencyphal.org/t/yakut-the-new-name-for-pyuavcan-cli-tool/1049/1 "2020-12-30T21:32:53Z")

</div>

This change was first [announced on GitHub](https://github.com/UAVCAN/pyuavcan/issues/134) two weeks ago and then the name for the new tool was [briefly discussed on this forum](https://forum.opencyphal.org/t/migrating-the-pyuavcan-cli-tool-into-a-different-package/1039/7).

Today I finally finished migrating the codebase, setting up the test rigging, and implementing the UX improvements I’ve long had in mind. This is no rocket science but it turned out to be much more time-consuming than I anticipated, but here we are – the first functional version 0.1 is already available from PyPI:

> **[Client Challenge](https://pypi.org/project/yakut/)**

This is still early-stage so there are some insignificant usability issues but my extensive local testing indicates that it is at least generally functional. My next steps will include improving the docs and error reporting. Currently, the tool spits out long stack traces instead of concise messages; this is actually a regression compared to its original state caused by migration from argparse to Click.

The commands differ slightly compared to the original. First, there are two renamings:

- `pick-node-id` → `accommodate`
- `dsdl-generate-package` → `compile`

Then, common arguments like `--transport` and `--format` now go _before_ the subcommand name, not the other way around. It was like this:

```
pyuavcan pub --transport='MyTransport()' blah.Blah.1.0 '{}'

```

Now it is like this:

```
yakut --transport='MyTransport()' pub blah.Blah.1.0 '{}'

```

A brief hands-on intro is [given in the README](https://github.com/UAVCAN/yakut), and extra details are available from `yakut --help`, as always.

The name is after Yakutia because Yukon is taken.

---

<div class="post-metadata">

**Author:** ![generationmake](https://forum.opencyphal.org/user_avatar/forum.opencyphal.org/generationmake/32/611_2.png) [@generationmake](https://forum.opencyphal.org/u/generationmake)\
**Post date:** [January 1, 2021, 9:42am UTC](https://forum.opencyphal.org/t/yakut-the-new-name-for-pyuavcan-cli-tool/1049/2 "2021-01-01T09:42:52Z")

</div>

Hi.

To be clear:  
Was the option “-M” of pyuavcan replaced by “-v” of yakut?

Thank you

---

<div class="post-metadata">

**Author:** ![pavel.kirienko](https://forum.opencyphal.org/user_avatar/forum.opencyphal.org/pavel.kirienko/32/9_2.png) [@pavel.kirienko](https://forum.opencyphal.org/u/pavel.kirienko)\
**Post date:** [January 1, 2021, 7:08pm UTC](https://forum.opencyphal.org/t/yakut-the-new-name-for-pyuavcan-cli-tool/1049/3 "2021-01-01T19:08:21Z")

</div>

No, `-v` just enables verbose logging.

`yakut subscribe` shows metadata by default because I observed that it is needed more often than it’s not. It can be disabled using `--no-metadata` or `-M`. For completeness, there is option `--with-metadata` or `+M` that has no effect for this command.

`yakut call` does not show metadata by default because it is much less relevant for service calls, but you can still see it if you pass the same option `--with-metadata` or `+M`. Conversely, option `--no-metadata` or `-M` has no effect here.

---

<div class="post-metadata">

**Author:** ![generationmake](https://forum.opencyphal.org/user_avatar/forum.opencyphal.org/generationmake/32/611_2.png) [@generationmake](https://forum.opencyphal.org/u/generationmake)\
**Post date:** [January 1, 2021, 7:31pm UTC](https://forum.opencyphal.org/t/yakut-the-new-name-for-pyuavcan-cli-tool/1049/4 "2021-01-01T19:31:34Z")

</div>

ok, thanks for the clearification. I just noticed that “-M” behaves now differently.

Turns out I haven’t looked in the right help.

`yakut sub --help` shows all the info needed.

---

<div class="post-metadata">

**Author:** ![polaris](https://forum.opencyphal.org/letter_avatar_proxy/v4/letter/p/7ab992/32.png) [@polaris](https://forum.opencyphal.org/u/polaris)\
**Post date:** [January 18, 2021, 11:39am UTC](https://forum.opencyphal.org/t/yakut-the-new-name-for-pyuavcan-cli-tool/1049/5 "2021-01-18T11:39:02Z")

</div>

Hello, how is the right way to subscribe to a Heartbeat now?

It was something like that before:  
`uvc sub uavcan.node.Heartbeat.1.0`

I have tried it with yakut this way:  
`yakut sub uavcan.node.Heartbeat.1.0`  
but got an error:  
`ValueError: The data spec string specifies a non-existent short type name: 'uavcan.node.Heartbeat.1.0'`  
I have tried it the other way:  
`yakut sub 7509.uavcan.node.Heartbeat.1.0`

But the result was the same.

---

<div class="post-metadata">

**Author:** ![pavel.kirienko](https://forum.opencyphal.org/user_avatar/forum.opencyphal.org/pavel.kirienko/32/9_2.png) [@pavel.kirienko](https://forum.opencyphal.org/u/pavel.kirienko)\
**Post date:** [January 18, 2021, 12:05pm UTC](https://forum.opencyphal.org/t/yakut-the-new-name-for-pyuavcan-cli-tool/1049/6 "2021-01-18T12:05:56Z")

</div>

You seem to have the legacy library installed. Get rid of it to fix the problem: `pip uninstall uavcan`. The error is because the tool is looking for the data type in the library package instead of the compiled one. We should look into making the error message more meaningful here.

---

<div class="post-metadata">

**Author:** ![polaris](https://forum.opencyphal.org/letter_avatar_proxy/v4/letter/p/7ab992/32.png) [@polaris](https://forum.opencyphal.org/u/polaris)\
**Post date:** [January 18, 2021, 12:41pm UTC](https://forum.opencyphal.org/t/yakut-the-new-name-for-pyuavcan-cli-tool/1049/7 "2021-01-18T12:41:36Z")

</div>

Thank you, it was really the case!

But is there a possibility to run both versions on the same PC without any collisions?

---

<div class="post-metadata">

**Author:** ![pavel.kirienko](https://forum.opencyphal.org/user_avatar/forum.opencyphal.org/pavel.kirienko/32/9_2.png) [@pavel.kirienko](https://forum.opencyphal.org/u/pavel.kirienko)\
**Post date:** [January 18, 2021, 4:46pm UTC](https://forum.opencyphal.org/t/yakut-the-new-name-for-pyuavcan-cli-tool/1049/8 "2021-01-18T16:46:44Z")

</div>

You can use venv or something of that sort: [https://docs.python.org/3/library/venv.html](https://docs.python.org/3/library/venv.html)
