---
title: repo | CodeWeaver Docs
description: API reference for codeweaver.core.repo
url: "https://docs.knitli.com/api/core/repo"
type: static
generatedAt: "2026-04-17T17:21:08.054Z"
---

# repo
       [Open in ChatGPT](https://chatgpt.com/?q=Read%20https%3A%2F%2Fdocs.knitli.com%2Fcodeweaver%2Fapi%2Fcore%2Frepo%2F.%20I%20want%20to%20ask%20questions%20about%20it.)[Open in Claude](https://claude.ai/new?q=Read%20https%3A%2F%2Fdocs.knitli.com%2Fcodeweaver%2Fapi%2Fcore%2Frepo%2F.%20I%20want%20to%20ask%20questions%20about%20it.)[View in Markdown](/codeweaver/api/core/repo.md)       [Share on LinkedIn](https://www.linkedin.com/sharing/share-offsite/?url=https%3A%2F%2Fdocs.knitli.com%2Fcodeweaver%2Fapi%2Fcore%2Frepo%2F)[Share on X](https://x.com/intent/tweet?url=https%3A%2F%2Fdocs.knitli.com%2Fcodeweaver%2Fapi%2Fcore%2Frepo%2F&text=repo)[Share on Threads](https://threads.net/intent/post?url=https%3A%2F%2Fdocs.knitli.com%2Fcodeweaver%2Fapi%2Fcore%2Frepo%2F&text=repo)[Share on Bluesky](https://bsky.app/intent/compose?text=repo%20https%3A%2F%2Fdocs.knitli.com%2Fcodeweaver%2Fapi%2Fcore%2Frepo%2F)[Share on Facebook](https://www.facebook.com/sharer/sharer.php?u=https%3A%2F%2Fdocs.knitli.com%2Fcodeweaver%2Fapi%2Fcore%2Frepo%2F)[Share on Reddit](https://reddit.com/submit?url=https%3A%2F%2Fdocs.knitli.com%2Fcodeweaver%2Fapi%2Fcore%2Frepo%2F&title=repo)[Share on Hacker News](https://news.ycombinator.com/submitlink?u=https%3A%2F%2Fdocs.knitli.com%2Fcodeweaver%2Fapi%2Fcore%2Frepo%2F&t=repo)[Share on Email](mailto:?subject=repo&body=https%3A%2F%2Fdocs.knitli.com%2Fcodeweaver%2Fapi%2Fcore%2Frepo%2F)[Share on WhatsApp](https://wa.me/?text=repo%20https%3A%2F%2Fdocs.knitli.com%2Fcodeweaver%2Fapi%2Fcore%2Frepo%2F)[Share on Telegram](https://t.me/share/url?url=https%3A%2F%2Fdocs.knitli.com%2Fcodeweaver%2Fapi%2Fcore%2Frepo%2F&text=repo)
# `codeweaver.core.repo`
[Section titled “codeweaver.core.repo”](#codeweavercorerepo)
Heuristic-based repository environment and topography detection.

## Class: `DirectoryPurpose`
[Section titled “Class: DirectoryPurpose”](#class-directorypurpose)
Enum for common directory purposes in a repository.

### Method: `validators`
[Section titled “Method: validators”](#method-validators)

**

```
validators()
```

Each member has its own validator to assess membership.

## Class: `RepoChecklist`
[Section titled “Class: RepoChecklist”](#class-repochecklist)
A checklist-style representation of repository structure.

The attribute names aren’t 1-for-1 to directory names. For example, `has_src_dir` indicates a directory named `src` or `source`.

### Method: `from_files`
[Section titled “Method: from_files”](#method-from_files)

**

```
from_files()
```

Create a RepoChecklist from a list of file paths.

Args: files: A sequence of file paths in the repository. project_path: The root directory of the project.

Returns: An instance of RepoChecklist with detected directories and files.

## Class: `RepoChecklistDict`
[Section titled “Class: RepoChecklistDict”](#class-repochecklistdict)
A dictionary representation of the RepoChecklist dataclass.

Keys are the attribute names of RepoChecklist, and values are their corresponding types. Used for type hinting in methods that return mixed types.

## Class: `RepoDirectory`
[Section titled “Class: RepoDirectory”](#class-repodirectory)
Representation of a directory in the repository with its purpose.

`RepoDirectory` also have detailed properties that are lazily evaluated, and helper methods for working with directories.