Code
- pycodestyle
- pydocstyle
- autopep8
aggressiveなど - flake8
- 非奨励
pep8-ja
pycodestyleに変わりました。 PEP 8 -- Style Guide for Python Code(URL)
Docstring
Docstring Conventions
PEP 257
Naming
https://inflection.readthedocs.io/en/latest/
os
File Size
import os
path = '/etc/hosts'
print(os.path.getsize(path))
print(os.stat(path))
cf. os.listdir()
or os.scandir()
URL
format
https://docs.python.org/3/library/string.html#format-specification-mini-language
>>> '{:,}'.format(1234567890)
'1,234,567,890'
>>> import datetime
>>> d = datetime.datetime(2010, 7, 4, 12, 15, 58)
>>> '{:%Y-%m-%d %H:%M:%S}'.format(d)
'2010-07-04 12:15:58'
とかいろいろ
pip
pipの内容を一括更新。
※-U
は、パッケージを最新にするため、django1.11系からdjango2.1系へ依存関係も含め更新されるため
用途に合わない場合は使わないほうがよい。
pip list | awk '{ print $1 }' | xargs pip install -U # pip old
pip freeze --local | awk -F '==' '{ print $1 }' | xargs pip install -U
並行処理
- 逐次: Sequential
- 並列: Parallel
- 並行: Concurrent
メモ
menu = asyncio.run
task = asyncio.create_task( co-routine )
manu = await task
result = await asyncio.gather( *tasks )
async with asyncpg.create_pool(dns) as pool:
tasks = [ pool.fetchrow("SELECT *****", な感じ
done, pending = await asyncio.wait(cors)
done, pending = loop.run_until_complete(parallel_by_wait())
for d in done:
dr = d.result()
------
asyncio.Queueでqueueを作成
- coroutine: async関数の返り値はcoroutine
- Future: jQueryにおけるDeferred的なオブジェクト
- set_resultやset_exceptionを使って実行結果を伝播させることができる
- Task: Futureのサブクラスで、実行を管理
- Semaphore: 並列での実行数を制御
matplotlib
全体概要の参考.
Font Settings.
設定ファイルの場所
import matplotlib
matplotlib.matplotlib_fname()
Fontの確認
fc-list
or
import matplotlib.font_manager
matplotlib.font_manager.findSystemFonts()
font.serif
やfont.sans-serif
に、Ricty Diminished
を追加。
Cache関連.
~/.cache/matplotlib
matplotlib.font_manager._rebuild()
Matplotlib in a web application server
SampleDataset
UnitTest
- factorybody
- faker
テストデータ作成ライブラリ
Package
pip broken
wget https://bootstrap.pypa.io/get-pip.py
python get-pip.py
pip install -r requirements.txt
PEP8
flake8でokで、普通に実行できる(3.9)のにdind(docker image python3.8)で invalid syntax
とか
https://www.python.org/dev/peps/pep-0008/#maximum-line-length
URL
https://packaging.python.org/guides/migrating-to-pypi-org/
2017年7月3日からURLが変更しpython setup.py register
が不要。
- PyPI
https://pypi.python.org/pypi から https://upload.pypi.org/legacy/
- TestPyPI
https://testpypi.python.org/pypi から https://test.pypi.org/lecagy/ に変更
- TestPyPI
https://testpypi.python.org/simple/ から https://test.pypi.org/simple/