-
Notifications
You must be signed in to change notification settings - Fork 0
/
pyproject.toml
142 lines (135 loc) · 3.31 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
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
[tool.poetry]
name = "python_examples"
version = "0.1.0"
description = ""
authors = ["BuRny <gamingburny@gmail.com>"]
package-mode = false
[tool.poetry.dependencies]
python = ">=3.8, <3.13"
# Numeric python
numpy = "^1.21"
# Write and read classes to/from json
dataclasses-json = "^0.5"
# Write and read classes to/from json with validator
pydantic = {extras = ["email"], version = "^1.10.2"}
# Network access
aiohttp = "^3.7"
requests = "^2.26"
# Required by aiohttp on windows?
idna-ssl = "^1.1"
# Simple logger
loguru = "^0.7"
# Required by loguru on windows?
aiocontextvars = "^0.2"
atomicwrites = "^1.3"
contextvars = "^2.4"
win32-setctime = "^1.0"
# Image library
pillow = "^9.1"
# Better / easier datetime library
pendulum = "^2.1"
# Easier nested dictionary manipulation
dpath = "^2.0"
# File watcher
watchgod = "^0.8"
# Database with ORM
SQLAlchemy = "^1.4"
# Simple database that operates on dictionaries
tinydb = "^4.5"
# New popular database mongodb
pymongo = "^3.12"
# Generate text
lorem-text = "^2.1"
# https://github.com/tiangolo/sqlmodel
sqlmodel = "^0.0.8"
# Geometry manipulation
Shapely = "^1.8"
# Info about the system
psutil = "^5.8"
# Execute command on server via SSH, or push files via SFTP
paramiko = "^2.11"
# Simpler argparse
click = "^8.1"
# SQL ORM
peewee = "^3.14"
# SQL ORM
pony = "^0.7.16"
# Sync mongoDB ODM
mongoengine = "^0.24"
# Async mongoDB ODM
beanie = "^1.11"
# Create sqlalchemy migrations
alembic = "^1.7"
# Load environment variables from .env file
python-dotenv = "^1.0"
# Data science and plotting
pandas = "^1.4.2"
# Plotting
seaborn = "^0.11.2"
# Plotting
matplotlib = "^3.5.2"
# Plotting
bokeh = "^2.0"
# Animation
#manim = "^0.15.2"
aiofiles = "^23.0"
burny-common = "^0.0.12"
psycopg = {extras = ["binary"], version = "^3.1.17"}
dataset = "^1.6.2"
moviepy = "^1.0.3"
[tool.poetry.group.dev.dependencies]
# Test library
pytest = "^7.1"
pytest-asyncio = "^0.18"
pytest-cov = "^4.0"
pytest-benchmark = "^4.0"
# Statistical testing
hypothesis = "^6.34"
# Cyclomatic complexity checker
#radon = "^5.0"
# Function profiler, checks how often functions get called
snakeviz = "^2.1"
# Line profiler
scalene = "^1.3.16"
toml = "^0.10.2"
# Linter
ruff = "^0.1.14"
# Type checker
pyre-check = "^0.9.18"
[build-system]
requires = ["poetry-core>=1.0.0"]
build-backend = "poetry.core.masonry.api"
[tool.yapf]
based_on_style = "pep8"
column_limit = 120
split_arguments_when_comma_terminated = true
dedent_closing_brackets = true
allow_split_before_dict_value = false
[tool.ruff]
target-version = 'py38'
line-length = 120
# Allow unused variables when underscore-prefixed.
dummy-variable-rgx = "^(_+|(_+[a-zA-Z0-9_]*[a-zA-Z0-9]+?))$"
select = [
"C4", # flake8-comprehensions
"E", # Error
"F", # pyflakes
"BLE", # flake8-blind-except
"I", # isort
"N", # pep8-naming
"PGH", # pygrep-hooks
"PTH", # flake8-use-pathlib
"SIM", # flake8-simplify
"W", # Warning
"Q", # flake8-quotes
"YTT", # flake8-2020
"UP", # pyupgrade
# "A", # flake8-builtins
]
[tool.ruff.pyupgrade]
# Preserve types, even if a file imports `from __future__ import annotations`.
# Remove once support for py3.8 and 3.9 is dropped
keep-runtime-typing = true
[tool.ruff.pep8-naming]
# Allow Pydantic's `@validator` decorator to trigger class method treatment.
classmethod-decorators = ["pydantic.validator", "classmethod"]