Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ライブラリとして使えるようにしてみよう #13

Closed
sotetsuk opened this issue Oct 7, 2020 · 0 comments · Fixed by #14
Closed

ライブラリとして使えるようにしてみよう #13

sotetsuk opened this issue Oct 7, 2020 · 0 comments · Fixed by #14

Comments

@sotetsuk
Copy link
Owner

sotetsuk commented Oct 7, 2020

自分の書いたコードは、それを再利用可能な形にしておくことが重要です。これは、自分の書いたコードを他者に使ってもらう場合に限らず、将来の自分が使う場合 にも非常に重要です。多くの人は、自分が半年前に書いたコードの使い方を 全く 覚えていません。今回紹介する、 パッケージング をきちんとしておくことで、コードの再利用性が高まり、自分の書いたコードを効率よく利用することができます。

1. setup.pyの用意

次のように、setup.py をレポジトリ直下に用意します。ここに書いた設定に基づいて、パッケージを作成します。このパッケージが、何か他のパッケージに依存している場合は、 requirements.txt を用意するか、 install_requires=[] に必要なパッケージを記述します。

from setuptools import setup, find_packages
  
setup(
    name='fizzbuzz',
    version="0.0.1",
    description='Fizz Buzz program.',
    author='sotetsuk',
    url='https://github.com/sotetsuk/python-dev-tutorial',
    author_email='koyamada-s@sys.i.kyoto-u.ac.jp',
    license='MIT',
    install_requires=[],
    packages=find_packages(exclude=["tests"]),
    classifiers=[
        "Programming Language :: Python :: 3.8",
        "License :: OSI Approved :: MIT License"
    ]
)

2. インストールコマンドの用意

Makefileにパッケージのインストール用のコマンドを用意します。その他、アンインストール用のコマンド、中間ファイルをクリーンアップする用のコマンドを用意します。

image

3. インストールしてみて、Python Consoleから使えることを確認します。

$ make install を実行します。

image

新しくターミナルを開いて、Python Consoleを起動し、fizzbuzz 関数が使えることを確認しましょう。

image

ここでは機能が一つしかないため、パッケージ名/モジュール名/関数名がすべて fizzbuzz のため少しややこしいですが、通常は機能に合わせて適切な名前を設定してください(例: torch/nn/Linear )。

4. PRを作り、マージします。

実際に作成されたPRは #14 から確認できます。

目次

  1. プロジェクトを初期化しよう
  2. 仕様を決めて、ユニットテストを追加してみよう
  3. ユニットテストが通るように本体を実装してみよう
  4. (Optional) doctestを導入してみよう
  5. 新しい機能を追加する前に、CIを導入してみよう
  6. 新しい機能を追加してみよう
  7. [現在] ライブラリとして使えるようにしてみよう
  8. [つぎ] CLIツールとして使えるようにしてみよう
  9. (Optional) 便利な外部ライブラリをインストールして使ってみよう (Pytest編)
  10. (Optional) 便利な外部ライブラリをインストールして使ってみよう (Click編)
  11. 型チェックを使ってみよう
  12. しっかりとしたREADMEを書こう
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
1 participant