Je vais vous expliquer la procédure pour installer votre propre bibliothèque avec Python. Il ne sera pas publié sur PyPI et sera utilisé au sein de l'équipe. Nom de la bibliothèque Homebrew: mylibrary
La structure finale du répertoire est la suivante.
./mylibrary
--- /mylibrary
---/__init__.py
file1.py
file2.py
--- /docs
/makefile
make.bat
index.rst
api.rst
page1.rst
---/_static
---/icon.png
----/_build
---/html
--- /example
---/example1.py
example2.py
lisence.txt
setpu.py
répertoire mylibrary Placez le fichier source.
Répertoire __docs __ Le répertoire où se trouve la documentation de la bibliothèque. C'est un répertoire vide au moment de la création. Après avoir créé le fichier source, Sphinx est utilisé pour créer automatiquement un document à partir de la docstring dans la source.
__exemple de répertoire __ Je vais mettre l'exemple de code de la bibliothèque.
Fichier __setpu.py __ Ce fichier décrit la configuration au moment de l'installation.
__Autres fichiers requis __ license.txt Un fichier qui décrit la licence.
Lors de la création d'une bibliothèque, créons un fichier \ __ init__.py. En créant un fichier \ __ init__.py, vous pourrez importer des classes et des fonctions dans la bibliothèque sans utiliser de chemins absolus.
notexist__init__.py
#__init__.Lors de l'installation sans créer de py
from mylibrary.file1 import class1
Vous ne pouvez pas importer la classe sauf si vous décrivez le nom du dossier dans la bibliothèque où la classe est décrite.
_exist_init__.py
#__init__.Si vous créez py
from mylibrary import class1
Vous pouvez importer la classe par nom de bibliothèque + nom de classe. _init_.py
__init__.py
from .file1 import class1
from .file2 import class2
from .file3 import *
__copyright__ = 'Copyright (C) 2018 Your Name'
__version__ = '1.0.0'
__license__ = 'BSD-3-Clause'
__author__ = 'Your Name'
__author_email__ = 'Your@Email'
__url__ = 'http://github.com/account/repository'
Exécutez la fonction de configuration de setpy.py pour installer. Ajoutez les informations nécessaires au moment de l'installation. https://qiita.com/shinichi-takii/items/6d1063e0aa3f79e599f0 _init_.py
setup.py
from setuptools import setup
from os import path
import re
package_name = "nom du paquet"
root_dir = path.abspath(path.dirname(__file__))
def _requirements():
return [name.rstrip() for name in open(path.join(root_dir, 'requirements.txt')).readlines()]
def _test_requirements():
return [name.rstrip() for name in open(path.join(root_dir, 'test-requirements.txt')).readlines()]
with open(path.join(root_dir, package_name, '__init__.py')) as f:
init_text = f.read()
version = re.search(r'__version__\s*=\s*[\'\"](.+?)[\'\"]',init_text).group(1)
license = re.search(r'__license__\s*=\s*[\'\"](.+?)[\'\"]',init_text).group(1)
author = re.search(r'__author__\s*=\s*[\'\"](.+?)[\'\"]',init_text).group(1)
author_email = re.search(r'__author_email__\s*=\s*[\'\"](.+?)[\'\"]',init_text).group(1)
url = re.search(r'__url__\s*=\s*[\'\"](.+?)[\'\"]',init_text).group(1)
C'est une bonne idée d'écrire la docstring dans le style google ou numpy. https://qiita.com/11ohina017/items/118b3b42b612e527dc1d
Installez sphinx avec pip. https://qiita.com/futakuchi0117/items/4d3997c1ca1323259844 Tapez ensuite la commande suivante dans le répertoire ./mylibrary (celui qui ne contient pas la source).
sphinx-quickstart docs
Entrez uniquement le nom du projet et l'auteur selon le cas, sinon il n'y a pas de problème par défaut.
Déplacer vers le répertoire __docs __ Je pense que le fichier conf.py a été créé. __ Ceci est un fichier qui décrit les paramètres html créés par sphinx. __
setup.py
import os
import sys
#Ajouter un répertoire source
sys.path.insert(0, os.path.abspath('../mylibrary'))
#Activer la fonction de création de docstring
extensions = ['sphinx.ext.autodoc', 'sphinx.ext.napoleon','sphinx.ext.viewcode',
]
#sélection de thème html
html_theme = "blue"
Quant à la façon d'écrire setu.py, flask sera utile. https://github.com/pallets/flask/blob/master/docs/conf.py Vous pouvez télécharger votre thème HTML préféré à partir du site suivant. https://sphinx-themes.org/
Créez une référence API.
sphinx-apidoc -f -o ./docs .
Cela permettra à sphinx d'analyser le répertoire ./mylibrary où se trouvent les fichiers source et d'extraire les classes pour vous.
Vous pouvez diviser les classes dans apidoc qui n'ont pas besoin d'être exposées en tant qu'API, ou les diviser en pages séparées pour chaque classe au lieu de les regrouper dans apidoc. Dans ce cas, éditons le premier fichier La modification du premier fichier est facile et supprime les classes inutiles de la liste des classes dans apidoc.
__ Collez également le lien du fichier index.rst vers apidoc .__ __ Si vous oubliez cela, la construction de sphinx ne créera pas de référence API __
index.rst
.. toctree::
:maxdepth: 2
:caption: Contents:
apidoc
Créez un fichier html dans le répertoire docs.
make html
#faire pour Windows.bat html
Cela créera une page hmtl construite par sphinx dans docs / _build / html. Vous pouvez utiliser ce répertoire comme page de référence d'API en le publiant sur netlify ou github. Si vous souhaitez créer une plus belle référence d'API, vous pouvez vous référer à la première méthode de création de fichier de falsk. https://github.com/pallets/flask/tree/master/docs
Tout ce que vous avez à faire est d'installer la bibliothèque.
python setup.py install
Je vous remercie pour votre travail acharné!
Recommended Posts