いろいろ備忘録日記

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

python

Pythonメモ-91 (python 3.7 からdictの挿入順序が保証されている)(Dictionaries now ordered, 順番を守ったまま重複を削除する)

概要 Python 3.7 から dict の挿入順序が保持されるというのが、公式に Python 言語仕様の一部であると 宣言されました 。 docs.python.org mail.python.org 公式に宣言されたのは、素晴らしいことです。 順番を守ったまま重複を削除する qiita の方に qiita…

Pythonメモ-90 (vscodeでpython のターミナルとしてIPythonが起動するようにする)(python.terminal.launchArgs, IPython)

概要 以下、自分用のメモです。 ついでに、vscode 内で python のターミナル起動 したときに、IPython 起動するようにする設定。 以下を参考にしました。 stackoverflow.com python.terminal.launchArgsにそのまんま ipython 起動するように設定してやるだけ…

Pythonメモ-89 (vscodeでパッケージ形式になってるpythonファイルをデバッグ起動)(PYTHONPATH, launch.json)

概要 以下、自分用のメモです。 自分のpythonの知識が足りていないだけなのですが、vscode で 以下のような構造 +---.vscode | launch.json | +---lib | versions.py | __init__.py | \---pkg1 main1.py __init__.py があって、main1.pyが例えば以下のように…

Pythonメモ-88 (ターミナルの行列のサイズを取得)(get_terminal_size, terminal_size, 3.3 以降)

概要 ターミナルのサイズが知りたいときがあって、最終的にめっちゃ簡単に取得できたので忘れない内にメモメモ。 最初、以下の gist を発見。 Get current terminal size on Linux, Mac, and Windows · GitHub 結構大変やん・・って思ってたら、以下のコメン…

Pythonメモ-87 (文字列から16進とか2進に変換したり戻したり)(bitstring使用)

概要 いつも忘れてしまう文字列から16進数にしたり2進数にしたりのメモ。 前に似たようなものを記事で書いた記憶があるけど、それすらも見つけることが出来なかったので。。。。 環境設定 いろいろやり方はありますが、最近こういうのは bitstring さん使っ…

Pythonメモ-86 (requirements.txtにて特定のOSの場合のみインストールするようにする)

概要 最近、conda をやめて pip と venv の環境に戻ったのですが、requirements.txt で 特定のOSの場合のみインストールするようにしたいことがたまにあります。 Windows版が存在しないライブラリとかWindows版しか存在しないものなどの場合です。 例を上げ…

Pythonメモ-85 (Evolution of the Jupyter Notebook) (jupyter lab の基本的な使い方について)

概要 jupyter lab の基本的な使い方について、個人的に一番分かりやすかったのでメモメモ。 google drive と github に連携できる extensions の説明があるのが助かりました。 towardsdatascience.com 便利になりましたねー。 $ python -m venv jupyter $ so…

Pythonメモ-84 (python-patterns) (各デザインパターンのpythonでの実装例)

概要 とても有名なリポジトリなのですが、よく忘れてしまっているのでメモメモ。 github.com コードもとても見やすいです。borgパターンの実装はなるほど~ってなりました。 以下に個人メモとして Python関連のリンク 集めていたりしていますので、よろしけ…

VSCodeのターミナルにCmderを使えるようにする

概要 VSCode のターミナルの部分に Cmder を表示して使うためのやり方をメモメモ。 cmder.net Windowsで作業するときに重宝している Cmder さん。とても便利なので VSCode のターミナルでも表示できないかなって情報探してみたらあっさりと見つかりました。…

Pythonメモ-83 (PyInstaller が python 3.7 に対応) (Add support for Python 3.7)

概要 いつもお世話になっている PyInstaller が、最新バージョンの 3.7 に対応したとのこと。 忘れないうちにメモメモ。PyInstaller の バージョン 3.4 から対応となっています。 Python 3.6 の対応は、すごく時間がかかった記憶があったのですが、今回は速…

Pythonメモ-82 (anaconda が python 3.7 に対応) (Python 3.7 Package Build Out & Miniconda Release)

概要 Anaconda / Miniconda が Python 3.7 に対応したものがリリースされたとのこと。 忘れないうちにメモメモ。 www.anaconda.com バージョンアップ python をバージョンアップするには、私は以下のようにしました。 $ conda activate xxxxx $ conda instal…

Pythonメモ-81 (python 3.7 がリリース) (data classes, breakpoint, asyncio.run, 参考情報)

概要 ついに Python 3.7 がリリースされました。 data classes とか breakpoint() とか asyncio.run() とか新たな機能が追加されていますね。 以下、自分が勉強するためのリソースです。 参考情報 Cool New Features in Python 3.7 realpython.com いつもお…

オープンソースライセンスの選び方ガイドページ (Choose an open source license, MIT license, Apache license, GNU GPLv3)

概要 Gigazine さんで以下の記事がアップされてたので、忘れないうちにメモメモ。 gigazine.net 公開されているライブラリを利用させてもらう際にもとても重要なライセンス。しっかり理解していないとあとで問題になったりします。 上記の記事で紹介されてい…

Pythonメモ-80 (dropboxがmypy-Pycharm-pluginをGithubで公開) (mypy, pycharm, プラグイン, jar)

概要 Dropbox が Github 上で mypy-PyCharm-pluginというプロジェクトを公開してくれています。 忘れないうちにメモメモ。 github.com どういうプラグイン? 元々 PyCharm には、独自の検証機能が付いています。(PEP-484) (IDE & Linter Integrations) 基本…

Pythonメモ-79 (ciso8601) (datetime, strptime, parse_datetime, 最速日付解析ライブラリ)

概要 インストール とりあえず動かしてみる 結果 通常の datetime.strptime の場合 ciso8601 備考 概要 ひょんなことで見つけたライブラリ。日付文字列をdatetimeに変換してくれるライブラリなのですが、最速みたいです。 www.peterbe.com githubページは以…

Pythonメモ-78 (relogコマンドを再帰的に実行してblgをcsvに変換) (windows, relog, pathlib, subprocess, with_suffix)

概要 relogコマンド久しぶりに使ったので、忘れないうちにメモメモ。 特定のフォルダ配下にパフォーマンスカウンタで取得したデータが バイナリ(blg) で保存されてて それをcsvに変換したいって事がありました。 どの言語でやっても対して手間は変わらないか…

Pythonメモ-77 (Pyre -- Fast Type Checking for Python) (facebook, 型チェッカー, mypy, そのうちPyCharmでサポートされるかも)

概要 忘れないうちにメモメモ。Facebook が Pyre という型チェッカーをリリースしました。mypy と同じ部類のものですね。 Pyre: Fast Type Checking for Python github.com pyre-check.org インストールは、pip で出来るとのこと。現状、LinuxとMacOSのみ対…

Pythonメモ-76 (Qt for Python) (PySide2から名称変更, ver.5.11がリリースされた, LGPL)

追記 2018/06/14 概要 ライセンスはどうなるのか? どのバージョンのPythonで使えるのか? 配布形態はどうなるのか? モバイルプラットフォームに対しての対応は? 追記 2018/06/14 blog.qt.io Qt for Python 5.11 がリリースされたみたいです。pipからイン…

GraalVM (Oracle, High-performance polyglot VM, いろんな言語に対応)

概要 Oracleさんが GraalVM というのをリリースしたみたいなので、とりあえず情報をメモメモ。 まだ試していないですが。 polyglot VM ってなってる通り、いろんな言語をサポートしているみたいですね。 実験的な段階ですが、ruby や python などもサポート…

Pythonメモ-75 (ライブラリメモ - logging) (getLogger, basicConfig, dictConfig, raven, SentryHandler)

概要 基本パターン (ログレベルの変更) 基本パターン (ファイルへの出力) 基本パターン (フォーマッタの指定) 基本パターン (日付書式の設定) 応用編 (ハンドラの指定) 応用編 (フィルタの指定) 応用編 (フォーマッタの指定) 応用編 (isEnabledFor()の使い方…

Pythonメモ-74 (ライブラリメモ - pathlib) (Path, glob, rglob, iterdir)

概要 pathlibとは pathlibモジュールの各関数 Path インスタンスの作成 (ctor) ファイルやディレクトリの存在確認 (exists) パスの結合 ( / ) HOME ディレクトリの取得 (home()) ファイル一覧取得 (iterdir()) ディレクトリかどうかの確認 (is_dir()) ファイ…

Pythonメモ-73 (condaのチャネルの優先度を操作) (prepend, channels, lowest channel, highest channel)

概要 やり方 condaにおけるチャネルリストの考え方 conda-forge を 低優先度に conda-forge を 高優先度に 現在のチャネルリストの確認 試してみた 参考情報 概要 忘れないうちにメモメモ。 condaを使っていて、チャネルを追加した際に lowest channel と hi…

Pythonメモ-72 (ライブラリメモ - itertools) (zip_longest, chain, groupby, accumulate, islice, tee)

概要 itertoolsとは itertoolsモジュールの各関数 itertools.chain itertools.zip_longest itertools.cycle itertools.repeat itertools.count itertools.accumulate itertools.compress itertools.dropwhile itertools.filterfalse dropwhileとfilterfalse…

Pythonメモ-71 (printデバッグの代わりに使えるライブラリ) (icecream, ic, debug, print)

概要 どんな機能? インストール 基本的な使い方 インポート 値を出力 通ったかどうかの判定用 引数の値をそのまま返してくれる サンプル 概要 とても便利なライブラリ知ったので、忘れない内にメモメモ。 github.com READMEでまず出てくるアイスクリームち…

Pythonメモ-70 (SortedList, SortedDict, SortedSet) (sortedcontainers, ソート済みコレクション)

概要 pythonでソート済みコレクションを扱う際に標準ライブラリで候補に上がるのが heapq モジュール使う queue.PriorityQueue 使う 最後に sorted かけてソートする とかでしょうか。どれも簡単に処理かけるのですが、専用のコレクションあったほうがやっぱ…

Pythonメモ-69 (標準ライブラリだけでLinuxのシステム情報を取得) (Linux System Mining with Python, Useful Blog Post)

概要 忘れないうちにメモメモ。 echorand.me CPUやメモリやネットワークなどの情報を取得するときは github.com を使うことが多いと思いますが、上記のブログ記事では標準ライブラリのみを使っていろいろ取得されています。 勉強になりました。:) 記事中のス…

searchcode (GithubやBitBucketなどのソースを検索してくれるサービス)

概要 知っている人多いのかもしれないけど、自分が忘れないうちにメモメモ。 よくgithubでコード検索して参考にしたりしているのですが、以下のサイトを発見。 searchcode.com コード検索に特化してくれているサイトです。 いろんなところにコード検索してく…

VSCodeでPython開発する際に入れとくべき拡張機能 (Top 10 Visual Studio Code extensions for Python development, Code Runner, Better Comments, GitLens)

追記 2018-06-20 以下の記事にあった autoDocstring って拡張機能がめっちゃ便利でした。これは楽ですね。 www.atmarkit.co.jp 2018-06-20 ついでに以下の記事もあったので、メモ。TODO Highlight はいいですね。 dev.to 概要 Top 10 Visual Studio Code ext…

Pythonメモ-68 (requests-html試してみた) (HTML Parsing for Humans, PyQuery, markdown, requests)

概要 Pythonの鉄板ライブラリ requests を作成した kennethreitzさんが requests-htmlというライブラリを公開されています。 github.com requestsと同じく xxxx for Humans シリーズなライブラリ。やっぱり使いやすいライブラリでした。 markdownに変換でき…

Pythonメモ-67 (JupyterLab試してみた) (JupyterLab is Ready for Users, conda, jupyter lab, PhosphorJS)

概要 JupyterLabのデイリーユースでも利用できるよレベルの版が出た模様。 blog.jupyter.org 以下のように記載されています。 tl;dr: JupyterLab is ready for daily use 以前のJupyter Notebookとはガラっと変わってタブ化などできるようになっているみたい…