cwltool.pathmapper
==================

.. py:module:: cwltool.pathmapper


Classes
-------

.. autoapisummary::

   cwltool.pathmapper.MapperEnt
   cwltool.pathmapper.PathMapper


Module Contents
---------------

.. py:class:: MapperEnt

   Bases: :py:obj:`NamedTuple`

   .. autoapi-inheritance-diagram:: cwltool.pathmapper.MapperEnt
      :parts: 1


   Mapper entries.


   .. py:attribute:: resolved
      :type:  str

      The "real" path on the local file system (after resolving relative paths
      and traversing symlinks



   .. py:attribute:: target
      :type:  str

      The path on the target file system (under stagedir)



   .. py:attribute:: type
      :type:  str | None

      The object type. One of "File", "Directory", "CreateFile", "WritableFile",
      or "CreateWritableFile".



   .. py:attribute:: staged
      :type:  bool | None

      If the File has been staged yet.



.. py:class:: PathMapper(referenced_files, basedir, stagedir, separateDirs = True)

   Mapping of files from relative path provided in the file to a tuple.

   (absolute local path, absolute container path)

   The tao of PathMapper:

   The initializer takes a list of ``class: File`` and ``class: Directory``
   objects, a base directory (for resolving relative references) and a staging
   directory (where the files are mapped to).

   The purpose of the setup method is to determine where each File or
   Directory should be placed on the target file system (relative to
   stagedir).

   If ``separatedirs=True``, unrelated files will be isolated in their own
   directories under stagedir. If ``separatedirs=False``, files and directories
   will all be placed in stagedir (with the possibility for name
   collisions...)

   The path map maps the "location" of the input Files and Directory objects
   to a tuple (resolved, target, type). The "resolved" field is the "real"
   path on the local file system (after resolving relative paths and
   traversing symlinks). The "target" is the path on the target file system
   (under stagedir). The type is the object type (one of File, Directory,
   CreateFile, WritableFile, CreateWritableFile).

   The latter three (CreateFile, WritableFile, CreateWritableFile) are used by
   InitialWorkDirRequirement to indicate files that are generated on the fly
   (CreateFile and CreateWritableFile, in this case "resolved" holds the file
   contents instead of the path because they file doesn't exist) or copied
   into the output directory so they can be opened for update ("r+" or "a")
   (WritableFile and CreateWritableFile).



   .. py:attribute:: stagedir


   .. py:attribute:: separateDirs
      :value: True



   .. py:method:: visitlisting(listing, stagedir, basedir, copy = False, staged = False)


   .. py:method:: visit(obj, stagedir, basedir, copy = False, staged = False)


   .. py:method:: setup(referenced_files, basedir)

      For each file, set the target to its own directory.

      Also processes secondary files into that same directory.



   .. py:method:: mapper(src)


   .. py:method:: files()

      Return a dictionary keys view of locations.



   .. py:method:: items()

      Return a dictionary items view.



   .. py:method:: items_exclude_children()

      Return a dictionary items view minus any entries which are children of other entries.



   .. py:method:: reversemap(target)

      Find the (source, resolved_path) for the given target, if any.



   .. py:method:: update(key, resolved, target, ctype, stage)

      Update an existing entry.



   .. py:method:: __contains__(key)

      Test for the presence of the given relative path in this mapper.



   .. py:method:: __iter__()

      Get iterator for the maps.



