- Add comprehensive README with architecture overview and quick start guide - Set up Go module with production-ready dependencies - Configure build system with Makefile for development and production builds - Add Docker Compose for local development environment - Include project configuration files (linting, Python, etc.) This establishes the foundation for a production-ready ML experiment platform with task queuing, monitoring, and modern CLI/API interface.
132 lines
2.7 KiB
TOML
132 lines
2.7 KiB
TOML
[build-system]
|
|
requires = ["setuptools>=45", "wheel", "setuptools_scm[toml]>=6.2"]
|
|
build-backend = "setuptools.build_meta"
|
|
|
|
[tool.black]
|
|
# Google Python Style Guide Configuration for Black
|
|
line-length = 80
|
|
target-version = ['py38']
|
|
include = '\.pyi?$'
|
|
extend-exclude = '''
|
|
/(
|
|
# directories
|
|
\.eggs
|
|
| \.git
|
|
| \.hg
|
|
| \.mypy_cache
|
|
| \.tox
|
|
| \.venv
|
|
| venv
|
|
| _build
|
|
| buck-out
|
|
| build
|
|
| dist
|
|
# ML experiment code - exclude from formatting
|
|
| podman/workspace
|
|
| workspace
|
|
| tests/fixtures/examples
|
|
| tests/fixtures/podman
|
|
| results
|
|
| data
|
|
| logs
|
|
| secrets
|
|
| .agent
|
|
)/
|
|
'''
|
|
|
|
[tool.isort]
|
|
# Google Python Style Guide Configuration for isort
|
|
profile = "google"
|
|
line_length = 80
|
|
multi_line_output = 3
|
|
include_trailing_comma = true
|
|
force_grid_wrap = 0
|
|
use_parentheses = true
|
|
ensure_newline_before_comments = true
|
|
split_on_trailing_comma = true
|
|
known_first_party = ["fetch_ml"]
|
|
skip_glob = [
|
|
"podman/workspace/*",
|
|
"workspace/*",
|
|
"tests/fixtures/examples/*",
|
|
"tests/fixtures/podman/*",
|
|
]
|
|
|
|
[tool.mypy]
|
|
# Google Python Style Guide Configuration for mypy
|
|
python_version = "3.8"
|
|
warn_return_any = true
|
|
warn_unused_configs = true
|
|
disallow_untyped_defs = true
|
|
disallow_incomplete_defs = true
|
|
check_untyped_defs = true
|
|
disallow_untyped_decorators = true
|
|
no_implicit_optional = true
|
|
warn_redundant_casts = true
|
|
warn_unused_ignores = true
|
|
warn_no_return = true
|
|
warn_unreachable = true
|
|
strict_equality = true
|
|
|
|
[[tool.mypy.overrides]]
|
|
module = [
|
|
"torch.*",
|
|
"tensorflow.*",
|
|
"sklearn.*",
|
|
"pandas.*",
|
|
"numpy.*",
|
|
"matplotlib.*",
|
|
"seaborn.*",
|
|
"scipy.*",
|
|
"joblib.*",
|
|
]
|
|
ignore_missing_imports = true
|
|
|
|
[tool.pytest.ini_options]
|
|
# Google Python Style Guide Configuration for pytest
|
|
minversion = "6.0"
|
|
addopts = "-ra -q --strict-markers --strict-config"
|
|
testpaths = ["tests"]
|
|
python_files = ["*_test.py", "test_*.py"]
|
|
python_classes = ["Test*"]
|
|
python_functions = ["test_*"]
|
|
markers = [
|
|
"slow: marks tests as slow (deselect with '-m \"not slow\"')",
|
|
"integration: marks tests as integration tests",
|
|
"unit: marks tests as unit tests",
|
|
]
|
|
|
|
[tool.coverage.run]
|
|
source = ["."]
|
|
omit = [
|
|
"tests/*",
|
|
"*/tests/*",
|
|
"test_*",
|
|
"*_test.py",
|
|
"setup.py",
|
|
"*/site-packages/*",
|
|
# ML experiment code
|
|
"podman/workspace/*",
|
|
"workspace/*",
|
|
"tests/fixtures/examples/*",
|
|
"tests/fixtures/podman/*",
|
|
"results/*",
|
|
"data/*",
|
|
"logs/*",
|
|
"secrets/*",
|
|
".agent/*",
|
|
]
|
|
|
|
[tool.coverage.report]
|
|
exclude_lines = [
|
|
"pragma: no cover",
|
|
"def __repr__",
|
|
"if self.debug:",
|
|
"if settings.DEBUG",
|
|
"raise AssertionError",
|
|
"raise NotImplementedError",
|
|
"if 0:",
|
|
"if __name__ == .__main__.:",
|
|
"class .*\\bProtocol\\):",
|
|
"@(abc\\.)?abstractmethod",
|
|
]
|