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
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
The diff you're trying to view is too large. We only load the first 3000 changed files.
2 changes: 1 addition & 1 deletion .coveragerc
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
[run]
source = blarify
source = cue
omit =
*/tests/*
*/test_*
Expand Down
12 changes: 6 additions & 6 deletions .github/workflows/tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -70,16 +70,16 @@ jobs:

- name: Run linting
run: |
poetry run ruff check blarify/ || true
poetry run ruff format --check blarify/ || true
poetry run ruff check cue/ || true
poetry run ruff format --check cue/ || true

- name: Run type checking with pyright
run: |
poetry run pyright blarify/graph/graph.py || echo "Type checking in progress - some modules still need type annotations"
poetry run pyright cue/graph/graph.py || echo "Type checking in progress - some modules still need type annotations"

- name: Run legacy mypy check (transitional)
run: |
poetry run mypy blarify/ --ignore-missing-imports || echo "MyPy check - transitioning to pyright"
poetry run mypy cue/ --ignore-missing-imports || echo "MyPy check - transitioning to pyright"

- name: Run tests with coverage
env:
Expand Down Expand Up @@ -159,7 +159,7 @@ jobs:
poetry run python -m pytest tests/test_integration*.py -v || echo "Integration tests need work"

# Run MCP server tests if they exist
if [ -d "mcp-blarify-server/tests" ]; then
cd mcp-blarify-server
if [ -d "mcp-cue-server/tests" ]; then
cd mcp-cue-server
poetry run python -m pytest tests/ -v || echo "MCP tests need work"
fi
4 changes: 2 additions & 2 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@

# dont ignore anything in blarify/vendor
# dont ignore anything in cue/vendor

__pycache__/
.venv/
Expand All @@ -18,7 +18,7 @@ static/
easy/


!blarify/vendor/**/*.json
!cue/vendor/**/*.json
!.claude/settings.json
!pyrightconfig.json

Expand Down
34 changes: 17 additions & 17 deletions PYRIGHT_DEVELOPER_GUIDE.md
Original file line number Diff line number Diff line change
Expand Up @@ -51,16 +51,16 @@ For optimal development experience, install the Pylance extension:

```bash
# Check entire codebase
poetry run pyright blarify/
poetry run pyright cue/

# Check specific file
poetry run pyright blarify/graph/graph.py
poetry run pyright cue/graph/graph.py

# Check with statistics
poetry run pyright blarify/ --stats
poetry run pyright cue/ --stats

# Generate JSON output for CI
poetry run pyright blarify/ --outputjson
poetry run pyright cue/ --outputjson
```

### Development Workflow
Expand All @@ -70,7 +70,7 @@ poetry run pyright blarify/ --outputjson
poetry run pyright <file_you_modified>

# Full validation before commit
poetry run pyright blarify/
poetry run pyright cue/
```

## Type Annotation Guidelines
Expand Down Expand Up @@ -134,7 +134,7 @@ For circular imports, use the TYPE_CHECKING pattern:
from typing import TYPE_CHECKING

if TYPE_CHECKING:
from blarify.graph.relationship import Relationship
from cue.graph.relationship import Relationship

class Node:
def get_relationships(self) -> List["Relationship"]:
Expand Down Expand Up @@ -170,23 +170,23 @@ def as_object(self) -> Dict[str, Any]:

### ✅ Fully Typed Modules

- `blarify/graph/graph.py` - **Zero pyright errors**
- `blarify/graph/node/types/node.py` - Basic typing complete
- `blarify/graph/relationship/relationship.py` - Basic typing complete
- `cue/graph/graph.py` - **Zero pyright errors**
- `cue/graph/node/types/node.py` - Basic typing complete
- `cue/graph/relationship/relationship.py` - Basic typing complete

### 🔄 In Progress

- `blarify/graph/node/` - Node hierarchy (175 errors)
- `cue/graph/node/` - Node hierarchy (175 errors)
- Import cycle resolution across modules
- Optional type parameter fixes

### ⏳ Pending

- Database managers (`blarify/db_managers/`)
- LSP integration (`blarify/code_references/`)
- Language processing (`blarify/code_hierarchy/`)
- LLM integration (`blarify/llm_descriptions/`)
- File system operations (`blarify/project_file_explorer/`)
- Database managers (`cue/db_managers/`)
- LSP integration (`cue/code_references/`)
- Language processing (`cue/code_hierarchy/`)
- LLM integration (`cue/llm_descriptions/`)
- File system operations (`cue/project_file_explorer/`)
- Test files (`tests/`)

## Error Categories and Solutions
Expand Down Expand Up @@ -281,15 +281,15 @@ The project uses gradual adoption:
```yaml
- name: Run type checking with pyright
run: |
poetry run pyright blarify/graph/graph.py || echo "Type checking in progress"
poetry run pyright cue/graph/graph.py || echo "Type checking in progress"
```

### Future Pipeline (Target)

```yaml
- name: Run type checking
run: |
poetry run pyright blarify/
poetry run pyright cue/
```

## Contributing
Expand Down
20 changes: 10 additions & 10 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,18 +16,18 @@ Blarify supports the following languages out of the box:
- C#
- PHP

**Note**: Blarify is designed to be robust. If a language parser is not installed or fails to load, Blarify will continue to work for other supported languages, displaying a warning for the missing language support. See [Language Support Documentation](blarify/LANGUAGE_SUPPORT.md) for more details.
**Note**: Blarify is designed to be robust. If a language parser is not installed or fails to load, Blarify will continue to work for other supported languages, displaying a warning for the missing language support. See [Language Support Documentation](cue/LANGUAGE_SUPPORT.md) for more details.

# Example

<img src="https://raw.githubusercontent.com/blarApp/blarify/refs/heads/main/docs/visualisation.png"></img>
<img src="https://raw.githubusercontent.com/blarApp/cue/refs/heads/main/docs/visualisation.png"></img>
This graph was generated from the code in this repository.

# Quickstart

Get started with blarify by following our quickstart guide:
Get started with cue by following our quickstart guide:

[➡️ Quickstart Guide](https://github.com/blarApp/blarify/blob/main/docs/quickstart.md)
[➡️ Quickstart Guide](https://github.com/blarApp/cue/blob/main/docs/quickstart.md)

# Article

Expand All @@ -41,7 +41,7 @@ Read our article on Medium to learn more about the motivation behind this projec
- **Multi-Language Support**: Supports Python, JavaScript, TypeScript, Ruby, Go, C#, PHP, and Java
- **LLM-Generated Descriptions** (New!): Optionally generate natural language descriptions for code elements using Azure OpenAI
- **Documentation Knowledge Graph** (New!): Parse documentation files to extract concepts, entities, and automatically link them to relevant code
- **Gitignore Integration** (New!): Automatically excludes files matching `.gitignore` patterns, with `.blarignore` for additional exclusions
- **Gitignore Integration** (New!): Automatically excludes files matching `.gitignore` patterns, with `.cueignore` for additional exclusions
- **Graph Database Integration**: Export to Neo4j or FalkorDB for visualization and querying
- **Incremental Updates**: Efficiently update the graph when code changes

Expand Down Expand Up @@ -75,7 +75,7 @@ Blarify now automatically respects your `.gitignore` patterns, ensuring that ver
## How it works

- **Automatic `.gitignore` support**: All patterns in `.gitignore` files are automatically applied
- **`.blarignore` for additional exclusions**: Create a `.blarignore` file for Blarify-specific exclusions
- **`.cueignore` for additional exclusions**: Create a `.cueignore` file for Blarify-specific exclusions
- **Nested `.gitignore` files**: Supports `.gitignore` files in subdirectories
- **Full pattern syntax**: Supports all gitignore patterns including globs, directory markers, and comments

Expand All @@ -94,16 +94,16 @@ graph_builder = GraphBuilder(
use_gitignore=False
)

# Specify custom .blarignore path
# Specify custom .cueignore path
graph_builder = GraphBuilder(
root_path="/path/to/project",
blarignore_path="/path/to/.blarignore"
cueignore_path="/path/to/.cueignore"
)
```

## .blarignore Example
## .cueignore Example

Create a `.blarignore` file in your project root:
Create a `.cueignore` file in your project root:

```
# Exclude test files
Expand Down
79 changes: 0 additions & 79 deletions blarify/code_hierarchy/languages/__init__.py

This file was deleted.

96 changes: 0 additions & 96 deletions blarify/code_hierarchy/languages/csharp_definitions.py

This file was deleted.

Loading