Distutils¶
This tool launches a command-line application to create a Python package for the GCPDS repository, this package includes a configured Sphinx documentation environment and a script example.
Create package¶
Move the terminal to desired location and execute gcpds_distutils command
The application will ask about:
> Package name:
> Author:
> Author email:
> Maintainer:
> Maintainer email:
> Requieres (separated by comma):
After that, a new directory with the given Package name will be created:
example/ #Package name created
gcpds/ # Namespace
dummy/
# Exmaple scripts
__init__.py
dummy.py
example/
# Put here your main code
__init__.py
notebooks/
# Documentation
01-dummy.ipynb
readme.ipynb
docs/
...
LICENSE.txt # NO EDIT THIS FILE!
README.md # NO EDIT THIS FILE!
MANIFEST.in # NO EDIT THIS FILE!
setup.py
Add Python scripts¶
Add functions¶
This example package was created for be imported like: form gcpds import example, let’s assume that we have a function called super_awesome_function() and we want to call it with the sctructure from gcpds.example import super_awesome_function, then we must write own function in example/gcpds/__init__.py
[7]:
# example/gcpds/__init__.py
def super_awesome_function(a: int, b: int) -> int:
"""Unnecessary funtion to compute power of a number."""
return a ** b
NOTE: The Type hint is not necessary but recommended.
Add classes¶
The best way to add a class is to write a new script file (avoid adding classes to __inut__.py)
[10]:
# example/gcpds/my_class.py
class MyClass:
""""""
def __init__(self):
"""Constructor"""
def super_awesome_function(self, a: int, b: int) -> int:
"""Unnecessary funtion to compute power of a number."""
return a ** b
def super_awesome_function_improved(self, a: float, b: float) -> float:
"""Unnecessary funtion to compute power of a number."""
return a ** b
Then we can import MyClass with from gcpds.example.my_class import MyClass.
A better structure for call MyClass could be from gcpds.example import MyClass, for doing this we must edit the __init__.py file
[ ]:
# example/gcpds/__init__.py
from .my_class import MyClass
Add documentation¶
This package is configured to use notebooks as documentation, the README is located in notebooks/readme.ipynb, this file will compile as the main README.md. Any extra documentation must be added in this directory as notebooks, these notebooks will be included alphabetically in the main documentation.
Compile documentation¶
In the docs folder execute:
The documentation will be compiled to docs/build/html/index.html
NOTE: Thi only works on GNU/Linux