Welcome to bootstrap-py’s documentation!

Contents:

Bootstrap Python Package

The bootstrap-py provides generating the Python packages.

Status

https://secure.travis-ci.org/mkouhei/bootstrap-py.png?branch=master https://coveralls.io/repos/mkouhei/bootstrap-py/badge.png?branch=master https://img.shields.io/pypi/v/bootstrap-py.svg Documentation Status

Requirements

  • Python 3.5 over

Features

  • Generating Python package.
  • Checking Python package name existence at PyPI.
  • Test and conde checking environment is configured with the Tox, Pytest, and others.
  • Generating documentation automatically with the Sphinx.
  • Configuration Git repository, initial commit.
  • Generate sample code using --with-samples option.

Usage

Install bootstrap-py

Install bootstrap-py:

$ virtualenv venv
$ . venv/bin/activate
(venv)$ python -m pip install bootstrap-py

Generate Python package

Generate your Python package.:

(venv)$ bootstrap-py create -a 'Your author name' -e 'your-author-email@example.org' \
-u 'https://your-package-website.example.org' -o '/path/to/package-dir' \
-l 'select-the-license' 'your-package-name'
(venv)$ deactivate
$ cd /path/to/package-dir
$ ls
MANIFEST.in  docs     pytest.ini  setup.py  utils
README.rst   libneta  setup.cfg   tox.ini

List license choices

List license description choices.:

(venv)$ bootstrap-py list -l
GPL        : GNU General Public License (GPL)
CPL        : Common Public License
IOSL       : Intel Open Source License
GPLv3+     : GNU General Public License v3 or later (GPLv3+)
(omit)

Using tox

Running test with tox:

$ pip install --user tox
$ tox
(omit)
_______________________________________ summary ______________________________________
py35: commands succeeded
py36: commands succeeded
pycodetyle: commands succeeded
pydocstyle: commands succeeded
docs: commands succeeded
congratulations :)

References

bootstrap_py.control.

bootstrap_py.control.retreive_metadata()[source]

Retrieve metadata.

Return type:bootstrap_py.classifiers.Classifiers
Returns:Classifiers()
bootstrap_py.control.print_licences(params, metadata)[source]

Print licenses.

Parameters:
  • params (argparse.Namespace) – parameter
  • metadata (bootstrap_py.classifier.Classifiers) – package metadata
bootstrap_py.control.check_repository_existence(params)[source]

Check repository existence.

Parameters:params (argparse.Namespace) – parameters
bootstrap_py.control.check_package_existence(params)[source]

Check package existence.

Parameters:params (argparse.Namespace) – parameters
bootstrap_py.control.generate_package(params)[source]

Generate package repository.

Parameters:params (argparse.Namespace) – parameters

bootstrap_py.package.

class bootstrap_py.package.PackageData(args)[source]

Bases: object

Package meta data class.

default_version = '0.1.0'

Configured the default “version” of setup.setup().

warning_message = '##### ToDo: Rewrite me #####'

Users should rewrite parameters after they generate Python package.

to_dict()[source]

Convert the package data to dict.

class bootstrap_py.package.PackageTree(pkg_data)[source]

Bases: object

Package directory tree class.

template_name = 'bootstrap_py'

Jinja2 template name

suffix = '-bootstrap-py'

the suffix name of working directory for generating

init = '__init__.py'

init filename

exec_perm = 493

default permission

pkg_dirs = ['{module_name}', '{module_name}/tests']

include directories to packages

move()[source]

Move directory from working directory to output directory.

clean()[source]

Clean up working directory.

generate()[source]

Generate package directory tree.

vcs_init()[source]

Initialize VCS repository.

bootstrap_py.classifiers.

class bootstrap_py.classifiers.Classifiers[source]

Bases: object

Classifiers.

url = 'https://pypi.python.org/pypi?%3Aaction=list_classifiers'

list_classifiers url

prefix_status = 'Development Status :: '

prefix status

prefix_lic = 'License :: OSI Approved :: '

prefix licences

status()[source]

Development status.

licenses()[source]

OSI Approved license.

licenses_desc()[source]

Remove prefix.

bootstrap_py.docs.

bootstrap_py.docs.build_sphinx(pkg_data, projectdir)[source]

Build sphinx documentation.

Return type:

int

Returns:

subprocess.call return code

Parameters:
  • pkg_data (bootstrap_py.control.PackageData) – package meta data
  • projectdir (str) – project root directory

bootstrap_py.pypi.

bootstrap_py.pypi.PYPI_URL = 'https://pypi.org/pypi/{0}/json'

PyPI JSONC API url

bootstrap_py.pypi.package_existent(name)[source]

Search package.

Parameters:name (str) – package name

bootstrap_py.vcs.

class bootstrap_py.vcs.VCS(repo_dir, metadata)[source]

Bases: object

VCS class.

bootstrap_py.exceptions.

exception bootstrap_py.exceptions.Error[source]

Bases: Exception

Base error class.

with_traceback()

Exception.with_traceback(tb) – set self.__traceback__ to tb and return self.

exception bootstrap_py.exceptions.NotFound[source]

Bases: bootstrap_py.exceptions.Error

Not Found.

with_traceback()

Exception.with_traceback(tb) – set self.__traceback__ to tb and return self.

exception bootstrap_py.exceptions.Conflict[source]

Bases: bootstrap_py.exceptions.Error

Confilict.

with_traceback()

Exception.with_traceback(tb) – set self.__traceback__ to tb and return self.

exception bootstrap_py.exceptions.BackendFailure[source]

Bases: bootstrap_py.exceptions.Error

PyPI service down.

with_traceback()

Exception.with_traceback(tb) – set self.__traceback__ to tb and return self.

ChangeLog

0.7.0 (2018-11-03)

  • Fixes package_existent for the new PyPI API.
  • Updates templates.
  • Fixes pylint violations.
  • Unsupports Python 2.x and PyPy (compatible Python 2.7).
  • Supports Python 3.7.
  • Fixes handling empty command without arguments. (Thanks @sourcepirate)

0.6.0 (2016-06-08)

  • Uses pycodestyle instead of pep8.

0.5.1 (2016-05-17)

  • Adds --doctest-modules option.
  • Fixes pylint option argument.
  • Removes doctest exception sample.

Changes follows when enable doctest-modules.:

diff --git a/pytest.ini b/pytest.ini
index 635a7f9..15cc929 100644
--- a/pytest.ini
+++ b/pytest.ini
@@ -7,6 +7,7 @@ addopts =
         --cov your_package_name
         --cov-report=term
         --cov-report=html
+        --doctest-modules
 pep8ignore =
         setup.py ALL
         docs/source/conf.py ALL
diff --git a/tox.ini b/tox.ini
index 141d468..b8c1f32 100644
--- a/tox.ini
+++ b/tox.ini
@@ -10,7 +10,7 @@ envlist =

 [testenv]
 commands =
-    py.test --pylint --pylint-rcfile={toxinidir}/.pylintrc
+    py.test --pylint --pylint-rcfile={toxinidir}/.pylintrc your_package_name

 [py]
 deps=

0.5.0 (2016-05-07)

  • Adds --with-samples options; generating sample code.
  • Fixes bugs module name when package name includes hyphen.
  • Fixes comparing verson bug in updatable for Python3.
  • Some refactorings.

0.4.8 (2016-04-25)

  • Fixes warning of build sphinx without docs/source/_static directory.
  • Unsupports IP address url.

0.4.7 (2016-04-24)

  • Adds url validator.
  • Adds long description checker.

0.4.6 (2016-04-21)

  • Fixes .travis.yml template.

Generated package with v0.4.5 or less that has bugs .travis.yml configuration file. Modify the follows manually.:

diff --git a/.travis.yml b/.travis.yml
index ab128da..600125e 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -14,6 +14,11 @@ after_success:
   - coveralls --verbose

 matrix:
+  allow_failures:
+    - env: TOX_ENV=py27
+    - env: TOX_ENV=py33
+    - env: TOX_ENV=py34
+    - env: TOX_ENV=pypy
   include:
-    python: 3.5
-    env: TOX_ENV=py35
+    - python: 3.5
+      env: TOX_ENV=py35

0.4.5 (2016-04-06)

  • Fixes tox.ini template.

Generated package with v0.4.4 or less that has bugs tox.ini configuration file. Modify the follows manually.

  • Fixes your_package_name with snake case. Modify the follows manually.:

    diff --git a/tox.ini b/tox.ini
    index a9d823f..db825cc 100644
    --- a/tox.ini
    +++ b/tox.ini
    @@ -49,7 +49,7 @@ basepython = pypy
    [testenv:pep257]
    deps=
        pep257
    -commands = pep257 bootstrap_py
    +commands = pep257 your_package_name
    basepython = python3.5
    
    [testenv:docs]
    

0.4.4 (2016-04-05)

  • Adds symlink to pre-commit hook.

Generated package with v0.4.3 or less that has bugs pre-commit hook script. Modify the follows manually.:

$ chmod +x utils/pre-commit
$ ln -s ../../utils/pre-commit .git/hooks/pre-commit

0.4.3 (2016-04-04)

  • Fixes pre-commit hook script permission.

0.4.2 (2016-03-08)

  • Fixes configiratuon version, release.
  • Fixes url, author_email in setup.py.

Genarated package with v0.4.1 or less that has bugs Sphinx documentation. Modify the follows manually.

  • Fixes docs/source/index.rst:

    diff --git a/docs/source/index.rst b/docs/source/index.rst
    index b3404ac..d8bdc83 100644
    --- a/docs/source/index.rst
    +++ b/docs/source/index.rst
    @@ -16,8 +16,8 @@ Contents:
    
        CHANGELOG
    
    - Indices and tables
    -===================
    +Indices and tables
    +==================
    
     * :ref:`genindex`
     * :ref:`modindex`
    
  • Renames docs/source/README to docs/source/README.rst.

  • Fixes documentation version in docs/source/conf.py.

  • Fixes auth_email, url in setup.py.

0.4.1 (2016-03-07)

  • Adds exception handler package update.
  • Fixes some docstring.

0.4.0 (2016-03-07)

  • Adds checking latest version.
  • Fixes Sphinx template bugs.
  • Does some refactoring.

0.3.0 (2016-02-21)

  • git init and initial commit.
  • Adds –no-check option.
  • Fixes list subcommand.

0.2.1 (2016-02-16)

  • Fixes failing create sub-command.

0.2.0 (2016-02-15)

  • Adds create, list sub-command.
    • “create”: generating Python package.
    • “list”: Print license description for choices.
  • Changes mutually exclusive group; username, url options.
  • Add checking package name in PyPI.
  • Adds some exception handling.

0.1.1 (2016-02-02)

  • Fixes README template

0.1.0 (2016-02-02)

  • First release

Indices and tables