Skip to content

Commit 7d87f21

Browse files
refactor: move to uv from poetry
1 parent 342b435 commit 7d87f21

7 files changed

Lines changed: 2022 additions & 3042 deletions

File tree

poetry.lock

Lines changed: 0 additions & 2798 deletions
This file was deleted.

pyproject.toml

Lines changed: 109 additions & 69 deletions
Original file line numberDiff line numberDiff line change
@@ -1,71 +1,74 @@
1-
[tool.poetry]
1+
[project]
22
name = "meetup_bot"
33
version = "1.1.1"
44
description = "Use Meetup Pro API to send Slack messages before events occur."
5-
authors = ["pythoninthegrass <4097471+pythoninthegrass@users.noreply.github.com>"]
6-
readme = "README.md"
7-
license = "Unlicense"
8-
9-
[tool.poetry.dependencies]
10-
python = ">=3.11,<3.13"
11-
arrow = "^1.3.0"
12-
bcrypt = "4.0.1"
13-
colorama = "^0.4.5"
14-
exceptiongroup = "^1.2.2"
15-
fastapi = ">=0.115.6"
16-
gunicorn = "^23.0.0"
17-
icecream = "^2.1.3"
18-
Jinja2 = "^3.1.5"
19-
jose = "^1.0.0"
20-
numpy = "^2.2.1"
21-
pandas = "^2.2.3"
22-
passlib = {extras = ["bcrypt"], version = "^1.7.4"}
23-
pony = "^0.7.16"
24-
psycopg2-binary = "^2.9.10"
25-
PyJWT = {extras = ["crypto"], version = "^2.10.1"}
26-
python-decouple = "^3.8"
27-
python-jose = {extras = ["cryptography"], version = "^3.3.0"}
28-
python-multipart = "^0.0.9"
29-
requests = "^2.32.3"
30-
requests-cache = "^1.2.1"
31-
slack-sdk = "^3.34.0"
32-
uvicorn = "^0.29.0"
33-
wheel = "^0.43.0"
34-
35-
[tool.poetry.group.dev.dependencies]
36-
ipython = "^8.31.0"
37-
playwright = "^1.49.1"
38-
poetry-plugin-export = "^1.8.0"
39-
poetry-plugin-up = "^0.7.1"
40-
pyclean = "^3.0.0"
41-
rich = "^13.9.4"
42-
ruff = "^0.6.5"
43-
44-
[tool.poetry.group.test.dependencies]
45-
pytest = "^8.3.4"
46-
pytest-asyncio = "^0.24.0"
47-
pytest-cov = "^5.0.0"
48-
pytest-datafiles = "^3.0.0"
49-
pytest-xdist = "^3.6.1"
50-
requests-mock = "^1.12.1"
5+
authors = [
6+
{name = "pythoninthegrass", email = "4097471+pythoninthegrass@users.noreply.github.com"},
7+
]
8+
license = {text = "Unlicense"}
9+
dependencies = [
10+
"arrow<2.0.0,>=1.3.0",
11+
"bcrypt==4.0.1",
12+
"colorama<1.0.0,>=0.4.5",
13+
"exceptiongroup<2.0.0,>=1.2.2",
14+
"fastapi>=0.115.6",
15+
"gunicorn<24.0.0,>=23.0.0",
16+
"icecream<3.0.0,>=2.1.3",
17+
"Jinja2<4.0.0,>=3.1.5",
18+
"python-jose[cryptography]<4.0.0,>=3.3.0",
19+
"numpy<3.0.0,>=2.2.1",
20+
"pandas<3.0.0,>=2.2.3",
21+
"passlib[bcrypt]<2.0.0,>=1.7.4",
22+
"pony<1.0.0,>=0.7.16",
23+
"psycopg2-binary<3.0.0,>=2.9.10",
24+
"PyJWT[crypto]<3.0.0,>=2.10.1",
25+
"python-decouple<4.0,>=3.8",
26+
"python-multipart<1.0.0,>=0.0.9",
27+
"requests<3.0.0,>=2.32.3",
28+
"requests-cache<2.0.0,>=1.2.1",
29+
"slack-sdk<4.0.0,>=3.34.0",
30+
"uvicorn<1.0.0,>=0.29.0",
31+
"wheel<1.0.0,>=0.43.0",
32+
]
33+
requires-python = ">=3.11,<3.12"
34+
35+
[dependency-groups]
36+
dev = [
37+
"ipython<9.0.0,>=8.31.0",
38+
"playwright<2.0.0,>=1.49.1",
39+
"poetry-plugin-export<2.0.0,>=1.8.0",
40+
"poetry-plugin-up<1.0.0,>=0.7.1",
41+
"pyclean<4.0.0,>=3.0.0",
42+
"rich<14.0.0,>=13.9.4",
43+
"ruff<1.0.0,>=0.6.5",
44+
]
45+
test = [
46+
"pytest<9.0.0,>=8.3.4",
47+
"pytest-asyncio<1.0.0,>=0.24.0",
48+
"pytest-cov<6.0.0,>=5.0.0",
49+
"pytest-datafiles<4.0.0,>=3.0.0",
50+
"pytest-xdist<4.0.0,>=3.6.1",
51+
"requests-mock<2.0.0,>=1.12.1",
52+
]
53+
54+
[tool.pytest.ini_options]
55+
testpaths = ["tests"]
56+
python_files = ["test_*.py"]
57+
addopts = "-v --cov=app --cov-report=term-missing"
58+
asyncio_mode = "auto"
5159

5260
[tool.ruff]
53-
# Black (default: 88)
54-
line-length = 130
61+
# Fix without reporting on leftover violations
62+
fix-only = true
5563

56-
# Assume Python 3.11.
57-
target-version = "py311"
64+
# Enumerate all fixed violations
65+
show-fixes = true
5866

59-
[tool.ruff.lint]
60-
# Enable pycodestyle (`E`) and Pyflakes (`F`) codes by default.
61-
select = ["E", "F"]
62-
ignore = []
63-
# Skip unused variable rules
64-
extend-ignore = ["D203", "E203", "E251", "E266", "E401", "E402", "E501", "F401", "F403", "F405"]
67+
# Indent width (default: 4)
68+
indent-width = 4
6569

66-
# Allow autofix for all enabled rules (when `--fix`) is provided.
67-
fixable = ["A", "B", "C", "D", "E", "F", "G", "I", "N", "Q", "S", "T", "W", "ANN", "ARG", "BLE", "COM", "DJ", "DTZ", "EM", "ERA", "EXE", "FBT", "ICN", "INP", "ISC", "NPY", "PD", "PGH", "PIE", "PL", "PT", "PTH", "PYI", "RET", "RSE", "RUF", "SIM", "SLF", "TCH", "TID", "TRY", "UP", "YTT"]
68-
unfixable = []
70+
# Black (default: 88)
71+
line-length = 130
6972

7073
# Exclude a variety of commonly ignored directories.
7174
exclude = [
@@ -94,16 +97,53 @@ exclude = [
9497
"venv",
9598
]
9699

100+
# Assume Python 3.12
101+
target-version = "py312"
102+
103+
[tool.ruff.format]
104+
# Use spaces instead of tabs
105+
indent-style = "space"
106+
107+
# Use `\n` line endings for all files
108+
line-ending = "lf"
109+
110+
# Set quote style for strings
111+
quote-style = "preserve"
112+
113+
[tool.ruff.lint]
114+
select = [
115+
# pycodestyle
116+
"E",
117+
# Pyflakes
118+
"F",
119+
# pyupgrade
120+
"UP",
121+
# flake8-bugbear
122+
"B",
123+
# flake8-simplify
124+
"SIM",
125+
# isort
126+
"I",
127+
]
128+
ignore = ["D203", "E203", "E251", "E266", "E401", "E402", "E501", "F401", "F403"]
129+
97130
# Allow unused variables when underscore-prefixed.
98131
dummy-variable-rgx = "^(_+|(_+[a-zA-Z0-9_]*[a-zA-Z0-9]+?))$"
99132

100-
[tool.pytest.ini_options]
101-
markers = [
102-
"slow: marks tests as slow (deselect with '-m \"not slow\"')",
103-
"qa: marks tests as qa (deselect with '-m \"not qa\"')",
104-
]
105-
testpaths = ["tests"]
133+
# Allow autofix for all enabled rules (when `--fix`) is provided.
134+
fixable = ["A", "B", "C", "D", "E", "F", "G", "I", "N", "Q", "S", "T", "W", "ANN", "ARG", "BLE", "COM", "DJ", "DTZ", "EM", "ERA", "EXE", "FBT", "ICN", "INP", "ISC", "NPY", "PD", "PGH", "PIE", "PL", "PT", "PTH", "PYI", "RET", "RSE", "RUF", "SIM", "SLF", "TID", "TRY", "UP", "YTT"]
135+
136+
# unfixable = []
137+
138+
[tool.ruff.lint.isort]
139+
combine-as-imports = true
140+
from-first = false
141+
no-sections = true
142+
order-by-type = true
143+
144+
[tool.ruff.lint.flake8-quotes]
145+
docstring-quotes = "double"
106146

107-
[build-system]
108-
requires = ["poetry-core"]
109-
build-backend = "poetry.core.masonry.api"
147+
[tool.ruff.lint.mccabe]
148+
# Unlike Flake8, default to a complexity level of 10.
149+
max-complexity = 10

requirements.txt

Lines changed: 139 additions & 57 deletions
Original file line numberDiff line numberDiff line change
@@ -1,57 +1,139 @@
1-
annotated-types==0.7.0 ; python_version >= "3.11" and python_version < "3.13"
2-
anyio==4.7.0 ; python_version >= "3.11" and python_version < "3.13"
3-
arrow==1.3.0 ; python_version >= "3.11" and python_version < "3.13"
4-
asttokens==3.0.0 ; python_version >= "3.11" and python_version < "3.13"
5-
attrs==24.3.0 ; python_version >= "3.11" and python_version < "3.13"
6-
bcrypt==4.0.1 ; python_version >= "3.11" and python_version < "3.13"
7-
cattrs==24.1.2 ; python_version >= "3.11" and python_version < "3.13"
8-
certifi==2024.12.14 ; python_version >= "3.11" and python_version < "3.13"
9-
cffi==1.17.1 ; python_version >= "3.11" and python_version < "3.13" and platform_python_implementation != "PyPy"
10-
charset-normalizer==3.4.1 ; python_version >= "3.11" and python_version < "3.13"
11-
click==8.1.8 ; python_version >= "3.11" and python_version < "3.13"
12-
colorama==0.4.6 ; python_version >= "3.11" and python_version < "3.13"
13-
cryptography==44.0.0 ; python_version >= "3.11" and python_version < "3.13"
14-
ecdsa==0.19.0 ; python_version >= "3.11" and python_version < "3.13"
15-
exceptiongroup==1.2.2 ; python_version >= "3.11" and python_version < "3.13"
16-
executing==2.1.0 ; python_version >= "3.11" and python_version < "3.13"
17-
fastapi==0.115.6 ; python_version >= "3.11" and python_version < "3.13"
18-
gunicorn==23.0.0 ; python_version >= "3.11" and python_version < "3.13"
19-
h11==0.14.0 ; python_version >= "3.11" and python_version < "3.13"
20-
icecream==2.1.3 ; python_version >= "3.11" and python_version < "3.13"
21-
idna==3.10 ; python_version >= "3.11" and python_version < "3.13"
22-
jinja2==3.1.5 ; python_version >= "3.11" and python_version < "3.13"
23-
jose==1.0.0 ; python_version >= "3.11" and python_version < "3.13"
24-
markupsafe==3.0.2 ; python_version >= "3.11" and python_version < "3.13"
25-
numpy==2.2.1 ; python_version >= "3.11" and python_version < "3.13"
26-
packaging==24.2 ; python_version >= "3.11" and python_version < "3.13"
27-
pandas==2.2.3 ; python_version >= "3.11" and python_version < "3.13"
28-
passlib[bcrypt]==1.7.4 ; python_version >= "3.11" and python_version < "3.13"
29-
platformdirs==4.3.6 ; python_version >= "3.11" and python_version < "3.13"
30-
pony==0.7.19 ; python_version >= "3.11" and python_version < "3.13"
31-
psycopg2-binary==2.9.10 ; python_version >= "3.11" and python_version < "3.13"
32-
pyasn1==0.6.1 ; python_version >= "3.11" and python_version < "3.13"
33-
pycparser==2.22 ; python_version >= "3.11" and python_version < "3.13" and platform_python_implementation != "PyPy"
34-
pycrypto==2.6.1 ; python_version >= "3.11" and python_version < "3.13"
35-
pydantic==2.10.4 ; python_version >= "3.11" and python_version < "3.13"
36-
pydantic-core==2.27.2 ; python_version >= "3.11" and python_version < "3.13"
37-
pygments==2.18.0 ; python_version >= "3.11" and python_version < "3.13"
38-
pyjwt[crypto]==2.10.1 ; python_version >= "3.11" and python_version < "3.13"
39-
python-dateutil==2.9.0.post0 ; python_version >= "3.11" and python_version < "3.13"
40-
python-decouple==3.8 ; python_version >= "3.11" and python_version < "3.13"
41-
python-jose[cryptography]==3.3.0 ; python_version >= "3.11" and python_version < "3.13"
42-
python-multipart==0.0.9 ; python_version >= "3.11" and python_version < "3.13"
43-
pytz==2024.2 ; python_version >= "3.11" and python_version < "3.13"
44-
requests==2.32.3 ; python_version >= "3.11" and python_version < "3.13"
45-
requests-cache==1.2.1 ; python_version >= "3.11" and python_version < "3.13"
46-
rsa==4.9 ; python_version >= "3.11" and python_version < "3.13"
47-
six==1.17.0 ; python_version >= "3.11" and python_version < "3.13"
48-
slack-sdk==3.34.0 ; python_version >= "3.11" and python_version < "3.13"
49-
sniffio==1.3.1 ; python_version >= "3.11" and python_version < "3.13"
50-
starlette==0.41.3 ; python_version >= "3.11" and python_version < "3.13"
51-
types-python-dateutil==2.9.0.20241206 ; python_version >= "3.11" and python_version < "3.13"
52-
typing-extensions==4.12.2 ; python_version >= "3.11" and python_version < "3.13"
53-
tzdata==2024.2 ; python_version >= "3.11" and python_version < "3.13"
54-
url-normalize==1.4.3 ; python_version >= "3.11" and python_version < "3.13"
55-
urllib3==2.3.0 ; python_version >= "3.11" and python_version < "3.13"
56-
uvicorn==0.29.0 ; python_version >= "3.11" and python_version < "3.13"
57-
wheel==0.43.0 ; python_version >= "3.11" and python_version < "3.13"
1+
# This file was autogenerated by uv via the following command:
2+
# uv pip compile pyproject.toml -o /Users/lance/git/meetup_bot/requirements.txt
3+
annotated-types==0.7.0
4+
# via pydantic
5+
anyio==4.7.0
6+
# via starlette
7+
arrow==1.3.0
8+
# via meetup-bot (pyproject.toml)
9+
asttokens==3.0.0
10+
# via icecream
11+
attrs==24.3.0
12+
# via
13+
# cattrs
14+
# requests-cache
15+
bcrypt==4.0.1
16+
# via
17+
# meetup-bot (pyproject.toml)
18+
# passlib
19+
cattrs==24.1.2
20+
# via requests-cache
21+
certifi==2024.12.14
22+
# via requests
23+
cffi==1.17.1
24+
# via cryptography
25+
charset-normalizer==3.4.1
26+
# via requests
27+
click==8.1.8
28+
# via uvicorn
29+
colorama==0.4.6
30+
# via
31+
# meetup-bot (pyproject.toml)
32+
# icecream
33+
cryptography==44.0.0
34+
# via
35+
# pyjwt
36+
# python-jose
37+
ecdsa==0.19.0
38+
# via python-jose
39+
exceptiongroup==1.2.2
40+
# via meetup-bot (pyproject.toml)
41+
executing==2.1.0
42+
# via icecream
43+
fastapi==0.115.6
44+
# via meetup-bot (pyproject.toml)
45+
gunicorn==23.0.0
46+
# via meetup-bot (pyproject.toml)
47+
h11==0.14.0
48+
# via uvicorn
49+
icecream==2.1.3
50+
# via meetup-bot (pyproject.toml)
51+
idna==3.10
52+
# via
53+
# anyio
54+
# requests
55+
jinja2==3.1.5
56+
# via meetup-bot (pyproject.toml)
57+
markupsafe==3.0.2
58+
# via jinja2
59+
numpy==2.2.1
60+
# via
61+
# meetup-bot (pyproject.toml)
62+
# pandas
63+
packaging==24.2
64+
# via gunicorn
65+
pandas==2.2.3
66+
# via meetup-bot (pyproject.toml)
67+
passlib==1.7.4
68+
# via meetup-bot (pyproject.toml)
69+
platformdirs==4.3.6
70+
# via requests-cache
71+
pony==0.7.19
72+
# via meetup-bot (pyproject.toml)
73+
psycopg2-binary==2.9.10
74+
# via meetup-bot (pyproject.toml)
75+
pyasn1==0.6.1
76+
# via
77+
# python-jose
78+
# rsa
79+
pycparser==2.22
80+
# via cffi
81+
pydantic==2.10.4
82+
# via fastapi
83+
pydantic-core==2.27.2
84+
# via pydantic
85+
pygments==2.18.0
86+
# via icecream
87+
pyjwt==2.10.1
88+
# via meetup-bot (pyproject.toml)
89+
python-dateutil==2.9.0.post0
90+
# via
91+
# arrow
92+
# pandas
93+
python-decouple==3.8
94+
# via meetup-bot (pyproject.toml)
95+
python-jose==3.3.0
96+
# via meetup-bot (pyproject.toml)
97+
python-multipart==0.0.9
98+
# via meetup-bot (pyproject.toml)
99+
pytz==2024.2
100+
# via pandas
101+
requests==2.32.3
102+
# via
103+
# meetup-bot (pyproject.toml)
104+
# requests-cache
105+
requests-cache==1.2.1
106+
# via meetup-bot (pyproject.toml)
107+
rsa==4.9
108+
# via python-jose
109+
six==1.17.0
110+
# via
111+
# ecdsa
112+
# python-dateutil
113+
# url-normalize
114+
slack-sdk==3.34.0
115+
# via meetup-bot (pyproject.toml)
116+
sniffio==1.3.1
117+
# via anyio
118+
starlette==0.41.3
119+
# via fastapi
120+
types-python-dateutil==2.9.0.20241206
121+
# via arrow
122+
typing-extensions==4.12.2
123+
# via
124+
# anyio
125+
# fastapi
126+
# pydantic
127+
# pydantic-core
128+
tzdata==2024.2
129+
# via pandas
130+
url-normalize==1.4.3
131+
# via requests-cache
132+
urllib3==2.3.0
133+
# via
134+
# requests
135+
# requests-cache
136+
uvicorn==0.29.0
137+
# via meetup-bot (pyproject.toml)
138+
wheel==0.43.0
139+
# via meetup-bot (pyproject.toml)

0 commit comments

Comments
 (0)