1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109
|
[project]
name = "mycli"
dynamic = ["version"]
description = "CLI for MySQL Database. With auto-completion and syntax highlighting."
readme = "README.md"
requires-python = ">=3.10"
license = "BSD-3-Clause"
authors = [{ name = "Mycli Core Team", email = "mycli-dev@googlegroups.com" }]
urls = { homepage = "http://mycli.net" }
dependencies = [
"click >= 8.3.1",
"cryptography >= 1.0.0",
"Pygments>=1.6",
"prompt_toolkit>=3.0.6,<4.0.0",
"PyMySQL >= 0.9.2",
"sqlparse>=0.3.0,<0.6.0",
"sqlglot[rs] == 27.*",
"configobj >= 5.0.5",
"cli_helpers[styles] >= 2.7.0",
"pyperclip >= 1.8.1",
"pycryptodomex",
"pyfzf >= 0.3.1",
]
[build-system]
requires = ["setuptools>=64.0", "setuptools-scm>=8"]
build-backend = "setuptools.build_meta"
[tool.setuptools_scm]
[project.optional-dependencies]
ssh = ["paramiko", "sshtunnel"]
llm = [
"llm>=0.19.0",
"setuptools", # Required by llm commands to install models
"pip",
]
all = [
"mycli[ssh]",
"mycli[llm]",
]
dev = [
"behave>=1.2.6",
"coverage>=7.2.7",
"mypy~=1.18.1",
"pexpect>=4.9.0",
"pytest>=7.4.4",
"pytest-cov>=4.1.0",
"tox>=4.8.0",
"pdbpp>=0.10.3",
"paramiko",
"sshtunnel",
"llm>=0.19.0",
"setuptools", # Required by llm commands to install models
"pip",
"ruff~=0.14.10",
]
[project.scripts]
mycli = "mycli.main:cli"
[tool.setuptools.package-data]
mycli = ["myclirc", "AUTHORS", "SPONSORS"]
[tool.setuptools.packages.find]
include = ["mycli*"]
[tool.ruff]
target-version = 'py310'
line-length = 140
[tool.ruff.lint]
select = ['A', 'B', 'I', 'E', 'W', 'F', 'C4', 'PIE', 'TID']
ignore = [
'B005', # Multi-character strip()
'E401', # Multiple imports on one line
'E402', # Module level import not at top of file
'PIE808', # range() starting with 0
# https://docs.astral.sh/ruff/formatter/#conflicting-lint-rules
'E111', # indentation-with-invalid-multiple
'E114', # indentation-with-invalid-multiple-comment
'E117', # over-indented
'W191', # tab-indentation
]
[tool.ruff.lint.isort]
force-sort-within-sections = true
known-first-party = ['mycli', 'test', 'steps']
[tool.ruff.lint.flake8-tidy-imports]
ban-relative-imports = 'all'
[tool.ruff.format]
preview = true
quote-style = 'preserve'
exclude = ['build', 'mycli_dev']
[tool.mypy]
pretty = true
strict_equality = true
ignore_missing_imports = true
warn_unreachable = true
warn_redundant_casts = true
warn_no_return = true
warn_unused_configs = true
show_column_numbers = true
exclude = ['^build/', '^dist/']
|