fix(order_utils.py): tweaks for first publish (#1185)

This commit is contained in:
F. Eugene Aumson 2018-10-26 14:27:57 -04:00 committed by GitHub
parent 4c5b26db18
commit 0f63071696
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
11 changed files with 137 additions and 17 deletions

View File

@ -0,0 +1,13 @@
Copyright 2017 ZeroEx Inc.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

View File

@ -0,0 +1,45 @@
## 0x-order-utils
0x order-related utilities for those developing on top of 0x protocol.
Read the [documentation](https://0x.readthedocs.io/projects/order-utils/en/latest/)
## Installing
```bash
pip install 0x-order-utils
```
## Contributing
We welcome improvements and fixes from the wider community! To report bugs within this package, please create an issue in this repository.
Please read our [contribution guidelines](../../CONTRIBUTING.md) before getting started.
### Install Code and Dependencies
Ensure that you have Python >=3.6 installed, then:
```bash
pip install -e .[dev]
```
### Test
`./setup.py test`
### Clean
`./setup.py clean --all`
### Lint
`./setup.py lint`
### Build Documentation
`./setup.py build_sphinx`
### More
See `./setup.py --help-commands` for more info.

View File

@ -4,7 +4,7 @@
import subprocess # nosec
from shutil import rmtree
from os import environ, path, remove, walk
from os import environ, path
from sys import argv
from distutils.command.clean import clean
@ -27,6 +27,8 @@ class TestCommandExtension(TestCommand):
class LintCommand(distutils.command.build_py.build_py):
"""Custom setuptools command class for running linters."""
description = "Run linters"
def run(self):
"""Run linter shell commands."""
lint_commands = [
@ -73,31 +75,64 @@ class CleanCommandExtension(clean):
def run(self):
"""Run the regular clean, followed by our custom commands."""
super().run()
rmtree("build", ignore_errors=True)
rmtree("dist", ignore_errors=True)
rmtree(".mypy_cache", ignore_errors=True)
rmtree(".tox", ignore_errors=True)
rmtree(".pytest_cache", ignore_errors=True)
rmtree("src/order_utils.egg-info", ignore_errors=True)
# delete all .pyc files
for root, _, files in walk("."):
for file in files:
(_, extension) = path.splitext(file)
if extension == ".pyc":
remove(path.join(root, file))
# pylint: disable=too-many-ancestors
class TestPublishCommand(distutils.command.build_py.build_py):
"""Custom command to publish to test.pypi.org."""
description = (
"Publish dist/* to test.pypi.org. Run sdist & bdist_wheel first."
)
def run(self):
"""Run twine to upload to test.pypi.org."""
subprocess.check_call( # nosec
(
"twine upload --repository-url https://test.pypi.org/legacy/"
+ " --verbose dist/*"
).split()
)
# pylint: disable=too-many-ancestors
class PublishCommand(distutils.command.build_py.build_py):
"""Custom command to publish to pypi.org."""
description = "Publish dist/* to pypi.org. Run sdist & bdist_wheel first."
def run(self):
"""Run twine to upload to pypi.org."""
subprocess.check_call("twine upload dist/*".split()) # nosec
with open("README.md", "r") as file_handle:
README_MD = file_handle.read()
setup(
name="order_utils",
version="1.0.0",
name="0x-order-utils",
version="0.1.0",
description="Order utilities for 0x applications",
long_description=README_MD,
long_description_content_type="text/markdown",
url="https://github.com/0xproject/0x-monorepo/python-packages/order_utils",
author="F. Eugene Aumson",
author_email="feuGeneA@users.noreply.github.com",
cmdclass={
"clean": CleanCommandExtension,
"lint": LintCommand,
"test": TestCommandExtension,
"test_publish": TestPublishCommand,
"publish": PublishCommand,
},
include_package_data=True,
install_requires=["eth-abi", "web3"],
install_requires=["eth-abi", "mypy_extensions", "web3"],
extras_require={
"dev": [
"bandit",
@ -112,6 +147,7 @@ setup(
"pytest",
"sphinx",
"tox",
"twine",
]
},
python_requires=">=3.6, <4",
@ -121,9 +157,10 @@ setup(
keywords=(
"ethereum cryptocurrency 0x decentralized blockchain dex exchange"
),
packages=["zero_ex.order_utils"],
namespace_packages=["zero_ex"],
packages=["zero_ex.order_utils", "zero_ex.dev_utils"],
classifiers=[
"Development Status :: 1 - Planning",
"Development Status :: 2 - Pre-Alpha",
"Intended Audience :: Developers",
"Intended Audience :: Financial and Insurance Industry",
"License :: OSI Approved :: Apache Software License",
@ -133,7 +170,10 @@ setup(
"Programming Language :: Python :: 3 :: Only",
"Programming Language :: Python :: 3.6",
"Programming Language :: Python :: 3.7",
"Topic :: Internet :: WWW/HTTP",
"Topic :: Office/Business :: Financial",
"Topic :: Other/Nonlisted Topic",
"Topic :: Security :: Cryptography",
"Topic :: Software Development :: Libraries",
"Topic :: Utilities",
],

View File

@ -8,11 +8,11 @@ from typing import List
# pylint: disable=invalid-name
# because these variables are not named in upper case, as globals should be.
project = "order_utils.py"
project = "0x-order-utils"
# pylint: disable=redefined-builtin
copyright = "2018, ZeroEx, Intl."
author = "F. Eugene Aumson"
version = "" # The short X.Y version
version = "0.1.0" # The short X.Y version
release = "" # The full version, including alpha/beta/rc tags
extensions = [

View File

@ -1,7 +1,7 @@
.. source for the sphinx-generated build/docs/web/index.html
order_utils.py
==============
Python zero_ex.order_utils
==========================
.. toctree::
:maxdepth: 2

View File

@ -1 +1,2 @@
"""0x Python API."""
__import__("pkg_resources").declare_namespace(__name__)

View File

@ -10,3 +10,16 @@ envlist = py37
commands =
pip install -e .[dev]
python setup.py test
[testenv:run_tests_against_test_deployment]
commands =
# install dependencies from real PyPI
pip install eth-abi mypy_extensions web3 pytest
# install package-under-test from test PyPI
pip install --index-url https://test.pypi.org/legacy/ 0x-order-utils
pytest test
[testenv:run_tests_against_deployment]
commands =
pip install 0x-order-utils
pytest test

7
readthedocs.yaml Normal file
View File

@ -0,0 +1,7 @@
build:
image: latest
python:
version: 3.6
requirements_file: requirements.readthedocs.txt

View File

@ -0,0 +1 @@
./python-packages/order_utils