Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
23 changes: 23 additions & 0 deletions docs/guide/namespaces.md
Original file line number Diff line number Diff line change
Expand Up @@ -159,3 +159,26 @@ dc.read_values(scores=[0.8, 1.5, 2.1]).save("metrics")

ds = dc.read_dataset("local.local.metrics")
ds.show()
```

## Removing Namespaces and Projects

Use `delete_namespace` to remove an empty namespace or an empty project within a namespace. Delete will fail if the target is not empty.

### Signature

```python
def delete_namespace(name: str, session: Optional[Session]) -> None:
```

- **`<namespace>`** — deletes the namespace (must contain no projects or datasets).
- **`<namespace>.<project>`** — deletes the project (must contain no datasets).

### Examples

```python
import datachain as dc

dc.delete_namespace("dev.my-project") # delete project
dc.delete_namespace("dev") # delete namespace
```
2 changes: 2 additions & 0 deletions docs/references/datachain.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,8 @@ for examples of how to create a chain.

::: datachain.lib.dc.datasets.move_dataset

::: datachain.lib.namespaces.delete_namespace

::: datachain.lib.dc.hf.read_hf

::: datachain.lib.dc.json.read_json
Expand Down
2 changes: 1 addition & 1 deletion src/datachain/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@
VideoFrame,
)
from datachain.lib.model_store import ModelStore
from datachain.lib.namespaces import delete as delete_namespace
from datachain.lib.namespaces import delete_namespace
from datachain.lib.projects import create as create_project
from datachain.lib.udf import Aggregator, Generator, Mapper
from datachain.lib.utils import AbstractUDF, DataChainError
Expand Down
9 changes: 4 additions & 5 deletions src/datachain/lib/namespaces.py
Original file line number Diff line number Diff line change
Expand Up @@ -77,7 +77,7 @@ def ls(session: Optional[Session] = None) -> list[Namespace]:
return Session.get(session).catalog.metastore.list_namespaces()


def delete(name: str, session: Optional[Session]) -> None:
def delete_namespace(name: str, session: Optional[Session]) -> None:
"""
Removes a namespace by name.

Expand All @@ -88,14 +88,13 @@ def delete(name: str, session: Optional[Session]) -> None:
as these cannot be removed.

Parameters:
name : The name of the namespace.
session : Session to use for getting project.
name: The name of the namespace.
session: Session to use for getting project.

Example:
```py
import datachain as dc
from datachain.lib.namespace import delete as delete_namespace
delete_namespace("dev")
dc.delete_namespace("dev")
```
"""
session = Session.get(session)
Expand Down
2 changes: 1 addition & 1 deletion tests/unit/lib/test_namespace.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
NamespaceNotFoundError,
)
from datachain.lib.namespaces import create as create_namespace
from datachain.lib.namespaces import delete as delete_namespace
from datachain.lib.namespaces import delete_namespace
from datachain.lib.namespaces import get as get_namespace
from datachain.lib.namespaces import ls as ls_namespaces
from datachain.lib.projects import create as create_project
Expand Down
2 changes: 1 addition & 1 deletion tests/unit/lib/test_project.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
ProjectNotFoundError,
)
from datachain.lib.namespaces import create as create_namespace
from datachain.lib.namespaces import delete as delete_namespace
from datachain.lib.namespaces import delete_namespace
from datachain.lib.namespaces import get as get_namespace
from datachain.lib.projects import get as get_project
from datachain.lib.projects import ls as ls_projects
Expand Down