2026-04-10T05:27:11,172 Created temporary directory: /tmp/pip-ephem-wheel-cache-voy4tay7 2026-04-10T05:27:11,174 Created temporary directory: /tmp/pip-build-tracker-bmu_yh79 2026-04-10T05:27:11,175 Initialized build tracking at /tmp/pip-build-tracker-bmu_yh79 2026-04-10T05:27:11,175 Created build tracker: /tmp/pip-build-tracker-bmu_yh79 2026-04-10T05:27:11,176 Entered build tracker: /tmp/pip-build-tracker-bmu_yh79 2026-04-10T05:27:11,177 Created temporary directory: /tmp/pip-wheel-a55vxts2 2026-04-10T05:27:11,180 DEPRECATION: --no-binary currently disables reading from the cache of locally built wheels. In the future --no-binary will not influence the wheel cache. pip 23.1 will enforce this behaviour change. A possible replacement is to use the --no-cache-dir option. You can use the flag --use-feature=no-binary-enable-wheel-cache to test the upcoming behaviour. Discussion can be found at https://github.com/pypa/pip/issues/11453 2026-04-10T05:27:11,182 Created temporary directory: /tmp/pip-ephem-wheel-cache-1ow2rs_x 2026-04-10T05:27:11,208 Looking in indexes: https://pypi.org/simple, https://www.piwheels.org/simple 2026-04-10T05:27:11,211 2 location(s) to search for versions of canvas-mcp: 2026-04-10T05:27:11,211 * https://pypi.org/simple/canvas-mcp/ 2026-04-10T05:27:11,211 * https://www.piwheels.org/simple/canvas-mcp/ 2026-04-10T05:27:11,212 Fetching project page and analyzing links: https://pypi.org/simple/canvas-mcp/ 2026-04-10T05:27:11,213 Getting page https://pypi.org/simple/canvas-mcp/ 2026-04-10T05:27:11,214 Found index url https://pypi.org/simple 2026-04-10T05:27:11,445 Fetched page https://pypi.org/simple/canvas-mcp/ as application/vnd.pypi.simple.v1+json 2026-04-10T05:27:11,451 Skipping link: No binaries permitted for canvas-mcp: https://files.pythonhosted.org/packages/8c/5d/d8a192a93f28196428e9eb6b3494e27c2a05cc8ae2e5098919dd3426e3d7/canvas_mcp-1.0.0-py3-none-any.whl (from https://pypi.org/simple/canvas-mcp/) (requires-python:>=3.10) 2026-04-10T05:27:11,452 Found link https://files.pythonhosted.org/packages/95/83/4b093b9b3ddc8333c5a270c3e36521883b9e7e279ee26c3d40caa0dc9ad9/canvas_mcp-1.0.0.tar.gz (from https://pypi.org/simple/canvas-mcp/) (requires-python:>=3.10), version: 1.0.0 2026-04-10T05:27:11,452 Skipping link: No binaries permitted for canvas-mcp: https://files.pythonhosted.org/packages/d9/49/e85b1af8380fc41bf5e8dc4e522e3707812d72b9249ea53b27f97e2ecc67/canvas_mcp-1.0.1-py3-none-any.whl (from https://pypi.org/simple/canvas-mcp/) (requires-python:>=3.10) 2026-04-10T05:27:11,453 Found link https://files.pythonhosted.org/packages/4c/d8/4b2a81e1caeacca26a2dc9f1dfb5079f8447989a229c7dc485fe3182253b/canvas_mcp-1.0.1.tar.gz (from https://pypi.org/simple/canvas-mcp/) (requires-python:>=3.10), version: 1.0.1 2026-04-10T05:27:11,454 Skipping link: No binaries permitted for canvas-mcp: https://files.pythonhosted.org/packages/7a/90/2d278b9697dbf85bd8cdcac17caf3541a493c9a5c8ca2f21415317dbc0ee/canvas_mcp-1.0.2-py3-none-any.whl (from https://pypi.org/simple/canvas-mcp/) (requires-python:>=3.10) 2026-04-10T05:27:11,455 Found link https://files.pythonhosted.org/packages/5a/5f/9eae66f31ebfee96db53d31fe0fa5c214d948a51616ef966653e1ca2d744/canvas_mcp-1.0.2.tar.gz (from https://pypi.org/simple/canvas-mcp/) (requires-python:>=3.10), version: 1.0.2 2026-04-10T05:27:11,456 Skipping link: No binaries permitted for canvas-mcp: https://files.pythonhosted.org/packages/e7/85/ec2cf2fe57d705df870b860061a38a04aeb3059b7ce64f9a0f50e21f4a7d/canvas_mcp-1.0.3-py3-none-any.whl (from https://pypi.org/simple/canvas-mcp/) (requires-python:>=3.10) 2026-04-10T05:27:11,457 Found link https://files.pythonhosted.org/packages/88/68/7d54ac1e2c58bbfa1e05aad183929025299a22d9a46ebab7f13fe43988a9/canvas_mcp-1.0.3.tar.gz (from https://pypi.org/simple/canvas-mcp/) (requires-python:>=3.10), version: 1.0.3 2026-04-10T05:27:11,458 Skipping link: No binaries permitted for canvas-mcp: https://files.pythonhosted.org/packages/77/92/9e3ebda8183979dc6afb059caeb38aa035bcba445c4f1db53914dac0940d/canvas_mcp-1.0.4-py3-none-any.whl (from https://pypi.org/simple/canvas-mcp/) (requires-python:>=3.10) 2026-04-10T05:27:11,459 Found link https://files.pythonhosted.org/packages/dc/b5/7b62d7cffdc72537590ab1579af2b0ef74d9517425311e925955b5ccd8ea/canvas_mcp-1.0.4.tar.gz (from https://pypi.org/simple/canvas-mcp/) (requires-python:>=3.10), version: 1.0.4 2026-04-10T05:27:11,460 Skipping link: No binaries permitted for canvas-mcp: https://files.pythonhosted.org/packages/50/9e/4a2ea0c8bc6f4e7f42d6651775cacdea843bf3e847d7a4f417fcbdbb7b87/canvas_mcp-1.0.5-py3-none-any.whl (from https://pypi.org/simple/canvas-mcp/) (requires-python:>=3.10) 2026-04-10T05:27:11,461 Found link https://files.pythonhosted.org/packages/98/a3/6bdb2212a849646da39b1fe33eb3a5fb3d56594f4782c897e4fd3bca0085/canvas_mcp-1.0.5.tar.gz (from https://pypi.org/simple/canvas-mcp/) (requires-python:>=3.10), version: 1.0.5 2026-04-10T05:27:11,461 Skipping link: No binaries permitted for canvas-mcp: https://files.pythonhosted.org/packages/63/9b/a49240668e6fd27948ed308fe3e49f9b4be30b36ede98b366a8d9d08fa16/canvas_mcp-1.0.6-py3-none-any.whl (from https://pypi.org/simple/canvas-mcp/) (requires-python:>=3.10) 2026-04-10T05:27:11,462 Found link https://files.pythonhosted.org/packages/a1/87/13c039b959bd6c4b57db1ba41411afe9d070bbcf0013227d5e782742fc41/canvas_mcp-1.0.6.tar.gz (from https://pypi.org/simple/canvas-mcp/) (requires-python:>=3.10), version: 1.0.6 2026-04-10T05:27:11,463 Skipping link: No binaries permitted for canvas-mcp: https://files.pythonhosted.org/packages/12/ee/a84350730d513e7e02983f963b4f2c6386ed1b13a64e9474c3082179a224/canvas_mcp-1.0.7-py3-none-any.whl (from https://pypi.org/simple/canvas-mcp/) (requires-python:>=3.10) 2026-04-10T05:27:11,464 Found link https://files.pythonhosted.org/packages/32/26/661b771ab02bb1256bf4397b60831cb0c3addbd650a63d75a8bf935bdfde/canvas_mcp-1.0.7.tar.gz (from https://pypi.org/simple/canvas-mcp/) (requires-python:>=3.10), version: 1.0.7 2026-04-10T05:27:11,464 Skipping link: No binaries permitted for canvas-mcp: https://files.pythonhosted.org/packages/59/22/1948e9495e4e03280a7eeca0e1376f70e1b907cd339590392f64640eac1b/canvas_mcp-1.0.8-py3-none-any.whl (from https://pypi.org/simple/canvas-mcp/) (requires-python:>=3.10) 2026-04-10T05:27:11,465 Found link https://files.pythonhosted.org/packages/ec/f6/3cc63cd4ee9e3c83780cc49c04b1584f794bafaa1bd1d76d14c04e9fa62f/canvas_mcp-1.0.8.tar.gz (from https://pypi.org/simple/canvas-mcp/) (requires-python:>=3.10), version: 1.0.8 2026-04-10T05:27:11,466 Skipping link: No binaries permitted for canvas-mcp: https://files.pythonhosted.org/packages/09/eb/b329e78ee6e8f838c219e5f4dff02439173b74baad4651e8fe0b32255cf7/canvas_mcp-1.1.0-py3-none-any.whl (from https://pypi.org/simple/canvas-mcp/) (requires-python:>=3.10) 2026-04-10T05:27:11,467 Found link https://files.pythonhosted.org/packages/2b/58/44d33b33ce3d8bbe88faf01e5004dbf6455a6cde6baf2af3b3dee6d9e8f8/canvas_mcp-1.1.0.tar.gz (from https://pypi.org/simple/canvas-mcp/) (requires-python:>=3.10), version: 1.1.0 2026-04-10T05:27:11,468 Skipping link: No binaries permitted for canvas-mcp: https://files.pythonhosted.org/packages/1a/fa/0cd457aba8abc58cf26f5782d8f3e211f57beda04cbbd4041a67aaf83bb6/canvas_mcp-1.2.0-py3-none-any.whl (from https://pypi.org/simple/canvas-mcp/) (requires-python:>=3.10) 2026-04-10T05:27:11,469 Found link https://files.pythonhosted.org/packages/43/fb/68493da20add23b10a95dbf1278f1c4be7740192e8c9cedbfb8bc24c55a6/canvas_mcp-1.2.0.tar.gz (from https://pypi.org/simple/canvas-mcp/) (requires-python:>=3.10), version: 1.2.0 2026-04-10T05:27:11,470 Fetching project page and analyzing links: https://www.piwheels.org/simple/canvas-mcp/ 2026-04-10T05:27:11,471 Getting page https://www.piwheels.org/simple/canvas-mcp/ 2026-04-10T05:27:11,472 Found index url https://www.piwheels.org/simple 2026-04-10T05:27:11,645 Fetched page https://www.piwheels.org/simple/canvas-mcp/ as text/html 2026-04-10T05:27:11,650 Skipping link: No binaries permitted for canvas-mcp: https://www.piwheels.org/simple/canvas-mcp/canvas_mcp-1.1.0-py3-none-any.whl#sha256=377d51b04859f7975acf6656bbd4b54df51b1df9924af48b576526f46aea4836 (from https://www.piwheels.org/simple/canvas-mcp/) (requires-python:>=3.10) 2026-04-10T05:27:11,650 Skipping link: No binaries permitted for canvas-mcp: https://archive1.piwheels.org/simple/canvas-mcp/canvas_mcp-1.0.8-py3-none-any.whl#sha256=f40e10070f3e11ad128787601244c917442652108d58fca13a4354a544911272 (from https://www.piwheels.org/simple/canvas-mcp/) (requires-python:>=3.10) 2026-04-10T05:27:11,651 Skipping link: No binaries permitted for canvas-mcp: https://archive1.piwheels.org/simple/canvas-mcp/canvas_mcp-1.0.7-py3-none-any.whl#sha256=dabf4f9506d0b59f7879a809b4ca73678da8205c365cbde241e6370a92abb148 (from https://www.piwheels.org/simple/canvas-mcp/) (requires-python:>=3.10) 2026-04-10T05:27:11,652 Skipping link: No binaries permitted for canvas-mcp: https://archive1.piwheels.org/simple/canvas-mcp/canvas_mcp-1.0.6-py3-none-any.whl#sha256=849e6b5df8d4d2030fb3010b78e39d6e1f42c7a6e4c409eb3c2eaa39ef7b70df (from https://www.piwheels.org/simple/canvas-mcp/) (requires-python:>=3.10) 2026-04-10T05:27:11,652 Skipping link: No binaries permitted for canvas-mcp: https://archive1.piwheels.org/simple/canvas-mcp/canvas_mcp-1.0.5-py3-none-any.whl#sha256=aaf1a61d419372df09e8b913e38c664168ccefa4ecedb7ca49c798830688822c (from https://www.piwheels.org/simple/canvas-mcp/) (requires-python:>=3.10) 2026-04-10T05:27:11,653 Skipping link: No binaries permitted for canvas-mcp: https://archive1.piwheels.org/simple/canvas-mcp/canvas_mcp-1.0.4-py3-none-any.whl#sha256=7eb570cce7f1b44e18cfbe2e92324c1f2035509edc507e6f19257e5bad4e9137 (from https://www.piwheels.org/simple/canvas-mcp/) (requires-python:>=3.10) 2026-04-10T05:27:11,653 Skipping link: No binaries permitted for canvas-mcp: https://archive1.piwheels.org/simple/canvas-mcp/canvas_mcp-1.0.3-py3-none-any.whl#sha256=b7b7ceffd7213747f8b2770d9e59919fcea30ea2f04fe2e96edb74bed65c6426 (from https://www.piwheels.org/simple/canvas-mcp/) (requires-python:>=3.10) 2026-04-10T05:27:11,654 Skipping link: No binaries permitted for canvas-mcp: https://archive1.piwheels.org/simple/canvas-mcp/canvas_mcp-1.0.2-py3-none-any.whl#sha256=c795b6cf0f39c55fd828f76a0287b1f1fe878c62298e4fe234f014cb0c2e2926 (from https://www.piwheels.org/simple/canvas-mcp/) (requires-python:>=3.10) 2026-04-10T05:27:11,654 Skipping link: No binaries permitted for canvas-mcp: https://archive1.piwheels.org/simple/canvas-mcp/canvas_mcp-1.0.1-py3-none-any.whl#sha256=7baec6673ffa4671d87473937c3430672f876d1a659cd3080a4e18a227451a58 (from https://www.piwheels.org/simple/canvas-mcp/) (requires-python:>=3.10) 2026-04-10T05:27:11,655 Skipping link: No binaries permitted for canvas-mcp: https://archive1.piwheels.org/simple/canvas-mcp/canvas_mcp-1.0.0-py3-none-any.whl#sha256=1d2e203bf9933ab554bba4468eb94fb9a5da714d563d6d9df7bd3db40d7ec598 (from https://www.piwheels.org/simple/canvas-mcp/) (requires-python:>=3.10) 2026-04-10T05:27:11,656 Skipping link: not a file: https://www.piwheels.org/simple/canvas-mcp/ 2026-04-10T05:27:11,656 Skipping link: not a file: https://pypi.org/simple/canvas-mcp/ 2026-04-10T05:27:11,678 Given no hashes to check 1 links for project 'canvas-mcp': discarding no candidates 2026-04-10T05:27:11,698 Collecting canvas-mcp==1.2.0 2026-04-10T05:27:11,700 Created temporary directory: /tmp/pip-unpack-ctckmodq 2026-04-10T05:27:11,929 Downloading canvas_mcp-1.2.0.tar.gz (1.0 MB) 2026-04-10T05:27:12,467 Added canvas-mcp==1.2.0 from https://files.pythonhosted.org/packages/43/fb/68493da20add23b10a95dbf1278f1c4be7740192e8c9cedbfb8bc24c55a6/canvas_mcp-1.2.0.tar.gz to build tracker '/tmp/pip-build-tracker-bmu_yh79' 2026-04-10T05:27:12,473 Created temporary directory: /tmp/pip-build-env-z7a8q4jv 2026-04-10T05:27:12,477 Installing build dependencies: started 2026-04-10T05:27:12,478 Running command pip subprocess to install build dependencies 2026-04-10T05:27:13,625 Using pip 23.0.1 from /usr/lib/python3/dist-packages/pip (python 3.11) 2026-04-10T05:27:14,119 DEPRECATION: --no-binary currently disables reading from the cache of locally built wheels. In the future --no-binary will not influence the wheel cache. pip 23.1 will enforce this behaviour change. A possible replacement is to use the --no-cache-dir option. You can use the flag --use-feature=no-binary-enable-wheel-cache to test the upcoming behaviour. Discussion can be found at https://github.com/pypa/pip/issues/11453 2026-04-10T05:27:14,141 Looking in indexes: https://pypi.org/simple, https://www.piwheels.org/simple 2026-04-10T05:27:14,690 Collecting hatchling 2026-04-10T05:27:14,711 Using cached https://www.piwheels.org/simple/hatchling/hatchling-1.29.0-py3-none-any.whl (76 kB) 2026-04-10T05:27:14,900 Collecting packaging>=24.2 2026-04-10T05:27:14,918 Using cached https://www.piwheels.org/simple/packaging/packaging-26.0-py3-none-any.whl (74 kB) 2026-04-10T05:27:15,036 Collecting pathspec>=0.10.1 2026-04-10T05:27:15,052 Using cached https://www.piwheels.org/simple/pathspec/pathspec-1.0.4-py3-none-any.whl (55 kB) 2026-04-10T05:27:15,174 Collecting pluggy>=1.0.0 2026-04-10T05:27:15,188 Using cached https://www.piwheels.org/simple/pluggy/pluggy-1.6.0-py3-none-any.whl (20 kB) 2026-04-10T05:27:15,435 Collecting trove-classifiers 2026-04-10T05:27:15,451 Using cached https://www.piwheels.org/simple/trove-classifiers/trove_classifiers-2026.1.14.14-py3-none-any.whl (14 kB) 2026-04-10T05:27:18,104 Installing collected packages: trove-classifiers, pluggy, pathspec, packaging, hatchling 2026-04-10T05:27:18,141 Creating /tmp/pip-build-env-z7a8q4jv/overlay/local/bin 2026-04-10T05:27:18,143 changing mode of /tmp/pip-build-env-z7a8q4jv/overlay/local/bin/trove-classifiers to 755 2026-04-10T05:27:19,094 changing mode of /tmp/pip-build-env-z7a8q4jv/overlay/local/bin/hatchling to 755 2026-04-10T05:27:19,132 Successfully installed hatchling-1.29.0 packaging-26.0 pathspec-1.0.4 pluggy-1.6.0 trove-classifiers-2026.1.14.14 2026-04-10T05:27:19,378 Installing build dependencies: finished with status 'done' 2026-04-10T05:27:19,385 Getting requirements to build wheel: started 2026-04-10T05:27:19,386 Running command Getting requirements to build wheel 2026-04-10T05:27:19,749 Getting requirements to build wheel: finished with status 'done' 2026-04-10T05:27:19,752 Created temporary directory: /tmp/pip-modern-metadata-8dzvdr8z 2026-04-10T05:27:19,755 Preparing metadata (pyproject.toml): started 2026-04-10T05:27:19,756 Running command Preparing metadata (pyproject.toml) 2026-04-10T05:27:20,407 Preparing metadata (pyproject.toml): finished with status 'done' 2026-04-10T05:27:20,415 Source in /tmp/pip-wheel-a55vxts2/canvas-mcp_82649e487e99449ea46c88299df19c67 has version 1.2.0, which satisfies requirement canvas-mcp==1.2.0 from https://files.pythonhosted.org/packages/43/fb/68493da20add23b10a95dbf1278f1c4be7740192e8c9cedbfb8bc24c55a6/canvas_mcp-1.2.0.tar.gz 2026-04-10T05:27:20,416 Removed canvas-mcp==1.2.0 from https://files.pythonhosted.org/packages/43/fb/68493da20add23b10a95dbf1278f1c4be7740192e8c9cedbfb8bc24c55a6/canvas_mcp-1.2.0.tar.gz from build tracker '/tmp/pip-build-tracker-bmu_yh79' 2026-04-10T05:27:20,425 Created temporary directory: /tmp/pip-unpack-tpfrtngp 2026-04-10T05:27:20,426 Building wheels for collected packages: canvas-mcp 2026-04-10T05:27:20,430 Created temporary directory: /tmp/pip-wheel-uh5cz400 2026-04-10T05:27:20,431 Destination directory: /tmp/pip-wheel-uh5cz400 2026-04-10T05:27:20,433 Building wheel for canvas-mcp (pyproject.toml): started 2026-04-10T05:27:20,434 Running command Building wheel for canvas-mcp (pyproject.toml) 2026-04-10T05:27:20,568 Building wheel for canvas-mcp (pyproject.toml): finished with status 'done' 2026-04-10T05:27:20,573 Created wheel for canvas-mcp: filename=canvas_mcp-1.2.0-py3-none-any.whl size=154817 sha256=e16c45ff366e40fc9943a7dcac872db6cc42b7b6a1d057011e15546cb51e44a5 2026-04-10T05:27:20,575 Stored in directory: /tmp/pip-ephem-wheel-cache-1ow2rs_x/wheels/39/5d/16/9248eb2dc8a7b0acad045d94d4f42f45c8659ab9e5e1423c46 2026-04-10T05:27:20,592 Successfully built canvas-mcp 2026-04-10T05:27:20,600 Removed build tracker: '/tmp/pip-build-tracker-bmu_yh79'