Welcome to bootstrap-py’s documentation!¶
Contents:
Bootstrap Python Package¶
The bootstrap-py
provides generating the Python packages.
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.
-
-
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
-
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
-
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.
bootstrap_py.exceptions.Conflict
exception occurs when user specified name has already existed.bootstrap_py.exceptions.BackendFailure
exception occurs when PyPI service is down.
Parameters: name (str) – package name
bootstrap_py.vcs.
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
todocs/source/README.rst
.Fixes documentation
version
indocs/source/conf.py
.Fixes
auth_email
,url
insetup.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
\ Sort by:\ best rated\ newest\ oldest\
\\
Add a comment\ (markup):
\``code``
, \ code blocks:::
and an indented block after blank line