joppotjoppotコピペで絶対動く。2018年4月2日Tweet概要みなさんこんにちはcandleです。今回はpythonのSphinxを使ってクラスや関数の説明を自動生成します。前提Python3を使って説明しますが、おそらくpython2でも動くと思います。テストファイルを用意するmain.pyとdog.pyファイルを作成します。dog.pymain.pyに以下を記述します。main()dog.pyを開いて以下を記述します。name準備は以上です。SphinxのインストールSphinxはpipでインストールする。python3を使っているのでpip3コマンドでインストールします。Sphinxいくつかのsphinxコマンドがグローバルに使えるようになります。続いて、Sphinxの初期化を行います。Sphinx関連のファイルをおくフォルダを作成します。フォルダ名はなんでも良いですが、わかりやすく「docs」にします。docsこのようなフォルダ構成になります。__pycache__はpythonのキャッシュファイルです。sphinx-quickstartを使ってSphinxを初期化します。引数でファイルを展開するフォルダを指定します。このコマンドを実行するといくつかの対話式のやりとりを行います。name:これは自分のプロジェクト名をつけます。今回は「sphinx_dog」と名付けます。name(s):は適当な名前にします。今回は「alice」とします。デフォルト全て完了したら、docsフォルダにいくつかファイルが作成されます。自動ドキュメント作成の設定Sphinxは何も設定しないと、コードから自動的にドキュメントを生成してくれません。docs/conf.pyを開きます。読み込みパスの変更conf.pyからみてSphinxにどの場所にあるpythonファイルを読み込むか設定します。conf.pyの以下の部分をコメントインします。os.path.abspath('.'))そのままpathを1つ上のフォルダを指定する。os.path.abspath('../'))次に、pythonのコードに記述したdocstringからドキュメントを生成してくれるエクステンションを読み込みます。['sphinx.ext.autodoc','sphinx.ext.viewcode']にします。sphinx.ext.autodocは関数の説明に以下のdocstringを書くと、自動的にドキュメントを生成してくれます。ドキュメントの関数の場所にソースコードへのリンクを表示してくれます。その下に以下のコードを記述します。'show-inheritance']個々のプロパティの詳しい情報はこちらに書いてあります。http://www.sphinx-doc.org/ja/stable/ext/autodoc.html次に、サイドバーに表示するコンテンツを決めます。]}Sphinxの設定は以上です。トップページに各モジュールへのリンクを表示するトップページはindex.rstになります。これを開いて、toctreeのところにdogを加えます。dog準備ができました。ドキュメントを作成するsphinx_dogフォルダで以下を実行するとpythonファイルからrstファイルが作られます。.次に、rstからドキュメントとなるhtmlを生成します。./docs/_build完成しました。docs/_build/index.htmlをダブルクリックしてブラウザで開きます。このように表示できれば成功です。クラスと関数にdocstringで説明を書く現在、Dogクラスのページ移動しても、クラス名と関数が表示されているだけです。dog.pyを開いて、いくつかsphinx用の記述を加えます。name保存したら、再度以下を実行してドキュメントを更新します。./docs/_builddogクラスのページを見ると説明が追加されています。ドキュメント生成スクリプト毎回コマンドを叩くのは面倒なのでpythonのスクリプトを作成します。make_docs.py中身を以下のようにします。run()保存したら、以下のコマンドでドキュメントを作成します。make_docs.pyまとめsphinxのautodocは便利な反面コードが長くなってしまうのはきになるところですね。rstの構文については以下のリンクが参考になります。http://docutils.sourceforge.net/docs/user/rst/quickref.htmlサンプルはこれが参考になります。https://thomas-cokelaer.info/tutorials/sphinx/docstring_python.htmlスポンサードリンク「為になったなぁ」と思ったら、シェアお願いします。コメントをキャンセルメールアドレスが公開されることはありません。それだとサーバの容量を取ってしまうので、画像のアップロード先をS3に上げてみたいと思います。みなさんこんにちはcandleです。前回に引き続き、gemの作成をやっていきましょう。今回はgemを作成したら、それをrailsプロジェクト上で読み込み、動作テストをするところをやります。みなさんこんにちはcandleです。最近はphpでサービスを書いたりしています。みなさんこんにちはcandleです。今回はmysqlのデータベースに関する簡単な記事です。データベース系の言語は最近、様々出てきましたが、私は未だにMysqlくらいしか触っていません。みなさんこんにちはcandleです。今回はmemcachedサーバを利用してrailsのセッションを管理してみたいと思います。Sansフォントウェイトのcss書き方まとめプロフィールベンチャー企業のCTOをやってます。大学時代にプログラミングを始め、javaから入門し、C++へて、PHPへと進み、会社ではRailsを使用。環境設定スポンサードリンクjoppotコピペで絶対動く。