MCPcopy Create free account
hub / github.com/diffgram/diffgram / list

Method list

shared/database/source_control/working_dir.py:128–221  ·  view source on GitHub ↗

Lists directories/datasets in a project :param session: :param project_id: :param exclude_archived: :param limit: :param return_kind: :param date_to: :param date_from: :param date_to_string: :param date_from_string:

(
        session,
        project_id,
        member,
        exclude_archived = True,
        limit = None,
        return_kind = "objects",
        date_to = None,  # datetime
        date_from = None,  # datetime
        date_to_string: str = None,
        date_from_string: str = None,
        nickname: str = None,
        nickname_match_type: str = "ilike",  # substring and helps if case Aa is off
        order_by_class_and_attribute = None,
        order_by_direction = desc,

    )

Source from the content-addressed store, hash-verified

126
127 @staticmethod
128 def list(
129 session,
130 project_id,
131 member,
132 exclude_archived = True,
133 limit = None,
134 return_kind = "objects",
135 date_to = None, # datetime
136 date_from = None, # datetime
137 date_to_string: str = None,
138 date_from_string: str = None,
139 nickname: str = None,
140 nickname_match_type: str = "ilike", # substring and helps if case Aa is off
141 order_by_class_and_attribute = None,
142 order_by_direction = desc,
143
144 ):
145 """
146 Lists directories/datasets in a project
147 :param session:
148 :param project_id:
149 :param exclude_archived:
150 :param limit:
151 :param return_kind:
152 :param date_to:
153 :param date_from:
154 :param date_to_string:
155 :param date_from_string:
156 :param nickname:
157 :param nickname_match_type:
158 :param order_by_class_and_attribute:
159 :param order_by_direction:
160 :return:
161 """
162 from shared.database.project import Project
163 project = Project.get_by_id(session = session, id = project_id)
164 query = session.query(WorkingDir).filter(
165 WorkingDir.project_id == project_id,
166 or_(WorkingDir.archived == False, WorkingDir.archived.is_(None))
167
168 )
169
170 from shared.database.permissions.roles import ValidObjectTypes
171
172 # Permissions: get datasets that user can see
173 policy_engine = PolicyEngine(session = session, project = project)
174 perm_result = policy_engine.get_allowed_object_id_list(
175 member = member,
176 object_type = ValidObjectTypes.dataset,
177 perm = DatasetPermissions.dataset_view
178 )
179
180 if nickname:
181 if nickname_match_type == "ilike":
182 nickname_search = f"%{nickname}%"
183 query = query.filter(WorkingDir.nickname.ilike(nickname_search))
184 else:
185 query = query.filter(WorkingDir.nickname == nickname)

Callers

nothing calls this directly

Calls 4

PolicyEngineClass · 0.90
get_by_idMethod · 0.45
countMethod · 0.45

Tested by

no test coverage detected