-
Notifications
You must be signed in to change notification settings - Fork 8
Expand file tree
/
Copy pathpyproject.toml
More file actions
111 lines (96 loc) · 3.13 KB
/
pyproject.toml
File metadata and controls
111 lines (96 loc) · 3.13 KB
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
# ============================================
# pyproject.toml - Project Configuration
# ============================================
# Configuration for Ruff linter and other Python tools.
# See: https://docs.astral.sh/ruff/configuration/
# ============================================
[project]
name = "fbscrapeideas"
version = "0.8.3"
description = "CLI app for scraping Facebook groups with AI-powered categorization"
requires-python = ">=3.11"
[tool.ruff]
# Target Python 3.11
target-version = "py311"
# Line length (match common standard)
line-length = 100
# Exclude common directories
exclude = [
".git",
".github",
".ruff_cache",
".venv",
"venv",
"__pycache__",
"*.pyc",
"build",
"dist",
"*.egg-info",
"memory-bank",
]
[tool.ruff.lint]
# Enable recommended rules
# E = pycodestyle errors
# F = Pyflakes
# I = isort (import sorting)
# W = pycodestyle warnings
# UP = pyupgrade (Python version upgrades)
# B = flake8-bugbear (common bugs)
# SIM = flake8-simplify
select = [
"E", # pycodestyle errors
"F", # Pyflakes
"I", # isort
"W", # pycodestyle warnings
"UP", # pyupgrade
"B", # flake8-bugbear
]
# Ignore specific rules that may conflict with existing code
ignore = [
"E501", # Line too long (handled by formatter)
"E402", # Module level import not at top of file (sometimes needed)
"F401", # Imported but unused (may be intentional re-exports)
"B008", # Do not perform function calls in argument defaults
]
# Allow autofix for all enabled rules
fixable = ["ALL"]
unfixable = []
[tool.ruff.lint.per-file-ignores]
# Allow unused imports in __init__.py files (re-exports)
"__init__.py" = ["F401"]
# Allow more flexibility in test files
"tests/*" = ["B", "E501"]
[tool.ruff.lint.isort]
# Match existing import style
known-first-party = ["ai", "cli", "database", "export", "scraper"]
section-order = ["future", "standard-library", "third-party", "first-party", "local-folder"]
[tool.ruff.format]
# Use double quotes (Python standard)
quote-style = "double"
# Use spaces for indentation
indent-style = "space"
# Unix-style line endings
line-ending = "lf"
[tool.semantic_release]
version_variables = ["version.py:__version__"]
version_toml = ["pyproject.toml:project.version"]
branches.master = { match = "master" }
commit_parser = "emoji"
logging_use_named_masks = true
major_on_zero = true
upload_to_release = false
upload_to_repository = false
commit_message = "{version} [skip ci]"
# Allow releases on any commit type - all unmatched commits bump patch
allow_zero_version = true
[tool.semantic_release.commit_parser_options]
major_tags = ["🚨", "💥"]
minor_tags = ["✨", "🎉"]
patch_tags = [
"🐛", "🔒", "🛠", "⚡️", "📚", "🏗", "♻️", "🚦", "🎨", "📦", "🔖",
"🚀", "🔧", "📝", "🔄", "💡", "🔥", "💄", "🩹", "🔨", "✏️",
"🌐", "💬", "🗃️", "🔊", "🔇", "👥", "🚸", "🏷️", "🌱", "🚩",
"🥅", "💫", "🗑️", "🛂", "🩺", "🧱", "🧑💻", "💸", "🧵", "🦺"
]
# Default to patch bump for any commit that doesn't match emoji patterns
default_bump_level = 1