diff --git a/.github/workflows/libvcs-ci.yml b/.github/workflows/tests.yml similarity index 96% rename from .github/workflows/libvcs-ci.yml rename to .github/workflows/tests.yml index 3b7d56751..1a1713042 100644 --- a/.github/workflows/libvcs-ci.yml +++ b/.github/workflows/tests.yml @@ -1,4 +1,4 @@ -name: libvcs CI +name: tests on: [push] @@ -61,7 +61,7 @@ jobs: run: poetry run python -m pip install pip -U - name: Install dependencies - run: poetry install -E "docs test coverage lint format deploy" + run: poetry install -E "docs test coverage lint format" - name: Lint with flake8 run: poetry run flake8 diff --git a/.gitignore b/.gitignore index 991b92c1c..2e03763d0 100644 --- a/.gitignore +++ b/.gitignore @@ -80,9 +80,3 @@ pip-wheel-metadata/ # Used by publish-docs.yml CI .updated_files - -# mkdocs -site/ - -# vim -.vim/ diff --git a/CHANGES b/CHANGES index ef7e398d1..9e3179bd3 100644 --- a/CHANGES +++ b/CHANGES @@ -8,7 +8,7 @@ Generally speaking, refactor / magic is in the process of being stripped out in the next few releases. The API is subject to change significantly in pre-1.0 builds. -- [refactor] [#267](https://github.com/vcs-python/libvcs/pull/267) overhaul docs +- [refactor] [#267] overhaul docs - Move sphinx api format to Numpy-style @@ -18,13 +18,20 @@ in pre-1.0 builds. - Move from RTD to GitHub Action, full support of poetry extras packages, deploys straight to S3 and CloudFront +- [#270] Build and publish packages via poetry +- [#270] Overhaul development docs + +[#270]: https://github.com/vcs-python/libvcs/pull/270 +[#267]: https://github.com/vcs-python/libvcs/pull/267 ## libvcs 0.4.4 (2020-08-05) -- `268` `libvcs.base.BaseRepo`: +- [#268] `libvcs.base.BaseRepo`: - no longer sets `**kwargs` to dictionary on the object - remove `__slot__` and rename `name` attribute to `repo_name` +[#268]: https://github.com/vcs-python/libvcs/pull/268 + ## libvcs 0.4.3 (2020-08-01) - \[bug\] `libvcs.git.extract_status()` Fix issue capturing branch @@ -112,12 +119,14 @@ avoid implicit behavior. ## libvcs 0.3.1 (2020-07-25) - Fix issue with subprocess.Popen loud warning on Python 3.8 -- `296` - Move from Pipfile to poetry +- [#296] - Move from Pipfile to poetry - Sort imports - Add isort package, isort configuration in setup.cfg, and `make isort` task to Makefile. - Add `project_urls` to setup.py +[#296] https://github.com/vcs-python/libvcs/pull/296 + ## libvcs 0.3.0 (2018-03-12) - Move vcspull to the vcs-python organization @@ -137,8 +146,9 @@ avoid implicit behavior. ## libvcs 0.2.2 (2016-11-23) -- Fix bug with unused `support` module in vcspull. See - [\#43](https://github.com/vcs-python/vcspull/issues/43) +- Fix bug with unused `support` module in vcspull. See [vcspull#43] + +[vcspull#43]: https://github.com/vcs-python/vcspull/pull/43 ## libvcs 0.2.1 (2016-09-13) @@ -150,11 +160,14 @@ avoid implicit behavior. ## libvcs 0.2.0 (2016-06-24) -- `9` Support for `progress_callback` to use realtime output from +- [#9] Support for `progress_callback` to use realtime output from commands in progress (such as `git fetch`). -- `9` More tests, internal factoring and documentation, thanks @jcfr -- `9` Official support for pypy, pypy3 -- `11` : Fix unbound local when updating git repos +- [#9] More tests, internal factoring and documentation, thanks @jcfr +- [#9] Official support for pypy, pypy3 +- [#11] : Fix unbound local when updating git repos + +[#9]: https://github.com/vcs-python/libvcs/pull/9 +[#11]: https://github.com/vcs-python/libvcs/pull/11 ## libvcs 0.1.7 (2016-06-21) diff --git a/MANIFEST.in b/MANIFEST.in index 2b1f5f783..9250f254a 100644 --- a/MANIFEST.in +++ b/MANIFEST.in @@ -1,3 +1,2 @@ include README.md LICENSE CHANGES pyproject.toml .tmuxp.yaml -include requirements/*.txt recursive-include docs *.rst diff --git a/Makefile b/Makefile index 1773111cc..8e796b943 100644 --- a/Makefile +++ b/Makefile @@ -1,5 +1,6 @@ PY_FILES= find . -type f -not -path '*/\.*' | grep -i '.*[.]py$$' 2> /dev/null DOC_FILES= find . -type f -not -path '*/\.*' | grep -i '.*[.]rst\$\|.*[.]md\$\|.*[.]css\$\|.*[.]py\$\|mkdocs\.yml\|CHANGES\|TODO\|.*conf\.py' 2> /dev/null +SHELL := /bin/bash entr_warn: @@ -23,19 +24,19 @@ watch_test: if command -v entr > /dev/null; then ${PY_FILES} | entr -c $(MAKE) test; else $(MAKE) test entr_warn; fi build_docs: - poetry run mkdocs build + $(MAKE) -C docs html watch_docs: if command -v entr > /dev/null; then ${DOC_FILES} | entr -c $(MAKE) build_docs; else $(MAKE) build_docs entr_warn; fi serve_docs: - python -m http.server --directory site + $(MAKE) -C docs serve dev_docs: $(MAKE) -j watch_docs serve_docs flake8: - flake8 libvcs tests + poetry run flake8 watch_flake8: if command -v entr > /dev/null; then ${PY_FILES} | entr -c $(MAKE) flake8; else $(MAKE) flake8 entr_warn; fi diff --git a/README.rst b/README.rst index 8a7b3606d..ee932a697 100644 --- a/README.rst +++ b/README.rst @@ -2,7 +2,8 @@ |pypi| |docs| |build-status| |coverage| |license| -Install: +Setup +----- .. code-block:: sh @@ -18,6 +19,8 @@ Open up python: $ pip install ptpython $ ptpython +Usage +----- Create a `Repo`_ object of the project to inspect / checkout / update: .. code-block:: python @@ -50,7 +53,6 @@ Get revision: Donations --------- - Your donations fund development of new features, testing and support. Your money will go directly to maintenance and development of the project. If you are an individual, feel free to give whatever feels right for the @@ -60,33 +62,17 @@ See donation options at https://www.git-pull.com/support.html. More information ---------------- - -============== ========================================================== -Python support Python 2.7, >= 3.4, pypy -VCS supported git(1), svn(1), hg(1) -Source https://github.com/vcs-python/libvcs -Docs https://libvcs.git-pull.com -Changelog https://libvcs.git-pull.com/history.html -API https://libvcs.git-pull.com/api.html -Issues https://github.com/vcs-python/libvcs/issues -Test Coverage https://codecov.io/gh/vcs-python/libvcs -pypi https://pypi.python.org/pypi/libvcs -Open Hub https://www.openhub.net/p/libvcs -License `MIT`_. -git repo .. code-block:: bash - - $ git clone https://github.com/vcs-python/libvcs.git -install dev .. code-block:: bash - - $ git clone https://github.com/vcs-python/libvcs.git libvcs - $ cd ./libvcs - $ virtualenv .venv - $ source .venv/bin/activate - $ pip install -e . -tests .. code-block:: bash - - $ py.test -============== ========================================================== +- Python support: Python 2.7, >= 3.4, pypy +- VCS supported: git(1), svn(1), hg(1) +- Source: https://github.com/vcs-python/libvcs +- Docs: https://libvcs.git-pull.com +- Changelog: https://libvcs.git-pull.com/history.html +- API: https://libvcs.git-pull.com/api.html +- Issues: https://github.com/vcs-python/libvcs/issues +- Test Coverage: https://codecov.io/gh/vcs-python/libvcs +- pypi: https://pypi.python.org/pypi/libvcs +- Open Hub: https://www.openhub.net/p/libvcs +- License: `MIT`_. .. _MIT: https://opensource.org/licenses/MIT .. _Documentation: https://libvcs.git-pull.com/ @@ -99,13 +85,13 @@ tests .. code-block:: bash :alt: Python Package :target: http://badge.fury.io/py/libvcs -.. |docs| image:: https://github.com/tony/libvcs/workflows/Publish%20Docs/badge.svg +.. |docs| image:: https://github.com/vcs-python/libvcs/workflows/Publish%20Docs/badge.svg :alt: Docs :target: https://github.com/vcs-python/libvcs/actions?query=workflow%3A"Publish+Docs" -.. |build-status| image:: https://github.com/tony/libvcs/workflows/libvcs%20CI/badge.svg +.. |build-status| image:: https://github.com/vcs-python/libvcs/workflows/tests/badge.svg :alt: Build Status - :target: https://github.com/vcs-python/libvcs/actions?query=workflow%3A"libvcs+CI" + :target: https://github.com/vcs-python/libvcs/actions?query=workflow%3A"tests" .. |coverage| image:: https://codecov.io/gh/vcs-python/libvcs/branch/master/graph/badge.svg :alt: Code Coverage diff --git a/docs/Makefile b/docs/Makefile index 8279f6ed2..59e519ba1 100644 --- a/docs/Makefile +++ b/docs/Makefile @@ -159,7 +159,7 @@ checkbuild: rm -rf $(BUILDDIR) $(SPHINXBUILD) -n -q ./ $(BUILDDIR) -WATCH_FILES= find .. -type f -not -path '*/\.*' | grep -i '.*[.]rst\$\|.*[.]py\$\|CHANGES\|TODO\|.*conf\.py' 2> /dev/null +WATCH_FILES= find .. -type f -not -path '*/\.*' | grep -i '.*[.]rst\$\|.*[.].md\|.*[.]py\$\|CHANGES\|TODO\|.*conf\.py' 2> /dev/null watch: if command -v entr > /dev/null; then ${WATCH_FILES} | entr -c $(MAKE) html; else $(MAKE) html; fi diff --git a/docs/_static/favicon.ico b/docs/_static/favicon.ico index 5c64e90c0..d90c1606b 100644 Binary files a/docs/_static/favicon.ico and b/docs/_static/favicon.ico differ diff --git a/docs/conf.py b/docs/conf.py index 3696fcbb3..813708aec 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -1,9 +1,14 @@ # -*- coding: utf-8 -*- +import inspect import os +import sys +from os.path import dirname, relpath import alagitpull from recommonmark.transform import AutoStructify +import libvcs + # Get the project root dir, which is the parent dir of this cwd = os.getcwd() project_root = os.path.dirname(cwd) @@ -128,3 +133,74 @@ def setup(app): 'py': ('https://docs.python.org/2', None), 'pip': ('http://pip.readthedocs.io/en/latest/', None), } + + +def linkcode_resolve(domain, info): # NOQA: C901 + """ + Determine the URL corresponding to Python object + + Notes + ----- + From https://github.com/numpy/numpy/blob/v1.15.1/doc/source/conf.py, 7c49cfa + on Jul 31. License BSD-3. https://github.com/numpy/numpy/blob/v1.15.1/LICENSE.txt + """ + if domain != 'py': + return None + + modname = info['module'] + fullname = info['fullname'] + + submod = sys.modules.get(modname) + if submod is None: + return None + + obj = submod + for part in fullname.split('.'): + try: + obj = getattr(obj, part) + except Exception: + return None + + # strip decorators, which would resolve to the source of the decorator + # possibly an upstream bug in getsourcefile, bpo-1764286 + try: + unwrap = inspect.unwrap + except AttributeError: + pass + else: + obj = unwrap(obj) + + try: + fn = inspect.getsourcefile(obj) + except Exception: + fn = None + if not fn: + return None + + try: + source, lineno = inspect.getsourcelines(obj) + except Exception: + lineno = None + + if lineno: + linespec = "#L%d-L%d" % (lineno, lineno + len(source) - 1) + else: + linespec = "" + + fn = relpath(fn, start=dirname(libvcs.__file__)) + + if 'dev' in about['__version__']: + return "%s/blob/master/%s/%s%s" % ( + about['__github__'], + about['__package_name__'], + fn, + linespec, + ) + else: + return "%s/blob/v%s/%s/%s%s" % ( + about['__github__'], + about['__version__'], + about['__package_name__'], + fn, + linespec, + ) diff --git a/docs/developing.md b/docs/developing.md index ee42b86ea..64d0a3bab 100644 --- a/docs/developing.md +++ b/docs/developing.md @@ -1,106 +1,60 @@ # Development -## Testing +[poetry] is a required package to develop. -Our tests are inside `tests/`. Tests are implemented using -[pytest](http://pytest.org/). +`git clone https://github.com/vcs-python/libvcs.git` -## Install the latest code from git +`cd libvcs` -### Using pip +`poetry install -E "docs test coverage lint format"` -To begin developing, check out the code from github: +Makefile commands prefixed with `watch_` will watch files and rerun. - $ git clone git@github.com:vcs-python/libvcs.git - $ cd libvcs +## Tests -Now create a virtualenv, if you don't know how to, you can create a -virtualenv with: +`poetry run py.test` - $ virtualenv .venv +Helpers: `make test` +Rerun tests on file change: `make watch_test` (requires [entr(1)]) -Then activate it to current tty / terminal session with: +## Documentation - $ source .venv/bin/activate +Default preview server: http://localhost:8068 -Good! Now let's run this: +`cd docs/` and `make html` to build. `make serve` to start http server. - $ pip install -r requirements/test.txt -e . +Helpers: +`make build_docs`, `make serve_docs` -This has `pip`, a python package manager install the python package in -the current directory. `-e` means `--editable`, which means you can -adjust the code and the installed software will reflect the changes. +Rebuild docs on file change: `make watch_docs` (requires [entr(1)]) -### Using poetry +Rebuild docs and run server via one terminal: `make dev_docs` (requires above, and a +`make(1)` with `-J` support, e.g. GNU Make) -To begin developing, check out the code from github: +## Formatting / Linting - $ git clone git@github.com:vcs-python/libvcs.git - $ cd libvcs +The project uses [black] and [isort] (one after the other) and runs [flake8] via +CI. See the configuration in `pyproject.toml` and `setup.cfg`: -You can create a virtualenv, and install all of the locked packages as -listed in poetry.lock: +`make black isort`: Run `black` first, then `isort` to handle import nuances +`make flake8`, to watch (requires `entr(1)`): `make watch_flake8` - $ poetry install +## Releasing -If you ever need to update packages during your development session, the -following command can be used to update all packages as per poetry -settings or individual package (second command): +As of 0.10, [poetry] handles virtualenv creation, package requirements, versioning, +building, and publishing. Therefore there is no setup.py or requirements files. - $ poetry update - $ poetry update requests +Update `__version__` in `__about__.py` and `pyproject.toml`:: -Then activate it to your current tty / terminal session with: + git commit -m 'build(libvcs): Tag v0.1.1' + git tag v0.1.1 + git push + git push --tags + poetry build + poetry deploy - $ poetry shell - -That is it! You are now ready to code! - -## Test Runner - -As you seen above, the `libvcs` command will now be available to you, -since you are in the virtual environment, your PATH environment was updated to include a -special version of `python` inside your `.venv` folder with its own -packages. - - $ make test - -You probably didn't see anything but tests scroll by. - -If you found a problem or are trying to write a test, you can file an -[issue on github](https://github.com/vcs-python/libvcs/issues). - -#### Test runner options - -Test only a file: - - $ py.test tests/test_util.py - -will test the `tests/test_util.py` tests. - - $ py.test tests/test_util.py::test_mkdir_p - -tests `test_mkdir_p` inside of `tests/test_util.py`. - -Multiple can be separated by spaces: - - $ py.test tests/test_{git,svn}.py tests/test_util.py::test_mkdir_p - -## Docs - -Build docs to _site/_: - - $ make build_docs - -Serve docs from http://localhost:8000: - - $ make serve_docs - -Rebuild docs when files are edited (requires [`entr(1)`](http://eradman.com/entrproject/)): - - $ make watch_docs - -Serve + watch w/ rebuild (requires `make(1)` w/ `-j` support, usually GNU Make): - - $ make dev_docs +[poetry]: https://python-poetry.org/ +[entr(1)]: http://eradman.com/entrproject/ +[black]: https://github.com/psf/black +[isort]: https://pypi.org/project/isort/ +[flake8]: https://flake8.pycqa.org/ diff --git a/docs/index.md b/docs/index.md deleted file mode 100644 index af9017929..000000000 --- a/docs/index.md +++ /dev/null @@ -1,15 +0,0 @@ -# libvcs - vcs abstraction layer - -```eval_rst - -.. include:: ../README.rst - :start-line: 4 - -.. toctree:: - :maxdepth: 2 - :hidden: - - api - developing - history -``` diff --git a/docs/index.rst b/docs/index.rst new file mode 100644 index 000000000..0e853603a --- /dev/null +++ b/docs/index.rst @@ -0,0 +1,17 @@ +.. _index: + +libvcs - vcs abstraction layer +============================== + +.. include:: ../README.rst + :start-line: 1 + +Table of contents +----------------- +.. toctree:: + :maxdepth: 2 + :hidden: + + api + developing + history diff --git a/docs/requirements.txt b/docs/requirements.txt deleted file mode 100644 index 04b4dec7d..000000000 --- a/docs/requirements.txt +++ /dev/null @@ -1 +0,0 @@ --r ../requirements/doc.txt diff --git a/libvcs/__about__.py b/libvcs/__about__.py index c581f44e0..f23512781 100644 --- a/libvcs/__about__.py +++ b/libvcs/__about__.py @@ -1,7 +1,7 @@ __title__ = 'libvcs' __package_name__ = 'libvcs' __description__ = 'vcs abstraction layer' -__version__ = '0.4.4' +__version__ = '0.5.0a2' __author__ = 'Tony Narlock' __github__ = 'https://github.com/vcs-python/libvcs' __docs__ = 'https://libvcs.git-pull.com' diff --git a/poetry.lock b/poetry.lock index 720a51e1e..fd8426e89 100644 --- a/poetry.lock +++ b/poetry.lock @@ -96,42 +96,19 @@ typed-ast = ">=1.4.0" [package.extras] d = ["aiohttp (>=3.3.2)", "aiohttp-cors"] -[[package]] -category = "dev" -description = "An easy safelist-based HTML-sanitizing tool." -name = "bleach" -optional = false -python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" -version = "3.1.5" - -[package.dependencies] -packaging = "*" -six = ">=1.9.0" -webencodings = "*" - [[package]] category = "dev" description = "Python package for providing Mozilla's CA Bundle." +marker = "python_version < \"3\" or python_version >= \"3\"" name = "certifi" optional = false python-versions = "*" version = "2020.6.20" -[[package]] -category = "dev" -description = "Foreign Function Interface for Python calling C code." -marker = "sys_platform == \"linux\"" -name = "cffi" -optional = false -python-versions = "*" -version = "1.14.1" - -[package.dependencies] -pycparser = "*" - [[package]] category = "dev" description = "Universal encoding detector for Python 2 and 3" +marker = "python_version < \"3\" or python_version >= \"3\"" name = "chardet" optional = false python-versions = "*" @@ -161,6 +138,7 @@ requests = ">=2.7.9" [[package]] category = "dev" description = "Cross-platform colored terminal text." +marker = "python_version < \"3\" and sys_platform == \"win32\" or python_version >= \"3\" and sys_platform == \"win32\"" name = "colorama" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" @@ -215,27 +193,6 @@ version = "5.2.1" [package.extras] toml = ["toml"] -[[package]] -category = "dev" -description = "cryptography is a package which provides cryptographic recipes and primitives to Python developers." -marker = "sys_platform == \"linux\"" -name = "cryptography" -optional = false -python-versions = ">=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*" -version = "3.0" - -[package.dependencies] -cffi = ">=1.8,<1.11.3 || >1.11.3" -six = ">=1.4.1" - -[package.extras] -docs = ["sphinx (>=1.6.5,<1.8.0 || >1.8.0,<3.1.0 || >3.1.0,<3.1.1 || >3.1.1)", "sphinx-rtd-theme"] -docstest = ["doc8", "pyenchant (>=1.6.11)", "twine (>=1.12.0)", "sphinxcontrib-spelling (>=4.0.1)"] -idna = ["idna (>=2.1)"] -pep8test = ["black", "flake8", "flake8-import-order", "pep8-naming"] -ssh = ["bcrypt (>=3.1.5)"] -test = ["pytest (>=3.6.0,<3.9.0 || >3.9.0,<3.9.1 || >3.9.1,<3.9.2 || >3.9.2)", "pretend", "iso8601", "pytz", "hypothesis (>=1.11.4,<3.79.2 || >3.79.2)"] - [[package]] category = "dev" description = "Docutils -- Python Documentation Utilities" @@ -325,6 +282,7 @@ version = "3.3.0" [[package]] category = "dev" description = "Internationalized Domain Names in Applications (IDNA)" +marker = "python_version < \"3\" or python_version >= \"3\"" name = "idna" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" @@ -414,18 +372,6 @@ colors = ["colorama (>=0.4.3,<0.5.0)"] pipfile_deprecated_finder = ["pipreqs", "requirementslib", "tomlkit (>=0.5.3)"] requirements_deprecated_finder = ["pipreqs", "pip-api"] -[[package]] -category = "dev" -description = "Low-level, pure Python DBus protocol wrapper." -marker = "sys_platform == \"linux\"" -name = "jeepney" -optional = false -python-versions = ">=3.5" -version = "0.4.3" - -[package.extras] -dev = ["testpath"] - [[package]] category = "dev" description = "A very fast and expressive template engine." @@ -441,27 +387,6 @@ MarkupSafe = ">=0.23" [package.extras] i18n = ["Babel (>=0.8)"] -[[package]] -category = "dev" -description = "Store and access your passwords safely." -name = "keyring" -optional = false -python-versions = ">=3.6" -version = "21.3.0" - -[package.dependencies] -SecretStorage = ">=3" -jeepney = ">=0.4.2" -pywin32-ctypes = "<0.1.0 || >0.1.0,<0.1.1 || >0.1.1" - -[package.dependencies.importlib-metadata] -python = "<3.8" -version = "*" - -[package.extras] -docs = ["sphinx", "jaraco.packaging (>=3.2)", "rst.linker (>=1.9)"] -testing = ["pytest (>=3.5,<3.7.3 || >3.7.3)", "pytest-checkdocs (>=1.2.3)", "pytest-flake8", "pytest-black (>=0.3.7)", "pytest-cov", "pytest-mypy"] - [[package]] category = "dev" description = "Safely add untrusted strings to HTML/XML markup." @@ -524,6 +449,7 @@ version = "8.4.0" [[package]] category = "dev" description = "Core utilities for Python packages" +marker = "python_version < \"3\" or python_version >= \"3\"" name = "packaging" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" @@ -570,17 +496,6 @@ optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" version = "0.8.0" -[[package]] -category = "dev" -description = "Query metadatdata from sdists / bdists / installed packages." -name = "pkginfo" -optional = false -python-versions = "*" -version = "1.5.0.1" - -[package.extras] -testing = ["nose", "coverage"] - [[package]] category = "dev" description = "plugin and hook calling mechanisms for python" @@ -615,15 +530,6 @@ optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" version = "2.6.0" -[[package]] -category = "dev" -description = "C parser in Python" -marker = "sys_platform == \"linux\"" -name = "pycparser" -optional = false -python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" -version = "2.20" - [[package]] category = "dev" description = "passive checker of Python programs" @@ -635,6 +541,7 @@ version = "2.2.0" [[package]] category = "dev" description = "Pygments is a syntax highlighting package written in Python." +marker = "python_version < \"3\"" name = "pygments" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" @@ -643,6 +550,7 @@ version = "2.5.2" [[package]] category = "dev" description = "Pygments is a syntax highlighting package written in Python." +marker = "python_version >= \"3\"" name = "pygments" optional = false python-versions = ">=3.5" @@ -827,32 +735,6 @@ optional = false python-versions = "*" version = "2020.1" -[[package]] -category = "dev" -description = "" -marker = "sys_platform == \"win32\"" -name = "pywin32-ctypes" -optional = false -python-versions = "*" -version = "0.2.0" - -[[package]] -category = "dev" -description = "readme_renderer is a library for rendering \"readme\" descriptions for Warehouse" -name = "readme-renderer" -optional = false -python-versions = "*" -version = "26.0" - -[package.dependencies] -Pygments = ">=2.5.1" -bleach = ">=2.1.0" -docutils = ">=0.13.1" -six = "*" - -[package.extras] -md = ["cmarkgfm (>=0.2.0)"] - [[package]] category = "dev" description = "A docutils-compatibility bridge to CommonMark, enabling you to write CommonMark inside of Docutils & Sphinx projects." @@ -893,28 +775,6 @@ urllib3 = ">=1.21.1,<1.25.0 || >1.25.0,<1.25.1 || >1.25.1,<1.26" security = ["pyOpenSSL (>=0.14)", "cryptography (>=1.3.4)"] socks = ["PySocks (>=1.5.6,<1.5.7 || >1.5.7)", "win-inet-pton"] -[[package]] -category = "dev" -description = "A utility belt for advanced users of python-requests" -name = "requests-toolbelt" -optional = false -python-versions = "*" -version = "0.9.1" - -[package.dependencies] -requests = ">=2.0.1,<3.0.0" - -[[package]] -category = "dev" -description = "Validating URI References per RFC 3986" -name = "rfc3986" -optional = false -python-versions = "*" -version = "1.4.0" - -[package.extras] -idna2008 = ["idna"] - [[package]] category = "dev" description = "scandir, a better directory iterator and faster os.walk()" @@ -924,22 +784,10 @@ optional = false python-versions = "*" version = "1.10.0" -[[package]] -category = "dev" -description = "Python bindings to FreeDesktop.org Secret Service API" -marker = "sys_platform == \"linux\"" -name = "secretstorage" -optional = false -python-versions = ">=3.5" -version = "3.1.2" - -[package.dependencies] -cryptography = "*" -jeepney = ">=0.4.2" - [[package]] category = "dev" description = "Python 2 and 3 compatibility utilities" +marker = "python_version < \"3\" or python_version >= \"3\" or python_version >= \"3\" and python_version < \"3.6\"" name = "six" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*" @@ -1131,60 +979,6 @@ optional = false python-versions = "*" version = "0.10.1" -[[package]] -category = "dev" -description = "Fast, Extensible Progress Meter" -name = "tqdm" -optional = false -python-versions = ">=2.6, !=3.0.*, !=3.1.*" -version = "4.48.2" - -[package.extras] -dev = ["py-make (>=0.1.0)", "twine", "argopt", "pydoc-markdown"] - -[[package]] -category = "dev" -description = "Collection of utilities for publishing packages on PyPI" -name = "twine" -optional = false -python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" -version = "1.15.0" - -[package.dependencies] -pkginfo = ">=1.4.2" -readme-renderer = ">=21.0" -requests = ">=2.5.0,<2.15 || >2.15,<2.16 || >2.16" -requests-toolbelt = ">=0.8.0,<0.9.0 || >0.9.0" -setuptools = ">=0.7.0" -tqdm = ">=4.14" - -[package.extras] -keyring = ["keyring"] -with-blake2 = ["pyblake2"] - -[[package]] -category = "dev" -description = "Collection of utilities for publishing packages on PyPI" -name = "twine" -optional = false -python-versions = ">=3.6" -version = "3.2.0" - -[package.dependencies] -colorama = ">=0.4.3" -keyring = ">=15.1" -pkginfo = ">=1.4.2" -readme-renderer = ">=21.0" -requests = ">=2.20" -requests-toolbelt = ">=0.8.0,<0.9.0 || >0.9.0" -rfc3986 = ">=1.4.0" -setuptools = ">=0.7.0" -tqdm = ">=4.14" - -[package.dependencies.importlib-metadata] -python = "<3.8" -version = "*" - [[package]] category = "dev" description = "a fork of Python 2 and 3 ast modules with type comment support" @@ -1206,6 +1000,7 @@ version = "3.7.4.3" [[package]] category = "dev" description = "HTTP library with thread-safe connection pooling, file post, and more." +marker = "python_version < \"3\" or python_version >= \"3\"" name = "urllib3" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, <4" @@ -1230,14 +1025,6 @@ version = "0.2.5" python = "<3.2" version = ">=1.2.1" -[[package]] -category = "dev" -description = "Character encoding aliases for legacy web content" -name = "webencodings" -optional = false -python-versions = "*" -version = "0.5.1" - [[package]] category = "dev" description = "Backport of pathlib-compatible object wrapper for zip files" @@ -1271,14 +1058,13 @@ testing = ["jaraco.itertools", "func-timeout"] [extras] coverage = [] -deploy = [] docs = [] format = [] lint = [] test = [] [metadata] -content-hash = "d77b2d26f55bf376802e5546d258bd1ac0b5195b3f389dc58946d527a7e6ff23" +content-hash = "0730c649b0f54101ee02a529ae9483a15bba3aa327830c04e9a4f1d0e0e47fea" lock-version = "1.0" python-versions = "~2.7 || ^3.5" @@ -1315,44 +1101,10 @@ black = [ {file = "black-19.10b0-py36-none-any.whl", hash = "sha256:1b30e59be925fafc1ee4565e5e08abef6b03fe455102883820fe5ee2e4734e0b"}, {file = "black-19.10b0.tar.gz", hash = "sha256:c2edb73a08e9e0e6f65a0e6af18b059b8b1cdd5bef997d7a0b181df93dc81539"}, ] -bleach = [ - {file = "bleach-3.1.5-py2.py3-none-any.whl", hash = "sha256:2bce3d8fab545a6528c8fa5d9f9ae8ebc85a56da365c7f85180bfe96a35ef22f"}, - {file = "bleach-3.1.5.tar.gz", hash = "sha256:3c4c520fdb9db59ef139915a5db79f8b51bc2a7257ea0389f30c846883430a4b"}, -] certifi = [ {file = "certifi-2020.6.20-py2.py3-none-any.whl", hash = "sha256:8fc0819f1f30ba15bdb34cceffb9ef04d99f420f68eb75d901e9560b8749fc41"}, {file = "certifi-2020.6.20.tar.gz", hash = "sha256:5930595817496dd21bb8dc35dad090f1c2cd0adfaf21204bf6732ca5d8ee34d3"}, ] -cffi = [ - {file = "cffi-1.14.1-cp27-cp27m-macosx_10_9_x86_64.whl", hash = "sha256:66dd45eb9530e3dde8f7c009f84568bc7cac489b93d04ac86e3111fb46e470c2"}, - {file = "cffi-1.14.1-cp27-cp27m-manylinux1_i686.whl", hash = "sha256:4f53e4128c81ca3212ff4cf097c797ab44646a40b42ec02a891155cd7a2ba4d8"}, - {file = "cffi-1.14.1-cp27-cp27m-manylinux1_x86_64.whl", hash = "sha256:833401b15de1bb92791d7b6fb353d4af60dc688eaa521bd97203dcd2d124a7c1"}, - {file = "cffi-1.14.1-cp27-cp27m-win32.whl", hash = "sha256:26f33e8f6a70c255767e3c3f957ccafc7f1f706b966e110b855bfe944511f1f9"}, - {file = "cffi-1.14.1-cp27-cp27m-win_amd64.whl", hash = "sha256:b87dfa9f10a470eee7f24234a37d1d5f51e5f5fa9eeffda7c282e2b8f5162eb1"}, - {file = "cffi-1.14.1-cp27-cp27mu-manylinux1_i686.whl", hash = "sha256:effd2ba52cee4ceff1a77f20d2a9f9bf8d50353c854a282b8760ac15b9833168"}, - {file = "cffi-1.14.1-cp27-cp27mu-manylinux1_x86_64.whl", hash = "sha256:bac0d6f7728a9cc3c1e06d4fcbac12aaa70e9379b3025b27ec1226f0e2d404cf"}, - {file = "cffi-1.14.1-cp35-cp35m-macosx_10_9_x86_64.whl", hash = "sha256:d6033b4ffa34ef70f0b8086fd4c3df4bf801fee485a8a7d4519399818351aa8e"}, - {file = "cffi-1.14.1-cp35-cp35m-manylinux1_i686.whl", hash = "sha256:8416ed88ddc057bab0526d4e4e9f3660f614ac2394b5e019a628cdfff3733849"}, - {file = "cffi-1.14.1-cp35-cp35m-manylinux1_x86_64.whl", hash = "sha256:892daa86384994fdf4856cb43c93f40cbe80f7f95bb5da94971b39c7f54b3a9c"}, - {file = "cffi-1.14.1-cp35-cp35m-win32.whl", hash = "sha256:c991112622baee0ae4d55c008380c32ecfd0ad417bcd0417ba432e6ba7328caa"}, - {file = "cffi-1.14.1-cp35-cp35m-win_amd64.whl", hash = "sha256:fcf32bf76dc25e30ed793145a57426064520890d7c02866eb93d3e4abe516948"}, - {file = "cffi-1.14.1-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:f960375e9823ae6a07072ff7f8a85954e5a6434f97869f50d0e41649a1c8144f"}, - {file = "cffi-1.14.1-cp36-cp36m-manylinux1_i686.whl", hash = "sha256:a6d28e7f14ecf3b2ad67c4f106841218c8ab12a0683b1528534a6c87d2307af3"}, - {file = "cffi-1.14.1-cp36-cp36m-manylinux1_x86_64.whl", hash = "sha256:cda422d54ee7905bfc53ee6915ab68fe7b230cacf581110df4272ee10462aadc"}, - {file = "cffi-1.14.1-cp36-cp36m-win32.whl", hash = "sha256:4a03416915b82b81af5502459a8a9dd62a3c299b295dcdf470877cb948d655f2"}, - {file = "cffi-1.14.1-cp36-cp36m-win_amd64.whl", hash = "sha256:4ce1e995aeecf7cc32380bc11598bfdfa017d592259d5da00fc7ded11e61d022"}, - {file = "cffi-1.14.1-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:e23cb7f1d8e0f93addf0cae3c5b6f00324cccb4a7949ee558d7b6ca973ab8ae9"}, - {file = "cffi-1.14.1-cp37-cp37m-manylinux1_i686.whl", hash = "sha256:ddff0b2bd7edcc8c82d1adde6dbbf5e60d57ce985402541cd2985c27f7bec2a0"}, - {file = "cffi-1.14.1-cp37-cp37m-manylinux1_x86_64.whl", hash = "sha256:f90c2267101010de42f7273c94a1f026e56cbc043f9330acd8a80e64300aba33"}, - {file = "cffi-1.14.1-cp37-cp37m-win32.whl", hash = "sha256:3cd2c044517f38d1b577f05927fb9729d3396f1d44d0c659a445599e79519792"}, - {file = "cffi-1.14.1-cp37-cp37m-win_amd64.whl", hash = "sha256:4fa72a52a906425416f41738728268072d5acfd48cbe7796af07a923236bcf96"}, - {file = "cffi-1.14.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:267adcf6e68d77ba154334a3e4fc921b8e63cbb38ca00d33d40655d4228502bc"}, - {file = "cffi-1.14.1-cp38-cp38-manylinux1_i686.whl", hash = "sha256:d3148b6ba3923c5850ea197a91a42683f946dba7e8eb82dfa211ab7e708de939"}, - {file = "cffi-1.14.1-cp38-cp38-manylinux1_x86_64.whl", hash = "sha256:98be759efdb5e5fa161e46d404f4e0ce388e72fbf7d9baf010aff16689e22abe"}, - {file = "cffi-1.14.1-cp38-cp38-win32.whl", hash = "sha256:6923d077d9ae9e8bacbdb1c07ae78405a9306c8fd1af13bfa06ca891095eb995"}, - {file = "cffi-1.14.1-cp38-cp38-win_amd64.whl", hash = "sha256:b1d6ebc891607e71fd9da71688fcf332a6630b7f5b7f5549e6e631821c0e5d90"}, - {file = "cffi-1.14.1.tar.gz", hash = "sha256:b2a2b0d276a136146e012154baefaea2758ef1f56ae9f4e01c612b0831e0bd2f"}, -] chardet = [ {file = "chardet-3.0.4-py2.py3-none-any.whl", hash = "sha256:fc323ffcaeaed0e0a02bf4d117757b98aed530d9ed4531e3e15460124c106691"}, {file = "chardet-3.0.4.tar.gz", hash = "sha256:84ab92ed1c4d4f16916e05906b6b75a6c0fb5db821cc65e70cbd64a3e2a5eaae"}, @@ -1418,27 +1170,6 @@ coverage = [ {file = "coverage-5.2.1-cp39-cp39-win_amd64.whl", hash = "sha256:b8f58c7db64d8f27078cbf2a4391af6aa4e4767cc08b37555c4ae064b8558d9b"}, {file = "coverage-5.2.1.tar.gz", hash = "sha256:a34cb28e0747ea15e82d13e14de606747e9e484fb28d63c999483f5d5188e89b"}, ] -cryptography = [ - {file = "cryptography-3.0-cp27-cp27m-macosx_10_10_x86_64.whl", hash = "sha256:ab49edd5bea8d8b39a44b3db618e4783ef84c19c8b47286bf05dfdb3efb01c83"}, - {file = "cryptography-3.0-cp27-cp27m-manylinux1_x86_64.whl", hash = "sha256:124af7255ffc8e964d9ff26971b3a6153e1a8a220b9a685dc407976ecb27a06a"}, - {file = "cryptography-3.0-cp27-cp27m-manylinux2010_x86_64.whl", hash = "sha256:51e40123083d2f946794f9fe4adeeee2922b581fa3602128ce85ff813d85b81f"}, - {file = "cryptography-3.0-cp27-cp27m-win32.whl", hash = "sha256:dea0ba7fe6f9461d244679efa968d215ea1f989b9c1957d7f10c21e5c7c09ad6"}, - {file = "cryptography-3.0-cp27-cp27m-win_amd64.whl", hash = "sha256:8ecf9400d0893836ff41b6f977a33972145a855b6efeb605b49ee273c5e6469f"}, - {file = "cryptography-3.0-cp27-cp27mu-manylinux1_x86_64.whl", hash = "sha256:0c608ff4d4adad9e39b5057de43657515c7da1ccb1807c3a27d4cf31fc923b4b"}, - {file = "cryptography-3.0-cp27-cp27mu-manylinux2010_x86_64.whl", hash = "sha256:bec7568c6970b865f2bcebbe84d547c52bb2abadf74cefce396ba07571109c67"}, - {file = "cryptography-3.0-cp35-abi3-macosx_10_10_x86_64.whl", hash = "sha256:0cbfed8ea74631fe4de00630f4bb592dad564d57f73150d6f6796a24e76c76cd"}, - {file = "cryptography-3.0-cp35-abi3-manylinux1_x86_64.whl", hash = "sha256:a09fd9c1cca9a46b6ad4bea0a1f86ab1de3c0c932364dbcf9a6c2a5eeb44fa77"}, - {file = "cryptography-3.0-cp35-abi3-manylinux2010_x86_64.whl", hash = "sha256:ce82cc06588e5cbc2a7df3c8a9c778f2cb722f56835a23a68b5a7264726bb00c"}, - {file = "cryptography-3.0-cp35-cp35m-win32.whl", hash = "sha256:9367d00e14dee8d02134c6c9524bb4bd39d4c162456343d07191e2a0b5ec8b3b"}, - {file = "cryptography-3.0-cp35-cp35m-win_amd64.whl", hash = "sha256:384d7c681b1ab904fff3400a6909261cae1d0939cc483a68bdedab282fb89a07"}, - {file = "cryptography-3.0-cp36-cp36m-win32.whl", hash = "sha256:4d355f2aee4a29063c10164b032d9fa8a82e2c30768737a2fd56d256146ad559"}, - {file = "cryptography-3.0-cp36-cp36m-win_amd64.whl", hash = "sha256:45741f5499150593178fc98d2c1a9c6722df88b99c821ad6ae298eff0ba1ae71"}, - {file = "cryptography-3.0-cp37-cp37m-win32.whl", hash = "sha256:8ecef21ac982aa78309bb6f092d1677812927e8b5ef204a10c326fc29f1367e2"}, - {file = "cryptography-3.0-cp37-cp37m-win_amd64.whl", hash = "sha256:4b9303507254ccb1181d1803a2080a798910ba89b1a3c9f53639885c90f7a756"}, - {file = "cryptography-3.0-cp38-cp38-win32.whl", hash = "sha256:8713ddb888119b0d2a1462357d5946b8911be01ddbf31451e1d07eaa5077a261"}, - {file = "cryptography-3.0-cp38-cp38-win_amd64.whl", hash = "sha256:bea0b0468f89cdea625bb3f692cd7a4222d80a6bdafd6fb923963f2b9da0e15f"}, - {file = "cryptography-3.0.tar.gz", hash = "sha256:8e924dbc025206e97756e8903039662aa58aa9ba357d8e1d8fc29e3092322053"}, -] docutils = [ {file = "docutils-0.16-py2.py3-none-any.whl", hash = "sha256:0c5b78adfbf7762415433f5515cd5c9e762339e23369dbe8000d84a4bf4ab3af"}, {file = "docutils-0.16.tar.gz", hash = "sha256:c2de3a60e9e7d07be26b7f2b00ca0309c207e06c100f9cc2a94931fc75a478fc"}, @@ -1489,18 +1220,10 @@ isort = [ {file = "isort-5.3.2-py3-none-any.whl", hash = "sha256:5196bd2f5b23dc91215734b1c96c6d28390061d69860a948094c12635d6d64e6"}, {file = "isort-5.3.2.tar.gz", hash = "sha256:ba83762132a8661d3525f87a86549712fb7d8da79eeb452e01f327ada9e87920"}, ] -jeepney = [ - {file = "jeepney-0.4.3-py3-none-any.whl", hash = "sha256:d6c6b49683446d2407d2fe3acb7a368a77ff063f9182fe427da15d622adc24cf"}, - {file = "jeepney-0.4.3.tar.gz", hash = "sha256:3479b861cc2b6407de5188695fa1a8d57e5072d7059322469b62628869b8e36e"}, -] jinja2 = [ {file = "Jinja2-2.11.2-py2.py3-none-any.whl", hash = "sha256:f0a4641d3cf955324a89c04f3d94663aa4d638abe8f733ecd3582848e1c37035"}, {file = "Jinja2-2.11.2.tar.gz", hash = "sha256:89aab215427ef59c34ad58735269eb58b1a5808103067f7bb9d5836c651b3bb0"}, ] -keyring = [ - {file = "keyring-21.3.0-py3-none-any.whl", hash = "sha256:e7a17caf40c40b6bb8c4772224a487e4a63013560ed0c521065aeba7ecd42182"}, - {file = "keyring-21.3.0.tar.gz", hash = "sha256:22df6abfed49912fc560806030051067fba9f0069cffa79da72899aeea4ccbd5"}, -] markupsafe = [ {file = "MarkupSafe-1.1.1-cp27-cp27m-macosx_10_6_intel.whl", hash = "sha256:09027a7803a62ca78792ad89403b1b7a73a01c8cb65909cd876f7fcebd79b161"}, {file = "MarkupSafe-1.1.1-cp27-cp27m-manylinux1_i686.whl", hash = "sha256:e249096428b3ae81b08327a63a485ad0878de3fb939049038579ac0ef61e17e7"}, @@ -1565,10 +1288,6 @@ pathspec = [ {file = "pathspec-0.8.0-py2.py3-none-any.whl", hash = "sha256:7d91249d21749788d07a2d0f94147accd8f845507400749ea19c1ec9054a12b0"}, {file = "pathspec-0.8.0.tar.gz", hash = "sha256:da45173eb3a6f2a5a487efba21f050af2b41948be6ab52b6a1e3ff22bb8b7061"}, ] -pkginfo = [ - {file = "pkginfo-1.5.0.1-py2.py3-none-any.whl", hash = "sha256:a6d9e40ca61ad3ebd0b72fbadd4fba16e4c0e4df0428c041e01e06eb6ee71f32"}, - {file = "pkginfo-1.5.0.1.tar.gz", hash = "sha256:7424f2c8511c186cd5424bbf31045b77435b37a8d604990b79d4e70d741148bb"}, -] pluggy = [ {file = "pluggy-0.13.1-py2.py3-none-any.whl", hash = "sha256:966c145cd83c96502c3c3868f50408687b38434af77734af1e9ca461a4081d2d"}, {file = "pluggy-0.13.1.tar.gz", hash = "sha256:15b2acde666561e1298d71b523007ed7364de07029219b604cf808bfa1c765b0"}, @@ -1581,10 +1300,6 @@ pycodestyle = [ {file = "pycodestyle-2.6.0-py2.py3-none-any.whl", hash = "sha256:2295e7b2f6b5bd100585ebcb1f616591b652db8a741695b3d8f5d28bdc934367"}, {file = "pycodestyle-2.6.0.tar.gz", hash = "sha256:c58a7d2815e0e8d7972bf1803331fb0152f867bd89adf8a01dfd55085434192e"}, ] -pycparser = [ - {file = "pycparser-2.20-py2.py3-none-any.whl", hash = "sha256:7582ad22678f0fcd81102833f60ef8d0e57288b6b5fb00323d101be910e35705"}, - {file = "pycparser-2.20.tar.gz", hash = "sha256:2d475327684562c3a96cc71adf7dc8c4f0565175cf86b6d7a404ff4c771f15f0"}, -] pyflakes = [ {file = "pyflakes-2.2.0-py2.py3-none-any.whl", hash = "sha256:0d94e0e05a19e57a99444b6ddcf9a6eb2e5c68d3ca1e98e90707af8152c90a92"}, {file = "pyflakes-2.2.0.tar.gz", hash = "sha256:35b2d75ee967ea93b55750aa9edbbf72813e06a66ba54438df2cfac9e3c27fc8"}, @@ -1627,14 +1342,6 @@ pytz = [ {file = "pytz-2020.1-py2.py3-none-any.whl", hash = "sha256:a494d53b6d39c3c6e44c3bec237336e14305e4f29bbf800b599253057fbb79ed"}, {file = "pytz-2020.1.tar.gz", hash = "sha256:c35965d010ce31b23eeb663ed3cc8c906275d6be1a34393a1d73a41febf4a048"}, ] -pywin32-ctypes = [ - {file = "pywin32-ctypes-0.2.0.tar.gz", hash = "sha256:24ffc3b341d457d48e8922352130cf2644024a4ff09762a2261fd34c36ee5942"}, - {file = "pywin32_ctypes-0.2.0-py2.py3-none-any.whl", hash = "sha256:9dc2d991b3479cc2df15930958b674a48a227d5361d413827a4cfd0b5876fc98"}, -] -readme-renderer = [ - {file = "readme_renderer-26.0-py2.py3-none-any.whl", hash = "sha256:cc4957a803106e820d05d14f71033092537a22daa4f406dfbdd61177e0936376"}, - {file = "readme_renderer-26.0.tar.gz", hash = "sha256:cbe9db71defedd2428a1589cdc545f9bd98e59297449f69d721ef8f1cfced68d"}, -] recommonmark = [ {file = "recommonmark-0.6.0-py2.py3-none-any.whl", hash = "sha256:2ec4207a574289355d5b6ae4ae4abb29043346ca12cdd5f07d374dc5987d2852"}, {file = "recommonmark-0.6.0.tar.gz", hash = "sha256:29cd4faeb6c5268c633634f2d69aef9431e0f4d347f90659fd0aab20e541efeb"}, @@ -1666,14 +1373,6 @@ requests = [ {file = "requests-2.24.0-py2.py3-none-any.whl", hash = "sha256:fe75cc94a9443b9246fc7049224f75604b113c36acb93f87b80ed42c44cbb898"}, {file = "requests-2.24.0.tar.gz", hash = "sha256:b3559a131db72c33ee969480840fff4bb6dd111de7dd27c8ee1f820f4f00231b"}, ] -requests-toolbelt = [ - {file = "requests-toolbelt-0.9.1.tar.gz", hash = "sha256:968089d4584ad4ad7c171454f0a5c6dac23971e9472521ea3b6d49d610aa6fc0"}, - {file = "requests_toolbelt-0.9.1-py2.py3-none-any.whl", hash = "sha256:380606e1d10dc85c3bd47bf5a6095f815ec007be7a8b69c878507068df059e6f"}, -] -rfc3986 = [ - {file = "rfc3986-1.4.0-py2.py3-none-any.whl", hash = "sha256:af9147e9aceda37c91a05f4deb128d4b4b49d6b199775fd2d2927768abdc8f50"}, - {file = "rfc3986-1.4.0.tar.gz", hash = "sha256:112398da31a3344dc25dbf477d8df6cb34f9278a94fee2625d89e4514be8bb9d"}, -] scandir = [ {file = "scandir-1.10.0-cp27-cp27m-win32.whl", hash = "sha256:92c85ac42f41ffdc35b6da57ed991575bdbe69db895507af88b9f499b701c188"}, {file = "scandir-1.10.0-cp27-cp27m-win_amd64.whl", hash = "sha256:cb925555f43060a1745d0a321cca94bcea927c50114b623d73179189a4e100ac"}, @@ -1687,10 +1386,6 @@ scandir = [ {file = "scandir-1.10.0-cp37-cp37m-win_amd64.whl", hash = "sha256:b24086f2375c4a094a6b51e78b4cf7ca16c721dcee2eddd7aa6494b42d6d519d"}, {file = "scandir-1.10.0.tar.gz", hash = "sha256:4d4631f6062e658e9007ab3149a9b914f3548cb38bfb021c64f39a025ce578ae"}, ] -secretstorage = [ - {file = "SecretStorage-3.1.2-py3-none-any.whl", hash = "sha256:b5ec909dde94d4ae2fa26af7c089036997030f0cf0a5cb372b4cccabd81c143b"}, - {file = "SecretStorage-3.1.2.tar.gz", hash = "sha256:15da8a989b65498e29be338b3b279965f1b8f09b9668bd8010da183024c8bff6"}, -] six = [ {file = "six-1.15.0-py2.py3-none-any.whl", hash = "sha256:8b74bedcbbbaca38ff6d7491d76f2b06b3592611af620f8426e82dddb04a5ced"}, {file = "six-1.15.0.tar.gz", hash = "sha256:30639c035cdb23534cd4aa2dd52c3bf48f06e5f4a941509c8bafd8ce11080259"}, @@ -1741,16 +1436,6 @@ toml = [ {file = "toml-0.10.1-py2.py3-none-any.whl", hash = "sha256:bda89d5935c2eac546d648028b9901107a595863cb36bae0c73ac804a9b4ce88"}, {file = "toml-0.10.1.tar.gz", hash = "sha256:926b612be1e5ce0634a2ca03470f95169cf16f939018233a670519cb4ac58b0f"}, ] -tqdm = [ - {file = "tqdm-4.48.2-py2.py3-none-any.whl", hash = "sha256:1a336d2b829be50e46b84668691e0a2719f26c97c62846298dd5ae2937e4d5cf"}, - {file = "tqdm-4.48.2.tar.gz", hash = "sha256:564d632ea2b9cb52979f7956e093e831c28d441c11751682f84c86fc46e4fd21"}, -] -twine = [ - {file = "twine-1.15.0-py2.py3-none-any.whl", hash = "sha256:630fadd6e342e725930be6c696537e3f9ccc54331742b16245dab292a17d0460"}, - {file = "twine-1.15.0.tar.gz", hash = "sha256:a3d22aab467b4682a22de4a422632e79d07eebd07ff2a7079effb13f8a693787"}, - {file = "twine-3.2.0-py3-none-any.whl", hash = "sha256:ba9ff477b8d6de0c89dd450e70b2185da190514e91c42cc62f96850025c10472"}, - {file = "twine-3.2.0.tar.gz", hash = "sha256:34352fd52ec3b9d29837e6072d5a2a7c6fe4290e97bba46bb8d478b5c598f7ab"}, -] typed-ast = [ {file = "typed_ast-1.4.1-cp35-cp35m-manylinux1_i686.whl", hash = "sha256:73d785a950fc82dd2a25897d525d003f6378d1cb23ab305578394694202a58c3"}, {file = "typed_ast-1.4.1-cp35-cp35m-manylinux1_x86_64.whl", hash = "sha256:aaee9905aee35ba5905cfb3c62f3e83b3bec7b39413f0a7f19be4e547ea01ebb"}, @@ -1786,10 +1471,6 @@ wcwidth = [ {file = "wcwidth-0.2.5-py2.py3-none-any.whl", hash = "sha256:beb4802a9cebb9144e99086eff703a642a13d6a0052920003a230f3294bbe784"}, {file = "wcwidth-0.2.5.tar.gz", hash = "sha256:c4d647b99872929fdb7bdcaa4fbe7f01413ed3d98077df798530e5b04f116c83"}, ] -webencodings = [ - {file = "webencodings-0.5.1-py2.py3-none-any.whl", hash = "sha256:a0af1213f3c2226497a97e2b3aa01a7e4bee4f403f95be16fc9acd2947514a78"}, - {file = "webencodings-0.5.1.tar.gz", hash = "sha256:b36a1c245f2d304965eb4e0a82848379241dc04b865afcc4aab16748587e1923"}, -] zipp = [ {file = "zipp-1.2.0-py2.py3-none-any.whl", hash = "sha256:e0d9e63797e483a30d27e09fffd308c59a700d365ec34e93cc100844168bf921"}, {file = "zipp-1.2.0.tar.gz", hash = "sha256:c70410551488251b0fee67b460fb9a536af8d6f9f008ad10ac51f615b6a521b1"}, diff --git a/pyproject.toml b/pyproject.toml index 132f8c0ad..572fda74f 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -3,7 +3,7 @@ skip-string-normalization = true [tool.poetry] name = "libvcs" -version = "0.4.4" +version = "0.5.0a2" description = "vcs abstraction layer" license = "MIT" authors = ["Tony Narlock "] @@ -23,10 +23,16 @@ classifiers = [ "Programming Language :: Python :: 3.7", "Programming Language :: Python :: Implementation :: PyPy", "Topic :: Utilities", - "Topic :: System :: Shells"] + "Topic :: System :: Shells" +] homepage = "http://github.com/vcs-python/libvcs/" readme = "README.rst" +[tool.poetry.urls] +"Bug Tracker" = "https://github.com/vcs-python/libvcs/issues" +Documentation = "https://libvcs.git-pull.com" +Repository = "https://github.com/vcs-python/libvcs" + [tool.poetry.dependencies] python = "~2.7 || ^3.5" @@ -70,13 +76,9 @@ isort = [ ### Lint ### flake8 = "*" -### Deploy ### -twine = "*" - [tool.poetry.extras] docs = ["sphinx", "recommonmark", "sphinx-issues", "alagitpull"] test = ["pytest", "pathlib2", "pytest-rerunfailures", "pytest-mock"] coverage = ["codecov", "coverage", "pytest-cov"] format = ["black", "isort"] lint = ["flake8"] -deploy = ["deploy"] diff --git a/requirements/base.txt b/requirements/base.txt deleted file mode 100644 index 8b1378917..000000000 --- a/requirements/base.txt +++ /dev/null @@ -1 +0,0 @@ - diff --git a/requirements/dev.txt b/requirements/dev.txt deleted file mode 100644 index 55161885b..000000000 --- a/requirements/dev.txt +++ /dev/null @@ -1,3 +0,0 @@ -flake8==3.7.7 -isort<=4.4;python_version<'3.6' -isort>=5;python_version>='3.6' diff --git a/requirements/doc.txt b/requirements/doc.txt deleted file mode 100644 index f8e9b3689..000000000 --- a/requirements/doc.txt +++ /dev/null @@ -1,4 +0,0 @@ --r ./base.txt -sphinx>=2.0.0 -alagitpull>=0.0.24 -sphinx_issues==1.2.0 diff --git a/requirements/test.txt b/requirements/test.txt deleted file mode 100644 index 29d785715..000000000 --- a/requirements/test.txt +++ /dev/null @@ -1,2 +0,0 @@ -pytest<6 -pytest-mock<2 diff --git a/setup.py b/setup.py deleted file mode 100644 index 5d8a10d35..000000000 --- a/setup.py +++ /dev/null @@ -1,58 +0,0 @@ -#!/usr/bin/env python -# -*- coding: utf-8 -*- -"""libvcs lives at .""" -from setuptools import setup - -about = {} -with open("libvcs/__about__.py") as fp: - exec(fp.read(), about) - -with open('requirements/base.txt') as f: - install_reqs = [line for line in f.read().split('\n') if line] - -with open('requirements/test.txt') as f: - tests_reqs = [line for line in f.read().split('\n') if line] - -readme = open('README.rst').read() -history = open('CHANGES').read().replace('.. :changelog:', '') - - -setup( - name=about['__title__'], - version=about['__version__'], - url='http://github.com/vcs-python/libvcs/', - download_url='https://pypi.python.org/pypi/libvcs', - project_urls={ - 'Documentation': about['__docs__'], - 'Code': about['__github__'], - 'Issue tracker': about['__tracker__'], - }, - license=about['__license__'], - author=about['__author__'], - author_email=about['__email__'], - description=about['__description__'], - long_description=readme, - include_package_data=True, - install_requires=install_reqs, - tests_require=tests_reqs, - zip_safe=False, - keywords=about['__title__'], - packages=['libvcs'], - classifiers=[ - 'Development Status :: 4 - Beta', - 'License :: OSI Approved :: MIT License', - 'Environment :: Web Environment', - 'Intended Audience :: Developers', - 'Operating System :: POSIX', - 'Operating System :: MacOS :: MacOS X', - 'Programming Language :: Python', - 'Programming Language :: Python :: 2.7', - 'Programming Language :: Python :: 3', - 'Programming Language :: Python :: 3.5', - 'Programming Language :: Python :: 3.6', - 'Programming Language :: Python :: 3.7', - 'Programming Language :: Python :: Implementation :: PyPy', - 'Topic :: Utilities', - 'Topic :: System :: Shells', - ], -)