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 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135
|
[project]
name = "pgcli"
authors = [{ name = "Pgcli Core Team", email = "pgcli-dev@googlegroups.com" }]
license = { text = "BSD" }
description = "CLI for Postgres Database. With auto-completion and syntax highlighting."
readme = "README.rst"
classifiers = [
"Intended Audience :: Developers",
"License :: OSI Approved :: BSD License",
"Operating System :: Unix",
"Programming Language :: Python",
"Programming Language :: Python :: 3",
"Programming Language :: Python :: 3.9",
"Programming Language :: Python :: 3.10",
"Programming Language :: Python :: 3.11",
"Programming Language :: Python :: 3.12",
"Programming Language :: Python :: 3.13",
"Programming Language :: SQL",
"Topic :: Database",
"Topic :: Database :: Front-Ends",
"Topic :: Software Development",
"Topic :: Software Development :: Libraries :: Python Modules",
]
urls = { Homepage = "https://pgcli.com" }
requires-python = ">=3.9"
dependencies = [
"pgspecial>=2.0.0",
"click >= 4.1,<8.1.8",
"Pygments>=2.0", # Pygments has to be Capitalcased.
# We still need to use pt-2 unless pt-3 released on Fedora32
# see: https://github.com/dbcli/pgcli/pull/1197
"prompt_toolkit>=2.0.6,<4.0.0",
"psycopg >= 3.0.14; sys_platform != 'win32'",
"psycopg-binary >= 3.0.14; sys_platform == 'win32'",
"sqlparse >=0.3.0,<0.6",
"configobj >= 5.0.6",
"cli_helpers[styles] >= 2.4.0",
# setproctitle is used to mask the password when running `ps` in command line.
# But this is not necessary in Windows since the password is never shown in the
# task manager. Also setproctitle is a hard dependency to install in Windows,
# so we'll only install it if we're not in Windows.
"setproctitle >= 1.1.9; sys_platform != 'win32' and 'CYGWIN' not in sys_platform",
"tzlocal >= 5.2",
]
dynamic = ["version"]
[project.scripts]
pgcli = "pgcli.main:cli"
[project.optional-dependencies]
keyring = ["keyring >= 12.2.0"]
sshtunnel = ["sshtunnel >= 0.4.0"]
dev = [
"behave>=1.2.4",
"coverage>=7.2.7",
"docutils>=0.13.1",
"keyrings.alt>=3.1",
"pexpect>=4.9.0; platform_system != 'Windows'",
"pytest>=7.4.4",
"pytest-cov>=4.1.0",
"ruff>=0.11.7",
"sshtunnel>=0.4.0",
"tox>=1.9.2",
]
[build-system]
requires = ["setuptools>=64.0", "setuptools-scm>=8"]
build-backend = "setuptools.build_meta"
[tool.setuptools_scm]
[tool.setuptools]
include-package-data = false
[tool.setuptools.dynamic]
version = { attr = "pgcli.__version__" }
[tool.setuptools.packages]
find = { namespaces = false }
[tool.setuptools.package-data]
pgcli = ["pgclirc", "packages/pgliterals/pgliterals.json"]
[tool.ruff]
target-version = 'py39'
line-length = 140
[tool.ruff.lint]
select = [
'A',
# 'I', # todo enableme imports
'E',
'W',
'F',
'C4',
'PIE',
'TID',
]
ignore = [
'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
'E741', # ambiguous-variable-name
# TODO
'PIE796', # todo enableme Enum contains duplicate value
]
exclude = [
'pgcli/magic.py',
'pgcli/pyev.py',
]
[tool.ruff.lint.isort]
force-sort-within-sections = true
known-first-party = [
'pgcli',
'tests',
]
[tool.ruff.format]
preview = true
quote-style = 'preserve'
exclude = [
'build',
]
[tool.pytest.ini_options]
minversion = "6.0"
addopts = "--capture=sys --showlocals -rxs"
testpaths = ["tests"]
|