Python関連のことを調べてみた

Python関連のことを調べてみた

diagramsコードから構成通りのIaCをChatGPTに書いてもらう

Terraformの勉強がてら、Pythonパッケージ diagrams のコードを基に IaC コードを生成AIに書いてもらおうという取り組みです。

## 作成したい環境

“`python
from diagrams import Diagram, Cluster
from diagrams.aws.compute import EC2
from diagrams.aws.storage import S3
from diagrams.onprem.client import Client
from diagrams.aws.network import Endpoint

with Diagram(“Simple Diagram”) as diag:
with Cluster(‘VPC’):
with Cluster(‘Public subnet’):
ec2_pub = EC2(‘Public Instance’)
with Cluster(‘Private subnet’):
ec2_

元記事を表示

エンジニア管理ツールでも作る③Flask・Gunicorn環境用意

# 前回
Next.jsの環境を作りました。

https://qiita.com/k-jimon/items/34becb7bd9aabdae6d10

# 今回の目標
DockerでFlask + Gunicorn環境を作る

# Dockerfileの用意
“`dockerfile
# api/Dockerfile
FROM python:3-slim

WORKDIR /app

RUN pip install –upgrade pip

COPY requirements.txt ./
RUN pip install -r requirements.txt
“`

現時点でpython:3-slimのバージョンは3.12.3でした。

pipはとりあえずupdrageしておきます。

`requirements.txt`には必要なパッケージ一覧を羅列する予定です。

`RUN pip install -r requirements.txt`を`Dockerfile`に書くかは好みの問題なのかもしれませんが、今回は書いています。
イメージがPythonパッケージをインス

元記事を表示

ABC352(Atcoder Beginner Contest)のA~E(A,B,C,D,E)問題をPythonで解説(復習)

# ABC352(Atcoder Beginner Contest)のA~E(A,B,C,D,E)問題をPythonで解説(復習)

# A問題

– `Z`駅が`X`駅と`Y`駅の間にあるかどうかを判定すれば良い.
– つまり,`min(X, Y) <= Z <= max(X, Y)`となっているかどうかを見れば良い. ```A.py """ <方針>
– `Z`駅が`X`駅と`Y`駅の間にあるかどうかを判定すれば良い.
– つまり,`min(X, Y) <= Z <= max(X, Y)`となっているかどうかを見れば良い. """ # 標準入力を受け取る. N, X, Y, Z = map(int, input().split()) # X駅とY駅の間にZ駅があるかを見る. if(min(X, Y) <= Z <= max(X, Y)): # Yesを出力をする. print("Yes") else: # Noを出力をする. print("No") ``` # B問題 - 正しく入力された文字の`index`を記録する変数`ans`を用意する. - 文

元記事を表示

diagramsを使ってAWS構成図を書こうと思ったが導入でつまずいた話

AWSの構成図をPythonパッケージのdiagramsを使って書こうと思ったのですが、意外と導入でつまずいたのでまとめます。

## 環境
– Python 3.8.10
– pip 23.3.1
– Windows 11 Pro
– WSL 2.1.5.0

## 描画用プログラム
“`python
from diagrams import Diagram
from diagrams.aws.compute import EC2
from diagrams.onprem.client import Client

with Diagram(“Simple Diagram”) as diag:
ec2_pub = EC2(‘Public Instance’)
ec2_pri = EC2(‘Private Instance’)
Client() >> ec2_pub
ec2_pub – ec2_pri

diag
“`
中身は何でもいいのですが、ひとまず描画できることを確認するためのものです。

## 導入手順
“`
$ pip insta

元記事を表示

【Python】コンソールにいい感じに文字列を表示させるコード

本記事はPythonのコンソール画面に日本語文字列を表示させるコードを記述したのでその備忘録です。
本コードはPythonの標準ライブラリを使用しているため、Python自体が古すぎなければ問題なく動くはずです。

まずは、本記事を書くにあたり以下を参照しました。

* [Python公式ドキュメント](https://docs.python.org/ja/3/library/unicodedata.html)
* [Pythonで半角1文字、全角2文字として文字数(幅)カウント](https://note.nkmk.me/python-unicodedata-east-asian-width-count/)

# 本コード

“`python:printText.py
import unicodedata

def get_string_length(text):
count = 0
for c in text:
if unicodedata.east_asian_width(c) in ‘FWA’:
count += 2

元記事を表示

GaussianBlur のカーネルを調べる

OpenCVの `GaussianBlur()` で実際に適用されるカーネルの中身は、要素がすべて0で中心だけが1の画像に `cv.GaussianBlur()` を適用することで調べられます。

5×5のカーネルのときは次のようになります(Python版)。

“`Python
>>> import cv2
>>> import numpy as np

>>> img = np.zeros((5, 5))
>>> img[2, 2] = 1
>>> img
array([[0., 0., 0., 0., 0.],
[0., 0., 0., 0., 0.],
[0., 0., 1., 0., 0.],
[0., 0., 0., 0., 0.],
[0., 0., 0., 0., 0.]])

>>> filter = cv2.GaussianBlur(img, (5, 5), 0)
>>> filter
array([[0.015625, 0.03125 , 0.046875, 0.03125 , 0.015625],

元記事を表示

Slack経由でRAGにコードレビューを依頼するBotを作成 〜 AWS SAM編

## はじめに

https://qiita.com/sakes9/items/3777330b25b236ac2841

前回の記事では、リーダブルコードの原則に従ったコードレビューを自動化できないものか・・と考えた結果、『RAGにリーダブルコードの原則を取り込ませてコードレビューをしてもらおう!!』という検証をしてみました。

![デモ動画.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3087076/e3ca044c-a7bc-3014-c69b-cb06714d0f23.gif)

検証環境の構築は **AWSマネジメントコンソール** を使用していましたが、今回は **AWS SAM** を使用して、より簡単に環境構築する方法の解説を行います。

使用するリポジトリは以下になります。

https://github.com/sakes9/sam-slack-review-rag

## 事前準備

### リージョン切り替え

全ての手順は「**東京リージョン**」で実施することを前提とし

元記事を表示

Google Colabで少しだけ幸せになる方法

# はじめに
みなさんGoogle Colabは使用していますか?
少しだけ幸せになれる方法をお教えします。

# 設定
Google Colabでノートブックを開き、右上の歯車マーク、もしくは「ツール」から「設定」を開きます。
「その他」タブからお好きなモードを選択してください。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3493004/6c1cbecd-7fb2-6063-e482-a56a98c9b323.png)

全部チェックすると犬、カニ、猫が上部に走り出し、賑やかになります。
かわいいですね。

はい、幸せになりました。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3493004/7a62edd6-69dc-03c4-5b3b-f75183dbef79.png)

ちなみに猫は5種類いるみたいです。
犬は何種類いるのでしょうか。気になる方は調べてみてください。

元記事を表示

ChainlitとLangChain(LCEL)でGPT連携(wikipediaとDuckDuckGoも)

前に以下の記事で書いた内容を[**Chainlit**](https://docs.chainlit.io/get-started/overview)**で実装し直し**ました。

https://qiita.com/FukuharaYohei/items/a11628c1ae081c5b01ac

ChainlitだとChatに特化しているだけあって、**シンプルにUI実装できて非常にやりやすかった**です。自動でLangChainの内部処理も画面表示できるようになっており、(UIでなく)機能にフォーカスしたPoCなどは非常にやりやすそうです。画面に細かく手を入れたい場合(例: 内部処理の非表示制御)は、難しそうだと予測していますが、調べていないのでわかりません。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/134273/94551899-de8d-3b01-1bb4-c96711dc1f8b.png)

# サマリ
今回使っている主なモデルなどです。

|種類|内容|備考|
|:

元記事を表示

個人開発記録 2024/05/07

## 目的

* とにかくやりきることが一番の目的
* 毎日発信することで、発信する習慣作り
* 個人開発をやりきることで、実績作り

## 開発するもの

X(旧Twitter)のパクリ

## 構成

* バックエンド
* python
* django REST framework
* DB
* postgreSQL
* フロントエンド
* React

## 前回

https://qiita.com/kare-pan/items/7a910401dc0035761813

## 本編

今回は必須項目を`username`から`email`に変更しようかと思います。

### dj-rest-authをインストール

Django REST Frameworkを使ったユーザー認証をするための便利パッケージ。
※django-rest-authと間違わないように

https://qiita.com/howaito01/items/c20f62e7012cdfac873e

### Userモデルの修正

大きな変更点は以下。

* `User

元記事を表示

Docker入門2)DockerによるFlaskアプリ構築

# WSL2上でDockerを用いてFlaskアプリケーションを構築する方法

この記事では、WSL2にセットアップされたUbuntu環境上でDockerを使用して、簡単なFlaskアプリケーションをビルドし、ローカルでデプロイする手順を説明します。想定読者は、以下の前提条件を満たしており、Dockerの基本的な使い方を知りたいと思っているDocker初心者を想定しています。

## 前提条件
1. WSL2にUbuntuをインストール済み
– 参考サイト:https://note.com/hiro20180901/n/nc798a07485e2
2. DockerをWSL2のUbuntu環境にインストール済み
– 参考サイト:https://zenn.dev/kawauso_danu/articles/fbb0fce738ef6d
3. VSCodeでWSL2に接続済み
– 参考サイト:https://zenn.dev/s_ryuuki/articles/4b9631674adea4

## 1. プロジェクトのディレクトリ構造

まず、以下のよう

元記事を表示

【Python】zipファイルを一括で展開するコード

zipファイルをまとめて抽出するコードを作成したので、
その備忘録としてこちらに記します。

本コードを記述するにあたり

・[Python公式ドキュメント](https://docs.python.org/ja/3/library/zipfile.html)
・[Pythonでディレクトリを(存在するかどうか確かめて存在しなかったら)作成する](https://qiita.com/harutine/items/bda5de790a155254b622#6-%E3%81%BE%E3%81%A8%E3%82%81)

を参照しました。
コードはpythonの標準ライブラリを使用しているため、追加で `pip install` を行う必要はありません。

# 本コード

“`python: extractZip.py
import os
import zipfile
from tkinter import *
from tkinter import filedialog

current_dir = os.path.dirname(__file__)
targets = filedia

元記事を表示

エンジニア管理ツールでも作る①構想

# 概要
エンジニア管理ツールを作成する様子を記録することで、初学者の助けになれば

# 動機
私はSESとして働いているわけですが、我々エンジニア(商品)がちゃんと管理されているのか常日頃から疑問に思っていました。
社員のスキルを一覧で見ることができたら、お客さんに「こういう人材揃ってます」って言えるでしょうし、新入社員には「こういう会社です」って言えるでしょうし、既存社員も「こんな人達と働いてるんだ」って思ってもらえると思うんですよ。

*ほならね、自分が作ってみろって話でしょ?そう私はそう言いたいですけどね。*
ーー某YouTube r

と言うことで作ってみる事にしました。

# 目標
* エンジニアのスキルが一覧で見えるような管理サイト
* エンジニアアカウントと管理者アカウントで使い分けたい
* エクセルで作成したスキルシートをアップロードできるようにしたい
* サイト上でも編集できるようにしたい
* サイトからスキルシートをダウンロードできるようにしたい

さて、どこまで達成できるんでしょうね。

# 環境
* MacOS Monterey 12.

元記事を表示

Blender 4.1, Python 立方体 、照明、カメラ円周移動

Blender 4.1, Python 立方体 、照明、カメラ円周移動

古い記事「Blender 2.8, Python 立方体 、照明、カメラ円周移動」の改良版です。blender 4.1.1向けにフレーム指定部分など変更。
これで照明も移動、カメラも移動していますが
謎のエラー[Performance Warning] cache is full (Size: 64), vertex descriptor will not be cached が出ています。

“`python
# bpy_nh41 照明移動,立方体移動 (nh13 kairyo) 後半カメラ移動
import bpy
# DELETE ALL mesh, light, camera, みな削除する2行
for item in bpy.data.objects:
bpy.data.objects.remove(item)

#立方体 original script は —- http://tips.hecomi.com/entry/20120818/1345307205
#拡大参考資料 tat

元記事を表示

Python Lab ― Flask with React/Vue

# Python Lab ― Flask with React/Vue

Flask で Web API が動作する Web サーバーを用意し、Vue と React のそれぞれのログイン画面から Web API を呼び出すというものを開発してみました。

## 画面ショット

**[ログイン画面(React、React-Bootstrap)]**

![Python_lab-flask_01-Login-React.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3529613/b57f67a4-8c74-a5d7-24ea-3e98bfbca52a.jpeg)

**[ログイン画面(Vue、Vuetify)]**

![Python_lab-flask_02-Login-Vue.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3529613/5a8d65bf-56ff-9abb-a0a5-a2558ec3591d.jpe

元記事を表示

[ReviewAI 使用例] 松屋 [新大久保 韓国料理店]

# はじめに

レビュー分析AIサービスの ReviewAI (レビューアイ) を開発しています。
本記事ではレビュー分析の例として、新大久保の韓国料理の人気店を取り上げていきます!
[人気店の記事をまとめているページはこちらです。](https://qiita.com/RetegyLink/items/3d94852bf25a724a82cc)

今回は、松屋 の食べログに集まっているレビューを分析します。

## 松屋

伝統韓国料理のお店だそうです。

> JR新大久保駅より 徒歩10分
> 東新宿駅から212m

[食べログ](https://tabelog.com/tokyo/A1304/A130404/13000028/)

## ReviewAI (レビューアイ)

弊社 RetegyLink が開発中のレビュー分析 AI です。
https://reviewai.next-seed.work/
試作版を公開中で、現在は
– [食べログ](https://tabelog.com/)
– [じゃらん](https://www.jalan.net/)
のレビューを分析できます

元記事を表示

【生成AIアプリ100チャレンジ】(21)格言検索

https://ai.nuevo.jp/aphorism/

![スクリーンショット 2024-05-07 20.18.35.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/398694/dc5b311a-c93c-3d90-6a26-5b35623445df.png)

開発環境

| | |
|:—:|:—:|
| Server | lightSail |
| Language | Python3.11 |
| Framework | Django |
| DB | sqlite3 |

ローカル環境ではPythonのvenvを使用。エディタはvs codeです。
目的
格言・名作を検索してくれるアプリ。
元気になりたいとか、やる気を出したい、仕事、人生で悩んでいるときに格言を見つけてくれる。

# コード
“`python:qiita.rb

try:
OPENAI_API_KEY = os.environ[‘OPENAI_API_IMAGE_KEY’]

元記事を表示

SMILES: 文字列による化合物構造の表現

# はじめに
こんにちは、@sasshi_iです。

ケモインフォマティクスの分野では、化合物の構造を計算機に入力するため様々な表現方法があります。

今回は文字列で分子構造を表現するSMILESについて紹介します。

# SMILESとは?
## 概要
SMILES(Simplified Molecular Input Line Entry System)は、**分子の構造を表現するために文字列を使用する表記法**です。

1980年代に開発されたこの表記法は、分子や化学反応をコンピュータプログラムに簡単に入力し、保存するために広く使用されています。

例えば、解熱鎮痛薬のバファリンの成分であるアスピリンはSMILESだと `CC(=O)Oc1ccccc1C(=O)O`と表現されます。

SMILESはrdkitを用いてプログラムに入力できます。
rdkitはケモインフォマティクスの分野で広く使用されるpythonのライブラリです。

“`python
from rdkit import Chem
Chem.MolFromSmiles(‘CC(=O)Oc1ccccc1C(=O)O’

元記事を表示

datacalsses-json: `to_dict()`でEnumのvalueを出力するには`encode_json=True`を指定する

# 環境
* Python 3.12.1
* dataclasses-json 0.6.5

# クラスの定義

“`python
from enum import Enum
from dataclasses import dataclass
from dataclasses_json import dataclass_json

class Color(Enum):
RED = 1
GREEN = 2
BLUE = 3

@dataclass_json
@dataclass
class Car:
name: str
color: Color

“`

# 内容

`to_dict()`を引数なしで実行すると、`color`はEnumのインスタンスになります。`encode_json=True`を指定すれば、`color`はEnumのvalueになります。

“`
In [39]: c2 = Car(“name”, Color.GREEN)

In [40]: c2
Out[40]: Car(name=’name’, color=

元記事を表示

【Python】標準入力を受け取る方法(単数,複数)

# **はじめに**

個人的なメモ、調べたことをアウトプットしています。

間違いあればご指摘の程いただけますと幸いです。

# 単数の標準入力

### 文字列
`input()` にて標準入力を受け取る。

“`python
input_line = input()
print(input_line)

#—–result——–
>>> apple
# apple
“`

### 整数

`int()` で`input()` の標準入力を整数型にフォーマットし取得。

“`python
input_line = int(input())
print(input_line)

#—–result——–
>>> 24
# 24
“`

# 複数の標準入力

### 文字列

`input()` の標準入力を`split()` で半角スペースの位置で区切って取得。

“`python
a,b = input().split()
print(a,b)

#—–result——–
>>> リンゴ ゴリラ
# リンゴ ゴリラ

元記事を表示

OTHERカテゴリの最新記事