Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 10 additions & 6 deletions .github/workflows/check_links.yml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
name: Check Links

on:
on:
schedule:
- cron: '45 01 30 * *'
pull_request:
Expand All @@ -18,12 +18,16 @@ jobs:
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: '3.x'
python-version: '3.11'

- name: Set up uv
uses: astral-sh/setup-uv@v5

- name: Create virtual environment
run: uv venv

- name: Install dependencies
run: |
python -m pip install --upgrade pip
python -m pip install pytest pytest-xdist requests jupyter lxml numpy matplotlib scipy sympy
run: uv pip install pytest pytest-xdist requests jupyter lxml numpy matplotlib scipy sympy

- name: Check links
run: python -m pytest -n auto ./tests/test_check_links_in_ipynb.py ./utils/tests/
run: uv run pytest -n auto ./tests/test_check_links_in_ipynb.py ./utils/tests/
56 changes: 38 additions & 18 deletions .github/workflows/conda_env_test.yml
Original file line number Diff line number Diff line change
@@ -1,10 +1,19 @@
name: CI

on:
on:
schedule:
- cron: '45 01 30 * *'

push:

pull_request:
branches: [main]

fork:

workflow_dispatch:


jobs:
badges:
name: Add Google Colab Badges
Expand All @@ -19,45 +28,56 @@ jobs:
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: '3.x'
python-version: '3.11'

- name: Set up uv
uses: astral-sh/setup-uv@v5

- name: Create virtual environment
run: uv venv

- name: Install dependencies
run: |
python -m pip install --upgrade pip
python -m pip install bs4 jupyter lxml
run: uv pip install beautifulsoup4 jupyter lxml

- name: Add/Update badges
run: python ./utils/add_colab_main_buttons.py
run: uv run python ./utils/add_colab_main_buttons.py

- name: Commit & push
uses: stefanzweifel/git-auto-commit-action@v5
with:
commit_message: "Add Google Colab badges"
commit_message: "Clean ipynb ${{ github.sha }}"

test_ipynb:
needs: badges
name: Test ipynb with Anaconda ${{ matrix.anaconda }}
name: Test ipynb on ${{ matrix.environment.name }} of ${{ matrix.os }}
runs-on: ubuntu-latest
strategy:
matrix:
anaconda: ["2021.11", "nightly"]
environment:
- {name: '2021.11', python-version: "3.9.4"}
- {name: '2020.10', python-version: "3.10"}
- {name: 'nightly', python-version: "3"}
os: [ubuntu-latest, macos-latest, windows-latest,]
fail-fast: false
timeout-minutes: 30
steps:
- name: Checkout
uses: actions/checkout@v4

- name: Set up Miniconda
uses: conda-incubator/setup-miniconda@v3
with:
auto-update-conda: true
miniconda-version: "latest"
environment-file: ./tests/environment.${{ matrix.anaconda }}.yml
activate-environment: test-environment
- name: Set up uv
uses: astral-sh/setup-uv@v5

- name: Create virtual environment
run: uv venv test-env-${{ matrix.environment.name }} --python ${{ matrix.environment.python-version }}

- name: Install dependencies
run: |
source test-env-${{ matrix.environment.name }}/bin/activate
uv pip install -r tests/requirements.${{ matrix.environment.name }}.txt

- name: Run tests
shell: bash -l {0}
env:
TEST_IPYNB_IGNORE_FOLDER: tutorial
run: |
pytest --numprocesses=auto -k 'not (links or update_nmisp_py)' tests/
source test-env-${{ matrix.environment.name }}/bin/activate
uv run pytest --numprocesses=auto -k 'not (links or update_nmisp_py)' tests/
2 changes: 1 addition & 1 deletion 00.python-c-cpp/00.python.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
"colab_type": "text"
},
"source": [
"<a href=\"https://colab.research.google.com/github/kangwonlee/2018pycpp/blob/main/00.python-c-cpp/00.python.ipynb\" target=\"_parent\"><img src=\"https://colab.research.google.com/assets/colab-badge.svg\" alt=\"Open In Colab\"/></a>\n"
"<a href=\"https://colab.research.google.com/github/kangwonlee/2018pycpp/blob/dependabot/pip/tests/scikit-learn-1.5.1/00.python-c-cpp/00.python.ipynb\" target=\"_parent\"><img src=\"https://colab.research.google.com/assets/colab-badge.svg\" alt=\"Open In Colab\"/></a>\n"
]
},
{
Expand Down
2 changes: 1 addition & 1 deletion 00.python-c-cpp/10.c-cpp.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
"colab_type": "text"
},
"source": [
"<a href=\"https://colab.research.google.com/github/kangwonlee/2018pycpp/blob/main/00.python-c-cpp/10.c-cpp.ipynb\" target=\"_parent\"><img src=\"https://colab.research.google.com/assets/colab-badge.svg\" alt=\"Open In Colab\"/></a>\n"
"<a href=\"https://colab.research.google.com/github/kangwonlee/2018pycpp/blob/dependabot/pip/tests/scikit-learn-1.5.1/00.python-c-cpp/10.c-cpp.ipynb\" target=\"_parent\"><img src=\"https://colab.research.google.com/assets/colab-badge.svg\" alt=\"Open In Colab\"/></a>\n"
]
},
{
Expand Down
2 changes: 1 addition & 1 deletion 00.python-c-cpp/20.bash.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
"colab_type": "text"
},
"source": [
"<a href=\"https://colab.research.google.com/github/kangwonlee/2018pycpp/blob/main/00.python-c-cpp/20.bash.ipynb\" target=\"_parent\"><img src=\"https://colab.research.google.com/assets/colab-badge.svg\" alt=\"Open In Colab\"/></a>\n"
"<a href=\"https://colab.research.google.com/github/kangwonlee/2018pycpp/blob/dependabot/pip/tests/scikit-learn-1.5.1/00.python-c-cpp/20.bash.ipynb\" target=\"_parent\"><img src=\"https://colab.research.google.com/assets/colab-badge.svg\" alt=\"Open In Colab\"/></a>\n"
]
},
{
Expand Down
2 changes: 1 addition & 1 deletion 10.data-types-and-operators/00.git.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
"colab_type": "text"
},
"source": [
"<a href=\"https://colab.research.google.com/github/kangwonlee/2018pycpp/blob/main/10.data-types-and-operators/00.git.ipynb\" target=\"_parent\"><img src=\"https://colab.research.google.com/assets/colab-badge.svg\" alt=\"Open In Colab\"/></a>\n"
"<a href=\"https://colab.research.google.com/github/kangwonlee/2018pycpp/blob/dependabot/pip/tests/scikit-learn-1.5.1/10.data-types-and-operators/00.git.ipynb\" target=\"_parent\"><img src=\"https://colab.research.google.com/assets/colab-badge.svg\" alt=\"Open In Colab\"/></a>\n"
]
},
{
Expand Down
2 changes: 1 addition & 1 deletion 10.data-types-and-operators/10.types.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
"colab_type": "text"
},
"source": [
"<a href=\"https://colab.research.google.com/github/kangwonlee/2018pycpp/blob/main/10.data-types-and-operators/10.types.ipynb\" target=\"_parent\"><img src=\"https://colab.research.google.com/assets/colab-badge.svg\" alt=\"Open In Colab\"/></a>\n"
"<a href=\"https://colab.research.google.com/github/kangwonlee/2018pycpp/blob/dependabot/pip/tests/scikit-learn-1.5.1/10.data-types-and-operators/10.types.ipynb\" target=\"_parent\"><img src=\"https://colab.research.google.com/assets/colab-badge.svg\" alt=\"Open In Colab\"/></a>\n"
]
},
{
Expand Down
2 changes: 1 addition & 1 deletion 10.data-types-and-operators/20.operators.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
"colab_type": "text"
},
"source": [
"<a href=\"https://colab.research.google.com/github/kangwonlee/2018pycpp/blob/main/10.data-types-and-operators/20.operators.ipynb\" target=\"_parent\"><img src=\"https://colab.research.google.com/assets/colab-badge.svg\" alt=\"Open In Colab\"/></a>\n"
"<a href=\"https://colab.research.google.com/github/kangwonlee/2018pycpp/blob/dependabot/pip/tests/scikit-learn-1.5.1/10.data-types-and-operators/20.operators.ipynb\" target=\"_parent\"><img src=\"https://colab.research.google.com/assets/colab-badge.svg\" alt=\"Open In Colab\"/></a>\n"
]
},
{
Expand Down
2 changes: 1 addition & 1 deletion 20.control-flow/00.if.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
"colab_type": "text"
},
"source": [
"<a href=\"https://colab.research.google.com/github/kangwonlee/2018pycpp/blob/main/20.control-flow/00.if.ipynb\" target=\"_parent\"><img src=\"https://colab.research.google.com/assets/colab-badge.svg\" alt=\"Open In Colab\"/></a>\n"
"<a href=\"https://colab.research.google.com/github/kangwonlee/2018pycpp/blob/dependabot/pip/tests/scikit-learn-1.5.1/20.control-flow/00.if.ipynb\" target=\"_parent\"><img src=\"https://colab.research.google.com/assets/colab-badge.svg\" alt=\"Open In Colab\"/></a>\n"
]
},
{
Expand Down
2 changes: 1 addition & 1 deletion 20.control-flow/10.for-while.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
"colab_type": "text"
},
"source": [
"<a href=\"https://colab.research.google.com/github/kangwonlee/2018pycpp/blob/main/20.control-flow/10.for-while.ipynb\" target=\"_parent\"><img src=\"https://colab.research.google.com/assets/colab-badge.svg\" alt=\"Open In Colab\"/></a>\n"
"<a href=\"https://colab.research.google.com/github/kangwonlee/2018pycpp/blob/dependabot/pip/tests/scikit-learn-1.5.1/20.control-flow/10.for-while.ipynb\" target=\"_parent\"><img src=\"https://colab.research.google.com/assets/colab-badge.svg\" alt=\"Open In Colab\"/></a>\n"
]
},
{
Expand Down
2 changes: 1 addition & 1 deletion 20.control-flow/20.functions.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
"colab_type": "text"
},
"source": [
"<a href=\"https://colab.research.google.com/github/kangwonlee/2018pycpp/blob/main/20.control-flow/20.functions.ipynb\" target=\"_parent\"><img src=\"https://colab.research.google.com/assets/colab-badge.svg\" alt=\"Open In Colab\"/></a>\n"
"<a href=\"https://colab.research.google.com/github/kangwonlee/2018pycpp/blob/dependabot/pip/tests/scikit-learn-1.5.1/20.control-flow/20.functions.ipynb\" target=\"_parent\"><img src=\"https://colab.research.google.com/assets/colab-badge.svg\" alt=\"Open In Colab\"/></a>\n"
]
},
{
Expand Down
2 changes: 1 addition & 1 deletion 30.pointers-and-memory-management/00.pointers.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
"colab_type": "text"
},
"source": [
"<a href=\"https://colab.research.google.com/github/kangwonlee/2018pycpp/blob/main/30.pointers-and-memory-management/00.pointers.ipynb\" target=\"_parent\"><img src=\"https://colab.research.google.com/assets/colab-badge.svg\" alt=\"Open In Colab\"/></a>\n"
"<a href=\"https://colab.research.google.com/github/kangwonlee/2018pycpp/blob/dependabot/pip/tests/scikit-learn-1.5.1/30.pointers-and-memory-management/00.pointers.ipynb\" target=\"_parent\"><img src=\"https://colab.research.google.com/assets/colab-badge.svg\" alt=\"Open In Colab\"/></a>\n"
]
},
{
Expand Down
2 changes: 1 addition & 1 deletion 30.pointers-and-memory-management/10.calloc-free.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
"colab_type": "text"
},
"source": [
"<a href=\"https://colab.research.google.com/github/kangwonlee/2018pycpp/blob/main/30.pointers-and-memory-management/10.calloc-free.ipynb\" target=\"_parent\"><img src=\"https://colab.research.google.com/assets/colab-badge.svg\" alt=\"Open In Colab\"/></a>\n"
"<a href=\"https://colab.research.google.com/github/kangwonlee/2018pycpp/blob/dependabot/pip/tests/scikit-learn-1.5.1/30.pointers-and-memory-management/10.calloc-free.ipynb\" target=\"_parent\"><img src=\"https://colab.research.google.com/assets/colab-badge.svg\" alt=\"Open In Colab\"/></a>\n"
]
},
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
"colab_type": "text"
},
"source": [
"<a href=\"https://colab.research.google.com/github/kangwonlee/2018pycpp/blob/main/30.pointers-and-memory-management/20.python.list-reference.ipynb\" target=\"_parent\"><img src=\"https://colab.research.google.com/assets/colab-badge.svg\" alt=\"Open In Colab\"/></a>\n"
"<a href=\"https://colab.research.google.com/github/kangwonlee/2018pycpp/blob/dependabot/pip/tests/scikit-learn-1.5.1/30.pointers-and-memory-management/20.python.list-reference.ipynb\" target=\"_parent\"><img src=\"https://colab.research.google.com/assets/colab-badge.svg\" alt=\"Open In Colab\"/></a>\n"
]
},
{
Expand Down
2 changes: 1 addition & 1 deletion 40.object-oriented-programming/00.module-namespace.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
"colab_type": "text"
},
"source": [
"<a href=\"https://colab.research.google.com/github/kangwonlee/2018pycpp/blob/main/40.object-oriented-programming/00.module-namespace.ipynb\" target=\"_parent\"><img src=\"https://colab.research.google.com/assets/colab-badge.svg\" alt=\"Open In Colab\"/></a>\n"
"<a href=\"https://colab.research.google.com/github/kangwonlee/2018pycpp/blob/dependabot/pip/tests/scikit-learn-1.5.1/40.object-oriented-programming/00.module-namespace.ipynb\" target=\"_parent\"><img src=\"https://colab.research.google.com/assets/colab-badge.svg\" alt=\"Open In Colab\"/></a>\n"
]
},
{
Expand Down
2 changes: 1 addition & 1 deletion 40.object-oriented-programming/10.class.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
"colab_type": "text"
},
"source": [
"<a href=\"https://colab.research.google.com/github/kangwonlee/2018pycpp/blob/main/40.object-oriented-programming/10.class.ipynb\" target=\"_parent\"><img src=\"https://colab.research.google.com/assets/colab-badge.svg\" alt=\"Open In Colab\"/></a>\n"
"<a href=\"https://colab.research.google.com/github/kangwonlee/2018pycpp/blob/dependabot/pip/tests/scikit-learn-1.5.1/40.object-oriented-programming/10.class.ipynb\" target=\"_parent\"><img src=\"https://colab.research.google.com/assets/colab-badge.svg\" alt=\"Open In Colab\"/></a>\n"
]
},
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
"colab_type": "text"
},
"source": [
"<a href=\"https://colab.research.google.com/github/kangwonlee/2018pycpp/blob/main/40.object-oriented-programming/20.private-protected-public.ipynb\" target=\"_parent\"><img src=\"https://colab.research.google.com/assets/colab-badge.svg\" alt=\"Open In Colab\"/></a>\n"
"<a href=\"https://colab.research.google.com/github/kangwonlee/2018pycpp/blob/dependabot/pip/tests/scikit-learn-1.5.1/40.object-oriented-programming/20.private-protected-public.ipynb\" target=\"_parent\"><img src=\"https://colab.research.google.com/assets/colab-badge.svg\" alt=\"Open In Colab\"/></a>\n"
]
},
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
"colab_type": "text"
},
"source": [
"<a href=\"https://colab.research.google.com/github/kangwonlee/2018pycpp/blob/main/40.object-oriented-programming/30.state-space-in-class.ipynb\" target=\"_parent\"><img src=\"https://colab.research.google.com/assets/colab-badge.svg\" alt=\"Open In Colab\"/></a>\n"
"<a href=\"https://colab.research.google.com/github/kangwonlee/2018pycpp/blob/dependabot/pip/tests/scikit-learn-1.5.1/40.object-oriented-programming/30.state-space-in-class.ipynb\" target=\"_parent\"><img src=\"https://colab.research.google.com/assets/colab-badge.svg\" alt=\"Open In Colab\"/></a>\n"
]
},
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
"colab_type": "text"
},
"source": [
"<a href=\"https://colab.research.google.com/github/kangwonlee/2018pycpp/blob/main/40.object-oriented-programming/40.dataclasses.dataclass.ipynb\" target=\"_parent\"><img src=\"https://colab.research.google.com/assets/colab-badge.svg\" alt=\"Open In Colab\"/></a>\n"
"<a href=\"https://colab.research.google.com/github/kangwonlee/2018pycpp/blob/dependabot/pip/tests/scikit-learn-1.5.1/40.object-oriented-programming/40.dataclasses.dataclass.ipynb\" target=\"_parent\"><img src=\"https://colab.research.google.com/assets/colab-badge.svg\" alt=\"Open In Colab\"/></a>\n"
]
},
{
Expand Down
2 changes: 1 addition & 1 deletion 50.under-the-hood/00.gdb.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
"colab_type": "text"
},
"source": [
"<a href=\"https://colab.research.google.com/github/kangwonlee/2018pycpp/blob/main/50.under-the-hood/00.gdb.ipynb\" target=\"_parent\"><img src=\"https://colab.research.google.com/assets/colab-badge.svg\" alt=\"Open In Colab\"/></a>\n"
"<a href=\"https://colab.research.google.com/github/kangwonlee/2018pycpp/blob/dependabot/pip/tests/scikit-learn-1.5.1/50.under-the-hood/00.gdb.ipynb\" target=\"_parent\"><img src=\"https://colab.research.google.com/assets/colab-badge.svg\" alt=\"Open In Colab\"/></a>\n"
]
},
{
Expand Down
2 changes: 1 addition & 1 deletion 50.under-the-hood/10.cython.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
"colab_type": "text"
},
"source": [
"<a href=\"https://colab.research.google.com/github/kangwonlee/2018pycpp/blob/main/50.under-the-hood/10.cython.ipynb\" target=\"_parent\"><img src=\"https://colab.research.google.com/assets/colab-badge.svg\" alt=\"Open In Colab\"/></a>\n"
"<a href=\"https://colab.research.google.com/github/kangwonlee/2018pycpp/blob/dependabot/pip/tests/scikit-learn-1.5.1/50.under-the-hood/10.cython.ipynb\" target=\"_parent\"><img src=\"https://colab.research.google.com/assets/colab-badge.svg\" alt=\"Open In Colab\"/></a>\n"
]
},
{
Expand Down
2 changes: 1 addition & 1 deletion 50.under-the-hood/22.working_with_bits_operators.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
"colab_type": "text"
},
"source": [
"<a href=\"https://colab.research.google.com/github/kangwonlee/2018pycpp/blob/main/50.under-the-hood/22.working_with_bits_operators.ipynb\" target=\"_parent\"><img src=\"https://colab.research.google.com/assets/colab-badge.svg\" alt=\"Open In Colab\"/></a>\n"
"<a href=\"https://colab.research.google.com/github/kangwonlee/2018pycpp/blob/dependabot/pip/tests/scikit-learn-1.5.1/50.under-the-hood/22.working_with_bits_operators.ipynb\" target=\"_parent\"><img src=\"https://colab.research.google.com/assets/colab-badge.svg\" alt=\"Open In Colab\"/></a>\n"
]
},
{
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
* Let's take a look at the assembly instructions.
```
```
24:bitwise_16bit_color.cpp **** uint32_t hex = 0;
565 .loc 6 24 0
566 00cf C745C400 movl $0, -60(%rbp)
Expand Down
2 changes: 1 addition & 1 deletion 50.under-the-hood/28.working_with_bits_struct_union.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
"colab_type": "text"
},
"source": [
"<a href=\"https://colab.research.google.com/github/kangwonlee/2018pycpp/blob/main/50.under-the-hood/28.working_with_bits_struct_union.ipynb\" target=\"_parent\"><img src=\"https://colab.research.google.com/assets/colab-badge.svg\" alt=\"Open In Colab\"/></a>\n"
"<a href=\"https://colab.research.google.com/github/kangwonlee/2018pycpp/blob/dependabot/pip/tests/scikit-learn-1.5.1/50.under-the-hood/28.working_with_bits_struct_union.ipynb\" target=\"_parent\"><img src=\"https://colab.research.google.com/assets/colab-badge.svg\" alt=\"Open In Colab\"/></a>\n"
]
},
{
Expand Down
2 changes: 1 addition & 1 deletion tests/check_links_in_ipynb.py
Original file line number Diff line number Diff line change
Expand Up @@ -72,5 +72,5 @@ def check_links_in_ipynb_cells_list(cells_list):

# check simple urls
check_link_in_cell(cell, rs)
# check urls linked to
# check urls linked to
check_link_in_cell(cell, ri)
4 changes: 2 additions & 2 deletions tests/get_cpp_from_ipynb.py
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ def is_markdown_cpp_src(ipynb_cell):
src = ipynb_cell['source'].strip()

# Multiline code block within ```'s
if (src.startswith('```')
if (src.startswith('```')
and src.endswith('```')):

# check C++ right after ```
Expand Down Expand Up @@ -100,7 +100,7 @@ def get_build_command_in_last_line(cpp_txt):
if 4 < len(line.lower().split()):
# Check words
if (
('build' == line.lower().split()[1])
('build' == line.lower().split()[1])
and ('command' == line.lower().split()[2])
and (':' == line.lower().split()[3])
):
Expand Down
17 changes: 17 additions & 0 deletions tests/requirements.2021.11.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
# python==3.9.4
cython==0.29.24
jupyter==1.0.0
lxml==4.6.3
matplotlib==3.4.3
numpy==1.20.3
pandas==1.3.4
pandas-datareader==0.10.0
pytest==6.2.4
pytest-xdist==2.3.0
requests==2.26.0
scikit-learn==1.5.1
scipy==1.7.1
seaborn==0.11.2
statsmodels==0.12.2
sympy==1.9
xlwt==1.3.0
17 changes: 17 additions & 0 deletions tests/requirements.2022.10.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
# python==3.10
cython==0.29.32
jupyter==1.0.0
lxml==4.9.1
matplotlib==3.5.2
numpy==1.21.5
pandas==1.4.4
pandas-datareader==0.10.0
pytest==7.1.2
pytest-xdist==2.5.0
requests==2.28.1
scikit-learn==1.5.1
scipy==1.9.1
seaborn==0.11.2
statsmodels==0.13.2
sympy==1.10.1
xlwt==1.3.0
Loading