Python関連のことを調べてみた2023年01月03日

Python関連のことを調べてみた2023年01月03日

EqualumのExactly Once & All動作検証(3)

# 最終回は可視化ツールを・・・
前回までの検証で、Equalumの**Exactly Once**処理機能を活用し、即時同期先のターゲットDBへの処理を**Append(追記)モード**とする事で、オリジナル側で処理される全てのデータを「**Exactly Once & All**」で記録出来る事を確認出来ました。

具体的な応用範囲については、今後のアイディア次第という形になりますが、限られた動作環境上でも「不死身のDBもどき」が動きましたので、今後の「**データ駆動型DX基盤**」の可能性として是非各種の実装を検討して頂ければと思います。

今回は、一連の検証の最終回として「動作状況のモニターとして利用」したPythonベースのワードクラウドツールを簡単に紹介させて頂きます。

# まずはコードから・・・
ツールとしては、引数で可視化するDBを指定する方式なので、それぞれのDBに対応するコンソール上でコマンドに引数を付与して実行する形になります。

特に「これ!」といった所も無いので(苦笑)取り急ぎ全部を纏めて公開させて頂きます。(過去作品からの多数コピペ作成になりますので、読み

元記事を表示

EqualumのExactly Once & All動作検証(2)

# では、実際に検証作業を行います
前回は、**EqualumのExactly Once & All**の動作検証として、検証過程を制御するPythonベースのツールに関する紹介をさせて頂きました。

今回は、その検証ツールを実際に動かして処理された「オリジナル側」と「Equalumにより即時同期されたターゲット側」のテーブル状況を、SQLクライアントとして広く使われているDBeaverを使って確認して行きたいと思います。
![スクリーンショット 2023-01-01 12.42.53.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/197589/fadd68b8-7ad3-0835-1d6a-ced0b8ca88d8.png)
因みに、今回の検証を行う謎のモチベーションとしては、もしかするとこんな事が出来たら何か良い事が有るかな?・・という「極めて個人的な興味に基づく妄想」によるものです(苦笑)。

# 前回の続きから・・・
まずは、検証用のデータをCDC設定されたオリジナル側のMySQLに連続挿入して

元記事を表示

EqualumのExactly Once & All動作検証(1)

# 新年の初夢。。そうだ、不死身のDBを作ってみよう・・・・・
### Equalumのターゲット(同期先)側の設定が選べる・・・・
今回の検証は、Equalumのノーコード即時同期FLOWを作る際に、ターゲット側の属性設定で「**Append:追記**」タイプを選択した場合に、データの同期がどの様に行われるか?を確認したいと思います。

### 取り敢えず、どんな感じで動くのか・・・
検証ツール自体は、標準的なPython環境で作成されていますので(後ほど参考情報として添付しておきます)、もしも「これ、面白い!」という事で、より高度な仕組みをJava等で作り込まれる場合も、特に大きな壁もなく作業して頂けるかと思いますし、学習系AI処理を絡めた「データのライブ監査処理」的なアイディアも面白いかもしれません。

既に妄想だけはどんどん大きくなっているのですが、今回はシンプルに「オリジナル側で発生しているインサート処理、アップデート処理等の通常DB活動結果を、EqualumのCDC即時同期のプロセス内で強制的に追記処理に変更して処理を続行する」の基本動作に絞って検証を進めていく事にします。

元記事を表示

Autowareの走行履歴を地図上にplotしてみる

# 概要と前提
「自動運転の走行履歴を地図上に描画できれば解析が楽なのでは???」
と思い、緯度経度日付の情報をもとにplotをしていく記事です。[autoware](https://github.com/autowarefoundation/autoware
)の環境構築や座標変換などのツールに関する説明は省かせてください。

緯度、経度、時刻の情報は用意されているものを使用しました。
“`
35.61976132351556 139.77989858836102 2022-09-01 10:20:22.164477
.
.
35.62041580074247 139.77953530534174 2022-09-01 10:20:31.786464
35.621097767605946 139.77921576631155 2022-09-01 10:20:41.405413
35.62177083089212 139.7789073991445 2022-09-01 10:20:51.024529
35.622434542924566 139.77856604237553 20

元記事を表示

PADはPythonが使える人に助けてもらうと機能を追加出来て更に便利になるという実用的な使い方の紹介#2

# はじめに
今回の記事は、前回の記事の続きでもう少し汎用的に使えるようにしていきます。

https://qiita.com/NSsystems_DX/items/67d02fc95cedf8b40cbd

## 先回のおさらい
Pythonが得意な方にお願いして、PythonでPDFを分割するpdfsplit.exeファイルを作成してもらい、PAD側でそれを呼び出して使うという方法を紹介しました。詳しくは、先回の記事をご覧いただけますと幸いです。

### pdfsplit.exeの使い方

1. pdffilesフォルダー直下のpdfsplit.exeと同じ階層に分割対象のPDFを保存する。
2. PADでpdfsplit.exeを実行する。
3. pdffilesフォルダーに分割されたPDFが連番付きで保存され、元のPDFファイルは削除される。

## 今回の記事でやりたい事
先回はPDF分割機能を1つだけPADに追加しましたが、今回はPAD側で3つのPDF関連の機能を追加して外部関数のように使う方法を紹介します。追加する機能は、以下の3つです。今回もPythonが得意な方に

元記事を表示

【AtCoder】ABC242 のA,B,C,D における Python解説

ABC 242 のA,B,C,D 問題を解くために考えたこと、ACできるPython3(PyPy3)コードを紹介します。

この記事は @u2dayo さんの記事を参考にしています。見たことのない方はそちらもご覧ください。とても勉強になります。

また、問題の難易度を表す指標を [Atcoder Problems](https://kenkoooo.com/atcoder/#/table/tsuru1471) から引用しています。このサイトは勉強した問題を管理するのにとてもオススメです。

質問やご指摘はこちらまで
Twitter : [Waaa1471](https://twitter.com/Waaaa1471)

作者プロフィール
Atcoder :[緑色 882](https://atcoder.jp/users/tsuru1471)
20230103 現在

# 目次
[はじめに](#はじめに)
[A.T-shirt](#at-shirt)
[B.Minimize Ordering](#bminimize-ordering)
[C.1111gal password](#c

元記事を表示

vscodeでimportが自動でソートされるのを無効化する(Mac)

# はじめに
こんにちは。takumikanです。

MacでVSCodeを使用していた際に、
importの順番が自動的にソートされてしまうことがあり、
色々と不便だったので、無効化する方法を個人的にメモしておきます。
(何回か調べてたどり着いたので…)

# 手順
1. VSCodeの設定を開き、”**code action**”で検索
1. まずはVSCodeを開く
1. `cmd+,`でSettingを開く (以下のような画面になる)
open vscode setting

2. “Search Settings”の部分で”**code action**”で検索(以下)
serach</p></blockquote>
</blockquote>
<aside class='widget widget-post'>
<div class='tag-cloud-link'>Python</div>
<div class='tag-cloud-link'>VSCode</div>
</aside>
<div><a style='width:100%;' class='btn__link' href='https://qiita.com/takumikan/items/d72eb62cf13124f84b71'>元記事を表示</a></div>
<h3 id=【Python】単ページのPDFを見開きで結合する方法

# 概要
[pypdf](https://pypdf2.readthedocs.io/en/latest/index.html)を使い、下図のような単ページのPDFを見開きで結合する方法を紹介します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1599258/ec55700a-a0b9-dc63-0cce-f6226b314dfa.png)

# 各種インポート
“`shell:インストール
pip install pypdf
“`
“`Python:各種インポート
from pypdf import PdfWriter, PdfReader, PageObject, Transformation
“`
実行時の各種バージョン
| Name | Version |
|:-:|:-:|
| pypdf | 3.2.0 |

:::note warn
注意
pypdf 3.0.0以降のバージョンで、pypdfの変数名などが大幅に変更されているので注意してください。本記事は、p

元記事を表示

2022年にpythonとAWS Lambdaで作ったもの

# 1. まえがき
去年作ったプログラムのまとめ記事となります。

# 2. 競馬関係のTwitter BOT
2022年の初めに、[「AWSではじめるインフラ構築入門」](https://amzn.asia/d/9bYYI0P)の本を購入し、アプリを作成
自分でも作成して見ようと、興味がある競馬関連のTwitterのBOTを4つ作成

・1号機(今日のハクサン地方競馬出走情報Bot)

・2号機(明日のメイショウ冠名馬中央競馬出走情報と今日の競走結果情報BOT)

– 3号機(マカオ競馬の日本人騎手レース結果Bot)

https://twitter.com/macau_keiba/status/16094690722778972

元記事を表示

MtGのフレーバーテキストを解体してマルコフ連鎖を用いて文体模倣してみた

フレーバーテキストってかっこいいよね

“`Jor_Kadeen.py
import numpy as np
import pandas as pd
import csv

file_path = ‘/Users/JorKadeen/default-cards-20221231100504.json’
JorKadeen = pd.read_json(file_path)
sav = JorKadeen[‘flavor_text’]
sav.to_csv(“flavor_texts.csv”)
“`
Scryfall (https://scryfall.com/docs/api/bulk-data) からダウンロードしてきたdefault-cards-20221231100504.jsonっていう全てのカードの全ての情報がまとめてあるCSVファイルからフレーバーテキストの列を抜き出して保存する
“`Jor_Kadeen2.py
csv_file = open(“/Users/JorKadeen/flavor_texts.csv”,’r’)

#列を取得する
a_list = [

元記事を表示

プロ野球直近3年間 球団同士の得点数・失点数の関連(セ・リーグ編)

## 以下手順
1. プロ野球セリーグチーム別の直近3年間の得点数と失点数の平均を取得する。
2. x軸に得点数、y軸に失点数*(-1)の2次元グラフを作成する。
3. その散らばりを偏差値 – 50 の値で球団同士の無向グラフとして描画する。

実行環境:Google Colabratory
使用テキストファイル1:network.txt(各球団の偏差値差)
使用テキストファイル2:coord.txt(各球団の[得点数偏差値,失点数偏差値]の座標)
[上記2種類のテキストファイル](https://drive.google.com/drive/folders/1faanJZcXTTmnUTsVuf5qms9wp6TcM4Q3?usp=sharing)

## 以下コード

### データフレーム作成
“`
import pandas as pd
”’ データフレームを制作(順に2020,2021,2022)
list1= [[ヤクルト得点],[Dena得点],[阪神得点],[巨人得点],[広島得点],[中日得点],
    [ヤクルト失点],[Dena失点],[阪神失

元記事を表示

Beautiful Soupで株の情報を取得する

## 「株とPython ─ 自作プログラムでお金儲けを目指す本」
「株とPython ─ 自作プログラムでお金儲けを目指す本」を読んでいます。
株の基礎知識、PyQueryやseleniumを使ったPythonによるスクレイピングの基礎、SQLiteの簡単な使用例も記載されていて、初心者の私には痒い所に手が届く至れり尽くせりの本です。
残念なのは、いくつかのサンプルコードが、スクレイピング対象のホームページ変更により動作しないものがあることです。
著者さんもサポートページで対応をなさっているようですが、すべての変更に対応していくのはなかなか大変なことと察します。

## get_brands.py
get_brands.pyは、この本のリスト2.

元記事を表示

機械学習ポテンシャルにstress計算を実装する

## はじめに
[前回の記事(機械学習ポテンシャル実装入門)](https://qiita.com/mi-212/items/45d83fd6d6d3487e8abd)では機械学習ポテンシャルを実装する方法について紹介しました。ここではさらに踏み込んで、結晶構造の構造緩和をするために必要なstress計算を実装します。

既存の機械学習ポテンシャルパッケージの多くは、 stress計算を実装していませんが、以下の実装のようにすれば、既存パッケージも最小限の変更でstress計算を実装できます。今回は前回と同様、CGCNNにstress計算を実装します。

## コード
前回作成した`CGCNN`を以下のように変更します。他の部分は使い回しです。

“`python
class CGCNN(nn.Module):
def __init__(
self,
node_dim: int,
edge_dim: int,
cutoff: float = 6.0,
n_layers: int = 3,

元記事を表示

webdatasetの使い方上級編2:shard読み込みをDataParallel (DP)で

これは[webdataset](https://github.com/webdataset/webdataset)の使い方の続編です.

https://qiita.com/tttamaki/items/4dc981a7da02e88029a1

この記事では,data parallel (DP)の学習ループでwebdatasetを使う方法を説明します.
[distributed data parallel (DDP)の方法は別記事で説明しています](https://qiita.com/tttamaki/items/25dd8ada2c3f4c6d0fe2).この記事でDPの説明を見ててから,DDPの記事を見てください.

https://qiita.com/tttamaki/items/25dd8ada2c3f4c6d0fe2

# shardの作成

以下の記事で,multiprocessingを用いて並列ワーカーでshardを作成します.これを使います.

https://qiita.com/tttamaki/items/b8ce15b241e9664444f1

これで

元記事を表示

webdatasetの使い方上級編1:multiprocessingでshard作成

これは[webdataset](https://github.com/webdataset/webdataset)の使い方の続編です.

https://qiita.com/tttamaki/items/4dc981a7da02e88029a1

https://qiita.com/tttamaki/items/463f1de18bbcfcd395f0

webdatasetは複数のshardと呼ばれるtarファイルにデータを固めて読み込むライブラリです.shardの作り方は上の記事に書いたとおりですが,大量のデータをshardに固める場合に並列処理をしたくなります.

ということで,この記事ではshardをmultiprocessingで作成する方法を紹介します.概要は以下の通り.
– 画像がカテゴリ名のサブフォルダ以下に保存されているとします.
– 複数のworkerをmultiprocessingで作成し,shardを作成します.
– 画像の読み込み処理などは別々のworkerで行いますが,shardの書き込みは単一のwriterインスタンスで扱います.
– こうする

元記事を表示

element not interactableを攻略する

Pythonでselenuimを使い、動的なページをスクレイピングしたことのある人ならば、一度は出会ったであろう
“`
elem.click()
“`
等に対する
“`
ElementNotInteractableException: Message: element not interactable
“`
(原因がよくわからないという意味で)凶悪なエラー
こちらを以下で解消できたケースがあった。

“`
from selenium.webdriver.common.action_chains import ActionChains

# 中略

ActionChains(driver).move_to_element(elem).perform()
elem.click()
“`
全てのケースで解決しなさそうだがヒントになれば幸い。

元記事を表示

VSCode + DockerでAtCoderのテスト・提出ができる環境構築【Python,PyPy】

# はじめに
私は2022年9月からAtCoderを始めて、今までサイト内にあるコードテストを使ってPython・PyPy3で問題を解いていました。
しかし、サンプルのテスト・提出をするのに毎度コピー&ペーストするのが煩わしくコマンド一つで完結させたいのと、ローカル環境下に色々インストールすると今後依存関係等で大変になるかと思い、VSCode + Dockerを使って簡単にテスト・提出ができる環境構築を行いました。
環境はWindows10を使用しています。

# 準備
以下のものがインストールされていない場合は事前に準備をしておきます。
細かいインストール手順等は今回のメインではないため割愛させていただきます。

### VSCode
今回はエディターにVSCodeを使用するのでインストールをします。
VSCodeからDockerのコンテナ内に入って作業行うので、`拡張機能「Remote-Containers」`をインストールします。

### Docker
私はWindows10環境なのでDocker Desktop for Windowをインストールしました。

### git

元記事を表示

‘NoneType’ object has no attributeって言われるけど逆に何の属性があるの?

実験
“`python
>>> dir(object())
[‘__class__’, ‘__delattr__’, ‘__dir__’, ‘__doc__’, ‘__eq__’, ‘__format__’, ‘__ge__’, ‘__getattribute__’, ‘__getstate__’, ‘__gt__’, ‘__hash__’, ‘__init__’, ‘__init_subclass__’, ‘__le__’, ‘__lt__’, ‘__ne__’, ‘__new__’, ‘__reduce__’, ‘__reduce_ex__’, ‘__repr__’, ‘__setattr__’, ‘__sizeof__’, ‘__str__’, ‘__subclasshook__’]
>>> dir(None)
[‘__bool__’, ‘__class__’, ‘__delattr__’, ‘__dir__’, ‘__doc__’, ‘__eq__’, ‘__format__’, ‘__ge__’, ‘__getattribute__’, ‘__getstate__’, ‘_

元記事を表示

Anacondaが何か調べた。

Anacondaとは。
=

毎度のことながらとりあえずwikipediaを調べたところ、
「Anaconda は、科学技術計算のためのプログラミング言語 Python と R のディストリビューションで、パッケージの管理と配備を簡素化することを目的としています。このディストリビューションには、Windows、Linux、macOSに適したデータサイエンス用パッケージが含まれています。」

だそうです。まず最初の疑問が、
ディストリビューションって何?ってことですね。

調べてみたところディストリビューションとはまとめフォルダ、みたいな感じです。
用途ごとに必要なライブラリ(numpy, pandas等)であったり、IDE(開発環境、Spyder, Jupyter Notebookなど)をまとめてくれてるのがディストリビューション、みたいです。

その中でAnacondaはpythonとRのデータサイエンスに特化したライブラリなどを200以上まとめてくれてるありがたいディストリビューションみたいです。

さらにはAnacondaをインストールするとはcondaといわれるパッケージマネー

元記事を表示

PythonでGoFデザインパターンのStateパターンを書く

# PythonでGoFデザインパターンのStateパターンを書く

## はじめに
GoFデザインパターンのStateパターンは、オブジェクトの状態を変更するためのパターンです。これをPythonで実装することで、オブジェクトの状態を動的に変更することが可能になります。

## 実装
まず、基本的なStateパターンのクラスを定義します。
“`python
class State(object):
def __init__(self):
pass

def handle(self):
pass
“`

次に、Stateパターンを使用するオブジェクトを定義します。
“`python
class Context(object):
def __init__(self):
self._state = None

def set_state(self, state):
self._state = state

def get_state(self):
return se

元記事を表示

OTHERカテゴリの最新記事