From 98c9da2178decf0949817cf464cb4dc00a02b1d4 Mon Sep 17 00:00:00 2001 From: maximlt Date: Thu, 2 Nov 2023 16:35:31 +0100 Subject: [PATCH 1/3] debug --- portfolio_optimizer/anaconda-project-lock.yml | 1101 ++++++++--------- portfolio_optimizer/anaconda-project.yml | 34 +- ...tfolio.ipynb => portfolio_optimizer.ipynb} | 0 portfolio_optimizer/thumbnails/portfolio.png | Bin 182260 -> 0 bytes .../thumbnails/portfolio_optimizer.png | Bin 0 -> 73047 bytes 5 files changed, 540 insertions(+), 595 deletions(-) rename portfolio_optimizer/{portfolio.ipynb => portfolio_optimizer.ipynb} (100%) delete mode 100644 portfolio_optimizer/thumbnails/portfolio.png create mode 100644 portfolio_optimizer/thumbnails/portfolio_optimizer.png diff --git a/portfolio_optimizer/anaconda-project-lock.yml b/portfolio_optimizer/anaconda-project-lock.yml index 1bada7899..816aeed62 100644 --- a/portfolio_optimizer/anaconda-project-lock.yml +++ b/portfolio_optimizer/anaconda-project-lock.yml @@ -10,340 +10,19 @@ # Set to false to ignore locked versions. # locking_enabled: true - -# -# A key goes in here for each env spec. -# env_specs: - test: - locked: true - env_spec_hash: 55dd99748911eefefe73a5de1def5c3108927882 - platforms: - - linux-64 - - osx-64 - - win-64 - packages: - all: - - argon2-cffi=21.3.0=pyhd3eb1b0_0 - - asttokens=2.0.5=pyhd3eb1b0_0 - - attrs=21.4.0=pyhd3eb1b0_0 - - backcall=0.2.0=pyhd3eb1b0_0 - - bleach=4.1.0=pyhd3eb1b0_0 - - charset-normalizer=2.0.4=pyhd3eb1b0_0 - - cycler=0.11.0=pyhd3eb1b0_0 - - decorator=5.1.1=pyhd3eb1b0_0 - - defusedxml=0.7.1=pyhd3eb1b0_0 - - executing=0.8.3=pyhd3eb1b0_0 - - fonttools=4.25.0=pyhd3eb1b0_0 - - holoviews=1.14.8=pyhd3eb1b0_0 - - hvplot=0.7.2=pyhd3eb1b0_1 - - idna=3.3=pyhd3eb1b0_0 - - importlib_resources=5.2.0=pyhd3eb1b0_1 - - iniconfig=1.1.1=pyhd3eb1b0_0 - - ipython_genutils=0.2.0=pyhd3eb1b0_1 - - jinja2=3.0.3=pyhd3eb1b0_0 - - jupyterlab_pygments=0.1.2=py_0 - - matplotlib-inline=0.1.2=pyhd3eb1b0_2 - - munkres=1.1.4=py_0 - - nbsmoke=0.5.0=py_0 - - packaging=21.3=pyhd3eb1b0_0 - - pandocfilters=1.5.0=pyhd3eb1b0_0 - - param=1.12.0=pyhd3eb1b0_0 - - parso=0.8.3=pyhd3eb1b0_0 - - pickleshare=0.7.5=pyhd3eb1b0_1003 - - prometheus_client=0.13.1=pyhd3eb1b0_0 - - prompt-toolkit=3.0.20=pyhd3eb1b0_0 - - pure_eval=0.2.2=pyhd3eb1b0_0 - - py=1.11.0=pyhd3eb1b0_0 - - pycparser=2.21=pyhd3eb1b0_0 - - pyflakes=2.4.0=pyhd3eb1b0_0 - - pygments=2.11.2=pyhd3eb1b0_0 - - pyopenssl=22.0.0=pyhd3eb1b0_0 - - pyparsing=3.0.4=pyhd3eb1b0_0 - - python-dateutil=2.8.2=pyhd3eb1b0_0 - - python-fastjsonschema=2.15.1=pyhd3eb1b0_0 - - pytz=2021.3=pyhd3eb1b0_0 - - pyviz_comms=2.0.2=pyhd3eb1b0_0 - - requests=2.27.1=pyhd3eb1b0_0 - - send2trash=1.8.0=pyhd3eb1b0_1 - - six=1.16.0=pyhd3eb1b0_1 - - soupsieve=2.3.1=pyhd3eb1b0_0 - - stack_data=0.2.0=pyhd3eb1b0_0 - - testpath=0.5.0=pyhd3eb1b0_0 - - tomli=1.2.2=pyhd3eb1b0_0 - - traitlets=5.1.1=pyhd3eb1b0_0 - - typing-extensions=4.1.1=hd3eb1b0_0 - - typing_extensions=4.1.1=pyh06a4308_0 - - wcwidth=0.2.5=pyhd3eb1b0_0 - - wheel=0.37.1=pyhd3eb1b0_0 - unix: - - pexpect=4.8.0=pyhd3eb1b0_3 - - ptyprocess=0.7.0=pyhd3eb1b0_2 - linux-64: - - _libgcc_mutex=0.1=main - - _openmp_mutex=5.1=1_gnu - - argon2-cffi-bindings=21.2.0=py38h7f8727e_0 - - beautifulsoup4=4.11.1=py38h06a4308_0 - - blas=1.0=mkl - - bokeh=2.4.2=py38h06a4308_1 - - bottleneck=1.3.4=py38hce1f21e_0 - - brotli=1.0.9=he6710b0_2 - - brotlipy=0.7.0=py38h27cfd23_1003 - - ca-certificates=2022.4.26=h06a4308_0 - - certifi=2022.5.18.1=py38h06a4308_0 - - cffi=1.15.0=py38hd667e15_1 - - colorcet=3.0.0=py38h06a4308_0 - - cryptography=37.0.1=py38h9ce1e76_0 - - debugpy=1.5.1=py38h295c915_0 - - entrypoints=0.4=py38h06a4308_0 - - freetype=2.11.0=h70c0345_0 - - giflib=5.2.1=h7b6447c_0 - - importlib-metadata=4.11.3=py38h06a4308_0 - - intel-openmp=2021.4.0=h06a4308_3561 - - ipykernel=6.9.1=py38h06a4308_0 - - ipython=8.3.0=py38h06a4308_0 - - jedi=0.18.1=py38h06a4308_1 - - jpeg=9e=h7f8727e_0 - - jsonschema=4.4.0=py38h06a4308_0 - - jupyter_client=7.2.2=py38h06a4308_0 - - jupyter_core=4.10.0=py38h06a4308_0 - - kiwisolver=1.3.2=py38h295c915_0 - - lcms2=2.12=h3be6417_0 - - ld_impl_linux-64=2.38=h1181459_1 - - libffi=3.3=he6710b0_2 - - libgcc-ng=11.2.0=h1234567_0 - - libgfortran-ng=7.3.0=hdf63c60_0 - - libgomp=11.2.0=h1234567_0 - - libpng=1.6.37=hbc83047_0 - - libsodium=1.0.18=h7b6447c_0 - - libstdcxx-ng=11.2.0=h1234567_0 - - libtiff=4.2.0=h2818925_1 - - libwebp-base=1.2.2=h7f8727e_0 - - libwebp=1.2.2=h55f646e_0 - - lz4-c=1.9.3=h295c915_1 - - markdown=3.3.4=py38h06a4308_0 - - markupsafe=2.0.1=py38h27cfd23_0 - - matplotlib-base=3.5.1=py38ha18d171_1 - - mistune=0.8.4=py38h7b6447c_1000 - - mkl-service=2.4.0=py38h7f8727e_0 - - mkl=2021.4.0=h06a4308_640 - - mkl_fft=1.3.1=py38hd3c417c_0 - - mkl_random=1.2.2=py38h51133e4_0 - - nbclient=0.5.13=py38h06a4308_0 - - nbconvert=6.4.4=py38h06a4308_0 - - nbformat=5.3.0=py38h06a4308_0 - - ncurses=6.3=h7f8727e_2 - - nest-asyncio=1.5.5=py38h06a4308_0 - - notebook=6.4.11=py38h06a4308_0 - - numexpr=2.8.1=py38h6abb31d_0 - - numpy-base=1.22.3=py38hf524024_0 - - numpy=1.22.3=py38he7a7128_0 - - openssl=1.1.1o=h7f8727e_0 - - pandas=1.4.2=py38h295c915_0 - - panel=0.13.0=py38h06a4308_0 - - pillow=9.0.1=py38h22f2fdc_0 - - pip=21.2.4=py38h06a4308_0 - - pluggy=1.0.0=py38h06a4308_1 - - pyct=0.4.8=py38_0 - - pyrsistent=0.18.0=py38heee7806_0 - - pysocks=1.7.1=py38h06a4308_0 - - pytest=7.1.1=py38h06a4308_0 - - python=3.8.13=h12debd9_0 - - pyyaml=6.0=py38h7f8727e_1 - - pyzmq=22.3.0=py38h295c915_2 - - readline=8.1.2=h7f8727e_1 - - scipy=1.6.2=py38had2a1c9_1 - - setuptools=61.2.0=py38h06a4308_0 - - sqlite=3.38.3=hc218d9a_0 - - terminado=0.13.1=py38h06a4308_0 - - tk=8.6.11=h1ccaba5_1 - - tornado=6.1=py38h27cfd23_0 - - tqdm=4.64.0=py38h06a4308_0 - - urllib3=1.26.9=py38h06a4308_0 - - webencodings=0.5.1=py38_1 - - xz=5.2.5=h7f8727e_1 - - yaml=0.2.5=h7b6447c_0 - - zeromq=4.3.4=h2531618_0 - - zipp=3.8.0=py38h06a4308_0 - - zlib=1.2.12=h7f8727e_2 - - zstd=1.5.2=ha4553b6_0 - osx-64: - - appnope=0.1.2=py38hca03da5_1001 - - argon2-cffi-bindings=21.2.0=py38h1a28f6b_0 - - beautifulsoup4=4.11.1=py38hca03da5_0 - - blas=1.0=openblas - - bokeh=2.4.2=py38hca03da5_1 - - bottleneck=1.3.4=py38heec5a64_0 - - brotli=1.0.7=hc377ac9_0 - - brotlipy=0.7.0=py38h1a28f6b_1002 - - ca-certificates=2022.4.26=hca03da5_0 - - certifi=2022.5.18.1=py38hca03da5_0 - - cffi=1.15.0=py38h22df2f2_1 - - colorcet=3.0.0=py38hca03da5_0 - - cryptography=37.0.1=py38h834c97f_0 - - debugpy=1.5.1=py38hc377ac9_0 - - entrypoints=0.4=py38hca03da5_0 - - freetype=2.11.0=h1192e45_0 - - giflib=5.2.1=h1a28f6b_0 - - importlib-metadata=4.11.3=py38hca03da5_0 - - ipykernel=6.9.1=py38hca03da5_0 - - ipython=8.3.0=py38hca03da5_0 - - jedi=0.18.1=py38hca03da5_1 - - jpeg=9e=h1a28f6b_0 - - jsonschema=4.4.0=py38hca03da5_0 - - jupyter_client=7.2.2=py38hca03da5_0 - - jupyter_core=4.10.0=py38hca03da5_0 - - kiwisolver=1.3.2=py38hc377ac9_0 - - lcms2=2.12=hba8e193_0 - - libcxx=12.0.0=hf6beb65_1 - - libffi=3.4.2=hc377ac9_2 - - libgfortran5=11.2.0=he6877d6_26 - - libgfortran=5.0.0=11_2_0_he6877d6_26 - - libopenblas=0.3.20=hea475bc_0 - - libpng=1.6.37=hb8d0fd4_0 - - libsodium=1.0.18=h1a28f6b_0 - - libtiff=4.2.0=h01837e1_1 - - libwebp-base=1.2.2=h1a28f6b_0 - - libwebp=1.2.2=h68602c7_0 - - llvm-openmp=12.0.0=haf9daa7_1 - - lz4-c=1.9.3=hc377ac9_0 - - markdown=3.3.4=py38hca03da5_0 - - markupsafe=2.0.1=py38h1a28f6b_0 - - matplotlib-base=3.5.1=py38hc377ac9_1 - - mistune=0.8.4=py38h1a28f6b_1000 - - nbclient=0.5.13=py38hca03da5_0 - - nbconvert=6.4.4=py38hca03da5_0 - - nbformat=5.3.0=py38hca03da5_0 - - ncurses=6.3=h1a28f6b_2 - - nest-asyncio=1.5.5=py38hca03da5_0 - - notebook=6.4.11=py38hca03da5_0 - - numexpr=2.8.1=py38h144ceef_0 - - numpy-base=1.22.3=py38h974a1f5_0 - - numpy=1.22.3=py38h25ab29e_0 - - openssl=1.1.1o=h1a28f6b_0 - - pandas=1.4.2=py38hc377ac9_0 - - panel=0.13.0=py38hca03da5_0 - - pillow=9.0.1=py38h4d1bdd5_0 - - pip=21.2.4=py38hca03da5_0 - - pluggy=1.0.0=py38hca03da5_1 - - pyct=0.4.6=py38hca03da5_0 - - pyrsistent=0.18.0=py38h1a28f6b_0 - - pysocks=1.7.1=py38hca03da5_0 - - pytest=7.1.1=py38hca03da5_0 - - python=3.8.13=hbdb9e5c_0 - - pyyaml=6.0=py38h1a28f6b_0 - - pyzmq=22.3.0=py38hc377ac9_2 - - readline=8.1.2=h1a28f6b_1 - - scipy=1.7.3=py38h2f0f56f_0 - - setuptools=61.2.0=py38hca03da5_0 - - sqlite=3.38.3=h1058600_0 - - terminado=0.13.1=py38hca03da5_0 - - tk=8.6.11=hb8d0fd4_1 - - tornado=6.1=py38h1a28f6b_0 - - tqdm=4.64.0=py38hca03da5_0 - - urllib3=1.26.9=py38hca03da5_0 - - webencodings=0.5.1=py38hca03da5_1 - - xz=5.2.5=h1a28f6b_1 - - yaml=0.2.5=h1a28f6b_0 - - zeromq=4.3.4=hc377ac9_0 - - zipp=3.8.0=py38hca03da5_0 - - zlib=1.2.12=h5a0b063_2 - - zstd=1.5.2=h8574219_0 - win-64: - - argon2-cffi-bindings=21.2.0=py38h2bbff1b_0 - - atomicwrites=1.4.0=py_0 - - beautifulsoup4=4.11.1=py38haa95532_0 - - blas=1.0=mkl - - bokeh=2.4.2=py38haa95532_1 - - bottleneck=1.3.4=py38h080aedc_0 - - brotli=1.0.9=ha925a31_2 - - brotlipy=0.7.0=py38h2bbff1b_1003 - - ca-certificates=2022.4.26=haa95532_0 - - certifi=2022.5.18.1=py38haa95532_0 - - cffi=1.15.0=py38h2bbff1b_1 - - colorama=0.4.4=pyhd3eb1b0_0 - - colorcet=3.0.0=py38haa95532_0 - - cryptography=37.0.1=py38h21b164f_0 - - debugpy=1.5.1=py38hd77b12b_0 - - entrypoints=0.4=py38haa95532_0 - - freetype=2.10.4=hd328e21_0 - - icc_rt=2019.0.0=h0cc432a_1 - - importlib-metadata=4.11.3=py38haa95532_0 - - intel-openmp=2021.4.0=haa95532_3556 - - ipykernel=6.9.1=py38haa95532_0 - - ipython=8.3.0=py38haa95532_0 - - jedi=0.18.1=py38haa95532_1 - - jpeg=9e=h2bbff1b_0 - - jsonschema=4.4.0=py38haa95532_0 - - jupyter_client=7.2.2=py38haa95532_0 - - jupyter_core=4.10.0=py38haa95532_0 - - kiwisolver=1.3.2=py38hd77b12b_0 - - libpng=1.6.37=h2a8f88b_0 - - libtiff=4.2.0=he0120a3_1 - - libwebp=1.2.2=h2bbff1b_0 - - lz4-c=1.9.3=h2bbff1b_1 - - markdown=3.3.4=py38haa95532_0 - - markupsafe=2.0.1=py38h2bbff1b_0 - - matplotlib-base=3.5.1=py38hd77b12b_1 - - mistune=0.8.4=py38he774522_1000 - - mkl-service=2.4.0=py38h2bbff1b_0 - - mkl=2021.4.0=haa95532_640 - - mkl_fft=1.3.1=py38h277e83a_0 - - mkl_random=1.2.2=py38hf11a4ad_0 - - nbclient=0.5.13=py38haa95532_0 - - nbconvert=6.4.4=py38haa95532_0 - - nbformat=5.3.0=py38haa95532_0 - - nest-asyncio=1.5.5=py38haa95532_0 - - notebook=6.4.11=py38haa95532_0 - - numexpr=2.8.1=py38hb80d3ca_0 - - numpy-base=1.22.3=py38hca35cd5_0 - - numpy=1.22.3=py38h7a0a035_0 - - openssl=1.1.1o=h2bbff1b_0 - - pandas=1.4.2=py38hd77b12b_0 - - panel=0.13.0=py38haa95532_0 - - pillow=9.0.1=py38hdc2b20a_0 - - pip=21.2.2=py38haa95532_0 - - pluggy=1.0.0=py38haa95532_1 - - pyct=0.4.8=py38_0 - - pyrsistent=0.18.0=py38h196d8e1_0 - - pysocks=1.7.1=py38haa95532_0 - - pytest=7.1.1=py38haa95532_0 - - python=3.8.13=h6244533_0 - - pywin32=302=py38h2bbff1b_2 - - pywinpty=2.0.2=py38h5da7b33_0 - - pyyaml=6.0=py38h2bbff1b_1 - - pyzmq=22.3.0=py38hd77b12b_2 - - scipy=1.7.3=py38h0a974cb_0 - - setuptools=61.2.0=py38haa95532_0 - - sqlite=3.38.3=h2bbff1b_0 - - terminado=0.13.1=py38haa95532_0 - - tk=8.6.11=h2bbff1b_1 - - tornado=6.1=py38h2bbff1b_0 - - tqdm=4.64.0=py38haa95532_0 - - urllib3=1.26.9=py38haa95532_0 - - vc=14.2=h21ff451_1 - - vs2015_runtime=14.27.29016=h5e58377_2 - - webencodings=0.5.1=py38_1 - - win_inet_pton=1.1.0=py38haa95532_0 - - wincertstore=0.2=py38haa95532_2 - - winpty=0.4.3=4 - - xz=5.2.5=h8cc25b3_1 - - yaml=0.2.5=he774522_0 - - zipp=3.8.0=py38haa95532_0 - - zlib=1.2.12=h8cc25b3_2 - - zstd=1.5.2=h19a0ad4_0 default: locked: true - env_spec_hash: 5ff80baa1a9858b4a277901bfcc75dfbcc0168f2 + env_spec_hash: 6b67fc6386df874f572c0becf6bc9116c7a90248 platforms: - linux-64 - osx-64 + - osx-arm64 - win-64 packages: all: - argon2-cffi=21.3.0=pyhd3eb1b0_0 - asttokens=2.0.5=pyhd3eb1b0_0 - - attrs=21.4.0=pyhd3eb1b0_0 - backcall=0.2.0=pyhd3eb1b0_0 - bleach=4.1.0=pyhd3eb1b0_0 - charset-normalizer=2.0.4=pyhd3eb1b0_0 @@ -352,288 +31,568 @@ env_specs: - defusedxml=0.7.1=pyhd3eb1b0_0 - executing=0.8.3=pyhd3eb1b0_0 - fonttools=4.25.0=pyhd3eb1b0_0 - - holoviews=1.14.8=pyhd3eb1b0_0 - - hvplot=0.7.2=pyhd3eb1b0_1 - - idna=3.3=pyhd3eb1b0_0 - - importlib_resources=5.2.0=pyhd3eb1b0_1 - ipython_genutils=0.2.0=pyhd3eb1b0_1 - - jinja2=3.0.3=pyhd3eb1b0_0 - jupyterlab_pygments=0.1.2=py_0 - - matplotlib-inline=0.1.2=pyhd3eb1b0_2 - munkres=1.1.4=py_0 - - packaging=21.3=pyhd3eb1b0_0 - pandocfilters=1.5.0=pyhd3eb1b0_0 - - param=1.12.0=pyhd3eb1b0_0 - parso=0.8.3=pyhd3eb1b0_0 - pickleshare=0.7.5=pyhd3eb1b0_1003 - - prometheus_client=0.13.1=pyhd3eb1b0_0 - - prompt-toolkit=3.0.20=pyhd3eb1b0_0 - pure_eval=0.2.2=pyhd3eb1b0_0 - pycparser=2.21=pyhd3eb1b0_0 - - pygments=2.11.2=pyhd3eb1b0_0 - - pyopenssl=22.0.0=pyhd3eb1b0_0 - - pyparsing=3.0.4=pyhd3eb1b0_0 - python-dateutil=2.8.2=pyhd3eb1b0_0 - - python-fastjsonschema=2.15.1=pyhd3eb1b0_0 - - pytz=2021.3=pyhd3eb1b0_0 - - pyviz_comms=2.0.2=pyhd3eb1b0_0 - - requests=2.27.1=pyhd3eb1b0_0 + - python-tzdata=2023.3=pyhd3eb1b0_0 - send2trash=1.8.0=pyhd3eb1b0_1 - six=1.16.0=pyhd3eb1b0_1 - - soupsieve=2.3.1=pyhd3eb1b0_0 - stack_data=0.2.0=pyhd3eb1b0_0 - - testpath=0.5.0=pyhd3eb1b0_0 - - traitlets=5.1.1=pyhd3eb1b0_0 - - typing-extensions=4.1.1=hd3eb1b0_0 - - typing_extensions=4.1.1=pyh06a4308_0 + - tzdata=2023c=h04d1e81_0 - wcwidth=0.2.5=pyhd3eb1b0_0 - - wheel=0.37.1=pyhd3eb1b0_0 unix: - pexpect=4.8.0=pyhd3eb1b0_3 - ptyprocess=0.7.0=pyhd3eb1b0_2 linux-64: - _libgcc_mutex=0.1=main - _openmp_mutex=5.1=1_gnu - - argon2-cffi-bindings=21.2.0=py38h7f8727e_0 - - beautifulsoup4=4.11.1=py38h06a4308_0 + - anyio=3.5.0=py39h06a4308_0 + - argon2-cffi-bindings=21.2.0=py39h7f8727e_0 + - attrs=23.1.0=py39h06a4308_0 + - beautifulsoup4=4.12.2=py39h06a4308_0 - blas=1.0=mkl - - bokeh=2.4.2=py38h06a4308_1 - - bottleneck=1.3.4=py38hce1f21e_0 - - brotli=1.0.9=he6710b0_2 - - brotlipy=0.7.0=py38h27cfd23_1003 - - ca-certificates=2022.4.26=h06a4308_0 - - certifi=2022.5.18.1=py38h06a4308_0 - - cffi=1.15.0=py38hd667e15_1 - - colorcet=3.0.0=py38h06a4308_0 - - cryptography=37.0.1=py38h9ce1e76_0 - - debugpy=1.5.1=py38h295c915_0 - - entrypoints=0.4=py38h06a4308_0 - - freetype=2.11.0=h70c0345_0 - - giflib=5.2.1=h7b6447c_0 - - importlib-metadata=4.11.3=py38h06a4308_0 - - intel-openmp=2021.4.0=h06a4308_3561 - - ipykernel=6.9.1=py38h06a4308_0 - - ipython=8.3.0=py38h06a4308_0 - - jedi=0.18.1=py38h06a4308_1 - - jpeg=9e=h7f8727e_0 - - jsonschema=4.4.0=py38h06a4308_0 - - jupyter_client=7.2.2=py38h06a4308_0 - - jupyter_core=4.10.0=py38h06a4308_0 - - kiwisolver=1.3.2=py38h295c915_0 + - bokeh=3.3.0=py39h2f386ee_0 + - bottleneck=1.3.5=py39h7deecbd_0 + - brotli-bin=1.0.9=h5eee18b_7 + - brotli-python=1.0.9=py39h6a678d5_7 + - brotli=1.0.9=h5eee18b_7 + - ca-certificates=2023.08.22=h06a4308_0 + - certifi=2023.7.22=py39h06a4308_0 + - cffi=1.15.1=py39h5eee18b_3 + - colorcet=3.0.1=py39h06a4308_0 + - comm=0.1.2=py39h06a4308_0 + - contourpy=1.0.5=py39hdb19cb5_0 + - cryptography=41.0.3=py39hdda0065_0 + - debugpy=1.6.7=py39h6a678d5_0 + - entrypoints=0.4=py39h06a4308_0 + - exceptiongroup=1.0.4=py39h06a4308_0 + - freetype=2.12.1=h4a9f257_0 + - giflib=5.2.1=h5eee18b_3 + - holoviews=1.18.0=py39h06a4308_0 + - hvplot=0.9.0=py39h06a4308_0 + - icu=73.1=h6a678d5_0 + - idna=3.4=py39h06a4308_0 + - importlib-metadata=6.0.0=py39h06a4308_0 + - importlib_resources=6.1.0=py39h06a4308_0 + - intel-openmp=2023.1.0=hdb19cb5_46305 + - ipykernel=6.25.0=py39h2f386ee_0 + - ipython=8.15.0=py39h06a4308_0 + - jedi=0.18.1=py39h06a4308_1 + - jinja2=3.1.2=py39h06a4308_0 + - jpeg=9e=h5eee18b_1 + - jsonschema=4.17.3=py39h06a4308_0 + - jupyter_client=7.4.9=py39h06a4308_0 + - jupyter_core=5.3.0=py39h06a4308_0 + - jupyter_server=1.23.4=py39h06a4308_0 + - kiwisolver=1.4.4=py39h6a678d5_0 - lcms2=2.12=h3be6417_0 - ld_impl_linux-64=2.38=h1181459_1 - - libffi=3.3=he6710b0_2 - - libgcc-ng=11.2.0=h1234567_0 - - libgfortran-ng=7.3.0=hdf63c60_0 - - libgomp=11.2.0=h1234567_0 - - libpng=1.6.37=hbc83047_0 + - lerc=3.0=h295c915_0 + - libbrotlicommon=1.0.9=h5eee18b_7 + - libbrotlidec=1.0.9=h5eee18b_7 + - libbrotlienc=1.0.9=h5eee18b_7 + - libdeflate=1.17=h5eee18b_1 + - libffi=3.4.4=h6a678d5_0 + - libgcc-ng=11.2.0=h1234567_1 + - libgfortran-ng=11.2.0=h00389a5_1 + - libgfortran5=11.2.0=h1234567_1 + - libgomp=11.2.0=h1234567_1 + - libpng=1.6.39=h5eee18b_0 - libsodium=1.0.18=h7b6447c_0 - - libstdcxx-ng=11.2.0=h1234567_0 - - libtiff=4.2.0=h2818925_1 - - libwebp-base=1.2.2=h7f8727e_0 - - libwebp=1.2.2=h55f646e_0 - - lz4-c=1.9.3=h295c915_1 - - markdown=3.3.4=py38h06a4308_0 - - markupsafe=2.0.1=py38h27cfd23_0 - - matplotlib-base=3.5.1=py38ha18d171_1 - - mistune=0.8.4=py38h7b6447c_1000 - - mkl-service=2.4.0=py38h7f8727e_0 - - mkl=2021.4.0=h06a4308_640 - - mkl_fft=1.3.1=py38hd3c417c_0 - - mkl_random=1.2.2=py38h51133e4_0 - - nbclient=0.5.13=py38h06a4308_0 - - nbconvert=6.4.4=py38h06a4308_0 - - nbformat=5.3.0=py38h06a4308_0 - - ncurses=6.3=h7f8727e_2 - - nest-asyncio=1.5.5=py38h06a4308_0 - - notebook=6.4.11=py38h06a4308_0 - - numexpr=2.8.1=py38h6abb31d_0 - - numpy-base=1.22.3=py38hf524024_0 - - numpy=1.22.3=py38he7a7128_0 - - openssl=1.1.1o=h7f8727e_0 - - pandas=1.4.2=py38h295c915_0 - - panel=0.13.0=py38h06a4308_0 - - pillow=9.0.1=py38h22f2fdc_0 - - pip=21.2.4=py38h06a4308_0 - - pyct=0.4.8=py38_0 - - pyrsistent=0.18.0=py38heee7806_0 - - pysocks=1.7.1=py38h06a4308_0 - - python=3.8.13=h12debd9_0 - - pyyaml=6.0=py38h7f8727e_1 - - pyzmq=22.3.0=py38h295c915_2 - - readline=8.1.2=h7f8727e_1 - - scipy=1.6.2=py38had2a1c9_1 - - setuptools=61.2.0=py38h06a4308_0 - - sqlite=3.38.3=hc218d9a_0 - - terminado=0.13.1=py38h06a4308_0 - - tk=8.6.11=h1ccaba5_1 - - tornado=6.1=py38h27cfd23_0 - - tqdm=4.64.0=py38h06a4308_0 - - urllib3=1.26.9=py38h06a4308_0 - - webencodings=0.5.1=py38_1 - - xz=5.2.5=h7f8727e_1 + - libstdcxx-ng=11.2.0=h1234567_1 + - libtiff=4.5.1=h6a678d5_0 + - libwebp-base=1.3.2=h5eee18b_0 + - libwebp=1.3.2=h11a3e52_0 + - libxml2=2.10.4=hf1b16e4_1 + - libxslt=1.1.37=h5eee18b_1 + - linkify-it-py=2.0.0=py39h06a4308_0 + - lxml=4.9.3=py39hdbbb534_0 + - lz4-c=1.9.4=h6a678d5_0 + - markdown-it-py=2.2.0=py39h06a4308_1 + - markdown=3.4.1=py39h06a4308_0 + - markupsafe=2.1.1=py39h7f8727e_0 + - matplotlib-base=3.8.0=py39h1128e8f_0 + - matplotlib-inline=0.1.6=py39h06a4308_0 + - mdit-py-plugins=0.3.0=py39h06a4308_0 + - mdurl=0.1.0=py39h06a4308_0 + - mistune=0.8.4=py39h27cfd23_1000 + - mkl-service=2.4.0=py39h5eee18b_1 + - mkl=2023.1.0=h213fc3f_46343 + - mkl_fft=1.3.8=py39h5eee18b_0 + - mkl_random=1.2.4=py39hdb19cb5_0 + - nbclassic=0.5.5=py39h06a4308_0 + - nbclient=0.5.13=py39h06a4308_0 + - nbconvert=6.5.4=py39h06a4308_0 + - nbformat=5.9.2=py39h06a4308_0 + - ncurses=6.4=h6a678d5_0 + - nest-asyncio=1.5.6=py39h06a4308_0 + - notebook-shim=0.2.2=py39h06a4308_0 + - notebook=6.5.4=py39h06a4308_1 + - numexpr=2.8.7=py39h85018f9_0 + - numpy-base=1.26.0=py39hb5e798b_0 + - numpy=1.26.0=py39h5f9d8c6_0 + - openjpeg=2.4.0=h3ad879b_0 + - openssl=3.0.11=h7f8727e_2 + - packaging=23.1=py39h06a4308_0 + - pandas=2.1.1=py39h1128e8f_0 + - panel=1.3.1=py39h06a4308_0 + - param=2.0.0=py39h06a4308_0 + - pillow=10.0.1=py39ha6cbd5a_0 + - pip=23.3=py39h06a4308_0 + - platformdirs=3.10.0=py39h06a4308_0 + - prometheus_client=0.14.1=py39h06a4308_0 + - prompt-toolkit=3.0.36=py39h06a4308_0 + - psutil=5.9.0=py39h5eee18b_0 + - pyct=0.5.0=py39h06a4308_0 + - pygments=2.15.1=py39h06a4308_1 + - pyopenssl=23.2.0=py39h06a4308_0 + - pyparsing=3.0.9=py39h06a4308_0 + - pyrsistent=0.18.0=py39heee7806_0 + - pysocks=1.7.1=py39h06a4308_0 + - python-fastjsonschema=2.16.2=py39h06a4308_0 + - python=3.9.18=h955ad1f_0 + - pytz=2023.3.post1=py39h06a4308_0 + - pyviz_comms=2.3.0=py39h06a4308_0 + - pyyaml=6.0.1=py39h5eee18b_0 + - pyzmq=23.2.0=py39h6a678d5_0 + - readline=8.2=h5eee18b_0 + - requests=2.31.0=py39h06a4308_0 + - scipy=1.11.3=py39h5f9d8c6_0 + - setuptools=68.0.0=py39h06a4308_0 + - sniffio=1.2.0=py39h06a4308_1 + - soupsieve=2.5=py39h06a4308_0 + - sqlite=3.41.2=h5eee18b_0 + - tbb=2021.8.0=hdb19cb5_0 + - terminado=0.17.1=py39h06a4308_0 + - tinycss2=1.2.1=py39h06a4308_0 + - tk=8.6.12=h1ccaba5_0 + - tornado=6.3.3=py39h5eee18b_0 + - tqdm=4.65.0=py39hb070fc8_0 + - traitlets=5.7.1=py39h06a4308_0 + - typing-extensions=4.7.1=py39h06a4308_0 + - typing_extensions=4.7.1=py39h06a4308_0 + - uc-micro-py=1.0.1=py39h06a4308_0 + - urllib3=1.26.18=py39h06a4308_0 + - webencodings=0.5.1=py39h06a4308_1 + - websocket-client=0.58.0=py39h06a4308_4 + - wheel=0.41.2=py39h06a4308_0 + - xyzservices=2022.9.0=py39h06a4308_1 + - xz=5.4.2=h5eee18b_0 - yaml=0.2.5=h7b6447c_0 - zeromq=4.3.4=h2531618_0 - - zipp=3.8.0=py38h06a4308_0 - - zlib=1.2.12=h7f8727e_2 - - zstd=1.5.2=ha4553b6_0 + - zipp=3.11.0=py39h06a4308_0 + - zlib=1.2.13=h5eee18b_0 + - zstd=1.5.5=hc292b87_0 osx-64: - - appnope=0.1.2=py38hca03da5_1001 - - argon2-cffi-bindings=21.2.0=py38h1a28f6b_0 - - beautifulsoup4=4.11.1=py38hca03da5_0 + - anyio=3.5.0=py39hecd8cb5_0 + - appnope=0.1.2=py39hecd8cb5_1001 + - argon2-cffi-bindings=21.2.0=py39hca72f7f_0 + - attrs=23.1.0=py39hecd8cb5_0 + - beautifulsoup4=4.12.2=py39hecd8cb5_0 + - blas=1.0=mkl + - bokeh=3.3.0=py39h20db666_0 + - bottleneck=1.3.5=py39h67323c0_0 + - brotli-bin=1.0.9=hca72f7f_7 + - brotli-python=1.0.9=py39he9d5cce_7 + - brotli=1.0.9=hca72f7f_7 + - ca-certificates=2023.08.22=hecd8cb5_0 + - certifi=2023.7.22=py39hecd8cb5_0 + - cffi=1.15.1=py39h6c40b1e_3 + - colorcet=3.0.1=py39hecd8cb5_0 + - comm=0.1.2=py39hecd8cb5_0 + - contourpy=1.0.5=py39haf03e11_0 + - cryptography=41.0.3=py39h30e54ef_0 + - debugpy=1.6.7=py39hcec6c5f_0 + - entrypoints=0.4=py39hecd8cb5_0 + - exceptiongroup=1.0.4=py39hecd8cb5_0 + - freetype=2.12.1=hd8bbffd_0 + - giflib=5.2.1=h6c40b1e_3 + - holoviews=1.18.0=py39hecd8cb5_0 + - hvplot=0.9.0=py39hecd8cb5_0 + - icu=73.1=hcec6c5f_0 + - idna=3.4=py39hecd8cb5_0 + - importlib-metadata=6.0.0=py39hecd8cb5_0 + - importlib_resources=6.1.0=py39hecd8cb5_0 + - intel-openmp=2023.1.0=ha357a0b_43547 + - ipykernel=6.25.0=py39h20db666_0 + - ipython=8.15.0=py39hecd8cb5_0 + - jedi=0.18.1=py39hecd8cb5_1 + - jinja2=3.1.2=py39hecd8cb5_0 + - jpeg=9e=h6c40b1e_1 + - jsonschema=4.17.3=py39hecd8cb5_0 + - jupyter_client=7.4.9=py39hecd8cb5_0 + - jupyter_core=5.3.0=py39hecd8cb5_0 + - jupyter_server=1.23.4=py39hecd8cb5_0 + - kiwisolver=1.4.4=py39hcec6c5f_0 + - lcms2=2.12=hf1fd2bf_0 + - lerc=3.0=he9d5cce_0 + - libbrotlicommon=1.0.9=hca72f7f_7 + - libbrotlidec=1.0.9=hca72f7f_7 + - libbrotlienc=1.0.9=hca72f7f_7 + - libcxx=14.0.6=h9765a3e_0 + - libdeflate=1.17=hb664fd8_1 + - libffi=3.4.4=hecd8cb5_0 + - libgfortran5=11.3.0=h9dfd629_28 + - libgfortran=5.0.0=11_3_0_hecd8cb5_28 + - libiconv=1.16=hca72f7f_2 + - libpng=1.6.39=h6c40b1e_0 + - libsodium=1.0.18=h1de35cc_0 + - libtiff=4.5.1=hcec6c5f_0 + - libwebp-base=1.3.2=h6c40b1e_0 + - libwebp=1.3.2=hf6ce154_0 + - libxml2=2.10.4=h1bd7e62_1 + - libxslt=1.1.37=h6c40b1e_1 + - linkify-it-py=2.0.0=py39hecd8cb5_0 + - llvm-openmp=14.0.6=h0dcd299_0 + - lxml=4.9.3=py39h946e0e5_0 + - lz4-c=1.9.4=hcec6c5f_0 + - markdown-it-py=2.2.0=py39hecd8cb5_1 + - markdown=3.4.1=py39hecd8cb5_0 + - markupsafe=2.1.1=py39hca72f7f_0 + - matplotlib-base=3.8.0=py39hb47e01b_0 + - matplotlib-inline=0.1.6=py39hecd8cb5_0 + - mdit-py-plugins=0.3.0=py39hecd8cb5_0 + - mdurl=0.1.0=py39hecd8cb5_0 + - mistune=0.8.4=py39h9ed2024_1000 + - mkl-service=2.4.0=py39h6c40b1e_1 + - mkl=2023.1.0=h8e150cf_43559 + - mkl_fft=1.3.8=py39h6c40b1e_0 + - mkl_random=1.2.4=py39ha357a0b_0 + - nbclassic=0.5.5=py39hecd8cb5_0 + - nbclient=0.5.13=py39hecd8cb5_0 + - nbconvert=6.5.4=py39hecd8cb5_0 + - nbformat=5.9.2=py39hecd8cb5_0 + - ncurses=6.4=hcec6c5f_0 + - nest-asyncio=1.5.6=py39hecd8cb5_0 + - notebook-shim=0.2.2=py39hecd8cb5_0 + - notebook=6.5.4=py39hecd8cb5_1 + - numexpr=2.8.7=py39h827a554_0 + - numpy-base=1.26.0=py39ha186be2_0 + - numpy=1.26.0=py39h827a554_0 + - openjpeg=2.4.0=h66ea3da_0 + - openssl=3.0.11=hca72f7f_2 + - packaging=23.1=py39hecd8cb5_0 + - pandas=2.1.1=py39h3ea8b11_0 + - panel=1.3.1=py39hecd8cb5_0 + - param=2.0.0=py39hecd8cb5_0 + - pillow=10.0.1=py39h7d39338_0 + - pip=23.3=py39hecd8cb5_0 + - platformdirs=3.10.0=py39hecd8cb5_0 + - prometheus_client=0.14.1=py39hecd8cb5_0 + - prompt-toolkit=3.0.36=py39hecd8cb5_0 + - psutil=5.9.0=py39hca72f7f_0 + - pyct=0.5.0=py39hecd8cb5_0 + - pygments=2.15.1=py39hecd8cb5_1 + - pyopenssl=23.2.0=py39hecd8cb5_0 + - pyparsing=3.0.9=py39hecd8cb5_0 + - pyrsistent=0.18.0=py39hca72f7f_0 + - pysocks=1.7.1=py39hecd8cb5_0 + - python-fastjsonschema=2.16.2=py39hecd8cb5_0 + - python=3.9.18=h5ee71fb_0 + - pytz=2023.3.post1=py39hecd8cb5_0 + - pyviz_comms=2.3.0=py39hecd8cb5_0 + - pyyaml=6.0.1=py39h6c40b1e_0 + - pyzmq=23.2.0=py39he9d5cce_0 + - readline=8.2=hca72f7f_0 + - requests=2.31.0=py39hecd8cb5_0 + - scipy=1.11.3=py39hdb2ea58_0 + - setuptools=68.0.0=py39hecd8cb5_0 + - sniffio=1.2.0=py39hecd8cb5_1 + - soupsieve=2.5=py39hecd8cb5_0 + - sqlite=3.41.2=h6c40b1e_0 + - tbb=2021.8.0=ha357a0b_0 + - terminado=0.17.1=py39hecd8cb5_0 + - tinycss2=1.2.1=py39hecd8cb5_0 + - tk=8.6.12=h5d9f67b_0 + - tornado=6.3.3=py39h6c40b1e_0 + - tqdm=4.65.0=py39h01d92e1_0 + - traitlets=5.7.1=py39hecd8cb5_0 + - typing-extensions=4.7.1=py39hecd8cb5_0 + - typing_extensions=4.7.1=py39hecd8cb5_0 + - uc-micro-py=1.0.1=py39hecd8cb5_0 + - urllib3=1.26.18=py39hecd8cb5_0 + - webencodings=0.5.1=py39hecd8cb5_1 + - websocket-client=0.58.0=py39hecd8cb5_4 + - wheel=0.41.2=py39hecd8cb5_0 + - xyzservices=2022.9.0=py39hecd8cb5_1 + - xz=5.4.2=h6c40b1e_0 + - yaml=0.2.5=haf1e3a3_0 + - zeromq=4.3.4=h23ab428_0 + - zipp=3.11.0=py39hecd8cb5_0 + - zlib=1.2.13=h4dc903c_0 + - zstd=1.5.5=hc035e20_0 + osx-arm64: + - anyio=3.5.0=py39hca03da5_0 + - appnope=0.1.2=py39hca03da5_1001 + - argon2-cffi-bindings=21.2.0=py39h1a28f6b_0 + - attrs=23.1.0=py39hca03da5_0 + - beautifulsoup4=4.12.2=py39hca03da5_0 - blas=1.0=openblas - - bokeh=2.4.2=py38hca03da5_1 - - bottleneck=1.3.4=py38heec5a64_0 - - brotli=1.0.7=hc377ac9_0 - - brotlipy=0.7.0=py38h1a28f6b_1002 - - ca-certificates=2022.4.26=hca03da5_0 - - certifi=2022.5.18.1=py38hca03da5_0 - - cffi=1.15.0=py38h22df2f2_1 - - colorcet=3.0.0=py38hca03da5_0 - - cryptography=37.0.1=py38h834c97f_0 - - debugpy=1.5.1=py38hc377ac9_0 - - entrypoints=0.4=py38hca03da5_0 - - freetype=2.11.0=h1192e45_0 - - giflib=5.2.1=h1a28f6b_0 - - importlib-metadata=4.11.3=py38hca03da5_0 - - ipykernel=6.9.1=py38hca03da5_0 - - ipython=8.3.0=py38hca03da5_0 - - jedi=0.18.1=py38hca03da5_1 - - jpeg=9e=h1a28f6b_0 - - jsonschema=4.4.0=py38hca03da5_0 - - jupyter_client=7.2.2=py38hca03da5_0 - - jupyter_core=4.10.0=py38hca03da5_0 - - kiwisolver=1.3.2=py38hc377ac9_0 + - bokeh=3.3.0=py39h33ce5c2_0 + - bottleneck=1.3.5=py39heec5a64_0 + - brotli-bin=1.0.9=h1a28f6b_7 + - brotli-python=1.0.9=py39hc377ac9_7 + - brotli=1.0.9=h1a28f6b_7 + - ca-certificates=2023.08.22=hca03da5_0 + - certifi=2023.7.22=py39hca03da5_0 + - cffi=1.15.1=py39h80987f9_3 + - colorcet=3.0.1=py39hca03da5_0 + - comm=0.1.2=py39hca03da5_0 + - contourpy=1.0.5=py39h525c30c_0 + - cryptography=41.0.3=py39hd4332d6_0 + - debugpy=1.6.7=py39h313beb8_0 + - entrypoints=0.4=py39hca03da5_0 + - exceptiongroup=1.0.4=py39hca03da5_0 + - freetype=2.12.1=h1192e45_0 + - giflib=5.2.1=h80987f9_3 + - holoviews=1.18.0=py39hca03da5_0 + - hvplot=0.9.0=py39hca03da5_0 + - icu=73.1=h313beb8_0 + - idna=3.4=py39hca03da5_0 + - importlib-metadata=6.0.0=py39hca03da5_0 + - importlib_resources=6.1.0=py39hca03da5_0 + - ipykernel=6.25.0=py39h33ce5c2_0 + - ipython=8.15.0=py39hca03da5_0 + - jedi=0.18.1=py39hca03da5_1 + - jinja2=3.1.2=py39hca03da5_0 + - jpeg=9e=h80987f9_1 + - jsonschema=4.17.3=py39hca03da5_0 + - jupyter_client=7.4.9=py39hca03da5_0 + - jupyter_core=5.3.0=py39hca03da5_0 + - jupyter_server=1.23.4=py39hca03da5_0 + - kiwisolver=1.4.4=py39h313beb8_0 - lcms2=2.12=hba8e193_0 - - libcxx=12.0.0=hf6beb65_1 - - libffi=3.4.2=hc377ac9_2 - - libgfortran5=11.2.0=he6877d6_26 - - libgfortran=5.0.0=11_2_0_he6877d6_26 - - libopenblas=0.3.20=hea475bc_0 - - libpng=1.6.37=hb8d0fd4_0 + - lerc=3.0=hc377ac9_0 + - libbrotlicommon=1.0.9=h1a28f6b_7 + - libbrotlidec=1.0.9=h1a28f6b_7 + - libbrotlienc=1.0.9=h1a28f6b_7 + - libcxx=14.0.6=h848a8c0_0 + - libdeflate=1.17=h80987f9_1 + - libffi=3.4.4=hca03da5_0 + - libgfortran5=11.3.0=h009349e_28 + - libgfortran=5.0.0=11_3_0_hca03da5_28 + - libiconv=1.16=h1a28f6b_2 + - libopenblas=0.3.21=h269037a_0 + - libpng=1.6.39=h80987f9_0 - libsodium=1.0.18=h1a28f6b_0 - - libtiff=4.2.0=h01837e1_1 - - libwebp-base=1.2.2=h1a28f6b_0 - - libwebp=1.2.2=h68602c7_0 - - llvm-openmp=12.0.0=haf9daa7_1 - - lz4-c=1.9.3=hc377ac9_0 - - markdown=3.3.4=py38hca03da5_0 - - markupsafe=2.0.1=py38h1a28f6b_0 - - matplotlib-base=3.5.1=py38hc377ac9_1 - - mistune=0.8.4=py38h1a28f6b_1000 - - nbclient=0.5.13=py38hca03da5_0 - - nbconvert=6.4.4=py38hca03da5_0 - - nbformat=5.3.0=py38hca03da5_0 - - ncurses=6.3=h1a28f6b_2 - - nest-asyncio=1.5.5=py38hca03da5_0 - - notebook=6.4.11=py38hca03da5_0 - - numexpr=2.8.1=py38h144ceef_0 - - numpy-base=1.22.3=py38h974a1f5_0 - - numpy=1.22.3=py38h25ab29e_0 - - openssl=1.1.1o=h1a28f6b_0 - - pandas=1.4.2=py38hc377ac9_0 - - panel=0.13.0=py38hca03da5_0 - - pillow=9.0.1=py38h4d1bdd5_0 - - pip=21.2.4=py38hca03da5_0 - - pyct=0.4.6=py38hca03da5_0 - - pyrsistent=0.18.0=py38h1a28f6b_0 - - pysocks=1.7.1=py38hca03da5_0 - - python=3.8.13=hbdb9e5c_0 - - pyyaml=6.0=py38h1a28f6b_0 - - pyzmq=22.3.0=py38hc377ac9_2 - - readline=8.1.2=h1a28f6b_1 - - scipy=1.7.3=py38h2f0f56f_0 - - setuptools=61.2.0=py38hca03da5_0 - - sqlite=3.38.3=h1058600_0 - - terminado=0.13.1=py38hca03da5_0 - - tk=8.6.11=hb8d0fd4_1 - - tornado=6.1=py38h1a28f6b_0 - - tqdm=4.64.0=py38hca03da5_0 - - urllib3=1.26.9=py38hca03da5_0 - - webencodings=0.5.1=py38hca03da5_1 - - xz=5.2.5=h1a28f6b_1 + - libtiff=4.5.1=h313beb8_0 + - libwebp-base=1.3.2=h80987f9_0 + - libwebp=1.3.2=ha3663a8_0 + - libxml2=2.10.4=h0dcf63f_1 + - libxslt=1.1.37=h80987f9_1 + - linkify-it-py=2.0.0=py39hca03da5_0 + - llvm-openmp=14.0.6=hc6e5704_0 + - lxml=4.9.3=py39h50ffb84_0 + - lz4-c=1.9.4=h313beb8_0 + - markdown-it-py=2.2.0=py39hca03da5_1 + - markdown=3.4.1=py39hca03da5_0 + - markupsafe=2.1.1=py39h1a28f6b_0 + - matplotlib-base=3.8.0=py39h46d7db6_0 + - matplotlib-inline=0.1.6=py39hca03da5_0 + - mdit-py-plugins=0.3.0=py39hca03da5_0 + - mdurl=0.1.0=py39hca03da5_0 + - mistune=0.8.4=py39h1a28f6b_1000 + - nbclassic=0.5.5=py39hca03da5_0 + - nbclient=0.5.13=py39hca03da5_0 + - nbconvert=6.5.4=py39hca03da5_0 + - nbformat=5.9.2=py39hca03da5_0 + - ncurses=6.4=h313beb8_0 + - nest-asyncio=1.5.6=py39hca03da5_0 + - notebook-shim=0.2.2=py39hca03da5_0 + - notebook=6.5.4=py39hca03da5_1 + - numexpr=2.8.7=py39hecc3335_0 + - numpy-base=1.26.0=py39ha9811e2_0 + - numpy=1.26.0=py39h3b2db8e_0 + - openjpeg=2.3.0=h7a6adac_2 + - openssl=3.0.11=h1a28f6b_2 + - packaging=23.1=py39hca03da5_0 + - pandas=2.1.1=py39h46d7db6_0 + - panel=1.3.1=py39hca03da5_0 + - param=2.0.0=py39hca03da5_0 + - pillow=10.0.1=py39h3b245a6_0 + - pip=23.3=py39hca03da5_0 + - platformdirs=3.10.0=py39hca03da5_0 + - prometheus_client=0.14.1=py39hca03da5_0 + - prompt-toolkit=3.0.36=py39hca03da5_0 + - psutil=5.9.0=py39h1a28f6b_0 + - pyct=0.5.0=py39hca03da5_0 + - pygments=2.15.1=py39hca03da5_1 + - pyopenssl=23.2.0=py39hca03da5_0 + - pyparsing=3.0.9=py39hca03da5_0 + - pyrsistent=0.18.0=py39h1a28f6b_0 + - pysocks=1.7.1=py39hca03da5_0 + - python-fastjsonschema=2.16.2=py39hca03da5_0 + - python=3.9.18=hb885b13_0 + - pytz=2023.3.post1=py39hca03da5_0 + - pyviz_comms=2.3.0=py39hca03da5_0 + - pyyaml=6.0.1=py39h80987f9_0 + - pyzmq=23.2.0=py39hc377ac9_0 + - readline=8.2=h1a28f6b_0 + - requests=2.31.0=py39hca03da5_0 + - scipy=1.11.3=py39h20cbe94_0 + - setuptools=68.0.0=py39hca03da5_0 + - sniffio=1.2.0=py39hca03da5_1 + - soupsieve=2.5=py39hca03da5_0 + - sqlite=3.41.2=h80987f9_0 + - terminado=0.17.1=py39hca03da5_0 + - tinycss2=1.2.1=py39hca03da5_0 + - tk=8.6.12=hb8d0fd4_0 + - tornado=6.3.3=py39h80987f9_0 + - tqdm=4.65.0=py39h86d0a89_0 + - traitlets=5.7.1=py39hca03da5_0 + - typing-extensions=4.7.1=py39hca03da5_0 + - typing_extensions=4.7.1=py39hca03da5_0 + - uc-micro-py=1.0.1=py39hca03da5_0 + - urllib3=1.26.18=py39hca03da5_0 + - webencodings=0.5.1=py39hca03da5_1 + - websocket-client=0.58.0=py39hca03da5_4 + - wheel=0.41.2=py39hca03da5_0 + - xyzservices=2022.9.0=py39hca03da5_1 + - xz=5.4.2=h80987f9_0 - yaml=0.2.5=h1a28f6b_0 - zeromq=4.3.4=hc377ac9_0 - - zipp=3.8.0=py38hca03da5_0 - - zlib=1.2.12=h5a0b063_2 - - zstd=1.5.2=h8574219_0 + - zipp=3.11.0=py39hca03da5_0 + - zlib=1.2.13=h5a0b063_0 + - zstd=1.5.5=hd90d995_0 win-64: - - argon2-cffi-bindings=21.2.0=py38h2bbff1b_0 - - beautifulsoup4=4.11.1=py38haa95532_0 + - anyio=3.5.0=py39haa95532_0 + - argon2-cffi-bindings=21.2.0=py39h2bbff1b_0 + - attrs=23.1.0=py39haa95532_0 + - beautifulsoup4=4.12.2=py39haa95532_0 - blas=1.0=mkl - - bokeh=2.4.2=py38haa95532_1 - - bottleneck=1.3.4=py38h080aedc_0 - - brotli=1.0.9=ha925a31_2 - - brotlipy=0.7.0=py38h2bbff1b_1003 - - ca-certificates=2022.4.26=haa95532_0 - - certifi=2022.5.18.1=py38haa95532_0 - - cffi=1.15.0=py38h2bbff1b_1 - - colorama=0.4.4=pyhd3eb1b0_0 - - colorcet=3.0.0=py38haa95532_0 - - cryptography=37.0.1=py38h21b164f_0 - - debugpy=1.5.1=py38hd77b12b_0 - - entrypoints=0.4=py38haa95532_0 - - freetype=2.10.4=hd328e21_0 - - icc_rt=2019.0.0=h0cc432a_1 - - importlib-metadata=4.11.3=py38haa95532_0 - - intel-openmp=2021.4.0=haa95532_3556 - - ipykernel=6.9.1=py38haa95532_0 - - ipython=8.3.0=py38haa95532_0 - - jedi=0.18.1=py38haa95532_1 - - jpeg=9e=h2bbff1b_0 - - jsonschema=4.4.0=py38haa95532_0 - - jupyter_client=7.2.2=py38haa95532_0 - - jupyter_core=4.10.0=py38haa95532_0 - - kiwisolver=1.3.2=py38hd77b12b_0 - - libpng=1.6.37=h2a8f88b_0 - - libtiff=4.2.0=he0120a3_1 - - libwebp=1.2.2=h2bbff1b_0 - - lz4-c=1.9.3=h2bbff1b_1 - - markdown=3.3.4=py38haa95532_0 - - markupsafe=2.0.1=py38h2bbff1b_0 - - matplotlib-base=3.5.1=py38hd77b12b_1 - - mistune=0.8.4=py38he774522_1000 - - mkl-service=2.4.0=py38h2bbff1b_0 - - mkl=2021.4.0=haa95532_640 - - mkl_fft=1.3.1=py38h277e83a_0 - - mkl_random=1.2.2=py38hf11a4ad_0 - - nbclient=0.5.13=py38haa95532_0 - - nbconvert=6.4.4=py38haa95532_0 - - nbformat=5.3.0=py38haa95532_0 - - nest-asyncio=1.5.5=py38haa95532_0 - - notebook=6.4.11=py38haa95532_0 - - numexpr=2.8.1=py38hb80d3ca_0 - - numpy-base=1.22.3=py38hca35cd5_0 - - numpy=1.22.3=py38h7a0a035_0 - - openssl=1.1.1o=h2bbff1b_0 - - pandas=1.4.2=py38hd77b12b_0 - - panel=0.13.0=py38haa95532_0 - - pillow=9.0.1=py38hdc2b20a_0 - - pip=21.2.2=py38haa95532_0 - - pyct=0.4.8=py38_0 - - pyrsistent=0.18.0=py38h196d8e1_0 - - pysocks=1.7.1=py38haa95532_0 - - python=3.8.13=h6244533_0 - - pywin32=302=py38h2bbff1b_2 - - pywinpty=2.0.2=py38h5da7b33_0 - - pyyaml=6.0=py38h2bbff1b_1 - - pyzmq=22.3.0=py38hd77b12b_2 - - scipy=1.7.3=py38h0a974cb_0 - - setuptools=61.2.0=py38haa95532_0 - - sqlite=3.38.3=h2bbff1b_0 - - terminado=0.13.1=py38haa95532_0 - - tk=8.6.11=h2bbff1b_1 - - tornado=6.1=py38h2bbff1b_0 - - tqdm=4.64.0=py38haa95532_0 - - urllib3=1.26.9=py38haa95532_0 + - bokeh=3.3.0=py39h9909e9c_0 + - bottleneck=1.3.5=py39h080aedc_0 + - brotli-bin=1.0.9=h2bbff1b_7 + - brotli-python=1.0.9=py39hd77b12b_7 + - brotli=1.0.9=h2bbff1b_7 + - ca-certificates=2023.08.22=haa95532_0 + - certifi=2023.7.22=py39haa95532_0 + - cffi=1.15.1=py39h2bbff1b_3 + - colorama=0.4.6=py39haa95532_0 + - colorcet=3.0.1=py39haa95532_0 + - comm=0.1.2=py39haa95532_0 + - contourpy=1.0.5=py39h59b6b97_0 + - cryptography=41.0.3=py39h89fc84f_0 + - debugpy=1.6.7=py39hd77b12b_0 + - entrypoints=0.4=py39haa95532_0 + - exceptiongroup=1.0.4=py39haa95532_0 + - freetype=2.12.1=ha860e81_0 + - giflib=5.2.1=h8cc25b3_3 + - holoviews=1.18.0=py39haa95532_0 + - hvplot=0.9.0=py39haa95532_0 + - icc_rt=2022.1.0=h6049295_2 + - idna=3.4=py39haa95532_0 + - importlib-metadata=6.0.0=py39haa95532_0 + - importlib_resources=6.1.0=py39haa95532_0 + - intel-openmp=2023.1.0=h59b6b97_46319 + - ipykernel=6.25.0=py39h9909e9c_0 + - ipython=8.15.0=py39haa95532_0 + - jedi=0.18.1=py39haa95532_1 + - jinja2=3.1.2=py39haa95532_0 + - jpeg=9e=h2bbff1b_1 + - jsonschema=4.17.3=py39haa95532_0 + - jupyter_client=7.4.9=py39haa95532_0 + - jupyter_core=5.3.0=py39haa95532_0 + - jupyter_server=1.23.4=py39haa95532_0 + - kiwisolver=1.4.4=py39hd77b12b_0 + - lerc=3.0=hd77b12b_0 + - libbrotlicommon=1.0.9=h2bbff1b_7 + - libbrotlidec=1.0.9=h2bbff1b_7 + - libbrotlienc=1.0.9=h2bbff1b_7 + - libdeflate=1.17=h2bbff1b_1 + - libiconv=1.16=h2bbff1b_2 + - libpng=1.6.39=h8cc25b3_0 + - libsodium=1.0.18=h62dcd97_0 + - libtiff=4.5.1=hd77b12b_0 + - libwebp-base=1.3.2=h2bbff1b_0 + - libwebp=1.3.2=hbc33d0d_0 + - libxml2=2.10.4=h0ad7f3c_1 + - libxslt=1.1.37=h2bbff1b_1 + - linkify-it-py=2.0.0=py39haa95532_0 + - lxml=4.9.3=py39h09808a7_0 + - lz4-c=1.9.4=h2bbff1b_0 + - markdown-it-py=2.2.0=py39haa95532_1 + - markdown=3.4.1=py39haa95532_0 + - markupsafe=2.1.1=py39h2bbff1b_0 + - matplotlib-base=3.8.0=py39h4ed8f06_0 + - matplotlib-inline=0.1.6=py39haa95532_0 + - mdit-py-plugins=0.3.0=py39haa95532_0 + - mdurl=0.1.0=py39haa95532_0 + - mistune=0.8.4=py39h2bbff1b_1000 + - mkl-service=2.4.0=py39h2bbff1b_1 + - mkl=2023.1.0=h6b88ed4_46357 + - mkl_fft=1.3.8=py39h2bbff1b_0 + - mkl_random=1.2.4=py39h59b6b97_0 + - nbclassic=0.5.5=py39haa95532_0 + - nbclient=0.5.13=py39haa95532_0 + - nbconvert=6.5.4=py39haa95532_0 + - nbformat=5.9.2=py39haa95532_0 + - nest-asyncio=1.5.6=py39haa95532_0 + - notebook-shim=0.2.2=py39haa95532_0 + - notebook=6.5.4=py39haa95532_1 + - numexpr=2.8.7=py39h2cd9be0_0 + - numpy-base=1.26.0=py39h65a83cf_0 + - numpy=1.26.0=py39h055cbcc_0 + - openjpeg=2.4.0=h4fc8c34_0 + - openssl=3.0.11=h2bbff1b_2 + - packaging=23.1=py39haa95532_0 + - pandas=2.1.1=py39h4ed8f06_0 + - panel=1.3.1=py39haa95532_0 + - param=2.0.0=py39haa95532_0 + - pillow=10.0.1=py39h045eedc_0 + - pip=23.3=py39haa95532_0 + - platformdirs=3.10.0=py39haa95532_0 + - prometheus_client=0.14.1=py39haa95532_0 + - prompt-toolkit=3.0.36=py39haa95532_0 + - psutil=5.9.0=py39h2bbff1b_0 + - pyct=0.5.0=py39haa95532_0 + - pygments=2.15.1=py39haa95532_1 + - pyopenssl=23.2.0=py39haa95532_0 + - pyparsing=3.0.9=py39haa95532_0 + - pyrsistent=0.18.0=py39h196d8e1_0 + - pysocks=1.7.1=py39haa95532_0 + - python-fastjsonschema=2.16.2=py39haa95532_0 + - python=3.9.18=h1aa4202_0 + - pytz=2023.3.post1=py39haa95532_0 + - pyviz_comms=2.3.0=py39haa95532_0 + - pywin32=305=py39h2bbff1b_0 + - pywinpty=2.0.10=py39h5da7b33_0 + - pyyaml=6.0.1=py39h2bbff1b_0 + - pyzmq=23.2.0=py39hd77b12b_0 + - requests=2.31.0=py39haa95532_0 + - scipy=1.11.3=py39h309d312_0 + - setuptools=68.0.0=py39haa95532_0 + - sniffio=1.2.0=py39haa95532_1 + - soupsieve=2.5=py39haa95532_0 + - sqlite=3.41.2=h2bbff1b_0 + - tbb=2021.8.0=h59b6b97_0 + - terminado=0.17.1=py39haa95532_0 + - tinycss2=1.2.1=py39haa95532_0 + - tk=8.6.12=h2bbff1b_0 + - tornado=6.3.3=py39h2bbff1b_0 + - tqdm=4.65.0=py39hd4e2768_0 + - traitlets=5.7.1=py39haa95532_0 + - typing-extensions=4.7.1=py39haa95532_0 + - typing_extensions=4.7.1=py39haa95532_0 + - uc-micro-py=1.0.1=py39haa95532_0 + - urllib3=1.26.18=py39haa95532_0 - vc=14.2=h21ff451_1 - vs2015_runtime=14.27.29016=h5e58377_2 - - webencodings=0.5.1=py38_1 - - win_inet_pton=1.1.0=py38haa95532_0 - - wincertstore=0.2=py38haa95532_2 + - webencodings=0.5.1=py39haa95532_1 + - websocket-client=0.58.0=py39haa95532_4 + - wheel=0.41.2=py39haa95532_0 + - win_inet_pton=1.1.0=py39haa95532_0 - winpty=0.4.3=4 - - xz=5.2.5=h8cc25b3_1 + - xyzservices=2022.9.0=py39haa95532_1 + - xz=5.4.2=h8cc25b3_0 - yaml=0.2.5=he774522_0 - - zipp=3.8.0=py38haa95532_0 - - zlib=1.2.12=h8cc25b3_2 - - zstd=1.5.2=h19a0ad4_0 + - zeromq=4.3.4=hd77b12b_0 + - zipp=3.11.0=py39haa95532_0 + - zlib=1.2.13=h8cc25b3_0 + - zstd=1.5.5=hd43e919_0 diff --git a/portfolio_optimizer/anaconda-project.yml b/portfolio_optimizer/anaconda-project.yml index 008a8cd92..0df0286ff 100644 --- a/portfolio_optimizer/anaconda-project.yml +++ b/portfolio_optimizer/anaconda-project.yml @@ -2,6 +2,7 @@ name: portfolio_optimizer description: Portfolio Optimizer Application examples_config: + created: 2019-11-12 maintainers: - philippjfr labels: @@ -14,43 +15,28 @@ user_fields: [examples_config] channels: [defaults] packages: &pkgs -- python=3.8 -- bokeh=2.4.2 -- holoviews=1.14.8 -- hvplot=0.7.2 -- panel=0.13.0 -- scipy +- python=3.9 - notebook +- bokeh +- holoviews +- hvplot +- panel >=1 +- scipy dependencies: *pkgs commands: dashboard: - unix: panel serve portfolio.py --show + unix: panel serve --rest-session-info --session-history -1 portfolio.py --show supports_http_options: true notebook: - notebook: portfolio.ipynb - test: - unix: pytest --nbsmoke-run -k *.ipynb --ignore envs - windows: pytest --nbsmoke-run -k *.ipynb --ignore envs - env_spec: test - lint: - unix: pytest --nbsmoke-lint -k *.ipynb --ignore envs - windows: pytest --nbsmoke-lint -k *.ipynb --ignore envs - env_spec: test + notebook: portfolio_optimizer.ipynb variables: {} downloads: {} -env_specs: - default: {} - test: - packages: &testpkgs - - nbsmoke=0.5.0 - - pytest=7.1.1 - dependencies: *testpkgs - platforms: - linux-64 - osx-64 - win-64 +- osx-arm64 diff --git a/portfolio_optimizer/portfolio.ipynb b/portfolio_optimizer/portfolio_optimizer.ipynb similarity index 100% rename from portfolio_optimizer/portfolio.ipynb rename to portfolio_optimizer/portfolio_optimizer.ipynb diff --git a/portfolio_optimizer/thumbnails/portfolio.png b/portfolio_optimizer/thumbnails/portfolio.png deleted file mode 100644 index 95dc9c560ce44a66d1d316e6de020fc644a0df39..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 182260 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

r5#_XO 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 AV*mgE diff --git a/portfolio_optimizer/thumbnails/portfolio_optimizer.png b/portfolio_optimizer/thumbnails/portfolio_optimizer.png new file mode 100644 index 0000000000000000000000000000000000000000..e9d6ac39df96ef1b91c870e661ccc0d660ffc670 GIT binary patch literal 73047 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 literal 0 HcmV?d00001 From caf1b5770275c30450323c4a47fc72ae3e8297bc Mon Sep 17 00:00:00 2001 From: maximlt Date: Thu, 2 Nov 2023 16:51:15 +0100 Subject: [PATCH 2/3] various updates --- portfolio_optimizer/anaconda-project-lock.yml | 754 +++++++++--------- portfolio_optimizer/anaconda-project.yml | 2 +- portfolio_optimizer/{ => data}/stocks.csv | 0 portfolio_optimizer/portfolio.py | 406 ++++------ portfolio_optimizer/portfolio_optimizer.ipynb | 22 +- 5 files changed, 566 insertions(+), 618 deletions(-) rename portfolio_optimizer/{ => data}/stocks.csv (100%) diff --git a/portfolio_optimizer/anaconda-project-lock.yml b/portfolio_optimizer/anaconda-project-lock.yml index 816aeed62..972db6ac7 100644 --- a/portfolio_optimizer/anaconda-project-lock.yml +++ b/portfolio_optimizer/anaconda-project-lock.yml @@ -13,7 +13,7 @@ locking_enabled: true env_specs: default: locked: true - env_spec_hash: 6b67fc6386df874f572c0becf6bc9116c7a90248 + env_spec_hash: 829b0b155cd8a772867a7cb11525044419756f73 platforms: - linux-64 - osx-64 @@ -52,45 +52,44 @@ env_specs: linux-64: - _libgcc_mutex=0.1=main - _openmp_mutex=5.1=1_gnu - - anyio=3.5.0=py39h06a4308_0 - - argon2-cffi-bindings=21.2.0=py39h7f8727e_0 - - attrs=23.1.0=py39h06a4308_0 - - beautifulsoup4=4.12.2=py39h06a4308_0 + - anyio=3.5.0=py310h06a4308_0 + - argon2-cffi-bindings=21.2.0=py310h7f8727e_0 + - attrs=23.1.0=py310h06a4308_0 + - beautifulsoup4=4.12.2=py310h06a4308_0 - blas=1.0=mkl - - bokeh=3.3.0=py39h2f386ee_0 - - bottleneck=1.3.5=py39h7deecbd_0 + - bokeh=3.3.0=py310h2f386ee_0 + - bottleneck=1.3.5=py310ha9d4c09_0 - brotli-bin=1.0.9=h5eee18b_7 - - brotli-python=1.0.9=py39h6a678d5_7 + - brotli-python=1.0.9=py310h6a678d5_7 - brotli=1.0.9=h5eee18b_7 + - bzip2=1.0.8=h7b6447c_0 - ca-certificates=2023.08.22=h06a4308_0 - - certifi=2023.7.22=py39h06a4308_0 - - cffi=1.15.1=py39h5eee18b_3 - - colorcet=3.0.1=py39h06a4308_0 - - comm=0.1.2=py39h06a4308_0 - - contourpy=1.0.5=py39hdb19cb5_0 - - cryptography=41.0.3=py39hdda0065_0 - - debugpy=1.6.7=py39h6a678d5_0 - - entrypoints=0.4=py39h06a4308_0 - - exceptiongroup=1.0.4=py39h06a4308_0 + - certifi=2023.7.22=py310h06a4308_0 + - cffi=1.15.1=py310h5eee18b_3 + - colorcet=3.0.1=py310h06a4308_0 + - comm=0.1.2=py310h06a4308_0 + - contourpy=1.0.5=py310hdb19cb5_0 + - cryptography=41.0.3=py310hdda0065_0 + - debugpy=1.6.7=py310h6a678d5_0 + - entrypoints=0.4=py310h06a4308_0 + - exceptiongroup=1.0.4=py310h06a4308_0 - freetype=2.12.1=h4a9f257_0 - giflib=5.2.1=h5eee18b_3 - - holoviews=1.18.0=py39h06a4308_0 - - hvplot=0.9.0=py39h06a4308_0 + - holoviews=1.18.0=py310h06a4308_0 + - hvplot=0.9.0=py310h06a4308_0 - icu=73.1=h6a678d5_0 - - idna=3.4=py39h06a4308_0 - - importlib-metadata=6.0.0=py39h06a4308_0 - - importlib_resources=6.1.0=py39h06a4308_0 + - idna=3.4=py310h06a4308_0 - intel-openmp=2023.1.0=hdb19cb5_46305 - - ipykernel=6.25.0=py39h2f386ee_0 - - ipython=8.15.0=py39h06a4308_0 - - jedi=0.18.1=py39h06a4308_1 - - jinja2=3.1.2=py39h06a4308_0 + - ipykernel=6.25.0=py310h2f386ee_0 + - ipython=8.15.0=py310h06a4308_0 + - jedi=0.18.1=py310h06a4308_1 + - jinja2=3.1.2=py310h06a4308_0 - jpeg=9e=h5eee18b_1 - - jsonschema=4.17.3=py39h06a4308_0 - - jupyter_client=7.4.9=py39h06a4308_0 - - jupyter_core=5.3.0=py39h06a4308_0 - - jupyter_server=1.23.4=py39h06a4308_0 - - kiwisolver=1.4.4=py39h6a678d5_0 + - jsonschema=4.17.3=py310h06a4308_0 + - jupyter_client=7.4.9=py310h06a4308_0 + - jupyter_core=5.3.0=py310h06a4308_0 + - jupyter_server=1.23.4=py310h06a4308_0 + - kiwisolver=1.4.4=py310h6a678d5_0 - lcms2=2.12=h3be6417_0 - ld_impl_linux-64=2.38=h1181459_1 - lerc=3.0=h295c915_0 @@ -107,129 +106,128 @@ env_specs: - libsodium=1.0.18=h7b6447c_0 - libstdcxx-ng=11.2.0=h1234567_1 - libtiff=4.5.1=h6a678d5_0 + - libuuid=1.41.5=h5eee18b_0 - libwebp-base=1.3.2=h5eee18b_0 - libwebp=1.3.2=h11a3e52_0 - libxml2=2.10.4=hf1b16e4_1 - libxslt=1.1.37=h5eee18b_1 - - linkify-it-py=2.0.0=py39h06a4308_0 - - lxml=4.9.3=py39hdbbb534_0 + - linkify-it-py=2.0.0=py310h06a4308_0 + - lxml=4.9.3=py310hdbbb534_0 - lz4-c=1.9.4=h6a678d5_0 - - markdown-it-py=2.2.0=py39h06a4308_1 - - markdown=3.4.1=py39h06a4308_0 - - markupsafe=2.1.1=py39h7f8727e_0 - - matplotlib-base=3.8.0=py39h1128e8f_0 - - matplotlib-inline=0.1.6=py39h06a4308_0 - - mdit-py-plugins=0.3.0=py39h06a4308_0 - - mdurl=0.1.0=py39h06a4308_0 - - mistune=0.8.4=py39h27cfd23_1000 - - mkl-service=2.4.0=py39h5eee18b_1 + - markdown-it-py=2.2.0=py310h06a4308_1 + - markdown=3.4.1=py310h06a4308_0 + - markupsafe=2.1.1=py310h7f8727e_0 + - matplotlib-base=3.8.0=py310h1128e8f_0 + - matplotlib-inline=0.1.6=py310h06a4308_0 + - mdit-py-plugins=0.3.0=py310h06a4308_0 + - mdurl=0.1.0=py310h06a4308_0 + - mistune=0.8.4=py310h7f8727e_1000 + - mkl-service=2.4.0=py310h5eee18b_1 - mkl=2023.1.0=h213fc3f_46343 - - mkl_fft=1.3.8=py39h5eee18b_0 - - mkl_random=1.2.4=py39hdb19cb5_0 - - nbclassic=0.5.5=py39h06a4308_0 - - nbclient=0.5.13=py39h06a4308_0 - - nbconvert=6.5.4=py39h06a4308_0 - - nbformat=5.9.2=py39h06a4308_0 + - mkl_fft=1.3.8=py310h5eee18b_0 + - mkl_random=1.2.4=py310hdb19cb5_0 + - nbclassic=0.5.5=py310h06a4308_0 + - nbclient=0.5.13=py310h06a4308_0 + - nbconvert=6.5.4=py310h06a4308_0 + - nbformat=5.9.2=py310h06a4308_0 - ncurses=6.4=h6a678d5_0 - - nest-asyncio=1.5.6=py39h06a4308_0 - - notebook-shim=0.2.2=py39h06a4308_0 - - notebook=6.5.4=py39h06a4308_1 - - numexpr=2.8.7=py39h85018f9_0 - - numpy-base=1.26.0=py39hb5e798b_0 - - numpy=1.26.0=py39h5f9d8c6_0 + - nest-asyncio=1.5.6=py310h06a4308_0 + - notebook-shim=0.2.2=py310h06a4308_0 + - notebook=6.5.4=py310h06a4308_1 + - numexpr=2.8.7=py310h85018f9_0 + - numpy-base=1.26.0=py310hb5e798b_0 + - numpy=1.26.0=py310h5f9d8c6_0 - openjpeg=2.4.0=h3ad879b_0 - openssl=3.0.11=h7f8727e_2 - - packaging=23.1=py39h06a4308_0 - - pandas=2.1.1=py39h1128e8f_0 - - panel=1.3.1=py39h06a4308_0 - - param=2.0.0=py39h06a4308_0 - - pillow=10.0.1=py39ha6cbd5a_0 - - pip=23.3=py39h06a4308_0 - - platformdirs=3.10.0=py39h06a4308_0 - - prometheus_client=0.14.1=py39h06a4308_0 - - prompt-toolkit=3.0.36=py39h06a4308_0 - - psutil=5.9.0=py39h5eee18b_0 - - pyct=0.5.0=py39h06a4308_0 - - pygments=2.15.1=py39h06a4308_1 - - pyopenssl=23.2.0=py39h06a4308_0 - - pyparsing=3.0.9=py39h06a4308_0 - - pyrsistent=0.18.0=py39heee7806_0 - - pysocks=1.7.1=py39h06a4308_0 - - python-fastjsonschema=2.16.2=py39h06a4308_0 - - python=3.9.18=h955ad1f_0 - - pytz=2023.3.post1=py39h06a4308_0 - - pyviz_comms=2.3.0=py39h06a4308_0 - - pyyaml=6.0.1=py39h5eee18b_0 - - pyzmq=23.2.0=py39h6a678d5_0 + - packaging=23.1=py310h06a4308_0 + - pandas=2.1.1=py310h1128e8f_0 + - panel=1.3.1=py310h06a4308_0 + - param=2.0.0=py310h06a4308_0 + - pillow=10.0.1=py310ha6cbd5a_0 + - pip=23.3=py310h06a4308_0 + - platformdirs=3.10.0=py310h06a4308_0 + - prometheus_client=0.14.1=py310h06a4308_0 + - prompt-toolkit=3.0.36=py310h06a4308_0 + - psutil=5.9.0=py310h5eee18b_0 + - pyct=0.5.0=py310h06a4308_0 + - pygments=2.15.1=py310h06a4308_1 + - pyopenssl=23.2.0=py310h06a4308_0 + - pyparsing=3.0.9=py310h06a4308_0 + - pyrsistent=0.18.0=py310h7f8727e_0 + - pysocks=1.7.1=py310h06a4308_0 + - python-fastjsonschema=2.16.2=py310h06a4308_0 + - python=3.10.13=h955ad1f_0 + - pytz=2023.3.post1=py310h06a4308_0 + - pyviz_comms=2.3.0=py310h06a4308_0 + - pyyaml=6.0.1=py310h5eee18b_0 + - pyzmq=23.2.0=py310h6a678d5_0 - readline=8.2=h5eee18b_0 - - requests=2.31.0=py39h06a4308_0 - - scipy=1.11.3=py39h5f9d8c6_0 - - setuptools=68.0.0=py39h06a4308_0 - - sniffio=1.2.0=py39h06a4308_1 - - soupsieve=2.5=py39h06a4308_0 + - requests=2.31.0=py310h06a4308_0 + - scipy=1.11.3=py310h5f9d8c6_0 + - setuptools=68.0.0=py310h06a4308_0 + - sniffio=1.2.0=py310h06a4308_1 + - soupsieve=2.5=py310h06a4308_0 - sqlite=3.41.2=h5eee18b_0 - tbb=2021.8.0=hdb19cb5_0 - - terminado=0.17.1=py39h06a4308_0 - - tinycss2=1.2.1=py39h06a4308_0 + - terminado=0.17.1=py310h06a4308_0 + - tinycss2=1.2.1=py310h06a4308_0 - tk=8.6.12=h1ccaba5_0 - - tornado=6.3.3=py39h5eee18b_0 - - tqdm=4.65.0=py39hb070fc8_0 - - traitlets=5.7.1=py39h06a4308_0 - - typing-extensions=4.7.1=py39h06a4308_0 - - typing_extensions=4.7.1=py39h06a4308_0 - - uc-micro-py=1.0.1=py39h06a4308_0 - - urllib3=1.26.18=py39h06a4308_0 - - webencodings=0.5.1=py39h06a4308_1 - - websocket-client=0.58.0=py39h06a4308_4 - - wheel=0.41.2=py39h06a4308_0 - - xyzservices=2022.9.0=py39h06a4308_1 + - tornado=6.3.3=py310h5eee18b_0 + - tqdm=4.65.0=py310h2f386ee_0 + - traitlets=5.7.1=py310h06a4308_0 + - typing-extensions=4.7.1=py310h06a4308_0 + - typing_extensions=4.7.1=py310h06a4308_0 + - uc-micro-py=1.0.1=py310h06a4308_0 + - urllib3=1.26.18=py310h06a4308_0 + - webencodings=0.5.1=py310h06a4308_1 + - websocket-client=0.58.0=py310h06a4308_4 + - wheel=0.41.2=py310h06a4308_0 + - xyzservices=2022.9.0=py310h06a4308_1 - xz=5.4.2=h5eee18b_0 - yaml=0.2.5=h7b6447c_0 - zeromq=4.3.4=h2531618_0 - - zipp=3.11.0=py39h06a4308_0 - zlib=1.2.13=h5eee18b_0 - zstd=1.5.5=hc292b87_0 osx-64: - - anyio=3.5.0=py39hecd8cb5_0 - - appnope=0.1.2=py39hecd8cb5_1001 - - argon2-cffi-bindings=21.2.0=py39hca72f7f_0 - - attrs=23.1.0=py39hecd8cb5_0 - - beautifulsoup4=4.12.2=py39hecd8cb5_0 + - anyio=3.5.0=py310hecd8cb5_0 + - appnope=0.1.2=py310hecd8cb5_1001 + - argon2-cffi-bindings=21.2.0=py310hca72f7f_0 + - attrs=23.1.0=py310hecd8cb5_0 + - beautifulsoup4=4.12.2=py310hecd8cb5_0 - blas=1.0=mkl - - bokeh=3.3.0=py39h20db666_0 - - bottleneck=1.3.5=py39h67323c0_0 + - bokeh=3.3.0=py310h20db666_0 + - bottleneck=1.3.5=py310h4e76f89_0 - brotli-bin=1.0.9=hca72f7f_7 - - brotli-python=1.0.9=py39he9d5cce_7 + - brotli-python=1.0.9=py310he9d5cce_7 - brotli=1.0.9=hca72f7f_7 + - bzip2=1.0.8=h1de35cc_0 - ca-certificates=2023.08.22=hecd8cb5_0 - - certifi=2023.7.22=py39hecd8cb5_0 - - cffi=1.15.1=py39h6c40b1e_3 - - colorcet=3.0.1=py39hecd8cb5_0 - - comm=0.1.2=py39hecd8cb5_0 - - contourpy=1.0.5=py39haf03e11_0 - - cryptography=41.0.3=py39h30e54ef_0 - - debugpy=1.6.7=py39hcec6c5f_0 - - entrypoints=0.4=py39hecd8cb5_0 - - exceptiongroup=1.0.4=py39hecd8cb5_0 + - certifi=2023.7.22=py310hecd8cb5_0 + - cffi=1.15.1=py310h6c40b1e_3 + - colorcet=3.0.1=py310hecd8cb5_0 + - comm=0.1.2=py310hecd8cb5_0 + - contourpy=1.0.5=py310haf03e11_0 + - cryptography=41.0.3=py310h30e54ef_0 + - debugpy=1.6.7=py310hcec6c5f_0 + - entrypoints=0.4=py310hecd8cb5_0 + - exceptiongroup=1.0.4=py310hecd8cb5_0 - freetype=2.12.1=hd8bbffd_0 - giflib=5.2.1=h6c40b1e_3 - - holoviews=1.18.0=py39hecd8cb5_0 - - hvplot=0.9.0=py39hecd8cb5_0 + - holoviews=1.18.0=py310hecd8cb5_0 + - hvplot=0.9.0=py310hecd8cb5_0 - icu=73.1=hcec6c5f_0 - - idna=3.4=py39hecd8cb5_0 - - importlib-metadata=6.0.0=py39hecd8cb5_0 - - importlib_resources=6.1.0=py39hecd8cb5_0 + - idna=3.4=py310hecd8cb5_0 - intel-openmp=2023.1.0=ha357a0b_43547 - - ipykernel=6.25.0=py39h20db666_0 - - ipython=8.15.0=py39hecd8cb5_0 - - jedi=0.18.1=py39hecd8cb5_1 - - jinja2=3.1.2=py39hecd8cb5_0 + - ipykernel=6.25.0=py310h20db666_0 + - ipython=8.15.0=py310hecd8cb5_0 + - jedi=0.18.1=py310hecd8cb5_1 + - jinja2=3.1.2=py310hecd8cb5_0 - jpeg=9e=h6c40b1e_1 - - jsonschema=4.17.3=py39hecd8cb5_0 - - jupyter_client=7.4.9=py39hecd8cb5_0 - - jupyter_core=5.3.0=py39hecd8cb5_0 - - jupyter_server=1.23.4=py39hecd8cb5_0 - - kiwisolver=1.4.4=py39hcec6c5f_0 + - jsonschema=4.17.3=py310hecd8cb5_0 + - jupyter_client=7.4.9=py310hecd8cb5_0 + - jupyter_core=5.3.0=py310hecd8cb5_0 + - jupyter_server=1.23.4=py310hecd8cb5_0 + - kiwisolver=1.4.4=py310hcec6c5f_0 - lcms2=2.12=hf1fd2bf_0 - lerc=3.0=he9d5cce_0 - libbrotlicommon=1.0.9=hca72f7f_7 @@ -248,125 +246,123 @@ env_specs: - libwebp=1.3.2=hf6ce154_0 - libxml2=2.10.4=h1bd7e62_1 - libxslt=1.1.37=h6c40b1e_1 - - linkify-it-py=2.0.0=py39hecd8cb5_0 + - linkify-it-py=2.0.0=py310hecd8cb5_0 - llvm-openmp=14.0.6=h0dcd299_0 - - lxml=4.9.3=py39h946e0e5_0 + - lxml=4.9.3=py310h946e0e5_0 - lz4-c=1.9.4=hcec6c5f_0 - - markdown-it-py=2.2.0=py39hecd8cb5_1 - - markdown=3.4.1=py39hecd8cb5_0 - - markupsafe=2.1.1=py39hca72f7f_0 - - matplotlib-base=3.8.0=py39hb47e01b_0 - - matplotlib-inline=0.1.6=py39hecd8cb5_0 - - mdit-py-plugins=0.3.0=py39hecd8cb5_0 - - mdurl=0.1.0=py39hecd8cb5_0 - - mistune=0.8.4=py39h9ed2024_1000 - - mkl-service=2.4.0=py39h6c40b1e_1 + - markdown-it-py=2.2.0=py310hecd8cb5_1 + - markdown=3.4.1=py310hecd8cb5_0 + - markupsafe=2.1.1=py310hca72f7f_0 + - matplotlib-base=3.8.0=py310hb47e01b_0 + - matplotlib-inline=0.1.6=py310hecd8cb5_0 + - mdit-py-plugins=0.3.0=py310hecd8cb5_0 + - mdurl=0.1.0=py310hecd8cb5_0 + - mistune=0.8.4=py310hca72f7f_1000 + - mkl-service=2.4.0=py310h6c40b1e_1 - mkl=2023.1.0=h8e150cf_43559 - - mkl_fft=1.3.8=py39h6c40b1e_0 - - mkl_random=1.2.4=py39ha357a0b_0 - - nbclassic=0.5.5=py39hecd8cb5_0 - - nbclient=0.5.13=py39hecd8cb5_0 - - nbconvert=6.5.4=py39hecd8cb5_0 - - nbformat=5.9.2=py39hecd8cb5_0 + - mkl_fft=1.3.8=py310h6c40b1e_0 + - mkl_random=1.2.4=py310ha357a0b_0 + - nbclassic=0.5.5=py310hecd8cb5_0 + - nbclient=0.5.13=py310hecd8cb5_0 + - nbconvert=6.5.4=py310hecd8cb5_0 + - nbformat=5.9.2=py310hecd8cb5_0 - ncurses=6.4=hcec6c5f_0 - - nest-asyncio=1.5.6=py39hecd8cb5_0 - - notebook-shim=0.2.2=py39hecd8cb5_0 - - notebook=6.5.4=py39hecd8cb5_1 - - numexpr=2.8.7=py39h827a554_0 - - numpy-base=1.26.0=py39ha186be2_0 - - numpy=1.26.0=py39h827a554_0 + - nest-asyncio=1.5.6=py310hecd8cb5_0 + - notebook-shim=0.2.2=py310hecd8cb5_0 + - notebook=6.5.4=py310hecd8cb5_1 + - numexpr=2.8.7=py310h827a554_0 + - numpy-base=1.26.0=py310ha186be2_0 + - numpy=1.26.0=py310h827a554_0 - openjpeg=2.4.0=h66ea3da_0 - openssl=3.0.11=hca72f7f_2 - - packaging=23.1=py39hecd8cb5_0 - - pandas=2.1.1=py39h3ea8b11_0 - - panel=1.3.1=py39hecd8cb5_0 - - param=2.0.0=py39hecd8cb5_0 - - pillow=10.0.1=py39h7d39338_0 - - pip=23.3=py39hecd8cb5_0 - - platformdirs=3.10.0=py39hecd8cb5_0 - - prometheus_client=0.14.1=py39hecd8cb5_0 - - prompt-toolkit=3.0.36=py39hecd8cb5_0 - - psutil=5.9.0=py39hca72f7f_0 - - pyct=0.5.0=py39hecd8cb5_0 - - pygments=2.15.1=py39hecd8cb5_1 - - pyopenssl=23.2.0=py39hecd8cb5_0 - - pyparsing=3.0.9=py39hecd8cb5_0 - - pyrsistent=0.18.0=py39hca72f7f_0 - - pysocks=1.7.1=py39hecd8cb5_0 - - python-fastjsonschema=2.16.2=py39hecd8cb5_0 - - python=3.9.18=h5ee71fb_0 - - pytz=2023.3.post1=py39hecd8cb5_0 - - pyviz_comms=2.3.0=py39hecd8cb5_0 - - pyyaml=6.0.1=py39h6c40b1e_0 - - pyzmq=23.2.0=py39he9d5cce_0 + - packaging=23.1=py310hecd8cb5_0 + - pandas=2.1.1=py310h3ea8b11_0 + - panel=1.3.1=py310hecd8cb5_0 + - param=2.0.0=py310hecd8cb5_0 + - pillow=10.0.1=py310h7d39338_0 + - pip=23.3=py310hecd8cb5_0 + - platformdirs=3.10.0=py310hecd8cb5_0 + - prometheus_client=0.14.1=py310hecd8cb5_0 + - prompt-toolkit=3.0.36=py310hecd8cb5_0 + - psutil=5.9.0=py310hca72f7f_0 + - pyct=0.5.0=py310hecd8cb5_0 + - pygments=2.15.1=py310hecd8cb5_1 + - pyopenssl=23.2.0=py310hecd8cb5_0 + - pyparsing=3.0.9=py310hecd8cb5_0 + - pyrsistent=0.18.0=py310hca72f7f_0 + - pysocks=1.7.1=py310hecd8cb5_0 + - python-fastjsonschema=2.16.2=py310hecd8cb5_0 + - python=3.10.13=h5ee71fb_0 + - pytz=2023.3.post1=py310hecd8cb5_0 + - pyviz_comms=2.3.0=py310hecd8cb5_0 + - pyyaml=6.0.1=py310h6c40b1e_0 + - pyzmq=23.2.0=py310he9d5cce_0 - readline=8.2=hca72f7f_0 - - requests=2.31.0=py39hecd8cb5_0 - - scipy=1.11.3=py39hdb2ea58_0 - - setuptools=68.0.0=py39hecd8cb5_0 - - sniffio=1.2.0=py39hecd8cb5_1 - - soupsieve=2.5=py39hecd8cb5_0 + - requests=2.31.0=py310hecd8cb5_0 + - scipy=1.11.3=py310hdb2ea58_0 + - setuptools=68.0.0=py310hecd8cb5_0 + - sniffio=1.2.0=py310hecd8cb5_1 + - soupsieve=2.5=py310hecd8cb5_0 - sqlite=3.41.2=h6c40b1e_0 - tbb=2021.8.0=ha357a0b_0 - - terminado=0.17.1=py39hecd8cb5_0 - - tinycss2=1.2.1=py39hecd8cb5_0 + - terminado=0.17.1=py310hecd8cb5_0 + - tinycss2=1.2.1=py310hecd8cb5_0 - tk=8.6.12=h5d9f67b_0 - - tornado=6.3.3=py39h6c40b1e_0 - - tqdm=4.65.0=py39h01d92e1_0 - - traitlets=5.7.1=py39hecd8cb5_0 - - typing-extensions=4.7.1=py39hecd8cb5_0 - - typing_extensions=4.7.1=py39hecd8cb5_0 - - uc-micro-py=1.0.1=py39hecd8cb5_0 - - urllib3=1.26.18=py39hecd8cb5_0 - - webencodings=0.5.1=py39hecd8cb5_1 - - websocket-client=0.58.0=py39hecd8cb5_4 - - wheel=0.41.2=py39hecd8cb5_0 - - xyzservices=2022.9.0=py39hecd8cb5_1 + - tornado=6.3.3=py310h6c40b1e_0 + - tqdm=4.65.0=py310h20db666_0 + - traitlets=5.7.1=py310hecd8cb5_0 + - typing-extensions=4.7.1=py310hecd8cb5_0 + - typing_extensions=4.7.1=py310hecd8cb5_0 + - uc-micro-py=1.0.1=py310hecd8cb5_0 + - urllib3=1.26.18=py310hecd8cb5_0 + - webencodings=0.5.1=py310hecd8cb5_1 + - websocket-client=0.58.0=py310hecd8cb5_4 + - wheel=0.41.2=py310hecd8cb5_0 + - xyzservices=2022.9.0=py310hecd8cb5_1 - xz=5.4.2=h6c40b1e_0 - yaml=0.2.5=haf1e3a3_0 - zeromq=4.3.4=h23ab428_0 - - zipp=3.11.0=py39hecd8cb5_0 - zlib=1.2.13=h4dc903c_0 - zstd=1.5.5=hc035e20_0 osx-arm64: - - anyio=3.5.0=py39hca03da5_0 - - appnope=0.1.2=py39hca03da5_1001 - - argon2-cffi-bindings=21.2.0=py39h1a28f6b_0 - - attrs=23.1.0=py39hca03da5_0 - - beautifulsoup4=4.12.2=py39hca03da5_0 + - anyio=3.5.0=py310hca03da5_0 + - appnope=0.1.2=py310hca03da5_1001 + - argon2-cffi-bindings=21.2.0=py310h1a28f6b_0 + - attrs=23.1.0=py310hca03da5_0 + - beautifulsoup4=4.12.2=py310hca03da5_0 - blas=1.0=openblas - - bokeh=3.3.0=py39h33ce5c2_0 - - bottleneck=1.3.5=py39heec5a64_0 + - bokeh=3.3.0=py310h33ce5c2_0 + - bottleneck=1.3.5=py310h96f19d2_0 - brotli-bin=1.0.9=h1a28f6b_7 - - brotli-python=1.0.9=py39hc377ac9_7 + - brotli-python=1.0.9=py310hc377ac9_7 - brotli=1.0.9=h1a28f6b_7 + - bzip2=1.0.8=h620ffc9_4 - ca-certificates=2023.08.22=hca03da5_0 - - certifi=2023.7.22=py39hca03da5_0 - - cffi=1.15.1=py39h80987f9_3 - - colorcet=3.0.1=py39hca03da5_0 - - comm=0.1.2=py39hca03da5_0 - - contourpy=1.0.5=py39h525c30c_0 - - cryptography=41.0.3=py39hd4332d6_0 - - debugpy=1.6.7=py39h313beb8_0 - - entrypoints=0.4=py39hca03da5_0 - - exceptiongroup=1.0.4=py39hca03da5_0 + - certifi=2023.7.22=py310hca03da5_0 + - cffi=1.15.1=py310h80987f9_3 + - colorcet=3.0.1=py310hca03da5_0 + - comm=0.1.2=py310hca03da5_0 + - contourpy=1.0.5=py310h525c30c_0 + - cryptography=41.0.3=py310hd4332d6_0 + - debugpy=1.6.7=py310h313beb8_0 + - entrypoints=0.4=py310hca03da5_0 + - exceptiongroup=1.0.4=py310hca03da5_0 - freetype=2.12.1=h1192e45_0 - giflib=5.2.1=h80987f9_3 - - holoviews=1.18.0=py39hca03da5_0 - - hvplot=0.9.0=py39hca03da5_0 + - holoviews=1.18.0=py310hca03da5_0 + - hvplot=0.9.0=py310hca03da5_0 - icu=73.1=h313beb8_0 - - idna=3.4=py39hca03da5_0 - - importlib-metadata=6.0.0=py39hca03da5_0 - - importlib_resources=6.1.0=py39hca03da5_0 - - ipykernel=6.25.0=py39h33ce5c2_0 - - ipython=8.15.0=py39hca03da5_0 - - jedi=0.18.1=py39hca03da5_1 - - jinja2=3.1.2=py39hca03da5_0 + - idna=3.4=py310hca03da5_0 + - ipykernel=6.25.0=py310h33ce5c2_0 + - ipython=8.15.0=py310hca03da5_0 + - jedi=0.18.1=py310hca03da5_1 + - jinja2=3.1.2=py310hca03da5_0 - jpeg=9e=h80987f9_1 - - jsonschema=4.17.3=py39hca03da5_0 - - jupyter_client=7.4.9=py39hca03da5_0 - - jupyter_core=5.3.0=py39hca03da5_0 - - jupyter_server=1.23.4=py39hca03da5_0 - - kiwisolver=1.4.4=py39h313beb8_0 + - jsonschema=4.17.3=py310hca03da5_0 + - jupyter_client=7.4.9=py310hca03da5_0 + - jupyter_core=5.3.0=py310hca03da5_0 + - jupyter_server=1.23.4=py310hca03da5_0 + - kiwisolver=1.4.4=py310h313beb8_0 - lcms2=2.12=hba8e193_0 - lerc=3.0=hc377ac9_0 - libbrotlicommon=1.0.9=h1a28f6b_7 @@ -386,126 +382,125 @@ env_specs: - libwebp=1.3.2=ha3663a8_0 - libxml2=2.10.4=h0dcf63f_1 - libxslt=1.1.37=h80987f9_1 - - linkify-it-py=2.0.0=py39hca03da5_0 + - linkify-it-py=2.0.0=py310hca03da5_0 - llvm-openmp=14.0.6=hc6e5704_0 - - lxml=4.9.3=py39h50ffb84_0 + - lxml=4.9.3=py310h50ffb84_0 - lz4-c=1.9.4=h313beb8_0 - - markdown-it-py=2.2.0=py39hca03da5_1 - - markdown=3.4.1=py39hca03da5_0 - - markupsafe=2.1.1=py39h1a28f6b_0 - - matplotlib-base=3.8.0=py39h46d7db6_0 - - matplotlib-inline=0.1.6=py39hca03da5_0 - - mdit-py-plugins=0.3.0=py39hca03da5_0 - - mdurl=0.1.0=py39hca03da5_0 - - mistune=0.8.4=py39h1a28f6b_1000 - - nbclassic=0.5.5=py39hca03da5_0 - - nbclient=0.5.13=py39hca03da5_0 - - nbconvert=6.5.4=py39hca03da5_0 - - nbformat=5.9.2=py39hca03da5_0 + - markdown-it-py=2.2.0=py310hca03da5_1 + - markdown=3.4.1=py310hca03da5_0 + - markupsafe=2.1.1=py310h1a28f6b_0 + - matplotlib-base=3.8.0=py310h46d7db6_0 + - matplotlib-inline=0.1.6=py310hca03da5_0 + - mdit-py-plugins=0.3.0=py310hca03da5_0 + - mdurl=0.1.0=py310hca03da5_0 + - mistune=0.8.4=py310h1a28f6b_1000 + - nbclassic=0.5.5=py310hca03da5_0 + - nbclient=0.5.13=py310hca03da5_0 + - nbconvert=6.5.4=py310hca03da5_0 + - nbformat=5.9.2=py310hca03da5_0 - ncurses=6.4=h313beb8_0 - - nest-asyncio=1.5.6=py39hca03da5_0 - - notebook-shim=0.2.2=py39hca03da5_0 - - notebook=6.5.4=py39hca03da5_1 - - numexpr=2.8.7=py39hecc3335_0 - - numpy-base=1.26.0=py39ha9811e2_0 - - numpy=1.26.0=py39h3b2db8e_0 + - nest-asyncio=1.5.6=py310hca03da5_0 + - notebook-shim=0.2.2=py310hca03da5_0 + - notebook=6.5.4=py310hca03da5_1 + - numexpr=2.8.7=py310hecc3335_0 + - numpy-base=1.26.0=py310ha9811e2_0 + - numpy=1.26.0=py310h3b2db8e_0 - openjpeg=2.3.0=h7a6adac_2 - openssl=3.0.11=h1a28f6b_2 - - packaging=23.1=py39hca03da5_0 - - pandas=2.1.1=py39h46d7db6_0 - - panel=1.3.1=py39hca03da5_0 - - param=2.0.0=py39hca03da5_0 - - pillow=10.0.1=py39h3b245a6_0 - - pip=23.3=py39hca03da5_0 - - platformdirs=3.10.0=py39hca03da5_0 - - prometheus_client=0.14.1=py39hca03da5_0 - - prompt-toolkit=3.0.36=py39hca03da5_0 - - psutil=5.9.0=py39h1a28f6b_0 - - pyct=0.5.0=py39hca03da5_0 - - pygments=2.15.1=py39hca03da5_1 - - pyopenssl=23.2.0=py39hca03da5_0 - - pyparsing=3.0.9=py39hca03da5_0 - - pyrsistent=0.18.0=py39h1a28f6b_0 - - pysocks=1.7.1=py39hca03da5_0 - - python-fastjsonschema=2.16.2=py39hca03da5_0 - - python=3.9.18=hb885b13_0 - - pytz=2023.3.post1=py39hca03da5_0 - - pyviz_comms=2.3.0=py39hca03da5_0 - - pyyaml=6.0.1=py39h80987f9_0 - - pyzmq=23.2.0=py39hc377ac9_0 + - packaging=23.1=py310hca03da5_0 + - pandas=2.1.1=py310h46d7db6_0 + - panel=1.3.1=py310hca03da5_0 + - param=2.0.0=py310hca03da5_0 + - pillow=10.0.1=py310h3b245a6_0 + - pip=23.3=py310hca03da5_0 + - platformdirs=3.10.0=py310hca03da5_0 + - prometheus_client=0.14.1=py310hca03da5_0 + - prompt-toolkit=3.0.36=py310hca03da5_0 + - psutil=5.9.0=py310h1a28f6b_0 + - pyct=0.5.0=py310hca03da5_0 + - pygments=2.15.1=py310hca03da5_1 + - pyopenssl=23.2.0=py310hca03da5_0 + - pyparsing=3.0.9=py310hca03da5_0 + - pyrsistent=0.18.0=py310h1a28f6b_0 + - pysocks=1.7.1=py310hca03da5_0 + - python-fastjsonschema=2.16.2=py310hca03da5_0 + - python=3.10.13=hb885b13_0 + - pytz=2023.3.post1=py310hca03da5_0 + - pyviz_comms=2.3.0=py310hca03da5_0 + - pyyaml=6.0.1=py310h80987f9_0 + - pyzmq=23.2.0=py310hc377ac9_0 - readline=8.2=h1a28f6b_0 - - requests=2.31.0=py39hca03da5_0 - - scipy=1.11.3=py39h20cbe94_0 - - setuptools=68.0.0=py39hca03da5_0 - - sniffio=1.2.0=py39hca03da5_1 - - soupsieve=2.5=py39hca03da5_0 + - requests=2.31.0=py310hca03da5_0 + - scipy=1.11.3=py310h20cbe94_0 + - setuptools=68.0.0=py310hca03da5_0 + - sniffio=1.2.0=py310hca03da5_1 + - soupsieve=2.5=py310hca03da5_0 - sqlite=3.41.2=h80987f9_0 - - terminado=0.17.1=py39hca03da5_0 - - tinycss2=1.2.1=py39hca03da5_0 + - terminado=0.17.1=py310hca03da5_0 + - tinycss2=1.2.1=py310hca03da5_0 - tk=8.6.12=hb8d0fd4_0 - - tornado=6.3.3=py39h80987f9_0 - - tqdm=4.65.0=py39h86d0a89_0 - - traitlets=5.7.1=py39hca03da5_0 - - typing-extensions=4.7.1=py39hca03da5_0 - - typing_extensions=4.7.1=py39hca03da5_0 - - uc-micro-py=1.0.1=py39hca03da5_0 - - urllib3=1.26.18=py39hca03da5_0 - - webencodings=0.5.1=py39hca03da5_1 - - websocket-client=0.58.0=py39hca03da5_4 - - wheel=0.41.2=py39hca03da5_0 - - xyzservices=2022.9.0=py39hca03da5_1 + - tornado=6.3.3=py310h80987f9_0 + - tqdm=4.65.0=py310h33ce5c2_0 + - traitlets=5.7.1=py310hca03da5_0 + - typing-extensions=4.7.1=py310hca03da5_0 + - typing_extensions=4.7.1=py310hca03da5_0 + - uc-micro-py=1.0.1=py310hca03da5_0 + - urllib3=1.26.18=py310hca03da5_0 + - webencodings=0.5.1=py310hca03da5_1 + - websocket-client=0.58.0=py310hca03da5_4 + - wheel=0.41.2=py310hca03da5_0 + - xyzservices=2022.9.0=py310hca03da5_1 - xz=5.4.2=h80987f9_0 - yaml=0.2.5=h1a28f6b_0 - zeromq=4.3.4=hc377ac9_0 - - zipp=3.11.0=py39hca03da5_0 - zlib=1.2.13=h5a0b063_0 - zstd=1.5.5=hd90d995_0 win-64: - - anyio=3.5.0=py39haa95532_0 - - argon2-cffi-bindings=21.2.0=py39h2bbff1b_0 - - attrs=23.1.0=py39haa95532_0 - - beautifulsoup4=4.12.2=py39haa95532_0 + - anyio=3.5.0=py310haa95532_0 + - argon2-cffi-bindings=21.2.0=py310h2bbff1b_0 + - attrs=23.1.0=py310haa95532_0 + - beautifulsoup4=4.12.2=py310haa95532_0 - blas=1.0=mkl - - bokeh=3.3.0=py39h9909e9c_0 - - bottleneck=1.3.5=py39h080aedc_0 + - bokeh=3.3.0=py310h9909e9c_0 + - bottleneck=1.3.5=py310h9128911_0 - brotli-bin=1.0.9=h2bbff1b_7 - - brotli-python=1.0.9=py39hd77b12b_7 + - brotli-python=1.0.9=py310hd77b12b_7 - brotli=1.0.9=h2bbff1b_7 + - bzip2=1.0.8=he774522_0 - ca-certificates=2023.08.22=haa95532_0 - - certifi=2023.7.22=py39haa95532_0 - - cffi=1.15.1=py39h2bbff1b_3 - - colorama=0.4.6=py39haa95532_0 - - colorcet=3.0.1=py39haa95532_0 - - comm=0.1.2=py39haa95532_0 - - contourpy=1.0.5=py39h59b6b97_0 - - cryptography=41.0.3=py39h89fc84f_0 - - debugpy=1.6.7=py39hd77b12b_0 - - entrypoints=0.4=py39haa95532_0 - - exceptiongroup=1.0.4=py39haa95532_0 + - certifi=2023.7.22=py310haa95532_0 + - cffi=1.15.1=py310h2bbff1b_3 + - colorama=0.4.6=py310haa95532_0 + - colorcet=3.0.1=py310haa95532_0 + - comm=0.1.2=py310haa95532_0 + - contourpy=1.0.5=py310h59b6b97_0 + - cryptography=41.0.3=py310h89fc84f_0 + - debugpy=1.6.7=py310hd77b12b_0 + - entrypoints=0.4=py310haa95532_0 + - exceptiongroup=1.0.4=py310haa95532_0 - freetype=2.12.1=ha860e81_0 - giflib=5.2.1=h8cc25b3_3 - - holoviews=1.18.0=py39haa95532_0 - - hvplot=0.9.0=py39haa95532_0 + - holoviews=1.18.0=py310haa95532_0 + - hvplot=0.9.0=py310haa95532_0 - icc_rt=2022.1.0=h6049295_2 - - idna=3.4=py39haa95532_0 - - importlib-metadata=6.0.0=py39haa95532_0 - - importlib_resources=6.1.0=py39haa95532_0 + - idna=3.4=py310haa95532_0 - intel-openmp=2023.1.0=h59b6b97_46319 - - ipykernel=6.25.0=py39h9909e9c_0 - - ipython=8.15.0=py39haa95532_0 - - jedi=0.18.1=py39haa95532_1 - - jinja2=3.1.2=py39haa95532_0 + - ipykernel=6.25.0=py310h9909e9c_0 + - ipython=8.15.0=py310haa95532_0 + - jedi=0.18.1=py310haa95532_1 + - jinja2=3.1.2=py310haa95532_0 - jpeg=9e=h2bbff1b_1 - - jsonschema=4.17.3=py39haa95532_0 - - jupyter_client=7.4.9=py39haa95532_0 - - jupyter_core=5.3.0=py39haa95532_0 - - jupyter_server=1.23.4=py39haa95532_0 - - kiwisolver=1.4.4=py39hd77b12b_0 + - jsonschema=4.17.3=py310haa95532_0 + - jupyter_client=7.4.9=py310haa95532_0 + - jupyter_core=5.3.0=py310haa95532_0 + - jupyter_server=1.23.4=py310haa95532_0 + - kiwisolver=1.4.4=py310hd77b12b_0 - lerc=3.0=hd77b12b_0 - libbrotlicommon=1.0.9=h2bbff1b_7 - libbrotlidec=1.0.9=h2bbff1b_7 - libbrotlienc=1.0.9=h2bbff1b_7 - libdeflate=1.17=h2bbff1b_1 + - libffi=3.4.4=hd77b12b_0 - libiconv=1.16=h2bbff1b_2 - libpng=1.6.39=h8cc25b3_0 - libsodium=1.0.18=h62dcd97_0 @@ -514,85 +509,84 @@ env_specs: - libwebp=1.3.2=hbc33d0d_0 - libxml2=2.10.4=h0ad7f3c_1 - libxslt=1.1.37=h2bbff1b_1 - - linkify-it-py=2.0.0=py39haa95532_0 - - lxml=4.9.3=py39h09808a7_0 + - linkify-it-py=2.0.0=py310haa95532_0 + - lxml=4.9.3=py310h09808a7_0 - lz4-c=1.9.4=h2bbff1b_0 - - markdown-it-py=2.2.0=py39haa95532_1 - - markdown=3.4.1=py39haa95532_0 - - markupsafe=2.1.1=py39h2bbff1b_0 - - matplotlib-base=3.8.0=py39h4ed8f06_0 - - matplotlib-inline=0.1.6=py39haa95532_0 - - mdit-py-plugins=0.3.0=py39haa95532_0 - - mdurl=0.1.0=py39haa95532_0 - - mistune=0.8.4=py39h2bbff1b_1000 - - mkl-service=2.4.0=py39h2bbff1b_1 + - markdown-it-py=2.2.0=py310haa95532_1 + - markdown=3.4.1=py310haa95532_0 + - markupsafe=2.1.1=py310h2bbff1b_0 + - matplotlib-base=3.8.0=py310h4ed8f06_0 + - matplotlib-inline=0.1.6=py310haa95532_0 + - mdit-py-plugins=0.3.0=py310haa95532_0 + - mdurl=0.1.0=py310haa95532_0 + - mistune=0.8.4=py310h2bbff1b_1000 + - mkl-service=2.4.0=py310h2bbff1b_1 - mkl=2023.1.0=h6b88ed4_46357 - - mkl_fft=1.3.8=py39h2bbff1b_0 - - mkl_random=1.2.4=py39h59b6b97_0 - - nbclassic=0.5.5=py39haa95532_0 - - nbclient=0.5.13=py39haa95532_0 - - nbconvert=6.5.4=py39haa95532_0 - - nbformat=5.9.2=py39haa95532_0 - - nest-asyncio=1.5.6=py39haa95532_0 - - notebook-shim=0.2.2=py39haa95532_0 - - notebook=6.5.4=py39haa95532_1 - - numexpr=2.8.7=py39h2cd9be0_0 - - numpy-base=1.26.0=py39h65a83cf_0 - - numpy=1.26.0=py39h055cbcc_0 + - mkl_fft=1.3.8=py310h2bbff1b_0 + - mkl_random=1.2.4=py310h59b6b97_0 + - nbclassic=0.5.5=py310haa95532_0 + - nbclient=0.5.13=py310haa95532_0 + - nbconvert=6.5.4=py310haa95532_0 + - nbformat=5.9.2=py310haa95532_0 + - nest-asyncio=1.5.6=py310haa95532_0 + - notebook-shim=0.2.2=py310haa95532_0 + - notebook=6.5.4=py310haa95532_1 + - numexpr=2.8.7=py310h2cd9be0_0 + - numpy-base=1.26.0=py310h65a83cf_0 + - numpy=1.26.0=py310h055cbcc_0 - openjpeg=2.4.0=h4fc8c34_0 - openssl=3.0.11=h2bbff1b_2 - - packaging=23.1=py39haa95532_0 - - pandas=2.1.1=py39h4ed8f06_0 - - panel=1.3.1=py39haa95532_0 - - param=2.0.0=py39haa95532_0 - - pillow=10.0.1=py39h045eedc_0 - - pip=23.3=py39haa95532_0 - - platformdirs=3.10.0=py39haa95532_0 - - prometheus_client=0.14.1=py39haa95532_0 - - prompt-toolkit=3.0.36=py39haa95532_0 - - psutil=5.9.0=py39h2bbff1b_0 - - pyct=0.5.0=py39haa95532_0 - - pygments=2.15.1=py39haa95532_1 - - pyopenssl=23.2.0=py39haa95532_0 - - pyparsing=3.0.9=py39haa95532_0 - - pyrsistent=0.18.0=py39h196d8e1_0 - - pysocks=1.7.1=py39haa95532_0 - - python-fastjsonschema=2.16.2=py39haa95532_0 - - python=3.9.18=h1aa4202_0 - - pytz=2023.3.post1=py39haa95532_0 - - pyviz_comms=2.3.0=py39haa95532_0 - - pywin32=305=py39h2bbff1b_0 - - pywinpty=2.0.10=py39h5da7b33_0 - - pyyaml=6.0.1=py39h2bbff1b_0 - - pyzmq=23.2.0=py39hd77b12b_0 - - requests=2.31.0=py39haa95532_0 - - scipy=1.11.3=py39h309d312_0 - - setuptools=68.0.0=py39haa95532_0 - - sniffio=1.2.0=py39haa95532_1 - - soupsieve=2.5=py39haa95532_0 + - packaging=23.1=py310haa95532_0 + - pandas=2.1.1=py310h4ed8f06_0 + - panel=1.3.1=py310haa95532_0 + - param=2.0.0=py310haa95532_0 + - pillow=10.0.1=py310h045eedc_0 + - pip=23.3=py310haa95532_0 + - platformdirs=3.10.0=py310haa95532_0 + - prometheus_client=0.14.1=py310haa95532_0 + - prompt-toolkit=3.0.36=py310haa95532_0 + - psutil=5.9.0=py310h2bbff1b_0 + - pyct=0.5.0=py310haa95532_0 + - pygments=2.15.1=py310haa95532_1 + - pyopenssl=23.2.0=py310haa95532_0 + - pyparsing=3.0.9=py310haa95532_0 + - pyrsistent=0.18.0=py310h2bbff1b_0 + - pysocks=1.7.1=py310haa95532_0 + - python-fastjsonschema=2.16.2=py310haa95532_0 + - python=3.10.13=he1021f5_0 + - pytz=2023.3.post1=py310haa95532_0 + - pyviz_comms=2.3.0=py310haa95532_0 + - pywin32=305=py310h2bbff1b_0 + - pywinpty=2.0.10=py310h5da7b33_0 + - pyyaml=6.0.1=py310h2bbff1b_0 + - pyzmq=23.2.0=py310hd77b12b_0 + - requests=2.31.0=py310haa95532_0 + - scipy=1.11.3=py310h309d312_0 + - setuptools=68.0.0=py310haa95532_0 + - sniffio=1.2.0=py310haa95532_1 + - soupsieve=2.5=py310haa95532_0 - sqlite=3.41.2=h2bbff1b_0 - tbb=2021.8.0=h59b6b97_0 - - terminado=0.17.1=py39haa95532_0 - - tinycss2=1.2.1=py39haa95532_0 + - terminado=0.17.1=py310haa95532_0 + - tinycss2=1.2.1=py310haa95532_0 - tk=8.6.12=h2bbff1b_0 - - tornado=6.3.3=py39h2bbff1b_0 - - tqdm=4.65.0=py39hd4e2768_0 - - traitlets=5.7.1=py39haa95532_0 - - typing-extensions=4.7.1=py39haa95532_0 - - typing_extensions=4.7.1=py39haa95532_0 - - uc-micro-py=1.0.1=py39haa95532_0 - - urllib3=1.26.18=py39haa95532_0 + - tornado=6.3.3=py310h2bbff1b_0 + - tqdm=4.65.0=py310h9909e9c_0 + - traitlets=5.7.1=py310haa95532_0 + - typing-extensions=4.7.1=py310haa95532_0 + - typing_extensions=4.7.1=py310haa95532_0 + - uc-micro-py=1.0.1=py310haa95532_0 + - urllib3=1.26.18=py310haa95532_0 - vc=14.2=h21ff451_1 - vs2015_runtime=14.27.29016=h5e58377_2 - - webencodings=0.5.1=py39haa95532_1 - - websocket-client=0.58.0=py39haa95532_4 - - wheel=0.41.2=py39haa95532_0 - - win_inet_pton=1.1.0=py39haa95532_0 + - webencodings=0.5.1=py310haa95532_1 + - websocket-client=0.58.0=py310haa95532_4 + - wheel=0.41.2=py310haa95532_0 + - win_inet_pton=1.1.0=py310haa95532_0 - winpty=0.4.3=4 - - xyzservices=2022.9.0=py39haa95532_1 + - xyzservices=2022.9.0=py310haa95532_1 - xz=5.4.2=h8cc25b3_0 - yaml=0.2.5=he774522_0 - zeromq=4.3.4=hd77b12b_0 - - zipp=3.11.0=py39haa95532_0 - zlib=1.2.13=h8cc25b3_0 - zstd=1.5.5=hd43e919_0 diff --git a/portfolio_optimizer/anaconda-project.yml b/portfolio_optimizer/anaconda-project.yml index 0df0286ff..4a5b42c87 100644 --- a/portfolio_optimizer/anaconda-project.yml +++ b/portfolio_optimizer/anaconda-project.yml @@ -15,7 +15,7 @@ user_fields: [examples_config] channels: [defaults] packages: &pkgs -- python=3.9 +- python=3.10 - notebook - bokeh - holoviews diff --git a/portfolio_optimizer/stocks.csv b/portfolio_optimizer/data/stocks.csv similarity index 100% rename from portfolio_optimizer/stocks.csv rename to portfolio_optimizer/data/stocks.csv diff --git a/portfolio_optimizer/portfolio.py b/portfolio_optimizer/portfolio.py index 3162a982a..48c3be539 100644 --- a/portfolio_optimizer/portfolio.py +++ b/portfolio_optimizer/portfolio.py @@ -1,48 +1,116 @@ -#!/usr/bin/env python -# coding: utf-8 - from io import BytesIO import numpy as np import pandas as pd import holoviews as hv -import hvplot.pandas import panel as pn from scipy.optimize import minimize -def random_allocation(stocks, shifted, num_ports=15000): - log_ret = np.log(stocks/shifted) +pn.extension('tabulator', design='material', template='material', loading_indicator=True) +import hvplot.pandas - _, ncols = stocks.shape +@pn.cache +def get_stocks(data): + if data is None: + stock_file = './data/stocks.csv' + else: + stock_file = BytesIO(data) + return pd.read_csv(stock_file, index_col='Date', parse_dates=True) - all_weights = np.zeros((num_ports, ncols)) - ret_arr = np.zeros(num_ports) - vol_arr = np.zeros(num_ports) - sharpe_arr = np.zeros(num_ports) +file_input = pn.widgets.FileInput(sizing_mode='stretch_width') - for ind in range(num_ports): +stocks = hvplot.bind(get_stocks, file_input).interactive() - # Create Random Weights - weights = np.random.random(ncols) +selector = pn.widgets.MultiSelect( + name='Select stocks', sizing_mode='stretch_width', + options=stocks.columns.to_list() +) - # Rebalance Weights - weights = weights / np.sum(weights) +selected_stocks = stocks.pipe( + lambda df, cols: df[cols] if cols else df, selector +) - # Save Weights - all_weights[ind,:] = weights +def compute_random_allocations(log_return, num_ports=15000): + _, ncols = log_return.shape + + # Compute log and mean return + mean_return = np.nanmean(log_return, axis=0) + + # Allocate normalized weights + weights = np.random.random((num_ports, ncols)) + normed_weights = (weights.T / np.sum(weights, axis=1)).T + data = dict(zip(log_return.columns, normed_weights.T)) + + # Compute expected return and volatility of random portfolios + data['Return'] = expected_return = np.sum((mean_return * normed_weights) * 252, axis=1) + return_covariance = np.cov(log_return[1:], rowvar=False) * 252 + if not return_covariance.shape: + return_covariance = np.array([[252.]]) + data['Volatility'] = volatility = np.sqrt((normed_weights * np.tensordot(return_covariance, normed_weights.T, axes=1).T).sum(axis=1)) + data['Sharpe'] = sharpe_ratio = expected_return/volatility + + df = pd.DataFrame(data) + df.attrs['mean_return'] = mean_return + df.attrs['log_return'] = log_return + return df - # Expected Return - mean_ret = np.nanmean(log_ret, axis=0) - ret_arr[ind] = np.sum((mean_ret * weights) * 252) +def check_sum(weights): + return np.sum(weights) - 1 - # Expected Variance - vol_arr[ind] = np.sqrt(np.dot(weights, np.dot(np.cov(log_ret[1:], rowvar=False) * 252, weights))) +def get_return(mean_ret, weights): + return np.sum(mean_ret * weights) * 252 - # Sharpe Ratio - sharpe_arr[ind] = ret_arr[ind]/vol_arr[ind] - return all_weights, ret_arr, vol_arr, sharpe_arr +def get_volatility(log_ret, weights): + return np.sqrt(np.dot(weights.T, np.dot(np.cov(log_ret[1:], rowvar=False) * 252, weights))) +def compute_frontier(df, n=30): + frontier_ret = np.linspace(df.Return.min(), df.Return.max(), n) + frontier_volatility = [] + + cols = len(df.columns) - 3 + bounds = tuple((0, 1) for i in range(cols)) + init_guess = [1./cols for i in range(cols)] + for possible_return in frontier_ret: + cons = ( + {'type':'eq', 'fun': check_sum}, + {'type':'eq', 'fun': lambda w: get_return(df.attrs['mean_return'], w) - possible_return} + ) + result = minimize(lambda w: get_volatility(df.attrs['log_return'], w), init_guess, bounds=bounds, constraints=cons) + frontier_volatility.append(result['fun']) + return pd.DataFrame({'Volatility': frontier_volatility, 'Return': frontier_ret}) + +def minimize_difference(weights, des_vol, des_ret, log_ret, mean_ret): + ret = get_return(mean_ret, weights) + vol = get_volatility(log_ret, weights) + return abs(des_ret-ret) + abs(des_vol-vol) + +@pn.cache +def find_best_allocation(log_return, vol, ret): + cols = log_return.shape[1] + vol = vol or 0 + ret = ret or 0 + mean_return = np.nanmean(log_return, axis=0) + bounds = tuple((0, 1) for i in range(cols)) + init_guess = [1./cols for i in range(cols)] + cons = ( + {'type':'eq','fun': check_sum}, + {'type':'eq','fun': lambda w: get_return(mean_return, w) - ret}, + {'type':'eq','fun': lambda w: get_volatility(log_return, w) - vol} + ) + opt = minimize( + minimize_difference, init_guess, args=(vol, ret, log_return, mean_return), + bounds=bounds, constraints=cons + ) + ret = get_return(mean_return, opt.x) + vol = get_volatility(log_return, opt.x) + return pd.Series(list(opt.x)+[ret, vol], index=list(log_return.columns)+['Return', 'Volatility'], name='Weight') + +n_samples = pn.widgets.IntSlider( + name='Random samples', value=10_000, start=1000, end=20_000, step=1000, sizing_mode='stretch_width' +) +button = pn.widgets.Button(name='Run Analysis', sizing_mode='stretch_width') +posxy = hv.streams.Tap(x=None, y=None) text = """ # Portfolio optimization @@ -55,227 +123,103 @@ def random_allocation(stocks, shifted, num_ports=15000): 2. Select the stocks to be included. 3. Run the Analysis 4. Click on the Return/Volatility plot to select the desired risk/reward profile + +Upload a CSV containing stock data: """ -file_input = pn.widgets.FileInput(align='center', sizing_mode='stretch_width') -selector = pn.widgets.MultiSelect(name='Select stocks', sizing_mode='stretch_width') -n_samples = pn.widgets.IntSlider(name='Random samples', value=5000, start=1000, - end=10000, step=1000, sizing_mode='stretch_width') -button = pn.widgets.Button(name='Run Analysis', sizing_mode='stretch_width') +explanation = """ +The code for this app was taken from [this excellent introduction to Python for Finance](https://github.com/PrateekKumarSingh/Python/tree/master/Python%20for%20Finance/Python-for-Finance-Repo-master). +To learn some of the background and theory about portfolio optimization see [this notebook](https://github.com/PrateekKumarSingh/Python/blob/master/Python%20for%20Finance/Python-for-Finance-Repo-master/09-Python-Finance-Fundamentals/02-Portfolio-Optimization.ipynb). +""" -widgets = pn.WidgetBox( - pn.panel(text, margin=(0, 10)), - pn.panel('Upload a CSV containing stock data:', margin=(0, 10)), +sidebar = pn.layout.WidgetBox( + pn.pane.Markdown(text, margin=(0, 10)), file_input, selector, n_samples, - button, - margin=0, + explanation, + max_width=350, sizing_mode='stretch_width' -) +).servable(area='sidebar') -# Contraints -def check_sum(weights): - ''' - Returns 0 if sum of weights is 1.0 - ''' - return np.sum(weights) - 1 +# Set up data pipelines +log_return = np.log(selected_stocks/selected_stocks.shift(1)) +random_allocations = log_return.pipe(compute_random_allocations, n_samples) +closest_allocation = log_return.pipe(find_best_allocation, posxy.param.x, posxy.param.y) +efficient_frontier = random_allocations.pipe(compute_frontier) +max_sharpe = random_allocations.pipe(lambda df: df[df.Sharpe==df.Sharpe.max()]) -def plot_portfolios(ds): - return hv.Scatter(ds, 'Volatility', ['Return', 'Sharpe Ratio']).opts( - color='Sharpe Ratio', cmap='plasma', padding=0.1, responsive=True, height=500, colorbar=True, - clabel='Sharpe Ratio', toolbar='above') - -def plot_max_sharpe(ds): - vol_arr, ret_arr, sharpe_arr = ds['Volatility'], ds['Return'], ds['Sharpe Ratio'] - ind = sharpe_arr.argmax() - max_sr_ret = ret_arr[ind] - max_sr_vol = vol_arr[ind] - return hv.Scatter([(max_sr_vol, max_sr_ret)], 'Volatility', 'Return', label='Max Sharpe Ratio').opts( - size=10, line_color='black', tools=['hover']) - -def get_stocks(): - if file_input.value is None: - stock_file = 'stocks.csv' - else: - stock_file = BytesIO() - stock_file.write(file_input.value) - stock_file.seek(0) - return pd.read_csv(stock_file, index_col='Date', parse_dates=True) +# Generate plots +opts = {'x': 'Volatility', 'y': 'Return', 'responsive': True} -def update_stocks(event): - stocks = list(get_stocks().columns) - selector.param.set_param(options=stocks, value=stocks) - -file_input.param.watch(update_stocks, 'value') -update_stocks(None) - -@pn.depends(button.param.clicks) -def get_portfolio_analysis(_): - stocks = get_stocks() - stocks = stocks[selector.value] - log_ret = np.log(stocks/stocks.shift(1)) - log_ret_array = log_ret.values - mean_ret = np.nanmean(log_ret_array, axis=0) - - def get_return(weights): - return np.sum(mean_ret * weights) * 252 - - def get_volatility(weights): - return np.sqrt(np.dot(weights.T, np.dot(np.cov(log_ret_array[1:], rowvar=False) * 252, weights))) - - def minimize_difference(weights, des_vol, des_ret): - ret = get_return(weights) - vol = get_volatility(weights) - return abs(des_ret-ret) + abs(des_vol-vol) - - def find_best_allocation(vol, ret): - cols = len(stocks.columns) - bounds = tuple((0, 1) for i in range(cols)) - init_guess = [1./cols for i in range(cols)] - cons = ({'type':'eq','fun': check_sum}, - {'type':'eq','fun': lambda w: get_return(w) - ret}, - {'type':'eq','fun': lambda w: get_volatility(w) - vol}) - return minimize(minimize_difference, init_guess, args=(vol, ret), - method='SLSQP', bounds=bounds, constraints=cons) - - def random_allocation_cb(n_samples): - all_weights, ret_arr, vol_arr, sharpe_arr = random_allocation( - stocks.values, stocks.shift(1).values, num_ports=n_samples) - vdims = [*('%s Weight' % c for c in stocks.columns), 'Return', 'Volatility', 'Sharpe Ratio'] - return hv.Dataset((*all_weights.T, ret_arr, vol_arr, sharpe_arr), vdims=vdims) - - def compute_frontier(start=0, end=0.3, n=100): - frontier_ret = np.linspace(start, end, n) - frontier_volatility = [] - - cols = len(stocks.columns) - bounds = tuple((0, 1) for i in range(cols)) - # Initial Guess (equal distribution) - init_guess = [1./cols for i in range(cols)] - for possible_return in frontier_ret: - # function for return - cons = ({'type':'eq', 'fun': check_sum}, - {'type':'eq', 'fun': lambda w: get_return(w) - possible_return}) - - result = minimize(get_volatility, init_guess, method='SLSQP', bounds=bounds, constraints=cons) - frontier_volatility.append(result['fun']) - return frontier_volatility, frontier_ret - - def plot_frontier(ds): - ret_min, ret_max = ds.range('Return') - ret_pad = (ret_max - ret_min) * 0.1 - frontier = compute_frontier(ret_min-ret_pad, ret_max+ret_pad, 100) - return hv.Curve(frontier, label='Efficient Frontier').opts( - line_dash='dashed', color='green') - - def plot_closest(x, y): - vdims = list(stocks.columns) - if (x is None or y is None): - return hv.Points([], vdims=vdims) - - opt = find_best_allocation(x, y) - weights = opt.x - ret = get_return(weights) - vol = get_volatility(weights) - return hv.Points([(vol, ret, *weights)], ['Volatility', 'Return'], vdims=vdims, label='Current Portfolio').opts( - color='green', size=10, line_color='black', tools=['hover']) - - def plot_table(ds): - arr = ds.array() - weights = list(zip(stocks.columns, arr[0, 2:])) if len(arr) else [] - return hv.Table(weights, 'Stock', 'Weight').opts(editable=True) - - def portfolio_text(ds): - arr = ds.array() - weights = arr[0, 2:] - ret = get_return(weights) - vol = get_volatility(weights) - sharpe = ret/vol - text = """ - The selected portfolio has a volatility of %.2f, a return of %.2f - and Sharpe ratio of %.2f. - """ % (vol, ret, sharpe) - return hv.Div(text).opts(height=40) - - weights = np.array([1./len(selector.value) for _ in selector.value]) - ret = get_return(weights) - vol = get_volatility(weights) - - posxy = hv.streams.Tap(y=ret, x=vol) - - closest = hv.DynamicMap(plot_closest, streams=[posxy]) - table = closest.apply(plot_table) - - random = random_allocation_cb(n_samples.value) - - vol_ret = (random.apply(plot_portfolios) * random.apply(plot_frontier) * random.apply(plot_max_sharpe) * closest).opts( - legend_position='bottom_right') - - div = closest.apply(portfolio_text) - - start, end = stocks.index.min(), stocks.index.max() - year = pn.widgets.DateRangeSlider(name='Year', value=(start, end), start=start, end=end) - investment = pn.widgets.Spinner(name='Investment Value in $', value=5000, step=1000, start=1000, end=100000) - - investment_widgets = pn.Row(year, investment) - - def plot_return_curve(table, investment, dates): - weight = table['Weight'] - allocations = weight * investment - amount = allocations/stocks[dates[0]:].iloc[0] - return hv.Curve((stocks[dates[0]:dates[1]] * amount).sum(axis=1).reset_index().rename(columns={0: 'Total Value ($)'})).opts( - responsive=True, framewise=True, min_height=300, padding=(0.05, 0.1)) - - return_curve = table.apply(plot_return_curve, investment=investment.param.value, dates=year.param.value) - - timeseries = stocks.hvplot.line( - 'Date', group_label='Stock', value_label='Stock Price ($)', title='Daily Stock Price', - min_height=300, responsive=True, grid=True, legend='top_left' - ) +allocations_scatter = random_allocations.hvplot.scatter( + alpha=0.1, color='Sharpe', cmap='plasma', **opts +).dmap().opts(tools=[]) - log_ret_hists = log_ret.hvplot.hist( - y=list(log_ret.columns), height=300, min_width=400, responsive=True, bins=100, subplots=True - ).cols(2) - - return pn.Tabs( - ('Analysis', pn.Column( - pn.Row(vol_ret, pn.layout.Spacer(width=20), pn.Column(div, table), sizing_mode='stretch_width'), - pn.Column( - pn.Row(year, investment), - return_curve, - sizing_mode='stretch_width' - ), - sizing_mode='stretch_width')), - ('Timeseries', timeseries), - ('Log Return', pn.Column( - '## Daily normalized log returns', - 'Width of distribution indicates volatility and center of distribution the mean daily return.', - log_ret_hists, - sizing_mode='stretch_width' - )) - ) +frontier_curve = efficient_frontier.hvplot( + line_dash='dashed', color='green', **opts +).dmap() -explanation = """ -The code for this app was taken from [this excellent introduction to Python for Finance](https://github.com/PrateekKumarSingh/Python/tree/master/Python%20for%20Finance/Python-for-Finance-Repo-master). -To learn some of the background and theory about portfolio optimization see [this notebook](https://github.com/PrateekKumarSingh/Python/blob/master/Python%20for%20Finance/Python-for-Finance-Repo-master/09-Python-Finance-Fundamentals/02-Portfolio-Optimization.ipynb). -""" +max_sharpe_point = max_sharpe.hvplot.scatter( + line_color='black', size=50, **opts +).dmap() -template = pn.template.MaterialTemplate(title="Portfolio Optimizer") +closest_point = closest_allocation.to_frame().T.hvplot.scatter(color='green', line_color='black', size=50, **opts).dmap() -template.sidebar.append(widgets) -template.sidebar.append(pn.panel(explanation, sizing_mode='stretch_width')) +posxy.source = allocations_scatter -template.main.append( - pn.Column( - pn.layout.Spacer(loading=True, sizing_mode='stretch_both'), - sizing_mode='stretch_width' - ) +summary = pn.pane.Markdown( + pn.bind(lambda p: f""" + The selected portfolio has a volatility of {p.Volatility:.2f}, a return of {p.Return:.2f} + and Sharpe ratio of {p.Return/p.Volatility:.2f}.""", closest_allocation), width=250 ) -def on_load(): - template.main[0][0] = pn.panel(get_portfolio_analysis, loading_indicator=True) +table = pn.widgets.Tabulator(closest_allocation.to_frame().iloc[:-2]) + +plot = (allocations_scatter * frontier_curve * max_sharpe_point * closest_point).opts(min_height=400, show_grid=True) + +pn.Row(plot, pn.Column(summary, table), sizing_mode='stretch_both') -pn.state.onload(on_load) +investment = pn.widgets.Spinner(name='Investment Value in $', value=5000, step=1000, start=1000, end=100000) +year = pn.widgets.DateRangeSlider(name='Year', value=(stocks.index.min().eval(), stocks.index.max().eval()), start=stocks.index.min(), end=stocks.index.max()) -template.servable() +stocks_between_dates = selected_stocks[year.param.value_start:year.param.value_end] +price_on_start_date = selected_stocks[year.param.value_start:].iloc[0] +allocation = (closest_allocation.iloc[:-2] * investment) + +performance_plot = (stocks_between_dates * allocation / price_on_start_date).sum(axis=1).rename().hvplot.line( + ylabel='Total Value ($)', title='Portfolio performance', responsive=True, min_height=400 +).dmap() + +performance = pn.Column( + pn.Row(year, investment), + performance_plot, + sizing_mode='stretch_both' +) + +timeseries = selected_stocks.hvplot.line( + 'Date', group_label='Stock', value_label='Stock Price ($)', title='Daily Stock Price', + min_height=300, responsive=True, grid=True, legend='top_left' +).dmap() + +log_ret_hists = log_return.hvplot.hist(min_height=300, min_width=400, responsive=True, bins=100, subplots=True, group_label='Stock').cols(2).opts(sizing_mode='stretch_both').panel() + +main = pn.Tabs( + ('Analysis', pn.Column( + pn.Row( + plot, pn.Column(summary, table), + sizing_mode='stretch_both' + ), + performance, + sizing_mode='stretch_both' + ) + ), + ('Timeseries', timeseries), + ('Log Return', pn.Column( + '## Daily normalized log returns', + 'Width of distribution indicates volatility and center of distribution the mean daily return.', + log_ret_hists, + sizing_mode='stretch_both' + )), + sizing_mode='stretch_both', min_height=1000 +).servable(title='Portfolio Optimizer') diff --git a/portfolio_optimizer/portfolio_optimizer.ipynb b/portfolio_optimizer/portfolio_optimizer.ipynb index 7ad8724af..385797828 100644 --- a/portfolio_optimizer/portfolio_optimizer.ipynb +++ b/portfolio_optimizer/portfolio_optimizer.ipynb @@ -4,10 +4,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "# Portfolio Optimization\n", - "Written by Philipp Rudiger
\n", - "Created: November 12, 2019
\n", - "Last updated: August 4, 2021" + "# Portfolio Optimization" ] }, { @@ -48,7 +45,7 @@ "metadata": {}, "outputs": [], "source": [ - "stocks = pd.read_csv('./stocks.csv', index_col='Date', parse_dates=True)" + "stocks = pd.read_csv('./data/stocks.csv', index_col='Date', parse_dates=True)" ] }, { @@ -556,9 +553,22 @@ } ], "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", "name": "python", - "pygments_lexer": "ipython3" + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.10.12" } }, "nbformat": 4, From 5292346d93eb5d1da858bff0da6ffd9456724bc7 Mon Sep 17 00:00:00 2001 From: maximlt Date: Thu, 2 Nov 2023 18:17:23 +0100 Subject: [PATCH 3/3] add deployment --- portfolio_optimizer/anaconda-project.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/portfolio_optimizer/anaconda-project.yml b/portfolio_optimizer/anaconda-project.yml index 4a5b42c87..15c735bb5 100644 --- a/portfolio_optimizer/anaconda-project.yml +++ b/portfolio_optimizer/anaconda-project.yml @@ -9,6 +9,8 @@ examples_config: - panel - hvplot - holoviews + deployments: + - command: dashboard user_fields: [examples_config]