From 60274b473bfb2daae924ae083081aa934e660fac Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 3 Oct 2023 20:48:39 +0000 Subject: [PATCH 01/12] Bump pillow from 10.0.0 to 10.0.1 Bumps [pillow](https://github.com/python-pillow/Pillow) from 10.0.0 to 10.0.1. - [Release notes](https://github.com/python-pillow/Pillow/releases) - [Changelog](https://github.com/python-pillow/Pillow/blob/main/CHANGES.rst) - [Commits](https://github.com/python-pillow/Pillow/compare/10.0.0...10.0.1) --- updated-dependencies: - dependency-name: pillow dependency-type: indirect ... Signed-off-by: dependabot[bot] --- poetry.lock | 129 +++++++++++++++++++++++++++++----------------------- 1 file changed, 71 insertions(+), 58 deletions(-) diff --git a/poetry.lock b/poetry.lock index 795a51f..d220b0b 100644 --- a/poetry.lock +++ b/poetry.lock @@ -1,4 +1,4 @@ -# This file is automatically @generated by Poetry 1.5.1 and should not be changed by hand. +# This file is automatically @generated by Poetry 1.6.1 and should not be changed by hand. [[package]] name = "alabaster" @@ -453,6 +453,7 @@ files = [ {file = "contourpy-1.1.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:18a64814ae7bce73925131381603fff0116e2df25230dfc80d6d690aa6e20b37"}, {file = "contourpy-1.1.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:90c81f22b4f572f8a2110b0b741bb64e5a6427e0a198b2cdc1fbaf85f352a3aa"}, {file = "contourpy-1.1.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:53cc3a40635abedbec7f1bde60f8c189c49e84ac180c665f2cd7c162cc454baa"}, + {file = "contourpy-1.1.0-cp310-cp310-win32.whl", hash = "sha256:9b2dd2ca3ac561aceef4c7c13ba654aaa404cf885b187427760d7f7d4c57cff8"}, {file = "contourpy-1.1.0-cp310-cp310-win_amd64.whl", hash = "sha256:1f795597073b09d631782e7245016a4323cf1cf0b4e06eef7ea6627e06a37ff2"}, {file = "contourpy-1.1.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:0b7b04ed0961647691cfe5d82115dd072af7ce8846d31a5fac6c142dcce8b882"}, {file = "contourpy-1.1.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:27bc79200c742f9746d7dd51a734ee326a292d77e7d94c8af6e08d1e6c15d545"}, @@ -461,6 +462,7 @@ files = [ {file = "contourpy-1.1.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:e5cec36c5090e75a9ac9dbd0ff4a8cf7cecd60f1b6dc23a374c7d980a1cd710e"}, {file = "contourpy-1.1.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1f0cbd657e9bde94cd0e33aa7df94fb73c1ab7799378d3b3f902eb8eb2e04a3a"}, {file = "contourpy-1.1.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:181cbace49874f4358e2929aaf7ba84006acb76694102e88dd15af861996c16e"}, + {file = "contourpy-1.1.0-cp311-cp311-win32.whl", hash = "sha256:edb989d31065b1acef3828a3688f88b2abb799a7db891c9e282df5ec7e46221b"}, {file = "contourpy-1.1.0-cp311-cp311-win_amd64.whl", hash = "sha256:fb3b7d9e6243bfa1efb93ccfe64ec610d85cfe5aec2c25f97fbbd2e58b531256"}, {file = "contourpy-1.1.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:bcb41692aa09aeb19c7c213411854402f29f6613845ad2453d30bf421fe68fed"}, {file = "contourpy-1.1.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:5d123a5bc63cd34c27ff9c7ac1cd978909e9c71da12e05be0231c608048bb2ae"}, @@ -469,6 +471,7 @@ files = [ {file = "contourpy-1.1.0-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:317267d915490d1e84577924bd61ba71bf8681a30e0d6c545f577363157e5e94"}, {file = "contourpy-1.1.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d551f3a442655f3dcc1285723f9acd646ca5858834efeab4598d706206b09c9f"}, {file = "contourpy-1.1.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:e7a117ce7df5a938fe035cad481b0189049e8d92433b4b33aa7fc609344aafa1"}, + {file = "contourpy-1.1.0-cp38-cp38-win32.whl", hash = "sha256:108dfb5b3e731046a96c60bdc46a1a0ebee0760418951abecbe0fc07b5b93b27"}, {file = "contourpy-1.1.0-cp38-cp38-win_amd64.whl", hash = "sha256:d4f26b25b4f86087e7d75e63212756c38546e70f2a92d2be44f80114826e1cd4"}, {file = "contourpy-1.1.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:bc00bb4225d57bff7ebb634646c0ee2a1298402ec10a5fe7af79df9a51c1bfd9"}, {file = "contourpy-1.1.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:189ceb1525eb0655ab8487a9a9c41f42a73ba52d6789754788d1883fb06b2d8a"}, @@ -477,6 +480,7 @@ files = [ {file = "contourpy-1.1.0-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:143dde50520a9f90e4a2703f367cf8ec96a73042b72e68fcd184e1279962eb6f"}, {file = "contourpy-1.1.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e94bef2580e25b5fdb183bf98a2faa2adc5b638736b2c0a4da98691da641316a"}, {file = "contourpy-1.1.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:ed614aea8462735e7d70141374bd7650afd1c3f3cb0c2dbbcbe44e14331bf002"}, + {file = "contourpy-1.1.0-cp39-cp39-win32.whl", hash = "sha256:71551f9520f008b2950bef5f16b0e3587506ef4f23c734b71ffb7b89f8721999"}, {file = "contourpy-1.1.0-cp39-cp39-win_amd64.whl", hash = "sha256:438ba416d02f82b692e371858143970ed2eb6337d9cdbbede0d8ad9f3d7dd17d"}, {file = "contourpy-1.1.0-pp38-pypy38_pp73-macosx_10_9_x86_64.whl", hash = "sha256:a698c6a7a432789e587168573a864a7ea374c6be8d4f31f9d87c001d5a843493"}, {file = "contourpy-1.1.0-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:397b0ac8a12880412da3551a8cb5a187d3298a72802b45a3bd1805e204ad8439"}, @@ -1001,6 +1005,7 @@ optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, !=3.5.*, !=3.6.*" files = [ {file = "jsonpointer-2.4-py2.py3-none-any.whl", hash = "sha256:15d51bba20eea3165644553647711d150376234112651b4f1811022aecad7d7a"}, + {file = "jsonpointer-2.4.tar.gz", hash = "sha256:585cee82b70211fa9e6043b7bb89db6e1aa49524340dde8ad6b63206ea689d88"}, ] [[package]] @@ -1495,6 +1500,16 @@ files = [ {file = "MarkupSafe-2.1.3-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:5bbe06f8eeafd38e5d0a4894ffec89378b6c6a625ff57e3028921f8ff59318ac"}, {file = "MarkupSafe-2.1.3-cp311-cp311-win32.whl", hash = "sha256:dd15ff04ffd7e05ffcb7fe79f1b98041b8ea30ae9234aed2a9168b5797c3effb"}, {file = "MarkupSafe-2.1.3-cp311-cp311-win_amd64.whl", hash = "sha256:134da1eca9ec0ae528110ccc9e48041e0828d79f24121a1a146161103c76e686"}, + {file = "MarkupSafe-2.1.3-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:f698de3fd0c4e6972b92290a45bd9b1536bffe8c6759c62471efaa8acb4c37bc"}, + {file = "MarkupSafe-2.1.3-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:aa57bd9cf8ae831a362185ee444e15a93ecb2e344c8e52e4d721ea3ab6ef1823"}, + {file = "MarkupSafe-2.1.3-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ffcc3f7c66b5f5b7931a5aa68fc9cecc51e685ef90282f4a82f0f5e9b704ad11"}, + {file = "MarkupSafe-2.1.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:47d4f1c5f80fc62fdd7777d0d40a2e9dda0a05883ab11374334f6c4de38adffd"}, + {file = "MarkupSafe-2.1.3-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1f67c7038d560d92149c060157d623c542173016c4babc0c1913cca0564b9939"}, + {file = "MarkupSafe-2.1.3-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:9aad3c1755095ce347e26488214ef77e0485a3c34a50c5a5e2471dff60b9dd9c"}, + {file = "MarkupSafe-2.1.3-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:14ff806850827afd6b07a5f32bd917fb7f45b046ba40c57abdb636674a8b559c"}, + {file = "MarkupSafe-2.1.3-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:8f9293864fe09b8149f0cc42ce56e3f0e54de883a9de90cd427f191c346eb2e1"}, + {file = "MarkupSafe-2.1.3-cp312-cp312-win32.whl", hash = "sha256:715d3562f79d540f251b99ebd6d8baa547118974341db04f5ad06d5ea3eb8007"}, + {file = "MarkupSafe-2.1.3-cp312-cp312-win_amd64.whl", hash = "sha256:1b8dd8c3fd14349433c79fa8abeb573a55fc0fdd769133baac1f5e07abf54aeb"}, {file = "MarkupSafe-2.1.3-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:8e254ae696c88d98da6555f5ace2279cf7cd5b3f52be2b5cf97feafe883b58d2"}, {file = "MarkupSafe-2.1.3-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cb0932dc158471523c9637e807d9bfb93e06a95cbf010f1a38b98623b929ef2b"}, {file = "MarkupSafe-2.1.3-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9402b03f1a1b4dc4c19845e5c749e3ab82d5078d16a2a4c2cd2df62d57bb0707"}, @@ -2007,67 +2022,65 @@ files = [ [[package]] name = "pillow" -version = "10.0.0" +version = "10.0.1" description = "Python Imaging Library (Fork)" optional = false python-versions = ">=3.8" files = [ - {file = "Pillow-10.0.0-cp310-cp310-macosx_10_10_x86_64.whl", hash = "sha256:1f62406a884ae75fb2f818694469519fb685cc7eaff05d3451a9ebe55c646891"}, - {file = "Pillow-10.0.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:d5db32e2a6ccbb3d34d87c87b432959e0db29755727afb37290e10f6e8e62614"}, - {file = "Pillow-10.0.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:edf4392b77bdc81f36e92d3a07a5cd072f90253197f4a52a55a8cec48a12483b"}, - {file = "Pillow-10.0.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:520f2a520dc040512699f20fa1c363eed506e94248d71f85412b625026f6142c"}, - {file = "Pillow-10.0.0-cp310-cp310-manylinux_2_28_aarch64.whl", hash = "sha256:8c11160913e3dd06c8ffdb5f233a4f254cb449f4dfc0f8f4549eda9e542c93d1"}, - {file = "Pillow-10.0.0-cp310-cp310-manylinux_2_28_x86_64.whl", hash = "sha256:a74ba0c356aaa3bb8e3eb79606a87669e7ec6444be352870623025d75a14a2bf"}, - {file = "Pillow-10.0.0-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:d5d0dae4cfd56969d23d94dc8e89fb6a217be461c69090768227beb8ed28c0a3"}, - {file = "Pillow-10.0.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:22c10cc517668d44b211717fd9775799ccec4124b9a7f7b3635fc5386e584992"}, - {file = "Pillow-10.0.0-cp310-cp310-win_amd64.whl", hash = "sha256:dffe31a7f47b603318c609f378ebcd57f1554a3a6a8effbc59c3c69f804296de"}, - {file = "Pillow-10.0.0-cp311-cp311-macosx_10_10_x86_64.whl", hash = "sha256:9fb218c8a12e51d7ead2a7c9e101a04982237d4855716af2e9499306728fb485"}, - {file = "Pillow-10.0.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:d35e3c8d9b1268cbf5d3670285feb3528f6680420eafe35cccc686b73c1e330f"}, - {file = "Pillow-10.0.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3ed64f9ca2f0a95411e88a4efbd7a29e5ce2cea36072c53dd9d26d9c76f753b3"}, - {file = "Pillow-10.0.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0b6eb5502f45a60a3f411c63187db83a3d3107887ad0d036c13ce836f8a36f1d"}, - {file = "Pillow-10.0.0-cp311-cp311-manylinux_2_28_aarch64.whl", hash = "sha256:c1fbe7621c167ecaa38ad29643d77a9ce7311583761abf7836e1510c580bf3dd"}, - {file = "Pillow-10.0.0-cp311-cp311-manylinux_2_28_x86_64.whl", hash = "sha256:cd25d2a9d2b36fcb318882481367956d2cf91329f6892fe5d385c346c0649629"}, - {file = "Pillow-10.0.0-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:3b08d4cc24f471b2c8ca24ec060abf4bebc6b144cb89cba638c720546b1cf538"}, - {file = "Pillow-10.0.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:d737a602fbd82afd892ca746392401b634e278cb65d55c4b7a8f48e9ef8d008d"}, - {file = "Pillow-10.0.0-cp311-cp311-win_amd64.whl", hash = "sha256:3a82c40d706d9aa9734289740ce26460a11aeec2d9c79b7af87bb35f0073c12f"}, - {file = "Pillow-10.0.0-cp311-cp311-win_arm64.whl", hash = "sha256:bc2ec7c7b5d66b8ec9ce9f720dbb5fa4bace0f545acd34870eff4a369b44bf37"}, - {file = "Pillow-10.0.0-cp312-cp312-macosx_10_10_x86_64.whl", hash = "sha256:d80cf684b541685fccdd84c485b31ce73fc5c9b5d7523bf1394ce134a60c6883"}, - {file = "Pillow-10.0.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:76de421f9c326da8f43d690110f0e79fe3ad1e54be811545d7d91898b4c8493e"}, - {file = "Pillow-10.0.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:81ff539a12457809666fef6624684c008e00ff6bf455b4b89fd00a140eecd640"}, - {file = "Pillow-10.0.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ce543ed15570eedbb85df19b0a1a7314a9c8141a36ce089c0a894adbfccb4568"}, - {file = "Pillow-10.0.0-cp312-cp312-manylinux_2_28_aarch64.whl", hash = "sha256:685ac03cc4ed5ebc15ad5c23bc555d68a87777586d970c2c3e216619a5476223"}, - {file = "Pillow-10.0.0-cp312-cp312-manylinux_2_28_x86_64.whl", hash = "sha256:d72e2ecc68a942e8cf9739619b7f408cc7b272b279b56b2c83c6123fcfa5cdff"}, - {file = "Pillow-10.0.0-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:d50b6aec14bc737742ca96e85d6d0a5f9bfbded018264b3b70ff9d8c33485551"}, - {file = "Pillow-10.0.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:00e65f5e822decd501e374b0650146063fbb30a7264b4d2744bdd7b913e0cab5"}, - {file = "Pillow-10.0.0-cp312-cp312-win_amd64.whl", hash = "sha256:f31f9fdbfecb042d046f9d91270a0ba28368a723302786c0009ee9b9f1f60199"}, - {file = "Pillow-10.0.0-cp312-cp312-win_arm64.whl", hash = "sha256:1ce91b6ec08d866b14413d3f0bbdea7e24dfdc8e59f562bb77bc3fe60b6144ca"}, - {file = "Pillow-10.0.0-cp38-cp38-macosx_10_10_x86_64.whl", hash = "sha256:349930d6e9c685c089284b013478d6f76e3a534e36ddfa912cde493f235372f3"}, - {file = "Pillow-10.0.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:3a684105f7c32488f7153905a4e3015a3b6c7182e106fe3c37fbb5ef3e6994c3"}, - {file = "Pillow-10.0.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b4f69b3700201b80bb82c3a97d5e9254084f6dd5fb5b16fc1a7b974260f89f43"}, - {file = "Pillow-10.0.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3f07ea8d2f827d7d2a49ecf1639ec02d75ffd1b88dcc5b3a61bbb37a8759ad8d"}, - {file = "Pillow-10.0.0-cp38-cp38-manylinux_2_28_aarch64.whl", hash = "sha256:040586f7d37b34547153fa383f7f9aed68b738992380ac911447bb78f2abe530"}, - {file = "Pillow-10.0.0-cp38-cp38-manylinux_2_28_x86_64.whl", hash = "sha256:f88a0b92277de8e3ca715a0d79d68dc82807457dae3ab8699c758f07c20b3c51"}, - {file = "Pillow-10.0.0-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:c7cf14a27b0d6adfaebb3ae4153f1e516df54e47e42dcc073d7b3d76111a8d86"}, - {file = "Pillow-10.0.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:3400aae60685b06bb96f99a21e1ada7bc7a413d5f49bce739828ecd9391bb8f7"}, - {file = "Pillow-10.0.0-cp38-cp38-win_amd64.whl", hash = "sha256:dbc02381779d412145331789b40cc7b11fdf449e5d94f6bc0b080db0a56ea3f0"}, - {file = "Pillow-10.0.0-cp39-cp39-macosx_10_10_x86_64.whl", hash = "sha256:9211e7ad69d7c9401cfc0e23d49b69ca65ddd898976d660a2fa5904e3d7a9baa"}, - {file = "Pillow-10.0.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:faaf07ea35355b01a35cb442dd950d8f1bb5b040a7787791a535de13db15ed90"}, - {file = "Pillow-10.0.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c9f72a021fbb792ce98306ffb0c348b3c9cb967dce0f12a49aa4c3d3fdefa967"}, - {file = "Pillow-10.0.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9f7c16705f44e0504a3a2a14197c1f0b32a95731d251777dcb060aa83022cb2d"}, - {file = "Pillow-10.0.0-cp39-cp39-manylinux_2_28_aarch64.whl", hash = "sha256:76edb0a1fa2b4745fb0c99fb9fb98f8b180a1bbceb8be49b087e0b21867e77d3"}, - {file = "Pillow-10.0.0-cp39-cp39-manylinux_2_28_x86_64.whl", hash = "sha256:368ab3dfb5f49e312231b6f27b8820c823652b7cd29cfbd34090565a015e99ba"}, - {file = "Pillow-10.0.0-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:608bfdee0d57cf297d32bcbb3c728dc1da0907519d1784962c5f0c68bb93e5a3"}, - {file = "Pillow-10.0.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:5c6e3df6bdd396749bafd45314871b3d0af81ff935b2d188385e970052091017"}, - {file = "Pillow-10.0.0-cp39-cp39-win_amd64.whl", hash = "sha256:7be600823e4c8631b74e4a0d38384c73f680e6105a7d3c6824fcf226c178c7e6"}, - {file = "Pillow-10.0.0-pp310-pypy310_pp73-macosx_10_10_x86_64.whl", hash = "sha256:92be919bbc9f7d09f7ae343c38f5bb21c973d2576c1d45600fce4b74bafa7ac0"}, - {file = "Pillow-10.0.0-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8f8182b523b2289f7c415f589118228d30ac8c355baa2f3194ced084dac2dbba"}, - {file = "Pillow-10.0.0-pp310-pypy310_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:38250a349b6b390ee6047a62c086d3817ac69022c127f8a5dc058c31ccef17f3"}, - {file = "Pillow-10.0.0-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:88af2003543cc40c80f6fca01411892ec52b11021b3dc22ec3bc9d5afd1c5334"}, - {file = "Pillow-10.0.0-pp39-pypy39_pp73-macosx_10_10_x86_64.whl", hash = "sha256:c189af0545965fa8d3b9613cfdb0cd37f9d71349e0f7750e1fd704648d475ed2"}, - {file = "Pillow-10.0.0-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ce7b031a6fc11365970e6a5686d7ba8c63e4c1cf1ea143811acbb524295eabed"}, - {file = "Pillow-10.0.0-pp39-pypy39_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:db24668940f82321e746773a4bc617bfac06ec831e5c88b643f91f122a785684"}, - {file = "Pillow-10.0.0-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:efe8c0681042536e0d06c11f48cebe759707c9e9abf880ee213541c5b46c5bf3"}, - {file = "Pillow-10.0.0.tar.gz", hash = "sha256:9c82b5b3e043c7af0d95792d0d20ccf68f61a1fec6b3530e718b688422727396"}, + {file = "Pillow-10.0.1-cp310-cp310-macosx_10_10_x86_64.whl", hash = "sha256:8f06be50669087250f319b706decf69ca71fdecd829091a37cc89398ca4dc17a"}, + {file = "Pillow-10.0.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:50bd5f1ebafe9362ad622072a1d2f5850ecfa44303531ff14353a4059113b12d"}, + {file = "Pillow-10.0.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e6a90167bcca1216606223a05e2cf991bb25b14695c518bc65639463d7db722d"}, + {file = "Pillow-10.0.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f11c9102c56ffb9ca87134bd025a43d2aba3f1155f508eff88f694b33a9c6d19"}, + {file = "Pillow-10.0.1-cp310-cp310-manylinux_2_28_aarch64.whl", hash = "sha256:186f7e04248103482ea6354af6d5bcedb62941ee08f7f788a1c7707bc720c66f"}, + {file = "Pillow-10.0.1-cp310-cp310-manylinux_2_28_x86_64.whl", hash = "sha256:0462b1496505a3462d0f35dc1c4d7b54069747d65d00ef48e736acda2c8cbdff"}, + {file = "Pillow-10.0.1-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:d889b53ae2f030f756e61a7bff13684dcd77e9af8b10c6048fb2c559d6ed6eaf"}, + {file = "Pillow-10.0.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:552912dbca585b74d75279a7570dd29fa43b6d93594abb494ebb31ac19ace6bd"}, + {file = "Pillow-10.0.1-cp310-cp310-win_amd64.whl", hash = "sha256:787bb0169d2385a798888e1122c980c6eff26bf941a8ea79747d35d8f9210ca0"}, + {file = "Pillow-10.0.1-cp311-cp311-macosx_10_10_x86_64.whl", hash = "sha256:fd2a5403a75b54661182b75ec6132437a181209b901446ee5724b589af8edef1"}, + {file = "Pillow-10.0.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:2d7e91b4379f7a76b31c2dda84ab9e20c6220488e50f7822e59dac36b0cd92b1"}, + {file = "Pillow-10.0.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:19e9adb3f22d4c416e7cd79b01375b17159d6990003633ff1d8377e21b7f1b21"}, + {file = "Pillow-10.0.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:93139acd8109edcdeffd85e3af8ae7d88b258b3a1e13a038f542b79b6d255c54"}, + {file = "Pillow-10.0.1-cp311-cp311-manylinux_2_28_aarch64.whl", hash = "sha256:92a23b0431941a33242b1f0ce6c88a952e09feeea9af4e8be48236a68ffe2205"}, + {file = "Pillow-10.0.1-cp311-cp311-manylinux_2_28_x86_64.whl", hash = "sha256:cbe68deb8580462ca0d9eb56a81912f59eb4542e1ef8f987405e35a0179f4ea2"}, + {file = "Pillow-10.0.1-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:522ff4ac3aaf839242c6f4e5b406634bfea002469656ae8358644fc6c4856a3b"}, + {file = "Pillow-10.0.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:84efb46e8d881bb06b35d1d541aa87f574b58e87f781cbba8d200daa835b42e1"}, + {file = "Pillow-10.0.1-cp311-cp311-win_amd64.whl", hash = "sha256:898f1d306298ff40dc1b9ca24824f0488f6f039bc0e25cfb549d3195ffa17088"}, + {file = "Pillow-10.0.1-cp312-cp312-macosx_10_10_x86_64.whl", hash = "sha256:bcf1207e2f2385a576832af02702de104be71301c2696d0012b1b93fe34aaa5b"}, + {file = "Pillow-10.0.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:5d6c9049c6274c1bb565021367431ad04481ebb54872edecfcd6088d27edd6ed"}, + {file = "Pillow-10.0.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:28444cb6ad49726127d6b340217f0627abc8732f1194fd5352dec5e6a0105635"}, + {file = "Pillow-10.0.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:de596695a75496deb3b499c8c4f8e60376e0516e1a774e7bc046f0f48cd620ad"}, + {file = "Pillow-10.0.1-cp312-cp312-manylinux_2_28_aarch64.whl", hash = "sha256:2872f2d7846cf39b3dbff64bc1104cc48c76145854256451d33c5faa55c04d1a"}, + {file = "Pillow-10.0.1-cp312-cp312-manylinux_2_28_x86_64.whl", hash = "sha256:4ce90f8a24e1c15465048959f1e94309dfef93af272633e8f37361b824532e91"}, + {file = "Pillow-10.0.1-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:ee7810cf7c83fa227ba9125de6084e5e8b08c59038a7b2c9045ef4dde61663b4"}, + {file = "Pillow-10.0.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:b1be1c872b9b5fcc229adeadbeb51422a9633abd847c0ff87dc4ef9bb184ae08"}, + {file = "Pillow-10.0.1-cp312-cp312-win_amd64.whl", hash = "sha256:98533fd7fa764e5f85eebe56c8e4094db912ccbe6fbf3a58778d543cadd0db08"}, + {file = "Pillow-10.0.1-cp38-cp38-macosx_10_10_x86_64.whl", hash = "sha256:764d2c0daf9c4d40ad12fbc0abd5da3af7f8aa11daf87e4fa1b834000f4b6b0a"}, + {file = "Pillow-10.0.1-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:fcb59711009b0168d6ee0bd8fb5eb259c4ab1717b2f538bbf36bacf207ef7a68"}, + {file = "Pillow-10.0.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:697a06bdcedd473b35e50a7e7506b1d8ceb832dc238a336bd6f4f5aa91a4b500"}, + {file = "Pillow-10.0.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9f665d1e6474af9f9da5e86c2a3a2d2d6204e04d5af9c06b9d42afa6ebde3f21"}, + {file = "Pillow-10.0.1-cp38-cp38-manylinux_2_28_aarch64.whl", hash = "sha256:2fa6dd2661838c66f1a5473f3b49ab610c98a128fc08afbe81b91a1f0bf8c51d"}, + {file = "Pillow-10.0.1-cp38-cp38-manylinux_2_28_x86_64.whl", hash = "sha256:3a04359f308ebee571a3127fdb1bd01f88ba6f6fb6d087f8dd2e0d9bff43f2a7"}, + {file = "Pillow-10.0.1-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:723bd25051454cea9990203405fa6b74e043ea76d4968166dfd2569b0210886a"}, + {file = "Pillow-10.0.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:71671503e3015da1b50bd18951e2f9daf5b6ffe36d16f1eb2c45711a301521a7"}, + {file = "Pillow-10.0.1-cp38-cp38-win_amd64.whl", hash = "sha256:44e7e4587392953e5e251190a964675f61e4dae88d1e6edbe9f36d6243547ff3"}, + {file = "Pillow-10.0.1-cp39-cp39-macosx_10_10_x86_64.whl", hash = "sha256:3855447d98cced8670aaa63683808df905e956f00348732448b5a6df67ee5849"}, + {file = "Pillow-10.0.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:ed2d9c0704f2dc4fa980b99d565c0c9a543fe5101c25b3d60488b8ba80f0cce1"}, + {file = "Pillow-10.0.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f5bb289bb835f9fe1a1e9300d011eef4d69661bb9b34d5e196e5e82c4cb09b37"}, + {file = "Pillow-10.0.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3a0d3e54ab1df9df51b914b2233cf779a5a10dfd1ce339d0421748232cea9876"}, + {file = "Pillow-10.0.1-cp39-cp39-manylinux_2_28_aarch64.whl", hash = "sha256:2cc6b86ece42a11f16f55fe8903595eff2b25e0358dec635d0a701ac9586588f"}, + {file = "Pillow-10.0.1-cp39-cp39-manylinux_2_28_x86_64.whl", hash = "sha256:ca26ba5767888c84bf5a0c1a32f069e8204ce8c21d00a49c90dabeba00ce0145"}, + {file = "Pillow-10.0.1-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:f0b4b06da13275bc02adfeb82643c4a6385bd08d26f03068c2796f60d125f6f2"}, + {file = "Pillow-10.0.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:bc2e3069569ea9dbe88d6b8ea38f439a6aad8f6e7a6283a38edf61ddefb3a9bf"}, + {file = "Pillow-10.0.1-cp39-cp39-win_amd64.whl", hash = "sha256:8b451d6ead6e3500b6ce5c7916a43d8d8d25ad74b9102a629baccc0808c54971"}, + {file = "Pillow-10.0.1-pp310-pypy310_pp73-macosx_10_10_x86_64.whl", hash = "sha256:32bec7423cdf25c9038fef614a853c9d25c07590e1a870ed471f47fb80b244db"}, + {file = "Pillow-10.0.1-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b7cf63d2c6928b51d35dfdbda6f2c1fddbe51a6bc4a9d4ee6ea0e11670dd981e"}, + {file = "Pillow-10.0.1-pp310-pypy310_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:f6d3d4c905e26354e8f9d82548475c46d8e0889538cb0657aa9c6f0872a37aa4"}, + {file = "Pillow-10.0.1-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:847e8d1017c741c735d3cd1883fa7b03ded4f825a6e5fcb9378fd813edee995f"}, + {file = "Pillow-10.0.1-pp39-pypy39_pp73-macosx_10_10_x86_64.whl", hash = "sha256:7f771e7219ff04b79e231d099c0a28ed83aa82af91fd5fa9fdb28f5b8d5addaf"}, + {file = "Pillow-10.0.1-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:459307cacdd4138edee3875bbe22a2492519e060660eaf378ba3b405d1c66317"}, + {file = "Pillow-10.0.1-pp39-pypy39_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:b059ac2c4c7a97daafa7dc850b43b2d3667def858a4f112d1aa082e5c3d6cf7d"}, + {file = "Pillow-10.0.1-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:d6caf3cd38449ec3cd8a68b375e0c6fe4b6fd04edb6c9766b55ef84a6e8ddf2d"}, + {file = "Pillow-10.0.1.tar.gz", hash = "sha256:d72967b06be9300fed5cfbc8b5bafceec48bf7cdc7dab66b1d2549035287191d"}, ] [package.extras] From e946c3892e0c8b4451504ea9c3a09d59a1b7cc42 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 17 Oct 2023 20:55:12 +0000 Subject: [PATCH 02/12] Bump urllib3 from 2.0.4 to 2.0.7 Bumps [urllib3](https://github.com/urllib3/urllib3) from 2.0.4 to 2.0.7. - [Release notes](https://github.com/urllib3/urllib3/releases) - [Changelog](https://github.com/urllib3/urllib3/blob/main/CHANGES.rst) - [Commits](https://github.com/urllib3/urllib3/compare/2.0.4...2.0.7) --- updated-dependencies: - dependency-name: urllib3 dependency-type: indirect ... Signed-off-by: dependabot[bot] --- poetry.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/poetry.lock b/poetry.lock index d220b0b..28cb833 100644 --- a/poetry.lock +++ b/poetry.lock @@ -3282,13 +3282,13 @@ dev = ["flake8", "flake8-annotations", "flake8-bandit", "flake8-bugbear", "flake [[package]] name = "urllib3" -version = "2.0.4" +version = "2.0.7" description = "HTTP library with thread-safe connection pooling, file post, and more." optional = false python-versions = ">=3.7" files = [ - {file = "urllib3-2.0.4-py3-none-any.whl", hash = "sha256:de7df1803967d2c2a98e4b11bb7d6bd9210474c46e8a0401514e3a42a75ebde4"}, - {file = "urllib3-2.0.4.tar.gz", hash = "sha256:8d22f86aae8ef5e410d4f539fde9ce6b2113a001bb4d189e0aed70642d602b11"}, + {file = "urllib3-2.0.7-py3-none-any.whl", hash = "sha256:fdb6d215c776278489906c2f8916e6e7d4f5a9b602ccbcfdf7f016fc8da0596e"}, + {file = "urllib3-2.0.7.tar.gz", hash = "sha256:c97dfde1f7bd43a71c8d2a58e369e9b2bf692d1334ea9f9cae55add7d0dd0f84"}, ] [package.extras] From 7065b9598b649a631b311f166239cc425e858d4b Mon Sep 17 00:00:00 2001 From: Clemens Prescher Date: Fri, 27 Oct 2023 10:56:46 +0200 Subject: [PATCH 03/12] fix fit normalization to linear and not quadratic - is more in line with the integral, and still evaluations higher Q with more preference --- glassure/core/calc.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/glassure/core/calc.py b/glassure/core/calc.py index c659134..c6113e7 100644 --- a/glassure/core/calc.py +++ b/glassure/core/calc.py @@ -69,7 +69,7 @@ def calculate_normalization_factor(sample_pattern: Pattern, density: float, comp def fit_normalization_factor(sample_pattern: Pattern, composition: dict[str, float], q_cutoff: float = 3, - method: str = "squared", use_incoherent_scattering: bool = True, + method: str = "linear", use_incoherent_scattering: bool = True, sf_source: str = 'hajdu') -> float: """ Estimates the normalization factor n for calculating S(Q) by fitting @@ -103,7 +103,7 @@ def fit_normalization_factor(sample_pattern: Pattern, composition: dict[str, flo params = lmfit.Parameters() params.add("n", value=1, min=0) - params.add("multiple", value=1, min=0) + params.add("multiple", value=0, min=0) def optimization_fcn(params, x, sample_intensity, theory_intensity): n = params['n'].value From a7b4bea0f6fa6a37ba3a8cb50bcf80fc8468670c Mon Sep 17 00:00:00 2001 From: Clemens Prescher Date: Fri, 27 Oct 2023 10:59:27 +0200 Subject: [PATCH 04/12] fix error with S0 auto evaluation for brown and hubbell form factors. --- changelog.rst | 6 ++++++ glassure/gui/model/glassure_model.py | 2 +- tests/gui_tests/test_functional.py | 8 ++++++++ 3 files changed, 15 insertions(+), 1 deletion(-) diff --git a/changelog.rst b/changelog.rst index a7a6c75..f2ac1b3 100644 --- a/changelog.rst +++ b/changelog.rst @@ -1,3 +1,9 @@ +1.4.1 (under development) +------------------------- + +Bug fixes: + - fix error with s0 auto calculation when using brown hubbell form factors. + 1.4.0 (2023/09/03) ------------------ diff --git a/glassure/gui/model/glassure_model.py b/glassure/gui/model/glassure_model.py index 433b8c1..6ae1a36 100644 --- a/glassure/gui/model/glassure_model.py +++ b/glassure/gui/model/glassure_model.py @@ -570,7 +570,7 @@ def perform_extrapolation(self): extrapolation_method = self.extrapolation_config.method if self.extrapolation_config.s0_auto: - self.extrapolation_config.s0 = calculate_s0(self.composition) + self.extrapolation_config.s0 = calculate_s0(self.composition, self.sf_source) s0 = self.extrapolation_config.s0 diff --git a/tests/gui_tests/test_functional.py b/tests/gui_tests/test_functional.py index 4abb6e7..90fc830 100644 --- a/tests/gui_tests/test_functional.py +++ b/tests/gui_tests/test_functional.py @@ -196,3 +196,11 @@ def test_using_different_fourier_transform_methods(main_controller: GlassureCont assert not np.array_equal(prev_gr_data, pattern_widget.gr_items[0].getData()) # he is satisfied with the small changes and will continue to use the fft method + + +def test_adding_elements_with_brown_hubbell(main_controller: GlassureController, main_widget: GlassureWidget, + composition_widget: CompositionWidget, model: GlassureModel): + composition_widget.source_cb.setCurrentIndex(1) + assert composition_widget.source_cb.currentText() == "brown_hubbell" + click_button(composition_widget.add_element_btn) + click_checkbox(main_widget.left_control_widget.extrapolation_widget.activate_cb) From 52e01d2e0bb876edb51c5666c34ce2a5b0f0d79e Mon Sep 17 00:00:00 2001 From: Clemens Prescher Date: Fri, 27 Oct 2023 16:25:06 +0200 Subject: [PATCH 05/12] added continuous delivery script (adapted from xypattern) --- .github/workflows/CD.yml | 62 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 62 insertions(+) create mode 100644 .github/workflows/CD.yml diff --git a/.github/workflows/CD.yml b/.github/workflows/CD.yml new file mode 100644 index 0000000..5552489 --- /dev/null +++ b/.github/workflows/CD.yml @@ -0,0 +1,62 @@ +# This workflow will install Python dependencies, run tests and lint with a variety of Python versions +# For more information see: https://docs.github.com/en/actions/automating-builds-and-tests/building-and-testing-python + +name: CD + +on: + release: + types: [published] + +jobs: + build_package: + strategy: + fail-fast: false + matrix: + python-version: [ "3.12" ] + + runs-on: "ubuntu-latest" + + steps: + - uses: actions/checkout@v3 + + - name: Install Poetry + uses: snok/install-poetry@v1 + + - name: Set up Python ${{ matrix.python-version }} + uses: actions/setup-python@v4 + with: + python-version: ${{ matrix.python-version }} + cache: 'poetry' + + - name: Install dependencies + run: poetry install + + - name: Build Package + run: poetry build + + - name: Upload wheels to artifact + uses: actions/upload-artifact@v3 + with: + name: wheels + path: dist/* + + pypi-publish: + name: Upload release to PyPI + needs: build_package + runs-on: ubuntu-latest + environment: + name: pypi + url: https://pypi.org/p/glassure/ + permissions: + id-token: write + steps: + - uses: actions/download-artifact@v3 + with: + name: wheels + path: dist + + - name: check the dist folder + run: ls dist + + - name: Publish to PyPI + uses: pypa/gh-action-pypi-publish@release/v1 \ No newline at end of file From b218d46dc3bdb1049542b28fb00b865d7bf3e328 Mon Sep 17 00:00:00 2001 From: Clemens Prescher Date: Fri, 27 Oct 2023 16:29:12 +0200 Subject: [PATCH 06/12] converted changelog into markdown format --- changelog.md | 39 +++++++++++++++++++++++++++++++++++++++ changelog.rst | 44 -------------------------------------------- 2 files changed, 39 insertions(+), 44 deletions(-) create mode 100644 changelog.md delete mode 100644 changelog.rst diff --git a/changelog.md b/changelog.md new file mode 100644 index 0000000..4f11d3d --- /dev/null +++ b/changelog.md @@ -0,0 +1,39 @@ +## 1.4.1 (2023/10/27) + +### Bug fixes: +- fix error with s0 auto calculation when using brown hubbell form factors. + +## 1.4.0 (2023/09/03) + +### New features: +- the chosen scattering factor source can now be applied per configuration and are not global anymore +- added support for ionic scattering factors when using the brown et al. 2006 scattering factors +- calculations now also work correctly without specifying a background pattern +- added typehints to the core calculation functions +- the normalization method can now be chosen in the GUI - previously only integral was available and now also + fitting can be chosen +- the Structure Factor calculation method can be chosen in the GUI - now Faber-Ziman and Ashcroft-Langreth are + available +- fft has been set to be default for the Fourier transform in the GUI and a checkbox has been added to also allow + the usage of integration method when necessary +- the extrapolation of the S(Q) to zero in the GUI will now calculate the theoretical value for S(Q) at Q=0, using + the form factors - the value can also be set manually (e.g. for data with very low compressibility) +- the current configurations can be saved as a json file and loaded later for continuing work on these data, or as + documentation for the data processing +- created basic documentation for the core functions, available under (glassure.readthedocs.io) + + +### Bug fixes: +- consistent naming for patterns - file endings will now always be omitted +- removing a configuration now correctly switches to the correct configuration and updates the parameters in the gui +- renaming configurations is now persistent after removing a configuration +- visibility of configurations is now persistent after removing or freezing a configuration +- float numbers can now be entered with a comma as decimal separator, it will be converted to a dot automatically +- data and background patterns are correctly updated in the plot when switching between configurations + +## 1.3.0 (2023/04/26) + +### New features: +- changed to pyqt 6 which should reduce issues with high dpi screens +- added support for brown et al. 2006 scattering factors (from international tables of crystallography) and hubbell et + al.1975 compton scattering intensities diff --git a/changelog.rst b/changelog.rst deleted file mode 100644 index f2ac1b3..0000000 --- a/changelog.rst +++ /dev/null @@ -1,44 +0,0 @@ -1.4.1 (under development) -------------------------- - -Bug fixes: - - fix error with s0 auto calculation when using brown hubbell form factors. - -1.4.0 (2023/09/03) ------------------- - -New features: - - the chosen scattering factor source can now be applied per configuration and are not global anymore - - added support for ionic scattering factors when using the brown et al. 2006 scattering factors - - calculations now also work correctly without specifying a background pattern - - added typehints to the core calculation functions - - the normalization method can now be chosen in the GUI - previously only integral was available and now also - fitting can be chosen - - the Structure Factor calculation method can be chosen in the GUI - now Faber-Ziman and Ashcroft-Langreth are - available - - fft has been set to be default for the Fourier transform in the GUI and a checkbox has been added to also allow - the usage of integration method when necessary - - the extrapolation of the S(Q) to zero in the GUI will now calculate the theoretical value for S(Q) at Q=0, using - the form factors - the value can also be set manually (e.g. for data with very low compressibility) - - the current configurations can be saved as a json file and loaded later for continuing work on these data, or as - documentation for the data processing - - created basic documentation for the core functions, available under (glassure.readthedocs.io) - - -Bug fixes: - - consistent naming for patterns - file endings will now always be omitted - - removing a configuration now correctly switches to the correct configuration and updates the parameters in the gui - - renaming configurations is now persistent after removing a configuration - - visibility of configurations is now persistent after removing or freezing a configuration - - float numbers can now be entered with a comma as decimal separator, it will be converted to a dot automatically - - data and background patterns are correctly updated in the plot when switching between configurations - -1.3.0 (2023/04/26) ------------------- - -New features: - - changed to pyqt 6 which should reduce issues with high dpi screens - - added support for brown et al. 2006 scattering factors (from - international tables of crystallography) and hubbell et al. 1975 compton - scattering intensities - From 2e719e5f7314e4abfc5aaa3d12553e3e4b6fc99c Mon Sep 17 00:00:00 2001 From: Clemens Prescher Date: Fri, 27 Oct 2023 16:33:07 +0200 Subject: [PATCH 07/12] cleaning up unnecssary old files --- .travis.yml | 56 ----------------------------------------------------- MANIFEST.in | 2 -- 2 files changed, 58 deletions(-) delete mode 100644 .travis.yml delete mode 100644 MANIFEST.in diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index 29c0c54..0000000 --- a/.travis.yml +++ /dev/null @@ -1,56 +0,0 @@ -# Config file for automatic testing at travis-ci.org -language: python - -python: - - 2.7 - - 3.6 - -cache: - pip: true - directories: - - /home/travis/miniconda2 - - /home/travis/miniconda3 - -before_install: - # install anaconda - - echo $TRAVIS_PYTHON_VERSION - - if [ "$TRAVIS_PYTHON_VERSION" == "2.7" ]; then - if [ ! -d "/home/travis/miniconda2/bin" ]; then - rm -rf /home/travis/miniconda2; - wget http://repo.continuum.io/miniconda/Miniconda2-latest-Linux-x86_64.sh -O miniconda.sh; - chmod +x miniconda.sh; - ./miniconda.sh -b; - fi - fi - - if [ "$TRAVIS_PYTHON_VERSION" == "3.6" ]; then - if [ ! -d "/home/travis/miniconda3/bin" ]; then - rm -rf /home/travis/miniconda3; - wget http://repo.continuum.io/miniconda/Miniconda3-latest-Linux-x86_64.sh -O miniconda.sh; - chmod +x miniconda.sh; - ./miniconda.sh -b; - fi - fi - - - if [ "$TRAVIS_PYTHON_VERSION" == "2.7" ]; then - export PATH=/home/travis/miniconda2/bin:$PATH; - else - export PATH=/home/travis/miniconda3/bin:$PATH; - fi - - - conda update --yes conda - - export PYTHONPATH=$PWD/glassure:$PYTHONPATH - - #start x-server - - export DISPLAY=:99.0 - - sh -e /etc/init.d/xvfb start - -install: - - conda install --yes python=$TRAVIS_PYTHON_VERSION numpy scipy pyqt pytest pytest-cov pandas mock - - pip install pyqtgraph lmfit coveralls coverage - -script: - - coverage run --source glassure -m py.test - - coverage report -m - -after_success: - coveralls diff --git a/MANIFEST.in b/MANIFEST.in deleted file mode 100644 index 65a30b5..0000000 --- a/MANIFEST.in +++ /dev/null @@ -1,2 +0,0 @@ -include versioneer.py -include glassure/core/_version.py From 53ba2f76d8cf51ca8f07b325724587cc7c862fef Mon Sep 17 00:00:00 2001 From: Clemens Prescher Date: Fri, 27 Oct 2023 16:40:47 +0200 Subject: [PATCH 08/12] added matrix and coverage to CI workflow --- .github/workflows/CI.yml | 46 +++++++++++++++++----------------------- 1 file changed, 20 insertions(+), 26 deletions(-) diff --git a/.github/workflows/CI.yml b/.github/workflows/CI.yml index 7ef175d..5867dea 100644 --- a/.github/workflows/CI.yml +++ b/.github/workflows/CI.yml @@ -12,16 +12,26 @@ jobs: env: QT_QPA_PLATFORM: offscreen + strategy: + fail-fast: false + matrix: + python-version: [ "3.9", "3.10", "3.11" ] + steps: #---------------------------------------------- # check-out repo and set-up python #---------------------------------------------- - name: Check out repository uses: actions/checkout@v3 - - name: Set up Python 3.11 + + - name: Install poetry + run: pip install poetry + + - name: Set up Python uses: actions/setup-python@v4 with: - python-version: '3.11' + python-version: ${{ matrix.python-version }} + cache: 'poetry' #---------------------------------------------- # ----- install apt dependencies ----- @@ -35,36 +45,20 @@ jobs: libxcb-shm0-dev libxcb-icccm4-dev libxcb-sync0-dev libxcb-xfixes0-dev libxcb-shape0-dev \ libxcb-randr0-dev libxcb-render-util0-dev libegl1 - #---------------------------------------------- - # ----- install & configure poetry ----- - #---------------------------------------------- - - name: Install Poetry - uses: snok/install-poetry@v1 - with: - virtualenvs-create: true - virtualenvs-in-project: true - installer-parallel: true #---------------------------------------------- - # load cached venv if cache exists - #---------------------------------------------- - - name: Load cached venv - id: cached-poetry-dependencies - uses: actions/cache@v3 - with: - path: .venv - key: venv-${{ runner.os }}-${{ steps.setup-python.outputs.python-version }}-${{ hashFiles('**/poetry.lock') }} - - #---------------------------------------------- - # install dependencies if cache does not exist + # install dependencies #---------------------------------------------- - name: Install dependencies - if: steps.cached-poetry-dependencies.outputs.cache-hit != 'true' - run: poetry install --no-interaction --no-root + run: poetry install #---------------------------------------------- # run test suite #---------------------------------------------- - name: Run tests run: | - poetry run pytest tests/core_tests - poetry run pytest tests/gui_tests + poetry run pytest tests --cov=glassure --cov-report=xml + + - name: Upload coverage reports to Codecov + uses: codecov/codecov-action@v3 + env: + CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} From 450b88aa2460d96fba3bf59a1ebfbc38785d06fd Mon Sep 17 00:00:00 2001 From: Clemens Prescher Date: Fri, 27 Oct 2023 17:23:44 +0200 Subject: [PATCH 09/12] refactor usage of StrEnum (python >3.11) to Enum, since we want to keep backward compatibility --- glassure/core/calc.py | 12 ++++++----- glassure/core/methods.py | 25 +++++++++++++++++++++++ glassure/gui/model/configuration.py | 27 ++----------------------- glassure/gui/widgets/control/options.py | 5 +++-- 4 files changed, 37 insertions(+), 32 deletions(-) create mode 100644 glassure/core/methods.py diff --git a/glassure/core/calc.py b/glassure/core/calc.py index c6113e7..843f582 100644 --- a/glassure/core/calc.py +++ b/glassure/core/calc.py @@ -7,6 +7,8 @@ from .utility import calculate_incoherent_scattering, calculate_f_squared_mean, calculate_f_mean_squared, \ convert_density_to_atoms_per_cubic_angstrom +from .methods import SqMethod, NormalizationMethod, FourierTransformMethod + __all__ = ['calculate_normalization_factor_raw', 'calculate_normalization_factor', 'fit_normalization_factor', 'calculate_sq', 'calculate_sq_raw', 'calculate_sq_from_fr', 'calculate_sq_from_gr', 'calculate_fr', 'calculate_gr_raw', 'calculate_gr'] @@ -139,10 +141,10 @@ def calculate_sq_raw(sample_pattern: Pattern, f_squared_mean: np.ndarray, f_mean if incoherent_scattering is None: incoherent_scattering = np.zeros_like(q) - if method == 'FZ': + if method == 'FZ' or method == SqMethod.FZ: sq = (normalization_factor * intensity - incoherent_scattering - f_squared_mean + f_mean_squared) / \ f_mean_squared - elif method == 'AL': + elif method == 'AL' or method == SqMethod.AL: sq = (normalization_factor * intensity - incoherent_scattering) / f_squared_mean else: raise NotImplementedError('{} method is not implemented'.format(method)) @@ -188,7 +190,7 @@ def calculate_sq(sample_pattern: Pattern, density: float, composition: dict[str, incoherent_scattering = None atomic_density = convert_density_to_atoms_per_cubic_angstrom(composition, density) - if normalization_method == 'fit': + if normalization_method == 'fit' or normalization_method == NormalizationMethod.FIT: normalization_factor = fit_normalization_factor(sample_pattern, composition, use_incoherent_scattering, @@ -238,9 +240,9 @@ def calculate_fr(sq_pattern: Pattern, r: Optional[np.ndarray] = None, use_modifi else: modification = 1 - if method == 'integral': + if method == 'integral' or method == FourierTransformMethod.INTEGRAL: fr = 2.0 / np.pi * np.trapz(modification * q * (sq - 1) * np.array(np.sin(np.outer(q.T, r))).T, q) - elif method == 'fft': + elif method == 'fft' or method == FourierTransformMethod.FFT: q_step = q[1] - q[0] r_step = r[1] - r[0] diff --git a/glassure/core/methods.py b/glassure/core/methods.py new file mode 100644 index 0000000..f2345d2 --- /dev/null +++ b/glassure/core/methods.py @@ -0,0 +1,25 @@ +from enum import Enum + + +class SqMethod(Enum): + """ + Enum class for the different methods to calculate the structure factor. + """ + FZ = 'FZ' + AL = 'AL' + + +class NormalizationMethod(Enum): + """ + Enum class for the different methods to perform an intensity normalization. + """ + INTEGRAL = 'integral' + FIT = 'fit' + + +class FourierTransformMethod(Enum): + """ + Enum class for the different methods to perform a Fourier transform. + """ + FFT = 'fft' + INTEGRAL = 'integral' diff --git a/glassure/gui/model/configuration.py b/glassure/gui/model/configuration.py index 54ae062..686906d 100644 --- a/glassure/gui/model/configuration.py +++ b/glassure/gui/model/configuration.py @@ -1,12 +1,13 @@ # -*- coding: utf-8 -*/: from __future__ import annotations -from enum import StrEnum +from enum import Enum from colorsys import hsv_to_rgb from copy import deepcopy import numpy as np from ...core.pattern import Pattern +from ...core.methods import SqMethod, NormalizationMethod, FourierTransformMethod class TransformConfiguration(object): @@ -273,30 +274,6 @@ def get_pattern_or_none(pattern_dict): return config -class SqMethod(StrEnum): - """ - Enum class for the different methods to calculate the structure factor. - """ - FZ = 'FZ' - AL = 'AL' - - -class NormalizationMethod(StrEnum): - """ - Enum class for the different methods to perform an intensity normalization. - """ - INTEGRAL = 'integral' - FIT = 'fit' - - -class FourierTransformMethod(StrEnum): - """ - Enum class for the different methods to perform a Fourier transform. - """ - FFT = 'fft' - INTEGRAL = 'integral' - - def calculate_color(ind): s = 0.8 v = 0.8 diff --git a/glassure/gui/widgets/control/options.py b/glassure/gui/widgets/control/options.py index e716002..7ba4d7e 100644 --- a/glassure/gui/widgets/control/options.py +++ b/glassure/gui/widgets/control/options.py @@ -3,7 +3,8 @@ from qtpy import QtCore, QtWidgets from ..custom import HorizontalLine, FloatLineEdit, DragSlider import numpy as np -from ...model.configuration import NormalizationMethod, SqMethod, TransformConfiguration, FourierTransformMethod +from ...model.configuration import TransformConfiguration +from ....core.methods import SqMethod, NormalizationMethod, FourierTransformMethod class OptionsWidget(QtWidgets.QWidget): @@ -165,7 +166,7 @@ def get_fourier_transform_method(self): return FourierTransformMethod.INTEGRAL def set_fourier_transform_method(self, method): - if method == 'fft': + if method == 'fft' or method == FourierTransformMethod.FFT: self.fft_cb.setChecked(True) else: self.fft_cb.setChecked(False) From eeac7421d471c240ed2492bcc5884cd35a298408 Mon Sep 17 00:00:00 2001 From: Clemens Prescher Date: Fri, 27 Oct 2023 17:30:45 +0200 Subject: [PATCH 10/12] import future annotation to make | for types work --- glassure/gui/widgets/custom/pattern.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/glassure/gui/widgets/custom/pattern.py b/glassure/gui/widgets/custom/pattern.py index 7e02f80..4dae220 100644 --- a/glassure/gui/widgets/custom/pattern.py +++ b/glassure/gui/widgets/custom/pattern.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- - +from __future__ import annotations import pyqtgraph as pg import numpy as np from qtpy import QtCore, QtWidgets From 56075d91179006a8fecff2cb0cfda887ff5eceaa Mon Sep 17 00:00:00 2001 From: Clemens Prescher Date: Fri, 27 Oct 2023 17:35:35 +0200 Subject: [PATCH 11/12] remove unused density optimizer class --- glassure/gui/model/density_optimization.py | 101 --------------------- glassure/gui/model/glassure_model.py | 26 ------ 2 files changed, 127 deletions(-) delete mode 100644 glassure/gui/model/density_optimization.py diff --git a/glassure/gui/model/density_optimization.py b/glassure/gui/model/density_optimization.py deleted file mode 100644 index 85ff1ce..0000000 --- a/glassure/gui/model/density_optimization.py +++ /dev/null @@ -1,101 +0,0 @@ -# -*- coding: utf-8 -*- - -import numpy as np -from qtpy import QtGui -from lmfit import Parameters, minimize, report_fit - -from ...core.calculator import StandardCalculator -from ...core.utility import convert_density_to_atoms_per_cubic_angstrom - - -class DensityOptimizer(object): - def __init__(self, - original_pattern, background_pattern, initial_background_scaling, - elemental_abundances, initial_density, - density_min, density_max, bkg_min, bkg_max, r_cutoff, - use_modification_fcn=False, extrapolation_method=None,extrapolation_parameters=None, r=np.linspace(0, 10, 1000), - output_txt=None): - self.original_pattern = original_pattern - self.background_pattern = background_pattern - self.background_scaling = initial_background_scaling - self.elemental_abundances = elemental_abundances - self.density = initial_density - self.r = r - self.minimization_r = np.linspace(0, r_cutoff, r_cutoff * 100) - self.r_cutoff = r_cutoff - - self.bkg_min = bkg_min - self.bkg_max = bkg_max - self.density_min = density_min - self.density_max = density_max - self.use_modification_fcn = use_modification_fcn - self.extrapolation_method = extrapolation_method - self.extrapolation_parameters = extrapolation_parameters - self.output_txt = output_txt - self.iteration = 1 - - def optimize(self, optimization_iterations=10, fcn_callback=None): - params = Parameters() - params.add("density", value=self.density, min=self.density_min, max=self.density_max) - params.add("background_scaling", value=self.background_scaling, min=self.bkg_min, max=self.bkg_max) - - def fcn_optimization(params): - density = params['density'].value - background_scaling = params['background_scaling'].value - - self.background_pattern.scaling = background_scaling - calculator = StandardCalculator( - original_pattern=self.original_pattern, - background_pattern=self.background_pattern, - composition=self.elemental_abundances, - density=density, - r=self.r, - extrapolation_method=self.extrapolation_method, - extrapolation_parameters=self.extrapolation_parameters, - use_modification_fcn=self.use_modification_fcn - ) - calculator.optimize_sq( - r_cutoff=self.minimization_r, - iterations=optimization_iterations - ) - - if fcn_callback is not None: - fr_pattern = calculator.calc_fr() - gr_pattern = calculator.calc_gr() - fcn_callback(background_scaling, density, fr_pattern, gr_pattern) - - r, fr = calculator.calc_fr(self.minimization_r).data - - output = (-fr - 4 * np.pi * convert_density_to_atoms_per_cubic_angstrom(self.elemental_abundances, density) * - self.minimization_r) ** 2 - - - self.write_output(u'{} X: {:.3f} Den: {:.3f}'.format(self.iteration, np.sum(output)/(r[1]-r[0]), density)) - self.iteration+=1 - return output - - self.output_txt.setPlainText('') - minimize(fcn_optimization, params) - self.write_fit_result(params) - report_fit(params) - - def write_output(self, msg): - if self.output_txt is None: - print(msg) - else: - previous_txt = str(self.output_txt.toPlainText()) - new_txt = previous_txt + "\n" + str(msg) - self.output_txt.setPlainText(new_txt) - # QtGui.QApplication.processEvents() - self.output_txt.verticalScrollBar().setValue(self.output_txt.verticalScrollBar().maximum()) - QtGui.QApplication.processEvents() - self.output_txt.verticalScrollBar().setValue(self.output_txt.verticalScrollBar().maximum()) - QtGui.QApplication.processEvents() - - def write_fit_result(self, params): - output = '\nFit Results:\n' - output += '-Background Scaling:\n % .3g +/- %.3g\n' % (params['background_scaling'].value, - params['background_scaling'].stderr) - output += '-Density:\n % .3g +/- %.3g\n' % (params['density'].value, - params['density'].stderr) - self.write_output(output) diff --git a/glassure/gui/model/glassure_model.py b/glassure/gui/model/glassure_model.py index 6ae1a36..fb4bf3c 100644 --- a/glassure/gui/model/glassure_model.py +++ b/glassure/gui/model/glassure_model.py @@ -8,7 +8,6 @@ from qtpy import QtGui, QtCore from ...core.pattern import Pattern -from .density_optimization import DensityOptimizer from ...core.utility import calculate_incoherent_scattering, convert_density_to_atoms_per_cubic_angstrom from ...core import calculate_sq, calculate_gr, calculate_fr from ...core.optimization import optimize_sq @@ -602,31 +601,6 @@ def calculate_gr(self): self.gr_pattern = calculate_gr( self.fr_pattern, self.density, self.composition) - def optimize_density_and_scaling2(self, density_min, density_max, bkg_min, - bkg_max, iterations, output_txt=None): - optimizer = DensityOptimizer( - original_pattern=self.original_pattern.limit( - self.q_min, self.q_max), - background_pattern=self.background_pattern.limit( - self.q_min, self.q_max), - initial_background_scaling=self.background_scaling, - elemental_abundances=self.composition, - initial_density=self.density, - r_cutoff=self.r_cutoff, - r=np.linspace(self.r_min, self.r_max, 1000), - density_min=density_min, - density_max=density_max, - bkg_min=bkg_min, - bkg_max=bkg_max, - use_modification_fcn=self.use_modification_fcn, - extrapolation_method=self.extrapolation_config.method, - extrapolation_parameters={ - 'q_max': self.extrapolation_config.fit_q_max, - 'replace': self.extrapolation_config.fit_replace}, - output_txt=output_txt - ) - - optimizer.optimize(iterations) def optimize_density_and_scaling(self, density_min, density_max, bkg_min, bkg_max, iterations, callback_fcn=None, output_txt=None): From 6048db76f657abf6304bb45215452124c7db76ae Mon Sep 17 00:00:00 2001 From: Clemens Prescher Date: Fri, 27 Oct 2023 17:37:03 +0200 Subject: [PATCH 12/12] prepare for 1.4.1 release --- changelog.md | 1 + glassure/__init__.py | 2 +- pyproject.toml | 2 +- 3 files changed, 3 insertions(+), 2 deletions(-) diff --git a/changelog.md b/changelog.md index 4f11d3d..0efa518 100644 --- a/changelog.md +++ b/changelog.md @@ -2,6 +2,7 @@ ### Bug fixes: - fix error with s0 auto calculation when using brown hubbell form factors. +- fix python compatibility for 3.9 and 3.10 ## 1.4.0 (2023/09/03) diff --git a/glassure/__init__.py b/glassure/__init__.py index f9da9e9..41de290 100644 --- a/glassure/__init__.py +++ b/glassure/__init__.py @@ -1,3 +1,3 @@ # -*- coding: utf8 -*- -__version__ = '1.4.0' +__version__ = '1.4.1' diff --git a/pyproject.toml b/pyproject.toml index 6a4ef7a..121e263 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "glassure" -version = "1.4.0" +version = "1.4.1" description = "API and GUI for analysis of X-ray total scattering data" authors = ["Clemens Prescher "] license = "MIT"