[project] name = "nonebot-plugin-wordcloud" version = "0.9.0" description = "适用于 NoneBot2 的词云插件" authors = [{ name = "uy_sun", email = "hmy0119@gmail.com" }] readme = "README.md" license = { file = "LICENSE" } requires-python = ">= 3.9" dependencies = [ "nonebot2[fastapi]>=2.2.0", "nonebot-plugin-apscheduler>=0.4.0", "nonebot-plugin-localstore>=0.6.0", "nonebot-plugin-orm>=0.7.0", "nonebot-plugin-alconna>=0.49.0", "nonebot-plugin-uninfo>=0.6.2", "nonebot-plugin-cesaa>=0.5.0,<0.6.0", "wordcloud>=1.8.1", "jieba>=0.42.1", "tzdata", "emoji>=1.6.3", ] [project.urls] Homepage = "https://github.com/he0119/nonebot-plugin-wordcloud" Repository = "https://github.com/he0119/nonebot-plugin-wordcloud.git" Issues = "https://github.com/he0119/nonebot-plugin-wordcloud/issues" Changelog = "https://github.com/he0119/nonebot-plugin-wordcloud/blob/main/CHANGELOG.md" [project.optional-dependencies] datastore = ["nonebot-plugin-datastore>=1.2.0"] [build-system] requires = ["hatchling"] build-backend = "hatchling.build" [tool.hatch.metadata] allow-direct-references = true [tool.hatch.build.targets.wheel] packages = ["nonebot_plugin_wordcloud"] [tool.hatch.build.targets.sdist] only-include = ["nonebot_plugin_wordcloud"] [tool.uv] dev-dependencies = [ "nb-cli>=1.4.1", "nonebug>=0.4.3", "nonebug-saa>=0.5.0", "nonebot-adapter-onebot>=2.4.4", "nonebot-plugin-orm[default]>=0.7.4", "nonebot-plugin-datastore>=1.3.0", "asyncpg>=0.29.0", "aiomysql>=0.2.0", "pytest-cov>=5.0.0", "pytest-xdist>=3.6.1", "pytest-mock>=3.14.0", "pytest-asyncio>=0.23.7", "respx>=0.21.1", "httpx>=0.27.0,<0.28.0", "gevent>=24.2.1", "cryptography>=42.0.8", "bump-my-version>=0.25.4", "poethepoet>=0.31.1", ] [tool.uv.pip] universal = true [tool.poe.tasks] test = "pytest --cov=nonebot_plugin_wordcloud --cov-report xml --junitxml=./junit.xml -n auto" "test:single" = "pytest --cov=nonebot_plugin_wordcloud --cov-report xml --junitxml=./junit.xml" # async sqlalchemy 需要使用 gevent 才能获得正确覆盖率 # https://github.com/nedbat/coveragepy/issues/1082 "test:gevent" = "coverage run --concurrency=thread,gevent -m pytest --cov=nonebot_plugin_wordcloud --cov-report xml --junitxml=./junit.xml -n auto" # Python 3.12 下需要启用 sysmon 模式,否则测试速度非常慢 # https://github.com/nedbat/coveragepy/issues/1665 "test:sysmon".ref = "test" "test:sysmon".env = { "COVERAGE_CORE" = "sysmon" } bump = "bump-my-version bump" show-bump = "bump-my-version show-bump" [tool.pyright] pythonVersion = "3.9" pythonPlatform = "All" typeCheckingMode = "standard" defineConstant = { PYDANTIC_V2 = true } [tool.ruff] line-length = 88 target-version = "py39" [tool.ruff.lint] select = [ "W", # pycodestyle warnings "E", # pycodestyle errors "F", # pyflakes "UP", # pyupgrade "C4", # flake8-comprehensions "T10", # flake8-debugger "T20", # flake8-print "PYI", # flake8-pyi "PT", # flake8-pytest-style "Q", # flake8-quotes "TC", # flake8-type-checking "RUF", # Ruff-specific rules "I", # isort ] ignore = [ "E402", # module-import-not-at-top-of-file "RUF001", # ambiguous-unicode-character-string "RUF002", # ambiguous-unicode-character-docstring "RUF003", # ambiguous-unicode-character-comment ] [tool.nonebot] plugins = ["nonebot_plugin_wordcloud"] adapters = [ { name = "OneBot V12", module_name = "nonebot.adapters.onebot.v12", project_link = "nonebot-adapter-onebot", desc = "OneBot V12 协议" }, { name = "OneBot V11", module_name = "nonebot.adapters.onebot.v11", project_link = "nonebot-adapter-onebot", desc = "OneBot V11 协议" }, ] [tool.coverage.report] exclude_lines = [ "pragma: no cover", "raise NotImplementedError", "if __name__ == .__main__.:", "if TYPE_CHECKING:", "@overload", "except ImportError:", ] omit = ["*/compat.py", "*/migrations/*"] [tool.pytest.ini_options] addopts = ["--import-mode=importlib"] asyncio_mode = "auto" asyncio_default_fixture_loop_scope = "session" [tool.bumpversion] current_version = "0.9.0" commit = true message = "chore(release): {new_version}" [[tool.bumpversion.files]] filename = "pyproject.toml" search = "version = \"{current_version}\"" replace = "version = \"{new_version}\"" [[tool.bumpversion.files]] filename = "CHANGELOG.md" search = "## [Unreleased]" replace = "## [Unreleased]\n\n## [{new_version}] - {now:%Y-%m-%d}" [[tool.bumpversion.files]] filename = "CHANGELOG.md" regex = true search = "\\[Unreleased\\]: (https://.+?)v{current_version}\\.\\.\\.HEAD" replace = "[Unreleased]: \\1v{new_version}...HEAD\n[{new_version}]: \\1v{current_version}...v{new_version}"