2022-08-24T06:15:41,500 Created temporary directory: /tmp/pip-ephem-wheel-cache-mmzl6g3k 2022-08-24T06:15:41,506 Created temporary directory: /tmp/pip-build-tracker-towul9mx 2022-08-24T06:15:41,507 Initialized build tracking at /tmp/pip-build-tracker-towul9mx 2022-08-24T06:15:41,507 Created build tracker: /tmp/pip-build-tracker-towul9mx 2022-08-24T06:15:41,508 Entered build tracker: /tmp/pip-build-tracker-towul9mx 2022-08-24T06:15:41,509 Created temporary directory: /tmp/pip-wheel-txy3_bzy 2022-08-24T06:15:41,572 Looking in indexes: https://pypi.org/simple, https://www.piwheels.org/simple 2022-08-24T06:15:41,580 2 location(s) to search for versions of wrds2pg: 2022-08-24T06:15:41,580 * https://pypi.org/simple/wrds2pg/ 2022-08-24T06:15:41,580 * https://www.piwheels.org/simple/wrds2pg/ 2022-08-24T06:15:41,581 Fetching project page and analyzing links: https://pypi.org/simple/wrds2pg/ 2022-08-24T06:15:41,582 Getting page https://pypi.org/simple/wrds2pg/ 2022-08-24T06:15:41,585 Found index url https://pypi.org/simple 2022-08-24T06:15:41,798 Skipping link: No binaries permitted for wrds2pg: https://files.pythonhosted.org/packages/36/4d/10bef13832bdc17990beac4a20b47a77976768547aa4bd6137cbafd46f83/wrds2pg-0.1.17-py3-none-any.whl#sha256=3471efec23d7b15c86751d79adc43cb425d7ad46016afc247f1e1992b78083b9 (from https://pypi.org/simple/wrds2pg/) (requires-python:>=3) 2022-08-24T06:15:41,800 Found link https://files.pythonhosted.org/packages/ae/9c/ee0b12002821c2c8e21625c915081fc315d9f1ceef100cb330e9116f2d0d/wrds2pg-0.1.17.tar.gz#sha256=665c4fb5c4dcc9f3553eb144053f334ea76e1721b65a96b438fc5a3f78719ef1 (from https://pypi.org/simple/wrds2pg/) (requires-python:>=3), version: 0.1.17 2022-08-24T06:15:41,801 Skipping link: No binaries permitted for wrds2pg: https://files.pythonhosted.org/packages/ac/24/35ec84d1b765955286a326d0f0c98423730b5818f33c5cdc3e2a2d528adf/wrds2pg-0.1.18-py3-none-any.whl#sha256=896ccb2badb2923b55bb6fbe62a8d74604733c8c9c0181b144e2e2f9aabb629c (from https://pypi.org/simple/wrds2pg/) (requires-python:>=3) 2022-08-24T06:15:41,802 Found link https://files.pythonhosted.org/packages/dd/4f/6c631513b90802ad1fae0c3fb3dbf65efc603d3fee00a1cae4af45f6b2c5/wrds2pg-0.1.18.tar.gz#sha256=7dc2949f1891c602c81f795369c5bd3c72fd257370306eca459e7330e0874988 (from https://pypi.org/simple/wrds2pg/) (requires-python:>=3), version: 0.1.18 2022-08-24T06:15:41,803 Skipping link: No binaries permitted for wrds2pg: https://files.pythonhosted.org/packages/42/1a/cbdac7035e9b7836ed96c6a9e493b556d3f595245c4f0b239c9ba639d53e/wrds2pg-0.1.20-py3-none-any.whl#sha256=bdca9bdaa2e54c59f2120c519804dc52bf271a35e03a80dd8b1f65f961f28ff6 (from https://pypi.org/simple/wrds2pg/) (requires-python:>=3) 2022-08-24T06:15:41,804 Found link https://files.pythonhosted.org/packages/14/81/4c94b875ec21dccdefb6a1846bc4f4d4a6a529a0a6921cbbf580e07f8b6b/wrds2pg-0.1.20.tar.gz#sha256=a9b86e50a278a821f4d1faa3f52312e3e557c332ab234b32def5e10f6afc00ae (from https://pypi.org/simple/wrds2pg/) (requires-python:>=3), version: 0.1.20 2022-08-24T06:15:41,805 Skipping link: No binaries permitted for wrds2pg: https://files.pythonhosted.org/packages/e7/a1/192e3bf4b1e122d0b12a094f4ee4fd1667276cb87cbe5d0a53412dc1a9bc/wrds2pg-0.1.21-py3-none-any.whl#sha256=f9ab26b51603e3bf82196a52410a990d95685ee6bedc4a88572340686d09affc (from https://pypi.org/simple/wrds2pg/) (requires-python:>=3) 2022-08-24T06:15:41,806 Found link https://files.pythonhosted.org/packages/4d/4c/5fa9cc2e936e16d0be4a56ce2e8cf03b3ba0f59f49afdebd29f1eda99df4/wrds2pg-0.1.21.tar.gz#sha256=9c3f4e0e21d09ab93555e04c410b5292cf2c89ce2407015de3b289cd943f79ff (from https://pypi.org/simple/wrds2pg/) (requires-python:>=3), version: 0.1.21 2022-08-24T06:15:41,807 Skipping link: No binaries permitted for wrds2pg: https://files.pythonhosted.org/packages/4a/52/d9134119b39cf9e939e7cc5ab1317627406af4229fcbdf1085df366e01b4/wrds2pg-0.1.22-py3-none-any.whl#sha256=bfa8fbfc09819fe5524153f82e6fc631069dab5096b0013b03aae5600346a2ab (from https://pypi.org/simple/wrds2pg/) (requires-python:>=3) 2022-08-24T06:15:41,808 Found link https://files.pythonhosted.org/packages/5b/db/ebbf903d32ac113cdd0b3637f1e5dc37a4abf9f63f18dd56835f3611a465/wrds2pg-0.1.22.tar.gz#sha256=9925b6c217bf8c9cf1fa17f6fc08a720b3849b4e95507cf2a905b06536c60ea3 (from https://pypi.org/simple/wrds2pg/) (requires-python:>=3), version: 0.1.22 2022-08-24T06:15:41,809 Skipping link: No binaries permitted for wrds2pg: https://files.pythonhosted.org/packages/c9/47/a040be2f7d67c120396a27beb1f5e3a6eb97fd24e17cd485ec6d332dad6e/wrds2pg-0.1.23-py3-none-any.whl#sha256=24b5f15364dc798de6d21d3f2d117ce1d7c6e6e0768e8268e7b196943d36d1bd (from https://pypi.org/simple/wrds2pg/) (requires-python:>=3) 2022-08-24T06:15:41,810 Found link https://files.pythonhosted.org/packages/4e/aa/b4f4227ff1d464462f243592bddd638d07e886aa39018ef2bb486624e2f5/wrds2pg-0.1.23.tar.gz#sha256=29557ea7e669dfe1d2f0d4ac9966427698e8369922445e8ca03cc29fd4ff3adb (from https://pypi.org/simple/wrds2pg/) (requires-python:>=3), version: 0.1.23 2022-08-24T06:15:41,811 Skipping link: No binaries permitted for wrds2pg: https://files.pythonhosted.org/packages/7b/bf/a713b52aff61a20e5e9d851a69d7c4936d14018ed62759dd78629bfe12cf/wrds2pg-0.1.24-py3-none-any.whl#sha256=8bfd551d615500576f778b977f5771b5011d87a962c1d43e8b7aae7c42f6bafb (from https://pypi.org/simple/wrds2pg/) (requires-python:>=3) 2022-08-24T06:15:41,812 Found link https://files.pythonhosted.org/packages/ca/e9/81095cbac75110e7f53e915ebee06a9925bb32b6d8a307c7a709f9b74dd5/wrds2pg-0.1.24.tar.gz#sha256=b5fdbfe9ab1af360a872257987b354d05998a5e0ee0aefaafe7333787ebc1f16 (from https://pypi.org/simple/wrds2pg/) (requires-python:>=3), version: 0.1.24 2022-08-24T06:15:41,813 Skipping link: No binaries permitted for wrds2pg: https://files.pythonhosted.org/packages/01/5d/cfd9a9cfe8194d52e16c24ef053b49225e85f0996c471226fc0cf5522e31/wrds2pg-1.0.0-py3-none-any.whl#sha256=89d17b1aae3ffc78c0c02e87a2f663b83648460da7a8406027d62ae7c9ceb164 (from https://pypi.org/simple/wrds2pg/) (requires-python:>=3) 2022-08-24T06:15:41,814 Found link https://files.pythonhosted.org/packages/af/8f/069eed28514231a859da3b110112a0b2078f2c879e3cc5489909982ef2af/wrds2pg-1.0.0.tar.gz#sha256=138924033c17e35fc37dcff72df18398b1152fde1c803f34aa641adc72cb3f66 (from https://pypi.org/simple/wrds2pg/) (requires-python:>=3), version: 1.0.0 2022-08-24T06:15:41,815 Skipping link: No binaries permitted for wrds2pg: https://files.pythonhosted.org/packages/90/3d/1fc327c68c63a7540a964879a5a124e9104c5a80cd058a5f0659d2945dd5/wrds2pg-1.0.2-py3-none-any.whl#sha256=73be788eb7aee9fce430717615f683c7f912a817238a33697f41f26b85726147 (from https://pypi.org/simple/wrds2pg/) (requires-python:>=3) 2022-08-24T06:15:41,816 Found link https://files.pythonhosted.org/packages/fa/b0/49292467a2256c3ecdd7e7fdbd1c4729386bddc06f3a986483a311539f2b/wrds2pg-1.0.2.tar.gz#sha256=13c64ea0b23fd000ccc6f712a448a4c1e49879f9d3d645c58d56cbba9cdc99f8 (from https://pypi.org/simple/wrds2pg/) (requires-python:>=3), version: 1.0.2 2022-08-24T06:15:41,817 Skipping link: No binaries permitted for wrds2pg: https://files.pythonhosted.org/packages/41/99/2866d67e2fcd10684ccc913eaa896ebcc00c60982133a5adfaa8a39b7aa1/wrds2pg-1.0.3-py3-none-any.whl#sha256=12de805441cbd63af3d66e6a2c651f8f7d15e77dc5c3714035cd450ea1708785 (from https://pypi.org/simple/wrds2pg/) (requires-python:>=3) 2022-08-24T06:15:41,818 Found link https://files.pythonhosted.org/packages/0f/bf/b1032fff1645c597e292ac8d588c33bad73ca567c01e52fb149f4aa503d1/wrds2pg-1.0.3.tar.gz#sha256=ebef3b91951fd78a9e3dd51c212c119c8639c03f70aa7c4a273733240fd628fc (from https://pypi.org/simple/wrds2pg/) (requires-python:>=3), version: 1.0.3 2022-08-24T06:15:41,819 Skipping link: No binaries permitted for wrds2pg: https://files.pythonhosted.org/packages/0b/6c/bc13811b3a339ec1455a10a03b077d0a7fc7e43b3311201abbfc67d77fde/wrds2pg-1.0.4-py3-none-any.whl#sha256=8197d920152df0686f6cd8ca31af2f46820802334c63a0991ca0ddd1c215c909 (from https://pypi.org/simple/wrds2pg/) (requires-python:>=3) 2022-08-24T06:15:41,820 Found link https://files.pythonhosted.org/packages/dc/f4/166d8822216116c22615377ab6493a7c44bd205b8853ae2b0ad51792d9e6/wrds2pg-1.0.4.tar.gz#sha256=e5f9ea4cf47eff9e5062815816f8ae257a9fc0370968f7a6802a0614a8d7a025 (from https://pypi.org/simple/wrds2pg/) (requires-python:>=3), version: 1.0.4 2022-08-24T06:15:41,821 Skipping link: No binaries permitted for wrds2pg: https://files.pythonhosted.org/packages/78/a7/afce414cb2df44692f2dd5af0e28578c349e337110fb7c73b893cef3c048/wrds2pg-1.0.5-py3-none-any.whl#sha256=21abfd3fabf17eba315d7110979b9ed42f54051f205d859da68568b4699e291b (from https://pypi.org/simple/wrds2pg/) (requires-python:>=3) 2022-08-24T06:15:41,822 Found link https://files.pythonhosted.org/packages/64/a7/18d7edab1e04462bf1aafd2fe6ffc9132f0aa11be6daaf14927c532b73d3/wrds2pg-1.0.5.tar.gz#sha256=bfbd1a931b790209f96b1bd1c45d268ca714b051a65d4d06f51a2bca414674dd (from https://pypi.org/simple/wrds2pg/) (requires-python:>=3), version: 1.0.5 2022-08-24T06:15:41,823 Skipping link: No binaries permitted for wrds2pg: https://files.pythonhosted.org/packages/2b/8f/02f345286a6b878468948ab7bc6a56026077f0cbfb25d11440284519ba7a/wrds2pg-1.0.6-py3-none-any.whl#sha256=ba63b46b31e7f735db37bebf8ad301e976085a10628fcb01be40dbc9325267f9 (from https://pypi.org/simple/wrds2pg/) (requires-python:>=3) 2022-08-24T06:15:41,824 Found link https://files.pythonhosted.org/packages/8c/06/abb4c39f3e3f730fffe349e03e1172e31c95fbb9edf4c9257bfb0b6e2c62/wrds2pg-1.0.6.tar.gz#sha256=33efcef845f9d47adb892052a2865ecb6dafb9541ead49a97840a0659d76ca91 (from https://pypi.org/simple/wrds2pg/) (requires-python:>=3), version: 1.0.6 2022-08-24T06:15:41,825 Skipping link: No binaries permitted for wrds2pg: https://files.pythonhosted.org/packages/3f/b5/99b90fee6aaf0b150803cfbd6d86e0052d292257dd101e803df4d945ad7b/wrds2pg-1.0.8-py3-none-any.whl#sha256=4bca52110d40065aada2ca48ed090ab85a34add55c09c804f9586fd454ae3205 (from https://pypi.org/simple/wrds2pg/) (requires-python:>=3) 2022-08-24T06:15:41,826 Found link https://files.pythonhosted.org/packages/eb/9f/a506b309ee9299d4d9cd3f5c1407e05da30c09cbbe8acf67e60de11a1b4e/wrds2pg-1.0.8.tar.gz#sha256=d5b5e5e738d01c7509660b839c8a949ff5210a81eedd2b514f8bdfa044752e96 (from https://pypi.org/simple/wrds2pg/) (requires-python:>=3), version: 1.0.8 2022-08-24T06:15:41,827 Skipping link: No binaries permitted for wrds2pg: https://files.pythonhosted.org/packages/80/6d/34291718af062c4c329fbaeaaa582e011da15ce1193364f668581c3bd983/wrds2pg-1.0.9-py3-none-any.whl#sha256=31c6a2598fe8d8b97d73bcad19025da0249d8c835873e8ae12504bb585268cd0 (from https://pypi.org/simple/wrds2pg/) (requires-python:>=3) 2022-08-24T06:15:41,829 Found link https://files.pythonhosted.org/packages/27/20/2b9788aef9e54ea3d590a456caa294d1c177fd05029e8f70b99022369f68/wrds2pg-1.0.9.tar.gz#sha256=abb716e343d49a455f949c7c87c1a08a0748f1233917d4b9282df55245bdca6c (from https://pypi.org/simple/wrds2pg/) (requires-python:>=3), version: 1.0.9 2022-08-24T06:15:41,829 Skipping link: No binaries permitted for wrds2pg: https://files.pythonhosted.org/packages/99/ac/4d765cf6d5048798219506138f491e7218d56226bd1d4a1ab994e5efcf33/wrds2pg-1.0.10-py3-none-any.whl#sha256=4cbc316d1697609c4af2a88bd009097590ac1d233739addce04b45ce6d365d3f (from https://pypi.org/simple/wrds2pg/) (requires-python:>=3) 2022-08-24T06:15:41,831 Found link https://files.pythonhosted.org/packages/f4/6a/630cd948c36f331db42c9bac9e414e721e779efbb692210419563d9f4ec1/wrds2pg-1.0.10.tar.gz#sha256=7e277d2c16c0547559c61e58764e40265bb10673f7c0a5e0e1feb543c2b46f75 (from https://pypi.org/simple/wrds2pg/) (requires-python:>=3), version: 1.0.10 2022-08-24T06:15:41,832 Skipping link: No binaries permitted for wrds2pg: https://files.pythonhosted.org/packages/4b/8f/7a43a074a7f9fb3b14acbe6a7fdfe50e99d8489334adcc941ed6b4ca328b/wrds2pg-1.0.11-py3-none-any.whl#sha256=c42398fe36363172c42dc4cc17f92a29234b3837ec576a62f122ec5d10ef7dc9 (from https://pypi.org/simple/wrds2pg/) (requires-python:>=3) 2022-08-24T06:15:41,833 Found link https://files.pythonhosted.org/packages/e8/2b/f8c9e8ea4d651a9e15946e91b9f1708582a8631b6a76ddb16ad9275bb7a5/wrds2pg-1.0.11.tar.gz#sha256=7371b4a232b33a07a33e39d1a92bf8ace7f1af3ce104af102ed5ddfbde1d3959 (from https://pypi.org/simple/wrds2pg/) (requires-python:>=3), version: 1.0.11 2022-08-24T06:15:41,834 Skipping link: No binaries permitted for wrds2pg: https://files.pythonhosted.org/packages/20/62/e4cff4d188653aa99e511ec9db794706d3e0eca3a072847c47b59fb281ba/wrds2pg-1.0.12-py3-none-any.whl#sha256=33a2f3d0156a87919e55a66512709ebd5342ba3922a963883f45f0293485f68c (from https://pypi.org/simple/wrds2pg/) (requires-python:>=3) 2022-08-24T06:15:41,835 Found link https://files.pythonhosted.org/packages/14/9c/6db066ea90188c63fbacdfb53d2efd52e3ffb2f86ac229616b5ded27dabb/wrds2pg-1.0.12.tar.gz#sha256=ebd666351f2854fbcea52abff74b39ca505b3da2e872156932a0fa466444b80f (from https://pypi.org/simple/wrds2pg/) (requires-python:>=3), version: 1.0.12 2022-08-24T06:15:41,836 Skipping link: No binaries permitted for wrds2pg: https://files.pythonhosted.org/packages/00/0d/9122175d258c706db78ca1df2f46092a8f7caf9b85bb55fbb05bf8149b43/wrds2pg-1.0.13-py3-none-any.whl#sha256=0e2375216edb1e4f2641e1e3d0b567439e2044aa27606f0b91148e00e8ecca9e (from https://pypi.org/simple/wrds2pg/) (requires-python:>=3) 2022-08-24T06:15:41,837 Found link https://files.pythonhosted.org/packages/21/32/ed7df674875559e6afaacdfe2a846a78e88355b187349fb0890a00a9c87b/wrds2pg-1.0.13.tar.gz#sha256=655e4f5e61fde4a131bf058a65953b706b6f8cb6a068b598fd4611077d4f8daf (from https://pypi.org/simple/wrds2pg/) (requires-python:>=3), version: 1.0.13 2022-08-24T06:15:41,838 Skipping link: No binaries permitted for wrds2pg: https://files.pythonhosted.org/packages/98/27/a36bbe15df3fdbcf27a96e7a5b5f48c13d379465e4daf4889b5fd556eea0/wrds2pg-1.0.14-py3-none-any.whl#sha256=1d0af0fd088a917d0fc6a4349b2c00a7a00aa785ffffacfec43e947559edd888 (from https://pypi.org/simple/wrds2pg/) (requires-python:>=3) 2022-08-24T06:15:41,839 Found link https://files.pythonhosted.org/packages/30/5c/79161fc26f5a5c96b45c5d9f96c49164b7e32ff106d04ba0e6bf2e321b05/wrds2pg-1.0.14.tar.gz#sha256=1cc2bf21404aeb497da0fcd7d4463f95000888a138f0b1169c5898ea1468ec49 (from https://pypi.org/simple/wrds2pg/) (requires-python:>=3), version: 1.0.14 2022-08-24T06:15:41,840 Skipping link: No binaries permitted for wrds2pg: https://files.pythonhosted.org/packages/6f/56/b5f28563dbd278bc973e9b09d08b701083b92dc9facf367208f412bae2b1/wrds2pg-1.0.15-py3-none-any.whl#sha256=4fa3a1affbeab04cf3dbd208b7ece48827552536bc79f9321a0a40b46957da20 (from https://pypi.org/simple/wrds2pg/) (requires-python:>=3) 2022-08-24T06:15:41,841 Found link https://files.pythonhosted.org/packages/7f/ae/a9479ffa558cb219a91c2233d27c8cb0a1151361563f417f9a49414f9a9a/wrds2pg-1.0.15.tar.gz#sha256=78df095597e4ad9015f819e12eb2e37aeb075704be18d279767e288981c203e6 (from https://pypi.org/simple/wrds2pg/) (requires-python:>=3), version: 1.0.15 2022-08-24T06:15:41,842 Skipping link: No binaries permitted for wrds2pg: https://files.pythonhosted.org/packages/bd/a2/1d66cc227f78fb727160e17d625347dd9ce5a4934e9dc670946b36cb4a92/wrds2pg-1.0.16-py3-none-any.whl#sha256=1f1862ef4220c0b178c1f204bb63c66c5db56000c6176b108cb56621f805d071 (from https://pypi.org/simple/wrds2pg/) (requires-python:>=3) 2022-08-24T06:15:41,843 Found link https://files.pythonhosted.org/packages/ec/17/b23b515c3360befddb0e907abe4226ddfdd0573d7924902fc835f9619fce/wrds2pg-1.0.16.tar.gz#sha256=40436537f0eadf746e67827dd2c2049e9cf666ee0ae201884969faf38960a66b (from https://pypi.org/simple/wrds2pg/) (requires-python:>=3), version: 1.0.16 2022-08-24T06:15:41,844 Fetching project page and analyzing links: https://www.piwheels.org/simple/wrds2pg/ 2022-08-24T06:15:41,845 Getting page https://www.piwheels.org/simple/wrds2pg/ 2022-08-24T06:15:41,847 Found index url https://www.piwheels.org/simple 2022-08-24T06:15:42,072 Skipping link: No binaries permitted for wrds2pg: https://www.piwheels.org/simple/wrds2pg/wrds2pg-1.0.15-py3-none-any.whl#sha256=d8d869592634a4a6230d73cb1fd31a0b954cd53251250d096d8c28a269527d0c (from https://www.piwheels.org/simple/wrds2pg/) (requires-python:>=3) 2022-08-24T06:15:42,073 Skipping link: No binaries permitted for wrds2pg: https://www.piwheels.org/simple/wrds2pg/wrds2pg-1.0.14-py3-none-any.whl#sha256=53fe3952f56473e22acc56e2dfd684dcf50d6e10ae4df2b9564d783a0323f3cc (from https://www.piwheels.org/simple/wrds2pg/) (requires-python:>=3) 2022-08-24T06:15:42,073 Skipping link: No binaries permitted for wrds2pg: https://www.piwheels.org/simple/wrds2pg/wrds2pg-1.0.13-py3-none-any.whl#sha256=dbb6b8140842cdf6dd074f31a847e5a7d6901706af211e0aff676dfb0a2dc5d5 (from https://www.piwheels.org/simple/wrds2pg/) (requires-python:>=3) 2022-08-24T06:15:42,074 Skipping link: No binaries permitted for wrds2pg: https://www.piwheels.org/simple/wrds2pg/wrds2pg-1.0.12-py3-none-any.whl#sha256=a49ec8094e122aa39eaf87b3eaf04951ba358b7de814db7232d3d23db0ee7321 (from https://www.piwheels.org/simple/wrds2pg/) (requires-python:>=3) 2022-08-24T06:15:42,074 Skipping link: No binaries permitted for wrds2pg: https://www.piwheels.org/simple/wrds2pg/wrds2pg-1.0.11-py3-none-any.whl#sha256=10c887b1d51113a546d42a5ff5c773acceb67e44b4dbc7f2c8e185e146bdbe3b (from https://www.piwheels.org/simple/wrds2pg/) (requires-python:>=3) 2022-08-24T06:15:42,075 Skipping link: No binaries permitted for wrds2pg: https://www.piwheels.org/simple/wrds2pg/wrds2pg-1.0.10-py3-none-any.whl#sha256=d7a91f736c8b935d21aaef6d5b729044c3b27fa3fe740e21bf54aeece56e3f13 (from https://www.piwheels.org/simple/wrds2pg/) (requires-python:>=3) 2022-08-24T06:15:42,076 Skipping link: No binaries permitted for wrds2pg: https://www.piwheels.org/simple/wrds2pg/wrds2pg-1.0.9-py3-none-any.whl#sha256=544627010f3f3125f38a8b442475cb841a1e7b63e9644d7ed1c98245e5e8ffeb (from https://www.piwheels.org/simple/wrds2pg/) (requires-python:>=3) 2022-08-24T06:15:42,076 Skipping link: No binaries permitted for wrds2pg: https://www.piwheels.org/simple/wrds2pg/wrds2pg-1.0.8-py3-none-any.whl#sha256=4bca52110d40065aada2ca48ed090ab85a34add55c09c804f9586fd454ae3205 (from https://www.piwheels.org/simple/wrds2pg/) (requires-python:>=3) 2022-08-24T06:15:42,077 Skipping link: No binaries permitted for wrds2pg: https://www.piwheels.org/simple/wrds2pg/wrds2pg-1.0.6-py3-none-any.whl#sha256=ba63b46b31e7f735db37bebf8ad301e976085a10628fcb01be40dbc9325267f9 (from https://www.piwheels.org/simple/wrds2pg/) (requires-python:>=3) 2022-08-24T06:15:42,077 Skipping link: No binaries permitted for wrds2pg: https://www.piwheels.org/simple/wrds2pg/wrds2pg-1.0.5-py3-none-any.whl#sha256=21abfd3fabf17eba315d7110979b9ed42f54051f205d859da68568b4699e291b (from https://www.piwheels.org/simple/wrds2pg/) (requires-python:>=3) 2022-08-24T06:15:42,078 Skipping link: No binaries permitted for wrds2pg: https://www.piwheels.org/simple/wrds2pg/wrds2pg-1.0.4-py3-none-any.whl#sha256=8197d920152df0686f6cd8ca31af2f46820802334c63a0991ca0ddd1c215c909 (from https://www.piwheels.org/simple/wrds2pg/) (requires-python:>=3) 2022-08-24T06:15:42,078 Skipping link: No binaries permitted for wrds2pg: https://www.piwheels.org/simple/wrds2pg/wrds2pg-1.0.3-py3-none-any.whl#sha256=12de805441cbd63af3d66e6a2c651f8f7d15e77dc5c3714035cd450ea1708785 (from https://www.piwheels.org/simple/wrds2pg/) (requires-python:>=3) 2022-08-24T06:15:42,079 Skipping link: No binaries permitted for wrds2pg: https://www.piwheels.org/simple/wrds2pg/wrds2pg-1.0.2-py3-none-any.whl#sha256=73be788eb7aee9fce430717615f683c7f912a817238a33697f41f26b85726147 (from https://www.piwheels.org/simple/wrds2pg/) (requires-python:>=3) 2022-08-24T06:15:42,080 Skipping link: No binaries permitted for wrds2pg: https://www.piwheels.org/simple/wrds2pg/wrds2pg-1.0.0-py3-none-any.whl#sha256=89d17b1aae3ffc78c0c02e87a2f663b83648460da7a8406027d62ae7c9ceb164 (from https://www.piwheels.org/simple/wrds2pg/) (requires-python:>=3) 2022-08-24T06:15:42,080 Skipping link: No binaries permitted for wrds2pg: https://www.piwheels.org/simple/wrds2pg/wrds2pg-0.1.24-py3-none-any.whl#sha256=8bfd551d615500576f778b977f5771b5011d87a962c1d43e8b7aae7c42f6bafb (from https://www.piwheels.org/simple/wrds2pg/) (requires-python:>=3) 2022-08-24T06:15:42,081 Skipping link: No binaries permitted for wrds2pg: https://www.piwheels.org/simple/wrds2pg/wrds2pg-0.1.23-py3-none-any.whl#sha256=24b5f15364dc798de6d21d3f2d117ce1d7c6e6e0768e8268e7b196943d36d1bd (from https://www.piwheels.org/simple/wrds2pg/) (requires-python:>=3) 2022-08-24T06:15:42,081 Skipping link: No binaries permitted for wrds2pg: https://www.piwheels.org/simple/wrds2pg/wrds2pg-0.1.22-py3-none-any.whl#sha256=bfa8fbfc09819fe5524153f82e6fc631069dab5096b0013b03aae5600346a2ab (from https://www.piwheels.org/simple/wrds2pg/) (requires-python:>=3) 2022-08-24T06:15:42,082 Skipping link: No binaries permitted for wrds2pg: https://www.piwheels.org/simple/wrds2pg/wrds2pg-0.1.21-py3-none-any.whl#sha256=f9ab26b51603e3bf82196a52410a990d95685ee6bedc4a88572340686d09affc (from https://www.piwheels.org/simple/wrds2pg/) (requires-python:>=3) 2022-08-24T06:15:42,082 Skipping link: No binaries permitted for wrds2pg: https://www.piwheels.org/simple/wrds2pg/wrds2pg-0.1.20-py3-none-any.whl#sha256=bdca9bdaa2e54c59f2120c519804dc52bf271a35e03a80dd8b1f65f961f28ff6 (from https://www.piwheels.org/simple/wrds2pg/) (requires-python:>=3) 2022-08-24T06:15:42,083 Skipping link: No binaries permitted for wrds2pg: https://www.piwheels.org/simple/wrds2pg/wrds2pg-0.1.18-py3-none-any.whl#sha256=896ccb2badb2923b55bb6fbe62a8d74604733c8c9c0181b144e2e2f9aabb629c (from https://www.piwheels.org/simple/wrds2pg/) (requires-python:>=3) 2022-08-24T06:15:42,083 Skipping link: No binaries permitted for wrds2pg: https://www.piwheels.org/simple/wrds2pg/wrds2pg-0.1.17-py3-none-any.whl#sha256=3471efec23d7b15c86751d79adc43cb425d7ad46016afc247f1e1992b78083b9 (from https://www.piwheels.org/simple/wrds2pg/) (requires-python:>=3) 2022-08-24T06:15:42,084 Skipping link: not a file: https://www.piwheels.org/simple/wrds2pg/ 2022-08-24T06:15:42,084 Skipping link: not a file: https://pypi.org/simple/wrds2pg/ 2022-08-24T06:15:42,126 Given no hashes to check 1 links for project 'wrds2pg': discarding no candidates 2022-08-24T06:15:42,157 Collecting wrds2pg==1.0.16 2022-08-24T06:15:42,162 Created temporary directory: /tmp/pip-unpack-9_rsr4iu 2022-08-24T06:15:42,398 Downloading wrds2pg-1.0.16.tar.gz (11 kB) 2022-08-24T06:15:42,475 Added wrds2pg==1.0.16 from https://files.pythonhosted.org/packages/ec/17/b23b515c3360befddb0e907abe4226ddfdd0573d7924902fc835f9619fce/wrds2pg-1.0.16.tar.gz#sha256=40436537f0eadf746e67827dd2c2049e9cf666ee0ae201884969faf38960a66b to build tracker '/tmp/pip-build-tracker-towul9mx' 2022-08-24T06:15:42,484 Created temporary directory: /tmp/pip-build-env-qoegyi_1 2022-08-24T06:15:42,498 Created temporary directory: /tmp/pip-standalone-pip-g9yq8fz7 2022-08-24T06:15:44,804 Installing build dependencies: started 2022-08-24T06:15:44,806 Running command pip subprocess to install build dependencies 2022-08-24T06:15:54,363 Using pip 22.1.2 from /tmp/pip-standalone-pip-g9yq8fz7/__env_pip__.zip/pip (python 3.7) 2022-08-24T06:15:56,241 Looking in indexes: https://pypi.org/simple, https://www.piwheels.org/simple 2022-08-24T06:16:00,454 Collecting setuptools>=42 2022-08-24T06:16:00,732 Using cached https://www.piwheels.org/simple/setuptools/setuptools-65.2.0-py3-none-any.whl (1.2 MB) 2022-08-24T06:16:01,393 Collecting wheel 2022-08-24T06:16:01,438 Using cached https://www.piwheels.org/simple/wheel/wheel-0.37.1-py2.py3-none-any.whl (35 kB) 2022-08-24T06:16:12,351 Installing collected packages: wheel, setuptools 2022-08-24T06:16:12,633 Creating /tmp/pip-build-env-qoegyi_1/overlay/bin 2022-08-24T06:16:12,639 changing mode of /tmp/pip-build-env-qoegyi_1/overlay/bin/wheel to 755 2022-08-24T06:16:17,472 Successfully installed setuptools-65.2.0 wheel-0.37.1 2022-08-24T06:16:17,712 --- Logging error --- 2022-08-24T06:16:17,713 Traceback (most recent call last): 2022-08-24T06:16:17,713 File "/tmp/pip-standalone-pip-g9yq8fz7/__env_pip__.zip/pip/_internal/utils/logging.py", line 177, in emit 2022-08-24T06:16:17,713 self.console.print(renderable, overflow="ignore", crop=False, style=style) 2022-08-24T06:16:17,714 File "/tmp/pip-standalone-pip-g9yq8fz7/__env_pip__.zip/pip/_vendor/rich/console.py", line 1752, in print 2022-08-24T06:16:17,714 extend(render(renderable, render_options)) 2022-08-24T06:16:17,714 File "/tmp/pip-standalone-pip-g9yq8fz7/__env_pip__.zip/pip/_vendor/rich/console.py", line 1390, in render 2022-08-24T06:16:17,715 for render_output in iter_render: 2022-08-24T06:16:17,715 File "/tmp/pip-standalone-pip-g9yq8fz7/__env_pip__.zip/pip/_internal/utils/logging.py", line 134, in __rich_console__ 2022-08-24T06:16:17,715 for line in lines: 2022-08-24T06:16:17,715 File "/tmp/pip-standalone-pip-g9yq8fz7/__env_pip__.zip/pip/_vendor/rich/segment.py", line 245, in split_lines 2022-08-24T06:16:17,716 for segment in segments: 2022-08-24T06:16:17,716 File "/tmp/pip-standalone-pip-g9yq8fz7/__env_pip__.zip/pip/_vendor/rich/console.py", line 1368, in render 2022-08-24T06:16:17,716 renderable = rich_cast(renderable) 2022-08-24T06:16:17,717 File "/tmp/pip-standalone-pip-g9yq8fz7/__env_pip__.zip/pip/_vendor/rich/protocol.py", line 36, in rich_cast 2022-08-24T06:16:17,717 renderable = cast_method() 2022-08-24T06:16:17,717 File "/tmp/pip-standalone-pip-g9yq8fz7/__env_pip__.zip/pip/_internal/self_outdated_check.py", line 130, in __rich__ 2022-08-24T06:16:17,717 pip_cmd = get_best_invocation_for_this_pip() 2022-08-24T06:16:17,718 File "/tmp/pip-standalone-pip-g9yq8fz7/__env_pip__.zip/pip/_internal/utils/entrypoints.py", line 60, in get_best_invocation_for_this_pip 2022-08-24T06:16:17,718 os.path.join(binary_prefix, exe_name), 2022-08-24T06:16:17,719 File "/usr/lib/python3.7/genericpath.py", line 97, in samefile 2022-08-24T06:16:17,719 s2 = os.stat(f2) 2022-08-24T06:16:17,719 FileNotFoundError: [Errno 2] No such file or directory: '/usr/bin/pip3.7' 2022-08-24T06:16:17,720 Call stack: 2022-08-24T06:16:17,720 File "/usr/lib/python3.7/runpy.py", line 193, in _run_module_as_main 2022-08-24T06:16:17,720 "__main__", mod_spec) 2022-08-24T06:16:17,721 File "/usr/lib/python3.7/runpy.py", line 85, in _run_code 2022-08-24T06:16:17,721 exec(code, run_globals) 2022-08-24T06:16:17,721 File "/tmp/pip-standalone-pip-g9yq8fz7/__env_pip__.zip/pip/__main__.py", line 31, in 2022-08-24T06:16:17,722 sys.exit(_main()) 2022-08-24T06:16:17,722 File "/tmp/pip-standalone-pip-g9yq8fz7/__env_pip__.zip/pip/_internal/cli/main.py", line 70, in main 2022-08-24T06:16:17,722 return command.main(cmd_args) 2022-08-24T06:16:17,722 File "/tmp/pip-standalone-pip-g9yq8fz7/__env_pip__.zip/pip/_internal/cli/base_command.py", line 101, in main 2022-08-24T06:16:17,723 return self._main(args) 2022-08-24T06:16:17,723 File "/tmp/pip-standalone-pip-g9yq8fz7/__env_pip__.zip/pip/_internal/cli/base_command.py", line 223, in _main 2022-08-24T06:16:17,723 self.handle_pip_version_check(options) 2022-08-24T06:16:17,724 File "/tmp/pip-standalone-pip-g9yq8fz7/__env_pip__.zip/pip/_internal/cli/req_command.py", line 148, in handle_pip_version_check 2022-08-24T06:16:17,724 pip_self_version_check(session, options) 2022-08-24T06:16:17,724 File "/tmp/pip-standalone-pip-g9yq8fz7/__env_pip__.zip/pip/_internal/self_outdated_check.py", line 237, in pip_self_version_check 2022-08-24T06:16:17,725 logger.info("[present-rich] %s", upgrade_prompt) 2022-08-24T06:16:17,725 File "/usr/lib/python3.7/logging/__init__.py", line 1383, in info 2022-08-24T06:16:17,725 self._log(INFO, msg, args, **kwargs) 2022-08-24T06:16:17,725 File "/usr/lib/python3.7/logging/__init__.py", line 1519, in _log 2022-08-24T06:16:17,726 self.handle(record) 2022-08-24T06:16:17,726 File "/usr/lib/python3.7/logging/__init__.py", line 1529, in handle 2022-08-24T06:16:17,726 self.callHandlers(record) 2022-08-24T06:16:17,727 File "/usr/lib/python3.7/logging/__init__.py", line 1591, in callHandlers 2022-08-24T06:16:17,727 hdlr.handle(record) 2022-08-24T06:16:17,727 File "/usr/lib/python3.7/logging/__init__.py", line 905, in handle 2022-08-24T06:16:17,728 self.emit(record) 2022-08-24T06:16:17,728 File "/tmp/pip-standalone-pip-g9yq8fz7/__env_pip__.zip/pip/_internal/utils/logging.py", line 179, in emit 2022-08-24T06:16:17,728 self.handleError(record) 2022-08-24T06:16:17,729 Message: '[present-rich] %s' 2022-08-24T06:16:17,729 Arguments: (UpgradePrompt(old='22.1.2', new='22.2.2'),) 2022-08-24T06:16:18,212 Installing build dependencies: finished with status 'done' 2022-08-24T06:16:18,240 Getting requirements to build wheel: started 2022-08-24T06:16:18,242 Running command Getting requirements to build wheel 2022-08-24T06:16:24,514 # WRDS (or SAS) to PostgreSQL 2022-08-24T06:16:24,516 This software has two functions: 2022-08-24T06:16:24,516 - Download tables from [WRDS](https://wrds-web.wharton.upenn.edu/wrds/) and feed them to a PostgreSQL database. (Requires access to WRDS and to the data in question.) 2022-08-24T06:16:24,516 - Import a SAS file (`*.sas7dbat`) into a PostgreSQL database. 2022-08-24T06:16:24,517 ## Requirements 2022-08-24T06:16:24,518 ### 1. Python 2022-08-24T06:16:24,518 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. 2022-08-24T06:16:24,518 These dependencies are installed when you use Pip (see instructions below). 2022-08-24T06:16:24,519 ### 2. A WRDS ID 2022-08-24T06:16:24,519 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. 2022-08-24T06:16:24,520 Copy that key to the WRDS server from the terminal on your computer. 2022-08-24T06:16:24,520 (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.) 2022-08-24T06:16:24,521 Here's code (for me) to create the key and send it to WRDS: 2022-08-24T06:16:24,521 ``` 2022-08-24T06:16:24,521 ssh-keygen -t rsa 2022-08-24T06:16:24,521 cat ~/.ssh/id_rsa.pub | ssh iangow@wrds-cloud.wharton.upenn.edu "cat >> ~/.ssh/authorized_keys" 2022-08-24T06:16:24,522 ``` 2022-08-24T06:16:24,522 Use an empty passphrase in setting up the key so that the scripts can run without user intervention. 2022-08-24T06:16:24,523 ### 3. PostgreSQL 2022-08-24T06:16:24,523 You should have a PostgreSQL database to store the data. 2022-08-24T06:16:24,524 ### 4. Environment variables 2022-08-24T06:16:24,524 Environment variables that the code can use include: 2022-08-24T06:16:24,525 - `PGDATABASE`: The name of the PostgreSQL database you use. 2022-08-24T06:16:24,525 - `PGUSER`: Your username on the PostgreSQL database. 2022-08-24T06:16:24,525 - `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) 2022-08-24T06:16:24,526 - `WRDS_ID`: Your [WRDS](https://wrds-web.wharton.upenn.edu/wrds/) ID. 2022-08-24T06:16:24,526 I set these environment variables in `~/.profile`: 2022-08-24T06:16:24,527 ``` 2022-08-24T06:16:24,527 export PGHOST="localhost" 2022-08-24T06:16:24,527 export PGDATABASE="crsp" 2022-08-24T06:16:24,528 export WRDS_ID="iangow" 2022-08-24T06:16:24,528 export PGUSER="igow" 2022-08-24T06:16:24,528 ``` 2022-08-24T06:16:24,529 ## Using the function `wrds_update`. 2022-08-24T06:16:24,530 Two arguments `table_name` and `schema` are required. 2022-08-24T06:16:24,530 ### 1. WRDS Settings 2022-08-24T06:16:24,531 Set `WRDS_ID` using either `wrds_id=your_wrds_id` in the function call or the environment variable `WRDS_ID`. 2022-08-24T06:16:24,531 ### 2. Environment variables 2022-08-24T06:16:24,531 The software 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`. 2022-08-24T06:16:24,532 ### 3. Table settings 2022-08-24T06:16:24,532 To tailor your request, specify the following arguments: 2022-08-24T06:16:24,533 - `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`. 2022-08-24T06:16:24,533 - `fix_cr`: set to `True` to fix characters. Default value is `False`. 2022-08-24T06:16:24,534 - `drop`: add column names to be dropped (e.g., `drop="id name"` will drop columns `id` and `name`). 2022-08-24T06:16:24,534 - `obs`: add maxium number of observations (e.g., `obs=10` will import the first 10 rows from the table on WRDS). 2022-08-24T06:16:24,534 - `rename`: rename columns (e.g., `rename="fee=mngt_fee"` renames `fee` to `mngt_fee`). 2022-08-24T06:16:24,535 - `force`: set to `True` to force update. Default value is `False`. 2022-08-24T06:16:24,535 ## Importing SAS data into PostgreSQL 2022-08-24T06:16:24,536 The software can also upload SAS file directly to PostgreSQL. 2022-08-24T06:16:24,536 You need to have local SAS in order to use this function. 2022-08-24T06:16:24,536 Use `fpath` to specify the path to the file to be imported 2022-08-24T06:16:24,537 ### Examples 2022-08-24T06:16:24,537 Here are some examples. 2022-08-24T06:16:24,538 If you are at the home directory of this git repo, you can import and use the software as shown below. 2022-08-24T06:16:24,538 To install it from Github: 2022-08-24T06:16:24,539 ``` 2022-08-24T06:16:24,540 sudo -H pip3 install git+https://github.com/iangow/wrds2pg --upgrade 2022-08-24T06:16:24,540 ``` 2022-08-24T06:16:24,541 This software is also available from PyPI. To install it from [PyPI](https://pypi.org/project/wrds2pg/): 2022-08-24T06:16:24,541 ``` 2022-08-24T06:16:24,541 pip3 install wrds2pg 2022-08-24T06:16:24,542 ``` 2022-08-24T06:16:24,542 Example usage: 2022-08-24T06:16:24,542 ```py 2022-08-24T06:16:24,542 from wrds2pg import wrds_update 2022-08-24T06:16:24,543 # 1. Download crsp.mcti from wrds and upload to pg as crps.mcti 2022-08-24T06:16:24,543 # Simplest version 2022-08-24T06:16:24,544 wrds_update(table_name="mcti", schema="crsp") 2022-08-24T06:16:24,544 # Tailored arguments 2022-08-24T06:16:24,545 wrds_update(table_name="mcti", schema="crsp", host=your_pghost, 2022-08-24T06:16:24,545 dbname=your_pg_database, 2022-08-24T06:16:24,545 fix_missing=True, fix_cr=True, drop="b30ret b30ind", obs=10, 2022-08-24T06:16:24,545 rename="caldt=calendar_date", force=True) 2022-08-24T06:16:24,546 # 2. Upload test.sas7dbat to pg as crsp.mcti 2022-08-24T06:16:24,546 wrds_update(table_name="mcti", schema="crsp", fpath="your_path/test.sas7dbat") 2022-08-24T06:16:24,547 ``` 2022-08-24T06:16:24,547 ### Report bugs 2022-08-24T06:16:24,548 Author: Ian Gow, 2022-08-24T06:16:24,548 Contributor: Jingyu Zhang, 2022-08-24T06:16:24,549 running egg_info 2022-08-24T06:16:25,142 writing wrds2pg.egg-info/PKG-INFO 2022-08-24T06:16:25,734 writing dependency_links to wrds2pg.egg-info/dependency_links.txt 2022-08-24T06:16:28,679 writing requirements to wrds2pg.egg-info/requires.txt 2022-08-24T06:16:29,271 writing top-level names to wrds2pg.egg-info/top_level.txt 2022-08-24T06:16:29,985 reading manifest file 'wrds2pg.egg-info/SOURCES.txt' 2022-08-24T06:16:29,990 adding license file 'LICENCE' 2022-08-24T06:16:29,995 writing manifest file 'wrds2pg.egg-info/SOURCES.txt' 2022-08-24T06:16:30,215 Getting requirements to build wheel: finished with status 'done' 2022-08-24T06:16:30,235 Created temporary directory: /tmp/pip-modern-metadata-b25kfr10 2022-08-24T06:16:30,241 Preparing metadata (pyproject.toml): started 2022-08-24T06:16:30,243 Running command Preparing metadata (pyproject.toml) 2022-08-24T06:16:36,479 # WRDS (or SAS) to PostgreSQL 2022-08-24T06:16:36,480 This software has two functions: 2022-08-24T06:16:36,481 - Download tables from [WRDS](https://wrds-web.wharton.upenn.edu/wrds/) and feed them to a PostgreSQL database. (Requires access to WRDS and to the data in question.) 2022-08-24T06:16:36,481 - Import a SAS file (`*.sas7dbat`) into a PostgreSQL database. 2022-08-24T06:16:36,482 ## Requirements 2022-08-24T06:16:36,482 ### 1. Python 2022-08-24T06:16:36,483 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. 2022-08-24T06:16:36,483 These dependencies are installed when you use Pip (see instructions below). 2022-08-24T06:16:36,484 ### 2. A WRDS ID 2022-08-24T06:16:36,484 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. 2022-08-24T06:16:36,484 Copy that key to the WRDS server from the terminal on your computer. 2022-08-24T06:16:36,485 (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.) 2022-08-24T06:16:36,485 Here's code (for me) to create the key and send it to WRDS: 2022-08-24T06:16:36,485 ``` 2022-08-24T06:16:36,486 ssh-keygen -t rsa 2022-08-24T06:16:36,486 cat ~/.ssh/id_rsa.pub | ssh iangow@wrds-cloud.wharton.upenn.edu "cat >> ~/.ssh/authorized_keys" 2022-08-24T06:16:36,486 ``` 2022-08-24T06:16:36,487 Use an empty passphrase in setting up the key so that the scripts can run without user intervention. 2022-08-24T06:16:36,487 ### 3. PostgreSQL 2022-08-24T06:16:36,488 You should have a PostgreSQL database to store the data. 2022-08-24T06:16:36,488 ### 4. Environment variables 2022-08-24T06:16:36,489 Environment variables that the code can use include: 2022-08-24T06:16:36,490 - `PGDATABASE`: The name of the PostgreSQL database you use. 2022-08-24T06:16:36,490 - `PGUSER`: Your username on the PostgreSQL database. 2022-08-24T06:16:36,490 - `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) 2022-08-24T06:16:36,490 - `WRDS_ID`: Your [WRDS](https://wrds-web.wharton.upenn.edu/wrds/) ID. 2022-08-24T06:16:36,491 I set these environment variables in `~/.profile`: 2022-08-24T06:16:36,492 ``` 2022-08-24T06:16:36,492 export PGHOST="localhost" 2022-08-24T06:16:36,493 export PGDATABASE="crsp" 2022-08-24T06:16:36,493 export WRDS_ID="iangow" 2022-08-24T06:16:36,493 export PGUSER="igow" 2022-08-24T06:16:36,493 ``` 2022-08-24T06:16:36,494 ## Using the function `wrds_update`. 2022-08-24T06:16:36,495 Two arguments `table_name` and `schema` are required. 2022-08-24T06:16:36,495 ### 1. WRDS Settings 2022-08-24T06:16:36,496 Set `WRDS_ID` using either `wrds_id=your_wrds_id` in the function call or the environment variable `WRDS_ID`. 2022-08-24T06:16:36,496 ### 2. Environment variables 2022-08-24T06:16:36,497 The software 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`. 2022-08-24T06:16:36,497 ### 3. Table settings 2022-08-24T06:16:36,497 To tailor your request, specify the following arguments: 2022-08-24T06:16:36,498 - `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`. 2022-08-24T06:16:36,498 - `fix_cr`: set to `True` to fix characters. Default value is `False`. 2022-08-24T06:16:36,499 - `drop`: add column names to be dropped (e.g., `drop="id name"` will drop columns `id` and `name`). 2022-08-24T06:16:36,499 - `obs`: add maxium number of observations (e.g., `obs=10` will import the first 10 rows from the table on WRDS). 2022-08-24T06:16:36,499 - `rename`: rename columns (e.g., `rename="fee=mngt_fee"` renames `fee` to `mngt_fee`). 2022-08-24T06:16:36,500 - `force`: set to `True` to force update. Default value is `False`. 2022-08-24T06:16:36,500 ## Importing SAS data into PostgreSQL 2022-08-24T06:16:36,501 The software can also upload SAS file directly to PostgreSQL. 2022-08-24T06:16:36,501 You need to have local SAS in order to use this function. 2022-08-24T06:16:36,501 Use `fpath` to specify the path to the file to be imported 2022-08-24T06:16:36,502 ### Examples 2022-08-24T06:16:36,502 Here are some examples. 2022-08-24T06:16:36,503 If you are at the home directory of this git repo, you can import and use the software as shown below. 2022-08-24T06:16:36,504 To install it from Github: 2022-08-24T06:16:36,504 ``` 2022-08-24T06:16:36,505 sudo -H pip3 install git+https://github.com/iangow/wrds2pg --upgrade 2022-08-24T06:16:36,505 ``` 2022-08-24T06:16:36,505 This software is also available from PyPI. To install it from [PyPI](https://pypi.org/project/wrds2pg/): 2022-08-24T06:16:36,506 ``` 2022-08-24T06:16:36,506 pip3 install wrds2pg 2022-08-24T06:16:36,506 ``` 2022-08-24T06:16:36,507 Example usage: 2022-08-24T06:16:36,507 ```py 2022-08-24T06:16:36,507 from wrds2pg import wrds_update 2022-08-24T06:16:36,508 # 1. Download crsp.mcti from wrds and upload to pg as crps.mcti 2022-08-24T06:16:36,508 # Simplest version 2022-08-24T06:16:36,509 wrds_update(table_name="mcti", schema="crsp") 2022-08-24T06:16:36,509 # Tailored arguments 2022-08-24T06:16:36,509 wrds_update(table_name="mcti", schema="crsp", host=your_pghost, 2022-08-24T06:16:36,510 dbname=your_pg_database, 2022-08-24T06:16:36,510 fix_missing=True, fix_cr=True, drop="b30ret b30ind", obs=10, 2022-08-24T06:16:36,510 rename="caldt=calendar_date", force=True) 2022-08-24T06:16:36,511 # 2. Upload test.sas7dbat to pg as crsp.mcti 2022-08-24T06:16:36,511 wrds_update(table_name="mcti", schema="crsp", fpath="your_path/test.sas7dbat") 2022-08-24T06:16:36,512 ``` 2022-08-24T06:16:36,512 ### Report bugs 2022-08-24T06:16:36,512 Author: Ian Gow, 2022-08-24T06:16:36,513 Contributor: Jingyu Zhang, 2022-08-24T06:16:36,513 running dist_info 2022-08-24T06:16:37,135 creating /tmp/pip-modern-metadata-b25kfr10/wrds2pg.egg-info 2022-08-24T06:16:37,763 writing /tmp/pip-modern-metadata-b25kfr10/wrds2pg.egg-info/PKG-INFO 2022-08-24T06:16:38,358 writing dependency_links to /tmp/pip-modern-metadata-b25kfr10/wrds2pg.egg-info/dependency_links.txt 2022-08-24T06:16:41,310 writing requirements to /tmp/pip-modern-metadata-b25kfr10/wrds2pg.egg-info/requires.txt 2022-08-24T06:16:41,903 writing top-level names to /tmp/pip-modern-metadata-b25kfr10/wrds2pg.egg-info/top_level.txt 2022-08-24T06:16:41,906 writing manifest file '/tmp/pip-modern-metadata-b25kfr10/wrds2pg.egg-info/SOURCES.txt' 2022-08-24T06:16:42,616 reading manifest file '/tmp/pip-modern-metadata-b25kfr10/wrds2pg.egg-info/SOURCES.txt' 2022-08-24T06:16:42,619 adding license file 'LICENCE' 2022-08-24T06:16:42,624 writing manifest file '/tmp/pip-modern-metadata-b25kfr10/wrds2pg.egg-info/SOURCES.txt' 2022-08-24T06:16:42,627 creating '/tmp/pip-modern-metadata-b25kfr10/wrds2pg-1.0.16.dist-info' 2022-08-24T06:16:42,840 adding license file "LICENCE" (matched pattern "LICEN[CS]E*") 2022-08-24T06:16:43,074 Preparing metadata (pyproject.toml): finished with status 'done' 2022-08-24T06:16:43,089 Source in /tmp/pip-wheel-txy3_bzy/wrds2pg_e7bf5996a7354b88a09941d5c7009ee7 has version 1.0.16, which satisfies requirement wrds2pg==1.0.16 from https://files.pythonhosted.org/packages/ec/17/b23b515c3360befddb0e907abe4226ddfdd0573d7924902fc835f9619fce/wrds2pg-1.0.16.tar.gz#sha256=40436537f0eadf746e67827dd2c2049e9cf666ee0ae201884969faf38960a66b 2022-08-24T06:16:43,092 Removed wrds2pg==1.0.16 from https://files.pythonhosted.org/packages/ec/17/b23b515c3360befddb0e907abe4226ddfdd0573d7924902fc835f9619fce/wrds2pg-1.0.16.tar.gz#sha256=40436537f0eadf746e67827dd2c2049e9cf666ee0ae201884969faf38960a66b from build tracker '/tmp/pip-build-tracker-towul9mx' 2022-08-24T06:16:43,105 Created temporary directory: /tmp/pip-unpack-gowe21fe 2022-08-24T06:16:43,107 Building wheels for collected packages: wrds2pg 2022-08-24T06:16:43,117 Created temporary directory: /tmp/pip-wheel-_eso8hu2 2022-08-24T06:16:43,117 Destination directory: /tmp/pip-wheel-_eso8hu2 2022-08-24T06:16:43,123 Building wheel for wrds2pg (pyproject.toml): started 2022-08-24T06:16:43,125 Running command Building wheel for wrds2pg (pyproject.toml) 2022-08-24T06:16:48,855 # WRDS (or SAS) to PostgreSQL 2022-08-24T06:16:48,856 This software has two functions: 2022-08-24T06:16:48,857 - Download tables from [WRDS](https://wrds-web.wharton.upenn.edu/wrds/) and feed them to a PostgreSQL database. (Requires access to WRDS and to the data in question.) 2022-08-24T06:16:48,857 - Import a SAS file (`*.sas7dbat`) into a PostgreSQL database. 2022-08-24T06:16:48,858 ## Requirements 2022-08-24T06:16:48,859 ### 1. Python 2022-08-24T06:16:48,859 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. 2022-08-24T06:16:48,860 These dependencies are installed when you use Pip (see instructions below). 2022-08-24T06:16:48,860 ### 2. A WRDS ID 2022-08-24T06:16:48,861 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. 2022-08-24T06:16:48,861 Copy that key to the WRDS server from the terminal on your computer. 2022-08-24T06:16:48,861 (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.) 2022-08-24T06:16:48,862 Here's code (for me) to create the key and send it to WRDS: 2022-08-24T06:16:48,862 ``` 2022-08-24T06:16:48,862 ssh-keygen -t rsa 2022-08-24T06:16:48,863 cat ~/.ssh/id_rsa.pub | ssh iangow@wrds-cloud.wharton.upenn.edu "cat >> ~/.ssh/authorized_keys" 2022-08-24T06:16:48,863 ``` 2022-08-24T06:16:48,863 Use an empty passphrase in setting up the key so that the scripts can run without user intervention. 2022-08-24T06:16:48,864 ### 3. PostgreSQL 2022-08-24T06:16:48,864 You should have a PostgreSQL database to store the data. 2022-08-24T06:16:48,865 ### 4. Environment variables 2022-08-24T06:16:48,865 Environment variables that the code can use include: 2022-08-24T06:16:48,866 - `PGDATABASE`: The name of the PostgreSQL database you use. 2022-08-24T06:16:48,866 - `PGUSER`: Your username on the PostgreSQL database. 2022-08-24T06:16:48,867 - `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) 2022-08-24T06:16:48,867 - `WRDS_ID`: Your [WRDS](https://wrds-web.wharton.upenn.edu/wrds/) ID. 2022-08-24T06:16:48,868 I set these environment variables in `~/.profile`: 2022-08-24T06:16:48,869 ``` 2022-08-24T06:16:48,869 export PGHOST="localhost" 2022-08-24T06:16:48,869 export PGDATABASE="crsp" 2022-08-24T06:16:48,870 export WRDS_ID="iangow" 2022-08-24T06:16:48,870 export PGUSER="igow" 2022-08-24T06:16:48,870 ``` 2022-08-24T06:16:48,871 ## Using the function `wrds_update`. 2022-08-24T06:16:48,872 Two arguments `table_name` and `schema` are required. 2022-08-24T06:16:48,873 ### 1. WRDS Settings 2022-08-24T06:16:48,873 Set `WRDS_ID` using either `wrds_id=your_wrds_id` in the function call or the environment variable `WRDS_ID`. 2022-08-24T06:16:48,874 ### 2. Environment variables 2022-08-24T06:16:48,874 The software 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`. 2022-08-24T06:16:48,874 ### 3. Table settings 2022-08-24T06:16:48,875 To tailor your request, specify the following arguments: 2022-08-24T06:16:48,876 - `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`. 2022-08-24T06:16:48,876 - `fix_cr`: set to `True` to fix characters. Default value is `False`. 2022-08-24T06:16:48,876 - `drop`: add column names to be dropped (e.g., `drop="id name"` will drop columns `id` and `name`). 2022-08-24T06:16:48,877 - `obs`: add maxium number of observations (e.g., `obs=10` will import the first 10 rows from the table on WRDS). 2022-08-24T06:16:48,877 - `rename`: rename columns (e.g., `rename="fee=mngt_fee"` renames `fee` to `mngt_fee`). 2022-08-24T06:16:48,877 - `force`: set to `True` to force update. Default value is `False`. 2022-08-24T06:16:48,878 ## Importing SAS data into PostgreSQL 2022-08-24T06:16:48,879 The software can also upload SAS file directly to PostgreSQL. 2022-08-24T06:16:48,879 You need to have local SAS in order to use this function. 2022-08-24T06:16:48,879 Use `fpath` to specify the path to the file to be imported 2022-08-24T06:16:48,880 ### Examples 2022-08-24T06:16:48,880 Here are some examples. 2022-08-24T06:16:48,881 If you are at the home directory of this git repo, you can import and use the software as shown below. 2022-08-24T06:16:48,882 To install it from Github: 2022-08-24T06:16:48,882 ``` 2022-08-24T06:16:48,883 sudo -H pip3 install git+https://github.com/iangow/wrds2pg --upgrade 2022-08-24T06:16:48,883 ``` 2022-08-24T06:16:48,883 This software is also available from PyPI. To install it from [PyPI](https://pypi.org/project/wrds2pg/): 2022-08-24T06:16:48,884 ``` 2022-08-24T06:16:48,884 pip3 install wrds2pg 2022-08-24T06:16:48,884 ``` 2022-08-24T06:16:48,885 Example usage: 2022-08-24T06:16:48,885 ```py 2022-08-24T06:16:48,885 from wrds2pg import wrds_update 2022-08-24T06:16:48,886 # 1. Download crsp.mcti from wrds and upload to pg as crps.mcti 2022-08-24T06:16:48,886 # Simplest version 2022-08-24T06:16:48,887 wrds_update(table_name="mcti", schema="crsp") 2022-08-24T06:16:48,887 # Tailored arguments 2022-08-24T06:16:48,888 wrds_update(table_name="mcti", schema="crsp", host=your_pghost, 2022-08-24T06:16:48,888 dbname=your_pg_database, 2022-08-24T06:16:48,888 fix_missing=True, fix_cr=True, drop="b30ret b30ind", obs=10, 2022-08-24T06:16:48,889 rename="caldt=calendar_date", force=True) 2022-08-24T06:16:48,889 # 2. Upload test.sas7dbat to pg as crsp.mcti 2022-08-24T06:16:48,890 wrds_update(table_name="mcti", schema="crsp", fpath="your_path/test.sas7dbat") 2022-08-24T06:16:48,890 ``` 2022-08-24T06:16:48,891 ### Report bugs 2022-08-24T06:16:48,891 Author: Ian Gow, 2022-08-24T06:16:48,891 Contributor: Jingyu Zhang, 2022-08-24T06:16:48,892 running bdist_wheel 2022-08-24T06:16:50,082 running build 2022-08-24T06:16:50,083 running build_py 2022-08-24T06:16:50,710 creating build 2022-08-24T06:16:50,710 creating build/lib 2022-08-24T06:16:50,712 creating build/lib/wrds2pg 2022-08-24T06:16:50,714 copying wrds2pg/__init__.py -> build/lib/wrds2pg 2022-08-24T06:16:50,718 copying wrds2pg/wrds2pg.py -> build/lib/wrds2pg 2022-08-24T06:16:51,977 installing to build/bdist.linux-armv7l/wheel 2022-08-24T06:16:51,978 running install 2022-08-24T06:16:52,039 running install_lib 2022-08-24T06:16:52,714 creating build/bdist.linux-armv7l 2022-08-24T06:16:52,715 creating build/bdist.linux-armv7l/wheel 2022-08-24T06:16:52,718 creating build/bdist.linux-armv7l/wheel/wrds2pg 2022-08-24T06:16:52,720 copying build/lib/wrds2pg/__init__.py -> build/bdist.linux-armv7l/wheel/wrds2pg 2022-08-24T06:16:52,724 copying build/lib/wrds2pg/wrds2pg.py -> build/bdist.linux-armv7l/wheel/wrds2pg 2022-08-24T06:16:52,728 running install_egg_info 2022-08-24T06:16:54,009 running egg_info 2022-08-24T06:16:54,630 writing wrds2pg.egg-info/PKG-INFO 2022-08-24T06:16:55,222 writing dependency_links to wrds2pg.egg-info/dependency_links.txt 2022-08-24T06:16:58,156 writing requirements to wrds2pg.egg-info/requires.txt 2022-08-24T06:16:58,746 writing top-level names to wrds2pg.egg-info/top_level.txt 2022-08-24T06:16:58,789 reading manifest file 'wrds2pg.egg-info/SOURCES.txt' 2022-08-24T06:16:58,793 adding license file 'LICENCE' 2022-08-24T06:16:58,797 writing manifest file 'wrds2pg.egg-info/SOURCES.txt' 2022-08-24T06:16:58,800 Copying wrds2pg.egg-info to build/bdist.linux-armv7l/wheel/wrds2pg-1.0.16-py3.7.egg-info 2022-08-24T06:16:58,821 running install_scripts 2022-08-24T06:16:58,975 adding license file "LICENCE" (matched pattern "LICEN[CS]E*") 2022-08-24T06:16:58,983 creating build/bdist.linux-armv7l/wheel/wrds2pg-1.0.16.dist-info/WHEEL 2022-08-24T06:16:58,987 creating '/tmp/pip-wheel-_eso8hu2/tmpbzvrqqr2/wrds2pg-1.0.16-py3-none-any.whl' and adding 'build/bdist.linux-armv7l/wheel' to it 2022-08-24T06:16:58,991 adding 'wrds2pg/__init__.py' 2022-08-24T06:16:58,998 adding 'wrds2pg/wrds2pg.py' 2022-08-24T06:16:59,002 adding 'wrds2pg-1.0.16.dist-info/LICENCE' 2022-08-24T06:16:59,005 adding 'wrds2pg-1.0.16.dist-info/METADATA' 2022-08-24T06:16:59,007 adding 'wrds2pg-1.0.16.dist-info/WHEEL' 2022-08-24T06:16:59,219 adding 'wrds2pg-1.0.16.dist-info/top_level.txt' 2022-08-24T06:16:59,221 adding 'wrds2pg-1.0.16.dist-info/RECORD' 2022-08-24T06:16:59,223 removing build/bdist.linux-armv7l/wheel 2022-08-24T06:16:59,488 Building wheel for wrds2pg (pyproject.toml): finished with status 'done' 2022-08-24T06:16:59,501 Created wheel for wrds2pg: filename=wrds2pg-1.0.16-py3-none-any.whl size=9626 sha256=b42a003e724ff3690da66991638a7180c1b39d37529ed63df71168693a20f532 2022-08-24T06:16:59,503 Stored in directory: /tmp/pip-ephem-wheel-cache-mmzl6g3k/wheels/b8/69/7a/93d512e7fa53268773953b27a86a1ea50e851fc07ef53fc477 2022-08-24T06:16:59,525 Successfully built wrds2pg 2022-08-24T06:16:59,532 Removed build tracker: '/tmp/pip-build-tracker-towul9mx'