|
1 | 1 | [build-system] |
2 | | -# Switch to poetry's build system |
3 | 2 | requires = ["poetry-core>=1.0.0"] |
4 | 3 | build-backend = "poetry.core.masonry.api" |
5 | 4 |
|
6 | 5 | [tool.poetry] |
7 | 6 | name = "user-agent-parser" |
8 | | -version = "0.1.3" |
9 | | -description = "Parser User agent string and get device details" |
| 7 | +version = "0.1.6" # bump so PyPI re-indexes |
| 8 | +description = "Python 3 library to parse User-Agent strings and detect browser, OS and device details" |
10 | 9 | authors = ["Purushot14 <prakash.purushoth@gmail.com>"] |
11 | 10 | readme = "README.md" |
12 | 11 | repository = "https://github.com/Purushot14/user-agent-parser" |
13 | | -packages = [{include = "user_agent_parser"}] |
| 12 | +homepage = "https://github.com/Purushot14/user-agent-parser" |
| 13 | + |
| 14 | +# ✍️ NEW — PyPI uses this list directly for search relevance |
| 15 | +keywords = [ |
| 16 | + "user agent", |
| 17 | + "user-agent parser", |
| 18 | + "ua parser", |
| 19 | + "browser detection", |
| 20 | + "device detection", |
| 21 | + "python", |
| 22 | + "http", |
| 23 | + "analytics" |
| 24 | +] |
| 25 | + |
| 26 | +packages = [{ include = "user_agent_parser" }] |
14 | 27 | license = "MIT" |
15 | 28 | classifiers = [ |
16 | | - "Programming Language :: Python :: 3", |
17 | | - "License :: OSI Approved :: MIT License", |
18 | | - "Operating System :: OS Independent", |
19 | | - "Topic :: Internet :: WWW/HTTP", |
20 | | - "Topic :: Software Development :: Libraries :: Python Modules", |
21 | | - "Environment :: Web Environment", |
22 | | - "Intended Audience :: Developers", |
| 29 | + "Programming Language :: Python :: 3", |
| 30 | + "Programming Language :: Python :: 3 :: Only", |
| 31 | + "License :: OSI Approved :: MIT License", |
| 32 | + "Operating System :: OS Independent", |
| 33 | + "Topic :: Internet :: WWW/HTTP", |
| 34 | + "Topic :: Software Development :: Libraries :: Python Modules", |
| 35 | + "Environment :: Web Environment", |
| 36 | + "Intended Audience :: Developers", |
23 | 37 | ] |
24 | 38 |
|
25 | 39 | [tool.poetry.dependencies] |
26 | | -python = ">=3.7" |
| 40 | +python = ">=3.8" |
27 | 41 |
|
28 | 42 | [tool.poetry.group.dev.dependencies] |
29 | 43 | ruff = "^0.1.8" |
30 | 44 | pytest = "^7.4.0" |
31 | 45 |
|
32 | | -# Ruff configuration for linting and formatting |
| 46 | +# --- unchanged lint / format config below --- |
33 | 47 | [tool.ruff] |
34 | | -target-version = "py37" |
| 48 | +target-version = "py38" |
35 | 49 | line-length = 120 |
36 | 50 |
|
37 | | -# Ruff linter settings |
38 | 51 | [tool.ruff.lint] |
39 | | -select = [ |
40 | | - "E", # pycodestyle errors |
41 | | - "F", # pyflakes |
42 | | - "I", # isort |
43 | | - "UP", # pyupgrade |
44 | | - "N", # pep8-naming |
45 | | - "B", # flake8-bugbear |
46 | | - "C4", # flake8-comprehensions |
47 | | - "SIM", # flake8-simplify |
48 | | - "TCH", # flake8-type-checking |
49 | | - "ARG", # flake8-unused-arguments |
50 | | - "ERA", # eradicate |
51 | | -] |
| 52 | +select = ["E", "F", "I", "UP", "N", "B", "C4", "SIM", "TCH", "ARG", "ERA"] |
52 | 53 | ignore = [] |
53 | 54 | unfixable = [] |
54 | 55 |
|
55 | | -# Ignore unused imports in __init__.py files |
56 | 56 | [tool.ruff.lint.per-file-ignores] |
57 | 57 | "__init__.py" = ["F401"] |
58 | 58 |
|
59 | | -# Ruff import sorting |
60 | 59 | [tool.ruff.lint.isort] |
61 | 60 | known-first-party = ["user_agent_parser"] |
62 | 61 | case-sensitive = true |
63 | 62 |
|
64 | | -# Ruff formatter settings |
65 | 63 | [tool.ruff.format] |
66 | 64 | quote-style = "double" |
67 | 65 | indent-style = "space" |
68 | 66 | line-ending = "auto" |
69 | | - |
0 commit comments