SlideShare une entreprise Scribd logo
1  sur  39
Télécharger pour lire hors ligne
docstring !!
!1
• @cocodrips
• Jenkins 

→ 

→AI
• :

PyDataTokyo 

2
1. docstring
2. docstring
3. docstring
. docstring
docstring
• Python
4
def f(arg1):
""" """
pass
docstring
5
>>> help(f)
Help on function f:
f(arg1)
• docstring help 

docstring
• Jupyter Notebook ? 

help
6
docstring
•
• 

• type 

IDE (IDE )
•
7
docstring
9
def func(arg1, arg2):
“”" *1 *
0
Parameters
----------
1 :
1
2 :
2
Returns
-------
"""
10
def func(arg1, arg2):
“”" *1 *
0
Parameters
----------
1 :
1
2 :
2
Returns
-------
"""
1
※
doc
11
•
def func(arg1, arg2):
“”” ””"
12
• TypeHint
def func(arg1: int, arg2: str) -> bool:
"""
Parameters
----------
1 : 1
2 : 2
"""
13
• Class docstring
class Hello:
"""
"""
14
• module(.py ) docstring -
"""
"""
docstring
3
• ReStructuredText
• NumPy Style
• Google Style
15
docstring - ReStructuredText
16
def func(arg1, arg2):
"""
:param arg1: 1
:type arg1: 1
:param arg2: 2
:type arg2: 2
:return:
:rtype:
"""
docstring - NumPy style
17
def func(arg1, arg2):
"""
Parameters
----------
arg1 : 1
1
arg2 : 2
2
Returns
-------
"""
• 

• 

•
docstring - Google Style
18
def func(arg1, arg2):
"""
Args:
arg1 ( 1 ): 1
arg2 ( 2 ): 2
Returns:
:
"""
•
•
19
• ReStructuredText
•
• NumPy Style
•
•
• Google Style
•
•
VS Code: autoDocsring
20
PyCharm:
21
docstring
Sphinx
23
•知的で美しいドキュメント 

( )
• Sphinx Web 

Flask
24
$ git clone git@github.com:pallets/flask.git
# 依存ライブラリのインストール
$ python seup.py install
25
sphinx-apidoc import 



!!!
sphinx-apidoc
26
# 設定ファイルを作る & ドキュメントの雛形を生成
$ sphinx-apidoc -F -a -o ./doc ./flask
doc
├── Makefile
├── _build
├── _static
├── _templates
├── conf.py
├── flask.rst
必要に応じて
設定ファイルを書き換え
!27
flask package
=============
…
Submodules
----------
flask.app module
----------------
.. automodule:: flask.app
:members:
:undoc-members:
:show-inheritance:
flask.app
flask.app
/
28
$ cd doc
$ make html
$ open _build/html/index.html
!29
^ω^
30
…
• Quick Start
•
•
32


33
34
: docstring
• 

(Google/Numpy)
• 

docstring ?
• docstring PR 

↑↑↑↑↑↑ ↑↑↑↑↑↑
36
doc-cov
•
37
$ doccov flask/flask -fmc
class 38 / 45 84.44%
module 19 / 19 100.00%
function 356 / 504 70.63%
doc-cov
Pull request
38
# CI内で以下を実行
$ doccov <project> -fmc --output csv > doccov.csv
$ doccov-report doccov.csv
Pull Request / Issue

39
$ pip install doc-cov

Contenu connexe

Tendances

Active Learning 入門
Active Learning 入門Active Learning 入門
Active Learning 入門
Shuyo Nakatani
 
Statistical Semantic入門 ~分布仮説からword2vecまで~
Statistical Semantic入門 ~分布仮説からword2vecまで~Statistical Semantic入門 ~分布仮説からword2vecまで~
Statistical Semantic入門 ~分布仮説からword2vecまで~
Yuya Unno
 

Tendances (20)

Active Learning 入門
Active Learning 入門Active Learning 入門
Active Learning 入門
 
DockerコンテナでGitを使う
DockerコンテナでGitを使うDockerコンテナでGitを使う
DockerコンテナでGitを使う
 
DDD x CQRS 更新系と参照系で異なるORMを併用して上手くいった話
DDD x CQRS   更新系と参照系で異なるORMを併用して上手くいった話DDD x CQRS   更新系と参照系で異なるORMを併用して上手くいった話
DDD x CQRS 更新系と参照系で異なるORMを併用して上手くいった話
 
Tackling Complexity
Tackling ComplexityTackling Complexity
Tackling Complexity
 
SAT/SMTソルバの仕組み
SAT/SMTソルバの仕組みSAT/SMTソルバの仕組み
SAT/SMTソルバの仕組み
 
イミュータブルデータモデルの極意
イミュータブルデータモデルの極意イミュータブルデータモデルの極意
イミュータブルデータモデルの極意
 
ChatGPT 人間のフィードバックから強化学習した対話AI
ChatGPT 人間のフィードバックから強化学習した対話AIChatGPT 人間のフィードバックから強化学習した対話AI
ChatGPT 人間のフィードバックから強化学習した対話AI
 
AWSではじめるMLOps
AWSではじめるMLOpsAWSではじめるMLOps
AWSではじめるMLOps
 
Statistical Semantic入門 ~分布仮説からword2vecまで~
Statistical Semantic入門 ~分布仮説からword2vecまで~Statistical Semantic入門 ~分布仮説からword2vecまで~
Statistical Semantic入門 ~分布仮説からword2vecまで~
 
Redisの特徴と活用方法について
Redisの特徴と活用方法についてRedisの特徴と活用方法について
Redisの特徴と活用方法について
 
暗号技術の実装と数学
暗号技術の実装と数学暗号技術の実装と数学
暗号技術の実装と数学
 
【メタサーベイ】基盤モデル / Foundation Models
【メタサーベイ】基盤モデル / Foundation Models【メタサーベイ】基盤モデル / Foundation Models
【メタサーベイ】基盤モデル / Foundation Models
 
「世界モデル」と関連研究について
「世界モデル」と関連研究について「世界モデル」と関連研究について
「世界モデル」と関連研究について
 
PostgreSQLアンチパターン
PostgreSQLアンチパターンPostgreSQLアンチパターン
PostgreSQLアンチパターン
 
深層学習の非常に簡単な説明
深層学習の非常に簡単な説明深層学習の非常に簡単な説明
深層学習の非常に簡単な説明
 
Machine learning CI/CD with OSS
Machine learning CI/CD with OSSMachine learning CI/CD with OSS
Machine learning CI/CD with OSS
 
Cognitive Complexity でコードの複雑さを定量的に計測しよう
Cognitive Complexity でコードの複雑さを定量的に計測しようCognitive Complexity でコードの複雑さを定量的に計測しよう
Cognitive Complexity でコードの複雑さを定量的に計測しよう
 
「みもふたもない」論文投稿必勝法
「みもふたもない」論文投稿必勝法「みもふたもない」論文投稿必勝法
「みもふたもない」論文投稿必勝法
 
Marp Tutorial
Marp TutorialMarp Tutorial
Marp Tutorial
 
Rust製の全文検索エンジンライブラリ(tantivy bayard)を試してみた
Rust製の全文検索エンジンライブラリ(tantivy bayard)を試してみたRust製の全文検索エンジンライブラリ(tantivy bayard)を試してみた
Rust製の全文検索エンジンライブラリ(tantivy bayard)を試してみた
 

Plus de cocodrips

Plus de cocodrips (10)

Python仮想環境構築の基礎と ツールの比較
Python仮想環境構築の基礎と ツールの比較Python仮想環境構築の基礎と ツールの比較
Python仮想環境構築の基礎と ツールの比較
 
スマホでDeepLearning実践入門(α版)
スマホでDeepLearning実践入門(α版)スマホでDeepLearning実践入門(α版)
スマホでDeepLearning実践入門(α版)
 
チームメイトのためにdocstringを書こう! pyconjp2019
チームメイトのためにdocstringを書こう! pyconjp2019チームメイトのためにdocstringを書こう! pyconjp2019
チームメイトのためにdocstringを書こう! pyconjp2019
 
Python update in 2018 #ll2018jp
Python update in 2018 #ll2018jpPython update in 2018 #ll2018jp
Python update in 2018 #ll2018jp
 
C++と仲良くなるためのn問 ~ポインタ編~ #ladiescpp
C++と仲良くなるためのn問 ~ポインタ編~ #ladiescppC++と仲良くなるためのn問 ~ポインタ編~ #ladiescpp
C++と仲良くなるためのn問 ~ポインタ編~ #ladiescpp
 
Simple is better than complex. ~私がPythonを愛する理由~
Simple is better than complex. ~私がPythonを愛する理由~Simple is better than complex. ~私がPythonを愛する理由~
Simple is better than complex. ~私がPythonを愛する理由~
 
ポインタ渡しと参照渡し
ポインタ渡しと参照渡しポインタ渡しと参照渡し
ポインタ渡しと参照渡し
 
女性のためのC++コミュニティ Ladies++
女性のためのC++コミュニティ Ladies++女性のためのC++コミュニティ Ladies++
女性のためのC++コミュニティ Ladies++
 
強くなるためのプログラミング -プログラミングに関する様々なコンテストとそのはじめ方-#pyconjp
強くなるためのプログラミング -プログラミングに関する様々なコンテストとそのはじめ方-#pyconjp強くなるためのプログラミング -プログラミングに関する様々なコンテストとそのはじめ方-#pyconjp
強くなるためのプログラミング -プログラミングに関する様々なコンテストとそのはじめ方-#pyconjp
 
Pythonではじめる競技プログラミング
Pythonではじめる競技プログラミングPythonではじめる競技プログラミング
Pythonではじめる競技プログラミング
 

Docstringを書こう!