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

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

ngrokを使用したローカル環境でのSlack bolt(Python)の開発

今回はngrokを使用し、ローカルでSlack boltの開発環境を構築してみました。自分のメモ用に記事を投稿します。
## ngrokのセットアップ(MacOS) 
ngrokユーザ登録し、[ngrok dashboard](https://dashboard.ngrok.com/get-started/setup/macos)を開きます。

Setup & Installationの手順に従って、ngrokをインストール、ngrok.ymlファイルにauthtokenを追加します。
“`
brew install ngrok/ngrok/ngrok
ngrok config add-authtoken xxxxxxxxxxxx
“`
ターミナルを開き、実行可能かを確認してみます。
“`
ngrok http 8080
“`
下記が出力されことを確認できます。ForwardingにあるURLは外部に公開されますが、実行する度にURLが変わり毎回Slack boltの設定を変更しないといけません。
![ngrok.png](https://qiita-image-store.s

元記事を表示

TODO: とかアノテーションコメントについてまとめてみた

## はじめに

コメントを種類ごとに分類できる**アノテーションコメント**を採用しています。
使っている内に経験的なベストプラクティスが自分なりにつかめてきたのでまとめてみました。

### この記事でわかること

– アノテーションコメントの使い方と例がわかる

### この記事の対象者

– アノテーションコメントを使いたいエンジニア

### 動作環境・使用するツールや言語

– Python3
– その他言語

## アノテーションコメントとは
コメントの先頭に`TODO: `とかをつけて分かりやすくする試みです。

– コメントにメタデータを追加できる
– コードの欠陥が分かりやすくなる

## よく使っている記法と意味

使って欲しい順に並べてみました。
レビュアー視点で思うことも書いています。

|記法| 意味 | 思うこと |
|:-:|:-:|:-:|
|INFO: |関数の動作説明などの情報|あるとなんだかんだ嬉しい
(良い命名で省略できるかも)|
|NOTE: |**なぜこうしたのか、こう考えたのか**という情報|**コードからは読み取れな

元記事を表示

Databricks Auto Loader にて parquet をソースにする場合における timestamp の hive スタイルのパーティションの値を取得できない事象への対応方法

## 概要

Databricks Auto Loader にて parquet をソースに(`cloudFiles.format`オプションに`parquet`指定)する場合における timestamp の hive スタイルのパーティションの値を取得できない事象への対応方法を共有します。2024/06/04 時点で仕様であるかの確認を実施できておりませんが、暫定対応方法を共有します。

Spark の処理にて`partitionBy`を指定して書き込むと、Timestamp 型のカラムが`ingest_timestamp=2020-01-02 12%3A34%3A56`という形式で書きこまれます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/24031/202b2857-413f-5ca5-7a16-db2e318a8c4b.png)

Spark 書き込み時の形式のディレクトリから、 Databricks Auto Loader にて取り込むと`NULL`となってしまいます。

元記事を表示

DjangoのHTMLファイルで動画ファイルを識別して表示させるには

###### HTMLでの動画ファイルを識別するために私が使ったものを紹介します
###### 技術検証中にまとめたため、コメントアウトは気にしないでください

## カスタムフィルター

カスタムフィルターとはテンプレート内でDBから受け取ったデータを変換・整形するための仕組みです。今回はmp4ファイルとmovファイルを識別するために使用しました。

## カスタムフィルターの導入方法

カスタムフィルターを導入するためにはまず下の図のようにアプリケーションファイル内に[templatetags]フォルダーを作成し、その中に__init__.pyとcustom_filters.pyという2つのPythonファイルを作成します。
ここでの__init__.pyはフォルダー内のPythonファイルを認識させるためのものです。

![スクリーンショット 2024-06-03 145344.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3627826/6123681a-3e4b-e4e0-382e-c

元記事を表示

GPT (Cursor) による、設計からの多言語(Javascript, Python)自動コーディング デモ

GPT (Cursor) による、設計からの多言語(Javascript, Python)自動コーディング デモ です。

### 設計

下記による設計

– openapi
– mermaid – classDiagram

[GitHub リポジトリ](https://github.com/9tqP/GPT-AutoCoding-Demo)

## コード生成

prompt には下記を書き込んでいる

– タスク
– mermaid から Javascript・Python への変換例

### Javascript コードの生成

– Cursor で `architecture_001.md` を開く。
– Chat で prompt_js_001 をメンション `@prompt_js_001.md`。
– プロンプト実行で、GPT-4 で設計からコードが生成される。

### Python コードの生成

– GitHub Copilot, Cursor で `architecture_001.md` を開く。
– Chat で prompt_js_001 をメンション

元記事を表示

クラウドストレージサービスを自作した話

# はじめに
結構前に作りました。当時は金がなく、google driveを契約できるほどの経済力が全くなかったのですが、その時思いました。無いなら自分で作ってしまえばいいと。

## ハードウェア
都合のいいことに余っていたpcパーツがありました。流石に全て揃っていたわけではないのでCPUとマザーボードは買い足しました。これらのパーツでサーバーとなるPCを新たに組み、ハードウェアを用意することができました。4TBのHDDが転がっていたのも大変都合がよかった。

## 構想
Djangoを使ってシステムを構築し、bootstrapでいい感じに整えようと考えました。
アカウント毎のデータの管理、データ残量、アップロード制限、パスワードの変更、アカウントの新規作成、pdfファイルのプレビュー、動画ファイルのサムネイル作成自動化、サムネイル画像のデータサイズの自動縮小、スクロールによるページング、レスポンシブ対応、など諸々の機能を実装する。

# 完成後のホーム画面
![無題402_20240603141831.JPG](https://qiita-image-store.s3.ap-n

元記事を表示

(2*3*5*7*11*13)**10の10進数での桁数「2014 一橋大学 後期 【3】」をChatGPTとsympyとWolframAlphaでやってみたい。

https://qiita.com/mrrclb48z/items/daa6f757138ee32a1f0e

# オリジナル
・大学入試数学問題集成 様>【3】テキスト
>犬プリの世界さんの解答(PDF)へ

https://mathexamtest.web.fc2.com/2014/201410272/2014102720200mj.html#top-0203

・youtube (0:00〜1:43:17)
2014 一橋大学 後期【3】(39:30〜1:08;34)
>…二項定理は評価にも使える。
>…不等式にも使える。

# オリジナル様の方法で
・勉強中? 私はあきらめました。

# ChatGPT-3.5先生へ

大学入試数学問題集成 様> 【3】テキスト

・ページのソースを表示です。MathMLです。
 省略しようと思いましたが、大学入試数学問題集成 様 の全文から必要部分の抜粋です。
“`


2014-1

元記事を表示

Python:二次元リストを作る際の注意点

# 二次元リストを作る際の注意点

皆さん、二次元リストを書く際、どのように記述していますか?
恐らく多くの人が以下のようにfor文を用いて記述していると思います。

“`py
fields=[[0 for _ in range(4)] for _ in range(4)]
print(fields)
# [[0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0]]
“`

ただ、二次元リストを作るだけなら以下のようにも記述できますよね。

“`py
fields=[[0]*4]*4
print(fields)
# [[0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0]]
“`

リストの中身にもよりますが、状況によっては下のコードの方が、短く済みそうですよね。
しかし、実は下のコードは二次元リストとしての役割を果たしていません。
試しにリストの中身を更新してみます。
まずは、for文で書いた二次元リストから更新します。

“`py
fields=[[0 for _

元記事を表示

matplotlibライブラリ pyplotモジュール:誰でも簡単にできるグラフ作成ガイド

### はじめに

Pythonはデータ分析や可視化において非常に強力なツールを提供しています。その中でも、`matplotlib`ライブラリの`pyplot`モジュールは、グラフ作成において基本的でありながら多機能なツールです。本記事では、初めて`pyplot`を使用する方のために、導入方法と簡単な使用方法について解説します。

### 1. `matplotlib`のインストール

まずは`matplotlib`をインストールします。Pythonのパッケージ管理ツールである`pip`を使用します。

“`bash
pip install matplotlib
“`

### 2. 基本的な使用方法

インストールが完了したら、実際に`pyplot`を使って簡単なグラフを作成してみましょう。以下は、折れ線グラフを作成するための基本的なコードです。

“`python
import matplotlib.pyplot as plt # pyplotをインポート

# データを準備
x = [1, 2, 3, 4, 5] # x軸の値
y = [1, 4, 9, 16, 25]

元記事を表示

既存のDataFrameを加工したデータをDataFrameに追加

## はじめに
既存のDataFrameを加工したデータをDataFrameに追加 に関しての備忘録。

## 🦁**結論**🦁
既存のDataFrameを加工したデータをDataFrameに追加する場合には加工したデータをDataFrameに置換してから使う方が良い。

元データをそのまま保存できるなどの理由からDataFrame同士の結合の方が良い。

:::note info
押さえておくべき点
* appendメソッドにて既存のDataFrameに別のDataFrameを追加する。
* concatメソッドにて複数のDataFrameできる。
* 新しいデータのインデックスが重複しないようにする必要がある。
:::
***

:::note warn
利用シーン
* データの集計: 月ごとのデータを年度ごとのDataFrameに追加。
:::
***

:::note alert
注意点
* 大量のデータを追加する場合、処理時間が長くなることがある
* インデックスが重複するとデータの整合性が崩れる。
* 追加するデータの型が一致しているか確

元記事を表示

OpenAIの最新モデルGPT-4oをWeb APIで呼び出して質問に答えてもらったり画像の内容を説明してもらったりした

[Supership](https://supership.jp/)の名畑です。アニメ「[うる星やつら](https://uy-allstars.com/)」がついに[最終章を迎えました](https://www.youtube.com/watch?v=Zry21gGPe4s)。別れは寂しいけれどしっかり堪能させていただきます。

## はじめに

[OpenAI](https://openai.com/)が5月にリリースしました[GPT-4o](https://openai.com/index/hello-gpt-4o/)(oはomni)はその品質の高さから、かなりの衝撃を以て様々なメディアに取り上げられました。