2026-01-04T07:34:52,908 Created temporary directory: /tmp/pip-ephem-wheel-cache-5aeirdoj 2026-01-04T07:34:52,910 Created temporary directory: /tmp/pip-build-tracker-l69n37r_ 2026-01-04T07:34:52,910 Initialized build tracking at /tmp/pip-build-tracker-l69n37r_ 2026-01-04T07:34:52,911 Created build tracker: /tmp/pip-build-tracker-l69n37r_ 2026-01-04T07:34:52,911 Entered build tracker: /tmp/pip-build-tracker-l69n37r_ 2026-01-04T07:34:52,912 Created temporary directory: /tmp/pip-wheel-nr07nk0y 2026-01-04T07:34:52,915 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-01-04T07:34:52,918 Created temporary directory: /tmp/pip-ephem-wheel-cache-hf4k1gcf 2026-01-04T07:34:52,940 Looking in indexes: https://pypi.org/simple, https://www.piwheels.org/simple 2026-01-04T07:34:52,943 2 location(s) to search for versions of article-mcp: 2026-01-04T07:34:52,943 * https://pypi.org/simple/article-mcp/ 2026-01-04T07:34:52,943 * https://www.piwheels.org/simple/article-mcp/ 2026-01-04T07:34:52,944 Fetching project page and analyzing links: https://pypi.org/simple/article-mcp/ 2026-01-04T07:34:52,945 Getting page https://pypi.org/simple/article-mcp/ 2026-01-04T07:34:52,946 Found index url https://pypi.org/simple 2026-01-04T07:34:53,164 Fetched page https://pypi.org/simple/article-mcp/ as application/vnd.pypi.simple.v1+json 2026-01-04T07:34:53,170 Skipping link: No binaries permitted for article-mcp: https://files.pythonhosted.org/packages/20/2d/350fde140f30935d6ace93426b459a8977fbb6407c00c84e976a4ba75f00/article_mcp-0.1.0-py3-none-any.whl (from https://pypi.org/simple/article-mcp/) (requires-python:>=3.10) 2026-01-04T07:34:53,171 Found link https://files.pythonhosted.org/packages/96/33/47bb4f49a9892591acda44ce4bab184c7a9888117cc7d7c7fa1bd86d76f6/article_mcp-0.1.0.tar.gz (from https://pypi.org/simple/article-mcp/) (requires-python:>=3.10), version: 0.1.0 2026-01-04T07:34:53,172 Skipping link: No binaries permitted for article-mcp: https://files.pythonhosted.org/packages/41/93/ed96b6333ee741198ce1c887588a4a79ed38b1b1e49cd7668faaec7bce8b/article_mcp-0.1.1-py3-none-any.whl (from https://pypi.org/simple/article-mcp/) (requires-python:>=3.10) 2026-01-04T07:34:53,173 Found link https://files.pythonhosted.org/packages/fe/c9/4f8d43dfe658ca15886acaf7bde3dd79409708a75b1d12314adf51f622cb/article_mcp-0.1.1.tar.gz (from https://pypi.org/simple/article-mcp/) (requires-python:>=3.10), version: 0.1.1 2026-01-04T07:34:53,173 Skipping link: No binaries permitted for article-mcp: https://files.pythonhosted.org/packages/26/30/07b378f0cbcdbfc4c2eb090592d88c51fa4a2822da0a29c7c72ff2f95893/article_mcp-0.1.2-py3-none-any.whl (from https://pypi.org/simple/article-mcp/) (requires-python:>=3.10) 2026-01-04T07:34:53,174 Found link https://files.pythonhosted.org/packages/80/8c/f40b81f59e3ce47228a8a7f21f22e0b312915b9513838506d457ce8cc75e/article_mcp-0.1.2.tar.gz (from https://pypi.org/simple/article-mcp/) (requires-python:>=3.10), version: 0.1.2 2026-01-04T07:34:53,175 Skipping link: No binaries permitted for article-mcp: https://files.pythonhosted.org/packages/07/88/5777de3a49d83d4d581e82b5ecd395fbd4c37644d2c88dbec00998398d2c/article_mcp-0.1.3-py3-none-any.whl (from https://pypi.org/simple/article-mcp/) (requires-python:>=3.10) 2026-01-04T07:34:53,176 Found link https://files.pythonhosted.org/packages/11/41/abbc3f51bf51096f48e7cee47b95c7aa2fc063ae1ab44aef0f41c98dedb5/article_mcp-0.1.3.tar.gz (from https://pypi.org/simple/article-mcp/) (requires-python:>=3.10), version: 0.1.3 2026-01-04T07:34:53,177 Skipping link: No binaries permitted for article-mcp: https://files.pythonhosted.org/packages/04/0c/68b3b4657a0d45e0e80335bd48d75e73b7e5c2ed8181e8f0dc61c0a545a9/article_mcp-0.1.4-py3-none-any.whl (from https://pypi.org/simple/article-mcp/) (requires-python:>=3.10) 2026-01-04T07:34:53,178 Found link https://files.pythonhosted.org/packages/a3/5a/04eba2433a11746d61d812856a6dd394a9c63effad095b9f566856d9054d/article_mcp-0.1.4.tar.gz (from https://pypi.org/simple/article-mcp/) (requires-python:>=3.10), version: 0.1.4 2026-01-04T07:34:53,179 Skipping link: No binaries permitted for article-mcp: https://files.pythonhosted.org/packages/82/30/664224c5bcb28885dc2cd8766a2e3b7d2650793d865ffb8e70e1ca4df301/article_mcp-0.1.5-py3-none-any.whl (from https://pypi.org/simple/article-mcp/) (requires-python:>=3.10) 2026-01-04T07:34:53,180 Found link https://files.pythonhosted.org/packages/f2/80/e3c47ff3aafbcd4ac40733605accfca33fe3eeb4d5d5be695749d9d26a93/article_mcp-0.1.5.tar.gz (from https://pypi.org/simple/article-mcp/) (requires-python:>=3.10), version: 0.1.5 2026-01-04T07:34:53,180 Skipping link: No binaries permitted for article-mcp: https://files.pythonhosted.org/packages/43/88/db709998f46d599b908def32c184af4659b97ca139ae7d7b8083f127df4c/article_mcp-0.1.6-py3-none-any.whl (from https://pypi.org/simple/article-mcp/) (requires-python:>=3.10) 2026-01-04T07:34:53,181 Found link https://files.pythonhosted.org/packages/49/38/5f623eecbf1c60a5be2a1b67a2a331ae12cd1179410da3f8d7b2781be53e/article_mcp-0.1.6.tar.gz (from https://pypi.org/simple/article-mcp/) (requires-python:>=3.10), version: 0.1.6 2026-01-04T07:34:53,182 Skipping link: No binaries permitted for article-mcp: https://files.pythonhosted.org/packages/cb/7a/020f592e4d052d321dc827119f567accbe95697d3f5087c8b60fb085fdeb/article_mcp-0.1.8-py3-none-any.whl (from https://pypi.org/simple/article-mcp/) (requires-python:>=3.10) 2026-01-04T07:34:53,183 Found link https://files.pythonhosted.org/packages/ad/03/a20aa0a20d6e58dba4583021cea3952a3c0fbcf1892ca16db590e881cd7e/article_mcp-0.1.8.tar.gz (from https://pypi.org/simple/article-mcp/) (requires-python:>=3.10), version: 0.1.8 2026-01-04T07:34:53,184 Skipping link: No binaries permitted for article-mcp: https://files.pythonhosted.org/packages/65/aa/195cc001d5e039d0a54a53a6769f6af401e9976abd81b83d7e60f539c792/article_mcp-0.1.9-py3-none-any.whl (from https://pypi.org/simple/article-mcp/) (requires-python:>=3.10) 2026-01-04T07:34:53,185 Found link https://files.pythonhosted.org/packages/cd/8d/0d5335446e8ffc21ee60e5b47f345603855421cc50f521796c51aed8b21d/article_mcp-0.1.9.tar.gz (from https://pypi.org/simple/article-mcp/) (requires-python:>=3.10), version: 0.1.9 2026-01-04T07:34:53,185 Skipping link: No binaries permitted for article-mcp: https://files.pythonhosted.org/packages/37/a5/9495b233cc6873d03d429383bae9d584679eab135f934eb2e32376b40e5d/article_mcp-0.2.0-py3-none-any.whl (from https://pypi.org/simple/article-mcp/) (requires-python:>=3.10) 2026-01-04T07:34:53,186 Found link https://files.pythonhosted.org/packages/8e/ad/9f68effea42fd265c8ce9c59a4a980c397658c7267de7c7ef6a8d040ec08/article_mcp-0.2.0.tar.gz (from https://pypi.org/simple/article-mcp/) (requires-python:>=3.10), version: 0.2.0 2026-01-04T07:34:53,187 Skipping link: No binaries permitted for article-mcp: https://files.pythonhosted.org/packages/16/5a/5e4c0e546e0588d34dfc7efd526377f48d3658e0a5b5f880c9ddd6cf1cb1/article_mcp-0.2.1-py3-none-any.whl (from https://pypi.org/simple/article-mcp/) (requires-python:>=3.10) 2026-01-04T07:34:53,188 Found link https://files.pythonhosted.org/packages/b3/de/2c541a5b828c87c27898b607075508179f7874dfbbc37b04922cf2f6476a/article_mcp-0.2.1.tar.gz (from https://pypi.org/simple/article-mcp/) (requires-python:>=3.10), version: 0.2.1 2026-01-04T07:34:53,189 Skipping link: No binaries permitted for article-mcp: https://files.pythonhosted.org/packages/aa/c4/a52fe9bf4b00dfdcce0712b48c7b92af8c6a3f5c048072247b489e18bf38/article_mcp-0.2.2-py3-none-any.whl (from https://pypi.org/simple/article-mcp/) (requires-python:>=3.10) 2026-01-04T07:34:53,189 Found link https://files.pythonhosted.org/packages/84/d6/33a7bfc8931fa5e07f80a03b096cafa931f2be1feaceac092238a2d9dc4b/article_mcp-0.2.2.tar.gz (from https://pypi.org/simple/article-mcp/) (requires-python:>=3.10), version: 0.2.2 2026-01-04T07:34:53,190 Fetching project page and analyzing links: https://www.piwheels.org/simple/article-mcp/ 2026-01-04T07:34:53,191 Getting page https://www.piwheels.org/simple/article-mcp/ 2026-01-04T07:34:53,193 Found index url https://www.piwheels.org/simple 2026-01-04T07:34:53,366 Fetched page https://www.piwheels.org/simple/article-mcp/ as text/html 2026-01-04T07:34:53,370 Skipping link: No binaries permitted for article-mcp: https://www.piwheels.org/simple/article-mcp/article_mcp-0.2.1-py3-none-any.whl#sha256=720c62e735491f1f3b0b8f2aec3cac575bf886a68cece204fce6e004605f026e (from https://www.piwheels.org/simple/article-mcp/) (requires-python:>=3.10) 2026-01-04T07:34:53,371 Skipping link: No binaries permitted for article-mcp: https://www.piwheels.org/simple/article-mcp/article_mcp-0.2.0-py3-none-any.whl#sha256=1c60fa4bba97d1d34ecf14382a03601b96b180fbc0d253486719950b5b4bcdb0 (from https://www.piwheels.org/simple/article-mcp/) (requires-python:>=3.10) 2026-01-04T07:34:53,371 Skipping link: No binaries permitted for article-mcp: https://www.piwheels.org/simple/article-mcp/article_mcp-0.1.9-py3-none-any.whl#sha256=07cdfdd6f8fa48ef30a3015a91e86d89803a371341cc129ea14d32a38deaa565 (from https://www.piwheels.org/simple/article-mcp/) (requires-python:>=3.10) 2026-01-04T07:34:53,372 Skipping link: No binaries permitted for article-mcp: https://archive1.piwheels.org/simple/article-mcp/article_mcp-0.1.8-py3-none-any.whl#sha256=0dc0d3abc266a7489f0f4e8e31016b2f8eb5789a67c3836c10fe57233b46e417 (from https://www.piwheels.org/simple/article-mcp/) (requires-python:>=3.10) 2026-01-04T07:34:53,372 Skipping link: No binaries permitted for article-mcp: https://archive1.piwheels.org/simple/article-mcp/article_mcp-0.1.6-py3-none-any.whl#sha256=29ff234262646493ca956071cd529aa16d30dcdfd8e48bd86ce42c32509ee1ed (from https://www.piwheels.org/simple/article-mcp/) (requires-python:>=3.10) 2026-01-04T07:34:53,373 Skipping link: No binaries permitted for article-mcp: https://archive1.piwheels.org/simple/article-mcp/article_mcp-0.1.5-py3-none-any.whl#sha256=1e120322206eaeae2d8adc11fe964a043a1154e7192a21a295d84cbbb841b8ed (from https://www.piwheels.org/simple/article-mcp/) (requires-python:>=3.10) 2026-01-04T07:34:53,373 Skipping link: No binaries permitted for article-mcp: https://archive1.piwheels.org/simple/article-mcp/article_mcp-0.1.4-py3-none-any.whl#sha256=9521e0051d714f5fedda3da03cf818c0c36644ecc0d3c174bb7d2bbb9c40884d (from https://www.piwheels.org/simple/article-mcp/) (requires-python:>=3.10) 2026-01-04T07:34:53,374 Skipping link: No binaries permitted for article-mcp: https://archive1.piwheels.org/simple/article-mcp/article_mcp-0.1.3-py3-none-any.whl#sha256=32c3b0c6a428aff3fb74f2ad734414d51273b8ceaeae5f8f2042340bcba398c7 (from https://www.piwheels.org/simple/article-mcp/) (requires-python:>=3.10) 2026-01-04T07:34:53,375 Skipping link: No binaries permitted for article-mcp: https://archive1.piwheels.org/simple/article-mcp/article_mcp-0.1.2-py3-none-any.whl#sha256=05a32b1fc6246b737cb37afbe818facca807730d4b44522606f7c91515fdd7da (from https://www.piwheels.org/simple/article-mcp/) (requires-python:>=3.10) 2026-01-04T07:34:53,376 Skipping link: No binaries permitted for article-mcp: https://archive1.piwheels.org/simple/article-mcp/article_mcp-0.1.1-py3-none-any.whl#sha256=908d6a7ede4a49a55434309eff28009193bcedbff85777a3d09805c8adbd07dc (from https://www.piwheels.org/simple/article-mcp/) (requires-python:>=3.10) 2026-01-04T07:34:53,376 Skipping link: No binaries permitted for article-mcp: https://archive1.piwheels.org/simple/article-mcp/article_mcp-0.1.0-py3-none-any.whl#sha256=5bee4c798320bf8a5f7ce5e7fab34b8ab8afca89f7094fd1a3c07e6525d623ad (from https://www.piwheels.org/simple/article-mcp/) (requires-python:>=3.10) 2026-01-04T07:34:53,377 Skipping link: not a file: https://www.piwheels.org/simple/article-mcp/ 2026-01-04T07:34:53,377 Skipping link: not a file: https://pypi.org/simple/article-mcp/ 2026-01-04T07:34:53,398 Given no hashes to check 1 links for project 'article-mcp': discarding no candidates 2026-01-04T07:34:53,416 Collecting article-mcp==0.2.2 2026-01-04T07:34:53,419 Created temporary directory: /tmp/pip-unpack-cjoqzgfy 2026-01-04T07:34:53,556 Downloading article_mcp-0.2.2.tar.gz (209 kB) 2026-01-04T07:34:53,862 Added article-mcp==0.2.2 from https://files.pythonhosted.org/packages/84/d6/33a7bfc8931fa5e07f80a03b096cafa931f2be1feaceac092238a2d9dc4b/article_mcp-0.2.2.tar.gz to build tracker '/tmp/pip-build-tracker-l69n37r_' 2026-01-04T07:34:53,870 Created temporary directory: /tmp/pip-build-env-e7aw8jn5 2026-01-04T07:34:53,874 Installing build dependencies: started 2026-01-04T07:34:53,875 Running command pip subprocess to install build dependencies 2026-01-04T07:34:55,106 Using pip 23.0.1 from /usr/lib/python3/dist-packages/pip (python 3.11) 2026-01-04T07:34:55,714 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-01-04T07:34:55,740 Looking in indexes: https://pypi.org/simple, https://www.piwheels.org/simple 2026-01-04T07:34:57,465 Collecting setuptools>=61.0 2026-01-04T07:34:57,552 Using cached https://www.piwheels.org/simple/setuptools/setuptools-80.9.0-py3-none-any.whl (1.2 MB) 2026-01-04T07:34:57,819 Collecting wheel 2026-01-04T07:34:57,836 Using cached https://www.piwheels.org/simple/wheel/wheel-0.45.1-py3-none-any.whl (72 kB) 2026-01-04T07:35:00,880 Installing collected packages: wheel, setuptools 2026-01-04T07:35:01,129 Creating /tmp/pip-build-env-e7aw8jn5/overlay/local/bin 2026-01-04T07:35:01,131 changing mode of /tmp/pip-build-env-e7aw8jn5/overlay/local/bin/wheel to 755 2026-01-04T07:35:04,776 Successfully installed setuptools-80.9.0 wheel-0.45.1 2026-01-04T07:35:05,051 Installing build dependencies: finished with status 'done' 2026-01-04T07:35:05,057 Getting requirements to build wheel: started 2026-01-04T07:35:05,059 Running command Getting requirements to build wheel 2026-01-04T07:35:05,781 running egg_info 2026-01-04T07:35:05,788 writing src/article_mcp.egg-info/PKG-INFO 2026-01-04T07:35:05,796 writing dependency_links to src/article_mcp.egg-info/dependency_links.txt 2026-01-04T07:35:05,798 writing entry points to src/article_mcp.egg-info/entry_points.txt 2026-01-04T07:35:05,802 writing requirements to src/article_mcp.egg-info/requires.txt 2026-01-04T07:35:05,804 writing top-level names to src/article_mcp.egg-info/top_level.txt 2026-01-04T07:35:05,831 reading manifest file 'src/article_mcp.egg-info/SOURCES.txt' 2026-01-04T07:35:05,844 reading manifest template 'MANIFEST.in' 2026-01-04T07:35:05,845 warning: no files found matching '*.py' 2026-01-04T07:35:05,888 warning: no files found matching '*.json' under directory 'src' 2026-01-04T07:35:05,889 warning: no files found matching '*.json' under directory 'src/resource' 2026-01-04T07:35:05,920 adding license file 'LICENSE' 2026-01-04T07:35:05,926 writing manifest file 'src/article_mcp.egg-info/SOURCES.txt' 2026-01-04T07:35:06,024 Getting requirements to build wheel: finished with status 'done' 2026-01-04T07:35:06,028 Created temporary directory: /tmp/pip-modern-metadata-6r23_ec5 2026-01-04T07:35:06,030 Preparing metadata (pyproject.toml): started 2026-01-04T07:35:06,031 Running command Preparing metadata (pyproject.toml) 2026-01-04T07:35:06,684 running dist_info 2026-01-04T07:35:06,697 creating /tmp/pip-modern-metadata-6r23_ec5/article_mcp.egg-info 2026-01-04T07:35:06,698 writing /tmp/pip-modern-metadata-6r23_ec5/article_mcp.egg-info/PKG-INFO 2026-01-04T07:35:06,705 writing dependency_links to /tmp/pip-modern-metadata-6r23_ec5/article_mcp.egg-info/dependency_links.txt 2026-01-04T07:35:06,707 writing entry points to /tmp/pip-modern-metadata-6r23_ec5/article_mcp.egg-info/entry_points.txt 2026-01-04T07:35:06,711 writing requirements to /tmp/pip-modern-metadata-6r23_ec5/article_mcp.egg-info/requires.txt 2026-01-04T07:35:06,712 writing top-level names to /tmp/pip-modern-metadata-6r23_ec5/article_mcp.egg-info/top_level.txt 2026-01-04T07:35:06,714 writing manifest file '/tmp/pip-modern-metadata-6r23_ec5/article_mcp.egg-info/SOURCES.txt' 2026-01-04T07:35:06,739 reading manifest file '/tmp/pip-modern-metadata-6r23_ec5/article_mcp.egg-info/SOURCES.txt' 2026-01-04T07:35:06,741 reading manifest template 'MANIFEST.in' 2026-01-04T07:35:06,742 warning: no files found matching '*.py' 2026-01-04T07:35:06,774 warning: no files found matching '*.json' under directory 'src' 2026-01-04T07:35:06,775 warning: no files found matching '*.json' under directory 'src/resource' 2026-01-04T07:35:06,798 adding license file 'LICENSE' 2026-01-04T07:35:06,804 writing manifest file '/tmp/pip-modern-metadata-6r23_ec5/article_mcp.egg-info/SOURCES.txt' 2026-01-04T07:35:06,805 creating '/tmp/pip-modern-metadata-6r23_ec5/article_mcp-0.2.2.dist-info' 2026-01-04T07:35:06,934 Preparing metadata (pyproject.toml): finished with status 'done' 2026-01-04T07:35:06,938 Source in /tmp/pip-wheel-nr07nk0y/article-mcp_c4a91af9a93448498618c378c34e3313 has version 0.2.2, which satisfies requirement article-mcp==0.2.2 from https://files.pythonhosted.org/packages/84/d6/33a7bfc8931fa5e07f80a03b096cafa931f2be1feaceac092238a2d9dc4b/article_mcp-0.2.2.tar.gz 2026-01-04T07:35:06,939 Removed article-mcp==0.2.2 from https://files.pythonhosted.org/packages/84/d6/33a7bfc8931fa5e07f80a03b096cafa931f2be1feaceac092238a2d9dc4b/article_mcp-0.2.2.tar.gz from build tracker '/tmp/pip-build-tracker-l69n37r_' 2026-01-04T07:35:06,945 Created temporary directory: /tmp/pip-unpack-0gk9lrh0 2026-01-04T07:35:06,946 Building wheels for collected packages: article-mcp 2026-01-04T07:35:06,950 Created temporary directory: /tmp/pip-wheel-3bqd6r0a 2026-01-04T07:35:06,950 Destination directory: /tmp/pip-wheel-3bqd6r0a 2026-01-04T07:35:06,952 Building wheel for article-mcp (pyproject.toml): started 2026-01-04T07:35:06,954 Running command Building wheel for article-mcp (pyproject.toml) 2026-01-04T07:35:07,583 running bdist_wheel 2026-01-04T07:35:07,604 running build 2026-01-04T07:35:07,605 running build_py 2026-01-04T07:35:07,612 creating build/lib/article_mcp 2026-01-04T07:35:07,614 copying src/article_mcp/cli.py -> build/lib/article_mcp 2026-01-04T07:35:07,617 copying src/article_mcp/__init__.py -> build/lib/article_mcp 2026-01-04T07:35:07,619 copying src/article_mcp/__main__.py -> build/lib/article_mcp 2026-01-04T07:35:07,621 creating build/lib/article_mcp/resources 2026-01-04T07:35:07,622 copying src/article_mcp/resources/__init__.py -> build/lib/article_mcp/resources 2026-01-04T07:35:07,624 copying src/article_mcp/resources/config_resources.py -> build/lib/article_mcp/resources 2026-01-04T07:35:07,626 copying src/article_mcp/resources/journal_resources.py -> build/lib/article_mcp/resources 2026-01-04T07:35:07,629 creating build/lib/article_mcp/services 2026-01-04T07:35:07,630 copying src/article_mcp/services/reference_service.py -> build/lib/article_mcp/services 2026-01-04T07:35:07,633 copying src/article_mcp/services/openalex_service.py -> build/lib/article_mcp/services 2026-01-04T07:35:07,636 copying src/article_mcp/services/easyscholar_service.py -> build/lib/article_mcp/services 2026-01-04T07:35:07,638 copying src/article_mcp/services/__init__.py -> build/lib/article_mcp/services 2026-01-04T07:35:07,640 copying src/article_mcp/services/html_to_markdown.py -> build/lib/article_mcp/services 2026-01-04T07:35:07,643 copying src/article_mcp/services/europe_pmc.py -> build/lib/article_mcp/services 2026-01-04T07:35:07,646 copying src/article_mcp/services/similar_articles.py -> build/lib/article_mcp/services 2026-01-04T07:35:07,648 copying src/article_mcp/services/api_utils.py -> build/lib/article_mcp/services 2026-01-04T07:35:07,651 copying src/article_mcp/services/crossref_service.py -> build/lib/article_mcp/services 2026-01-04T07:35:07,654 copying src/article_mcp/services/merged_results.py -> build/lib/article_mcp/services 2026-01-04T07:35:07,656 copying src/article_mcp/services/mcp_config.py -> build/lib/article_mcp/services 2026-01-04T07:35:07,659 copying src/article_mcp/services/pubmed_search.py -> build/lib/article_mcp/services 2026-01-04T07:35:07,662 copying src/article_mcp/services/arxiv_search.py -> build/lib/article_mcp/services 2026-01-04T07:35:07,664 copying src/article_mcp/services/error_utils.py -> build/lib/article_mcp/services 2026-01-04T07:35:07,666 copying src/article_mcp/services/openalex_metrics_service.py -> build/lib/article_mcp/services 2026-01-04T07:35:07,670 creating build/lib/article_mcp/tools 2026-01-04T07:35:07,671 copying src/article_mcp/tools/__init__.py -> build/lib/article_mcp/tools 2026-01-04T07:35:07,673 creating build/lib/article_mcp/middleware 2026-01-04T07:35:07,674 copying src/article_mcp/middleware/__init__.py -> build/lib/article_mcp/middleware 2026-01-04T07:35:07,676 copying src/article_mcp/middleware/logging.py -> build/lib/article_mcp/middleware 2026-01-04T07:35:07,679 creating build/lib/article_mcp/tools/core 2026-01-04T07:35:07,680 copying src/article_mcp/tools/core/reference_tools.py -> build/lib/article_mcp/tools/core 2026-01-04T07:35:07,682 copying src/article_mcp/tools/core/quality_tools.py -> build/lib/article_mcp/tools/core 2026-01-04T07:35:07,685 copying src/article_mcp/tools/core/relation_tools.py -> build/lib/article_mcp/tools/core 2026-01-04T07:35:07,688 copying src/article_mcp/tools/core/__init__.py -> build/lib/article_mcp/tools/core 2026-01-04T07:35:07,690 copying src/article_mcp/tools/core/search_tools.py -> build/lib/article_mcp/tools/core 2026-01-04T07:35:07,692 copying src/article_mcp/tools/core/article_tools.py -> build/lib/article_mcp/tools/core 2026-01-04T07:35:07,694 running egg_info 2026-01-04T07:35:07,706 writing src/article_mcp.egg-info/PKG-INFO 2026-01-04T07:35:07,713 writing dependency_links to src/article_mcp.egg-info/dependency_links.txt 2026-01-04T07:35:07,715 writing entry points to src/article_mcp.egg-info/entry_points.txt 2026-01-04T07:35:07,718 writing requirements to src/article_mcp.egg-info/requires.txt 2026-01-04T07:35:07,719 writing top-level names to src/article_mcp.egg-info/top_level.txt 2026-01-04T07:35:07,734 reading manifest file 'src/article_mcp.egg-info/SOURCES.txt' 2026-01-04T07:35:07,740 reading manifest template 'MANIFEST.in' 2026-01-04T07:35:07,741 warning: no files found matching '*.py' 2026-01-04T07:35:07,773 warning: no files found matching '*.json' under directory 'src' 2026-01-04T07:35:07,774 warning: no files found matching '*.json' under directory 'src/resource' 2026-01-04T07:35:07,796 adding license file 'LICENSE' 2026-01-04T07:35:07,803 writing manifest file 'src/article_mcp.egg-info/SOURCES.txt' 2026-01-04T07:35:07,822 installing to build/bdist.linux-armv7l/wheel 2026-01-04T07:35:07,823 running install 2026-01-04T07:35:07,847 running install_lib 2026-01-04T07:35:07,853 creating build/bdist.linux-armv7l/wheel 2026-01-04T07:35:07,855 creating build/bdist.linux-armv7l/wheel/article_mcp 2026-01-04T07:35:07,856 copying build/lib/article_mcp/cli.py -> build/bdist.linux-armv7l/wheel/./article_mcp 2026-01-04T07:35:07,860 creating build/bdist.linux-armv7l/wheel/article_mcp/resources 2026-01-04T07:35:07,861 copying build/lib/article_mcp/resources/__init__.py -> build/bdist.linux-armv7l/wheel/./article_mcp/resources 2026-01-04T07:35:07,863 copying build/lib/article_mcp/resources/config_resources.py -> build/bdist.linux-armv7l/wheel/./article_mcp/resources 2026-01-04T07:35:07,865 copying build/lib/article_mcp/resources/journal_resources.py -> build/bdist.linux-armv7l/wheel/./article_mcp/resources 2026-01-04T07:35:07,867 copying build/lib/article_mcp/__init__.py -> build/bdist.linux-armv7l/wheel/./article_mcp 2026-01-04T07:35:07,869 creating build/bdist.linux-armv7l/wheel/article_mcp/services 2026-01-04T07:35:07,870 copying build/lib/article_mcp/services/reference_service.py -> build/bdist.linux-armv7l/wheel/./article_mcp/services 2026-01-04T07:35:07,873 copying build/lib/article_mcp/services/openalex_service.py -> build/bdist.linux-armv7l/wheel/./article_mcp/services 2026-01-04T07:35:07,875 copying build/lib/article_mcp/services/easyscholar_service.py -> build/bdist.linux-armv7l/wheel/./article_mcp/services 2026-01-04T07:35:07,878 copying build/lib/article_mcp/services/__init__.py -> build/bdist.linux-armv7l/wheel/./article_mcp/services 2026-01-04T07:35:07,879 copying build/lib/article_mcp/services/html_to_markdown.py -> build/bdist.linux-armv7l/wheel/./article_mcp/services 2026-01-04T07:35:07,882 copying build/lib/article_mcp/services/europe_pmc.py -> build/bdist.linux-armv7l/wheel/./article_mcp/services 2026-01-04T07:35:07,884 copying build/lib/article_mcp/services/similar_articles.py -> build/bdist.linux-armv7l/wheel/./article_mcp/services 2026-01-04T07:35:07,887 copying build/lib/article_mcp/services/api_utils.py -> build/bdist.linux-armv7l/wheel/./article_mcp/services 2026-01-04T07:35:07,889 copying build/lib/article_mcp/services/crossref_service.py -> build/bdist.linux-armv7l/wheel/./article_mcp/services 2026-01-04T07:35:07,892 copying build/lib/article_mcp/services/merged_results.py -> build/bdist.linux-armv7l/wheel/./article_mcp/services 2026-01-04T07:35:07,894 copying build/lib/article_mcp/services/mcp_config.py -> build/bdist.linux-armv7l/wheel/./article_mcp/services 2026-01-04T07:35:07,896 copying build/lib/article_mcp/services/pubmed_search.py -> build/bdist.linux-armv7l/wheel/./article_mcp/services 2026-01-04T07:35:07,899 copying build/lib/article_mcp/services/arxiv_search.py -> build/bdist.linux-armv7l/wheel/./article_mcp/services 2026-01-04T07:35:07,902 copying build/lib/article_mcp/services/error_utils.py -> build/bdist.linux-armv7l/wheel/./article_mcp/services 2026-01-04T07:35:07,904 copying build/lib/article_mcp/services/openalex_metrics_service.py -> build/bdist.linux-armv7l/wheel/./article_mcp/services 2026-01-04T07:35:07,907 creating build/bdist.linux-armv7l/wheel/article_mcp/tools 2026-01-04T07:35:07,908 copying build/lib/article_mcp/tools/__init__.py -> build/bdist.linux-armv7l/wheel/./article_mcp/tools 2026-01-04T07:35:07,910 creating build/bdist.linux-armv7l/wheel/article_mcp/tools/core 2026-01-04T07:35:07,911 copying build/lib/article_mcp/tools/core/reference_tools.py -> build/bdist.linux-armv7l/wheel/./article_mcp/tools/core 2026-01-04T07:35:07,914 copying build/lib/article_mcp/tools/core/quality_tools.py -> build/bdist.linux-armv7l/wheel/./article_mcp/tools/core 2026-01-04T07:35:07,917 copying build/lib/article_mcp/tools/core/relation_tools.py -> build/bdist.linux-armv7l/wheel/./article_mcp/tools/core 2026-01-04T07:35:07,920 copying build/lib/article_mcp/tools/core/__init__.py -> build/bdist.linux-armv7l/wheel/./article_mcp/tools/core 2026-01-04T07:35:07,921 copying build/lib/article_mcp/tools/core/search_tools.py -> build/bdist.linux-armv7l/wheel/./article_mcp/tools/core 2026-01-04T07:35:07,924 copying build/lib/article_mcp/tools/core/article_tools.py -> build/bdist.linux-armv7l/wheel/./article_mcp/tools/core 2026-01-04T07:35:07,927 creating build/bdist.linux-armv7l/wheel/article_mcp/middleware 2026-01-04T07:35:07,928 copying build/lib/article_mcp/middleware/__init__.py -> build/bdist.linux-armv7l/wheel/./article_mcp/middleware 2026-01-04T07:35:07,931 copying build/lib/article_mcp/middleware/logging.py -> build/bdist.linux-armv7l/wheel/./article_mcp/middleware 2026-01-04T07:35:07,932 copying build/lib/article_mcp/__main__.py -> build/bdist.linux-armv7l/wheel/./article_mcp 2026-01-04T07:35:07,934 running install_egg_info 2026-01-04T07:35:07,940 Copying src/article_mcp.egg-info to build/bdist.linux-armv7l/wheel/./article_mcp-0.2.2-py3.11.egg-info 2026-01-04T07:35:07,952 running install_scripts 2026-01-04T07:35:07,965 creating build/bdist.linux-armv7l/wheel/article_mcp-0.2.2.dist-info/WHEEL 2026-01-04T07:35:07,968 creating '/tmp/pip-wheel-3bqd6r0a/.tmp-1g6cnatz/article_mcp-0.2.2-py3-none-any.whl' and adding 'build/bdist.linux-armv7l/wheel' to it 2026-01-04T07:35:07,971 adding 'article_mcp/__init__.py' 2026-01-04T07:35:07,972 adding 'article_mcp/__main__.py' 2026-01-04T07:35:07,974 adding 'article_mcp/cli.py' 2026-01-04T07:35:07,976 adding 'article_mcp/middleware/__init__.py' 2026-01-04T07:35:07,978 adding 'article_mcp/middleware/logging.py' 2026-01-04T07:35:07,979 adding 'article_mcp/resources/__init__.py' 2026-01-04T07:35:07,981 adding 'article_mcp/resources/config_resources.py' 2026-01-04T07:35:07,982 adding 'article_mcp/resources/journal_resources.py' 2026-01-04T07:35:07,984 adding 'article_mcp/services/__init__.py' 2026-01-04T07:35:07,986 adding 'article_mcp/services/api_utils.py' 2026-01-04T07:35:07,988 adding 'article_mcp/services/arxiv_search.py' 2026-01-04T07:35:07,990 adding 'article_mcp/services/crossref_service.py' 2026-01-04T07:35:07,992 adding 'article_mcp/services/easyscholar_service.py' 2026-01-04T07:35:07,993 adding 'article_mcp/services/error_utils.py' 2026-01-04T07:35:07,996 adding 'article_mcp/services/europe_pmc.py' 2026-01-04T07:35:07,998 adding 'article_mcp/services/html_to_markdown.py' 2026-01-04T07:35:08,000 adding 'article_mcp/services/mcp_config.py' 2026-01-04T07:35:08,002 adding 'article_mcp/services/merged_results.py' 2026-01-04T07:35:08,003 adding 'article_mcp/services/openalex_metrics_service.py' 2026-01-04T07:35:08,005 adding 'article_mcp/services/openalex_service.py' 2026-01-04T07:35:08,009 adding 'article_mcp/services/pubmed_search.py' 2026-01-04T07:35:08,011 adding 'article_mcp/services/reference_service.py' 2026-01-04T07:35:08,013 adding 'article_mcp/services/similar_articles.py' 2026-01-04T07:35:08,014 adding 'article_mcp/tools/__init__.py' 2026-01-04T07:35:08,016 adding 'article_mcp/tools/core/__init__.py' 2026-01-04T07:35:08,018 adding 'article_mcp/tools/core/article_tools.py' 2026-01-04T07:35:08,022 adding 'article_mcp/tools/core/quality_tools.py' 2026-01-04T07:35:08,023 adding 'article_mcp/tools/core/reference_tools.py' 2026-01-04T07:35:08,027 adding 'article_mcp/tools/core/relation_tools.py' 2026-01-04T07:35:08,030 adding 'article_mcp/tools/core/search_tools.py' 2026-01-04T07:35:08,033 adding 'article_mcp-0.2.2.dist-info/licenses/LICENSE' 2026-01-04T07:35:08,034 adding 'article_mcp-0.2.2.dist-info/METADATA' 2026-01-04T07:35:08,035 adding 'article_mcp-0.2.2.dist-info/WHEEL' 2026-01-04T07:35:08,036 adding 'article_mcp-0.2.2.dist-info/entry_points.txt' 2026-01-04T07:35:08,037 adding 'article_mcp-0.2.2.dist-info/top_level.txt' 2026-01-04T07:35:08,038 adding 'article_mcp-0.2.2.dist-info/RECORD' 2026-01-04T07:35:08,041 removing build/bdist.linux-armv7l/wheel 2026-01-04T07:35:08,149 Building wheel for article-mcp (pyproject.toml): finished with status 'done' 2026-01-04T07:35:08,156 Created wheel for article-mcp: filename=article_mcp-0.2.2-py3-none-any.whl size=95592 sha256=ba11076de81b509c1c6f67e22c211f55e2060d71137702613c3cb241debfe596 2026-01-04T07:35:08,157 Stored in directory: /tmp/pip-ephem-wheel-cache-hf4k1gcf/wheels/6e/1b/f6/3c062d6c7df05f4a784ea93528eecd25470fd55fa6987af21a 2026-01-04T07:35:08,169 Successfully built article-mcp 2026-01-04T07:35:08,175 Removed build tracker: '/tmp/pip-build-tracker-l69n37r_'