aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--python-packages/order_utils/LICENSE13
-rw-r--r--python-packages/order_utils/README.md45
-rwxr-xr-xpython-packages/order_utils/setup.py66
-rw-r--r--python-packages/order_utils/src/conf.py4
-rw-r--r--python-packages/order_utils/src/doc_static/.gitkeep0
-rw-r--r--python-packages/order_utils/src/doc_templates/.gitkeep0
-rw-r--r--python-packages/order_utils/src/index.rst4
-rw-r--r--python-packages/order_utils/src/zero_ex/__init__.py1
-rw-r--r--python-packages/order_utils/tox.ini13
-rw-r--r--readthedocs.yaml7
-rw-r--r--requirements.readthedocs.txt1
11 files changed, 137 insertions, 17 deletions
diff --git a/python-packages/order_utils/LICENSE b/python-packages/order_utils/LICENSE
new file mode 100644
index 000000000..9096fefaa
--- /dev/null
+++ b/python-packages/order_utils/LICENSE
@@ -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. \ No newline at end of file
diff --git a/python-packages/order_utils/README.md b/python-packages/order_utils/README.md
new file mode 100644
index 000000000..a266694db
--- /dev/null
+++ b/python-packages/order_utils/README.md
@@ -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.
diff --git a/python-packages/order_utils/setup.py b/python-packages/order_utils/setup.py
index 1a094cfe1..159499ec4 100755
--- a/python-packages/order_utils/setup.py
+++ b/python-packages/order_utils/setup.py
@@ -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",
],
diff --git a/python-packages/order_utils/src/conf.py b/python-packages/order_utils/src/conf.py
index e74a29d00..606cd3b2a 100644
--- a/python-packages/order_utils/src/conf.py
+++ b/python-packages/order_utils/src/conf.py
@@ -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 = [
diff --git a/python-packages/order_utils/src/doc_static/.gitkeep b/python-packages/order_utils/src/doc_static/.gitkeep
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/python-packages/order_utils/src/doc_static/.gitkeep
diff --git a/python-packages/order_utils/src/doc_templates/.gitkeep b/python-packages/order_utils/src/doc_templates/.gitkeep
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/python-packages/order_utils/src/doc_templates/.gitkeep
diff --git a/python-packages/order_utils/src/index.rst b/python-packages/order_utils/src/index.rst
index e09abcca2..9c26b7924 100644
--- a/python-packages/order_utils/src/index.rst
+++ b/python-packages/order_utils/src/index.rst
@@ -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
diff --git a/python-packages/order_utils/src/zero_ex/__init__.py b/python-packages/order_utils/src/zero_ex/__init__.py
index c3ed1562a..e90d833db 100644
--- a/python-packages/order_utils/src/zero_ex/__init__.py
+++ b/python-packages/order_utils/src/zero_ex/__init__.py
@@ -1 +1,2 @@
"""0x Python API."""
+__import__("pkg_resources").declare_namespace(__name__)
diff --git a/python-packages/order_utils/tox.ini b/python-packages/order_utils/tox.ini
index 1cce32b5f..ba7d55b56 100644
--- a/python-packages/order_utils/tox.ini
+++ b/python-packages/order_utils/tox.ini
@@ -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
diff --git a/readthedocs.yaml b/readthedocs.yaml
new file mode 100644
index 000000000..7023141da
--- /dev/null
+++ b/readthedocs.yaml
@@ -0,0 +1,7 @@
+build:
+ image: latest
+
+python:
+ version: 3.6
+
+requirements_file: requirements.readthedocs.txt
diff --git a/requirements.readthedocs.txt b/requirements.readthedocs.txt
new file mode 100644
index 000000000..4228f6562
--- /dev/null
+++ b/requirements.readthedocs.txt
@@ -0,0 +1 @@
+./python-packages/order_utils