Skip to content

Commit ee8efc4

Browse files
committed
add tox improve package
1 parent a761403 commit ee8efc4

File tree

10 files changed

+255
-22
lines changed

10 files changed

+255
-22
lines changed

.gitignore

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1 +1,3 @@
11
*.egg-info
2+
.tox
3+
dist

MANIFEST.in

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
include *.rst

Pipfile

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ tableprint = "*"
1212
pytest = "*"
1313
pytest-cov = "*"
1414
diskbench = {path = ".", editable = true}
15+
twine = "*"
1516

1617
[requires]
1718
python_version = "3.6"

Pipfile.lock

Lines changed: 138 additions & 15 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

changelog.rst

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
Changelog
2+
=========

diskbench/cli.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@
1010
log = logging.getLogger(__name__)
1111

1212

13-
1413
@click.command()
1514
@click.argument('fpath', type=click.Path(exists=False))
1615
@click.option('--size', default='1G')

diskbench/version.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
VERSION = '0.1.0'

readme.rst

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
.. default-role:: code
2+
3+
Disk Bench
4+
##########
5+
6+
Designed to run similar tests as Crystal Disk Mark using fio with user friendly output options.
7+
8+
Tests ran:
9+
10+
* Sequential read/write w/ 1MB block size
11+
* Random read/write w/ 512K block size
12+
* Queue depth 32 random read/write 4K blocks size
13+
14+
Install
15+
=======
16+
17+
::
18+
19+
# system install
20+
$ sudo pip3 install disk-bench
21+
22+
# user install
23+
$ pip3 install --user disk-bench
24+
25+
Usage
26+
=====
27+
28+
::
29+
30+
$ disk-bench --help
31+
32+
# Default runs fio w/ --loops=3 and --size=1G
33+
$ disk-bench /mnt/disk-to-test/whatever
34+
35+
# Show CSV output (for easy copy/paste into Excel or Google Sheets)
36+
$ disk-bench /mnt/disk-to-test/whatever --style=csv
37+
38+
# Quick
39+
$ disk-bench /mnt/disk-to-test/whatever --loops=1 --size=1M

setup.py

Lines changed: 32 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,41 @@
1+
import os.path as osp
12
from setuptools import setup, find_packages
23

4+
cdir = osp.abspath(osp.dirname(__file__))
5+
README = open(osp.join(cdir, 'readme.rst')).read()
6+
CHANGELOG = open(osp.join(cdir, 'changelog.rst')).read()
7+
8+
version_fpath = osp.join(cdir, 'diskbench', 'version.py')
9+
version_globals = {}
10+
with open(version_fpath) as fo:
11+
exec(fo.read(), version_globals)
12+
313
setup(
414
name='diskbench',
5-
version='0.1',
6-
author='Level 12',
7-
author_email='devteam@level12.io',
8-
packages=find_packages(exclude=['misc']),
9-
15+
version=version_globals['VERSION'],
16+
description='CLI tool to benchmark drive performance',
17+
long_description='\n\n'.join((README, CHANGELOG)),
18+
author='Randy Syring',
19+
author_email='randy@thesyrings.us',
20+
url='https://github.com/rsyring/disk-bench',
21+
classifiers=[
22+
'Development Status :: 4 - Beta',
23+
'License :: OSI Approved :: MIT License',
24+
'Programming Language :: Python :: 3',
25+
'Programming Language :: Python :: 3.5',
26+
'Programming Language :: Python :: 3.6',
27+
'Programming Language :: Python :: 3.7',
28+
],
29+
license='MIT',
30+
packages=find_packages(exclude=['misc', '*.egg-info']),
31+
install_requires=[
32+
'click',
33+
'sh',
34+
'tableprint',
35+
],
1036
entry_points={ # Optional
1137
'console_scripts': [
12-
'db=diskbench.cli:db',
38+
'disk-bench=diskbench.cli:db',
1339
],
1440
},
1541
)

tox.ini

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
[tox]
2+
envlist = py{35,36,37},project
3+
4+
5+
[testenv]
6+
# Ignore all "not installed in testenv" warnings.
7+
whitelist_externals = *
8+
9+
commands =
10+
pipenv install --dev
11+
py.test \
12+
# feed a blank file so that a user's default pytest.ini doesn't get used
13+
-c .circleci/pytest.ini \
14+
-ra \
15+
--tb native \
16+
--strict \
17+
--cov diskbench \
18+
--cov-config .coveragerc \
19+
--cov-report xml \
20+
--no-cov-on-fail \
21+
--junit-xml={toxinidir}/.circleci/test-reports/{envname}.pytests.xml \
22+
diskbench
23+
24+
[testenv:project]
25+
basepython = python3.6
26+
skip_install = true
27+
usedevelop = false
28+
deps =
29+
flake8
30+
twine
31+
commands =
32+
python setup.py sdist
33+
twine check dist/*
34+
flake8 diskbench
35+
36+
[flake8]
37+
exclude = .tox,*egg,build,.git,dist,docs
38+
max-line-length = 100
39+
ignore = E265,E123,E133,E226,E241,E242

0 commit comments

Comments
 (0)