日々精進

新しく学んだことを書き留めていきます

IT

pythonからエクセルファイルを出力すると「AttributeError: 'Workbook' object has no attribute 'get_worksheet_by_name'. Did you mean: 'get_sheet_by_name'?」エラー

IT

原因はopenpyxlとxlsxwriterを両方インストールしてしまっていることだった。 xlsxwriterをアンインストールしたら直った。 参考: stackoverflow.com

pythonで、あるエクセルファイルのシートを別のエクセルファイルにコピーする

IT

openpyxlにはシートをコピーするメソッドは用意されていないので、セルの値や書式などをコピーするメソッドを駆使してシートのコピーを実現する必要がある。 以下のコードを参考にしてシートコピーが実現できた。ありがたや~。 参考: stackoverflow.com

Visual Studio Codeでpytest-covを使うとbreakpointが効かなくなる

IT

ローカルでpytestを実行するときは--covを付けないようにして対応した。こういう罠はやめてほしい・・ 参考: github.com

VSCodeで複数ファイルを一括でフォーマットする

IT

Format FilesというExtensionを入れるとできる。globパターンを書かないといけないのでちょっと面倒だけど・・PyCharmみたいにIDEで選択したフォルダ下のコード全部フォーマットの方が楽だなあ。 stackoverflow.com

mypyとpyrightの比較

IT

ざっくりですが・・ mypy 比較的厳密にチェックする。 pyright なるべく型推論してくれるので、type hintが少なくて済む 動作がmypyより速い VSCode拡張のpylanceがバックエンドとして使っているので、VSCodeとCIサーバで同じチェックをすることが容易 AIモ…

pyright,pytest,flake8をpyproject.tomlで設定する

IT

掲題の対応をする上でちょっと困ったところをメモ。 flake8はpyproject.tomlに対応してないので、別途パッケージをインストールする必要がある。 参考: qiita.com pytestの設定をtomlに書く場合のセクションは[tool.pytest.ini_options]にする。 参考: doc…

Excelのピボットテーブルで日付を軸にすると、月単位などで集計されてしまう

IT

「グループ解除」で集計されなくなる。詳細は以下参照。 Excel ピボットテーブルで日付が年や月になる場合の対処 | システム開発メモ 勝手に集計するのやめてほしい。。

pd.read_excelでエクセルファイルを読み込むと「ReadOnlyWorksheet object has no attribute defined_names」エラー

IT

原因はopenpyxl3.1.1のバグ。バージョンを3.1.0に戻すと直った。 参考: levelup.gitconnected.com

Inspiron 3910はATX/SFX電源ユニットに換装できない

IT

Inspiron 3910のマザーボードの電源コネクタはDELL独自仕様のため、市販のATX/SFX電源を使えないらしい。。(ソースは下記)ホント独自仕様やめてほしい。 www.dell.com ATXの24ピンコネクタをDELLの8ピンに変換するケーブルもあるようだが、もう生産終了し…

Jestでテスト実行時にconsole.logでログが出ない

IT

Jestでテストを実行するコマンドに--silent=falseオプションを付けないとconsole.logでログは出ないらしい。まじか。 参考: stackoverflow.com

prismaのshemaを変更すると「Field does not exist on enclosing type」エラーが出るようになった

IT

他のブランチの変更を取り込んで結構大きくprisma schemaが変わった後、typescriptのprisma clientコードを生成し、 dbにアクセスするコードを実行すると掲題のエラーが出た。 原因はprismaの古いcacheが残っていたため。以下を参考に.prismaという名前のフ…

DBのテーブルにcolumnを追加するDDLを実行すると「ERROR: column "xxx" of relation "yyy" contains null values」エラー

IT

原因は、すでにデータが入っているテーブルにnot null列を追加しようとしたが、デフォルト値が設定されていないので既存の行の新しく追加する列の値がnullになってしまい、エラーになっていること。 データを一度全部消してからDDLを実行すると直った。

VSCodeでテストコードを書いてたらdebugボタンが出たり消えたりして鬱陶しい

IT

VSCodeの設定で "editor.codeLens": false を設定するとdebugボタンが出なくなった。これでコードを書いている時に行がガクガクして鬱陶しい問題から解放される・・ 参考: github.com

VSCode&Jestでテストを実行すると「too many arguments」エラー

IT

原因はdescribeの第一引数とtestの第一引数の文字列が同じか、一方が他方に含まれることだった。 例えば、以下のようにどちらも"comment1"になっているとエラーになる。 describe("comment1", () => { test("comment1", async () => { ... }); }); 謎の挙動…

単体テストでPrismaをMockするときに$useを使ってはいけない

IT

prismaの$use機能を使うと、DBに実際はアクセスせずMockデータを返すことができる。 www.prisma.io ただ、この機能を使う場合、PrismaClientのインスタンスを作る必要があり、作った時にDBに接続しにいって、テスト環境でDBが無くてエラーになることがあった…

VSCodeでエディタ上のコードをすべて折りたたむ

IT

Ctrl+K, Ctrl+0 ですべて折りたたむ。最近VSCode触ってるけどIntelliJ系のIDEの方が好きだなぁ。 参考: stackoverflow.com

pgadminでクエリを実行するとrelation does not existエラー

IT

テーブル名を"でくくると直った。 参考: buralog.jp

VSCodeでテストコードを書いていると「debug」ボタンが出たり消えたりして鬱陶しい問題

IT

ボタンが出ると1行全体が下がるので、書いてる行が上がったり下がったりしてすごい鬱陶しい・・ VSCodeの設定で "editor.codeLens": false を設定するとdebugボタンが出なくなった。 参考: github.com

yarnタスクが固まる問題

IT

急にyarn buildなどのタスクを実行するとterminalが固まるようになった。 git stashをしてもやはり固まる。 原因はいつの間にかcore dumpが吐かれていたことだった。プロジェクトフォルダにcore.xxxxのようなファイル名で4GBのファイルができていた。 これを…

VSCodeでremote container内にapolloserverを起動した時に、ローカルのブラウザから接続できない

IT

EC2上にremote containerを立ち上げ、そこに接続して開発をしている場合。 EC2にsshトンネルを掘って接続している。 あるタイミングまでは普通に開発用サーバをコンテナで起動してローカルのブラウザからアクセス出来ていたが突然出来なくなった。 原因はわ…

windows11 homeでext4.vhdxの容量を削減する

IT

WSL2を使っていると、ext4.vhdxというファイルの容量がすごく大きくなることがある。これを小さくする方法としてOptimize-VHDを使う方法がよく紹介されているが、これはHyper-Vの機能の一つらしく、Hyper-VはWindows11 Proでないと使えないのでWindows11 Hom…

VSCodeのターミナルで入力が出来なくなった場合の対処法

IT

ターミナルの右上の+ボタンをクリックして新しくターミナルを開き、その後既存のターミナルを削除すればよい。 参考: www.javadrive.jp

/var/lib/docker/overlay2の容量が大きいので削減したい

IT

/var/lib/docker/overlay2の容量をdu -sh /var/lib/docker/overlay2で調べたところかなり大きかったのでびっくりしたが、以下によるとduでは正確な容量を調べられないらしい。 www.creationline.com /var/lib/docker/overlay2の容量を手っ取り早く削減するた…

pythonでdecoratorを付けたメソッドの戻り値の型チェックができるようにする

IT

以下のようにdecoratorを定義すると、@timerを付けたメソッドの戻り値の型がAnyになってしまい、不便。 def timer(fn) : from time import perf_counter def inner(*args, **kwargs): print(f'start {fn.__name__} {CommonUtil.now_datetime_for_log()}') Co…

gradleでインストールしたライブラリが依存しているライブラリがインストールされない

IT

原因は依存関係がoptionalだったため。例えばspring-data-redisだと、jedisは依存ライブラリではあるが(optional)と記載されている。 https://mvnrepository.com/artifact/org.springframework.data/spring-data-redis/2.7.2 optionalは複数のライブラリのど…

springfox2.10.xは使ってはいけない

IT

以下のIssueでcommitterが2.10はbuggyなので使わないでと言っている。じゃあリリースバージョンにbetaとかつけてほしい。。 github.com 3.0.0の使用を推奨しているが、もう2年ぐらいリリース止まっているので別のライブラリに乗り換えた方がよさそう。

JUnitのassertThrowsで例外がthrowされることをテストしたらエラーメッセージがログに出る

IT

以下のように、assertThrowsでExceptionがthrowされることをテストする場合。 assertThrows(Exception.class, () -> myObj.method()); 想定通りの例外がthrowされた場合でも以下のようなエラーメッセージがログに出るので邪魔くさい。 Exception in thread "…

WSL2を再起動する度に/etc/resolve.confが消える

IT

以下のIssueで報告されている現象。これが起きると、インターネットと通信出来なくなるので困る。 github.com まだ未解決のようだが、一旦workaroundとして、以下を実行すると消えなくなる。 sudo sh -c "echo 'nameserver 8.8.8.8' > /etc/resolv.conf" # …

JUnitで例外がthrowされるケースのテストをしたら「Exception in thread "pool-1-thread-1" java.lang.RuntimeException」が出て鬱陶しい

IT

以下のような感じで例外がthrowされることをテストした場合。 assertThrows(Exception.class, () -> obj.method()); 想定通りのExceptionが出てテストが成功する場合でも、「Exception in thread "pool-1-thread-1" java.lang.RuntimeException」みたいなエ…

gradlew dependenciesを実行した時にorg.hamcrest:hamcrest-core:1.1 -> 1.3のように表示される->の意味

IT

以下のように表示されていたら、mockito-core:1.9.5はhamcrest-core:1.1に依存しているが、他のライブラリの依存関係から実際にインストールされているバージョンは1.3になっているよという意味。 +--- org.mockito:mockito-core:1.9.5 | +--- org.hamcrest:…