Skip to content

Commit db41754

Browse files
authored
chore: configure set-up files (#1)
* Remove obsolete files and directories, including documentation, examples, and integration tests, while updating the .gitignore to exclude new generated files. This cleanup enhances project organization and reduces clutter. * Refactor Natest framework to simplify testing for Dana files. Updated essential commands in CLAUDE.md, streamlined Makefile for dependency management using pip, and revised pyproject.toml to reflect minimal dependencies and Python version compatibility. Enhanced README.md to clarify usage and features, focusing on .na file testing. Removed unnecessary documentation files. * feat: modernize project with uv support and fix package structure - Add natest/__init__.py and natest/cli.py to fix package installation - Update Makefile to prefer uv with pip fallback for faster dependency management - Modernize pyproject.toml with hatchling build system and uv-style dependencies - Add explicit version constraints and enhanced tool configurations - Include uv-specific configurations and workspace support * feat: implement test discovery and execution for Dana files - Introduced Dana test discovery functionality to locate .na files based on specified patterns. - Added execution capabilities for discovered test files using the existing Dana runtime. - Implemented a command-line interface for running tests with options for verbosity and discovery-only mode. - Created a reporting system to format and display test results, including pass/fail status and detailed output. - Added unit tests for the discovery functionality to ensure correct behavior and pattern matching. - Included example Dana test files for validation of the testing framework.
1 parent def14fb commit db41754

289 files changed

Lines changed: 26053 additions & 9871 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.flake8

Lines changed: 0 additions & 5 deletions
This file was deleted.

.gitignore

Lines changed: 69 additions & 172 deletions
Original file line numberDiff line numberDiff line change
@@ -1,182 +1,79 @@
1-
# Byte-compiled / optimized / DLL files
1+
# .gitignore - Natest Git Ignore Rules
2+
# Copyright © 2025 Aitomatic, Inc. Licensed under the MIT License.
3+
4+
# Python
25
__pycache__/
36
*.py[cod]
4-
*$py.class
5-
6-
# C extensions
77
*.so
8-
9-
# Distribution / packaging
10-
.Python
11-
build/
12-
develop-eggs/
13-
dist/
14-
downloads/
15-
eggs/
16-
.eggs/
17-
lib/
18-
lib64/
19-
parts/
20-
sdist/
21-
var/
22-
wheels/
23-
share/python-wheels/
248
*.egg-info/
25-
.installed.cfg
26-
*.egg
27-
MANIFEST
28-
29-
# PyInstaller
30-
# Usually these files are written by a python script from a template
31-
# before PyInstaller builds the exe, so as to inject date/other infos into it.
32-
*.manifest
33-
*.spec
34-
35-
# Installer logs
36-
pip-log.txt
37-
pip-delete-this-directory.txt
38-
39-
# Unit test / coverage reports
40-
htmlcov/
41-
.tox/
42-
.nox/
43-
.coverage
44-
.coverage.*
45-
.cache
46-
nosetests.xml
47-
coverage.xml
48-
*.cover
49-
*.py,cover
50-
.hypothesis/
519
.pytest_cache/
52-
cover/
53-
54-
# Translations
55-
*.mo
56-
*.pot
57-
58-
# Django stuff:
59-
*.log
60-
local_settings.py
61-
db.sqlite3
62-
db.sqlite3-journal
63-
64-
# Flask stuff:
65-
instance/
66-
.webassets-cache
67-
68-
# Scrapy stuff:
69-
.scrapy
70-
71-
# Sphinx documentation
72-
docs/_build/
73-
74-
# PyBuilder
75-
.pybuilder/
76-
target/
77-
78-
# Jupyter Notebook
79-
.ipynb_checkpoints
80-
81-
# IPython
82-
profile_default/
83-
ipython_config.py
84-
85-
# pyenv
86-
# For a library or package, you might want to ignore these files since the code is
87-
# intended to run in multiple environments; otherwise, check them in:
88-
# .python-version
89-
90-
# pipenv
91-
# According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
92-
# However, in case of collaboration, if having platform-specific dependencies or dependencies
93-
# having no cross-platform support, pipenv may install dependencies that don't work, or not
94-
# install all needed dependencies.
95-
#Pipfile.lock
96-
97-
# poetry
98-
# Similar to Pipfile.lock, it is generally recommended to include poetry.lock in version control.
99-
# This is especially recommended for binary packages to ensure reproducibility, and is more
100-
# commonly ignored for libraries.
101-
# https://python-poetry.org/docs/basic-usage/#commit-your-poetrylock-file-to-version-control
102-
#poetry.lock
103-
104-
# pdm
105-
# Similar to Pipfile.lock, it is generally recommended to include pdm.lock in version control.
106-
#pdm.lock
107-
# pdm stores project-wide configurations in .pdm.toml, but it is recommended to not include it
108-
# in version control.
109-
# https://pdm.fming.dev/#use-with-ide
110-
.pdm.toml
111-
112-
# PEP 582; used by e.g. github.com/David-OConnor/pyflow and github.com/pdm-project/pdm
113-
__pypackages__/
114-
115-
# Celery stuff
116-
celerybeat-schedule
117-
celerybeat.pid
118-
119-
# SageMath parsed files
120-
*.sage.py
121-
122-
# Environments
123-
# .env (we do want this, to add the library path during development)
124-
.venv
125-
env/
126-
venv/
127-
ENV/
128-
env.bak/
129-
venv.bak/
130-
131-
# Spyder project settings
132-
.spyderproject
133-
.spyproject
134-
135-
# Rope project settings
136-
.ropeproject
137-
138-
# mkdocs documentation
139-
/site
140-
141-
# mypy
14210
.mypy_cache/
143-
.dmypy.json
144-
dmypy.json
145-
146-
# Pyre type checker
147-
.pyre/
148-
149-
# pytype static type analyzer
150-
.pytype/
11+
.ruff_cache/
15112

152-
# Cython debug symbols
153-
cython_debug/
154-
155-
# PyCharm
156-
# JetBrains specific template is maintained in a separate JetBrains.gitignore that can
157-
# be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore
158-
# and can be added to the global gitignore or merged into this file. For a more nuclear
159-
# option (not recommended) you can uncomment the following to ignore the entire idea folder.
160-
#.idea/
161-
162-
.*.bkp
163-
.*.dtmp
13+
# Environment
14+
.tmp/
15+
tmp/
16+
.venv/
17+
venv/
18+
.env
19+
.env.*
20+
!.env.example
21+
dana-config.json
22+
!dana-config.json.example
16423

165-
.vscode/
166-
poetry.lock
167-
.gcloudignore
24+
# Testing and coverage
25+
.coverage
26+
pytest.ini
27+
28+
# Logs and data
29+
local.db
30+
.dana/
31+
.poet/
32+
logs/
33+
local_executor/
34+
memory-bank/
35+
configs/
36+
37+
# Editors and tools
38+
.qodo/
39+
*.swp
40+
*.swo
41+
.aider*
42+
.claude/
43+
dana-*.vsix
44+
45+
# macOS
46+
.DS_Store
47+
.DS_Store?
16848

169-
node_modules
170-
package.json
171-
package-lock.json
17249

173-
.DS_Store
174-
.*.swp
175-
.*.swap
176-
**/favicon/test
177-
.env
178-
.openssm
179-
__pycache__
180-
/debug.py
181-
/mkdocs.yml
182-
/requirements.txt
50+
# Build artifacts
51+
build/
52+
dist/
53+
*.egg
54+
site/
55+
56+
# Development files
57+
notebooks/
58+
proposal/
59+
uv.lock
60+
node_modules/
61+
.refactoring_*/
62+
.cache/
63+
.ipynb_checkpoints/
64+
.cursor/
65+
66+
.vscode/launch.json
67+
.vscode/settings.json
68+
.deprecated_opendxa
69+
docs/.ai-only/ai_output/
70+
71+
# Data files
72+
local.db
73+
test.db
74+
uploads
75+
dana/api/server/static/
76+
dana/contrib/ui/public/static/
77+
generated/
78+
agents/
79+
docs/.ai-only/ai_output/

.markdownlint.yaml

Lines changed: 100 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,100 @@
1+
# .markdownlint.yaml - Markdown Linting Configuration
2+
# Copyright © 2025 Aitomatic, Inc. Licensed under the MIT License.
3+
4+
# MD004: Unordered list style (enforces consistent bullet style)
5+
MD004: false
6+
ul-style: false
7+
8+
# MD005: Inconsistent indentation for list items at the same level (disallows inconsistent indentation for list items at the same level)
9+
MD005: false
10+
list-indent: false
11+
12+
# MD007: Unordered list indentation (enforces consistent indentation for nested lists)
13+
MD007: false
14+
ul-indent: false
15+
16+
# MD009: Trailing spaces (disallows lines ending with whitespace)
17+
MD009: false
18+
no-trailing-spaces: false
19+
20+
# MD012: Multiple consecutive blank lines (disallows more than one blank line in a row)
21+
MD012: false
22+
no-multiple-blanks: false
23+
24+
# MD013: Line length (enforces maximum line length)
25+
MD013: false
26+
line-length: false
27+
28+
# MD022: Headings should be surrounded by blank lines
29+
MD022: false
30+
blanks-around-headings: false
31+
32+
# MD024: Multiple headings with the same content (disallows duplicate headings)
33+
MD024: false
34+
no-duplicate-heading: false
35+
36+
# MD025: Multiple top-level headings in the same document (enforces a single H1)
37+
MD025: true
38+
single-title: true
39+
40+
# MD026: Trailing punctuation in heading (disallows punctuation at end of headings)
41+
MD026: false
42+
trailing-punctuation: false
43+
44+
# MD028: Blank line inside blockquote (disallows blank lines within blockquotes)
45+
MD028: false
46+
no-blanks-blockquote: false
47+
48+
# MD029: Ordered list item prefix (enforces consistent numbering style)
49+
MD029: false
50+
ol-prefix: false
51+
52+
# MD030: Spaces after list markers (enforces correct spacing after list markers)
53+
MD030: false
54+
list-marker-space: false
55+
56+
# MD031: Fenced code blocks should be surrounded by blank lines
57+
MD031: false
58+
blanks-around-fences: false
59+
60+
# MD032: Lists should be surrounded by blank lines
61+
MD032: false
62+
blanks-around-lists: false
63+
64+
# MD033: Inline HTML (disallows raw HTML in markdown)
65+
MD033: false
66+
no-inline-html: false
67+
68+
# MD034: Bare URL used (disallows URLs not in angle brackets)
69+
MD034: false
70+
no-bare-urls: false
71+
72+
# MD036: Emphasis used instead of a heading (disallows using bold/italic as section headers)
73+
MD036: false
74+
no-emphasis-as-heading: false
75+
76+
# MD040: Fenced code blocks should have a language specified
77+
MD040: false
78+
fenced-code-language: false
79+
80+
# MD041: First line in file should be a top-level heading
81+
MD041: false
82+
first-line-heading: false
83+
first-line-h1: false
84+
85+
# MD047: Files should end with a single newline character
86+
MD047: false
87+
single-trailing-newline: false
88+
89+
# MD051: Link fragment should be valid
90+
MD051: false
91+
link-title-style: false
92+
93+
# MD055: Table pipe style (enforces consistent table pipe style)
94+
MD055: false
95+
table-pipe-style: false
96+
97+
# MD058: Blank lines around tables (enforces blank lines before/after tables)
98+
MD058: false
99+
blanks-around-tables: false
100+

0 commit comments

Comments
 (0)