Release 0.7.4

Enhancements

Azure remote support

Guild now provides remote support for Azure! Many thanks to @adam-cattermole for the contribution!

Documentation for Azure VM remote support:

Support for SimpleNamespace flags interface

It’s arguably more elegant in Python to use attribute access for script parameters, rather than a list of global variables or a global dict. Guild now supports using types.SimpleNamespace objects using a namespace:NAME flags-dest spec.

For more information, refer to flags-dest docs. For examples, see the flags project.

Enhancement to ops filtering

Guild now supports more flexible operation filtering as described in issue 121.

The gist:

  • A filter value consists or one, two, or three parts: package, model, and operation
  • / delimits package and model
  • : delimits model and operation
  • Without any delimiter, part is assumed to be the operation
  • Always match against the full part value
  • Support a single wildcard char * that matches any repeating sequence within a part

In the end foo will match these:

pkg/a:foo
a:foo
foo

It will not match:

pkg/foo:a
foo:a
foo-bar

To match foo:a you could use -o a or -o foo:a or foo:*.

Sub-commands in Python CLIs

CLIs that use sub-commands are now supported using additional arguments to the main operation attribute. Guild uses the sub-command when importing flags to ensure that only command-specific flags are imported.

For example, if module logreg supports sub-commands train and test, define a train operation this way:

train:
  main: logreg train
  flags-import: all

In this case, Guild imports flags from the logreg module using the train sub-command.

For more information, see Using additional arguments for sub-commands.

Test support dropped for Python 2 and Python 3.5

While Guild still supports Python 2 and Python 3.5, we’ve dropped test support in our CI process. This is to speed up builds and avoid the increasing number of conflicts with upstream packages and repositories.

Guild will officially drop support for Python 2 in 2022.

Use natural sort when listing files

Rather than sorting files in lexicographic order, Guild now uses the Python package natsort to order files. This results in a more sensible ordering files that have numeric content.

For example, Guild now sorts the following files in this order:

  • img0
  • img1
  • img2
  • img10
  • img20

ipy interface supports accessing archived runs

Many thanks to @dekeul for this contribution!

Use argparse action type information when importing flags

Guild now uses the argparse action type value to infer the flag type on import.

Fixes

Guild view command crashes after a few seconds #205

stop not working with PyTorch data loader #281

requirements.txt not copied to or installed on remote #291

Many thanks to @adam-cattermole for this contribution!

Sync random starts used with ipy modules with CLI behavior

Guild was not using the configured random start count when running batch operations via guild.ipy.

1 Like