Skip to content

Commit 67e55b4

Browse files
Merge pull request #15 from musher-dev/release-please--branches--main--components--musher-sdk
chore(main): release 0.3.2
2 parents e821dc3 + b7289f4 commit 67e55b4

3 files changed

Lines changed: 166 additions & 158 deletions

File tree

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
{
2-
".": "0.3.1"
2+
".": "0.3.2"
33
}

CHANGELOG.md

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,13 @@
11
# Changelog
22

3+
## [0.3.2](https://github.com/musher-dev/python-sdk/compare/0.3.1...0.3.2) (2026-03-30)
4+
5+
6+
### Bug Fixes
7+
8+
* sync pyproject.toml version with release-please and use inline marker ([e821dc3](https://github.com/musher-dev/python-sdk/commit/e821dc35b7b6f4cc6cf99d24fdd741fbd221ca3a))
9+
* sync pyproject.toml version with release-please and use inline marker ([e4f729b](https://github.com/musher-dev/python-sdk/commit/e4f729b4bd3426114b087ac38be9973e6b5c4075))
10+
311
## [0.3.1](https://github.com/musher-dev/python-sdk/compare/0.3.0...0.3.1) (2026-03-30)
412

513

pyproject.toml

Lines changed: 157 additions & 157 deletions
Original file line numberDiff line numberDiff line change
@@ -1,157 +1,157 @@
1-
[project]
2-
name = "musher-sdk"
3-
version = "0.3.1" # x-release-please-version
4-
description = "Python SDK for the Musher bundle distribution platform"
5-
readme = "README.md"
6-
license = "Apache-2.0"
7-
requires-python = ">=3.13"
8-
dependencies = [
9-
"httpx>=0.27",
10-
"keyring>=25.0",
11-
"platformdirs>=4.0",
12-
"pydantic>=2.12",
13-
]
14-
15-
[project.optional-dependencies]
16-
examples = [
17-
"openai-agents>=0.13",
18-
"pydantic-ai>=1.0",
19-
"claude-agent-sdk>=0.1",
20-
]
21-
22-
[dependency-groups]
23-
dev = [
24-
"ruff>=0.15.2",
25-
"basedpyright>=1.38.1",
26-
"nodejs-wheel>=22,<25",
27-
"pytest>=8.3.0,<10.0.0",
28-
"pytest-asyncio>=1.0.0",
29-
"pytest-cov>=4.0.0",
30-
"respx>=0.20.0",
31-
"pytest-xdist>=3.0",
32-
]
33-
34-
[build-system]
35-
requires = ["hatchling"]
36-
build-backend = "hatchling.build"
37-
38-
[tool.hatch.build.targets.wheel]
39-
packages = ["src/musher"]
40-
41-
[tool.pytest.ini_options]
42-
testpaths = ["tests"]
43-
asyncio_mode = "auto"
44-
addopts = [
45-
"--strict-markers",
46-
"--strict-config",
47-
"-n=auto",
48-
"--cov=musher",
49-
"--cov-report=term-missing",
50-
"--cov-fail-under=90",
51-
]
52-
53-
[tool.basedpyright]
54-
include = ["src"]
55-
exclude = [
56-
"**/node_modules",
57-
"**/__pycache__",
58-
"tests",
59-
]
60-
pythonVersion = "3.13"
61-
typeCheckingMode = "all"
62-
63-
[tool.ruff]
64-
required-version = ">=0.14.14"
65-
line-length = 100
66-
target-version = "py313"
67-
preview = true
68-
exclude = [
69-
".git",
70-
".venv",
71-
"__pycache__",
72-
]
73-
74-
[tool.ruff.lint]
75-
select = [
76-
"E", "W", # pycodestyle
77-
"F", # pyflakes
78-
"I", # isort
79-
"N", # pep8-naming
80-
"UP", # pyupgrade
81-
"B", # flake8-bugbear
82-
"C4", # flake8-comprehensions
83-
"A", # flake8-builtins
84-
"DTZ", # flake8-datetimez
85-
"ASYNC", # flake8-async
86-
"RUF", # ruff-specific
87-
"T20", # flake8-print
88-
"PGH", # pygrep-hooks
89-
"PT", # flake8-pytest-style
90-
"PERF", # perflint
91-
"RET", # flake8-return
92-
"G", # flake8-logging-format
93-
"BLE", # flake8-blind-except
94-
"SIM", # flake8-simplify
95-
"TC", # flake8-type-checking
96-
"ARG", # flake8-unused-arguments
97-
"PTH", # flake8-use-pathlib
98-
"PL", # pylint
99-
"ERA001", # eradicate (dead code)
100-
"S", # flake8-bandit (security)
101-
"FIX", # fixme comments
102-
"ANN", # flake8-annotations
103-
"D", # pydocstyle
104-
"ISC", # flake8-implicit-str-concat
105-
"ICN", # flake8-import-conventions
106-
"PIE", # flake8-pie
107-
"RSE", # flake8-raise
108-
"FURB", # refurb
109-
"LOG", # flake8-logging
110-
"FLY", # flynt (f-string conversion)
111-
"TID", # flake8-tidy-imports
112-
"COM", # flake8-commas
113-
"Q", # flake8-quotes
114-
"SLOT", # flake8-slots
115-
"FA", # flake8-future-annotations
116-
"YTT", # flake8-2020 (sys.version checks)
117-
]
118-
ignore = [
119-
"E501", # line too long (handled by formatter)
120-
"A003", # builtin shadowing in class attributes
121-
"D100", # missing docstring in public module
122-
"D104", # missing docstring in public package
123-
"COM812", # missing trailing comma (conflicts with formatter)
124-
"ISC001", # implicit string concat on single line (conflicts with formatter)
125-
]
126-
fixable = ["ALL"]
127-
128-
[tool.ruff.lint.per-file-ignores]
129-
"tests/**/*" = [
130-
"S101", "S105", "S106", "S108",
131-
"ARG001", "ARG002",
132-
"PLR2004",
133-
"PLR6301", # test methods don't use self
134-
"PLR0904", # too many public methods in test classes
135-
"PLC2701", # tests import private modules
136-
"RUF069", # float equality ok in tests with known values
137-
"ANN",
138-
"D",
139-
]
140-
"__init__.py" = ["F401", "RUF067"]
141-
"examples/**/*" = ["T201", "S106", "S603", "S604", "S605", "S607", "ERA001", "ANN", "D"]
142-
143-
[tool.ruff.lint.pylint]
144-
max-args = 8
145-
146-
[tool.ruff.lint.pydocstyle]
147-
convention = "google"
148-
149-
[tool.ruff.lint.isort]
150-
known-first-party = ["musher"]
151-
combine-as-imports = true
152-
153-
[tool.ruff.format]
154-
quote-style = "double"
155-
indent-style = "space"
156-
skip-magic-trailing-comma = false
157-
line-ending = "auto"
1+
[project]
2+
name = "musher-sdk"
3+
version = "0.3.2" # x-release-please-version
4+
description = "Python SDK for the Musher bundle distribution platform"
5+
readme = "README.md"
6+
license = "Apache-2.0"
7+
requires-python = ">=3.13"
8+
dependencies = [
9+
"httpx>=0.27",
10+
"keyring>=25.0",
11+
"platformdirs>=4.0",
12+
"pydantic>=2.12",
13+
]
14+
15+
[project.optional-dependencies]
16+
examples = [
17+
"openai-agents>=0.13",
18+
"pydantic-ai>=1.0",
19+
"claude-agent-sdk>=0.1",
20+
]
21+
22+
[dependency-groups]
23+
dev = [
24+
"ruff>=0.15.2",
25+
"basedpyright>=1.38.1",
26+
"nodejs-wheel>=22,<25",
27+
"pytest>=8.3.0,<10.0.0",
28+
"pytest-asyncio>=1.0.0",
29+
"pytest-cov>=4.0.0",
30+
"respx>=0.20.0",
31+
"pytest-xdist>=3.0",
32+
]
33+
34+
[build-system]
35+
requires = ["hatchling"]
36+
build-backend = "hatchling.build"
37+
38+
[tool.hatch.build.targets.wheel]
39+
packages = ["src/musher"]
40+
41+
[tool.pytest.ini_options]
42+
testpaths = ["tests"]
43+
asyncio_mode = "auto"
44+
addopts = [
45+
"--strict-markers",
46+
"--strict-config",
47+
"-n=auto",
48+
"--cov=musher",
49+
"--cov-report=term-missing",
50+
"--cov-fail-under=90",
51+
]
52+
53+
[tool.basedpyright]
54+
include = ["src"]
55+
exclude = [
56+
"**/node_modules",
57+
"**/__pycache__",
58+
"tests",
59+
]
60+
pythonVersion = "3.13"
61+
typeCheckingMode = "all"
62+
63+
[tool.ruff]
64+
required-version = ">=0.14.14"
65+
line-length = 100
66+
target-version = "py313"
67+
preview = true
68+
exclude = [
69+
".git",
70+
".venv",
71+
"__pycache__",
72+
]
73+
74+
[tool.ruff.lint]
75+
select = [
76+
"E", "W", # pycodestyle
77+
"F", # pyflakes
78+
"I", # isort
79+
"N", # pep8-naming
80+
"UP", # pyupgrade
81+
"B", # flake8-bugbear
82+
"C4", # flake8-comprehensions
83+
"A", # flake8-builtins
84+
"DTZ", # flake8-datetimez
85+
"ASYNC", # flake8-async
86+
"RUF", # ruff-specific
87+
"T20", # flake8-print
88+
"PGH", # pygrep-hooks
89+
"PT", # flake8-pytest-style
90+
"PERF", # perflint
91+
"RET", # flake8-return
92+
"G", # flake8-logging-format
93+
"BLE", # flake8-blind-except
94+
"SIM", # flake8-simplify
95+
"TC", # flake8-type-checking
96+
"ARG", # flake8-unused-arguments
97+
"PTH", # flake8-use-pathlib
98+
"PL", # pylint
99+
"ERA001", # eradicate (dead code)
100+
"S", # flake8-bandit (security)
101+
"FIX", # fixme comments
102+
"ANN", # flake8-annotations
103+
"D", # pydocstyle
104+
"ISC", # flake8-implicit-str-concat
105+
"ICN", # flake8-import-conventions
106+
"PIE", # flake8-pie
107+
"RSE", # flake8-raise
108+
"FURB", # refurb
109+
"LOG", # flake8-logging
110+
"FLY", # flynt (f-string conversion)
111+
"TID", # flake8-tidy-imports
112+
"COM", # flake8-commas
113+
"Q", # flake8-quotes
114+
"SLOT", # flake8-slots
115+
"FA", # flake8-future-annotations
116+
"YTT", # flake8-2020 (sys.version checks)
117+
]
118+
ignore = [
119+
"E501", # line too long (handled by formatter)
120+
"A003", # builtin shadowing in class attributes
121+
"D100", # missing docstring in public module
122+
"D104", # missing docstring in public package
123+
"COM812", # missing trailing comma (conflicts with formatter)
124+
"ISC001", # implicit string concat on single line (conflicts with formatter)
125+
]
126+
fixable = ["ALL"]
127+
128+
[tool.ruff.lint.per-file-ignores]
129+
"tests/**/*" = [
130+
"S101", "S105", "S106", "S108",
131+
"ARG001", "ARG002",
132+
"PLR2004",
133+
"PLR6301", # test methods don't use self
134+
"PLR0904", # too many public methods in test classes
135+
"PLC2701", # tests import private modules
136+
"RUF069", # float equality ok in tests with known values
137+
"ANN",
138+
"D",
139+
]
140+
"__init__.py" = ["F401", "RUF067"]
141+
"examples/**/*" = ["T201", "S106", "S603", "S604", "S605", "S607", "ERA001", "ANN", "D"]
142+
143+
[tool.ruff.lint.pylint]
144+
max-args = 8
145+
146+
[tool.ruff.lint.pydocstyle]
147+
convention = "google"
148+
149+
[tool.ruff.lint.isort]
150+
known-first-party = ["musher"]
151+
combine-as-imports = true
152+
153+
[tool.ruff.format]
154+
quote-style = "double"
155+
indent-style = "space"
156+
skip-magic-trailing-comma = false
157+
line-ending = "auto"

0 commit comments

Comments
 (0)