2026-02-09T03:14:57,054 Created temporary directory: /tmp/pip-ephem-wheel-cache-opls6475 2026-02-09T03:14:57,056 Created temporary directory: /tmp/pip-build-tracker-15gcyw87 2026-02-09T03:14:57,057 Initialized build tracking at /tmp/pip-build-tracker-15gcyw87 2026-02-09T03:14:57,057 Created build tracker: /tmp/pip-build-tracker-15gcyw87 2026-02-09T03:14:57,058 Entered build tracker: /tmp/pip-build-tracker-15gcyw87 2026-02-09T03:14:57,059 Created temporary directory: /tmp/pip-wheel-39n3vl2z 2026-02-09T03:14:57,061 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-02-09T03:14:57,064 Created temporary directory: /tmp/pip-ephem-wheel-cache-iwm5uc_r 2026-02-09T03:14:57,085 Looking in indexes: https://pypi.org/simple, https://www.piwheels.org/simple 2026-02-09T03:14:57,089 2 location(s) to search for versions of wrds2pg: 2026-02-09T03:14:57,089 * https://pypi.org/simple/wrds2pg/ 2026-02-09T03:14:57,089 * https://www.piwheels.org/simple/wrds2pg/ 2026-02-09T03:14:57,090 Fetching project page and analyzing links: https://pypi.org/simple/wrds2pg/ 2026-02-09T03:14:57,090 Getting page https://pypi.org/simple/wrds2pg/ 2026-02-09T03:14:57,092 Found index url https://pypi.org/simple 2026-02-09T03:14:57,410 Fetched page https://pypi.org/simple/wrds2pg/ as application/vnd.pypi.simple.v1+json 2026-02-09T03:14:57,424 Skipping link: No binaries permitted for wrds2pg: https://files.pythonhosted.org/packages/36/4d/10bef13832bdc17990beac4a20b47a77976768547aa4bd6137cbafd46f83/wrds2pg-0.1.17-py3-none-any.whl (from https://pypi.org/simple/wrds2pg/) (requires-python:>=3) 2026-02-09T03:14:57,426 Found link https://files.pythonhosted.org/packages/ae/9c/ee0b12002821c2c8e21625c915081fc315d9f1ceef100cb330e9116f2d0d/wrds2pg-0.1.17.tar.gz (from https://pypi.org/simple/wrds2pg/) (requires-python:>=3), version: 0.1.17 2026-02-09T03:14:57,426 Skipping link: No binaries permitted for wrds2pg: https://files.pythonhosted.org/packages/ac/24/35ec84d1b765955286a326d0f0c98423730b5818f33c5cdc3e2a2d528adf/wrds2pg-0.1.18-py3-none-any.whl (from https://pypi.org/simple/wrds2pg/) (requires-python:>=3) 2026-02-09T03:14:57,427 Found link https://files.pythonhosted.org/packages/dd/4f/6c631513b90802ad1fae0c3fb3dbf65efc603d3fee00a1cae4af45f6b2c5/wrds2pg-0.1.18.tar.gz (from https://pypi.org/simple/wrds2pg/) (requires-python:>=3), version: 0.1.18 2026-02-09T03:14:57,428 Skipping link: No binaries permitted for wrds2pg: https://files.pythonhosted.org/packages/42/1a/cbdac7035e9b7836ed96c6a9e493b556d3f595245c4f0b239c9ba639d53e/wrds2pg-0.1.20-py3-none-any.whl (from https://pypi.org/simple/wrds2pg/) (requires-python:>=3) 2026-02-09T03:14:57,429 Found link https://files.pythonhosted.org/packages/14/81/4c94b875ec21dccdefb6a1846bc4f4d4a6a529a0a6921cbbf580e07f8b6b/wrds2pg-0.1.20.tar.gz (from https://pypi.org/simple/wrds2pg/) (requires-python:>=3), version: 0.1.20 2026-02-09T03:14:57,430 Skipping link: No binaries permitted for wrds2pg: https://files.pythonhosted.org/packages/e7/a1/192e3bf4b1e122d0b12a094f4ee4fd1667276cb87cbe5d0a53412dc1a9bc/wrds2pg-0.1.21-py3-none-any.whl (from https://pypi.org/simple/wrds2pg/) (requires-python:>=3) 2026-02-09T03:14:57,431 Found link https://files.pythonhosted.org/packages/4d/4c/5fa9cc2e936e16d0be4a56ce2e8cf03b3ba0f59f49afdebd29f1eda99df4/wrds2pg-0.1.21.tar.gz (from https://pypi.org/simple/wrds2pg/) (requires-python:>=3), version: 0.1.21 2026-02-09T03:14:57,432 Skipping link: No binaries permitted for wrds2pg: https://files.pythonhosted.org/packages/4a/52/d9134119b39cf9e939e7cc5ab1317627406af4229fcbdf1085df366e01b4/wrds2pg-0.1.22-py3-none-any.whl (from https://pypi.org/simple/wrds2pg/) (requires-python:>=3) 2026-02-09T03:14:57,433 Found link https://files.pythonhosted.org/packages/5b/db/ebbf903d32ac113cdd0b3637f1e5dc37a4abf9f63f18dd56835f3611a465/wrds2pg-0.1.22.tar.gz (from https://pypi.org/simple/wrds2pg/) (requires-python:>=3), version: 0.1.22 2026-02-09T03:14:57,434 Skipping link: No binaries permitted for wrds2pg: https://files.pythonhosted.org/packages/c9/47/a040be2f7d67c120396a27beb1f5e3a6eb97fd24e17cd485ec6d332dad6e/wrds2pg-0.1.23-py3-none-any.whl (from https://pypi.org/simple/wrds2pg/) (requires-python:>=3) 2026-02-09T03:14:57,435 Found link https://files.pythonhosted.org/packages/4e/aa/b4f4227ff1d464462f243592bddd638d07e886aa39018ef2bb486624e2f5/wrds2pg-0.1.23.tar.gz (from https://pypi.org/simple/wrds2pg/) (requires-python:>=3), version: 0.1.23 2026-02-09T03:14:57,436 Skipping link: No binaries permitted for wrds2pg: https://files.pythonhosted.org/packages/7b/bf/a713b52aff61a20e5e9d851a69d7c4936d14018ed62759dd78629bfe12cf/wrds2pg-0.1.24-py3-none-any.whl (from https://pypi.org/simple/wrds2pg/) (requires-python:>=3) 2026-02-09T03:14:57,436 Found link https://files.pythonhosted.org/packages/ca/e9/81095cbac75110e7f53e915ebee06a9925bb32b6d8a307c7a709f9b74dd5/wrds2pg-0.1.24.tar.gz (from https://pypi.org/simple/wrds2pg/) (requires-python:>=3), version: 0.1.24 2026-02-09T03:14:57,437 Skipping link: No binaries permitted for wrds2pg: https://files.pythonhosted.org/packages/01/5d/cfd9a9cfe8194d52e16c24ef053b49225e85f0996c471226fc0cf5522e31/wrds2pg-1.0.0-py3-none-any.whl (from https://pypi.org/simple/wrds2pg/) (requires-python:>=3) 2026-02-09T03:14:57,438 Found link https://files.pythonhosted.org/packages/af/8f/069eed28514231a859da3b110112a0b2078f2c879e3cc5489909982ef2af/wrds2pg-1.0.0.tar.gz (from https://pypi.org/simple/wrds2pg/) (requires-python:>=3), version: 1.0.0 2026-02-09T03:14:57,439 Skipping link: No binaries permitted for wrds2pg: https://files.pythonhosted.org/packages/90/3d/1fc327c68c63a7540a964879a5a124e9104c5a80cd058a5f0659d2945dd5/wrds2pg-1.0.2-py3-none-any.whl (from https://pypi.org/simple/wrds2pg/) (requires-python:>=3) 2026-02-09T03:14:57,439 Found link https://files.pythonhosted.org/packages/fa/b0/49292467a2256c3ecdd7e7fdbd1c4729386bddc06f3a986483a311539f2b/wrds2pg-1.0.2.tar.gz (from https://pypi.org/simple/wrds2pg/) (requires-python:>=3), version: 1.0.2 2026-02-09T03:14:57,440 Skipping link: No binaries permitted for wrds2pg: https://files.pythonhosted.org/packages/41/99/2866d67e2fcd10684ccc913eaa896ebcc00c60982133a5adfaa8a39b7aa1/wrds2pg-1.0.3-py3-none-any.whl (from https://pypi.org/simple/wrds2pg/) (requires-python:>=3) 2026-02-09T03:14:57,441 Found link https://files.pythonhosted.org/packages/0f/bf/b1032fff1645c597e292ac8d588c33bad73ca567c01e52fb149f4aa503d1/wrds2pg-1.0.3.tar.gz (from https://pypi.org/simple/wrds2pg/) (requires-python:>=3), version: 1.0.3 2026-02-09T03:14:57,442 Skipping link: No binaries permitted for wrds2pg: https://files.pythonhosted.org/packages/0b/6c/bc13811b3a339ec1455a10a03b077d0a7fc7e43b3311201abbfc67d77fde/wrds2pg-1.0.4-py3-none-any.whl (from https://pypi.org/simple/wrds2pg/) (requires-python:>=3) 2026-02-09T03:14:57,443 Found link https://files.pythonhosted.org/packages/dc/f4/166d8822216116c22615377ab6493a7c44bd205b8853ae2b0ad51792d9e6/wrds2pg-1.0.4.tar.gz (from https://pypi.org/simple/wrds2pg/) (requires-python:>=3), version: 1.0.4 2026-02-09T03:14:57,444 Skipping link: No binaries permitted for wrds2pg: https://files.pythonhosted.org/packages/78/a7/afce414cb2df44692f2dd5af0e28578c349e337110fb7c73b893cef3c048/wrds2pg-1.0.5-py3-none-any.whl (from https://pypi.org/simple/wrds2pg/) (requires-python:>=3) 2026-02-09T03:14:57,445 Found link https://files.pythonhosted.org/packages/64/a7/18d7edab1e04462bf1aafd2fe6ffc9132f0aa11be6daaf14927c532b73d3/wrds2pg-1.0.5.tar.gz (from https://pypi.org/simple/wrds2pg/) (requires-python:>=3), version: 1.0.5 2026-02-09T03:14:57,445 Skipping link: No binaries permitted for wrds2pg: https://files.pythonhosted.org/packages/2b/8f/02f345286a6b878468948ab7bc6a56026077f0cbfb25d11440284519ba7a/wrds2pg-1.0.6-py3-none-any.whl (from https://pypi.org/simple/wrds2pg/) (requires-python:>=3) 2026-02-09T03:14:57,446 Found link https://files.pythonhosted.org/packages/8c/06/abb4c39f3e3f730fffe349e03e1172e31c95fbb9edf4c9257bfb0b6e2c62/wrds2pg-1.0.6.tar.gz (from https://pypi.org/simple/wrds2pg/) (requires-python:>=3), version: 1.0.6 2026-02-09T03:14:57,447 Skipping link: No binaries permitted for wrds2pg: https://files.pythonhosted.org/packages/3f/b5/99b90fee6aaf0b150803cfbd6d86e0052d292257dd101e803df4d945ad7b/wrds2pg-1.0.8-py3-none-any.whl (from https://pypi.org/simple/wrds2pg/) (requires-python:>=3) 2026-02-09T03:14:57,448 Found link https://files.pythonhosted.org/packages/eb/9f/a506b309ee9299d4d9cd3f5c1407e05da30c09cbbe8acf67e60de11a1b4e/wrds2pg-1.0.8.tar.gz (from https://pypi.org/simple/wrds2pg/) (requires-python:>=3), version: 1.0.8 2026-02-09T03:14:57,449 Skipping link: No binaries permitted for wrds2pg: https://files.pythonhosted.org/packages/80/6d/34291718af062c4c329fbaeaaa582e011da15ce1193364f668581c3bd983/wrds2pg-1.0.9-py3-none-any.whl (from https://pypi.org/simple/wrds2pg/) (requires-python:>=3) 2026-02-09T03:14:57,450 Found link https://files.pythonhosted.org/packages/27/20/2b9788aef9e54ea3d590a456caa294d1c177fd05029e8f70b99022369f68/wrds2pg-1.0.9.tar.gz (from https://pypi.org/simple/wrds2pg/) (requires-python:>=3), version: 1.0.9 2026-02-09T03:14:57,450 Skipping link: No binaries permitted for wrds2pg: https://files.pythonhosted.org/packages/99/ac/4d765cf6d5048798219506138f491e7218d56226bd1d4a1ab994e5efcf33/wrds2pg-1.0.10-py3-none-any.whl (from https://pypi.org/simple/wrds2pg/) (requires-python:>=3) 2026-02-09T03:14:57,451 Found link https://files.pythonhosted.org/packages/f4/6a/630cd948c36f331db42c9bac9e414e721e779efbb692210419563d9f4ec1/wrds2pg-1.0.10.tar.gz (from https://pypi.org/simple/wrds2pg/) (requires-python:>=3), version: 1.0.10 2026-02-09T03:14:57,452 Skipping link: No binaries permitted for wrds2pg: https://files.pythonhosted.org/packages/4b/8f/7a43a074a7f9fb3b14acbe6a7fdfe50e99d8489334adcc941ed6b4ca328b/wrds2pg-1.0.11-py3-none-any.whl (from https://pypi.org/simple/wrds2pg/) (requires-python:>=3) 2026-02-09T03:14:57,453 Found link https://files.pythonhosted.org/packages/e8/2b/f8c9e8ea4d651a9e15946e91b9f1708582a8631b6a76ddb16ad9275bb7a5/wrds2pg-1.0.11.tar.gz (from https://pypi.org/simple/wrds2pg/) (requires-python:>=3), version: 1.0.11 2026-02-09T03:14:57,453 Skipping link: No binaries permitted for wrds2pg: https://files.pythonhosted.org/packages/20/62/e4cff4d188653aa99e511ec9db794706d3e0eca3a072847c47b59fb281ba/wrds2pg-1.0.12-py3-none-any.whl (from https://pypi.org/simple/wrds2pg/) (requires-python:>=3) 2026-02-09T03:14:57,454 Found link https://files.pythonhosted.org/packages/14/9c/6db066ea90188c63fbacdfb53d2efd52e3ffb2f86ac229616b5ded27dabb/wrds2pg-1.0.12.tar.gz (from https://pypi.org/simple/wrds2pg/) (requires-python:>=3), version: 1.0.12 2026-02-09T03:14:57,455 Skipping link: No binaries permitted for wrds2pg: https://files.pythonhosted.org/packages/00/0d/9122175d258c706db78ca1df2f46092a8f7caf9b85bb55fbb05bf8149b43/wrds2pg-1.0.13-py3-none-any.whl (from https://pypi.org/simple/wrds2pg/) (requires-python:>=3) 2026-02-09T03:14:57,456 Found link https://files.pythonhosted.org/packages/21/32/ed7df674875559e6afaacdfe2a846a78e88355b187349fb0890a00a9c87b/wrds2pg-1.0.13.tar.gz (from https://pypi.org/simple/wrds2pg/) (requires-python:>=3), version: 1.0.13 2026-02-09T03:14:57,457 Skipping link: No binaries permitted for wrds2pg: https://files.pythonhosted.org/packages/98/27/a36bbe15df3fdbcf27a96e7a5b5f48c13d379465e4daf4889b5fd556eea0/wrds2pg-1.0.14-py3-none-any.whl (from https://pypi.org/simple/wrds2pg/) (requires-python:>=3) 2026-02-09T03:14:57,458 Found link https://files.pythonhosted.org/packages/30/5c/79161fc26f5a5c96b45c5d9f96c49164b7e32ff106d04ba0e6bf2e321b05/wrds2pg-1.0.14.tar.gz (from https://pypi.org/simple/wrds2pg/) (requires-python:>=3), version: 1.0.14 2026-02-09T03:14:57,458 Skipping link: No binaries permitted for wrds2pg: https://files.pythonhosted.org/packages/6f/56/b5f28563dbd278bc973e9b09d08b701083b92dc9facf367208f412bae2b1/wrds2pg-1.0.15-py3-none-any.whl (from https://pypi.org/simple/wrds2pg/) (requires-python:>=3) 2026-02-09T03:14:57,459 Found link https://files.pythonhosted.org/packages/7f/ae/a9479ffa558cb219a91c2233d27c8cb0a1151361563f417f9a49414f9a9a/wrds2pg-1.0.15.tar.gz (from https://pypi.org/simple/wrds2pg/) (requires-python:>=3), version: 1.0.15 2026-02-09T03:14:57,460 Skipping link: No binaries permitted for wrds2pg: https://files.pythonhosted.org/packages/bd/a2/1d66cc227f78fb727160e17d625347dd9ce5a4934e9dc670946b36cb4a92/wrds2pg-1.0.16-py3-none-any.whl (from https://pypi.org/simple/wrds2pg/) (requires-python:>=3) 2026-02-09T03:14:57,461 Found link https://files.pythonhosted.org/packages/ec/17/b23b515c3360befddb0e907abe4226ddfdd0573d7924902fc835f9619fce/wrds2pg-1.0.16.tar.gz (from https://pypi.org/simple/wrds2pg/) (requires-python:>=3), version: 1.0.16 2026-02-09T03:14:57,462 Skipping link: No binaries permitted for wrds2pg: https://files.pythonhosted.org/packages/49/e4/64ec56d95ae7ca0c1fe4b799b5754885b5b8c9d8142d6467a146b098ca35/wrds2pg-1.0.17-py3-none-any.whl (from https://pypi.org/simple/wrds2pg/) (requires-python:>=3) 2026-02-09T03:14:57,463 Found link https://files.pythonhosted.org/packages/75/70/98e83341d542d3326bce285d748f86da9228a911370d23255e177dbe3789/wrds2pg-1.0.17.tar.gz (from https://pypi.org/simple/wrds2pg/) (requires-python:>=3), version: 1.0.17 2026-02-09T03:14:57,463 Skipping link: No binaries permitted for wrds2pg: https://files.pythonhosted.org/packages/88/8d/834a67d927ed1035f5b44fdf0756a52bf6c7e5e6dd00bbc84a0c3fbc31bd/wrds2pg-1.0.18-py3-none-any.whl (from https://pypi.org/simple/wrds2pg/) (requires-python:>=3) 2026-02-09T03:14:57,464 Found link https://files.pythonhosted.org/packages/89/ee/528ff63a2445d7054239dd15a2dcf61a8e38dfdddf15ea922fb2d5f4fb3b/wrds2pg-1.0.18.tar.gz (from https://pypi.org/simple/wrds2pg/) (requires-python:>=3), version: 1.0.18 2026-02-09T03:14:57,465 Skipping link: No binaries permitted for wrds2pg: https://files.pythonhosted.org/packages/7e/02/034253d7a78408fc49066aa8b18b8c3551ed8048c86be057f59273d88b98/wrds2pg-1.0.19-py3-none-any.whl (from https://pypi.org/simple/wrds2pg/) (requires-python:>=3) 2026-02-09T03:14:57,465 Found link https://files.pythonhosted.org/packages/62/f5/b9ecfd4c1bd880f989962d37c49eec1d2772088a2185aa089ac972cb56ca/wrds2pg-1.0.19.tar.gz (from https://pypi.org/simple/wrds2pg/) (requires-python:>=3), version: 1.0.19 2026-02-09T03:14:57,466 Skipping link: No binaries permitted for wrds2pg: https://files.pythonhosted.org/packages/1e/c9/7e25410937513695c83098cdd4ae2444f75d17ec0136f8d3e7b11cbb4774/wrds2pg-1.0.20-py3-none-any.whl (from https://pypi.org/simple/wrds2pg/) (requires-python:>=3) 2026-02-09T03:14:57,467 Found link https://files.pythonhosted.org/packages/46/0b/8302005418956f8f63cb59c0af8484a1af4bfee961f142d653047184dc95/wrds2pg-1.0.20.tar.gz (from https://pypi.org/simple/wrds2pg/) (requires-python:>=3), version: 1.0.20 2026-02-09T03:14:57,469 Skipping link: No binaries permitted for wrds2pg: https://files.pythonhosted.org/packages/c0/c1/c85866829efe728ce4b7efe13acfe2853ba0e9a4b9db031870c11a5c05e7/wrds2pg-1.0.21-py3-none-any.whl (from https://pypi.org/simple/wrds2pg/) (requires-python:>=3) 2026-02-09T03:14:57,470 Found link https://files.pythonhosted.org/packages/7a/f6/ed1edc24bed4c3637625a06ede755f8b8cea5fcff8e5e571b83d577b6249/wrds2pg-1.0.21.tar.gz (from https://pypi.org/simple/wrds2pg/) (requires-python:>=3), version: 1.0.21 2026-02-09T03:14:57,471 Skipping link: No binaries permitted for wrds2pg: https://files.pythonhosted.org/packages/0e/e6/8a32b9a2d443a03ae9568a7bb49610fea1b01e834ee29fe7edaf2be7c928/wrds2pg-1.0.22-py3-none-any.whl (from https://pypi.org/simple/wrds2pg/) (requires-python:>=3) 2026-02-09T03:14:57,472 Found link https://files.pythonhosted.org/packages/b2/74/4fb8f203d6e29830f73b747d1fbc0137b1051b1f227e99adc8e7c1ff304e/wrds2pg-1.0.22.tar.gz (from https://pypi.org/simple/wrds2pg/) (requires-python:>=3), version: 1.0.22 2026-02-09T03:14:57,473 Skipping link: No binaries permitted for wrds2pg: https://files.pythonhosted.org/packages/0d/fe/17ec0fbf04f828dfb33ee28087c99f8a2cb3b88c106c8f4b1dccf170edd5/wrds2pg-1.0.23-py3-none-any.whl (from https://pypi.org/simple/wrds2pg/) (requires-python:>=3) 2026-02-09T03:14:57,473 Found link https://files.pythonhosted.org/packages/25/5d/38b9f9e952975898c2c79b1c76afbe5f7b2d78f9b28db3a65cda30e49bc5/wrds2pg-1.0.23.tar.gz (from https://pypi.org/simple/wrds2pg/) (requires-python:>=3), version: 1.0.23 2026-02-09T03:14:57,474 Skipping link: No binaries permitted for wrds2pg: https://files.pythonhosted.org/packages/3d/56/52a54ccca6cb47522854c34d05cb333588fa3fd01854575995ff5b249139/wrds2pg-1.0.24-py3-none-any.whl (from https://pypi.org/simple/wrds2pg/) (requires-python:>=3) 2026-02-09T03:14:57,475 Found link https://files.pythonhosted.org/packages/46/8f/65d741e63fa2bf4cb8de88769e55d9f07e45266ae95f5b3db7ae1cd77403/wrds2pg-1.0.24.tar.gz (from https://pypi.org/simple/wrds2pg/) (requires-python:>=3), version: 1.0.24 2026-02-09T03:14:57,476 Skipping link: No binaries permitted for wrds2pg: https://files.pythonhosted.org/packages/9f/02/d7768f1a97f8917022645706118e976fc63dc6bf9150434d2f49891b14e9/wrds2pg-1.0.25-py3-none-any.whl (from https://pypi.org/simple/wrds2pg/) (requires-python:>=3) 2026-02-09T03:14:57,476 Found link https://files.pythonhosted.org/packages/f2/e7/3e5775d0c26ea942095df0c1a880d4dd0c897ffa61e774824acf20e9d1d6/wrds2pg-1.0.25.tar.gz (from https://pypi.org/simple/wrds2pg/) (requires-python:>=3), version: 1.0.25 2026-02-09T03:14:57,477 Skipping link: No binaries permitted for wrds2pg: https://files.pythonhosted.org/packages/d2/6b/745d21e21f68fb715dc1ad1b046ea8031189fea06bb7d42d48ffa55e3a8a/wrds2pg-1.0.26-py3-none-any.whl (from https://pypi.org/simple/wrds2pg/) (requires-python:>=3) 2026-02-09T03:14:57,478 Found link https://files.pythonhosted.org/packages/3a/a5/5181ce6c86c2059025738941c88f37c22bfcd528f2932281c9d779f422b4/wrds2pg-1.0.26.tar.gz (from https://pypi.org/simple/wrds2pg/) (requires-python:>=3), version: 1.0.26 2026-02-09T03:14:57,478 Skipping link: No binaries permitted for wrds2pg: https://files.pythonhosted.org/packages/d6/32/3bb968da3f4cbe924ee22fedc5ffb1b6111ecb910f68c9905a201770b15d/wrds2pg-1.0.27-py3-none-any.whl (from https://pypi.org/simple/wrds2pg/) (requires-python:>=3) 2026-02-09T03:14:57,479 Found link https://files.pythonhosted.org/packages/74/0a/7d02353b0ab90e16e9e25c24b22479b5e970eb71bd0112e3551b82b8a83d/wrds2pg-1.0.27.tar.gz (from https://pypi.org/simple/wrds2pg/) (requires-python:>=3), version: 1.0.27 2026-02-09T03:14:57,480 Skipping link: No binaries permitted for wrds2pg: https://files.pythonhosted.org/packages/ff/9f/82752980530af457c4e98ddb4bf9e93cd0ba17aa518a2a58beacc82ac394/wrds2pg-1.0.29-py3-none-any.whl (from https://pypi.org/simple/wrds2pg/) (requires-python:>=3) 2026-02-09T03:14:57,481 Found link https://files.pythonhosted.org/packages/87/0a/a1af8143105d2af6548cd97485028be675040e1c2b261df5ecb553be2323/wrds2pg-1.0.29.tar.gz (from https://pypi.org/simple/wrds2pg/) (requires-python:>=3), version: 1.0.29 2026-02-09T03:14:57,482 Skipping link: No binaries permitted for wrds2pg: https://files.pythonhosted.org/packages/03/4a/fd7020a66ccc73cdbfaa2fe2070cd6a1d59ca48efb6e39f3c0712816fa1a/wrds2pg-1.0.31-py3-none-any.whl (from https://pypi.org/simple/wrds2pg/) (requires-python:>=3) 2026-02-09T03:14:57,483 Found link https://files.pythonhosted.org/packages/66/b2/0d164b83f6c545d3e75d0037ff9118d5cb1a825fadc3608f1d624b913460/wrds2pg-1.0.31.tar.gz (from https://pypi.org/simple/wrds2pg/) (requires-python:>=3), version: 1.0.31 2026-02-09T03:14:57,483 Skipping link: No binaries permitted for wrds2pg: https://files.pythonhosted.org/packages/34/7b/ef1bd36ab0833938f664b4ab047e6fd2ede9226685e64271eec9943cea4e/wrds2pg-1.0.32-py3-none-any.whl (from https://pypi.org/simple/wrds2pg/) (requires-python:>=3) 2026-02-09T03:14:57,484 Found link https://files.pythonhosted.org/packages/3d/a3/e63421282263bef7be4a25e1e0b8cba7402a26c5f1af49a3d70e35889eb1/wrds2pg-1.0.32.tar.gz (from https://pypi.org/simple/wrds2pg/) (requires-python:>=3), version: 1.0.32 2026-02-09T03:14:57,485 Skipping link: No binaries permitted for wrds2pg: https://files.pythonhosted.org/packages/a2/60/84bfe64890bf01ddd6651cb8663ac35ecb6b482126655d8af7de89cec022/wrds2pg-1.0.34-py3-none-any.whl (from https://pypi.org/simple/wrds2pg/) (requires-python:>=3) 2026-02-09T03:14:57,486 Found link https://files.pythonhosted.org/packages/fd/88/dbc48fb8bf6c91971feda68c7cb99db1b966c561cab792c303a2809fdb1d/wrds2pg-1.0.34.tar.gz (from https://pypi.org/simple/wrds2pg/) (requires-python:>=3), version: 1.0.34 2026-02-09T03:14:57,487 Skipping link: No binaries permitted for wrds2pg: https://files.pythonhosted.org/packages/2c/42/fa5e9a3feec1bbff8ed821c487a40050e831f250f6507a23791ca03574e1/wrds2pg-1.0.35-py3-none-any.whl (from https://pypi.org/simple/wrds2pg/) (requires-python:>=3) 2026-02-09T03:14:57,488 Found link https://files.pythonhosted.org/packages/0b/89/eb6c5a7ed0c8a0339f1d9f865bf8f4234958aa63903e02dc465f9037d34e/wrds2pg-1.0.35.tar.gz (from https://pypi.org/simple/wrds2pg/) (requires-python:>=3), version: 1.0.35 2026-02-09T03:14:57,489 Fetching project page and analyzing links: https://www.piwheels.org/simple/wrds2pg/ 2026-02-09T03:14:57,489 Getting page https://www.piwheels.org/simple/wrds2pg/ 2026-02-09T03:14:57,490 Found index url https://www.piwheels.org/simple 2026-02-09T03:14:57,645 Fetched page https://www.piwheels.org/simple/wrds2pg/ as text/html 2026-02-09T03:14:57,656 Skipping link: No binaries permitted for wrds2pg: https://archive1.piwheels.org/simple/wrds2pg/wrds2pg-1.0.34-py3-none-any.whl#sha256=7dd87cd8bddc2f3528786766dafb0170d1ac1e019f78541ad4e8a56f4b808333 (from https://www.piwheels.org/simple/wrds2pg/) (requires-python:>=3) 2026-02-09T03:14:57,657 Skipping link: No binaries permitted for wrds2pg: https://archive1.piwheels.org/simple/wrds2pg/wrds2pg-1.0.32-py3-none-any.whl#sha256=bd0cca77301373d4cf8ef3427de7d049b746d4bb7e25daf075e12cac9351b667 (from https://www.piwheels.org/simple/wrds2pg/) (requires-python:>=3) 2026-02-09T03:14:57,658 Skipping link: No binaries permitted for wrds2pg: https://archive1.piwheels.org/simple/wrds2pg/wrds2pg-1.0.31-py3-none-any.whl#sha256=a04958838f7f40abf121d7d63e718216d460e62784b637d82d2c0d708e935d70 (from https://www.piwheels.org/simple/wrds2pg/) (requires-python:>=3) 2026-02-09T03:14:57,658 Skipping link: No binaries permitted for wrds2pg: https://archive1.piwheels.org/simple/wrds2pg/wrds2pg-1.0.29-py3-none-any.whl#sha256=9f2187c5860343b907a4512b1d3b18e812e7808483c1590824f23ec9906d3264 (from https://www.piwheels.org/simple/wrds2pg/) (requires-python:>=3) 2026-02-09T03:14:57,659 Skipping link: No binaries permitted for wrds2pg: https://archive1.piwheels.org/simple/wrds2pg/wrds2pg-1.0.27-py3-none-any.whl#sha256=9223e74c2cf7a6963dbc89981ef07efd322784dbd6bb2cc34f41285784657ddf (from https://www.piwheels.org/simple/wrds2pg/) (requires-python:>=3) 2026-02-09T03:14:57,659 Skipping link: No binaries permitted for wrds2pg: https://archive1.piwheels.org/simple/wrds2pg/wrds2pg-1.0.26-py3-none-any.whl#sha256=bf4c9aee7ec6db12956e51469680fba7f955e161359dcf50983608d19fb50d2b (from https://www.piwheels.org/simple/wrds2pg/) (requires-python:>=3) 2026-02-09T03:14:57,660 Skipping link: No binaries permitted for wrds2pg: https://archive1.piwheels.org/simple/wrds2pg/wrds2pg-1.0.25-py3-none-any.whl#sha256=ef9a415cb88f8ca6c0fb4a27abdec4f3db793e804c37d98f75b66abab20cb88b (from https://www.piwheels.org/simple/wrds2pg/) (requires-python:>=3) 2026-02-09T03:14:57,661 Skipping link: No binaries permitted for wrds2pg: https://archive1.piwheels.org/simple/wrds2pg/wrds2pg-1.0.24-py3-none-any.whl#sha256=7384c63ede6fffe6aa9764b8f4688ec660d35d97879587a4f6ef223ccca565bc (from https://www.piwheels.org/simple/wrds2pg/) (requires-python:>=3) 2026-02-09T03:14:57,661 Skipping link: No binaries permitted for wrds2pg: https://archive1.piwheels.org/simple/wrds2pg/wrds2pg-1.0.23-py3-none-any.whl#sha256=c3d00616b05071c6d571976d1aac35b5bd12e89663a8e6c3cd8ce7d6bbb2be5b (from https://www.piwheels.org/simple/wrds2pg/) (requires-python:>=3) 2026-02-09T03:14:57,662 Skipping link: No binaries permitted for wrds2pg: https://archive1.piwheels.org/simple/wrds2pg/wrds2pg-1.0.22-py3-none-any.whl#sha256=f65676481292ee2d04c0a56929cbb35c1827cabd9bd3bd9fcb13c0ef4c3148a0 (from https://www.piwheels.org/simple/wrds2pg/) (requires-python:>=3) 2026-02-09T03:14:57,662 Skipping link: No binaries permitted for wrds2pg: https://archive1.piwheels.org/simple/wrds2pg/wrds2pg-1.0.21-py3-none-any.whl#sha256=6c23f3276d89be161c84e241077eef4e7c11506e74646c5c118aa2002f6ab2f0 (from https://www.piwheels.org/simple/wrds2pg/) (requires-python:>=3) 2026-02-09T03:14:57,663 Skipping link: No binaries permitted for wrds2pg: https://archive1.piwheels.org/simple/wrds2pg/wrds2pg-1.0.20-py3-none-any.whl#sha256=ed305eccfd7f2b37f24ac42a6ed548a20b2bbe7eaed050bb37ebb2f672dea1e0 (from https://www.piwheels.org/simple/wrds2pg/) (requires-python:>=3) 2026-02-09T03:14:57,664 Skipping link: No binaries permitted for wrds2pg: https://archive1.piwheels.org/simple/wrds2pg/wrds2pg-1.0.19-py3-none-any.whl#sha256=6979a3bb64e7c881ec3403e97c60d351155ef3d5f083149e785180b8f9929daa (from https://www.piwheels.org/simple/wrds2pg/) (requires-python:>=3) 2026-02-09T03:14:57,664 Skipping link: No binaries permitted for wrds2pg: https://archive1.piwheels.org/simple/wrds2pg/wrds2pg-1.0.18-py3-none-any.whl#sha256=0970135447d68b94dc197fa962f947d92967207bac9a08776eb9b1690918d523 (from https://www.piwheels.org/simple/wrds2pg/) (requires-python:>=3) 2026-02-09T03:14:57,665 Skipping link: No binaries permitted for wrds2pg: https://archive1.piwheels.org/simple/wrds2pg/wrds2pg-1.0.17-py3-none-any.whl#sha256=381f568a66ebb1a992cc9ca11b938ef34d98788ce84e7367b53b53fe2564326d (from https://www.piwheels.org/simple/wrds2pg/) (requires-python:>=3) 2026-02-09T03:14:57,665 Skipping link: No binaries permitted for wrds2pg: https://archive1.piwheels.org/simple/wrds2pg/wrds2pg-1.0.16-py3-none-any.whl#sha256=b42a003e724ff3690da66991638a7180c1b39d37529ed63df71168693a20f532 (from https://www.piwheels.org/simple/wrds2pg/) (requires-python:>=3) 2026-02-09T03:14:57,665 Skipping link: No binaries permitted for wrds2pg: https://archive1.piwheels.org/simple/wrds2pg/wrds2pg-1.0.15-py3-none-any.whl#sha256=d8d869592634a4a6230d73cb1fd31a0b954cd53251250d096d8c28a269527d0c (from https://www.piwheels.org/simple/wrds2pg/) (requires-python:>=3) 2026-02-09T03:14:57,666 Skipping link: No binaries permitted for wrds2pg: https://archive1.piwheels.org/simple/wrds2pg/wrds2pg-1.0.14-py3-none-any.whl#sha256=53fe3952f56473e22acc56e2dfd684dcf50d6e10ae4df2b9564d783a0323f3cc (from https://www.piwheels.org/simple/wrds2pg/) (requires-python:>=3) 2026-02-09T03:14:57,667 Skipping link: No binaries permitted for wrds2pg: https://archive1.piwheels.org/simple/wrds2pg/wrds2pg-1.0.13-py3-none-any.whl#sha256=dbb6b8140842cdf6dd074f31a847e5a7d6901706af211e0aff676dfb0a2dc5d5 (from https://www.piwheels.org/simple/wrds2pg/) (requires-python:>=3) 2026-02-09T03:14:57,667 Skipping link: No binaries permitted for wrds2pg: https://archive1.piwheels.org/simple/wrds2pg/wrds2pg-1.0.12-py3-none-any.whl#sha256=a49ec8094e122aa39eaf87b3eaf04951ba358b7de814db7232d3d23db0ee7321 (from https://www.piwheels.org/simple/wrds2pg/) (requires-python:>=3) 2026-02-09T03:14:57,668 Skipping link: No binaries permitted for wrds2pg: https://archive1.piwheels.org/simple/wrds2pg/wrds2pg-1.0.11-py3-none-any.whl#sha256=10c887b1d51113a546d42a5ff5c773acceb67e44b4dbc7f2c8e185e146bdbe3b (from https://www.piwheels.org/simple/wrds2pg/) (requires-python:>=3) 2026-02-09T03:14:57,668 Skipping link: No binaries permitted for wrds2pg: https://archive1.piwheels.org/simple/wrds2pg/wrds2pg-1.0.10-py3-none-any.whl#sha256=d7a91f736c8b935d21aaef6d5b729044c3b27fa3fe740e21bf54aeece56e3f13 (from https://www.piwheels.org/simple/wrds2pg/) (requires-python:>=3) 2026-02-09T03:14:57,669 Skipping link: No binaries permitted for wrds2pg: https://archive1.piwheels.org/simple/wrds2pg/wrds2pg-1.0.9-py3-none-any.whl#sha256=544627010f3f3125f38a8b442475cb841a1e7b63e9644d7ed1c98245e5e8ffeb (from https://www.piwheels.org/simple/wrds2pg/) (requires-python:>=3) 2026-02-09T03:14:57,670 Skipping link: No binaries permitted for wrds2pg: https://archive1.piwheels.org/simple/wrds2pg/wrds2pg-1.0.8-py3-none-any.whl#sha256=4bca52110d40065aada2ca48ed090ab85a34add55c09c804f9586fd454ae3205 (from https://www.piwheels.org/simple/wrds2pg/) (requires-python:>=3) 2026-02-09T03:14:57,670 Skipping link: No binaries permitted for wrds2pg: https://archive1.piwheels.org/simple/wrds2pg/wrds2pg-1.0.6-py3-none-any.whl#sha256=ba63b46b31e7f735db37bebf8ad301e976085a10628fcb01be40dbc9325267f9 (from https://www.piwheels.org/simple/wrds2pg/) (requires-python:>=3) 2026-02-09T03:14:57,671 Skipping link: No binaries permitted for wrds2pg: https://archive1.piwheels.org/simple/wrds2pg/wrds2pg-1.0.5-py3-none-any.whl#sha256=21abfd3fabf17eba315d7110979b9ed42f54051f205d859da68568b4699e291b (from https://www.piwheels.org/simple/wrds2pg/) (requires-python:>=3) 2026-02-09T03:14:57,672 Skipping link: No binaries permitted for wrds2pg: https://archive1.piwheels.org/simple/wrds2pg/wrds2pg-1.0.4-py3-none-any.whl#sha256=8197d920152df0686f6cd8ca31af2f46820802334c63a0991ca0ddd1c215c909 (from https://www.piwheels.org/simple/wrds2pg/) (requires-python:>=3) 2026-02-09T03:14:57,672 Skipping link: No binaries permitted for wrds2pg: https://archive1.piwheels.org/simple/wrds2pg/wrds2pg-1.0.3-py3-none-any.whl#sha256=12de805441cbd63af3d66e6a2c651f8f7d15e77dc5c3714035cd450ea1708785 (from https://www.piwheels.org/simple/wrds2pg/) (requires-python:>=3) 2026-02-09T03:14:57,672 Skipping link: No binaries permitted for wrds2pg: https://archive1.piwheels.org/simple/wrds2pg/wrds2pg-1.0.2-py3-none-any.whl#sha256=73be788eb7aee9fce430717615f683c7f912a817238a33697f41f26b85726147 (from https://www.piwheels.org/simple/wrds2pg/) (requires-python:>=3) 2026-02-09T03:14:57,673 Skipping link: No binaries permitted for wrds2pg: https://archive1.piwheels.org/simple/wrds2pg/wrds2pg-1.0.0-py3-none-any.whl#sha256=89d17b1aae3ffc78c0c02e87a2f663b83648460da7a8406027d62ae7c9ceb164 (from https://www.piwheels.org/simple/wrds2pg/) (requires-python:>=3) 2026-02-09T03:14:57,673 Skipping link: No binaries permitted for wrds2pg: https://archive1.piwheels.org/simple/wrds2pg/wrds2pg-0.1.24-py3-none-any.whl#sha256=8bfd551d615500576f778b977f5771b5011d87a962c1d43e8b7aae7c42f6bafb (from https://www.piwheels.org/simple/wrds2pg/) (requires-python:>=3) 2026-02-09T03:14:57,674 Skipping link: No binaries permitted for wrds2pg: https://archive1.piwheels.org/simple/wrds2pg/wrds2pg-0.1.23-py3-none-any.whl#sha256=24b5f15364dc798de6d21d3f2d117ce1d7c6e6e0768e8268e7b196943d36d1bd (from https://www.piwheels.org/simple/wrds2pg/) (requires-python:>=3) 2026-02-09T03:14:57,675 Skipping link: No binaries permitted for wrds2pg: https://archive1.piwheels.org/simple/wrds2pg/wrds2pg-0.1.22-py3-none-any.whl#sha256=bfa8fbfc09819fe5524153f82e6fc631069dab5096b0013b03aae5600346a2ab (from https://www.piwheels.org/simple/wrds2pg/) (requires-python:>=3) 2026-02-09T03:14:57,675 Skipping link: No binaries permitted for wrds2pg: https://archive1.piwheels.org/simple/wrds2pg/wrds2pg-0.1.21-py3-none-any.whl#sha256=f9ab26b51603e3bf82196a52410a990d95685ee6bedc4a88572340686d09affc (from https://www.piwheels.org/simple/wrds2pg/) (requires-python:>=3) 2026-02-09T03:14:57,676 Skipping link: No binaries permitted for wrds2pg: https://archive1.piwheels.org/simple/wrds2pg/wrds2pg-0.1.20-py3-none-any.whl#sha256=bdca9bdaa2e54c59f2120c519804dc52bf271a35e03a80dd8b1f65f961f28ff6 (from https://www.piwheels.org/simple/wrds2pg/) (requires-python:>=3) 2026-02-09T03:14:57,677 Skipping link: No binaries permitted for wrds2pg: https://archive1.piwheels.org/simple/wrds2pg/wrds2pg-0.1.18-py3-none-any.whl#sha256=896ccb2badb2923b55bb6fbe62a8d74604733c8c9c0181b144e2e2f9aabb629c (from https://www.piwheels.org/simple/wrds2pg/) (requires-python:>=3) 2026-02-09T03:14:57,677 Skipping link: No binaries permitted for wrds2pg: https://archive1.piwheels.org/simple/wrds2pg/wrds2pg-0.1.17-py3-none-any.whl#sha256=3471efec23d7b15c86751d79adc43cb425d7ad46016afc247f1e1992b78083b9 (from https://www.piwheels.org/simple/wrds2pg/) (requires-python:>=3) 2026-02-09T03:14:57,678 Skipping link: not a file: https://www.piwheels.org/simple/wrds2pg/ 2026-02-09T03:14:57,679 Skipping link: not a file: https://pypi.org/simple/wrds2pg/ 2026-02-09T03:14:57,702 Given no hashes to check 1 links for project 'wrds2pg': discarding no candidates 2026-02-09T03:14:57,720 Collecting wrds2pg==1.0.35 2026-02-09T03:14:57,722 Created temporary directory: /tmp/pip-unpack-lzou1tf6 2026-02-09T03:14:57,929 Downloading wrds2pg-1.0.35.tar.gz (15 kB) 2026-02-09T03:14:57,964 Added wrds2pg==1.0.35 from https://files.pythonhosted.org/packages/0b/89/eb6c5a7ed0c8a0339f1d9f865bf8f4234958aa63903e02dc465f9037d34e/wrds2pg-1.0.35.tar.gz to build tracker '/tmp/pip-build-tracker-15gcyw87' 2026-02-09T03:14:57,968 Created temporary directory: /tmp/pip-build-env-8eup_jhs 2026-02-09T03:14:57,972 Installing build dependencies: started 2026-02-09T03:14:57,973 Running command pip subprocess to install build dependencies 2026-02-09T03:14:59,317 Using pip 23.0.1 from /usr/lib/python3/dist-packages/pip (python 3.11) 2026-02-09T03:14:59,865 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-02-09T03:14:59,888 Looking in indexes: https://pypi.org/simple, https://www.piwheels.org/simple 2026-02-09T03:15:01,689 Collecting setuptools>=42 2026-02-09T03:15:01,709 Using cached setuptools-82.0.0-py3-none-any.whl (1.0 MB) 2026-02-09T03:15:01,982 Collecting wheel 2026-02-09T03:15:01,988 Using cached wheel-0.46.3-py3-none-any.whl (30 kB) 2026-02-09T03:15:02,168 Collecting packaging>=24.0 2026-02-09T03:15:02,174 Using cached packaging-26.0-py3-none-any.whl (74 kB) 2026-02-09T03:15:05,165 Installing collected packages: setuptools, packaging, wheel 2026-02-09T03:15:08,498 Creating /tmp/pip-build-env-8eup_jhs/overlay/local/bin 2026-02-09T03:15:08,500 changing mode of /tmp/pip-build-env-8eup_jhs/overlay/local/bin/wheel to 755 2026-02-09T03:15:08,522 Successfully installed packaging-26.0 setuptools-82.0.0 wheel-0.46.3 2026-02-09T03:15:08,816 Installing build dependencies: finished with status 'done' 2026-02-09T03:15:08,821 Getting requirements to build wheel: started 2026-02-09T03:15:08,823 Running command Getting requirements to build wheel 2026-02-09T03:15:09,399 /tmp/pip-build-env-8eup_jhs/overlay/local/lib/python3.11/dist-packages/setuptools/dist.py:765: SetuptoolsDeprecationWarning: License classifiers are deprecated. 2026-02-09T03:15:09,399 !! 2026-02-09T03:15:09,400 ******************************************************************************** 2026-02-09T03:15:09,400 Please consider removing the following classifiers in favor of a SPDX license expression: 2026-02-09T03:15:09,402 License :: OSI Approved :: MIT License 2026-02-09T03:15:09,403 See https://packaging.python.org/en/latest/guides/writing-pyproject-toml/#license for details. 2026-02-09T03:15:09,403 ******************************************************************************** 2026-02-09T03:15:09,404 !! 2026-02-09T03:15:09,405 self._finalize_license_expression() 2026-02-09T03:15:09,424 # Library to convert WRDS SAS data 2026-02-09T03:15:09,425 This package was created to convert [WRDS](https://wrds-web.wharton.upenn.edu/wrds/) SAS data to modern data formats. 2026-02-09T03:15:09,426 This package has three major functions, one for each of three popular data formats. 2026-02-09T03:15:09,427 - `wrds_update()`: Imports WRDS SAS data into a PostgreSQL database. 2026-02-09T03:15:09,428 - `wrds_update_pq()`: Converts WRDS SAS data to parquet files. 2026-02-09T03:15:09,428 - `wrds_update_csv()`: Converts WRDS SAS data to gzipped CSV files. 2026-02-09T03:15:09,430 This package was primarily designed to handle WRDS data, but some support is provided for importing a local SAS file (`*.sas7dbat`) into a PostgreSQL database. 2026-02-09T03:15:09,431 ## Requirements 2026-02-09T03:15:09,432 ### 1. Python 2026-02-09T03:15:09,432 The software uses Python 3 and depends on Pandas, SQLAlchemy and Paramiko. In addition, the Python scripts generally interact with PostgreSQL using SQLAlchemy and the [Psycopg](http://initd.org/psycopg/) library. 2026-02-09T03:15:09,433 These dependencies are installed when you use Pip (see instructions below). 2026-02-09T03:15:09,434 ### 2. A WRDS ID 2026-02-09T03:15:09,434 To use public-key authentication to access WRDS, follow hints taken from [here](https://debian-administration.org/article/152/Password-less_logins_with_OpenSSH) to set up a public key. 2026-02-09T03:15:09,434 Copy that key to the WRDS server from the terminal on your computer. 2026-02-09T03:15:09,435 (Note that this code assumes you have a directory `.ssh` in your home directory. If not, log into WRDS via SSH, then type `mkdir ~/.ssh` to create this.) 2026-02-09T03:15:09,435 Here's code (for me) to create the key and send it to WRDS: 2026-02-09T03:15:09,436 ```bash 2026-02-09T03:15:09,437 ssh-keygen -t rsa 2026-02-09T03:15:09,437 cat ~/.ssh/id_rsa.pub | ssh iangow@wrds-cloud.wharton.upenn.edu "cat >> ~/.ssh/authorized_keys" 2026-02-09T03:15:09,437 ``` 2026-02-09T03:15:09,438 Use an empty passphrase in setting up the key so that the scripts can run without user intervention. 2026-02-09T03:15:09,439 ### 3. PostgreSQL 2026-02-09T03:15:09,440 For the `wrds_update()` function, you should have write access to a PostgreSQL database to store the data. 2026-02-09T03:15:09,441 ### 4. Environment variables 2026-02-09T03:15:09,441 Environment variables that the code can use include: 2026-02-09T03:15:09,442 - `PGDATABASE`: The name of the PostgreSQL database you use. 2026-02-09T03:15:09,443 - `PGUSER`: Your username on the PostgreSQL database. 2026-02-09T03:15:09,443 - `PGHOST`: Where the PostgreSQL database is to be found (this will be `localhost` if its on the same machine as you're running the code on) 2026-02-09T03:15:09,444 - `WRDS_ID`: Your [WRDS](https://wrds-web.wharton.upenn.edu/wrds/) ID. 2026-02-09T03:15:09,444 - `DATA_DIR`: The local repository for parquet files. 2026-02-09T03:15:09,445 - `CSV_DIR`: The local repository for compressed CSV files. 2026-02-09T03:15:09,446 Once can set these environment variables in (say) `~/.zprofile`: 2026-02-09T03:15:09,447 ```bash 2026-02-09T03:15:09,448 export PGHOST="localhost" 2026-02-09T03:15:09,448 export PGDATABASE="crsp" 2026-02-09T03:15:09,449 export WRDS_ID="iangow" 2026-02-09T03:15:09,449 export PGUSER="igow" 2026-02-09T03:15:09,450 ``` 2026-02-09T03:15:09,451 ## Using the function `wrds_update`. 2026-02-09T03:15:09,452 Two arguments `table_name` and `schema` are required. 2026-02-09T03:15:09,453 ### 1. WRDS Settings 2026-02-09T03:15:09,454 Set `WRDS_ID` using either `wrds_id=your_wrds_id` in the function call or the environment variable `WRDS_ID`. 2026-02-09T03:15:09,455 ### 2. Environment variables 2026-02-09T03:15:09,455 The `wrds_udpate()` function will use the environment variables `PGHOST`, `PGDATABASE`, and `PGUSER` if you If you have set them. Otherwise, you need to provide values as arguments to `wrds_udpate()`. Default `PGPORT` is`5432`. 2026-02-09T03:15:09,457 ### 3. Table settings 2026-02-09T03:15:09,457 To tailor your request, specify the following arguments: 2026-02-09T03:15:09,458 - `fix_missing`: set to `True` to fix missing values. This addresses special missign values, which SAS's `PROC EXPORT` dumps as strings. Default value is `False`. 2026-02-09T03:15:09,459 - `fix_cr`: set to `True` to fix characters. Default value is `False`. 2026-02-09T03:15:09,459 - `drop`: add column names to be dropped (e.g., `drop="id name"` will drop columns `id` and `name`). 2026-02-09T03:15:09,460 - `obs`: add maxium number of observations (e.g., `obs=10` will import the first 10 rows from the table on WRDS). 2026-02-09T03:15:09,461 - `rename`: rename columns (e.g., `rename="fee=mngt_fee"` renames `fee` to `mngt_fee`). 2026-02-09T03:15:09,461 - `force`: set to `True` to force update. Default value is `False`. 2026-02-09T03:15:09,462 ## Importing SAS data into PostgreSQL 2026-02-09T03:15:09,463 The software can also upload SAS file directly to PostgreSQL. 2026-02-09T03:15:09,463 You need to have local SAS in order to use this function. 2026-02-09T03:15:09,464 Use `fpath` to specify the path to the file to be imported 2026-02-09T03:15:09,464 ### Examples 2026-02-09T03:15:09,465 Here are some examples. 2026-02-09T03:15:09,466 If you are at the home directory of this git repo, you can import and use the software as shown below. 2026-02-09T03:15:09,467 To install it from Github: 2026-02-09T03:15:09,467 ```bash 2026-02-09T03:15:09,468 sudo -H pip3 install git+https://github.com/iangow/wrds2pg --upgrade 2026-02-09T03:15:09,468 ``` 2026-02-09T03:15:09,469 This software is also available from PyPI. To install it from [PyPI](https://pypi.org/project/wrds2pg/): 2026-02-09T03:15:09,470 ```bash 2026-02-09T03:15:09,470 pip3 install wrds2pg 2026-02-09T03:15:09,471 ``` 2026-02-09T03:15:09,471 Example usage: 2026-02-09T03:15:09,472 ```python 2026-02-09T03:15:09,472 from wrds2pg import wrds_update 2026-02-09T03:15:09,473 # 1. Download crsp.mcti from wrds and upload to pg as crps.mcti 2026-02-09T03:15:09,473 # Simplest version 2026-02-09T03:15:09,474 wrds_update(table_name="mcti", schema="crsp") 2026-02-09T03:15:09,475 # Tailored arguments 2026-02-09T03:15:09,475 wrds_update(table_name="mcti", schema="crsp", host=your_pghost, 2026-02-09T03:15:09,476 dbname=your_pg_database, 2026-02-09T03:15:09,476 fix_missing=True, fix_cr=True, drop="b30ret b30ind", obs=10, 2026-02-09T03:15:09,477 rename="caldt=calendar_date", force=True) 2026-02-09T03:15:09,478 # 2. Upload test.sas7dbat to pg as crsp.mcti 2026-02-09T03:15:09,478 wrds_update(table_name="mcti", schema="crsp", fpath="your_path/test.sas7dbat") 2026-02-09T03:15:09,479 ``` 2026-02-09T03:15:09,480 ### Report bugs 2026-02-09T03:15:09,480 Author: Ian Gow, 2026-02-09T03:15:09,481 Contributors: Jingyu Zhang, , Evan Jo. 2026-02-09T03:15:09,482 running egg_info 2026-02-09T03:15:09,483 writing wrds2pg.egg-info/PKG-INFO 2026-02-09T03:15:09,484 writing dependency_links to wrds2pg.egg-info/dependency_links.txt 2026-02-09T03:15:09,485 writing requirements to wrds2pg.egg-info/requires.txt 2026-02-09T03:15:09,485 writing top-level names to wrds2pg.egg-info/top_level.txt 2026-02-09T03:15:09,486 reading manifest file 'wrds2pg.egg-info/SOURCES.txt' 2026-02-09T03:15:09,487 adding license file 'LICENCE' 2026-02-09T03:15:09,488 writing manifest file 'wrds2pg.egg-info/SOURCES.txt' 2026-02-09T03:15:09,569 Getting requirements to build wheel: finished with status 'done' 2026-02-09T03:15:09,573 Created temporary directory: /tmp/pip-modern-metadata-p9k9_sxd 2026-02-09T03:15:09,576 Preparing metadata (pyproject.toml): started 2026-02-09T03:15:09,578 Running command Preparing metadata (pyproject.toml) 2026-02-09T03:15:10,114 /tmp/pip-build-env-8eup_jhs/overlay/local/lib/python3.11/dist-packages/setuptools/dist.py:765: SetuptoolsDeprecationWarning: License classifiers are deprecated. 2026-02-09T03:15:10,114 !! 2026-02-09T03:15:10,115 ******************************************************************************** 2026-02-09T03:15:10,116 Please consider removing the following classifiers in favor of a SPDX license expression: 2026-02-09T03:15:10,117 License :: OSI Approved :: MIT License 2026-02-09T03:15:10,118 See https://packaging.python.org/en/latest/guides/writing-pyproject-toml/#license for details. 2026-02-09T03:15:10,118 ******************************************************************************** 2026-02-09T03:15:10,119 !! 2026-02-09T03:15:10,120 self._finalize_license_expression() 2026-02-09T03:15:10,153 # Library to convert WRDS SAS data 2026-02-09T03:15:10,155 This package was created to convert [WRDS](https://wrds-web.wharton.upenn.edu/wrds/) SAS data to modern data formats. 2026-02-09T03:15:10,155 This package has three major functions, one for each of three popular data formats. 2026-02-09T03:15:10,156 - `wrds_update()`: Imports WRDS SAS data into a PostgreSQL database. 2026-02-09T03:15:10,157 - `wrds_update_pq()`: Converts WRDS SAS data to parquet files. 2026-02-09T03:15:10,158 - `wrds_update_csv()`: Converts WRDS SAS data to gzipped CSV files. 2026-02-09T03:15:10,162 This package was primarily designed to handle WRDS data, but some support is provided for importing a local SAS file (`*.sas7dbat`) into a PostgreSQL database. 2026-02-09T03:15:10,165 ## Requirements 2026-02-09T03:15:10,166 ### 1. Python 2026-02-09T03:15:10,167 The software uses Python 3 and depends on Pandas, SQLAlchemy and Paramiko. In addition, the Python scripts generally interact with PostgreSQL using SQLAlchemy and the [Psycopg](http://initd.org/psycopg/) library. 2026-02-09T03:15:10,168 These dependencies are installed when you use Pip (see instructions below). 2026-02-09T03:15:10,168 ### 2. A WRDS ID 2026-02-09T03:15:10,169 To use public-key authentication to access WRDS, follow hints taken from [here](https://debian-administration.org/article/152/Password-less_logins_with_OpenSSH) to set up a public key. 2026-02-09T03:15:10,169 Copy that key to the WRDS server from the terminal on your computer. 2026-02-09T03:15:10,170 (Note that this code assumes you have a directory `.ssh` in your home directory. If not, log into WRDS via SSH, then type `mkdir ~/.ssh` to create this.) 2026-02-09T03:15:10,170 Here's code (for me) to create the key and send it to WRDS: 2026-02-09T03:15:10,171 ```bash 2026-02-09T03:15:10,171 ssh-keygen -t rsa 2026-02-09T03:15:10,172 cat ~/.ssh/id_rsa.pub | ssh iangow@wrds-cloud.wharton.upenn.edu "cat >> ~/.ssh/authorized_keys" 2026-02-09T03:15:10,172 ``` 2026-02-09T03:15:10,173 Use an empty passphrase in setting up the key so that the scripts can run without user intervention. 2026-02-09T03:15:10,174 ### 3. PostgreSQL 2026-02-09T03:15:10,175 For the `wrds_update()` function, you should have write access to a PostgreSQL database to store the data. 2026-02-09T03:15:10,176 ### 4. Environment variables 2026-02-09T03:15:10,177 Environment variables that the code can use include: 2026-02-09T03:15:10,178 - `PGDATABASE`: The name of the PostgreSQL database you use. 2026-02-09T03:15:10,178 - `PGUSER`: Your username on the PostgreSQL database. 2026-02-09T03:15:10,179 - `PGHOST`: Where the PostgreSQL database is to be found (this will be `localhost` if its on the same machine as you're running the code on) 2026-02-09T03:15:10,179 - `WRDS_ID`: Your [WRDS](https://wrds-web.wharton.upenn.edu/wrds/) ID. 2026-02-09T03:15:10,180 - `DATA_DIR`: The local repository for parquet files. 2026-02-09T03:15:10,180 - `CSV_DIR`: The local repository for compressed CSV files. 2026-02-09T03:15:10,181 Once can set these environment variables in (say) `~/.zprofile`: 2026-02-09T03:15:10,182 ```bash 2026-02-09T03:15:10,183 export PGHOST="localhost" 2026-02-09T03:15:10,183 export PGDATABASE="crsp" 2026-02-09T03:15:10,184 export WRDS_ID="iangow" 2026-02-09T03:15:10,184 export PGUSER="igow" 2026-02-09T03:15:10,185 ``` 2026-02-09T03:15:10,186 ## Using the function `wrds_update`. 2026-02-09T03:15:10,187 Two arguments `table_name` and `schema` are required. 2026-02-09T03:15:10,188 ### 1. WRDS Settings 2026-02-09T03:15:10,189 Set `WRDS_ID` using either `wrds_id=your_wrds_id` in the function call or the environment variable `WRDS_ID`. 2026-02-09T03:15:10,190 ### 2. Environment variables 2026-02-09T03:15:10,190 The `wrds_udpate()` function will use the environment variables `PGHOST`, `PGDATABASE`, and `PGUSER` if you If you have set them. Otherwise, you need to provide values as arguments to `wrds_udpate()`. Default `PGPORT` is`5432`. 2026-02-09T03:15:10,192 ### 3. Table settings 2026-02-09T03:15:10,192 To tailor your request, specify the following arguments: 2026-02-09T03:15:10,193 - `fix_missing`: set to `True` to fix missing values. This addresses special missign values, which SAS's `PROC EXPORT` dumps as strings. Default value is `False`. 2026-02-09T03:15:10,194 - `fix_cr`: set to `True` to fix characters. Default value is `False`. 2026-02-09T03:15:10,194 - `drop`: add column names to be dropped (e.g., `drop="id name"` will drop columns `id` and `name`). 2026-02-09T03:15:10,194 - `obs`: add maxium number of observations (e.g., `obs=10` will import the first 10 rows from the table on WRDS). 2026-02-09T03:15:10,195 - `rename`: rename columns (e.g., `rename="fee=mngt_fee"` renames `fee` to `mngt_fee`). 2026-02-09T03:15:10,195 - `force`: set to `True` to force update. Default value is `False`. 2026-02-09T03:15:10,196 ## Importing SAS data into PostgreSQL 2026-02-09T03:15:10,196 The software can also upload SAS file directly to PostgreSQL. 2026-02-09T03:15:10,197 You need to have local SAS in order to use this function. 2026-02-09T03:15:10,197 Use `fpath` to specify the path to the file to be imported 2026-02-09T03:15:10,198 ### Examples 2026-02-09T03:15:10,199 Here are some examples. 2026-02-09T03:15:10,200 If you are at the home directory of this git repo, you can import and use the software as shown below. 2026-02-09T03:15:10,200 To install it from Github: 2026-02-09T03:15:10,201 ```bash 2026-02-09T03:15:10,202 sudo -H pip3 install git+https://github.com/iangow/wrds2pg --upgrade 2026-02-09T03:15:10,202 ``` 2026-02-09T03:15:10,203 This software is also available from PyPI. To install it from [PyPI](https://pypi.org/project/wrds2pg/): 2026-02-09T03:15:10,204 ```bash 2026-02-09T03:15:10,205 pip3 install wrds2pg 2026-02-09T03:15:10,205 ``` 2026-02-09T03:15:10,206 Example usage: 2026-02-09T03:15:10,206 ```python 2026-02-09T03:15:10,207 from wrds2pg import wrds_update 2026-02-09T03:15:10,208 # 1. Download crsp.mcti from wrds and upload to pg as crps.mcti 2026-02-09T03:15:10,208 # Simplest version 2026-02-09T03:15:10,209 wrds_update(table_name="mcti", schema="crsp") 2026-02-09T03:15:10,210 # Tailored arguments 2026-02-09T03:15:10,211 wrds_update(table_name="mcti", schema="crsp", host=your_pghost, 2026-02-09T03:15:10,211 dbname=your_pg_database, 2026-02-09T03:15:10,212 fix_missing=True, fix_cr=True, drop="b30ret b30ind", obs=10, 2026-02-09T03:15:10,213 rename="caldt=calendar_date", force=True) 2026-02-09T03:15:10,214 # 2. Upload test.sas7dbat to pg as crsp.mcti 2026-02-09T03:15:10,215 wrds_update(table_name="mcti", schema="crsp", fpath="your_path/test.sas7dbat") 2026-02-09T03:15:10,215 ``` 2026-02-09T03:15:10,217 ### Report bugs 2026-02-09T03:15:10,218 Author: Ian Gow, 2026-02-09T03:15:10,218 Contributors: Jingyu Zhang, , Evan Jo. 2026-02-09T03:15:10,220 running dist_info 2026-02-09T03:15:10,220 creating /tmp/pip-modern-metadata-p9k9_sxd/wrds2pg.egg-info 2026-02-09T03:15:10,221 writing /tmp/pip-modern-metadata-p9k9_sxd/wrds2pg.egg-info/PKG-INFO 2026-02-09T03:15:10,221 writing dependency_links to /tmp/pip-modern-metadata-p9k9_sxd/wrds2pg.egg-info/dependency_links.txt 2026-02-09T03:15:10,222 writing requirements to /tmp/pip-modern-metadata-p9k9_sxd/wrds2pg.egg-info/requires.txt 2026-02-09T03:15:10,222 writing top-level names to /tmp/pip-modern-metadata-p9k9_sxd/wrds2pg.egg-info/top_level.txt 2026-02-09T03:15:10,223 writing manifest file '/tmp/pip-modern-metadata-p9k9_sxd/wrds2pg.egg-info/SOURCES.txt' 2026-02-09T03:15:10,223 reading manifest file '/tmp/pip-modern-metadata-p9k9_sxd/wrds2pg.egg-info/SOURCES.txt' 2026-02-09T03:15:10,224 adding license file 'LICENCE' 2026-02-09T03:15:10,224 writing manifest file '/tmp/pip-modern-metadata-p9k9_sxd/wrds2pg.egg-info/SOURCES.txt' 2026-02-09T03:15:10,225 creating '/tmp/pip-modern-metadata-p9k9_sxd/wrds2pg-1.0.35.dist-info' 2026-02-09T03:15:10,339 Preparing metadata (pyproject.toml): finished with status 'done' 2026-02-09T03:15:10,344 Source in /tmp/pip-wheel-39n3vl2z/wrds2pg_75b9dda42f9c49bc8b9b4bcb0f12ac62 has version 1.0.35, which satisfies requirement wrds2pg==1.0.35 from https://files.pythonhosted.org/packages/0b/89/eb6c5a7ed0c8a0339f1d9f865bf8f4234958aa63903e02dc465f9037d34e/wrds2pg-1.0.35.tar.gz 2026-02-09T03:15:10,345 Removed wrds2pg==1.0.35 from https://files.pythonhosted.org/packages/0b/89/eb6c5a7ed0c8a0339f1d9f865bf8f4234958aa63903e02dc465f9037d34e/wrds2pg-1.0.35.tar.gz from build tracker '/tmp/pip-build-tracker-15gcyw87' 2026-02-09T03:15:10,351 Created temporary directory: /tmp/pip-unpack-pkgkbjvl 2026-02-09T03:15:10,352 Building wheels for collected packages: wrds2pg 2026-02-09T03:15:10,356 Created temporary directory: /tmp/pip-wheel-f3odm_u5 2026-02-09T03:15:10,356 Destination directory: /tmp/pip-wheel-f3odm_u5 2026-02-09T03:15:10,358 Building wheel for wrds2pg (pyproject.toml): started 2026-02-09T03:15:10,359 Running command Building wheel for wrds2pg (pyproject.toml) 2026-02-09T03:15:10,886 /tmp/pip-build-env-8eup_jhs/overlay/local/lib/python3.11/dist-packages/setuptools/dist.py:765: SetuptoolsDeprecationWarning: License classifiers are deprecated. 2026-02-09T03:15:10,887 !! 2026-02-09T03:15:10,888 ******************************************************************************** 2026-02-09T03:15:10,888 Please consider removing the following classifiers in favor of a SPDX license expression: 2026-02-09T03:15:10,889 License :: OSI Approved :: MIT License 2026-02-09T03:15:10,890 See https://packaging.python.org/en/latest/guides/writing-pyproject-toml/#license for details. 2026-02-09T03:15:10,891 ******************************************************************************** 2026-02-09T03:15:10,892 !! 2026-02-09T03:15:10,892 self._finalize_license_expression() 2026-02-09T03:15:10,914 # Library to convert WRDS SAS data 2026-02-09T03:15:10,915 This package was created to convert [WRDS](https://wrds-web.wharton.upenn.edu/wrds/) SAS data to modern data formats. 2026-02-09T03:15:10,915 This package has three major functions, one for each of three popular data formats. 2026-02-09T03:15:10,917 - `wrds_update()`: Imports WRDS SAS data into a PostgreSQL database. 2026-02-09T03:15:10,917 - `wrds_update_pq()`: Converts WRDS SAS data to parquet files. 2026-02-09T03:15:10,918 - `wrds_update_csv()`: Converts WRDS SAS data to gzipped CSV files. 2026-02-09T03:15:10,919 This package was primarily designed to handle WRDS data, but some support is provided for importing a local SAS file (`*.sas7dbat`) into a PostgreSQL database. 2026-02-09T03:15:10,921 ## Requirements 2026-02-09T03:15:10,922 ### 1. Python 2026-02-09T03:15:10,922 The software uses Python 3 and depends on Pandas, SQLAlchemy and Paramiko. In addition, the Python scripts generally interact with PostgreSQL using SQLAlchemy and the [Psycopg](http://initd.org/psycopg/) library. 2026-02-09T03:15:10,923 These dependencies are installed when you use Pip (see instructions below). 2026-02-09T03:15:10,924 ### 2. A WRDS ID 2026-02-09T03:15:10,925 To use public-key authentication to access WRDS, follow hints taken from [here](https://debian-administration.org/article/152/Password-less_logins_with_OpenSSH) to set up a public key. 2026-02-09T03:15:10,925 Copy that key to the WRDS server from the terminal on your computer. 2026-02-09T03:15:10,926 (Note that this code assumes you have a directory `.ssh` in your home directory. If not, log into WRDS via SSH, then type `mkdir ~/.ssh` to create this.) 2026-02-09T03:15:10,927 Here's code (for me) to create the key and send it to WRDS: 2026-02-09T03:15:10,928 ```bash 2026-02-09T03:15:10,928 ssh-keygen -t rsa 2026-02-09T03:15:10,929 cat ~/.ssh/id_rsa.pub | ssh iangow@wrds-cloud.wharton.upenn.edu "cat >> ~/.ssh/authorized_keys" 2026-02-09T03:15:10,930 ``` 2026-02-09T03:15:10,931 Use an empty passphrase in setting up the key so that the scripts can run without user intervention. 2026-02-09T03:15:10,933 ### 3. PostgreSQL 2026-02-09T03:15:10,933 For the `wrds_update()` function, you should have write access to a PostgreSQL database to store the data. 2026-02-09T03:15:10,934 ### 4. Environment variables 2026-02-09T03:15:10,935 Environment variables that the code can use include: 2026-02-09T03:15:10,935 - `PGDATABASE`: The name of the PostgreSQL database you use. 2026-02-09T03:15:10,936 - `PGUSER`: Your username on the PostgreSQL database. 2026-02-09T03:15:10,936 - `PGHOST`: Where the PostgreSQL database is to be found (this will be `localhost` if its on the same machine as you're running the code on) 2026-02-09T03:15:10,937 - `WRDS_ID`: Your [WRDS](https://wrds-web.wharton.upenn.edu/wrds/) ID. 2026-02-09T03:15:10,937 - `DATA_DIR`: The local repository for parquet files. 2026-02-09T03:15:10,938 - `CSV_DIR`: The local repository for compressed CSV files. 2026-02-09T03:15:10,939 Once can set these environment variables in (say) `~/.zprofile`: 2026-02-09T03:15:10,939 ```bash 2026-02-09T03:15:10,940 export PGHOST="localhost" 2026-02-09T03:15:10,940 export PGDATABASE="crsp" 2026-02-09T03:15:10,941 export WRDS_ID="iangow" 2026-02-09T03:15:10,941 export PGUSER="igow" 2026-02-09T03:15:10,942 ``` 2026-02-09T03:15:10,943 ## Using the function `wrds_update`. 2026-02-09T03:15:10,944 Two arguments `table_name` and `schema` are required. 2026-02-09T03:15:10,945 ### 1. WRDS Settings 2026-02-09T03:15:10,945 Set `WRDS_ID` using either `wrds_id=your_wrds_id` in the function call or the environment variable `WRDS_ID`. 2026-02-09T03:15:10,946 ### 2. Environment variables 2026-02-09T03:15:10,947 The `wrds_udpate()` function will use the environment variables `PGHOST`, `PGDATABASE`, and `PGUSER` if you If you have set them. Otherwise, you need to provide values as arguments to `wrds_udpate()`. Default `PGPORT` is`5432`. 2026-02-09T03:15:10,948 ### 3. Table settings 2026-02-09T03:15:10,949 To tailor your request, specify the following arguments: 2026-02-09T03:15:10,950 - `fix_missing`: set to `True` to fix missing values. This addresses special missign values, which SAS's `PROC EXPORT` dumps as strings. Default value is `False`. 2026-02-09T03:15:10,951 - `fix_cr`: set to `True` to fix characters. Default value is `False`. 2026-02-09T03:15:10,951 - `drop`: add column names to be dropped (e.g., `drop="id name"` will drop columns `id` and `name`). 2026-02-09T03:15:10,952 - `obs`: add maxium number of observations (e.g., `obs=10` will import the first 10 rows from the table on WRDS). 2026-02-09T03:15:10,952 - `rename`: rename columns (e.g., `rename="fee=mngt_fee"` renames `fee` to `mngt_fee`). 2026-02-09T03:15:10,953 - `force`: set to `True` to force update. Default value is `False`. 2026-02-09T03:15:10,954 ## Importing SAS data into PostgreSQL 2026-02-09T03:15:10,955 The software can also upload SAS file directly to PostgreSQL. 2026-02-09T03:15:10,955 You need to have local SAS in order to use this function. 2026-02-09T03:15:10,956 Use `fpath` to specify the path to the file to be imported 2026-02-09T03:15:10,957 ### Examples 2026-02-09T03:15:10,958 Here are some examples. 2026-02-09T03:15:10,959 If you are at the home directory of this git repo, you can import and use the software as shown below. 2026-02-09T03:15:10,960 To install it from Github: 2026-02-09T03:15:10,961 ```bash 2026-02-09T03:15:10,961 sudo -H pip3 install git+https://github.com/iangow/wrds2pg --upgrade 2026-02-09T03:15:10,962 ``` 2026-02-09T03:15:10,963 This software is also available from PyPI. To install it from [PyPI](https://pypi.org/project/wrds2pg/): 2026-02-09T03:15:10,964 ```bash 2026-02-09T03:15:10,964 pip3 install wrds2pg 2026-02-09T03:15:10,965 ``` 2026-02-09T03:15:10,966 Example usage: 2026-02-09T03:15:10,966 ```python 2026-02-09T03:15:10,967 from wrds2pg import wrds_update 2026-02-09T03:15:10,968 # 1. Download crsp.mcti from wrds and upload to pg as crps.mcti 2026-02-09T03:15:10,969 # Simplest version 2026-02-09T03:15:10,969 wrds_update(table_name="mcti", schema="crsp") 2026-02-09T03:15:10,970 # Tailored arguments 2026-02-09T03:15:10,971 wrds_update(table_name="mcti", schema="crsp", host=your_pghost, 2026-02-09T03:15:10,971 dbname=your_pg_database, 2026-02-09T03:15:10,972 fix_missing=True, fix_cr=True, drop="b30ret b30ind", obs=10, 2026-02-09T03:15:10,972 rename="caldt=calendar_date", force=True) 2026-02-09T03:15:10,973 # 2. Upload test.sas7dbat to pg as crsp.mcti 2026-02-09T03:15:10,973 wrds_update(table_name="mcti", schema="crsp", fpath="your_path/test.sas7dbat") 2026-02-09T03:15:10,974 ``` 2026-02-09T03:15:10,975 ### Report bugs 2026-02-09T03:15:10,975 Author: Ian Gow, 2026-02-09T03:15:10,975 Contributors: Jingyu Zhang, , Evan Jo. 2026-02-09T03:15:10,976 running bdist_wheel 2026-02-09T03:15:10,977 running build 2026-02-09T03:15:10,977 running build_py 2026-02-09T03:15:10,978 creating build/lib/wrds2pg 2026-02-09T03:15:10,978 copying wrds2pg/__init__.py -> build/lib/wrds2pg 2026-02-09T03:15:10,979 copying wrds2pg/wrds2pg.py -> build/lib/wrds2pg 2026-02-09T03:15:10,984 installing to build/bdist.linux-armv7l/wheel 2026-02-09T03:15:10,985 running install 2026-02-09T03:15:11,008 running install_lib 2026-02-09T03:15:11,016 creating build/bdist.linux-armv7l/wheel 2026-02-09T03:15:11,018 creating build/bdist.linux-armv7l/wheel/wrds2pg 2026-02-09T03:15:11,019 copying build/lib/wrds2pg/__init__.py -> build/bdist.linux-armv7l/wheel/./wrds2pg 2026-02-09T03:15:11,021 copying build/lib/wrds2pg/wrds2pg.py -> build/bdist.linux-armv7l/wheel/./wrds2pg 2026-02-09T03:15:11,024 running install_egg_info 2026-02-09T03:15:11,043 running egg_info 2026-02-09T03:15:11,048 writing wrds2pg.egg-info/PKG-INFO 2026-02-09T03:15:11,051 writing dependency_links to wrds2pg.egg-info/dependency_links.txt 2026-02-09T03:15:11,052 writing requirements to wrds2pg.egg-info/requires.txt 2026-02-09T03:15:11,053 writing top-level names to wrds2pg.egg-info/top_level.txt 2026-02-09T03:15:11,062 reading manifest file 'wrds2pg.egg-info/SOURCES.txt' 2026-02-09T03:15:11,064 adding license file 'LICENCE' 2026-02-09T03:15:11,066 writing manifest file 'wrds2pg.egg-info/SOURCES.txt' 2026-02-09T03:15:11,068 Copying wrds2pg.egg-info to build/bdist.linux-armv7l/wheel/./wrds2pg-1.0.35-py3.11.egg-info 2026-02-09T03:15:11,077 running install_scripts 2026-02-09T03:15:11,088 creating build/bdist.linux-armv7l/wheel/wrds2pg-1.0.35.dist-info/WHEEL 2026-02-09T03:15:11,092 creating '/tmp/pip-wheel-f3odm_u5/.tmp-jnlsdcip/wrds2pg-1.0.35-py3-none-any.whl' and adding 'build/bdist.linux-armv7l/wheel' to it 2026-02-09T03:15:11,094 adding 'wrds2pg/__init__.py' 2026-02-09T03:15:11,099 adding 'wrds2pg/wrds2pg.py' 2026-02-09T03:15:11,102 adding 'wrds2pg-1.0.35.dist-info/licenses/LICENCE' 2026-02-09T03:15:11,104 adding 'wrds2pg-1.0.35.dist-info/METADATA' 2026-02-09T03:15:11,105 adding 'wrds2pg-1.0.35.dist-info/WHEEL' 2026-02-09T03:15:11,106 adding 'wrds2pg-1.0.35.dist-info/top_level.txt' 2026-02-09T03:15:11,107 adding 'wrds2pg-1.0.35.dist-info/RECORD' 2026-02-09T03:15:11,108 removing build/bdist.linux-armv7l/wheel 2026-02-09T03:15:11,205 Building wheel for wrds2pg (pyproject.toml): finished with status 'done' 2026-02-09T03:15:11,209 Created wheel for wrds2pg: filename=wrds2pg-1.0.35-py3-none-any.whl size=13856 sha256=a8aa3c45db3ed0c0620de708894754434f85cad4d707227b9337fad4b7bd7826 2026-02-09T03:15:11,210 Stored in directory: /tmp/pip-ephem-wheel-cache-iwm5uc_r/wheels/ab/78/43/20e349cec18e4b0d0856f8ba3e4fae19e732690706b96ff1f7 2026-02-09T03:15:11,220 Successfully built wrds2pg 2026-02-09T03:15:11,224 Removed build tracker: '/tmp/pip-build-tracker-15gcyw87'