mirror of
https://github.com/codeflash-ai/codeflash.git
synced 2026-05-04 18:25:17 +00:00
fix: update license format to use license-files
Replace deprecated license table format with modern license-files array
in both main package and codeflash-benchmark subpackage. This resolves
the setuptools deprecation warning about TOML table license format.
Changes:
- Use license-files = ["LICENSE"] instead of license = {text = "BSL-1.1"}
- Add LICENSE file to root directory
- Add LICENSE and README.md to codeflash-benchmark/
This commit is contained in:
parent
805d946c5b
commit
fa452f2f31
5 changed files with 601 additions and 390 deletions
98
LICENSE
Normal file
98
LICENSE
Normal file
|
|
@ -0,0 +1,98 @@
|
|||
Business Source License 1.1
|
||||
|
||||
Parameters
|
||||
|
||||
Licensor: CodeFlash Inc.
|
||||
Licensed Work: Codeflash Client version 0.20.x
|
||||
The Licensed Work is (c) 2024 CodeFlash Inc.
|
||||
|
||||
Additional Use Grant: None. Production use of the Licensed Work is only permitted
|
||||
if you have entered into a separate written agreement
|
||||
with CodeFlash Inc. for production use in connection
|
||||
with a subscription to CodeFlash's Code Optimization
|
||||
Platform. Please visit codeflash.ai for further
|
||||
information.
|
||||
|
||||
Change Date: 2030-01-26
|
||||
|
||||
Change License: MIT
|
||||
|
||||
Notice
|
||||
|
||||
The Business Source License (this document, or the “License”) is not an Open
|
||||
Source license. However, the Licensed Work will eventually be made available
|
||||
under an Open Source License, as stated in this License.
|
||||
|
||||
License text copyright (c) 2017 MariaDB Corporation Ab, All Rights Reserved.
|
||||
“Business Source License” is a trademark of MariaDB Corporation Ab.
|
||||
|
||||
-----------------------------------------------------------------------------
|
||||
|
||||
Business Source License 1.1
|
||||
|
||||
Terms
|
||||
|
||||
The Licensor hereby grants you the right to copy, modify, create derivative
|
||||
works, redistribute, and make non-production use of the Licensed Work. The
|
||||
Licensor may make an Additional Use Grant, above, permitting limited
|
||||
production use.
|
||||
|
||||
Effective on the Change Date, or the fourth anniversary of the first publicly
|
||||
available distribution of a specific version of the Licensed Work under this
|
||||
License, whichever comes first, the Licensor hereby grants you rights under
|
||||
the terms of the Change License, and the rights granted in the paragraph
|
||||
above terminate.
|
||||
|
||||
If your use of the Licensed Work does not comply with the requirements
|
||||
currently in effect as described in this License, you must purchase a
|
||||
commercial license from the Licensor, its affiliated entities, or authorized
|
||||
resellers, or you must refrain from using the Licensed Work.
|
||||
|
||||
All copies of the original and modified Licensed Work, and derivative works
|
||||
of the Licensed Work, are subject to this License. This License applies
|
||||
separately for each version of the Licensed Work and the Change Date may vary
|
||||
for each version of the Licensed Work released by Licensor.
|
||||
|
||||
You must conspicuously display this License on each original or modified copy
|
||||
of the Licensed Work. If you receive the Licensed Work in original or
|
||||
modified form from a third party, the terms and conditions set forth in this
|
||||
License apply to your use of that work.
|
||||
|
||||
Any use of the Licensed Work in violation of this License will automatically
|
||||
terminate your rights under this License for the current and all other
|
||||
versions of the Licensed Work.
|
||||
|
||||
This License does not grant you any right in any trademark or logo of
|
||||
Licensor or its affiliates (provided that you may use a trademark or logo of
|
||||
Licensor as expressly required by this License).
|
||||
|
||||
TO THE EXTENT PERMITTED BY APPLICABLE LAW, THE LICENSED WORK IS PROVIDED ON
|
||||
AN “AS IS” BASIS. LICENSOR HEREBY DISCLAIMS ALL WARRANTIES AND CONDITIONS,
|
||||
EXPRESS OR IMPLIED, INCLUDING (WITHOUT LIMITATION) WARRANTIES OF
|
||||
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, NON-INFRINGEMENT, AND
|
||||
TITLE.
|
||||
|
||||
MariaDB hereby grants you permission to use this License’s text to license
|
||||
your works, and to refer to it using the trademark “Business Source License”,
|
||||
as long as you comply with the Covenants of Licensor below.
|
||||
|
||||
Covenants of Licensor
|
||||
|
||||
In consideration of the right to use this License’s text and the “Business
|
||||
Source License” name and trademark, Licensor covenants to MariaDB, and to all
|
||||
other recipients of the licensed work to be provided by Licensor:
|
||||
|
||||
1. To specify as the Change License the GPL Version 2.0 or any later version,
|
||||
or a license that is compatible with GPL Version 2.0 or a later version,
|
||||
where “compatible” means that software provided under the Change License can
|
||||
be included in a program with software provided under GPL Version 2.0 or a
|
||||
later version. Licensor may specify additional Change Licenses without
|
||||
limitation.
|
||||
|
||||
2. To either: (a) specify an additional grant of rights to use that does not
|
||||
impose any additional restriction on the right granted in this License, as
|
||||
the Additional Use Grant; or (b) insert the text “None”.
|
||||
|
||||
3. To specify a Change Date.
|
||||
|
||||
4. Not to modify this License in any other way.
|
||||
98
codeflash-benchmark/LICENSE
Normal file
98
codeflash-benchmark/LICENSE
Normal file
|
|
@ -0,0 +1,98 @@
|
|||
Business Source License 1.1
|
||||
|
||||
Parameters
|
||||
|
||||
Licensor: CodeFlash Inc.
|
||||
Licensed Work: Codeflash Client version 0.20.x
|
||||
The Licensed Work is (c) 2024 CodeFlash Inc.
|
||||
|
||||
Additional Use Grant: None. Production use of the Licensed Work is only permitted
|
||||
if you have entered into a separate written agreement
|
||||
with CodeFlash Inc. for production use in connection
|
||||
with a subscription to CodeFlash's Code Optimization
|
||||
Platform. Please visit codeflash.ai for further
|
||||
information.
|
||||
|
||||
Change Date: 2030-01-26
|
||||
|
||||
Change License: MIT
|
||||
|
||||
Notice
|
||||
|
||||
The Business Source License (this document, or the “License”) is not an Open
|
||||
Source license. However, the Licensed Work will eventually be made available
|
||||
under an Open Source License, as stated in this License.
|
||||
|
||||
License text copyright (c) 2017 MariaDB Corporation Ab, All Rights Reserved.
|
||||
“Business Source License” is a trademark of MariaDB Corporation Ab.
|
||||
|
||||
-----------------------------------------------------------------------------
|
||||
|
||||
Business Source License 1.1
|
||||
|
||||
Terms
|
||||
|
||||
The Licensor hereby grants you the right to copy, modify, create derivative
|
||||
works, redistribute, and make non-production use of the Licensed Work. The
|
||||
Licensor may make an Additional Use Grant, above, permitting limited
|
||||
production use.
|
||||
|
||||
Effective on the Change Date, or the fourth anniversary of the first publicly
|
||||
available distribution of a specific version of the Licensed Work under this
|
||||
License, whichever comes first, the Licensor hereby grants you rights under
|
||||
the terms of the Change License, and the rights granted in the paragraph
|
||||
above terminate.
|
||||
|
||||
If your use of the Licensed Work does not comply with the requirements
|
||||
currently in effect as described in this License, you must purchase a
|
||||
commercial license from the Licensor, its affiliated entities, or authorized
|
||||
resellers, or you must refrain from using the Licensed Work.
|
||||
|
||||
All copies of the original and modified Licensed Work, and derivative works
|
||||
of the Licensed Work, are subject to this License. This License applies
|
||||
separately for each version of the Licensed Work and the Change Date may vary
|
||||
for each version of the Licensed Work released by Licensor.
|
||||
|
||||
You must conspicuously display this License on each original or modified copy
|
||||
of the Licensed Work. If you receive the Licensed Work in original or
|
||||
modified form from a third party, the terms and conditions set forth in this
|
||||
License apply to your use of that work.
|
||||
|
||||
Any use of the Licensed Work in violation of this License will automatically
|
||||
terminate your rights under this License for the current and all other
|
||||
versions of the Licensed Work.
|
||||
|
||||
This License does not grant you any right in any trademark or logo of
|
||||
Licensor or its affiliates (provided that you may use a trademark or logo of
|
||||
Licensor as expressly required by this License).
|
||||
|
||||
TO THE EXTENT PERMITTED BY APPLICABLE LAW, THE LICENSED WORK IS PROVIDED ON
|
||||
AN “AS IS” BASIS. LICENSOR HEREBY DISCLAIMS ALL WARRANTIES AND CONDITIONS,
|
||||
EXPRESS OR IMPLIED, INCLUDING (WITHOUT LIMITATION) WARRANTIES OF
|
||||
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, NON-INFRINGEMENT, AND
|
||||
TITLE.
|
||||
|
||||
MariaDB hereby grants you permission to use this License’s text to license
|
||||
your works, and to refer to it using the trademark “Business Source License”,
|
||||
as long as you comply with the Covenants of Licensor below.
|
||||
|
||||
Covenants of Licensor
|
||||
|
||||
In consideration of the right to use this License’s text and the “Business
|
||||
Source License” name and trademark, Licensor covenants to MariaDB, and to all
|
||||
other recipients of the licensed work to be provided by Licensor:
|
||||
|
||||
1. To specify as the Change License the GPL Version 2.0 or any later version,
|
||||
or a license that is compatible with GPL Version 2.0 or a later version,
|
||||
where “compatible” means that software provided under the Change License can
|
||||
be included in a program with software provided under GPL Version 2.0 or a
|
||||
later version. Licensor may specify additional Change Licenses without
|
||||
limitation.
|
||||
|
||||
2. To either: (a) specify an additional grant of rights to use that does not
|
||||
impose any additional restriction on the right granted in this License, as
|
||||
the Additional Use Grant; or (b) insert the text “None”.
|
||||
|
||||
3. To specify a Change Date.
|
||||
|
||||
4. Not to modify this License in any other way.
|
||||
15
codeflash-benchmark/README.md
Normal file
15
codeflash-benchmark/README.md
Normal file
|
|
@ -0,0 +1,15 @@
|
|||
# CodeFlash Benchmark
|
||||
|
||||
A pytest benchmarking plugin for [CodeFlash](https://codeflash.ai) - automatic code performance optimization.
|
||||
|
||||
## Installation
|
||||
|
||||
```bash
|
||||
pip install codeflash-benchmark
|
||||
```
|
||||
|
||||
## Usage
|
||||
|
||||
This plugin provides benchmarking capabilities for pytest tests used by CodeFlash's optimization pipeline.
|
||||
|
||||
For more information, visit [codeflash.ai](https://codeflash.ai).
|
||||
|
|
@ -1,32 +1,32 @@
|
|||
[project]
|
||||
name = "codeflash-benchmark"
|
||||
version = "0.2.0"
|
||||
description = "Pytest benchmarking plugin for codeflash.ai - automatic code performance optimization"
|
||||
authors = [{ name = "CodeFlash Inc.", email = "contact@codeflash.ai" }]
|
||||
requires-python = ">=3.9"
|
||||
readme = "README.md"
|
||||
license = {text = "BSL-1.1"}
|
||||
keywords = [
|
||||
"codeflash",
|
||||
"benchmark",
|
||||
"pytest",
|
||||
"performance",
|
||||
"testing",
|
||||
]
|
||||
dependencies = [
|
||||
"pytest>=7.0.0,!=8.3.4",
|
||||
]
|
||||
|
||||
[project.urls]
|
||||
Homepage = "https://codeflash.ai"
|
||||
Repository = "https://github.com/codeflash-ai/codeflash-benchmark"
|
||||
|
||||
[project.entry-points.pytest11]
|
||||
codeflash-benchmark = "codeflash_benchmark.plugin"
|
||||
|
||||
[build-system]
|
||||
requires = ["setuptools>=45", "wheel"]
|
||||
build-backend = "setuptools.build_meta"
|
||||
|
||||
[tool.setuptools]
|
||||
packages = ["codeflash_benchmark"]
|
||||
[project]
|
||||
name = "codeflash-benchmark"
|
||||
version = "0.2.0"
|
||||
description = "Pytest benchmarking plugin for codeflash.ai - automatic code performance optimization"
|
||||
authors = [{ name = "CodeFlash Inc.", email = "contact@codeflash.ai" }]
|
||||
requires-python = ">=3.9"
|
||||
readme = "README.md"
|
||||
license-files = ["LICENSE"]
|
||||
keywords = [
|
||||
"codeflash",
|
||||
"benchmark",
|
||||
"pytest",
|
||||
"performance",
|
||||
"testing",
|
||||
]
|
||||
dependencies = [
|
||||
"pytest>=7.0.0,!=8.3.4",
|
||||
]
|
||||
|
||||
[project.urls]
|
||||
Homepage = "https://codeflash.ai"
|
||||
Repository = "https://github.com/codeflash-ai/codeflash-benchmark"
|
||||
|
||||
[project.entry-points.pytest11]
|
||||
codeflash-benchmark = "codeflash_benchmark.plugin"
|
||||
|
||||
[build-system]
|
||||
requires = ["setuptools>=45", "wheel"]
|
||||
build-backend = "setuptools.build_meta"
|
||||
|
||||
[tool.setuptools]
|
||||
packages = ["codeflash_benchmark"]
|
||||
|
|
|
|||
716
pyproject.toml
716
pyproject.toml
|
|
@ -1,358 +1,358 @@
|
|||
[project]
|
||||
name = "codeflash"
|
||||
dynamic = ["version"]
|
||||
description = "Client for codeflash.ai - automatic code performance optimization, powered by AI"
|
||||
authors = [{ name = "CodeFlash Inc.", email = "contact@codeflash.ai" }]
|
||||
requires-python = ">=3.9"
|
||||
readme = "README.md"
|
||||
license = {text = "BSL-1.1"}
|
||||
keywords = [
|
||||
"codeflash",
|
||||
"performance",
|
||||
"optimization",
|
||||
"ai",
|
||||
"code",
|
||||
"machine learning",
|
||||
"LLM",
|
||||
]
|
||||
dependencies = [
|
||||
"unidiff>=0.7.4",
|
||||
"pytest>=7.0.0",
|
||||
"gitpython>=3.1.31",
|
||||
"libcst>=1.0.1",
|
||||
"jedi>=0.19.1",
|
||||
# Tree-sitter for multi-language support
|
||||
"tree-sitter>=0.23.0",
|
||||
"tree-sitter-javascript>=0.23.0",
|
||||
"tree-sitter-typescript>=0.23.0",
|
||||
"pytest-timeout>=2.1.0",
|
||||
"tomlkit>=0.11.7",
|
||||
"junitparser>=3.1.0",
|
||||
"pydantic>=1.10.1",
|
||||
"humanize>=4.0.0",
|
||||
"posthog>=3.0.0",
|
||||
"click>=8.1.0",
|
||||
"inquirer>=3.0.0",
|
||||
"sentry-sdk>=1.40.6,<3.0.0",
|
||||
"parameterized>=0.9.0",
|
||||
"isort>=5.11.0",
|
||||
"dill>=0.3.8",
|
||||
"rich>=13.8.1",
|
||||
"lxml>=5.3.0",
|
||||
"crosshair-tool>=0.0.78",
|
||||
"coverage>=7.6.4",
|
||||
"line_profiler>=4.2.0",
|
||||
"platformdirs>=4.3.7",
|
||||
"pygls>=2.0.0,<3.0.0",
|
||||
"codeflash-benchmark",
|
||||
"filelock",
|
||||
"pytest-asyncio>=0.18.0",
|
||||
]
|
||||
|
||||
[project.urls]
|
||||
Homepage = "https://codeflash.ai"
|
||||
|
||||
[project.scripts]
|
||||
codeflash = "codeflash.main:main"
|
||||
|
||||
[project.optional-dependencies]
|
||||
|
||||
[dependency-groups]
|
||||
dev = [
|
||||
"ipython>=8.12.0",
|
||||
"mypy>=1.13",
|
||||
"ruff>=0.7.0",
|
||||
"lxml-stubs>=0.5.1",
|
||||
"pandas-stubs>=2.2.2.240807, <2.2.3.241009",
|
||||
"types-Pygments>=2.18.0.20240506",
|
||||
"types-colorama>=0.4.15.20240311",
|
||||
"types-decorator>=5.1.8.20240310",
|
||||
"types-jsonschema>=4.23.0.20240813",
|
||||
"types-requests>=2.32.0.20241016",
|
||||
"types-six>=1.16.21.20241009",
|
||||
"types-cffi>=1.16.0.20240331",
|
||||
"types-openpyxl>=3.1.5.20241020",
|
||||
"types-regex>=2024.9.11.20240912",
|
||||
"types-python-dateutil>=2.9.0.20241003",
|
||||
"types-gevent>=24.11.0.20241230,<25",
|
||||
"types-greenlet>=3.1.0.20241221,<4",
|
||||
"types-pexpect>=4.9.0.20241208,<5",
|
||||
"types-unidiff>=0.7.0.20240505,<0.8",
|
||||
"prek>=0.2.25",
|
||||
"ty>=0.0.14",
|
||||
"uv>=0.9.29",
|
||||
]
|
||||
tests = [
|
||||
"black>=25.9.0",
|
||||
"jax>=0.4.30",
|
||||
"numpy>=2.0.2",
|
||||
"pandas>=2.3.3",
|
||||
"pyarrow>=15.0.0",
|
||||
"pyrsistent>=0.20.0",
|
||||
"scipy>=1.13.1",
|
||||
"torch>=2.8.0",
|
||||
"xarray>=2024.7.0",
|
||||
"eval_type_backport",
|
||||
"numba>=0.60.0",
|
||||
"tensorflow>=2.20.0",
|
||||
]
|
||||
|
||||
[tool.hatch.build.targets.sdist]
|
||||
include = ["codeflash"]
|
||||
exclude = [
|
||||
"docs/*",
|
||||
"experiments/*",
|
||||
"tests/*",
|
||||
"*.pyc",
|
||||
"__pycache__",
|
||||
"*.pyo",
|
||||
"*.pyd",
|
||||
"*.so",
|
||||
"*.dylib",
|
||||
"*.dll",
|
||||
"*.exe",
|
||||
"*.log",
|
||||
"*.tmp",
|
||||
".env",
|
||||
".env.*",
|
||||
"**/.env",
|
||||
"**/.env.*",
|
||||
".env.example",
|
||||
"*.pem",
|
||||
"*.key",
|
||||
"secrets.*",
|
||||
"config.yaml",
|
||||
"config.json",
|
||||
".git",
|
||||
".gitignore",
|
||||
".gitattributes",
|
||||
".github",
|
||||
"Dockerfile",
|
||||
"docker-compose.yml",
|
||||
"*.md",
|
||||
"*.txt",
|
||||
"*.csv",
|
||||
"*.db",
|
||||
"*.sqlite3",
|
||||
"*.pdf",
|
||||
"*.docx",
|
||||
"*.xlsx",
|
||||
"*.pptx",
|
||||
"*.iml",
|
||||
".idea",
|
||||
".vscode",
|
||||
".DS_Store",
|
||||
"Thumbs.db",
|
||||
"venv",
|
||||
"env",
|
||||
]
|
||||
|
||||
[tool.hatch.build.targets.wheel]
|
||||
exclude = [
|
||||
"docs/*",
|
||||
"experiments/*",
|
||||
"tests/*",
|
||||
"*.pyc",
|
||||
"__pycache__",
|
||||
"*.pyo",
|
||||
"*.pyd",
|
||||
"*.so",
|
||||
"*.dylib",
|
||||
"*.dll",
|
||||
"*.exe",
|
||||
"*.log",
|
||||
"*.tmp",
|
||||
".env",
|
||||
".env.*",
|
||||
"**/.env",
|
||||
"**/.env.*",
|
||||
".env.example",
|
||||
"*.pem",
|
||||
"*.key",
|
||||
"secrets.*",
|
||||
"config.yaml",
|
||||
"config.json",
|
||||
".git",
|
||||
".gitignore",
|
||||
".gitattributes",
|
||||
".github",
|
||||
"Dockerfile",
|
||||
"docker-compose.yml",
|
||||
"*.md",
|
||||
"*.txt",
|
||||
"*.csv",
|
||||
"*.db",
|
||||
"*.sqlite3",
|
||||
"*.pdf",
|
||||
"*.docx",
|
||||
"*.xlsx",
|
||||
"*.pptx",
|
||||
"*.iml",
|
||||
".idea",
|
||||
".vscode",
|
||||
".DS_Store",
|
||||
"Thumbs.db",
|
||||
"venv",
|
||||
"env",
|
||||
]
|
||||
|
||||
[tool.mypy]
|
||||
show_error_code_links = true
|
||||
pretty = true
|
||||
show_absolute_path = true
|
||||
show_error_context = true
|
||||
show_error_end = true
|
||||
strict = true
|
||||
warn_unreachable = true
|
||||
install_types = true
|
||||
plugins = ["pydantic.mypy"]
|
||||
|
||||
[[tool.mypy.overrides]]
|
||||
module = ["jedi", "jedi.api.classes", "inquirer", "inquirer.themes", "numba"]
|
||||
ignore_missing_imports = true
|
||||
|
||||
[tool.pydantic-mypy]
|
||||
init_forbid_extra = true
|
||||
init_typed = true
|
||||
warn_required_dynamic_aliases = true
|
||||
|
||||
[tool.ruff]
|
||||
target-version = "py39"
|
||||
line-length = 120
|
||||
fix = true
|
||||
show-fixes = true
|
||||
extend-exclude = ["code_to_optimize/", "pie_test_set/", "tests/", "experiments/"]
|
||||
|
||||
[tool.ruff.lint]
|
||||
select = ["ALL"]
|
||||
ignore = [
|
||||
"N802",
|
||||
"C901",
|
||||
"D100",
|
||||
"D101",
|
||||
"D102",
|
||||
"D103",
|
||||
"D105",
|
||||
"D107",
|
||||
"D203", # incorrect-blank-line-before-class (incompatible with D211)
|
||||
"D213", # multi-line-summary-second-line (incompatible with D212)
|
||||
"S101",
|
||||
"S603",
|
||||
"S607",
|
||||
"COM812",
|
||||
"FIX002",
|
||||
"PLR0912",
|
||||
"PLR0913",
|
||||
"PLR0915",
|
||||
"TD002",
|
||||
"TD003",
|
||||
"TD004",
|
||||
"PLR2004",
|
||||
"UP007", # remove once we drop 3.9 support.
|
||||
"E501",
|
||||
"BLE001",
|
||||
"ERA001",
|
||||
"TRY003",
|
||||
"EM101",
|
||||
"T201",
|
||||
"PGH004",
|
||||
"S301",
|
||||
"D104",
|
||||
"PERF203",
|
||||
"LOG015",
|
||||
"PLC0415",
|
||||
"UP045",
|
||||
"TD007",
|
||||
"D417",
|
||||
"D401",
|
||||
"S110", # try-except-pass - we do this a lot
|
||||
"ARG002", # Unused method argument
|
||||
# Added for multi-language branch
|
||||
"FBT001", # Boolean positional argument
|
||||
"FBT002", # Boolean default positional argument
|
||||
"ANN401", # typing.Any disallowed
|
||||
"ARG001", # Unused function argument (common in abstract/interface methods)
|
||||
"TRY300", # Consider moving to else block
|
||||
"FURB110", # if-exp-instead-of-or-operator - we prefer explicit if-else over "or"
|
||||
"TRY401", # Redundant exception in logging.exception
|
||||
"PLR0911", # Too many return statements
|
||||
"PLW0603", # Global statement
|
||||
"PLW2901", # Loop variable overwritten
|
||||
"SIM102", # Nested if statements
|
||||
"SIM103", # Return negated condition
|
||||
"ANN001", # Missing type annotation
|
||||
"PLC0206", # Dictionary items
|
||||
"S314", # XML parsing (acceptable for dev tool)
|
||||
"S608", # SQL injection (internal use only)
|
||||
"S112", # try-except-continue
|
||||
"PERF401", # List comprehension suggestion
|
||||
"SIM108", # Ternary operator suggestion
|
||||
"F841", # Unused variable (often intentional)
|
||||
"ANN202", # Missing return type for private functions
|
||||
"B009", # getattr-with-constant - needed to avoid mypy [misc] on dunder access
|
||||
]
|
||||
|
||||
[tool.ruff.lint.flake8-type-checking]
|
||||
strict = true
|
||||
runtime-evaluated-base-classes = ["pydantic.BaseModel"]
|
||||
runtime-evaluated-decorators = ["pydantic.validate_call", "pydantic.dataclasses.dataclass"]
|
||||
|
||||
[tool.ruff.lint.pep8-naming]
|
||||
classmethod-decorators = [
|
||||
# Allow Pydantic's `@validator` decorator to trigger class method treatment.
|
||||
"pydantic.validator",
|
||||
]
|
||||
|
||||
[tool.ruff.lint.isort]
|
||||
split-on-trailing-comma = false
|
||||
|
||||
[tool.ruff.format]
|
||||
docstring-code-format = true
|
||||
skip-magic-trailing-comma = true
|
||||
|
||||
[tool.hatch.version]
|
||||
source = "uv-dynamic-versioning"
|
||||
|
||||
[tool.uv]
|
||||
workspace = { members = ["codeflash-benchmark"] }
|
||||
|
||||
[tool.uv.sources]
|
||||
codeflash-benchmark = { workspace = true }
|
||||
|
||||
[tool.uv-dynamic-versioning]
|
||||
enable = true
|
||||
style = "pep440"
|
||||
vcs = "git"
|
||||
|
||||
[tool.hatch.build.hooks.version]
|
||||
path = "codeflash/version.py"
|
||||
template = """# These version placeholders will be replaced by uv-dynamic-versioning during build.
|
||||
__version__ = "{version}"
|
||||
"""
|
||||
|
||||
|
||||
#[tool.hatch.build.hooks.custom]
|
||||
#path = "codeflash/update_license_version.py"
|
||||
|
||||
|
||||
[tool.codeflash]
|
||||
# All paths are relative to this pyproject.toml's directory.
|
||||
module-root = "codeflash"
|
||||
tests-root = "codeflash"
|
||||
benchmarks-root = "tests/benchmarks"
|
||||
ignore-paths = []
|
||||
formatter-cmds = ["disabled"]
|
||||
|
||||
[tool.pytest.ini_options]
|
||||
filterwarnings = [
|
||||
"ignore::pytest.PytestCollectionWarning",
|
||||
]
|
||||
markers = [
|
||||
"ci_skip: mark test to skip in CI environment",
|
||||
]
|
||||
|
||||
|
||||
[build-system]
|
||||
requires = ["hatchling", "uv-dynamic-versioning"]
|
||||
build-backend = "hatchling.build"
|
||||
|
||||
[project]
|
||||
name = "codeflash"
|
||||
dynamic = ["version"]
|
||||
description = "Client for codeflash.ai - automatic code performance optimization, powered by AI"
|
||||
authors = [{ name = "CodeFlash Inc.", email = "contact@codeflash.ai" }]
|
||||
requires-python = ">=3.9"
|
||||
readme = "README.md"
|
||||
license-files = ["LICENSE"]
|
||||
keywords = [
|
||||
"codeflash",
|
||||
"performance",
|
||||
"optimization",
|
||||
"ai",
|
||||
"code",
|
||||
"machine learning",
|
||||
"LLM",
|
||||
]
|
||||
dependencies = [
|
||||
"unidiff>=0.7.4",
|
||||
"pytest>=7.0.0",
|
||||
"gitpython>=3.1.31",
|
||||
"libcst>=1.0.1",
|
||||
"jedi>=0.19.1",
|
||||
# Tree-sitter for multi-language support
|
||||
"tree-sitter>=0.23.0",
|
||||
"tree-sitter-javascript>=0.23.0",
|
||||
"tree-sitter-typescript>=0.23.0",
|
||||
"pytest-timeout>=2.1.0",
|
||||
"tomlkit>=0.11.7",
|
||||
"junitparser>=3.1.0",
|
||||
"pydantic>=1.10.1",
|
||||
"humanize>=4.0.0",
|
||||
"posthog>=3.0.0",
|
||||
"click>=8.1.0",
|
||||
"inquirer>=3.0.0",
|
||||
"sentry-sdk>=1.40.6,<3.0.0",
|
||||
"parameterized>=0.9.0",
|
||||
"isort>=5.11.0",
|
||||
"dill>=0.3.8",
|
||||
"rich>=13.8.1",
|
||||
"lxml>=5.3.0",
|
||||
"crosshair-tool>=0.0.78",
|
||||
"coverage>=7.6.4",
|
||||
"line_profiler>=4.2.0",
|
||||
"platformdirs>=4.3.7",
|
||||
"pygls>=2.0.0,<3.0.0",
|
||||
"codeflash-benchmark",
|
||||
"filelock",
|
||||
"pytest-asyncio>=0.18.0",
|
||||
]
|
||||
|
||||
[project.urls]
|
||||
Homepage = "https://codeflash.ai"
|
||||
|
||||
[project.scripts]
|
||||
codeflash = "codeflash.main:main"
|
||||
|
||||
[project.optional-dependencies]
|
||||
|
||||
[dependency-groups]
|
||||
dev = [
|
||||
"ipython>=8.12.0",
|
||||
"mypy>=1.13",
|
||||
"ruff>=0.7.0",
|
||||
"lxml-stubs>=0.5.1",
|
||||
"pandas-stubs>=2.2.2.240807, <2.2.3.241009",
|
||||
"types-Pygments>=2.18.0.20240506",
|
||||
"types-colorama>=0.4.15.20240311",
|
||||
"types-decorator>=5.1.8.20240310",
|
||||
"types-jsonschema>=4.23.0.20240813",
|
||||
"types-requests>=2.32.0.20241016",
|
||||
"types-six>=1.16.21.20241009",
|
||||
"types-cffi>=1.16.0.20240331",
|
||||
"types-openpyxl>=3.1.5.20241020",
|
||||
"types-regex>=2024.9.11.20240912",
|
||||
"types-python-dateutil>=2.9.0.20241003",
|
||||
"types-gevent>=24.11.0.20241230,<25",
|
||||
"types-greenlet>=3.1.0.20241221,<4",
|
||||
"types-pexpect>=4.9.0.20241208,<5",
|
||||
"types-unidiff>=0.7.0.20240505,<0.8",
|
||||
"prek>=0.2.25",
|
||||
"ty>=0.0.14",
|
||||
"uv>=0.9.29",
|
||||
]
|
||||
tests = [
|
||||
"black>=25.9.0",
|
||||
"jax>=0.4.30",
|
||||
"numpy>=2.0.2",
|
||||
"pandas>=2.3.3",
|
||||
"pyarrow>=15.0.0",
|
||||
"pyrsistent>=0.20.0",
|
||||
"scipy>=1.13.1",
|
||||
"torch>=2.8.0",
|
||||
"xarray>=2024.7.0",
|
||||
"eval_type_backport",
|
||||
"numba>=0.60.0",
|
||||
"tensorflow>=2.20.0",
|
||||
]
|
||||
|
||||
[tool.hatch.build.targets.sdist]
|
||||
include = ["codeflash"]
|
||||
exclude = [
|
||||
"docs/*",
|
||||
"experiments/*",
|
||||
"tests/*",
|
||||
"*.pyc",
|
||||
"__pycache__",
|
||||
"*.pyo",
|
||||
"*.pyd",
|
||||
"*.so",
|
||||
"*.dylib",
|
||||
"*.dll",
|
||||
"*.exe",
|
||||
"*.log",
|
||||
"*.tmp",
|
||||
".env",
|
||||
".env.*",
|
||||
"**/.env",
|
||||
"**/.env.*",
|
||||
".env.example",
|
||||
"*.pem",
|
||||
"*.key",
|
||||
"secrets.*",
|
||||
"config.yaml",
|
||||
"config.json",
|
||||
".git",
|
||||
".gitignore",
|
||||
".gitattributes",
|
||||
".github",
|
||||
"Dockerfile",
|
||||
"docker-compose.yml",
|
||||
"*.md",
|
||||
"*.txt",
|
||||
"*.csv",
|
||||
"*.db",
|
||||
"*.sqlite3",
|
||||
"*.pdf",
|
||||
"*.docx",
|
||||
"*.xlsx",
|
||||
"*.pptx",
|
||||
"*.iml",
|
||||
".idea",
|
||||
".vscode",
|
||||
".DS_Store",
|
||||
"Thumbs.db",
|
||||
"venv",
|
||||
"env",
|
||||
]
|
||||
|
||||
[tool.hatch.build.targets.wheel]
|
||||
exclude = [
|
||||
"docs/*",
|
||||
"experiments/*",
|
||||
"tests/*",
|
||||
"*.pyc",
|
||||
"__pycache__",
|
||||
"*.pyo",
|
||||
"*.pyd",
|
||||
"*.so",
|
||||
"*.dylib",
|
||||
"*.dll",
|
||||
"*.exe",
|
||||
"*.log",
|
||||
"*.tmp",
|
||||
".env",
|
||||
".env.*",
|
||||
"**/.env",
|
||||
"**/.env.*",
|
||||
".env.example",
|
||||
"*.pem",
|
||||
"*.key",
|
||||
"secrets.*",
|
||||
"config.yaml",
|
||||
"config.json",
|
||||
".git",
|
||||
".gitignore",
|
||||
".gitattributes",
|
||||
".github",
|
||||
"Dockerfile",
|
||||
"docker-compose.yml",
|
||||
"*.md",
|
||||
"*.txt",
|
||||
"*.csv",
|
||||
"*.db",
|
||||
"*.sqlite3",
|
||||
"*.pdf",
|
||||
"*.docx",
|
||||
"*.xlsx",
|
||||
"*.pptx",
|
||||
"*.iml",
|
||||
".idea",
|
||||
".vscode",
|
||||
".DS_Store",
|
||||
"Thumbs.db",
|
||||
"venv",
|
||||
"env",
|
||||
]
|
||||
|
||||
[tool.mypy]
|
||||
show_error_code_links = true
|
||||
pretty = true
|
||||
show_absolute_path = true
|
||||
show_error_context = true
|
||||
show_error_end = true
|
||||
strict = true
|
||||
warn_unreachable = true
|
||||
install_types = true
|
||||
plugins = ["pydantic.mypy"]
|
||||
|
||||
[[tool.mypy.overrides]]
|
||||
module = ["jedi", "jedi.api.classes", "inquirer", "inquirer.themes", "numba"]
|
||||
ignore_missing_imports = true
|
||||
|
||||
[tool.pydantic-mypy]
|
||||
init_forbid_extra = true
|
||||
init_typed = true
|
||||
warn_required_dynamic_aliases = true
|
||||
|
||||
[tool.ruff]
|
||||
target-version = "py39"
|
||||
line-length = 120
|
||||
fix = true
|
||||
show-fixes = true
|
||||
extend-exclude = ["code_to_optimize/", "pie_test_set/", "tests/", "experiments/"]
|
||||
|
||||
[tool.ruff.lint]
|
||||
select = ["ALL"]
|
||||
ignore = [
|
||||
"N802",
|
||||
"C901",
|
||||
"D100",
|
||||
"D101",
|
||||
"D102",
|
||||
"D103",
|
||||
"D105",
|
||||
"D107",
|
||||
"D203", # incorrect-blank-line-before-class (incompatible with D211)
|
||||
"D213", # multi-line-summary-second-line (incompatible with D212)
|
||||
"S101",
|
||||
"S603",
|
||||
"S607",
|
||||
"COM812",
|
||||
"FIX002",
|
||||
"PLR0912",
|
||||
"PLR0913",
|
||||
"PLR0915",
|
||||
"TD002",
|
||||
"TD003",
|
||||
"TD004",
|
||||
"PLR2004",
|
||||
"UP007", # remove once we drop 3.9 support.
|
||||
"E501",
|
||||
"BLE001",
|
||||
"ERA001",
|
||||
"TRY003",
|
||||
"EM101",
|
||||
"T201",
|
||||
"PGH004",
|
||||
"S301",
|
||||
"D104",
|
||||
"PERF203",
|
||||
"LOG015",
|
||||
"PLC0415",
|
||||
"UP045",
|
||||
"TD007",
|
||||
"D417",
|
||||
"D401",
|
||||
"S110", # try-except-pass - we do this a lot
|
||||
"ARG002", # Unused method argument
|
||||
# Added for multi-language branch
|
||||
"FBT001", # Boolean positional argument
|
||||
"FBT002", # Boolean default positional argument
|
||||
"ANN401", # typing.Any disallowed
|
||||
"ARG001", # Unused function argument (common in abstract/interface methods)
|
||||
"TRY300", # Consider moving to else block
|
||||
"FURB110", # if-exp-instead-of-or-operator - we prefer explicit if-else over "or"
|
||||
"TRY401", # Redundant exception in logging.exception
|
||||
"PLR0911", # Too many return statements
|
||||
"PLW0603", # Global statement
|
||||
"PLW2901", # Loop variable overwritten
|
||||
"SIM102", # Nested if statements
|
||||
"SIM103", # Return negated condition
|
||||
"ANN001", # Missing type annotation
|
||||
"PLC0206", # Dictionary items
|
||||
"S314", # XML parsing (acceptable for dev tool)
|
||||
"S608", # SQL injection (internal use only)
|
||||
"S112", # try-except-continue
|
||||
"PERF401", # List comprehension suggestion
|
||||
"SIM108", # Ternary operator suggestion
|
||||
"F841", # Unused variable (often intentional)
|
||||
"ANN202", # Missing return type for private functions
|
||||
"B009", # getattr-with-constant - needed to avoid mypy [misc] on dunder access
|
||||
]
|
||||
|
||||
[tool.ruff.lint.flake8-type-checking]
|
||||
strict = true
|
||||
runtime-evaluated-base-classes = ["pydantic.BaseModel"]
|
||||
runtime-evaluated-decorators = ["pydantic.validate_call", "pydantic.dataclasses.dataclass"]
|
||||
|
||||
[tool.ruff.lint.pep8-naming]
|
||||
classmethod-decorators = [
|
||||
# Allow Pydantic's `@validator` decorator to trigger class method treatment.
|
||||
"pydantic.validator",
|
||||
]
|
||||
|
||||
[tool.ruff.lint.isort]
|
||||
split-on-trailing-comma = false
|
||||
|
||||
[tool.ruff.format]
|
||||
docstring-code-format = true
|
||||
skip-magic-trailing-comma = true
|
||||
|
||||
[tool.hatch.version]
|
||||
source = "uv-dynamic-versioning"
|
||||
|
||||
[tool.uv]
|
||||
workspace = { members = ["codeflash-benchmark"] }
|
||||
|
||||
[tool.uv.sources]
|
||||
codeflash-benchmark = { workspace = true }
|
||||
|
||||
[tool.uv-dynamic-versioning]
|
||||
enable = true
|
||||
style = "pep440"
|
||||
vcs = "git"
|
||||
|
||||
[tool.hatch.build.hooks.version]
|
||||
path = "codeflash/version.py"
|
||||
template = """# These version placeholders will be replaced by uv-dynamic-versioning during build.
|
||||
__version__ = "{version}"
|
||||
"""
|
||||
|
||||
|
||||
#[tool.hatch.build.hooks.custom]
|
||||
#path = "codeflash/update_license_version.py"
|
||||
|
||||
|
||||
[tool.codeflash]
|
||||
# All paths are relative to this pyproject.toml's directory.
|
||||
module-root = "codeflash"
|
||||
tests-root = "codeflash"
|
||||
benchmarks-root = "tests/benchmarks"
|
||||
ignore-paths = []
|
||||
formatter-cmds = ["disabled"]
|
||||
|
||||
[tool.pytest.ini_options]
|
||||
filterwarnings = [
|
||||
"ignore::pytest.PytestCollectionWarning",
|
||||
]
|
||||
markers = [
|
||||
"ci_skip: mark test to skip in CI environment",
|
||||
]
|
||||
|
||||
|
||||
[build-system]
|
||||
requires = ["hatchling", "uv-dynamic-versioning"]
|
||||
build-backend = "hatchling.build"
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue