def directory_fmt(directory):
return directory.rstrip('<STR_LIT:/>') + '<STR_LIT:/>'<EOL>
In ensure that directories end with '/'.

    Frequently we need to ensure that directory paths end with a forward slash.
    Pythons dirname and split functions in the path library treat this
    inconsistently creating this requirement. This function is simple but was
    written to centralize documentation of an often used (and often explained)
    requirement in this codebase.

    >>> os.path.dirname('gs://bucket/folder/file.txt')
    'gs://bucket/folder'
    >>> directory_fmt(os.path.dirname('gs://bucket/folder/file.txt'))
    'gs://bucket/folder/'
    >>> os.path.dirname('/newfile')
    '/'
    >>> directory_fmt(os.path.dirname('/newfile'))
    '/'

    Specifically we need this since copy commands must know whether the
    destination is a directory to function properly. See the following shell
    interaction for an example of the inconsistency. Notice that text files are
    copied as expected but the bam is copied over the directory name.

    Multiple files copy, works as intended in all cases:
        $ touch a.txt b.txt
        $ gsutil cp ./*.txt gs://mybucket/text_dest
        $ gsutil ls gs://mybucket/text_dest/
              0  2017-07-19T21:44:36Z  gs://mybucket/text_dest/a.txt
              0  2017-07-19T21:44:36Z  gs://mybucket/text_dest/b.txt
        TOTAL: 2 objects, 0 bytes (0 B)

    Single file copy fails to copy into a directory:
        $ touch 1.bam
        $ gsutil cp ./*.bam gs://mybucket/bad_dest
        $ gsutil ls gs://mybucket/bad_dest
                 0  2017-07-19T21:46:16Z  gs://mybucket/bad_dest
        TOTAL: 1 objects, 0 bytes (0 B)

    Adding a trailing forward slash fixes this:
        $ touch my.sam
        $ gsutil cp ./*.sam gs://mybucket/good_folder
        $ gsutil ls gs://mybucket/good_folder
                 0  2017-07-19T21:46:16Z  gs://mybucket/good_folder/my.sam
        TOTAL: 1 objects, 0 bytes (0 B)

    Args:
      directory (str): a uri without an blob or file basename.

    Returns:
      the directory with a trailing slash.