/ pyproject.toml
pyproject.toml
  1  [project]
  2  name = "selfrevolve"
  3  version = "0.1.3"
  4  description = "A project for generating RESTful apis given a database"
  5  readme = "README.md"
  6  requires-python = ">=3.11"
  7  classifiers = [
  8      "Programming Language :: Python :: 3",
  9      "Intended Audience :: Developers",
 10      "Intended Audience :: System Administrators",
 11      "License :: OSI Approved :: MIT License",
 12      "Topic :: Database :: Front-Ends",
 13      "Topic :: Scientific/Engineering :: Artificial Intelligence"
 14  ]
 15  license = "MIT"
 16  license-files = ["LICENSE"]
 17  dependencies = [
 18      "python-dotenv",
 19      "langgraph",
 20      "pytest",
 21      "falcon",
 22      "pytest-json-report>=1.5.0",
 23      "langchain-openai>=0.3.15",
 24      "ipython>=9.2.0",
 25      "psycopg2-binary>=2.9.10",
 26      "falcon-cors>=1.1.7",
 27      "sqlparse>=0.5.3",
 28      "loguru>=0.7.3",
 29      "pymongo>=4.13.0",
 30      "litellm>=1.72.6.post1",
 31  ]
 32  
 33  [project.urls]
 34  Homepage = "https://github.com/self-evolving-runtimes/revolve"
 35  Issues = "https://github.com/self-evolving-runtimes/revolve/issues"
 36  
 37  [project.scripts]
 38  revolve-api = "revolve.api:main"
 39  
 40  [build-system]
 41  requires = ["hatchling", "hatch-build-scripts"]
 42  build-backend = "hatchling.build"
 43  
 44  [tool.hatch.build]
 45  # Tells Hatch that packages live under `src/`
 46  sources = ["src"]
 47  
 48  # Static files to include in the wheel
 49  artifacts = [
 50    "src/revolve/ui/dist/**",
 51    "src/revolve/resources/**"
 52  ]
 53  
 54  [tool.hatch.build.targets.wheel]
 55  # Include all Python + resource files
 56  include = [
 57      "src/revolve/**",
 58      "dist"
 59  ]
 60  
 61  [tool.hatch.build.targets.sdist.hooks.build-scripts]
 62  enable-by-default = false
 63  
 64  [[tool.hatch.build.targets.wheel.hooks.build-scripts.scripts]]
 65  commands = [
 66      "rm -rf node_modules || true",
 67      "rm -rf dist || true",
 68      "rm -rf package-lock.json || true",
 69      "rm -rf yarn.lock || true",
 70      "npm install",
 71      "npm run build"
 72  ]
 73  work_dir = "src/revolve/ui"
 74  artifacts = ["dist"]
 75  
 76  [dependency-groups]
 77  dev = [
 78      "ruff>=0.11.10",
 79  ]
 80  
 81  [tool.ruff]
 82  # Exclude a variety of commonly ignored directories.
 83  exclude = [
 84      ".bzr",
 85      ".direnv",
 86      ".eggs",
 87      ".git",
 88      ".git-rewrite",
 89      ".hg",
 90      ".ipynb_checkpoints",
 91      ".mypy_cache",
 92      ".nox",
 93      ".pants.d",
 94      ".pyenv",
 95      ".pytest_cache",
 96      ".pytype",
 97      ".ruff_cache",
 98      ".svn",
 99      ".tox",
100      ".venv",
101      ".vscode",
102      "__pypackages__",
103      "_build",
104      "buck-out",
105      "build",
106      "dist",
107      "node_modules",
108      "site-packages",
109      "venv",
110  ]
111  
112  # Same as Black.
113  line-length = 88
114  indent-width = 4
115  
116  # Assume Python 3.9
117  target-version = "py39"
118  
119  [tool.ruff.lint]
120  # Enable Pyflakes (`F`) and a subset of the pycodestyle (`E`) codes by default.
121  # Unlike Flake8, Ruff doesn't enable pycodestyle warnings (`W`) or
122  # McCabe complexity (`C901`) by default.
123  select = ["E4", "E7", "E9", "F"]
124  ignore = []
125  
126  # Allow fix for all enabled rules (when `--fix`) is provided.
127  fixable = ["ALL"]
128  unfixable = []
129  
130  # Allow unused variables when underscore-prefixed.
131  dummy-variable-rgx = "^(_+|(_+[a-zA-Z0-9_]*[a-zA-Z0-9]+?))$"
132  
133  [tool.ruff.format]
134  # Like Black, use double quotes for strings.
135  quote-style = "double"
136  
137  # Like Black, indent with spaces, rather than tabs.
138  indent-style = "space"
139  
140  # Like Black, respect magic trailing commas.
141  skip-magic-trailing-comma = false
142  
143  # Like Black, automatically detect the appropriate line ending.
144  line-ending = "auto"
145  
146  # Enable auto-formatting of code examples in docstrings. Markdown,
147  # reStructuredText code/literal blocks and doctests are all supported.
148  #
149  # This is currently disabled by default, but it is planned for this
150  # to be opt-out in the future.
151  docstring-code-format = false
152  
153  # Set the line length limit used when formatting code snippets in
154  # docstrings.
155  #
156  # This only has an effect when the `docstring-code-format` setting is
157  # enabled.
158  docstring-code-line-length = "dynamic"