-
Notifications
You must be signed in to change notification settings - Fork 0
/
pyproject.toml
117 lines (101 loc) · 2.81 KB
/
pyproject.toml
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
[tool.poetry]
name = "databudgie"
version = "2.8.6"
packages = [
{ include = "databudgie", from = "src" },
]
authors = [
"Andrew Sosa <[email protected]>",
"Dan Cardin <[email protected]>",
]
classifiers = [
"License :: OSI Approved :: MIT License",
"Topic :: System :: Archiving :: Backup",
]
description = "Ergonomic and flexible tool for database backup and restore"
include = [
"*.md",
"py.typed",
]
keywords = [ "sqlalchemy", "postgres", "database", "etl", "s3" ]
license = "MIT"
readme = "README.md"
repository = "https://github.com/schireson/databudgie"
[tool.poetry.scripts]
databudgie = "databudgie.__main__:run"
[tool.poetry.dependencies]
python = ">=3.8,<4"
rich = "*"
configly = {version = ">=1.0.0", extras = ["yaml"]}
sqlalchemy = ">=1.3"
strapp = {version = ">=0.2.7", extras = ["click", "sqlalchemy"] }
click = ">=7.0.0"
typing-extensions = {version = ">=3.10.0", python = "<3.8"}
importlib-metadata = {version = "*", python = "<3.8"}
boto3 = { version = "*", optional = true }
psycopg2 = { version = ">=2.7", optional = true }
psycopg2-binary = { version = ">=2.7", optional = true }
[tool.poetry.extras]
s3 = ["boto3"]
psycopg2 = ["psycopg2"]
psycopg2-binary = ["psycopg2-binary"]
[tool.poetry.dev-dependencies]
boto3 = "1.34.100"
black = "22.3.0"
boto3-stubs = {extras = ["s3"], version = "^1.18.38"}
coverage = ">=5"
freezegun = "*"
mypy = "^0.991"
pytest = ">=6.2.4"
pytest-mock-resources = {version = ">=2.1.10", extras = ["docker"]}
responses = ">=0.10.9"
ruff = "0.0.254"
types-freezegun = "^0.1.3"
types-requests = "^0.1.11"
faker = "^8.12.1"
moto = {extras = ["s3"], version = "^5.0.0"}
sqlalchemy-model-factory = "^0.4.5"
types-click = "^7.1.5"
[tool.black]
line_length = 120
[tool.isort]
profile = 'black'
known_first_party = 'databudgie,tests'
line_length = 120
float_to_top = true
order_by_type = false
use_parentheses = true
[tool.mypy]
strict_optional = true
ignore_missing_imports = true
warn_unused_ignores = true
incremental = true
[[tool.mypy.overrides]]
module = 'tests.mockmodels.*'
ignore_errors = true
[tool.coverage.report]
show_missing = true
skip_covered = true
exclude_lines = [
"pragma: no cover",
"if TYPE_CHECKING:",
"if __name__ == .__main__.:",
]
[tool.coverage.run]
source = ["src"]
branch = true
[tool.pydocstyle]
ignore = 'D1,D200,D202,D203,D204,D213,D406,D407,D413'
match_dir = '^[^\.{]((?!igrations).)*'
[tool.pytest.ini_options]
doctest_optionflags = "NORMALIZE_WHITESPACE IGNORE_EXCEPTION_DETAIL ELLIPSIS"
addopts = "--doctest-modules -vv --ff --strict-markers"
norecursedirs = ".* build dist *.egg migrations bin"
filterwarnings = [
"ignore::sqlalchemy.exc.SAWarning",
"ignore::sqlalchemy.exc.SADeprecationWarning",
"ignore:ssl.PROTOCOL_TLS is deprecated:DeprecationWarning",
]
[build-system]
requires = ["poetry_core==1.0.8"]
build-backend = "poetry.core.masonry.api"