move to pbr for packaging
Change-Id: I93e4f54d1b81f53615774aa5f79b3e6a9941a55d
This commit is contained in:
parent
472c11cea1
commit
82f9a4ad61
4
.gitignore
vendored
4
.gitignore
vendored
@ -30,3 +30,7 @@ pip-log.txt
|
||||
#sample output
|
||||
*.log
|
||||
*.log.*
|
||||
|
||||
# pbr output
|
||||
AUTHORS
|
||||
ChangeLog
|
||||
|
@ -16,6 +16,7 @@ What's New In This Release?
|
||||
details.
|
||||
- Add bash command completion. (Contributed by Terry Howe)
|
||||
- Use stevedore to load formatter plugins.
|
||||
- Use pbr for packaging.
|
||||
|
||||
Documentation
|
||||
=============
|
||||
|
@ -2,13 +2,14 @@
|
||||
Release History
|
||||
=================
|
||||
|
||||
1.5
|
||||
1.5.2
|
||||
|
||||
- Fix the arguments passed to commands when they are instantiated to
|
||||
pull out help. See https://github.com/dreamhost/cliff/issues/52 for
|
||||
details.
|
||||
- Add bash command completion. (Contributed by Terry Howe)
|
||||
- Use stevedore to load formatter plugins.
|
||||
- Use pbr for packaging.
|
||||
|
||||
1.4.5
|
||||
|
||||
|
6
requirements.txt
Normal file
6
requirements.txt
Normal file
@ -0,0 +1,6 @@
|
||||
argparse
|
||||
cmd2>=0.6.7
|
||||
PrettyTable>=0.6,<0.8
|
||||
pyparsing>=2.0.1
|
||||
six
|
||||
stevedore
|
45
setup.cfg
Normal file
45
setup.cfg
Normal file
@ -0,0 +1,45 @@
|
||||
[metadata]
|
||||
name = cliff
|
||||
description-file = README.rst
|
||||
author = Doug Hellmann
|
||||
author-email = doug.hellmann@dreamhost.com
|
||||
summary = Command Line Interface Formulation Framework
|
||||
home-page = https://launchpad.net/python-cliff
|
||||
classifier =
|
||||
Development Status :: 5 - Production/Stable
|
||||
License :: OSI Approved :: Apache Software License
|
||||
Programming Language :: Python
|
||||
Programming Language :: Python :: 2
|
||||
Programming Language :: Python :: 2.7
|
||||
Programming Language :: Python :: 3
|
||||
Programming Language :: Python :: 3.2
|
||||
Programming Language :: Python :: 3.3
|
||||
Intended Audience :: Developers
|
||||
Environment :: Console
|
||||
|
||||
[global]
|
||||
setup-hooks =
|
||||
pbr.hooks.setup_hook
|
||||
|
||||
[files]
|
||||
packages =
|
||||
cliff
|
||||
|
||||
[entry_points]
|
||||
cliff.formatter.list =
|
||||
table = cliff.formatters.table:TableFormatter
|
||||
csv = cliff.formatters.commaseparated:CSVLister
|
||||
|
||||
cliff.formatter.show =
|
||||
table = cliff.formatters.table:TableFormatter
|
||||
shell = cliff.formatters.shell:ShellFormatter
|
||||
|
||||
cliff.formatter.completion =
|
||||
bash = cliff.complete:CompleteBash
|
||||
none = cliff.complete:CompleteNoCode
|
||||
|
||||
|
||||
[build_sphinx]
|
||||
all_files = 1
|
||||
build-dir = docs/build
|
||||
source-dir = docs/source
|
188
setup.py
188
setup.py
@ -1,184 +1,14 @@
|
||||
#!/usr/bin/env python
|
||||
import setuptools
|
||||
|
||||
PROJECT = 'cliff'
|
||||
VERSION = '1.4.5'
|
||||
|
||||
from setuptools import setup, find_packages
|
||||
|
||||
from distutils.util import convert_path
|
||||
from fnmatch import fnmatchcase
|
||||
import os
|
||||
import sys
|
||||
|
||||
# In python < 2.7.4, a lazy loading of package `pbr` will break
|
||||
# setuptools if some other modules registered functions in `atexit`.
|
||||
# solution from: http://bugs.python.org/issue15881#msg170215
|
||||
try:
|
||||
long_description = open('README.rst', 'rt').read()
|
||||
except IOError:
|
||||
long_description = ''
|
||||
|
||||
install_requires = [
|
||||
'PrettyTable>=0.6,<0.8',
|
||||
'cmd2>=0.6.7',
|
||||
'pyparsing>=2.0.1',
|
||||
'six',
|
||||
'stevedore',
|
||||
]
|
||||
|
||||
try:
|
||||
import argparse # noqa
|
||||
import multiprocessing # flake8: noqa
|
||||
except ImportError:
|
||||
install_requires.append('argparse')
|
||||
pass
|
||||
|
||||
|
||||
##############################################################################
|
||||
# find_package_data is an Ian Bicking creation.
|
||||
|
||||
# Provided as an attribute, so you can append to these instead
|
||||
# of replicating them:
|
||||
standard_exclude = ('*.py', '*.pyc', '*~', '.*', '*.bak', '*.swp*')
|
||||
standard_exclude_directories = ('.*', 'CVS', '_darcs', './build',
|
||||
'./dist', 'EGG-INFO', '*.egg-info')
|
||||
|
||||
|
||||
def find_package_data(where='.', package='',
|
||||
exclude=standard_exclude,
|
||||
exclude_directories=standard_exclude_directories,
|
||||
only_in_packages=True,
|
||||
show_ignored=False):
|
||||
"""
|
||||
Return a dictionary suitable for use in ``package_data``
|
||||
in a distutils ``setup.py`` file.
|
||||
|
||||
The dictionary looks like::
|
||||
|
||||
{'package': [files]}
|
||||
|
||||
Where ``files`` is a list of all the files in that package that
|
||||
don't match anything in ``exclude``.
|
||||
|
||||
If ``only_in_packages`` is true, then top-level directories that
|
||||
are not packages won't be included (but directories under packages
|
||||
will).
|
||||
|
||||
Directories matching any pattern in ``exclude_directories`` will
|
||||
be ignored; by default directories with leading ``.``, ``CVS``,
|
||||
and ``_darcs`` will be ignored.
|
||||
|
||||
If ``show_ignored`` is true, then all the files that aren't
|
||||
included in package data are shown on stderr (for debugging
|
||||
purposes).
|
||||
|
||||
Note patterns use wildcards, or can be exact paths (including
|
||||
leading ``./``), and all searching is case-insensitive.
|
||||
|
||||
This function is by Ian Bicking.
|
||||
"""
|
||||
|
||||
out = {}
|
||||
stack = [(convert_path(where), '', package, only_in_packages)]
|
||||
while stack:
|
||||
where, prefix, package, only_in_packages = stack.pop(0)
|
||||
for name in os.listdir(where):
|
||||
fn = os.path.join(where, name)
|
||||
if os.path.isdir(fn):
|
||||
bad_name = False
|
||||
for pattern in exclude_directories:
|
||||
if (fnmatchcase(name, pattern)
|
||||
or fn.lower() == pattern.lower()):
|
||||
bad_name = True
|
||||
if show_ignored:
|
||||
print >> sys.stderr, (
|
||||
"Directory %s ignored by pattern %s"
|
||||
% (fn, pattern))
|
||||
break
|
||||
if bad_name:
|
||||
continue
|
||||
if os.path.isfile(os.path.join(fn, '__init__.py')):
|
||||
if not package:
|
||||
new_package = name
|
||||
else:
|
||||
new_package = package + '.' + name
|
||||
stack.append((fn, '', new_package, False))
|
||||
else:
|
||||
stack.append((fn,
|
||||
prefix + name + '/',
|
||||
package,
|
||||
only_in_packages))
|
||||
elif package or not only_in_packages:
|
||||
# is a file
|
||||
bad_name = False
|
||||
for pattern in exclude:
|
||||
if (fnmatchcase(name, pattern)
|
||||
or fn.lower() == pattern.lower()):
|
||||
bad_name = True
|
||||
if show_ignored:
|
||||
print >> sys.stderr, (
|
||||
"File %s ignored by pattern %s"
|
||||
% (fn, pattern))
|
||||
break
|
||||
if bad_name:
|
||||
continue
|
||||
out.setdefault(package, []).append(prefix + name)
|
||||
return out
|
||||
##############################################################################
|
||||
|
||||
|
||||
setup(
|
||||
name=PROJECT,
|
||||
version=VERSION,
|
||||
|
||||
description='Command Line Interface Formulation Framework',
|
||||
long_description=long_description,
|
||||
|
||||
author='Doug Hellmann',
|
||||
author_email='doug.hellmann@gmail.com',
|
||||
|
||||
url='https://launchpad.net/python-cliff',
|
||||
|
||||
classifiers=['Development Status :: 5 - Production/Stable',
|
||||
'License :: OSI Approved :: Apache Software License',
|
||||
'Programming Language :: Python',
|
||||
'Programming Language :: Python :: 2',
|
||||
'Programming Language :: Python :: 2.7',
|
||||
'Programming Language :: Python :: 3',
|
||||
'Programming Language :: Python :: 3.2',
|
||||
'Programming Language :: Python :: 3.3',
|
||||
'Intended Audience :: Developers',
|
||||
'Environment :: Console',
|
||||
],
|
||||
|
||||
platforms=['Any'],
|
||||
|
||||
scripts=[],
|
||||
|
||||
provides=['cliff',
|
||||
],
|
||||
install_requires=install_requires,
|
||||
|
||||
namespace_packages=[],
|
||||
packages=find_packages(),
|
||||
include_package_data=True,
|
||||
# Scan the input for package information
|
||||
# to grab any data files (text, images, etc.)
|
||||
# associated with sub-packages.
|
||||
package_data=find_package_data(PROJECT,
|
||||
package=PROJECT,
|
||||
only_in_packages=False,
|
||||
),
|
||||
|
||||
entry_points={
|
||||
'cliff.formatter.list': [
|
||||
'table = cliff.formatters.table:TableFormatter',
|
||||
'csv = cliff.formatters.commaseparated:CSVLister',
|
||||
],
|
||||
'cliff.formatter.show': [
|
||||
'table = cliff.formatters.table:TableFormatter',
|
||||
'shell = cliff.formatters.shell:ShellFormatter',
|
||||
],
|
||||
'cliff.formatter.completion': [
|
||||
'bash = cliff.complete:CompleteBash',
|
||||
'none = cliff.complete:CompleteNoCode',
|
||||
],
|
||||
},
|
||||
|
||||
zip_safe=False,
|
||||
)
|
||||
setuptools.setup(
|
||||
setup_requires=['pbr'],
|
||||
pbr=True)
|
||||
|
Loading…
Reference in New Issue
Block a user