{"id":3328,"date":"2026-09-02T08:33:00","date_gmt":"2026-09-01T23:33:00","guid":{"rendered":"https:\/\/qol-kk.com\/wp2\/?p=3328"},"modified":"2026-09-07T13:45:50","modified_gmt":"2026-09-07T04:45:50","slug":"20260901-plan016","status":"publish","type":"post","link":"https:\/\/qol-kk.com\/wp2\/blog\/2026\/09\/02\/20260901-plan016\/","title":{"rendered":"pyproject.toml \u306e\u66f8\u304d\u65b9\u5b8c\u5168\u30ac\u30a4\u30c9"},"content":{"rendered":"<h2>\u6982\u8981<\/h2>\n<p>Python \u306e\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u8a2d\u5b9a\u306f\u3001\u304b\u3064\u3066 <code>setup.py<\/code> \/ <code>setup.cfg<\/code> \/ <code>requirements.txt<\/code> \/ <code>MANIFEST.in<\/code> \/ \u5404\u30c4\u30fc\u30eb\u3054\u3068\u306e <code>.ini<\/code> \u30d5\u30a1\u30a4\u30eb\u3078\u3068\u30d0\u30e9\u30d0\u30e9\u306b\u6563\u3063\u3066\u3044\u307e\u3057\u305f\u3002\u3053\u308c\u3092 <strong>1\u3064\u306e\u30d5\u30a1\u30a4\u30eb\u306b\u96c6\u7d04\u3059\u308b\u6a19\u6e96\u30d5\u30a9\u30fc\u30de\u30c3\u30c8<\/strong>\u304c <code>pyproject.toml<\/code> \u3067\u3059\u3002<\/p>\n<p>\u672c\u8a18\u4e8b\u306f\u5165\u9580\u8005\u5411\u3051\u306b\u3001<code>pyproject.toml<\/code> \u306e\u5f79\u5272\u30fb\u5404\u30bb\u30af\u30b7\u30e7\u30f3\u306e\u610f\u5473\u3068\u66f8\u304d\u65b9\u3092\u3001\u30b3\u30d4\u30da\u3067\u52d5\u304f\u30b5\u30f3\u30d7\u30eb\u3068\u3068\u3082\u306b\u89e3\u8aac\u3057\u307e\u3059\u3002<\/p>\n<h2>pyproject.toml \u3068\u306f<\/h2>\n<p><code>pyproject.toml<\/code> \u306f <a href=\"https:\/\/peps.python.org\/pep-0518\/\">PEP 518<\/a> \u3067\u5c0e\u5165\u3055\u308c\u3001<a href=\"https:\/\/peps.python.org\/pep-0621\/\">PEP 621<\/a> \u3067\u30e1\u30bf\u30c7\u30fc\u30bf\u306e\u66f8\u304d\u65b9\u304c\u6a19\u6e96\u5316\u3055\u308c\u305f\u3001TOML \u5f62\u5f0f\u306e\u8a2d\u5b9a\u30d5\u30a1\u30a4\u30eb\u3067\u3059\u3002\u5f79\u5272\u306f\u5927\u304d\u304f3\u3064\u3042\u308a\u307e\u3059\u3002<\/p>\n<ol>\n<li><strong>\u30d3\u30eb\u30c9\u306e\u5165\u53e3\u3092\u5ba3\u8a00\u3059\u308b<\/strong>\uff08<code>[build-system]<\/code>\uff09<\/li>\n<li><strong>\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u306e\u30e1\u30bf\u30c7\u30fc\u30bf\u3092\u5ba3\u8a00\u3059\u308b<\/strong>\uff08<code>[project]<\/code>\uff09<\/li>\n<li><strong>\u5404\u7a2e\u30c4\u30fc\u30eb\u306e\u8a2d\u5b9a\u3092\u96c6\u7d04\u3059\u308b<\/strong>\uff08<code>[tool.*]<\/code>\uff09<\/li>\n<\/ol>\n<p>\u30d1\u30c3\u30b1\u30fc\u30b8\u914d\u5e03\u3092\u3057\u306a\u3044\u4eba\u3067\u3082\u3001<code>ruff<\/code> \u3084 <code>pytest<\/code>\u3001<code>mypy<\/code> \u306e\u8a2d\u5b9a\u7f6e\u304d\u5834\u3068\u3057\u3066\u4f7f\u3046\u4fa1\u5024\u304c\u3042\u308a\u307e\u3059\u3002<\/p>\n<h2>\u6700\u5c0f\u69cb\u6210\u306e\u30b5\u30f3\u30d7\u30eb<\/h2>\n<p>\u3053\u308c\u3060\u3051\u3042\u308c\u3070 <code>pip install .<\/code> \u304c\u901a\u308a\u307e\u3059\u3002<\/p>\n<pre class=\"lang:default decode:true\">[build-system]\r\nrequires = [\"hatchling\"]\r\nbuild-backend = \"hatchling.build\"\r\n\r\n[project]\r\nname = \"my-package\"\r\nversion = \"0.1.0\"\r\ndescription = \"A small example package\"\r\nrequires-python = \"&gt;=3.9\"<\/pre>\n<p><code>[build-system]<\/code> \u3067\u300c\u30d3\u30eb\u30c9\u306b\u4f55\u304c\u5fc5\u8981\u304b\u300d\u3092\u3001<code>[project]<\/code> \u3067\u300c\u3053\u306e\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u306f\u4f55\u8005\u304b\u300d\u3092\u5ba3\u8a00\u3057\u307e\u3059\u3002\u3053\u306e2\u3064\u304c\u4e2d\u6838\u3067\u3059\u3002<\/p>\n<h2>[build-system] \u30bb\u30af\u30b7\u30e7\u30f3<\/h2>\n<pre class=\"lang:default decode:true\">[build-system]\r\nrequires = [\"hatchling\"]\r\nbuild-backend = \"hatchling.build\"<\/pre>\n<ul>\n<li><code>requires<\/code> \u2014 \u30d3\u30eb\u30c9\u306b\u5fc5\u8981\u306a\u30d1\u30c3\u30b1\u30fc\u30b8\u3002\u30d3\u30eb\u30c9\u5c02\u7528\u306e\u9694\u96e2\u74b0\u5883\u306b\u81ea\u52d5\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3055\u308c\u307e\u3059\u3002<\/li>\n<li><code>build-backend<\/code> \u2014 \u5b9f\u969b\u306b\u30d3\u30eb\u30c9\u3092\u884c\u3046\u30d0\u30c3\u30af\u30a8\u30f3\u30c9\u306e\u30e2\u30b8\u30e5\u30fc\u30eb\u540d\u3002<\/li>\n<\/ul>\n<p>\u4ee3\u8868\u7684\u306a\u30d0\u30c3\u30af\u30a8\u30f3\u30c9\u306e\u9078\u629e\u80a2\u306f\u6b21\u306e\u901a\u308a\u3067\u3059\u3002<\/p>\n<table>\n<thead>\n<tr>\n<th>\u30d0\u30c3\u30af\u30a8\u30f3\u30c9<\/th>\n<th>requires<\/th>\n<th>build-backend<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>setuptools<\/td>\n<td><code>[\"setuptools&gt;=61.0\"]<\/code><\/td>\n<td><code>\"setuptools.build_meta\"<\/code><\/td>\n<\/tr>\n<tr>\n<td>Hatchling<\/td>\n<td><code>[\"hatchling\"]<\/code><\/td>\n<td><code>\"hatchling.build\"<\/code><\/td>\n<\/tr>\n<tr>\n<td>Flit<\/td>\n<td><code>[\"flit_core&gt;=3.4\"]<\/code><\/td>\n<td><code>\"flit_core.buildapi\"<\/code><\/td>\n<\/tr>\n<tr>\n<td>PDM<\/td>\n<td><code>[\"pdm-backend\"]<\/code><\/td>\n<td><code>\"pdm.backend\"<\/code><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>\u30b7\u30f3\u30d7\u30eb\u3055\u91cd\u8996\u306a\u3089 Hatchling \u304b Flit\u3001\u60c5\u5831\u91cf\u91cd\u8996\u306a\u3089 setuptools \u304c\u7121\u96e3\u3067\u3059\u3002<\/p>\n<h2>[project] \u30bb\u30af\u30b7\u30e7\u30f3<\/h2>\n<p>PEP 621 \u304c\u5b9a\u3081\u305f\u3001\u30c4\u30fc\u30eb\u975e\u4f9d\u5b58\u306e\u6a19\u6e96\u30e1\u30bf\u30c7\u30fc\u30bf\u3067\u3059\u3002<\/p>\n<pre class=\"lang:default decode:true\">[project]\r\nname = \"my-package\"\r\nversion = \"0.2.0\"\r\ndescription = \"A short one-line description\"\r\nreadme = \"README.md\"\r\nrequires-python = \"&gt;=3.9\"\r\nlicense = \"MIT\"\r\nauthors = [\r\n    { name = \"Your Name\", email = \"you@example.com\" },\r\n]\r\nclassifiers = [\r\n    \"Programming Language :: Python :: 3\",\r\n    \"License :: OSI Approved :: MIT License\",\r\n    \"Operating System :: OS Independent\",\r\n]\r\n\r\ndependencies = [\r\n    \"requests&gt;=2.28\",\r\n    \"click&gt;=8.0\",\r\n]\r\n\r\n[project.urls]\r\nHomepage = \"https:\/\/example.com\"\r\nRepository = \"https:\/\/example.com\/repo\"\r\n\r\n[project.optional-dependencies]\r\ndev = [\r\n    \"pytest&gt;=7.0\",\r\n    \"ruff&gt;=0.1\",\r\n    \"mypy&gt;=1.0\",\r\n]\r\n\r\n[project.scripts]\r\nmy-cli = \"my_package.cli:main\"<\/pre>\n<p>\u4e3b\u8981\u30d5\u30a3\u30fc\u30eb\u30c9\u3092\u6574\u7406\u3057\u307e\u3059\u3002<\/p>\n<ul>\n<li><code>name<\/code> \/ <code>version<\/code> \u2014 \u540d\u524d\u3068\u7248\u6570\u3002<\/li>\n<li><code>description<\/code> \u2014 1\u884c\u306e\u8aac\u660e\u3002<\/li>\n<li><code>readme<\/code> \u2014 README \u30d5\u30a1\u30a4\u30eb\u306e\u6307\u5b9a\u3002<\/li>\n<li><code>requires-python<\/code> \u2014 \u5bfe\u5fdc Python \u30d0\u30fc\u30b8\u30e7\u30f3\u3002<\/li>\n<li><code>dependencies<\/code> \u2014 \u5b9f\u884c\u6642\u306b\u5fc5\u8981\u306a\u4f9d\u5b58\u3002<strong>\u5f93\u6765\u306e <code>requirements.txt<\/code> \u306e\u5f79\u5272<\/strong>\u3092\u62c5\u3044\u307e\u3059\u3002<\/li>\n<li><code>optional-dependencies<\/code> \u2014 <code>pip install \".[dev]\"<\/code> \u306e\u3088\u3046\u306b\u8ffd\u52a0\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3067\u304d\u308b\u4f9d\u5b58\u3002<\/li>\n<li><code>project.scripts<\/code> \u2014 \u30b3\u30de\u30f3\u30c9\u30e9\u30a4\u30f3\u306e\u30a8\u30f3\u30c8\u30ea\u30dd\u30a4\u30f3\u30c8\u3002<\/li>\n<li><code>project.urls<\/code> \u2014 \u30c9\u30ad\u30e5\u30e1\u30f3\u30c8\u30fb\u30ea\u30dd\u30b8\u30c8\u30ea\u3078\u306e\u30ea\u30f3\u30af\u3002<\/li>\n<\/ul>\n<h3>\u30d0\u30fc\u30b8\u30e7\u30f3\u3092\u52d5\u7684\u306b\u6271\u3046<\/h3>\n<pre class=\"lang:default decode:true\">[project]\r\nname = \"my-package\"\r\ndynamic = [\"version\"]\r\n\r\n[tool.hatch.version]\r\npath = \"src\/my_package\/__init__.py\"<\/pre>\n<p><code>__init__.py<\/code> \u306e <code>__version__<\/code> \u3092\u5358\u4e00\u306e\u60c5\u5831\u6e90\u306b\u3067\u304d\u307e\u3059\u3002<\/p>\n<h2>[tool.*] \u30bb\u30af\u30b7\u30e7\u30f3 \u2014 \u30c4\u30fc\u30eb\u8a2d\u5b9a\u306e\u96c6\u7d04<\/h2>\n<p><code>[tool.&lt;\u30c4\u30fc\u30eb\u540d&gt;]<\/code> \u306f\u5404\u30c4\u30fc\u30eb\u304c\u81ea\u7531\u306b\u4f7f\u3048\u308b\u540d\u524d\u7a7a\u9593\u3067\u3059\u3002\u8a2d\u5b9a\u3092\u96c6\u3081\u308b\u3068\u3001\u30ea\u30dd\u30b8\u30c8\u30ea\u76f4\u4e0b\u306e\u8a2d\u5b9a\u30d5\u30a1\u30a4\u30eb\u304c\u6fc0\u6e1b\u3057\u307e\u3059\u3002<\/p>\n<pre class=\"lang:default decode:true\">[tool.ruff]\r\nline-length = 100\r\ntarget-version = \"py39\"\r\n\r\n[tool.ruff.lint]\r\nselect = [\"E\", \"F\", \"I\"]\r\nignore = [\"E501\"]\r\n\r\n[tool.pytest.ini_options]\r\ntestpaths = [\"tests\"]\r\naddopts = \"-ra -q\"\r\n\r\n[tool.mypy]\r\npython_version = \"3.9\"\r\nstrict = true\r\nignore_missing_imports = true\r\n\r\n[tool.coverage.run]\r\nsource = [\"src\"]\r\nbranch = true<\/pre>\n<p>\u30ea\u30f3\u30bf\u30fb\u578b\u30c1\u30a7\u30c3\u30ab\u30fb\u30c6\u30b9\u30c8\u306e\u8a2d\u5b9a\u30921\u30d5\u30a1\u30a4\u30eb\u306b\u675f\u306d\u3089\u308c\u308b\u306e\u304c\u3001<code>[tool.*]<\/code> \u306e\u6069\u6075\u3067\u3059\u3002<\/p>\n<h2>src \u30ec\u30a4\u30a2\u30a6\u30c8\u306e\u63a8\u5968<\/h2>\n<p>\u914d\u5e03\u3059\u308b\u306a\u3089 <code>src\/<\/code> \u914d\u4e0b\u306b\u30b3\u30fc\u30c9\u3092\u7f6e\u304f <strong>src \u30ec\u30a4\u30a2\u30a6\u30c8<\/strong>\u304c\u63a8\u5968\u3067\u3059\u3002\u30c6\u30b9\u30c8\u304c\u8aa4\u3063\u3066\u76f4\u4e0b\u30b3\u30fc\u30c9\u3092 import \u3059\u308b\u4e8b\u6545\u3092\u9632\u3052\u307e\u3059\u3002<\/p>\n<pre class=\"lang:default decode:true\">my-package\/\r\n\u251c\u2500\u2500 pyproject.toml\r\n\u251c\u2500\u2500 README.md\r\n\u251c\u2500\u2500 src\/\r\n\u2502   \u2514\u2500\u2500 my_package\/\r\n\u2502       \u251c\u2500\u2500 __init__.py\r\n\u2502       \u2514\u2500\u2500 cli.py\r\n\u2514\u2500\u2500 tests\/\r\n    \u2514\u2500\u2500 test_cli.py<\/pre>\n<p>setuptools \u3067\u81ea\u52d5\u691c\u51fa\u304c\u52b9\u304b\u306a\u3044\u5834\u5408\u306f\u6b21\u306e\u3088\u3046\u306b\u660e\u793a\u3057\u307e\u3059\u3002<\/p>\n<pre class=\"lang:default decode:true\">[tool.setuptools.packages.find]\r\nwhere = [\"src\"]<\/pre>\n<h2>\u78ba\u8a8d\u65b9\u6cd5<\/h2>\n<pre class=\"lang:default decode:true\"># \u958b\u767a\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\uff08editable\uff09\r\npip install -e .\r\n\r\n# \u958b\u767a\u7528\u306e\u8ffd\u52a0\u4f9d\u5b58\u3082\u5165\u308c\u308b\r\npip install -e \".[dev]\"\r\n\r\n# \u30d3\u30eb\u30c9\u3057\u3066\u307f\u308b\r\npip install build\r\npython -m build\r\n\r\n# \u30e1\u30bf\u30c7\u30fc\u30bf\u306e\u691c\u8a3c\r\npip install twine\r\ntwine check dist\/*<\/pre>\n<p><code>dist\/<\/code> \u306b <code>.whl<\/code> \u3068 <code>.tar.gz<\/code> \u304c\u51fa\u529b\u3055\u308c\u308c\u3070\u3001\u8a18\u8ff0\u306b\u5927\u304d\u306a\u8aa4\u308a\u306f\u3042\u308a\u307e\u305b\u3093\u3002<\/p>\n<h2>\u6ce8\u610f\u70b9<\/h2>\n<ul>\n<li>TOML \u306e\u6587\u5b57\u5217\u306f\u30c0\u30d6\u30eb\u30af\u30a9\u30fc\u30c8\u304c\u57fa\u672c\u3002\u914d\u5217\u306e\u672b\u5c3e\u30ab\u30f3\u30de\u306f\u8a31\u5bb9\u3055\u308c\u307e\u3059\u3002<\/li>\n<li><code>dependencies<\/code> \u3092\u56fa\u5b9a\u3057\u3059\u304e\u308b\u3068\u885d\u7a81\u3057\u3084\u3059\u304f\u306a\u308a\u307e\u3059\u3002\u30e9\u30a4\u30d6\u30e9\u30ea\u306f\u4e0b\u9650\u4e2d\u5fc3\uff08<code>&gt;=<\/code>\uff09\u3001\u30a2\u30d7\u30ea\u306f lock \u30d5\u30a1\u30a4\u30eb\u3067\u56fa\u5b9a\u3001\u304c\u5b9a\u77f3\u3067\u3059\u3002<\/li>\n<li><code>requirements.txt<\/code> \u306f\u4eca\u3082\u6709\u52b9\u3002<code>pyproject.toml<\/code> \u306e <code>dependencies<\/code> \u306f\u300c\u62bd\u8c61\u7684\u306a\u4f9d\u5b58\u5ba3\u8a00\u300d\u3001lock \u30d5\u30a1\u30a4\u30eb\u306f\u300c\u518d\u73fe\u53ef\u80fd\u306a\u56fa\u5b9a\u300d\u3068\u5f79\u5272\u304c\u5206\u304b\u308c\u307e\u3059\u3002<\/li>\n<li>\u65b0\u898f\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u306f <code>setup.py<\/code> \u3088\u308a <code>pyproject.toml<\/code> \u3092\u7b2c\u4e00\u9078\u629e\u306b\u3059\u308b\u306e\u304c\u73fe\u5728\u306e\u6a19\u6e96\u3067\u3059\u3002<\/li>\n<\/ul>\n<h2>\u307e\u3068\u3081<\/h2>\n<ul>\n<li><code>pyproject.toml<\/code> \u306f Python \u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u8a2d\u5b9a\u306e<strong>\u6a19\u6e96\u96c6\u7d04\u30d5\u30a1\u30a4\u30eb<\/strong>\u3002<\/li>\n<li>\u4e2d\u6838\u306f <code>[build-system]<\/code> \u3068 <code>[project]<\/code> \u306e2\u3064\u3002<\/li>\n<li><code>[tool.*]<\/code> \u306b Ruff \/ pytest \/ mypy \u306e\u8a2d\u5b9a\u3092\u96c6\u7d04\u3059\u308b\u3068\u30ea\u30dd\u30b8\u30c8\u30ea\u304c\u7247\u4ed8\u304f\u3002<\/li>\n<li>\u914d\u5e03\u3059\u308b\u306a\u3089 src \u30ec\u30a4\u30a2\u30a6\u30c8\u3001\u78ba\u8a8d\u306f <code>pip install -e .<\/code> \u3068 <code>python -m build<\/code>\u3002<\/li>\n<\/ul>\n<p>\u307e\u305a\u306f\u6700\u5c0f\u69cb\u6210\u3092\u30b3\u30d4\u30da\u3057\u3066 <code>pip install -e .<\/code> \u3092\u901a\u3059\u3068\u3053\u308d\u304b\u3089\u59cb\u3081\u3066\u307f\u3066\u304f\u3060\u3055\u3044\u3002\u8a2d\u5b9a\u304c1\u30d5\u30a1\u30a4\u30eb\u306b\u96c6\u307e\u308b\u5fc3\u5730\u3088\u3055\u304c\u3001\u3059\u3050\u306b\u5b9f\u611f\u3067\u304d\u308b\u306f\u305a\u3067\u3059\u3002<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Python \u306e\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u8a2d\u5b9a\u306f\u3001\u304b\u3064\u3066 setup.py \/ setup.cfg \/ requirements.txt \/ MANIFEST.in \/ \u5404\u30c4\u30fc\u30eb\u3054\u3068\u306e .ini \u30d5\u30a1\u30a4\u30eb\u3078\u3068\u30d0\u30e9\u30d0\u30e9\u306b\u6563\u3063\u3066\u3044\u307e\u3057\u305f\u3002\u3053\u308c\u3092 1\u3064\u306e\u30d5\u30a1\u30a4\u2026<\/p>\n","protected":false},"author":1,"featured_media":3363,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"sns_share_botton_hide":"","vkExUnit_sns_title":"","_vk_print_noindex":"","sitemap_hide":"","_veu_custom_css":"","veu_display_promotion_alert":"common","vkexunit_cta_each_option":"","_jetpack_feature_clip_id":0,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2},"jetpack_post_was_ever_published":false},"categories":[38],"tags":[1195,147,1188],"class_list":["post-3328","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-python-memorandum","tag-pytest","tag-python","tag-1188"],"veu_head_title_object":{"title":"","add_site_title":""},"jetpack_publicize_connections":[],"jetpack-related-posts":[],"jetpack_sharing_enabled":true,"jetpack_featured_media_url":"https:\/\/qol-kk.com\/wp2\/wp-content\/uploads\/2026\/09\/post-3328-thumbnail.jpg","_links":{"self":[{"href":"https:\/\/qol-kk.com\/wp2\/wp-json\/wp\/v2\/posts\/3328","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/qol-kk.com\/wp2\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/qol-kk.com\/wp2\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/qol-kk.com\/wp2\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/qol-kk.com\/wp2\/wp-json\/wp\/v2\/comments?post=3328"}],"version-history":[{"count":1,"href":"https:\/\/qol-kk.com\/wp2\/wp-json\/wp\/v2\/posts\/3328\/revisions"}],"predecessor-version":[{"id":3334,"href":"https:\/\/qol-kk.com\/wp2\/wp-json\/wp\/v2\/posts\/3328\/revisions\/3334"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/qol-kk.com\/wp2\/wp-json\/wp\/v2\/media\/3363"}],"wp:attachment":[{"href":"https:\/\/qol-kk.com\/wp2\/wp-json\/wp\/v2\/media?parent=3328"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/qol-kk.com\/wp2\/wp-json\/wp\/v2\/categories?post=3328"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/qol-kk.com\/wp2\/wp-json\/wp\/v2\/tags?post=3328"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}