いろいろ備忘録日記

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

python

Pythonメモ-106 (PyPIが2段階認証に対応)(two-factor authentication, 2FA)

概要 やっとPyPIが2段階認証に対応したとのこと。忘れないうちにメモメモ。 セキュリティの観点からも、アカウント持っている人は早めに設定しておいた方がいいですね。 pythoninsider.blogspot.com Account Settings の下の方に 2FA の項目があります。下は…

Pythonメモ-105 (動的にクラスを定義)(type(), types.new_class())

概要 滅多に使わないのですが、たまーに使いたいシーンが出てきたりするのが動的にクラス定義するやり方。 よく忘れるので自分用にメモです。 環境 $ sw_vers ProductName: Mac OS X ProductVersion: 10.14.4 BuildVersion: 18E226 $ python --version Pytho…

Pythonメモ-104 (GithubでTravis-CIを設定)(Python 3.7を使用, pipでwxPythonをインストール)

概要 すぐ忘れてしまいそうなので、自分用にメモ。 自分用のサンプルリポジトリに Travis-CI を導入しようとしていろいろハマったので。。。 Travis CI のサインアップ travis-ci.com なにはともあれ、サインアップしておかないと使えない。github アカウン…

Pythonメモ-103 (round関数の丸め戦略)(python3から変更, 最近接偶数丸め, round ties to even)

概要 知らなかったので忘れないうちにメモメモ。組み込み関数 round() の丸め方が python3 から変更されていたのですね。 docs.python.org stackoverflow.com 最近接偶数丸めに変更となっています。 ja.wikipedia.org python2 の環境が今無いので試していま…

Pythonメモ-102 (特殊メソッドのリスト)(Special Method, Dunder Method, Double Underscore)

概要 特殊メソッドのリストが記載されているページを忘れないようにメモメモ。たまに見返さないと忘れる・・・。 最も個人的に見やすいのは、やっぱり Dive into Python3 diveintopython3-ja.rdy.jp 公式ドキュメントでは、ライブラリの中の3.データモデル…

Pythonメモ-101 (組み込み関数 len の挙動)(文字数, バイト数, __len__, Sized)

概要 組み込み関数 len() の挙動をよくボケて忘れてしまうので、忘れないようにメモ。 docs.python.org [https://docs.python.org/ja/3/reference/datamodel.html?highlight=len#object.len:embed:cite] dunder method の存在をつい忘れてしまいますね。 サ…

Pythonメモ-100 (aiojobs)(asyncio向けのジョブスケジューラライブラリ)

概要 便利なライブラリ見つけたので、忘れないうちにメモメモ。 github.com aio-libsグループのライブラリですね。asyncio向けのジョブスケジューラを提供してくれます。 どんなライブラリなのかは、上のページのREADMEを見たほうが早いのですが、自分用に以…

Pythonメモ-99 (リストの flatten 化)(list, itertools.chain, フラット化)

概要 よく忘れるのでメモ。 リストを flatten したい場合、便利なのが itertools.chain.from_iterableを使うと簡単にフラット化できます。 サンプル """ リストのサンプルです. リストの flatten について REFERENCES:: http://bit.ly/2L7yfq1 http://bit.ly…

Pythonメモ-98 (venvでの仮想環境でのsys.prefixとbase_prefixの違い)

概要 小ネタ。 venvで仮想環境を作って activate した状態だと、sysモジュールの以下のプロパティの値が異なる状態となります。 sys.prefix sys.exec_prefix sys.base_prefix sys.base_exec_prefix 仮想環境だと、baseなしの方が 仮想環境のパス、baseありの…

Pythonメモ-97 (python 3.7 + pyinstaller 3.4 + venv で TypeError が出る件)(expected str, bytes or os.PathLike object, not NoneType)

概要 忘れない内にメモメモ。 Python 3.7 + PyInstaller 3.4 + venv の環境で実行ファイルを作成しようとしたら以下のようなエラーが出ました。 8473 INFO: Building PKG (CArchive) PKG-00.pkg Traceback (most recent call last): ・・割愛・・ File "C:\P…

Pythonメモ-96 (async-timeout)(asyncio 互換のタイムアウトクラス)

概要 便利なライブラリがあったので、忘れないうちにメモメモ。 github.com 非同期処理でタイムアウト処理って書くの面倒なんですが、これ使うと楽ですねー。 サンプル 以下、async-timeout モジュールのちょっとしたサンプルです。 """ async-timeout モジ…

Pythonメモ-95 (正規表現で絶対最大量指定子を指定する)(re, regex, possessive quantifier, 強欲な量指定子, 標準モジュールではサポートされていない)

概要 昨日の devlights.hatenablog.com に引き続き、標準モジュール re でサポートされていない正規表現シリーズ。 忘れない内にメモメモ。 絶対最大量指定子って 名前がすごいイカついですが、概念的にはアトミックグループと同じようなものです。 アトミッ…

Pythonメモ-94 (正規表現でアトミックグループを指定する)(re, regex, atomic groups, 標準モジュールではサポートされていない)

概要 python で re モジュールを使って、正規表現書いていたときにたまたま知ったのでメモメモ。 python の 標準モジュール re では、アトミックグループの指定がサポートされていないんですね。 アトミックグループって何ぞや 正規表現を使って処理をする場…

Pythonメモ-93 (Pythonセキュリティベストプラクティスチートシート)(Python Security Best Practices Cheat Sheet)

概要 素晴らしいチートシートが公開されていたので、忘れない内にメモメモ。 snyk.io 10か条で記載されています。上記のページから、チートシートのPDFのダウンロードが可能なほかに、それぞれの項目についての説明があります。 このチートシートで、Bandit …

Pythonメモ-92 (PEP-448 Additional Unpacking Generalizations)(アンパック演算子の利用方法拡張, python 3.5で追加)

概要 Python 3.5 で追加された PEP-448 についてのメモ。 www.python.org 元々存在している * と ** というアンパック演算子の利用方法を拡張するというものです。 便利なので忘れないようにメモメモ。 どんな内容? 以下のケースでの利用方法が拡張されてい…

Coder.com が VSCode をリモートサーバで動作させるcode-serverをオープンソースで公開 (code-server, vscode on a remote server, github, docker)

概要 VSCodeをブラウザ上で操作して編集できるサービスを公開していた Coder から code-server がオープンソースで公開されてますね。 忘れない内にメモメモ。coderはまだバージョンがalpha版なのですが、先日触っていたらすごくいい感じでした。 ブラウザ上…

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) 基本…