Skip to content

Folder

v5.0.0 uses the object-oriented models

This page documents the legacy Folder entity class. New code should use the object-oriented Folder model.

synapseclient.entity.Folder

Bases: Entity

Represents a folder in Synapse.

WARNING - This class is deprecated and will no longer be maintained. Please use the Folder model from synapseclient.models.Folder instead.

Folders must have a name and a parent and can optionally have annotations.

ATTRIBUTE DESCRIPTION
name

The name of the folder

parent

The parent project or folder

properties

A map of Synapse properties

annotations

A map of user defined annotations

local_state

Internal use only

TYPE: dict

Using this class

Creating an instance and storing the folder

folder = Folder(name='my data', parent=project)
folder = syn.store(folder)
Migration to the object-oriented model

 

The legacy Folder class is created and persisted through the Synapse client. The object-oriented Folder model stores itself.

# Old approach (DEPRECATED)
# from synapseclient import Folder
# folder = syn.store(Folder(name="data", parent="syn123"))

# New approach (RECOMMENDED)
from synapseclient import Synapse
from synapseclient.models import Folder

syn = Synapse()
syn.login()

folder = Folder(name="data", parent_id="syn123").store()
print(folder.id)
Source code in synapseclient/entity.py
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
@deprecated(
    version="4.14.0",
    reason="To be removed in 5.0.0. "
    "Use the Folder model from synapseclient.models.Folder instead.",
)
class Folder(Entity):
    """
    Represents a folder in Synapse.

    WARNING - This class is deprecated and will no longer be maintained. Please use the Folder model from synapseclient.models.Folder instead.

    Folders must have a name and a parent and can optionally have annotations.

    Attributes:
        name: The name of the folder
        parent: The parent project or folder
        properties: A map of Synapse properties
        annotations: A map of user defined annotations
        local_state: Internal use only

    Example: Using this class
        Creating an instance and storing the folder

            folder = Folder(name='my data', parent=project)
            folder = syn.store(folder)

    Example: Migration to the object-oriented model
         

        The legacy Folder class is created and persisted through the Synapse
        client. The object-oriented Folder model stores itself.

        ```python
        # Old approach (DEPRECATED)
        # from synapseclient import Folder
        # folder = syn.store(Folder(name="data", parent="syn123"))

        # New approach (RECOMMENDED)
        from synapseclient import Synapse
        from synapseclient.models import Folder

        syn = Synapse()
        syn.login()

        folder = Folder(name="data", parent_id="syn123").store()
        print(folder.id)
        ```
    """

    _synapse_entity_type = "org.sagebionetworks.repo.model.Folder"

    def __init__(
        self,
        name=None,
        parent=None,
        properties=None,
        annotations=None,
        local_state=None,
        **kwargs,
    ):
        if name:
            kwargs["name"] = name
        super(Folder, self).__init__(
            concreteType=Folder._synapse_entity_type,
            properties=properties,
            annotations=annotations,
            local_state=local_state,
            parent=parent,
            **kwargs,
        )