diff --git a/CHANGELOG.md b/CHANGELOG.md index 00db6a52e5d281f4f58fdca7adfc4025c90fa838..fe941d552e76a9e014ba4f7723842d17ad040b4b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,7 @@ ## Unreleased ### Added +- Added the PolyChord sampler, which can be accessed by using `sampler='pypolychord'` in `run_sampler` - `emcee` now writes all progress to disk and can resume from a previous run. ### Changed diff --git a/Pipfile b/Pipfile index 258de82a4c2b72f9f7ae4017c89054e6d8dd8db6..2b2b4d23524873c3c066e9c06390e2414eb24601 100644 --- a/Pipfile +++ b/Pipfile @@ -6,11 +6,12 @@ name = "pypi" [packages] future = "*" corner = "*" -numpy = ">=1.9" +numpy = "==1.15.2" +ligotimegps = "<=1.2.3" matplotlib = "<3" scipy = ">=0.16" -pandas = "*" -deepdish = "*" +pandas = "==0.23.0" +deepdish = "==0.3.6" mock = "*" astropy = "<3" gwpy = "*" @@ -23,7 +24,6 @@ emcee = "*" nestle = "*" ptemcee = "*" pymc3 = "*" -pymultinest = "*" [requires] diff --git a/Pipfile.lock b/Pipfile.lock index 7300f095ed679ab40898a18ef20603994527611d..42634199226773a003c7358eae516c6cd9d1b8f8 100644 --- a/Pipfile.lock +++ b/Pipfile.lock @@ -1,7 +1,7 @@ { "_meta": { "hash": { - "sha256": "dec6b7c15df6450bdbd7946533a3cf8c8d554a48e7ca711787eaf5bfcba6c492" + "sha256": "7c1f82e7840646851cc40ded7939ef8a712f4d922ab5cbbceab652366c9a48dc" }, "pipfile-spec": 6, "requires": {}, @@ -23,26 +23,39 @@ }, "astropy": { "hashes": [ - "sha256:13cdf1ba17d2ecbafc9fcb20d82d2aa53f0fc116a815d17357f86c0180215ffc", - "sha256:22051a03bb268a0426a0170366e4680553028c5f9282f335c575a850e7eb85ef", - "sha256:32fbaf565bebbbc91b64271e1f08870cf23c63a7f852e848df932324dedc8a07", - "sha256:53979303beb386038ac6dd69c1d08b148d518a915c8c1f9c45179b5f752739fc", - "sha256:9f354bdde7fd1261b14379553dc3500956ddba56afc80c021f8592138d827a51", - "sha256:a8015f84c42051342a2a8ee710868e682b9775a3b7948fdc1e87124bcd6e69dc", - "sha256:b284f9452dc8330a0bec13713a739d5714f01de5c473a31df80f1719fe56956c", - "sha256:d46f4e578c2e0b69b0ae4958c426ca12cbf7849c5cadba9200aa8866ae107dfe", - "sha256:d918ce1da85ee8c90f3e1f40be6a6743d33bcd992fe813bfc193dac8fd7a544a" + "sha256:010f5450a45a3d510aa46b98008a50bccfb8f5bc1430736faf0bc953e085c93c", + "sha256:0988be682b22c85e70b752967613342a7952075074e823fcb58fd516287d221c", + "sha256:0c14fcd0ad8ea3388392587a17384b3574ccc5e2f7db9f8c03b1ee7d78a26e4c", + "sha256:104b64643fb6ab05cfdf4a2f0f61d7b85f0a7f36a759683dea1ae9c8b5d957f1", + "sha256:1a2a9731cfa7e70104effa507934c0ff61463daf9cf34085ad63ee8f4af1d46e", + "sha256:424be12ee173267d8d0a209bd292336dda87f463fb201ec76a974eb25101016b", + "sha256:4847d1f94affa3071a8b091857e46d0b0ecf646899f29bb50c5b8cf5eb276a9a", + "sha256:56f39e872e80e0eefc5c84f62588e2ec570decf892b2cbc2860d0bde01324e80", + "sha256:8f4930da4c5fea2ed43452647b9a7da693d0be475a0fd0da1433b324b2d1b1b6", + "sha256:91a9394690ba0fc6ca49dc14bc76a8334c7b5c95d6e1a06f09673a089d5a9eae", + "sha256:9a4b207690b1e5fd308540d92888203c9f193a8900ca0f9bb1536a0230fdabf4", + "sha256:9a9da74df7a3b238778af7922921a0063b85f97e172d853b806fb6d2c5354bec", + "sha256:a437b92b95d617bb16972697f756ebf1409ccce0070fa3db90b596c9d6f0a2b2", + "sha256:a678f2db5e31b1af88b2d70b7577b8e3400e4bc153ff8cc0b025cc966475220c", + "sha256:b0182debddf44a3b7b5ae2919cd0c719c61bc7eb8bb0dd9131052ed9f1305b5c", + "sha256:becc6d9c784f86c9411ea343a297df23e56d1d174b1b504f78f834663436eae5", + "sha256:c409de7030215c5d5d8cbb405164bbfb8e546732babbeb096f25a8975106d964", + "sha256:ce094f45e4fa1cf8f3980c445d7cd75706bd73002ef62fb666851d4683460372", + "sha256:e15cdfc73962f54d4a1a696774bd622ba0a8936d70dec2444bd85c71a02faab8", + "sha256:e6279dc78aeaae8341d57719d166dda8493f381091f0ea39829514562a98d3bb", + "sha256:e6312b9a3277fcf63576ed5c9b194d388911192d3f0138880471742c7d850efa", + "sha256:efb07dd5ab924f6c43147700fc1f3d0968ab229ff26952ca9d062539c7ba57c5", + "sha256:f5776a9a4798c6ef7d2d0ea66c15e06127c3d333ee4561db9bebf1262bf2dcd8" ], "index": "pypi", - "version": "==2.0.8" + "version": "==2.0.11" }, "atomicwrites": { "hashes": [ - "sha256:0312ad34fcad8fac3704d441f7b317e50af620823353ec657a53e981f92920c0", - "sha256:ec9ae8adaae229e4f8446952d204a3e4b5fdd2d099f9be3aaf556120135fb3ee" + "sha256:03472c30eb2c5d1ba9227e4c2ca66ab8287fbfbbda3888aa93dc2e28fc6811b4", + "sha256:75a9445bac02d8d058d5e1fe689654ba5a6556a1dfd8ce6ec55a0ed79866cfa6" ], - "markers": "python_version != '3.1.*' and python_version != '3.2.*' and python_version >= '2.7' and python_version != '3.3.*' and python_version != '3.0.*'", - "version": "==1.2.1" + "version": "==1.3.0" }, "attrs": { "hashes": [ @@ -97,27 +110,27 @@ }, "cryptography": { "hashes": [ - "sha256:02602e1672b62e803e08617ec286041cc453e8d43f093a5f4162095506bc0beb", - "sha256:10b48e848e1edb93c1d3b797c83c72b4c387ab0eb4330aaa26da8049a6cbede0", - "sha256:17db09db9d7c5de130023657be42689d1a5f60502a14f6f745f6f65a6b8195c0", - "sha256:227da3a896df1106b1a69b1e319dce218fa04395e8cc78be7e31ca94c21254bc", - "sha256:2cbaa03ac677db6c821dac3f4cdfd1461a32d0615847eedbb0df54bb7802e1f7", - "sha256:31db8febfc768e4b4bd826750a70c79c99ea423f4697d1dab764eb9f9f849519", - "sha256:4a510d268e55e2e067715d728e4ca6cd26a8e9f1f3d174faf88e6f2cb6b6c395", - "sha256:6a88d9004310a198c474d8a822ee96a6dd6c01efe66facdf17cb692512ae5bc0", - "sha256:76936ec70a9b72eb8c58314c38c55a0336a2b36de0c7ee8fb874a4547cadbd39", - "sha256:7e3b4aecc4040928efa8a7cdaf074e868af32c58ffc9bb77e7bf2c1a16783286", - "sha256:8168bcb08403ef144ff1fb880d416f49e2728101d02aaadfe9645883222c0aa5", - "sha256:8229ceb79a1792823d87779959184a1bf95768e9248c93ae9f97c7a2f60376a1", - "sha256:8a19e9f2fe69f6a44a5c156968d9fc8df56d09798d0c6a34ccc373bb186cee86", - "sha256:8d10113ca826a4c29d5b85b2c4e045ffa8bad74fb525ee0eceb1d38d4c70dfd6", - "sha256:be495b8ec5a939a7605274b6e59fbc35e76f5ad814ae010eb679529671c9e119", - "sha256:dc2d3f3b1548f4d11786616cf0f4415e25b0fbecb8a1d2cd8c07568f13fdde38", - "sha256:e4aecdd9d5a3d06c337894c9a6e2961898d3f64fe54ca920a72234a3de0f9cb3", - "sha256:e79ab4485b99eacb2166f3212218dd858258f374855e1568f728462b0e6ee0d9", - "sha256:f995d3667301e1754c57b04e0bae6f0fa9d710697a9f8d6712e8cca02550910f" - ], - "version": "==2.3.1" + "sha256:05b3ded5e88747d28ee3ef493f2b92cbb947c1e45cf98cfef22e6d38bb67d4af", + "sha256:06826e7f72d1770e186e9c90e76b4f84d90cdb917b47ff88d8dc59a7b10e2b1e", + "sha256:08b753df3672b7066e74376f42ce8fc4683e4fd1358d34c80f502e939ee944d2", + "sha256:2cd29bd1911782baaee890544c653bb03ec7d95ebeb144d714b0f5c33deb55c7", + "sha256:31e5637e9036d966824edaa91bf0aa39dc6f525a1c599f39fd5c50340264e079", + "sha256:42fad67d7072216a49e34f923d8cbda9edacbf6633b19a79655e88a1b4857063", + "sha256:4946b67235b9d2ea7d31307be9d5ad5959d6c4a8f98f900157b47abddf698401", + "sha256:522fdb2809603ee97a4d0ef2f8d617bc791eb483313ba307cb9c0a773e5e5695", + "sha256:6f841c7272645dd7c65b07b7108adfa8af0aaea57f27b7f59e01d41f75444c85", + "sha256:7d335e35306af5b9bc0560ca39f740dfc8def72749645e193dd35be11fb323b3", + "sha256:8504661ffe324837f5c4607347eeee4cf0fcad689163c6e9c8d3b18cf1f4a4ad", + "sha256:9260b201ce584d7825d900c88700aa0bd6b40d4ebac7b213857bd2babee9dbca", + "sha256:9a30384cc402eac099210ab9b8801b2ae21e591831253883decdb4513b77a3cd", + "sha256:9e29af877c29338f0cab5f049ccc8bd3ead289a557f144376c4fbc7d1b98914f", + "sha256:ab50da871bc109b2d9389259aac269dd1b7c7413ee02d06fe4e486ed26882159", + "sha256:b13c80b877e73bcb6f012813c6f4a9334fcf4b0e96681c5a15dac578f2eedfa0", + "sha256:bfe66b577a7118e05b04141f0f1ed0959552d45672aa7ecb3d91e319d846001e", + "sha256:e091bd424567efa4b9d94287a952597c05d22155a13716bf5f9f746b9dc906d3", + "sha256:fa2b38c8519c5a3aa6e2b4e1cf1a549b54acda6adb25397ff542068e73d1ed00" + ], + "version": "==2.5" }, "cycler": { "hashes": [ @@ -150,60 +163,58 @@ }, "future": { "hashes": [ - "sha256:e39ced1ab767b5936646cedba8bcce582398233d6a627067d4c6a454c90cfedb" + "sha256:67045236dcfd6816dc439556d009594abf643e5eb48992e36beac09c2ca659b8" ], "index": "pypi", - "version": "==0.16.0" + "version": "==0.17.1" }, - "gwpy": { + "gwosc": { "hashes": [ - "sha256:3b6d2ba9a8844f6321c62ff3b9439f119e6447194b3d234944b5120a0856b5cc", - "sha256:74c5066e19e2b10dd0571ac0f0bd588b302d1f6de639a994021a580bb90d93f4" + "sha256:18ed53e2b0260bc2f41bfebcc196465081d97b92860b7083e321f9c39fb98ee2", + "sha256:f1ba1c0f076ddcc323427e22ff4516ff0ca7bead72a0131c6314ec8afeb750e4" ], - "index": "pypi", - "version": "==0.12.2" + "version": "==0.3.4" }, - "h5py": { + "gwpy": { "hashes": [ - "sha256:0f8cd2acbacf3177b4427ed42639c911667b1f24d923388ab1f8ad466a12be5e", - "sha256:11277e3879098f921ee9e29105b20591e1dfdd44963357399f2abaa1a280c560", - "sha256:1241dec0c94ac32f3285cac1d6f44beabf80423e422ab03bd2686d731a8a9294", - "sha256:17b8187de0b3a945d8e8d031e7eb6ece2fce90791f9c5fde36f4396bf38fdde1", - "sha256:2f30007d0796788a454c1293262f19f25e6428317d3d386f78138fba2a44e37d", - "sha256:308e0758587ee16d4e73e7f2f8aae8351091e343bf0a43d2f697f9535465c816", - "sha256:37cacddf0e8209905f52537a8cf71da0dd9a4de62bd79247274c97b24a408997", - "sha256:38a23bb599748adf23d77f74885c0de6f4a7d9baa42f74e476bbf90fba2b47dd", - "sha256:47ab18b7b7bbc36fd2b606289b703b6f0ee915b923d6ad94dd17ac80ebffc280", - "sha256:486c78330af0bf33f5077b51d1888c0739c3cd1a03d5aade0d48572b3b5690ca", - "sha256:4e2183458d6ef1ae87dfb5d6acd0786359336cd9ac0ece6396c09b59fdaa3bd6", - "sha256:51d0595c3e58814c831f6cd2b664a5bf9590e26262c1d541b380d041e4fcb3c0", - "sha256:56d259d56822b70881760b243957f04a0cf133f0ec65eae6a33f562826aee899", - "sha256:5e6e777653169a3cc24ea56bb3d8c845ea391f8914c35bb6f350b0753a52891c", - "sha256:62bfb0ebb0f59e5dccc0b0dbbc0fc40dd1d1e09d04c0dc71f89790231531d4a2", - "sha256:67d89b64debfa021b54aa6f24bbf008403bd144748a0148596b518bce80d2fc4", - "sha256:6bf38571f555fa214493ec6349d29024cc5f313bf1715b09f236c553fd22ae4d", - "sha256:9214ca445c18a37bfe9c165982c0e317e2f21f035c8d635d1c6d9fcbaf35b7a8", - "sha256:ab0c52850428d2e86029935389379c2c97f752e76b616da851deec8a4484f8ec", - "sha256:b2eff336697d8dfd712c5d93fef9f4e4d3e97d9d8c258801836b8664a239e07a", - "sha256:bb33fabc0b8f3fe3bb0f8d6821b2fad5b2a64c27a0808e8d1c5c1e3362062064", - "sha256:bd5353ab342bae1262b04745934cc1565df4cbc8d6a979a0c98f42209bd5c265", - "sha256:bd73444efd1ac06dac27b8405bbe8791a02fd1bc8a2fa0e575257f90b7b57467", - "sha256:bd932236a2ef91a75fee5d7f4ace80ab494c5a59cd092a67c9785ddb7fdc218c", - "sha256:c45650de228ace7731e4280e14fb687f6d5c29cd666c5b22b42492b035e994d6", - "sha256:d5c0c01da45f901a3d429e7ef9e7e22baa869e1affb8715f1bf94e6a30020740", - "sha256:d75035db5bde802a29f4f29f18bb7548863d29ac90ccbf2c04c11799bbbba2c3", - "sha256:dda88206dc9464923f27f601000bc5b152ac0bd6d0122f098d4f239150a70076", - "sha256:e1c2ac5d0aa232c0f60fecc6bd1122346885086a176f939b91058c4c980cc226", - "sha256:e626c65a8587921ebc7fb8d31a49addfdd0b9a9aa96315ea484c09803337b955" + "sha256:0b939629deb6eaea8d60cbe1faf242ddcc445e99392697e03fe7a37d80d798d6", + "sha256:3da53fb6da72cae31b172093be90bc528109aa471f6b94507d74dd6a087fb930" ], - "version": "==2.8.0" + "index": "pypi", + "version": "==0.13.1" }, - "idna": { + "h5py": { "hashes": [ - "sha256:156a6814fb5ac1fc6850fb002e0852d56c0c8d2531923a51032d1b70760e186e", - "sha256:684a38a6f903c1d71d6d5fac066b58d7768af4de2b832e426ec79c30daa94a16" - ], - "version": "==2.7" + "sha256:05750b91640273c69989c657eaac34b091abdd75efc8c4824c82aaf898a2da0a", + "sha256:082a27208aa3a2286e7272e998e7e225b2a7d4b7821bd840aebf96d50977abbb", + "sha256:08e2e8297195f9e813e894b6c63f79372582787795bba2014a2db6a2de95f713", + "sha256:0dd2adeb2e9de5081eb8dcec88874e7fd35dae9a21557be3a55a3c7d491842a4", + "sha256:0f94de7a10562b991967a66bbe6dda9808e18088676834c0a4dcec3fdd3bcc6f", + "sha256:106e42e2e01e486a3d32eeb9ba0e3a7f65c12fa8998d63625fa41fb8bdc44cdb", + "sha256:1606c66015f04719c41a9863c156fc0e6b992150de21c067444bcb82e7d75579", + "sha256:1854c4beff9961e477e133143c5e5e355dac0b3ebf19c52cf7cc1b1ef757703c", + "sha256:1e9fb6f1746500ea91a00193ce2361803c70c6b13f10aae9a33ad7b5bd28e800", + "sha256:2cca17e80ddb151894333377675db90cd0279fa454776e0a4f74308376afd050", + "sha256:30e365e8408759db3778c361f1e4e0fe8e98a875185ae46c795a85e9bafb9cdf", + "sha256:3206bac900e16eda81687d787086f4ffd4f3854980d798e191a9868a6510c3ae", + "sha256:3c23d72058647cee19b30452acc7895621e2de0a0bd5b8a1e34204b9ea9ed43c", + "sha256:407b5f911a83daa285bbf1ef78a9909ee5957f257d3524b8606be37e8643c5f0", + "sha256:4162953714a9212d373ac953c10e3329f1e830d3c7473f2a2e4f25dd6241eef0", + "sha256:5fc7aba72a51b2c80605eba1c50dbf84224dcd206279d30a75c154e5652e1fe4", + "sha256:713ac19307e11de4d9833af0c4bd6778bde0a3d967cafd2f0f347223711c1e31", + "sha256:71b946d80ef3c3f12db157d7778b1fe74a517ca85e94809358b15580983c2ce2", + "sha256:8cc4aed71e20d87e0a6f02094d718a95252f11f8ed143bc112d22167f08d4040", + "sha256:9d41ca62daf36d6b6515ab8765e4c8c4388ee18e2a665701fef2b41563821002", + "sha256:a744e13b000f234cd5a5b2a1f95816b819027c57f385da54ad2b7da1adace2f3", + "sha256:b087ee01396c4b34e9dc41e3a6a0442158206d383c19c7d0396d52067b17c1cb", + "sha256:b0f03af381d33306ce67d18275b61acb4ca111ced645381387a02c8a5ee1b796", + "sha256:b9e4b8dfd587365bdd719ae178fa1b6c1231f81280b1375eef8626dfd8761bf3", + "sha256:c5dd4ec75985b99166c045909e10f0534704d102848b1d9f0992720e908928e7", + "sha256:d2b82f23cd862a9d05108fe99967e9edfa95c136f532a71cb3d28dc252771f50", + "sha256:e58a25764472af07b7e1c4b10b0179c8ea726446c7141076286e41891bf3a563", + "sha256:f3b49107fbfc77333fc2b1ef4d5de2abcd57e7ea3a1482455229494cf2da56ce" + ], + "version": "==2.9.0" }, "joblib": { "hashes": [ @@ -243,48 +254,43 @@ "sha256:efabbcd4f406b532206b8801058c8bab9e79645b9880329253ae3322b7b02cd5", "sha256:f923406e6b32c86309261b8195e24e18b6a8801df0cfc7814ac44017bfcb3939" ], - "markers": "python_version != '3.2.*' and python_version != '3.0.*' and python_version != '3.1.*' and python_version >= '2.7' and python_version != '3.3.*'", "version": "==1.0.1" }, "lalsuite": { "hashes": [ - "sha256:04851946d35129b4aaf8f70cdfeb8b907111cfa2910031b63c17f568e4309e13", - "sha256:288c623c855f9806bcaac27aa66ad684c60317b11df756dc6b5c321a769e177f", - "sha256:35450268f7e223ee9cf3246dfadfed80fd255d8312600329dc05d4bf582930bd", - "sha256:3e074fb2caf2189def95eaa89f85d6f497ee957476c18e8adb5be05aab501f0a", - "sha256:497f2ad84c5565e4e94e3696a5c4317ec4218b4070ee4a603c83e23147b81979", - "sha256:61952d7301c2c62aade8e1382964d67628eb721fb42191de1fc89fcd995e8553", - "sha256:a2d52070d946c76c1f5b3b4b37777136607b7285bf5aa485d978353666eaafdd", - "sha256:dd91c8445e94d92c4add4ccb2806c12a8fde9493ea29ac78063bba8863ea7801", - "sha256:df31cd918a20c82065f308184b39d9055f8271055d2da251c82aee85eceed244", - "sha256:e5da42137d118ac3fb368a4353dad40c5bbdf4f6a1c1918b811d103658cd862d" + "sha256:0701de9dcc8687fcd6be9247e6d7d65a1126330b14d18b6b9fd01ac05af49b79", + "sha256:0f9807882957eb9c4987c054b1cc2d0c7f63f74a9cd591fa0832e15c7fccc88c", + "sha256:49dcae78ed93d3e01712d5222b12a9d4d68653340eb90c671669e29ea6f2e8a2", + "sha256:660f84245d94d7464112a4c88d1e5e97e100e2f499a57d939ccb08273a9904bd", + "sha256:81f402434c622824efba13e814bc7c3e668c434aa28b5c44a76ebd04c1886bc0", + "sha256:8741743f8825fca268d8496de54d27047304f2112c200a904d74e5f8a56aabc6", + "sha256:9029612981092048d7ac196b0718191c34a9d4dda9c907bd65ac5fbacf61f407", + "sha256:c421d8012046cada221c14f2834d704efd6342152ef6a45756efd2142d62b897", + "sha256:d24deb45e3e1fbf2b9590f0c2f3c0568e7756e65428ad7d2fa023f445717c2a2", + "sha256:fb3af5e25eddec819c3bf65d0d2ab5df1bfbf9235070980ea319a546ff78ed07" ], "index": "pypi", - "version": "==6.49" + "version": "==6.52" }, "ligo-segments": { "hashes": [ - "sha256:373edab42206aff8b5f2ef4417a40a0b0150c53ba6613424ce0d996ca56e9d1f", - "sha256:6ac5bca4fe70325854f852ec2a6a30a36eddfa092fb370bd1865fee6ecc0d6e2", - "sha256:7694c568d31cb37223ccedab55e304adb2d34a6f3832ae18316e0d636d249335", - "sha256:871bca5de488f95b739837a8ebf84be91ba5116dfa20ce8f32e2f05b38b741d7", - "sha256:94159ab427422d4434dc9c07516a89fd7360ad27a64cb3d81b2015a27cd551ed", - "sha256:da4e2848b09046a1f81c03afd9c7293702c94a22b98d755e7d5806e65f206014" + "sha256:5edbcb88cae007c4e154a61cb2c9d0a6d6d4016c1ecaf0a59a667a267bd20e7a" ], - "version": "==1.0.1" + "version": "==1.2.0" }, "ligotimegps": { "hashes": [ "sha256:48a8bd249e1822ddb484e4e59477654c333d1fe7d6b0de37249b2dcae72c5c99", "sha256:79ee18df7f6806d522f68d278b0ac426094626a479af58c178f32d2b319919ba" ], + "index": "pypi", "version": "==1.2.3" }, "lscsoft-glue": { "hashes": [ - "sha256:a0ddf26fbb45a19b046510e630b6d39a1798f4cd89ba883a38b4f2f491d39d2b" + "sha256:c51a5703e33c8ca244ab50723dd5bf3984c3c6383838e77e9dd451678024a2a6" ], - "version": "==1.59.3" + "version": "==1.60.0" }, "matplotlib": { "hashes": [ @@ -324,11 +330,11 @@ }, "more-itertools": { "hashes": [ - "sha256:c187a73da93e7a8acc0001572aebc7e3c69daf7bf6881a2cea10650bd4420092", - "sha256:c476b5d3a34e12d40130bc2f935028b5f636df8f372dc2c1c01dc19681b2039e", - "sha256:fcbfeaea0be121980e15bc97b3817b5202ca73d0eae185b4550cbfce2a3ebb3d" + "sha256:38a936c0a6d98a38bcc2d03fdaaedaba9f412879461dd2ceff8d37564d6522e4", + "sha256:c0a5785b1109a6bd7fac76d6837fd1feca158e54e521ccd2ae8bfe393cc9d4fc", + "sha256:fe7a7cae1ccb57d33952113ff4fa1bc5f879963600ed74918f1236e212ee50b9" ], - "version": "==4.3.0" + "version": "==5.0.0" }, "nestle": { "hashes": [ @@ -339,35 +345,36 @@ }, "numexpr": { "hashes": [ - "sha256:0a14dff7e893dd21f299993a6107437c2c7dd37a8aeb51933a8c0ff33ed1e036", - "sha256:11f215d739495f3c88c9cdd84f0b7ee27b5c1d4348df9b16854933d8165a1f7b", - "sha256:1374c5a996d1e48c64b26fad48fe2540c41f10436fbbe35cca61f35c57bcaeab", - "sha256:21a9ea646a76b8fe98ac1e1fcd914c03addd3e4aa7feb040bc462b274a47b2cf", - "sha256:21c05fb3ee1be0ff3be0d6ef572bf0e5dad27bf5d90c067e1580127340e36e2d", - "sha256:2a05c3c6342b0c1416cb3e8eecaee5ce9387917781afc1a5d5c5f93f546b3735", - "sha256:34e4381246893ac27c21c39356ef27ab7176d326f5a86b05486718f1f505f794", - "sha256:3d1f2123d385e3790fc9f650950a79aaaa9ac62f8455bd9451263d29f37924f2", - "sha256:4ddec358f5082ea941bb316a6aa1fec068dea6f7ed1f60a1089b03340c1f58af", - "sha256:53f50dbbd1d41c7ae33bf6811f0a4a6a333ae592baf218e257c9e32190235cba", - "sha256:58349f46670aa4d1cef14f9c794dda307bf8578d383c7e602fe36de112f6afa0", - "sha256:5fc41e3652c7154ee5767a99b3fd72d81c3b01df364c42ccd2e89926c8fbbda5", - "sha256:618e4058e6a707007aebbf74c37d8156ac0c26870dd6b8495678ba3fd9aaef79", - "sha256:7419c43f1b22d3cd282480d753242588b2a0f449c6429f0999a2eebe0e5d7426", - "sha256:7bde656a67ce5368cf1d748c569d0132baf9813c45860b872f3a35294067c1e4", - "sha256:90cc7b1e051a57386d9b3125506a1a2f320964e017a9a5ce78a055b99e826ceb", - "sha256:9415b24d6f79528ef85be3afe7871e0f49ae2bbe28cc9cb0272db4edd136e443", - "sha256:9e292c060172f415888fb36f50fd2d4688797f66ec11eb9fbc33666cacbd5f68", - "sha256:ae5dae4d34fc57c47167a7c79603f9592da504fc077833afc259451bc29cec4c", - "sha256:bf62d6fa0453cec848c91179857a46e84f0812881d9bdfa29cda0672e599c9a5", - "sha256:d304f4bfe69ca3e81a992a90c2a0e53c7fbc82769eedff32db8204496e223bbc", - "sha256:e5456df5fabcd02f08aa06f0f61eee682649bd5e033ac7319f91a9f9c1d4d1c3", - "sha256:e83bd5e6e424cf0a6e7d9de97d4ecd2d978eed478104f4c65496b8ea7d148268", - "sha256:ed2c841e3ced875c34abc89987f5203fce53e563341e4f4b2ac615b419412f37", - "sha256:edc4af30bbe504946d036ad9f2c849ff2c8a837d8df2c7f9f0b7d8497e982743", - "sha256:ee8bc7201aa2f1962c67d27c326a11eef9df887d7b87b1278a1d4e722bf44375" - ], - "markers": "python_version != '3.2.*' and python_version != '3.0.*' and python_version != '3.1.*' and python_version >= '2.7' and python_version != '3.3.*'", - "version": "==2.6.8" + "sha256:066d7202d3374d42203ce8ba2b007f14397fd083946abafebbc962215ead1759", + "sha256:08196ac987324dc02147abcf1883b192aa5cd1a56a07c725310f1d0d703d5301", + "sha256:37b04292cbb1e20bfb3428d5aeebe2bdd13368d458e508998087e40b68d8cc95", + "sha256:426053be016a3584a10cae13f18692938ff7314988f69edd367b4ff60b370b5b", + "sha256:47c205a2bca8477eaaa766ca2b86001ca0df4b61ae407196a3ba2420932b5dca", + "sha256:4b65fe1b4565ccaab7a3617da1bd046987fb7dbc0bbe34e56aa08b05857259d1", + "sha256:5839cd5f95b4088659cc5f6d25936c6a03a75c23be37f94a2885db0f6f234531", + "sha256:5fe05f123e00170370c759734c395e5a4ae0ad4e6a3d370fd73e0dcd6669e665", + "sha256:62d2853df0233fc04374679de20f39b93fdb7a664a0ee403fdb8e722328c5d4d", + "sha256:688a25cfcd7be6fcce3f6d59fffca6105541e7a1598144b545b633a266e94113", + "sha256:6a0470a6c07eaa6aa27affb9ee89ce91070747e44172870b020fd3ebe318950a", + "sha256:6b70a0c372bb567ddb3039d046cccede284cee2a43688010a4110f6b2fe59421", + "sha256:7f4e121bd59f3b5f7bbd9ca8873c815277c4994b22cfff8a7d57bdef9d00e939", + "sha256:8213a3e84f3afadc0a4ab1fc0dab383482297f36dbf84b690bbe698b9b8c2ece", + "sha256:97920e6c37553571ce55f951080d9e2b28589c1337c3788b5ae66dae3a0131d2", + "sha256:9992ef8b9598a62364d46d4cb2f0f6285f4c77115f023dca821a50550044d8fc", + "sha256:9c6b4dfcc978ad50a72f83fbaf0fe4706088f3b2623e365bc05036db4948e15d", + "sha256:9ef58b5f8debcf0c573968f44709866210696aa476b0d22d9afe88da2bd70add", + "sha256:a64bfd49359df8f87c34ed601ce857213d8678e314d8c99b972b36e35ff8f98f", + "sha256:aa5b238af8f2915b39374d764ec0daa3d0a975a798f162c3ca30f1cd9fa9a274", + "sha256:ae5c73f7412b7e70c88f6b384ad61e123d909b0c81a8d5edd33239eb9b5b3111", + "sha256:c3850466765b9b374ff2ff40974a7b4b278b875f94314e038043f534aff8e139", + "sha256:e99213c7fa5ffd5572afe065bab7a8507d750221e3fbba43fc15151056d108a1", + "sha256:eac513cd2424c5f1b2c75bcb06402da407d74bb6f72584d599218228060c2468", + "sha256:ecb0d0a1ac843f2b8c7afdc0c3ec4fcfcc275bbd0750065cc4112fcd14904c90", + "sha256:ed96bc38a37fc34406ef76595235e5966d7d3a4123018e9a91d1b7307b4af425", + "sha256:ee4c526517d89f92c9b9f9c1937ab15c9e3d33864213b4488e1dd30fbc43c87f", + "sha256:fc218b777cdbb14fa8cff8f28175ee631bacabbdd41ca34e061325b6c44a6fa6" + ], + "version": "==2.6.9" }, "numpy": { "hashes": [ @@ -405,59 +412,44 @@ }, "pandas": { "hashes": [ - "sha256:11975fad9edbdb55f1a560d96f91830e83e29bed6ad5ebf506abda09818eaf60", - "sha256:12e13d127ca1b585dd6f6840d3fe3fa6e46c36a6afe2dbc5cb0b57032c902e31", - "sha256:1c87fcb201e1e06f66e23a61a5fea9eeebfe7204a66d99df24600e3f05168051", - "sha256:242e9900de758e137304ad4b5663c2eff0d798c2c3b891250bd0bd97144579da", - "sha256:26c903d0ae1542890cb9abadb4adcb18f356b14c2df46e4ff657ae640e3ac9e7", - "sha256:2e1e88f9d3e5f107b65b59cd29f141995597b035d17cc5537e58142038942e1a", - "sha256:31b7a48b344c14691a8e92765d4023f88902ba3e96e2e4d0364d3453cdfd50db", - "sha256:4fd07a932b4352f8a8973761ab4e84f965bf81cc750fb38e04f01088ab901cb8", - "sha256:5b24ca47acf69222e82530e89111dd9d14f9b970ab2cd3a1c2c78f0c4fbba4f4", - "sha256:647b3b916cc8f6aeba240c8171be3ab799c3c1b2ea179a3be0bd2712c4237553", - "sha256:66b060946046ca27c0e03e9bec9bba3e0b918bafff84c425ca2cc2e157ce121e", - "sha256:6efa9fa6e1434141df8872d0fa4226fc301b17aacf37429193f9d70b426ea28f", - "sha256:be4715c9d8367e51dbe6bc6d05e205b1ae234f0dc5465931014aa1c4af44c1ba", - "sha256:bea90da782d8e945fccfc958585210d23de374fa9294a9481ed2abcef637ebfc", - "sha256:d318d77ab96f66a59e792a481e2701fba879e1a453aefeebdb17444fe204d1ed", - "sha256:d785fc08d6f4207437e900ffead930a61e634c5e4f980ba6d3dc03c9581748c7", - "sha256:de9559287c4fe8da56e8c3878d2374abc19d1ba2b807bfa7553e912a8e5ba87c", - "sha256:f4f98b190bb918ac0bc0e3dd2ab74ff3573da9f43106f6dba6385406912ec00f", - "sha256:f71f1a7e2d03758f6e957896ed696254e2bc83110ddbc6942018f1a232dd9dad", - "sha256:fb944c8f0b0ab5c1f7846c686bc4cdf8cde7224655c12edcd59d5212cd57bec0" + "sha256:295cf212054b28f1d111f3ffff932a012601558424ec892f2450d6197f6eeb92", + "sha256:29960ea1783c59fe86b323799b130592149e0f7bb739149e7fc512b0272d9fc3", + "sha256:29dde0874d1efb8a346f8d919b0530a9ae788ad1003752376133e38df09e6fcb", + "sha256:2d6b7b152a6ba44627c60df291f773c4438df01653abcbec7fc556d6039f1705", + "sha256:5de7275fc7222211dcac603ea81f1e143c45f8ec41d2e21df71aad0c95c1097c", + "sha256:7261b3567804a70714cc2591e2f7f1e372379db9e140f9d7ffb4b8884eaa48f7", + "sha256:758b8f6c68bc99b2eb64e57092d3aa07bd68a774e92e7686e473e0d9c86a2309", + "sha256:835c5a2aeaa3cb5ef2a1d771c75ee3a73d6ad1b82cfc54677c8f863c75fa51bd", + "sha256:8398d7a47ae667a639ac4ee6724d7ef98602b5ff2b10b5b4d5e6ab45a8d596d2", + "sha256:84ab1d50590cb2d9554211f164dc1b1a216bc94da2ba922aed2690c83f248fd9", + "sha256:98054c04318ba46bb81433230c2e5fab6a68df916ccb5355d428907bfb16b257", + "sha256:9e5ee41d1550ec36093c95e30644e313df4b57c1cdead545754d9c113aecbbb5", + "sha256:d4495aba61060d87c634fc777ac15aecd1d176987e5ed0585a3ed7e2f4e6c1f7", + "sha256:d5f72c8239e46cfcc363c7e532a474b7ea3d8892b7b6e5ec0da6b3ebae2a07d3", + "sha256:d88f484a25ac212fd720b5f9b9686e83f86df2b091b51f4b7b1d9089bd842f79" ], "index": "pypi", - "version": "==0.23.4" - }, - "pathlib2": { - "hashes": [ - "sha256:8eb170f8d0d61825e09a95b38be068299ddeda82f35e96c3301a8a5e7604cb83", - "sha256:d1aa2a11ba7b8f7b21ab852b1fb5afb277e1bb99d5dfc663380b5015c0d80c5a" - ], - "markers": "python_version < '3.6'", - "version": "==2.3.2" + "version": "==0.23.0" }, "patsy": { "hashes": [ - "sha256:14269536ecedaae0a5a2f300faac7d0afa1cc47aa98c561f54ba7300d0ec4011", - "sha256:e05f38d5c38c8d216f0cc2b765b1069b433c92d628b954fb2fee68d13e42883b" + "sha256:5465be1c0e670c3a965355ec09e9a502bf2c4cbe4875e8528b0221190a8a5d40", + "sha256:f115cec4201e1465cd58b9866b0b0e7b941caafec129869057405bfe5b5e3991" ], - "markers": "python_version != '3.1.*' and python_version != '3.3.*' and python_version >= '2.7' and python_version != '3.2.*' and python_version != '3.0.*'", - "version": "==0.5.0" + "version": "==0.5.1" }, "pbr": { "hashes": [ - "sha256:1b8be50d938c9bb75d0eaf7eda111eec1bf6dc88a62a6412e33bf077457e0f45", - "sha256:b486975c0cafb6beeb50ca0e17ba047647f229087bd74e37f4a7e2cac17d2caa" + "sha256:a7953f66e1f82e4b061f43096a4bcc058f7d3d41de9b94ac871770e8bdd831a2", + "sha256:d717573351cfe09f49df61906cd272abaa759b3e91744396b804965ff7bff38b" ], - "version": "==4.2.0" + "version": "==5.1.2" }, "pluggy": { "hashes": [ "sha256:6e3836e39f4d36ae72840833db137f7b7d35105079aee6ec4a62d9f80d594dd1", "sha256:95eb8364a4708392bae89035f45341871286a333f749c3141c20573d2b3876e1" ], - "markers": "python_version != '3.1.*' and python_version != '3.2.*' and python_version >= '2.7' and python_version != '3.3.*' and python_version != '3.0.*'", "version": "==0.7.1" }, "ptemcee": { @@ -469,112 +461,99 @@ }, "py": { "hashes": [ - "sha256:06a30435d058473046be836d3fc4f27167fd84c45b99704f2fb5509ef61f9af1", - "sha256:50402e9d1c9005d759426988a492e0edaadb7f4e68bcddfea586bc7432d009c6" + "sha256:bf92637198836372b520efcba9e020c330123be8ce527e535d185ed4b6f45694", + "sha256:e76826342cefe3c3d5f7e8ee4316b80d1dd8a300781612ddbc765c17ba25a6c6" ], - "markers": "python_version != '3.1.*' and python_version != '3.2.*' and python_version >= '2.7' and python_version != '3.3.*' and python_version != '3.0.*'", - "version": "==1.6.0" + "version": "==1.7.0" }, "pycparser": { "hashes": [ "sha256:a988718abfad80b6b157acce7bf130a30876d27603738ac39f140993246b25b3" ], - "markers": "python_version != '3.2.*' and python_version >= '2.7' and python_version != '3.3.*' and python_version != '3.1.*' and python_version != '3.0.*'", "version": "==2.19" }, "pymc3": { "hashes": [ - "sha256:49639eb62e14f7735ecbb03fa79f1c5f59f2e971c8ce0168b86ed1929e2c14ee", - "sha256:6088e683c6d730bb21350a0f54ee083fa5a28e4d5ef52d57878141c9c20f21ee" - ], - "index": "pypi", - "version": "==3.5" - }, - "pymultinest": { - "hashes": [ - "sha256:42f1f5efa13c99b9faebd205151ac6136adfb86bb428a714deb3f489daa58f06", - "sha256:e5e76de90d226150659bc817e4a207556060bd91db1471e731d7734a7aa1826e" + "sha256:c00c0778d2451a348a9508f8b956fe280a0f9affd3f85140ac3948bc2902f5e9" ], "index": "pypi", - "version": "==2.6" + "version": "==3.6" }, "pyopenssl": { "hashes": [ - "sha256:26ff56a6b5ecaf3a2a59f132681e2a80afcc76b4f902f612f518f92c2a1bf854", - "sha256:6488f1423b00f73b7ad5167885312bb0ce410d3312eb212393795b53c8caa580" + "sha256:aeca66338f6de19d1aa46ed634c3b9ae519a64b458f8468aec688e7e3c20f200", + "sha256:c727930ad54b10fc157015014b666f2d8b41f70c0d03e83ab67624fd3dd5d1e6" ], - "version": "==18.0.0" + "version": "==19.0.0" }, "pyparsing": { "hashes": [ - "sha256:bc6c7146b91af3f567cf6daeaec360bc07d45ffec4cf5353f4d7a208ce7ca30a", - "sha256:d29593d8ebe7b57d6967b62494f8c72b03ac0262b1eed63826c6f788b3606401" + "sha256:66c9268862641abcac4a96ba74506e594c884e3f57690a696d21ad8210ed667a", + "sha256:f6c5ef0d7480ad048c054c37632c67fca55299990fff127850181659eea33fc3" ], - "markers": "python_version != '3.2.*' and python_version >= '2.6' and python_version != '3.1.*' and python_version != '3.0.*'", - "version": "==2.2.2" + "version": "==2.3.1" }, "pytest": { "hashes": [ - "sha256:0a72d8a9f559c006ba153e0c9b4838efd7b656cf1f993747ba7128770d6eb12c", - "sha256:95529588ff4e85114a0b0ad8e9cf0131ca47d46b28230e25366c5aba66b1d854" + "sha256:341ec10361b64a24accaec3c7ba5f7d5ee1ca4cebea30f76fad3dd12db9f0541", + "sha256:952c0389db115437f966c4c2079ae9d54714b9455190e56acebe14e8c38a7efa" ], - "markers": "python_version != '3.2.*' and python_version >= '2.7' and python_version != '3.3.*' and python_version != '3.1.*' and python_version != '3.0.*'", - "version": "==3.8.1" + "version": "==3.6.4" }, "python-dateutil": { "hashes": [ - "sha256:1adb80e7a782c12e52ef9a8182bebeb73f1d7e24e374397af06fb4956c8dc5c0", - "sha256:e27001de32f627c22380a688bcc43ce83504a7bc5da472209b4c70f02829f0b8" + "sha256:7e6584c74aeed623791615e26efd690f29817a27c73085b78e4bad02493df2fb", + "sha256:c89805f6f4d64db21ed966fda138f8a5ed7a4fdbc1a8ee329ce1b74e3c74da9e" ], - "version": "==2.7.3" + "version": "==2.8.0" }, "pytz": { "hashes": [ - "sha256:a061aa0a9e06881eb8b3b2b43f05b9439d6583c206d0a6c340ff72a7b6669053", - "sha256:ffb9ef1de172603304d9d2819af6f5ece76f2e85ec10692a524dd876e72bf277" + "sha256:32b0891edff07e28efe91284ed9c31e123d84bea3fd98e1f72be2508f43ef8d9", + "sha256:d5f05e487007e29e03409f9398d074e158d920d36eb82eaf66fb1136b0c5374c" ], - "version": "==2018.5" + "version": "==2018.9" }, "scipy": { "hashes": [ - "sha256:0611ee97296265af4a21164a5323f8c1b4e8e15c582d3dfa7610825900136bb7", - "sha256:08237eda23fd8e4e54838258b124f1cd141379a5f281b0a234ca99b38918c07a", - "sha256:0e645dbfc03f279e1946cf07c9c754c2a1859cb4a41c5f70b25f6b3a586b6dbd", - "sha256:0e9bb7efe5f051ea7212555b290e784b82f21ffd0f655405ac4f87e288b730b3", - "sha256:108c16640849e5827e7d51023efb3bd79244098c3f21e4897a1007720cb7ce37", - "sha256:340ef70f5b0f4e2b4b43c8c8061165911bc6b2ad16f8de85d9774545e2c47463", - "sha256:3ad73dfc6f82e494195144bd3a129c7241e761179b7cb5c07b9a0ede99c686f3", - "sha256:3b243c77a822cd034dad53058d7c2abf80062aa6f4a32e9799c95d6391558631", - "sha256:404a00314e85eca9d46b80929571b938e97a143b4f2ddc2b2b3c91a4c4ead9c5", - "sha256:423b3ff76957d29d1cce1bc0d62ebaf9a3fdfaf62344e3fdec14619bb7b5ad3a", - "sha256:42d9149a2fff7affdd352d157fa5717033767857c11bd55aa4a519a44343dfef", - "sha256:625f25a6b7d795e8830cb70439453c9f163e6870e710ec99eba5722775b318f3", - "sha256:698c6409da58686f2df3d6f815491fd5b4c2de6817a45379517c92366eea208f", - "sha256:729f8f8363d32cebcb946de278324ab43d28096f36593be6281ca1ee86ce6559", - "sha256:8190770146a4c8ed5d330d5b5ad1c76251c63349d25c96b3094875b930c44692", - "sha256:878352408424dffaa695ffedf2f9f92844e116686923ed9aa8626fc30d32cfd1", - "sha256:8b984f0821577d889f3c7ca8445564175fb4ac7c7f9659b7c60bef95b2b70e76", - "sha256:8f841bbc21d3dad2111a94c490fb0a591b8612ffea86b8e5571746ae76a3deac", - "sha256:c22b27371b3866c92796e5d7907e914f0e58a36d3222c5d436ddd3f0e354227a", - "sha256:d0cdd5658b49a722783b8b4f61a6f1f9c75042d0e29a30ccb6cacc9b25f6d9e2", - "sha256:d40dc7f494b06dcee0d303e51a00451b2da6119acbeaccf8369f2d29e28917ac", - "sha256:d8491d4784aceb1f100ddb8e31239c54e4afab8d607928a9f7ef2469ec35ae01", - "sha256:dfc5080c38dde3f43d8fbb9c0539a7839683475226cf83e4b24363b227dfe552", - "sha256:e24e22c8d98d3c704bb3410bce9b69e122a8de487ad3dbfe9985d154e5c03a40", - "sha256:e7a01e53163818d56eabddcafdc2090e9daba178aad05516b20c6591c4811020", - "sha256:ee677635393414930541a096fc8e61634304bb0153e4e02b75685b11eba14cae", - "sha256:f0521af1b722265d824d6ad055acfe9bd3341765735c44b5a4d0069e189a0f40", - "sha256:f25c281f12c0da726c6ed00535ca5d1622ec755c30a3f8eafef26cf43fede694" + "sha256:02cb79ea38114dc480e9b08d6b87095728e8fb39b9a49b449ee443d678001611", + "sha256:03c827cdbc584e935264040b958e5fa0570a16095bee23a013482ba3f0e963a2", + "sha256:04f2b23258139c109d0524f111597dd095a505d9cb2c71e381d688d653877fa3", + "sha256:3132a9fab3f3545c8b0ba15688d11857efdd4a58d388d3785dc474f56fea7138", + "sha256:4b1f0883cb9d8ee963cf0a31c87341e9e758abb2cf1e5bcc0d7b066ef6b17573", + "sha256:4cce25c6e7ff7399c67dfe1b5423c36c391cf9b4b2be390c1675ab410f1ef503", + "sha256:51a2424c8ed80e60bdb9a896806e7adaf24a58253b326fbad10f80a6d06f2214", + "sha256:5706b785ca289fdfd91aa05066619e51d140613b613e35932601f2315f5d8470", + "sha256:58f0435f052cb60f1472c77f52a8f6642f8877b70559e5e0b9a1744f33f5cbe5", + "sha256:63e1d5ca9e5e1984f1a275276991b036e25d39d37dd7edbb3f4f6165c2da7dbb", + "sha256:64b2c35824da3ef6bb1e722216e4ef28802af6413c7586136500e343d34ba179", + "sha256:6f791987899532305126309578727c0197bddbafab9596bafe3e7bfab6e1ce13", + "sha256:72bd766f753fd32f072d30d7bc2ad492d56dbcbf3e13764e27635d5c41079339", + "sha256:7413080b381766a22d52814edb65631f0e323a7cea945c70021a672f38acc73f", + "sha256:78a67ee4845440e81cfbfabde20537ca12051d0eeac951fe4c6d8751feac3103", + "sha256:7994c044bf659b0a24ad7673ec7db85c2fadb87e4980a379a9fd5b086fe3649a", + "sha256:7dc4002f0a0a688774ef04878afe769ecd1ac21fe9b4b1d7125e2cf16170afd3", + "sha256:854bd87cc23824d5db4983956bc30f3790e1c7448f1a9e6a8fb7bff7601aef87", + "sha256:8608316d0cc01f8b25111c8adfe6efbc959cbba037a62c784551568d7ffbf280", + "sha256:8f5fcc87b48fc3dd6d901669c89af4feeb856dffb6f671539a238b7e8af1799c", + "sha256:937147086e8b4338bf139ca8fa98da650e3a46bf2ca617f8e9dd68c3971ec420", + "sha256:bc294841f6c822714af362095b181a853f47ed5ce757354bd2e4776d579ff3a4", + "sha256:bc6a88b0009a1b60eab5c22ac3a006f6968d6328de10c6a64ebb0d64a05548d3", + "sha256:c5eae911cf26b3c7eda889ec98d3c226f312c587acfaaf02602473f98b4c16d6", + "sha256:cca33a01a5987c650b87a1a910aa311ffa44e67cca1ff502ef9efdae5d9a8624", + "sha256:d1ae77b79fd5e27a10ba7c4e7c3a62927b9d29a4dccf28f6905c25d983aaf183", + "sha256:fb36064047e6bf87b6320a9b6eb7f525ef6863c7a4aef1a84a4bbfb043612617", + "sha256:fc1a19d95649439dbd50baca676bceb29bbfcd600aed2c5bd71d9bad82a87cfe" ], "index": "pypi", - "version": "==1.1.0" + "version": "==1.2.0" }, "six": { "hashes": [ - "sha256:70e8a77beed4562e7f14fe23a786b54f6296e34344c23bc42f07b15018ff98e9", - "sha256:832dc0e10feb1aa2c68dcc57dbb658f1c7e65b9b61af69048abc87a2db00a0eb" + "sha256:3350809f0555b11f552448330d0b52d5f24c91a322ea4a15ef22629740f3761c", + "sha256:d16a0141ec1a18405cd4ce8b4613101da75da0e9a7aec5bdd4fa804d0e0eba73" ], - "version": "==1.11.0" + "version": "==1.12.0" }, "tables": { "hashes": [ @@ -592,29 +571,30 @@ "sha256:bdc5c073712af2a43babd139c4855fc99496bb2c3f3f5d1b4770a985e6f9ce29", "sha256:bed4f423dd33600907f1c3b88f994920f2b879b12bf83d4372f861ef4085e085", "sha256:c3ac22e3391f67a381d9a3018fd7e0a1ccfcc88b5f61b0d051fe5eba8196388f", + "sha256:d263f4380a5dad862efac774428bacb04c2339c4f165f2efdd228867abaffcf6", "sha256:da98c8abfeefefad40110b994d5d06ac28d89b00d085530d377376b201566ebf", "sha256:e2e4e40d010a6aa0464e5e281d4aa15f64acd99fd881c0e1e4c1c567b7167dba", "sha256:e3bd7084dbf80ef347ad5d33645584e0fe7f8353cf2c33d8922a4c00034fa015", "sha256:e8f9b20b9623c900e7007b89a9d3e315280b666ac70b38b0c191345f7d4d8585", "sha256:f786d310cf954eaf52340680dfbc5c1190afc276093f5c454fab605a11488306", - "sha256:f97c8b5ebec23894fc56af25c6e73bc86b463cbccb1f9b9887def24cd7811e2c" + "sha256:f97c8b5ebec23894fc56af25c6e73bc86b463cbccb1f9b9887def24cd7811e2c", + "sha256:fd3e774ff048de838df39b018c171bff3ecd9f34a908395a475ba07ac270a34a" ], "version": "==3.4.4" }, "theano": { "hashes": [ - "sha256:637f3b34d40ef5e0d54dd4c40618475aaa085c26d2491e925c98e2ad4bc2115a" + "sha256:35c9bbef56b61ffa299265a42a4e8f8cb5a07b2997dabaef0f8830b397086913" ], "index": "pypi", - "version": "==1.0.3" + "version": "==1.0.4" }, "tqdm": { "hashes": [ - "sha256:18f1818ce951aeb9ea162ae1098b43f583f7d057b34d706f66939353d1208889", - "sha256:df02c0650160986bac0218bb07952245fc6960d23654648b5d5526ad5a4128c9" + "sha256:13f018038711256ed27aae118a80d63929588e90f00d072a0f4eb7aa3333b4dc", + "sha256:dd60ea2567baa013c625153ce41fd274209c69a5814513e1d635f20e5cd61b97" ], - "markers": "python_version != '3.1.*' and python_version >= '2.6' and python_version != '3.0.*'", - "version": "==4.26.0" + "version": "==4.30.0" } }, "develop": {} diff --git a/bilby/core/result.py b/bilby/core/result.py index 691812db9dadcac7b8f6792f9aa6191090869e8d..5c95f1e834fc7eb0b43f2c28d7a5b38335d1d725 100644 --- a/bilby/core/result.py +++ b/bilby/core/result.py @@ -157,7 +157,15 @@ class Result(object): else: filename = result_file_name(outdir, label) if os.path.isfile(filename): - return cls(**deepdish.io.load(filename)) + dictionary = deepdish.io.load(filename) + # Some versions of deepdish/pytables return the dictionanary as + # a dictionary with a kay 'data' + if len(dictionary) == 1 and 'data' in dictionary: + dictionary = dictionary['data'] + try: + return cls(**dictionary) + except TypeError as e: + raise IOError("Unable to load dictionary, error={}".format(e)) else: raise IOError("No result '{}' found".format(filename)) diff --git a/bilby/core/sampler/__init__.py b/bilby/core/sampler/__init__.py index 76b1589b2f5f0af474779fa776dcd495557f58a2..7a15b410cb1fb9ef4d425610a16bbd3c9d4ccc3b 100644 --- a/bilby/core/sampler/__init__.py +++ b/bilby/core/sampler/__init__.py @@ -11,20 +11,21 @@ from .cpnest import Cpnest from .dynesty import Dynesty from .emcee import Emcee from .nestle import Nestle +from .polychord import PyPolyChord from .ptemcee import Ptemcee from .ptmcmc import PTMCMCSampler from .pymc3 import Pymc3 from .pymultinest import Pymultinest -implemented_samplers = { +IMPLEMENTED_SAMPLERS = { 'cpnest': Cpnest, 'dynesty': Dynesty, 'emcee': Emcee, 'nestle': Nestle, 'ptemcee': Ptemcee,'ptmcmcsampler' : PTMCMCSampler, - 'pymc3': Pymc3, 'pymultinest': Pymultinest } + 'pymc3': Pymc3, 'pymultinest': Pymultinest, 'pypolychord': PyPolyChord } if command_line_args.sampler_help: sampler = command_line_args.sampler_help - if sampler in implemented_samplers: - sampler_class = implemented_samplers[sampler] + if sampler in IMPLEMENTED_SAMPLERS: + sampler_class = IMPLEMENTED_SAMPLERS[sampler] print('Help for sampler "{}":'.format(sampler)) print(sampler_class.__doc__) else: @@ -33,7 +34,7 @@ if command_line_args.sampler_help: 'the name of the sampler') else: print('Requested sampler {} not implemented'.format(sampler)) - print('Available samplers = {}'.format(implemented_samplers)) + print('Available samplers = {}'.format(IMPLEMENTED_SAMPLERS)) sys.exit() @@ -106,7 +107,7 @@ def run_sampler(likelihood, priors=None, label='label', outdir='outdir', if command_line_args.clean: kwargs['resume'] = False - from . import implemented_samplers + from . import IMPLEMENTED_SAMPLERS if priors is None: priors = dict() @@ -128,15 +129,15 @@ def run_sampler(likelihood, priors=None, label='label', outdir='outdir', if isinstance(sampler, Sampler): pass elif isinstance(sampler, str): - if sampler.lower() in implemented_samplers: - sampler_class = implemented_samplers[sampler.lower()] + if sampler.lower() in IMPLEMENTED_SAMPLERS: + sampler_class = IMPLEMENTED_SAMPLERS[sampler.lower()] sampler = sampler_class( likelihood, priors=priors, outdir=outdir, label=label, injection_parameters=injection_parameters, meta_data=meta_data, use_ratio=use_ratio, plot=plot, result_class=result_class, **kwargs) else: - print(implemented_samplers) + print(IMPLEMENTED_SAMPLERS) raise ValueError( "Sampler {} not yet implemented".format(sampler)) elif inspect.isclass(sampler): @@ -148,7 +149,7 @@ def run_sampler(likelihood, priors=None, label='label', outdir='outdir', else: raise ValueError( "Provided sampler should be a Sampler object or name of a known " - "sampler: {}.".format(', '.join(implemented_samplers.keys()))) + "sampler: {}.".format(', '.join(IMPLEMENTED_SAMPLERS.keys()))) if sampler.cached_result: logger.warning("Using cached result") diff --git a/bilby/core/sampler/polychord.py b/bilby/core/sampler/polychord.py new file mode 100644 index 0000000000000000000000000000000000000000..4378649335da69a5a4e852e9831b19b40c5d0c9a --- /dev/null +++ b/bilby/core/sampler/polychord.py @@ -0,0 +1,94 @@ +from __future__ import absolute_import + +import numpy as np + +from .base_sampler import NestedSampler + + +class PyPolyChord(NestedSampler): + + """ + Bilby wrapper of PyPolyChord + https://arxiv.org/abs/1506.00171 + + PolyChordLite is available at: + https://github.com/PolyChord/PolyChordLite + + Follow the installation instructions at their github page. + + Keyword arguments will be passed into `pypolychord.run_polychord` into the `settings` + argument. See the PolyChord documentation for what all of those mean. + + To see what the keyword arguments are for, see the docstring of PyPolyChordSettings + """ + + default_kwargs = dict(use_polychord_defaults=False, nlive=None, num_repeats=None, + nprior=-1, do_clustering=True, feedback=1, precision_criterion=0.001, + logzero=-1e30, max_ndead=-1, boost_posterior=0.0, posteriors=True, + equals=True, cluster_posteriors=True, write_resume=True, + write_paramnames=False, read_resume=True, write_stats=True, + write_live=True, write_dead=True, write_prior=True, + compression_factor=np.exp(-1), base_dir='outdir', + file_root='polychord', seed=-1, grade_dims=None, grade_frac=None, nlives={}) + + def run_sampler(self): + import pypolychord + from pypolychord.settings import PolyChordSettings + if self.kwargs['use_polychord_defaults']: + settings = PolyChordSettings(nDims=self.ndim, nDerived=self.ndim, base_dir=self.outdir, + file_root=self.label) + else: + self._setup_dynamic_defaults() + pc_kwargs = self.kwargs.copy() + pc_kwargs['base_dir'] = self.outdir + pc_kwargs['file_root'] = self.label + pc_kwargs.pop('use_polychord_defaults') + settings = PolyChordSettings(nDims=self.ndim, nDerived=self.ndim, **pc_kwargs) + self._verify_kwargs_against_default_kwargs() + + pypolychord.run_polychord(loglikelihood=self.log_likelihood, nDims=self.ndim, + nDerived=self.ndim, settings=settings, prior=self.prior_transform) + + self.result.log_evidence, self.result.log_evidence_err = self._read_out_stats_file() + self.result.samples = self._read_sample_file() + return self.result + + def _setup_dynamic_defaults(self): + """ Sets up some interdependent default argument if none are given by the user """ + if not self.kwargs['grade_dims']: + self.kwargs['grade_dims'] = [self.ndim] + if not self.kwargs['grade_frac']: + self.kwargs['grade_frac'] = [1.0] * len(self.kwargs['grade_dims']) + if not self.kwargs['nlive']: + self.kwargs['nlive'] = self.ndim * 25 + if not self.kwargs['num_repeats']: + self.kwargs['num_repeats'] = self.ndim * 5 + + def _translate_kwargs(self, kwargs): + if 'nlive' not in kwargs: + for equiv in self.npoints_equiv_kwargs: + if equiv in kwargs: + kwargs['nlive'] = kwargs.pop(equiv) + + def log_likelihood(self, theta): + """ Overrides the log_likelihood so that PolyChord understands it """ + return super(PyPolyChord, self).log_likelihood(theta), theta + + def _read_out_stats_file(self): + statsfile = self.outdir + '/' + self.label + '.stats' + with open(statsfile) as f: + for line in f: + if line.startswith('log(Z)'): + line = line.replace('log(Z)', '') + line = line.replace('=', '') + line = line.replace(' ', '') + print(line) + z = line.split('+/-') + log_z = float(z[0]) + log_z_err = float(z[1]) + return log_z, log_z_err + + def _read_sample_file(self): + sample_file = self.outdir + '/' + self.label + '_equal_weights.txt' + samples = np.loadtxt(sample_file) + return samples[:, -self.ndim:] # extract last ndim columns diff --git a/docs/samplers.txt b/docs/samplers.txt index ee37613391531e9917b0ff9af8256b27efc12203..c497beb6ab8806cb9fb790fd316de59d0c0b7570 100644 --- a/docs/samplers.txt +++ b/docs/samplers.txt @@ -48,7 +48,7 @@ you would use is given in the API information below. Below, we give the detailed API for the samplers. Remember, this API is not -recomended for direct use by the user, rather it should be accessed via the +recommended for direct use by the user, rather it should be accessed via the :code:`run_sampler`. --------------- @@ -60,6 +60,7 @@ Dynesty .. autoclass:: bilby.core.sampler.dynesty.Dynesty + Nestle ====== @@ -71,11 +72,19 @@ CPNest .. autoclass:: bilby.core.sampler.cpnest.Cpnest + PyMultinest =========== .. autoclass:: bilby.core.sampler.pymultinest.Pymultinest + +PyPolyChord +=========== + +.. autoclass:: bilby.core.sampler.pypolychord.PyPolyChord + + ------------- MCMC samplers ------------- @@ -123,6 +132,27 @@ be found in the at the top-level of `the repository <https://git.ligo.org/lscsoft/bilby>`_ (Note: if you installed from pip, you can simply download that file and use the command above). + +Installing PyPolyChord +====================== + +If you want to use the `PyPolyChord` sampler, you first need the +PolyChord library to be installed to work properly. An image of PolyChord can be found on github. +Clone the following repository onto your system. Navigate to the folder you want to install PolyChord in and run: + +.. code-block:: console + + $ git clone https://github.com/PolyChord/PolyChordLite.git + +Then navigate into the PolyChord directory and install PolyChord/PyPolyChord with + +.. code-block:: console + + $ make pypolychord MPI= + $ python setup.py install --user + +Add a number after `MPI=` to compile with `MPI`. Leave it like it is if you don't wish to compile with MPI. + Installing pymultinest ====================== diff --git a/test/sampler_test.py b/test/sampler_test.py index 0ffbb2bac84f0096fa8dc7e20052b0ad1ee09b78..3054ad4ae52d57b88ae31e0dc217069d2c0c0f5b 100644 --- a/test/sampler_test.py +++ b/test/sampler_test.py @@ -5,6 +5,8 @@ import unittest from mock import MagicMock import numpy as np import os +import sys +import shutil import copy @@ -247,6 +249,53 @@ class TestNestle(unittest.TestCase): self.assertDictEqual(expected, self.sampler.kwargs) +class TestPolyChord(unittest.TestCase): + + def setUp(self): + self.likelihood = MagicMock() + self.priors = dict(a=bilby.prior.Uniform(0, 1)) + self.sampler = bilby.core.sampler.PyPolyChord(self.likelihood, self.priors, + outdir='outdir', label='polychord', + use_ratio=False, plot=False, + skip_import_verification=True) + + def tearDown(self): + del self.likelihood + del self.priors + del self.sampler + + def test_default_kwargs(self): + expected = dict(use_polychord_defaults=False, nlive=self.sampler.ndim*25, num_repeats=self.sampler.ndim*5, + nprior=-1, do_clustering=True, feedback=1, precision_criterion=0.001, + logzero=-1e30, max_ndead=-1, boost_posterior=0.0, posteriors=True, + equals=True, cluster_posteriors=True, write_resume=True, + write_paramnames=False, read_resume=True, write_stats=True, + write_live=True, write_dead=True, write_prior=True, + compression_factor=np.exp(-1), base_dir='outdir', + file_root='polychord', seed=-1, grade_dims=list([self.sampler.ndim]), + grade_frac=list([1.0]*len([self.sampler.ndim])), nlives={}) + self.sampler._setup_dynamic_defaults() + self.assertDictEqual(expected, self.sampler.kwargs) + + def test_translate_kwargs(self): + expected = dict(use_polychord_defaults=False, nlive=123, num_repeats=self.sampler.ndim*5, + nprior=-1, do_clustering=True, feedback=1, precision_criterion=0.001, + logzero=-1e30, max_ndead=-1, boost_posterior=0.0, posteriors=True, + equals=True, cluster_posteriors=True, write_resume=True, + write_paramnames=False, read_resume=True, write_stats=True, + write_live=True, write_dead=True, write_prior=True, + compression_factor=np.exp(-1), base_dir='outdir', + file_root='polychord', seed=-1, grade_dims=list([self.sampler.ndim]), + grade_frac=list([1.0]*len([self.sampler.ndim])), nlives={}) + self.sampler._setup_dynamic_defaults() + for equiv in bilby.core.sampler.base_sampler.NestedSampler.npoints_equiv_kwargs: + new_kwargs = self.sampler.kwargs.copy() + del new_kwargs['nlive'] + new_kwargs[equiv] = 123 + self.sampler.kwargs = new_kwargs + self.assertDictEqual(expected, self.sampler.kwargs) + + class TestPTEmcee(unittest.TestCase): def setUp(self): @@ -397,11 +446,13 @@ class TestRunningSamplers(unittest.TestCase): self.priors = dict( m=bilby.core.prior.Uniform(0, 5), c=bilby.core.prior.Uniform(-2, 2)) + bilby.core.utils.check_directory_exists_and_if_not_mkdir('outdir') def tearDown(self): del self.likelihood del self.priors bilby.core.utils.command_line_args.test = False + shutil.rmtree('outdir') def test_run_cpnest(self): _ = bilby.run_sampler( @@ -423,6 +474,11 @@ class TestRunningSamplers(unittest.TestCase): likelihood=self.likelihood, priors=self.priors, sampler='nestle', nlive=100, save=False) + def test_run_pypolychord(self): + _ = bilby.run_sampler( + likelihood=self.likelihood, priors=self.priors, + sampler='pypolychord', nlive=100, save=False) + def test_run_ptemcee(self): _ = bilby.run_sampler( likelihood=self.likelihood, priors=self.priors, sampler='ptemcee',