MCPcopy Index your code
hub / github.com/pyinvoke/invoke / add_collection

Method add_collection

invoke/collection.py:285–324  ·  view source on GitHub ↗

Add `.Collection` ``coll`` as a sub-collection of this one. :param coll: The `.Collection` to add. :param str name: The name to attach the collection as. Defaults to the collection's own internal name. :param default: Whether th

(
        self,
        coll: "Collection",
        name: Optional[str] = None,
        default: Optional[bool] = None,
    )

Source from the content-addressed store, hash-verified

283 self.default = name
284
285 def add_collection(
286 self,
287 coll: "Collection",
288 name: Optional[str] = None,
289 default: Optional[bool] = None,
290 ) -> None:
291 """
292 Add `.Collection` ``coll`` as a sub-collection of this one.
293
294 :param coll: The `.Collection` to add.
295
296 :param str name:
297 The name to attach the collection as. Defaults to the collection's
298 own internal name.
299
300 :param default:
301 Whether this sub-collection('s default task-or-collection) should
302 be the default invocation of the parent collection.
303
304 .. versionadded:: 1.0
305 .. versionchanged:: 1.5
306 Added the ``default`` parameter.
307 """
308 # Handle module-as-collection
309 if isinstance(coll, ModuleType):
310 coll = Collection.from_module(coll)
311 # Ensure we have a name, or die trying
312 name = name or coll.name
313 if not name:
314 raise ValueError("Non-root collections must have a name!")
315 name = self.transform(name)
316 # Test for conflict
317 if name in self.tasks:
318 err = "Name conflict: this collection has a task named {!r} already" # noqa
319 raise ValueError(err.format(name))
320 # Insert
321 self.collections[name] = coll
322 if default:
323 self._check_default_collision(name)
324 self.default = name
325
326 def _check_default_collision(self, name: str) -> None:
327 if self.default:

Calls 3

transformMethod · 0.95
from_moduleMethod · 0.80

Tested by

no test coverage detected