いろいろ備忘録日記

主に .NET とか Go とか Flutter とか Python絡みのメモを公開しています。

2017-01-01から1年間の記事一覧

Pythonメモ-30 (pythonの特殊 else ブロック)(for-else, while-else, try-else)

概要 よく忘れるのでメモメモ。 python には、特殊な else ブロックがあって、for, while, try の部分に else ブロックを持つことができます。 どれも、正常に処理が通った場合に else ブロックに入ります 。 for-else ループが break せずに終了した場合 wh…

Pythonメモ-29 (slice)(特定のシーケンスのrangeを表すオブジェクト, スライスオブジェクト)

概要 よく忘れるので自分用にメモメモ。 pythonの組み込み関数に slice というのがあります。 名前の通り、指定された範囲のスライスを表すオブジェクトを作ってくれます。 通常だと l = list(range(10)) print(l[2:4]) と記述するところを l = list(range(1…

Pythonメモ-28 (contextlib.suppress)(例外発生しても暗黙で飲み込むコンテキストマネージャ)

概要 たまに処理的に例外が発生しても無視しちゃうときがあります。 たとえば、ファイル書き込む処理などで、プロローグで存在するかどうかわからないけどとりあえず削除しとく みたいなものです。通常こういう場合、ファイルが存在するかチェックするか、も…

Pythonメモ-27 (名前空間パッケージ)(PEP420, Implicit Namespace Packages)

概要 Pythonのパッケージの仕組みは、シンプルな考え方でディレクトリ内に __init__.py があればパッケージとして認識してくれます。 なのですが、同じパッケージ名で複数のモジュール構造を作ろうとするとエラーになります。 サンプル 以下のような構造(ラ…

Pythonメモ-26 (sphinx勉強環境を構築)(sphinx, sphinx-quickstart, vs code, reStructuredText, sphinx_rtd_theme)

概要 遅まきながら、sphinx使えるようになりたいって事で まずは勉強用の環境を構築する際のメモ。たぶんその内忘れてしまいそうなので。 環境は mac ですが、windows でもだいだい同じでした。 毎回 make html するのが面倒なので、エディタでプレビューも…

Pythonメモ-25 (pip実行するとエラーになる)(ModuleNotFoundError: No module named 'pip._vendor.requests.adapters', conda, anaconda)

概要 pythonの環境としてAnaconda使っているのですが、最近アップデートすると pipコマンドが実行できなくなりました。環境は Windows です。 以下のエラーが発生するようになりました。 $ pip Traceback (most recent call last): File "C:\Anaconda3\Scrip…

Pythonメモ-24 (f文字列の書式メモ)(PEP498, フォーマット済み文字列リテラル, 数値フォーマット)

概要 python 3.6 で追加されたフォーマット済み文字列リテラル、通称 f-strings の書式について。 よく忘れるのでメモ。 内容 普通に内容表示 word = 'world' f'hello {word}' 'hello world' 文字列長指定(デフォルト) word = 'helloworld' f'{word:20}' 'h…

Pythonメモ-23 (gitpythonでgitを操作)(gitpython, ファイルの日付をコミット日時に)

概要 python から git を操作するライブラリ探していると以下を発見。 github.com やりたいこと(一部愚痴) 一部の世界では、今でも何故かファイルの更新日付が(とても*100)重要です。。。 で、そういうところではリリースする際にソースからモジュールに至…

Pythonメモ-22 (ftputilでサクッとftp処理)(ftputil, a high-level interface to the ​ftplib module)

概要 python には標準で ftplib というモジュールが備わっていて、それを利用してftp処理が作れます。 21.13. ftplib — FTPプロトコルクライアント — Python 3.6.1 ドキュメント が、このftplibは、ものすごく低レイヤなAPIになってて、実際作れるのですが面…

Pythonメモ-21 (PyCharmでgithubのprivate repoをcloneしようとしたらエラー)

概要 ちょっとハマったので、忘れないうちにメモメモ。 github にある プライベートリポジトリ を clone しようとしたら Clone failed: repository 'https://github.com/xxxx/my-private-repo.git/' not found ってエラーが出ました。 情報収集 stackoverflo…

Pythonメモ-20 (Pythonに関する情報のリンク) (あとで読むリスト, Read it later, Python Links)

概要 Pocketに溜まりまくってきたので、ここにメモ。 後で読む。以下順不同。 こうやって見るとPythonの情報って本当にいっぱいある。 自分のPython力量がいかにウンコレベルなのかを実感する・・・。 勉強せねば・・。 ChangeLog 2018/05/15 Githubにリポジ…

Hack フォント (ソースコード用フォント, 見やすい)

概要 最近お気に入りのフォント。忘れないようにメモメモ。 個人的には consolas よりも好みです。 sourcefoundry.org 見た目 こんな感じ。(OS: Windows, IDE: JetBrains Rider 2017.2 EAP, Font: Hack 14pt) 過去の記事については、以下のページからご参照…

macのターミナルでgitのブランチ名表示や補完が効くようにする (git-prompt, git-completion, homebrew)

git

概要 今さらながらに、macのターミナルでgitのブランチ名などを表示できるようにしてみました。 gitは使いだして結構たちますが、大体IDEで作業しているので今までやってなかったという・・・w (Windowsの場合は、Cmder使っているので最初からブランチ名と…

Pythonメモ-19 (pyinstaller v3.3がリリース, python 3.6のサポート追加)

概要 pyinstallerのv3.3がリリースされました。ついに python 3.6 のサポートが追加!! github.com 待ちわびてた人も多いのじゃないでしょうか。 使い方などは今までと同じです。 $ python -V Python 3.6.1 :: Anaconda custom (x86_64) # pyinstaller 入れ…

VisualStudioでdiffとmergeのツールをBeyond Compareに設定するメモ (TFS, TFVC, VisualStudio, Beyond Compare 4)

前回の記事 devlights.hatenablog.com に引き続き、ついでにVisualStudioでの設定についてもメモメモ。 事情により、VSで開発時はgitではなくTFVC使ってますので その設定方法についてです。 設定画面の表示方法 「ツール」→「オプション」 「ソース管理」の…

WindowsでgitのdiffとmergeのツールをBeyond Compareに設定するメモ (Git, GitHub for Windows, Beyond Compare 4, difftool, mergetool)

git

以前、以下の記事で WinMerge に設定するやり方について記述したのですが devlights.hatenablog.com 最近、以下のブログ記事にて Beyond Compare なるツールを知りました。これめっちゃイイです。速攻で購入w(情報感謝 m(_ _)m) (設定ダイアログとかの一部…

Visual Studio Code の 64ビット版 がリリースされてた (July 2017 (version 1.15)から, x64, Windows)

July 2017リリースにて、64ビット版がリリースされてた。 code.visualstudio.com 注意点として、既に32ビット版をインストールしている場合はアンインストールしてから64ビット版をインストールしなさいとのこと。 以下上記ページより。 Note: If you are us…

Pythonメモ-18 (joblib, 手軽に並列処理, multiprocessing, joblib.Parallel)

概要 multiprocessingモジュールよりも手軽に並列処理がサクッと書けるので重宝しているモジュール。 スクリプト作っていると、結構な頻度で大量のデータを一気に処理することが多くなります。 ちょんプロなので、時間かかってもいいのですが、何回も走らせ…

Pythonメモ-17 (psutil, システム情報取得, 空きメモリ取得)

概要 たまに空きメモリ量をスクリプトで取りたいときに、よく忘れるのでメモ。 psutil モジュール自体は、メモリ量だけじゃなくてシステム情報いろいろ取得できる超便利なモジュール。 ネットワークの情報取得とかは重宝してます。 メモリ量は psutil.virtua…

Pythonメモ-16 (paramiko, ssh, UnicodeDecodeError, stdoutとstderrがテキストモード, monkey_patch関数)

概要 python で sshとかsftp処理しようとすると大抵出て来る paramiko モジュールさん。 超便利なのですが、sshでやり取りする処理を書いて 標準出力を受け取ろうとすると、UnicodeDecodeError が発生するときがあります。 なんでなのかというと、paramiko内…

Pythonメモ-15 (pyperclip, クリップボードとやり取り, copy, paste)

概要 最近よく使っている小さくて便利なモジュール。 機能としては、クリップボードとテキストデータをやり取りできるだけなのですが 私の場合、使い捨てスクリプト作っているときって、よく なんか処理する 結果をCSVとかテキストファイルとかに出力 エディ…

ResharperのValue Originが超便利 (Resharper, Inspect, Value Origin, 値の遷移を追跡)

概要 以下のtwitterで知りました。Resharper結構長いこと使ってるくせにしらなかった・・・orz 使ってみると、確かに超便利!今まで、「この変数の値はどこで設定されてて、元ネタはどこから来てる?」って頑張って探してたのが、クリック一発になります。 …

Pythonメモ-14 (ipythonでのctrl+spaceについて, selection mode, フリーズと勘違い)

概要 今までアプリがフリーズしたと勘違いしていた。。。解除方法わかったので忘れない内にメモメモ。 ipython使ってて、VisualStudioとかのクセでCtrl+Spaceをよく押してしまうのですが ipythonで、それをやると一見フリーズしたみたいに何も入力できなくな…

Pythonメモ-13 (collection.namedtupleとtyping.NamedTuple)

概要 前にcollections.namedtupleについての記事を書いていたのですが devlights.hatenablog.com 以下のページをみてたら、typing.NamedTupleというものもあるとのこと。 dbader.org pythonのドキュメントを見ると、collections.namedtupleの型付き版とのこ…

Pythonメモ-12 (Dangerous Python Functions シリーズ, Part 3まで)

概要 まだちゃんとブログ記事呼んでないのですが、忘れないようにとりあえずメモ。 Pythonで便利なんだけど使わない方がいいよっていう内容のシリーズですね。 www.kevinlondon.com www.kevinlondon.com www.kevinlondon.com Part.3までは辿れたんですが、も…

Pythonメモ-11 (ディレクトリの削除, os.remove, os.rmdir, os.removedirs, shutil.rmtree)

概要 未だにちょこちょこ忘れてて、同じ間違いをするので忘れないようにメモ。 Pythonでディレクトリを削除しようとしてて、いつもの調子で os.remove('/tmp/a') とかするとOSErrorが発生します。Windowsだと以下のような感じ。 PermissionError: [WinError …

「Kotlin入門までの助走読本」が公開 (pdf, 日本語資料)

概要 Kotlinユーザグループの方々が共著で「Kotlin入門までの助走読本」というドキュメントを以下のURLで公開してくださってます。感謝 m( )m kotlin-prior-learning-book.pdf - Google ドライブ 表紙が少し◯ライリーちっくな感じで、90ページあります。分か…

Pythonメモ-10 (Online Python Tutor, Visualize Python code, Pythonコードを可視化, Python以外も可能)

概要 知らなかったのでメモメモ。Online Python Tutorというサイト Python Tutor - Visualize Python, Java, JavaScript, TypeScript, Ruby, C, and C++ code execution すごくいい。記述したコードを1ステップ毎に どのような内部状態になっているのかを可…

JetBrainsのIDEでコード補完を大文字小文字無視にする (Case-insensitive code completion)

概要 いつも忘れるのでメモメモ。 多分、どのIDEでも同じ設定だと思います。(IDEAとPyCharmとRiderでは確認) Visual Studioとかに慣れていると、どうしても大文字小文字区別なしに補完が出てきて欲しいので。 やり方 設定画面の「Editor」→「General」→「C…

Rider EAP 22 リリース (マルチスタートアップでのデバッグが可能に, Debugging for compound run/debug configurations)

概要 blog.jetbrains.com 以前から、複数プロジェクトの実行は出来ていたんですが、VisualStudioみたいに、複数のプロジェクトにまたがってデバッグが出来なかったのがちょっと残念だったのですが、ついに出来るようになりました!まってたよー。 Xamarin iO…