## lamindb.Project

| class lamindb.Project(name: str, type: Project | None | Unset = UNSET, is_type: bool = False, abbr: str | None = None, url: str | None = None, description: str | None = None, start_date: DateType | None = None, end_date: DateType | None = None, branch: Branch | None = None, space: Space | None = None) |
class lamindb.Project(*db_args)

 Bases: "SQLRecord", "HasType", "CanCurate", "HasAbbr", "TracksRun",
 "TracksUpdates", "ValidateFields"

 Projects to label artifacts, transforms, records, and runs.

 Parameters:
 * **name** -- "str" Title or name of the project.

| * **type** -- "Project | None = None" A project type, see |
 "type".

 * **is_type** -- "bool = False" Whether this is a project type.

| * **abbr** -- "str | None = None" An abbreviation. |

| * **url** -- "str | None = None" A URL. |

| * **description** -- "str | None = None" A description. |

| * **start_date** -- "date | None = None" Date the project |
 started.

| * **end_date** -- "date | None = None" Date the project ended. |

| * **branch** -- "Branch | None = None" A branch. If "None", uses |
 the current branch.

| * **space** -- "Space | None = None" A space. If "None", uses |
 the current space.

# Examples

 Create a project and annotate an artifact with it:

 project = Project(
 name="My Project Name",
 abbr="MPN",
 url="https://example.com/my_project",
 ).save()
 artifact.projects.add(project)  # <-- labels the artifact with the project
 ln.track(project=project) # <-- automtically labels entities during the run

 property status: Literal['planned', 'up-next', 'active', 'completed', 'paused', 'background', 'canceled', 'archived']

 Project status.

 Get and set the status of the project.

| --- | --- | --- |
| status | code | description |
| ============== | ======= | ============================================================ |
| "planned" | -3 | The project is planned but not yet started. |
| --- | --- | --- |
| "up-next" | -2 | The project is queued as the next item to start. |
| --- | --- | --- |
| "active" | -1 | The project is currently active. |
| --- | --- | --- |
| "completed" | 0 | The project completed successfully. |
| --- | --- | --- |
| "paused" | 2 | The project is temporarily paused. |
| --- | --- | --- |
| "background" | 1 | The project is still being worked on in the background. |
| --- | --- | --- |
| "canceled" | 3 | The project was canceled. |
| --- | --- | --- |
| "archived" | 4 | The project is archived and no longer actively tracked. |
| --- | --- | --- |

 The database stores the project status as an integer code in
 field "_status_code".

 -[ Example ]-

 See the status of a project:

 project.status
 #> 'planned'

 Update the status:

 project.status = "active"
 project.save()

 Query by status:

 ln.Project.filter(status="active").to_dataframe()

 uid: str

 Universal id, valid across DB instances.

 name: str

 Title or name of the Project.

| description: str | None |

 A description.

| abbr: str | None |

 An abbreviation.

| url: str | None |

 A URL.

| start_date: DateType | None |

 Date of start of the project.

| end_date: DateType | None |

 Date of start of the project.

| type: Project | None |

 Type of project (e.g., 'Program', 'Project', 'GithubIssue',
 'Task') ← "projects".

 parents: RelatedManager[Project]

 Parent projects, the super-projects owning this project ←
 "children".

 predecessors: RelatedManager[Project]

 The preceding projects required by this project ← "successors".

 artifacts: RelatedManager[Artifact]

 Annotated artifacts ← "projects".

 transforms: RelatedManager[Transform]

 Annotated transforms ← "projects".

 runs: RelatedManager[Run]

 Annotated runs ← "projects".

 ulabels: RelatedManager[ULabel]

 Annotated ulabels ← "projects".

 features: RelatedManager[Feature]

 Annotated features ← "projects".

 schemas: RelatedManager[Schema]

 Annotated schemas ← "projects".

 linked_in_records: RelatedManager[Record]

 Linked in records ← "linked_projects".

 records: RelatedManager[Record]

 Annotated records ← "projects".

 collections: RelatedManager[Collection]

 Annotated collections ← "projects".

 references: RelatedManager[Reference]

 Annotated references ← "projects".

 blocks: RelatedManager[Block]

 Annotated blocks ← "projects".

 users: RelatedManager[User]

 Users participating in this project ← "user".

 branches: RelatedManager[Branch]

 Annotated branches ← "projects".

 projects: RelatedManager[Project]

 Projects of this type (can only be non-empty if "is_type" is
 "True").

 children: RelatedManager[Project]

 Child projects, the sub-projects owned by this project.

 Reverse accessor for ".parents".

 successors: RelatedManager[Project]

 The succeeding projects requiring this project.

 Reverse accessor for ".predecessors".

 ablocks: RelatedManager[ProjectBlock]

 Attached blocks ← "project".

 query_projects(depth=None)

 Query projects of sub types.

 While ".projects" retrieves the projects with the current type,
 this method also retrieves sub types and the projects with sub
 types of the current type.

 Parameters:
| **depth** ("int" | "None", default: "None") -- How many type |
 hops to follow. "None" walks the whole subtree. "1" returns
 only the direct projects of this type.

 Return type:
 "QuerySet"