Skip to content
This repository has been archived by the owner on Jul 9, 2021. It is now read-only.

Commit

Permalink
fix(order_utils.py): tweaks for first publish (#1185)
Browse files Browse the repository at this point in the history
  • Loading branch information
feuGeneA authored Oct 26, 2018
1 parent 4c5b26d commit 0f63071
Show file tree
Hide file tree
Showing 11 changed files with 137 additions and 17 deletions.
13 changes: 13 additions & 0 deletions python-packages/order_utils/LICENSE
Original file line number Diff line number Diff line change
@@ -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.
45 changes: 45 additions & 0 deletions python-packages/order_utils/README.md
Original file line number Diff line number Diff line change
@@ -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.
66 changes: 53 additions & 13 deletions python-packages/order_utils/setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -27,6 +27,8 @@ def run_tests(self):
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 = [
Expand Down Expand Up @@ -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="[email protected]",
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",
Expand All @@ -112,6 +147,7 @@ def run(self):
"pytest",
"sphinx",
"tox",
"twine",
]
},
python_requires=">=3.6, <4",
Expand All @@ -121,9 +157,10 @@ def run(self):
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",
Expand All @@ -133,7 +170,10 @@ def run(self):
"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",
],
Expand Down
4 changes: 2 additions & 2 deletions python-packages/order_utils/src/conf.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,11 +8,11 @@
# 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 = [
Expand Down
Empty file.
Empty file.
4 changes: 2 additions & 2 deletions python-packages/order_utils/src/index.rst
Original file line number Diff line number Diff line change
@@ -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
Expand Down
1 change: 1 addition & 0 deletions python-packages/order_utils/src/zero_ex/__init__.py
Original file line number Diff line number Diff line change
@@ -1 +1,2 @@
"""0x Python API."""
__import__("pkg_resources").declare_namespace(__name__)
13 changes: 13 additions & 0 deletions python-packages/order_utils/tox.ini
Original file line number Diff line number Diff line change
Expand Up @@ -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 changes: 7 additions & 0 deletions readthedocs.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
build:
image: latest

python:
version: 3.6

requirements_file: requirements.readthedocs.txt
1 change: 1 addition & 0 deletions requirements.readthedocs.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
./python-packages/order_utils

0 comments on commit 0f63071

Please sign in to comment.