Skip to content
Open

Sub #151

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
Empty file added .github/workflows/a
Empty file.
71 changes: 56 additions & 15 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
@@ -1,41 +1,82 @@
name: ML Pipeline CI

on:
# push:
# branches: [ main, master ]
push:
branches: [ main, master ]
pull_request:
branches: [ main, master ]

permissions:
contents: read
actions: write

jobs:
test:
runs-on: ubuntu-latest
environment: BASE_ACCURACY # デプロイ先環境を 'development' に固定
steps:
- uses: actions/checkout@v3
- name: Clear environment # テスト的に追加
run: |
env -i bash -c "env"
# ... (セットアップ、依存関係インストールなど)
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install pytest great_expectations pandas scikit-learn flake8 black mypy pytest-cov gh
if [ -f requirements.txt ]; then pip install -r requirements.txt; fi

- name: Run model tests
run: |
echo "BASELINE_ACCURACY from vars: ${{ vars.BASELINE_ACCURACY }}" # 確認用
echo "BASELINE_ACCURACY from env: ${{ env.BASELINE_ACCURACY }}" # 確認用
python -c "import os; print(f'BASELINE_ACCURACY from os: {os.environ.get(\"BASELINE_ACCURACY\")}')" # 確認用
pytest day5/演習3/tests/test_model.py -v -s
env:
BASELINE_ACCURACY: ${{ vars.BASELINE_ACCURACY }}

- name: Set up Python
uses: actions/setup-python@v4
with:
python-version: '3.10'

- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install pytest great_expectations pandas scikit-learn flake8 black mypy pytest-cov
if [ -f requirements.txt ]; then pip install -r requirements.txt; fi



- name: Lint with flake8
run: |
flake8 day5/演習3 --count --select=E9,F63,F7,F82 --show-source --statistics
flake8 day5/演習3 --count --exit-zero --max-complexity=10 --max-line-length=88 --statistics

- name: Format check with black
run: |
black --check day5/演習3

- name: Run data tests
run: |
pytest day5/演習3/tests/test_data.py -v

- name: Run model tests
pytest day5/演習3/tests/test_data.py -v -s

- name: Run model tests and get accuracy
id: model_test
run: |
cd day5/演習3/tests
pytest test_model.py -v -s > output.log
echo "TEST_OUTPUT<<EOF" >> $GITHUB_OUTPUT
cat output.log >> $GITHUB_OUTPUT
echo "EOF" >> $GITHUB_OUTPUT
env:
BASELINE_ACCURACY: ${{ vars.BASELINE_ACCURACY }} # 環境変数として定義されている場合

- name: Update baseline accuracy (if tests passed)
if: success()
run: |
pytest day5/演習3/tests/test_model.py -v
import re
accuracy_output = ${{ steps.model_test.outputs.stdout }}
current_accuracy_match = re.search(r"現在のモデルの精度\((\d+\.\d+)\)", accuracy_output)
if current_accuracy_match:
current_accuracy=$(echo "${current_accuracy_match[1]}" | awk '{printf "%.4f", $1}')
echo "Updating BASELINE_ACCURACY to: $current_accuracy"
gh variable set BASELINE_ACCURACY "$current_accuracy"
else:
echo "Could not extract current accuracy from logs."
exit 1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
86 changes: 43 additions & 43 deletions day1/01_streamlit_UI/app.py
Original file line number Diff line number Diff line change
Expand Up @@ -15,48 +15,48 @@
# ============================================
# タイトルと説明
# ============================================
st.title("Streamlit 初心者向けデモ")
st.markdown("### コメントを解除しながらStreamlitの機能を学びましょう")
st.markdown("このデモコードでは、コメントアウトされた部分を順番に解除しながらUIの変化を確認できます。")
st.title("個人情報アンケート")
st.markdown("### 個人情報を打ち込んで、整理しましょう")
st.markdown("このサイトでは、個人情報を入力していくことで、他の個人情報を入力する場面での入力をスムーズにします。")

# ============================================
# サイドバー
# ============================================
st.sidebar.header("デモのガイド")
st.sidebar.info("コードのコメントを解除して、Streamlitのさまざまな機能を確認しましょう。")
st.sidebar.header("サイトのガイド")
st.sidebar.info("個人情報を入力していくことで、他の個人情報を入力する場面での入力をスムーズにしましょう。")

# ============================================
# 基本的なUI要素
# ============================================
st.header("基本的なUI要素")
st.header("個人情報入力欄")

# テキスト入力
st.subheader("テキスト入力")
st.subheader("個人情報は大切にしてください")
name = st.text_input("あなたの名前", "ゲスト")
st.write(f"こんにちは、{name}さん!")

# ボタン
# st.subheader("ボタン")
# if st.button("クリックしてください"):
# st.success("ボタンがクリックされました!")
st.subheader("個人情報を入力しちゃうんですか?")
if st.button("はい"):
st.success("変わってますね!")

# チェックボックス
# st.subheader("チェックボックス")
# if st.checkbox("チェックを入れると追加コンテンツが表示されます"):
# st.info("これは隠れたコンテンツです!")
st.subheader("個人情報を入力することに躊躇いがある")
if st.checkbox("当てはまる場合はチェックを入れてください"):
st.info("なぜこんなサイトを訪れたんですか?")

# スライダー
# st.subheader("スライダー")
# age = st.slider("年齢", 0, 100, 25)
# st.write(f"あなたの年齢: {age}")
st.subheader("自身の年齢にスライダーを合わせてください")
age = st.slider("年齢", 0, 100, 25)
st.write(f"あなたの年齢は{age}歳です!覚えておいてくださいね!")

# セレクトボックス
# st.subheader("セレクトボックス")
# option = st.selectbox(
# "好きなプログラミング言語は?",
# ["Python", "JavaScript", "Java", "C++", "Go", "Rust"]
# )
# st.write(f"あなたは{option}を選びました")
st.subheader("性別")
option = st.selectbox(
"あなたの性別は?",
[ "男", "", "その他"]
)
st.write(f"あなたは{option}です。わかりましたか?")

# ============================================
# レイアウト
Expand All @@ -82,22 +82,22 @@
# st.write("これは第2タブの内容です")

# エクスパンダー
# st.subheader("エクスパンダー")
# with st.expander("詳細を表示"):
# st.write("これはエクスパンダー内の隠れたコンテンツです")
# st.code("print('Hello, Streamlit!')")
st.subheader("その他")
with st.expander("詳細を表示"):
st.write("もう入力するのは終わりです、、、")
st.code("print('お疲れ様でした')")

# ============================================
# データ表示
# ============================================
# st.header("データの表示")

# サンプルデータフレームを作成
# df = pd.DataFrame({
# '名前': ['田中', '鈴木', '佐藤', '高橋', '伊藤'],
# '年齢': [25, 30, 22, 28, 33],
# '都市': ['東京', '大阪', '福岡', '札幌', '名古屋']
# })
df = pd.DataFrame({
'名前': ['田中', '鈴木', '佐藤', '高橋', '伊藤'],
'年齢': [25, 30, 22, 28, 33],
'都市': ['東京', '大阪', '福岡', '札幌', '名古屋']
})

# データフレーム表示
# st.subheader("データフレーム")
Expand Down Expand Up @@ -183,21 +183,21 @@
# ============================================
# デモの使用方法
# ============================================
st.divider()
st.subheader("このデモの使い方")
st.markdown("""
1. コードエディタでコメントアウトされた部分を見つけます(#で始まる行)
2. 確認したい機能のコメントを解除します(先頭の#を削除)
3. 変更を保存して、ブラウザで結果を確認します
4. 様々な組み合わせを試して、UIがどのように変化するか確認しましょう
""")
# st.divider()
# st.subheader("このデモの使い方")
# st.markdown("""
# 1. コードエディタでコメントアウトされた部分を見つけます(#で始まる行)
# 2. 確認したい機能のコメントを解除します(先頭の#を削除)
# 3. 変更を保存して、ブラウザで結果を確認します
#4. 様々な組み合わせを試して、UIがどのように変化するか確認しましょう
# """)

st.code("""
# st.code("""
# コメントアウトされた例:
# if st.button("クリックしてください"):
# st.success("ボタンがクリックされました!")

# コメントを解除した例:
if st.button("クリックしてください"):
st.success("ボタンがクリックされました!")
""")
# if st.button("クリックしてください"):
# st.success("ボタンがクリックされました!")
# """)
Loading