From 60c85d8494f5cdabf8e918572db664ed8f5e2eda Mon Sep 17 00:00:00 2001 From: Tony Narlock Date: Sun, 3 Jul 2022 14:44:29 -0500 Subject: [PATCH 1/5] Remove unneeded stuff --- .coveragerc | 14 - .gitmodules | 0 .pre-commit-config.yaml | 15 - .tmuxp-before-script.sh | 3 - .tmuxp.yaml | 25 - CHANGES | 680 --------------- MANIFEST.in | 2 - assets/css/custom.css | 47 -- assets/images/favicon.ico | 1 - assets/images/libvcs.svg | 1 - docs/_static/css/custom.css | 37 - docs/_static/favicon.ico | Bin 18686 -> 0 bytes .../img/icons/android-icon-144x144.png | Bin 13949 -> 0 bytes .../img/icons/android-icon-192x192.png | Bin 17202 -> 0 bytes docs/_static/img/icons/android-icon-72x72.png | Bin 6451 -> 0 bytes docs/_static/img/icons/android-icon-96x96.png | Bin 8707 -> 0 bytes docs/_static/img/icons/browserconfig.xml | 2 - docs/_static/img/icons/icon-128x128.png | Bin 14663 -> 0 bytes docs/_static/img/icons/icon-144x144.png | Bin 17059 -> 0 bytes docs/_static/img/icons/icon-152x152.png | Bin 18212 -> 0 bytes docs/_static/img/icons/icon-16x16.png | Bin 1397 -> 0 bytes docs/_static/img/icons/icon-192x192.png | Bin 24164 -> 0 bytes docs/_static/img/icons/icon-32x32.png | Bin 2850 -> 0 bytes docs/_static/img/icons/icon-384x384.png | Bin 57803 -> 0 bytes docs/_static/img/icons/icon-512x512.png | Bin 58958 -> 0 bytes docs/_static/img/icons/icon-72x72.png | Bin 7261 -> 0 bytes docs/_static/img/icons/icon-96x96.png | Bin 10429 -> 0 bytes docs/_static/img/icons/ms-icon-144x144.png | Bin 13949 -> 0 bytes docs/_static/img/icons/ms-icon-150x150.png | Bin 14689 -> 0 bytes docs/_static/img/icons/ms-icon-310x310.png | Bin 39415 -> 0 bytes docs/_static/img/icons/ms-icon-70x70.png | Bin 6324 -> 0 bytes docs/_static/img/libvcs-dark.svg | 201 ----- docs/_static/img/libvcs.svg | 186 ----- docs/_templates/layout.html | 45 - docs/_templates/sidebar/projects.html | 45 - docs/conf.py | 170 +--- docs/contributing/index.md | 12 - docs/contributing/workflow.md | 208 ----- docs/history.md | 1 - docs/index.md | 4 - docs/manifest.json | 53 -- docs/quickstart.md | 41 - docs/redirects.txt | 12 - tests/__init__.py | 0 tests/_internal/subprocess/conftest.py | 8 - .../subprocess/test_SubprocessCommand.py | 139 ---- tests/_internal/test_query_list.py | 240 ------ tests/cmd/__init__.py | 0 tests/cmd/test_core.py | 23 - tests/cmd/test_git.py | 13 - tests/conftest.py | 1 - tests/projects/test_base.py | 68 -- tests/projects/test_conftest.py | 30 - tests/projects/test_git.py | 777 ------------------ tests/projects/test_hg.py | 55 -- tests/projects/test_svn.py | 49 -- tests/test_exc.py | 33 - tests/test_shortcuts.py | 46 -- 58 files changed, 1 insertion(+), 3286 deletions(-) delete mode 100644 .coveragerc delete mode 100644 .gitmodules delete mode 100644 .pre-commit-config.yaml delete mode 100755 .tmuxp-before-script.sh delete mode 100644 .tmuxp.yaml delete mode 100644 CHANGES delete mode 100644 MANIFEST.in delete mode 100644 assets/css/custom.css delete mode 120000 assets/images/favicon.ico delete mode 120000 assets/images/libvcs.svg delete mode 100644 docs/_static/css/custom.css delete mode 100644 docs/_static/favicon.ico delete mode 100644 docs/_static/img/icons/android-icon-144x144.png delete mode 100644 docs/_static/img/icons/android-icon-192x192.png delete mode 100644 docs/_static/img/icons/android-icon-72x72.png delete mode 100644 docs/_static/img/icons/android-icon-96x96.png delete mode 100644 docs/_static/img/icons/browserconfig.xml delete mode 100644 docs/_static/img/icons/icon-128x128.png delete mode 100644 docs/_static/img/icons/icon-144x144.png delete mode 100644 docs/_static/img/icons/icon-152x152.png delete mode 100644 docs/_static/img/icons/icon-16x16.png delete mode 100644 docs/_static/img/icons/icon-192x192.png delete mode 100644 docs/_static/img/icons/icon-32x32.png delete mode 100644 docs/_static/img/icons/icon-384x384.png delete mode 100644 docs/_static/img/icons/icon-512x512.png delete mode 100644 docs/_static/img/icons/icon-72x72.png delete mode 100644 docs/_static/img/icons/icon-96x96.png delete mode 100644 docs/_static/img/icons/ms-icon-144x144.png delete mode 100644 docs/_static/img/icons/ms-icon-150x150.png delete mode 100644 docs/_static/img/icons/ms-icon-310x310.png delete mode 100644 docs/_static/img/icons/ms-icon-70x70.png delete mode 100644 docs/_static/img/libvcs-dark.svg delete mode 100644 docs/_static/img/libvcs.svg delete mode 100644 docs/_templates/layout.html delete mode 100644 docs/_templates/sidebar/projects.html delete mode 100644 docs/contributing/index.md delete mode 100644 docs/contributing/workflow.md delete mode 120000 docs/history.md delete mode 100644 docs/manifest.json delete mode 100644 docs/quickstart.md delete mode 100644 docs/redirects.txt delete mode 100644 tests/__init__.py delete mode 100644 tests/_internal/subprocess/conftest.py delete mode 100644 tests/_internal/subprocess/test_SubprocessCommand.py delete mode 100644 tests/_internal/test_query_list.py delete mode 100644 tests/cmd/__init__.py delete mode 100644 tests/cmd/test_core.py delete mode 100644 tests/cmd/test_git.py delete mode 100644 tests/conftest.py delete mode 100644 tests/projects/test_base.py delete mode 100644 tests/projects/test_conftest.py delete mode 100644 tests/projects/test_git.py delete mode 100644 tests/projects/test_hg.py delete mode 100644 tests/projects/test_svn.py delete mode 100644 tests/test_exc.py delete mode 100644 tests/test_shortcuts.py diff --git a/.coveragerc b/.coveragerc deleted file mode 100644 index 8bfb3542b..000000000 --- a/.coveragerc +++ /dev/null @@ -1,14 +0,0 @@ -[run] -omit = - */_* - pkg/* - */log.py - */conftest.py - -[report] -exclude_lines = - pragma: no cover - def __repr__ - raise NotImplementedError - if __name__ == .__main__.: - def parse_args diff --git a/.gitmodules b/.gitmodules deleted file mode 100644 index e69de29bb..000000000 diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml deleted file mode 100644 index db0347ee1..000000000 --- a/.pre-commit-config.yaml +++ /dev/null @@ -1,15 +0,0 @@ -repos: -- repo: https://github.com/psf/black - rev: 22.3.0 - hooks: - - id: black - language_version: python3.10 -- repo: https://github.com/pycqa/isort - rev: 5.10.1 - hooks: - - id: isort - name: isort (python) -- repo: https://github.com/PyCQA/flake8 - rev: 4.0.1 - hooks: - - id: flake8 diff --git a/.tmuxp-before-script.sh b/.tmuxp-before-script.sh deleted file mode 100755 index 0721faabd..000000000 --- a/.tmuxp-before-script.sh +++ /dev/null @@ -1,3 +0,0 @@ -#!/bin/sh -poetry shell --no-ansi --no-interaction &2> /dev/null -poetry install --no-ansi --no-interaction &2> /dev/null diff --git a/.tmuxp.yaml b/.tmuxp.yaml deleted file mode 100644 index e9c122e38..000000000 --- a/.tmuxp.yaml +++ /dev/null @@ -1,25 +0,0 @@ -session_name: libvcs -start_directory: ./ # load session relative to config location (project root). -before_script: ./.tmuxp-before-script.sh -shell_command_before: -- '[ -f .venv/bin/activate ] && source .venv/bin/activate && reset' -windows: -- window_name: libvcs - focus: True - layout: main-horizontal - options: - main-pane-height: 35 - panes: - - focus: true - - pane - - make start -- window_name: docs - layout: main-horizontal - options: - main-pane-height: 35 - start_directory: docs/ - panes: - - focus: true - - pane - - pane - - make start diff --git a/CHANGES b/CHANGES deleted file mode 100644 index c1ea56454..000000000 --- a/CHANGES +++ /dev/null @@ -1,680 +0,0 @@ -# Changelog - -To install the unreleased libvcs version, see -[developmental releases](https://libvcs.git-pull.com/quickstart.html#developmental-releases). - -[pip](https://pip.pypa.io/en/stable/): - -```console -$ pip install --user --upgrade --pre libvcs -``` - -## libvcs 0.14.0 (unreleased) - -- _Add your latest changes from PRs here_ - -### What's new - -- New and improved logo -- **Parser**: Experimental VCS URL parsing added ({issue}`376`, {issue}`381`, {issue}`384`, - {issue}`386`): - - VCS Parsers return {func}`dataclasses.dataclass` instances. The new tools support validation, - parsing, mutating and exporting into URLs consumable by the VCS. - - ::: {warning} - - APIs are unstable and subject to break until we get it right. - - ::: - - - {mod}`libvcs.parse.git` - - - {class}`~libvcs.parse.git.GitBaseURL` - Parse git URLs, `git(1)` compatible - - - {meth}`~libvcs.parse.git.GitBaseURL.is_valid` - - {meth}`~libvcs.parse.git.GitBaseURL.to_url` - export `git clone`-compatible URL - - - {class}`~libvcs.parse.git.GitPipURL` - Pip URLs, {meth}`~libvcs.parse.git.GitPipURL.is_valid`, - {meth}`~libvcs.parse.git.GitPipURL.to_url` - - - {class}`~libvcs.parse.git.GitURL` - Compatibility focused, - {meth}`~libvcs.parse.git.GitURL.is_valid` {meth}`~libvcs.parse.git.GitURL.to_url` - - - {mod}`libvcs.parse.hg` - - - {class}`~libvcs.parse.hg.HgURL` - Parse Mercurial URLs - - {meth}`~libvcs.parse.hg.HgURL.is_valid` - - {meth}`~libvcs.parse.hg.HgURL.to_url` - export `hg clone`-compatible URL - - - {mod}`libvcs.parse.svn` - - - {class}`~libvcs.parse.svn.SvnURL` - Parse Subversion URLs - - {meth}`~libvcs.parse.svn.SvnURL.is_valid` - - {meth}`~libvcs.parse.svn.SvnURL.to_url` - export `svn checkout`-compatible URL - - Detection can be extended through writing {class}`~libvcs.parse.base.Matcher`s and adding them to - the classes' {class}`~libvcs.parse.base.MatcherRegistry` - - You can write your own VCS parser by implementing {class}`~libvcs.parse.base.URLProtocol`, but it - would be most efficient if you studied the source of the `git(1)` parser to see how it's done. - -### Breaking changes - -- {issue}`379` Support for `git+git` URLs removed. Pip removed these in 21.0 due to them being - insecure [^pip-git+git] -- {issue}`372` Typings moved from `libvcs.types` -> {mod}`libvcs._internal.types` -- {issue}`377` Remove deprecated functions and exceptions - - - Removed `libvcs.shortcuts` - - Removed `libvcs.shortcuts.create_project_from_pip_url()`: This will be replaced in future - versions by {issue}`376` / parsing utilities - - Moved `libvcs.shortcuts.create_project()` to {func}`libvcs._internal.shortcuts.create_project` - - Removed {exc}`libvcs.exc.InvalidPipURL` - -[^pip-git+git]: pip removes `git+git@` - -### Fixes - -- Minor spelling fix in Git's `convert_pip_url()` exception -- Fix mercurial cloning in {class}`libvcs.projects.hg.MercurialProject` - - _Backport from 0.13.1_ - -### Typings - -- Rename `VcsLiteral` -> `VCSLiteral` - - _Backport from 0.13.4_ - -- {func}`~libvcs.shortcuts.create_project`: Add overloads that return the typed project (e.g. - {class}`~libvcs.projects.git.GitProject`) - - _Backport from 0.13.3_ - -### Cleanup - -- {issue}`378` {issue}`380` Remove duplicate `uses_netloc` scheme for `git+ssh` (this was in cpython - since 2.7 / 3.1 [^git+ssh][^python:bugs:8657]) - -[^git+ssh]: `uses_netloc` added `'git'` and `'git+ssh'` in {mod}`urllib.parse` - - [python/cpython@ead169d] - -[python/cpython@ead169d]: - https://github.com/python/cpython/commit/ead169d3114ed0f1041b5b59ca20293449608c50 - -[^python:bugs:8657]: - -## libvcs 0.13.6 (2022-06-18) - -### Development - -- Move `libvcs.shortcuts` to {mod}`libvcs._internal.shortcuts` - -## libvcs 0.13.5 (2022-06-18) - -### Development - -- Note upcoming deprecation of `create_project_from_pip_url` in v0.14 -- Note `create_project` becoming internal API in upcoming release v0.14 -- Fix import in `libvcs.shortcuts` (in v0.14 this module will not exist) - -## libvcs 0.13.4 (2022-06-18) - -### Typing - -- Rename `VcsLiteral` -> `VCSLiteral` - -## libvcs 0.13.3 (2022-06-18) - -### Typings - -- `create_project()`: Add overloads that return the typed project (e.g. - {class}`~libvcs.projects.git.GitProject`) - -## libvcs 0.13.2 (2022-06-12) - -### Typings - -- {func}`libvcs.projects.git.GitProject.remotes`: Add overload - -## libvcs 0.13.1 (2022-06-01) - -### Fixes - -- Fix mercurial cloning in {class}`libvcs.projects.hg.MercurialProject` - -## libvcs 0.13.0, "Jane" (2022-05-30) - -### Breaking changes - -- {issue}`343`: `libvcs.cmd.core` moved to `libvcs._internal.run` to make it more clear the API is - closed. - - This includes {func}`~libvcs._internal.run.run` - - Before in 0.13: - - ```python - from libvcs.cmd.core import run - ``` - - New module in >=0.13: - - ```python - from libvcs._internal.run import run - ``` - -- {issue}`361`: {class}`~libvcs._internal.run.run`'s params are now a pass-through to - {class}`subprocess.Popen`. - - - `run(cmd, ...)` is now `run(args, ...)` to match `Popen`'s convention. - -- {class}`libvcs.projects.base.BaseProject`: - - - Removed `parent_dir`: - - Before: `project.parent_dir` - - After: `project.parent.dir`. - - - `repo_name` switched from attribute to property - -- Keyword-only arguments via [PEP 3102], [PEP 570] - - - {issue}`366`: `libvcs.cmd` for hg, git, and svn updated to use - - - {issue}`364`: Project classes no longer accept positional arguments. - - Deprecated in >=0.13: - - ```python - GitProject('https://github.com/vcs-python/libvcs.git') - ``` - - New style in >=0.13: - - ```python - GitProject(url='https://github.com/vcs-python/libvcs.git') - ``` - -[pep 570]: https://peps.python.org/pep-0570/ -[pep 3102]: https://peps.python.org/pep-3102/#specification - -### What's new - -- **Commands**: Experimental command wrappers added ({issue}`346`): - - - {class}`libvcs.cmd.git.Git` - - - {meth}`libvcs.cmd.git.Git.help` - - {meth}`libvcs.cmd.git.Git.reset` - - {meth}`libvcs.cmd.git.Git.checkout` - - {meth}`libvcs.cmd.git.Git.status` - - {meth}`libvcs.cmd.git.Git.config` via {issue}`360` - -- **Command**: Now support `-C` (which accepts `.git` dirs, see git's manual) in addition to `cwd` - (subprocess-passthrough), {issue}`360` - -### Bug fixes - -- Fix argument input for commands, e.g. `git config --get color.diff` would not properly - pass-through to subprocess. git: {issue}`360`, svn and hg: {issue}`365` - -### Internals - -- {issue}`362` [mypy] support added: - - - Basic mypy tests now pass - - Type annotations added, including improved typings for: - - - {func}`libvcs._internal.run.run` - - {meth}`libvcs._internal.subprocess.SubprocessCommand.Popen` - - {meth}`libvcs._internal.subprocess.SubprocessCommand.check_output` - - {meth}`libvcs._internal.subprocess.SubprocessCommand.run` - - - `make mypy` and `make watch_mypy` - - Automatic checking on CI - -- {issue}`345` `libvcs.utils` -> `libvcs._internal` to make it more obvious the APIs are strictly - closed. -- `StrOrPath` -> `StrPath` -- {issue}`336`: {class}`~libvcs._internal.subprocess.SubprocessCommand`: Encapsulated - {mod}`subprocess` call in a {func}`dataclasses.dataclass` for introspecting, modifying, mocking - and controlling execution. -- Dataclass helper: {class}`~libvcs._internal.dataclasses.SkipDefaultFieldsReprMixin` - - Skip default fields in object representations. - - Credit: Pietro Oldrati, 2022-05-08, - [StackOverflow Post](https://stackoverflow.com/a/72161437/1396928) - -### Documentation - -- Document `libvcs.types` -- {issue}`362`: Improve developer documentation to note [mypy] and have tabbed examples for flake8. - -[mypy]: http://mypy-lang.org/ - -### Packaging - -- Update description and keywords - -## libvcs 0.12.4 (2022-05-30) - -- _Backport from 0.13.x_ Fix argument input for hg and svn commands, would not properly pass-through - to subprocess. {issue}`365` - -## libvcs 0.12.3 (2022-05-28) - -### Bug fixes - -- _Backport from 0.13.x_. Fix argument input for git commands, e.g. `git config --get color.diff` - would not properly pass-through to subprocess. {issue}`360` - -## libvcs 0.12.2 (2022-05-10) - -### Packaging - -- Update [trove classifiers](https://pypi.org/classifiers/) - -## libvcs 0.12.1 (2022-05-10) - -### Packaging - -- Add keywords and update subscription -- Add `py.typed` file to `libvcs/py.typed` - -## libvcs 0.12.0, "Nimbus" (2022-04-24) - -### Breaking - -- `GitRepo`, `SVNRepo`, `MercurialRepo`, `BaseRepo` have been renamed to `GitProject`, `SVNProject`, - `MercurialProject`, `BaseProject` ({issue}`327`) -- `GitProject`, `SVNProject`, `MercurialProject`, `BaseProject` have been moved to - `libvcs.projects.{module}.{Module}Project` -- `repo_dir` param is renamed to `dir`: - - Before: `GitProject(url='...', repo_dir='...')` - - After: `GitProject(url='...', dir='...')` - - {issue}`324` - -- `dir` to `pathlib`, `BaseProject.path` -> `BaseProject.dir` -- Logging functions moved to {attr}`libvcs.projects.base.BaseProject.log` ({issue}`322`) -- Rename `ProjectLoggingAdapter` to `CmdLoggingAdapter` -- `CmdLoggingAdapter`: Rename `repo_name` param to `keyword` -- `create_repo` -> `create_project` -- `GitRemote` and `GitStatus`: Move to {func}`dataclasses.dataclass` ({issue}`329`) -- `extract_status()`: Move to `GitStatus.from_stdout` ({issue}`329`) - -### What's new - -- **Commands**: Experimental command wrappers added ({issue}`319`): - - - {class}`libvcs.cmd.git.Git` - - - {meth}`libvcs.cmd.git.Git.run` - - {meth}`libvcs.cmd.git.Git.clone` - - {meth}`libvcs.cmd.git.Git.init` - - {meth}`libvcs.cmd.git.Git.pull` - - {meth}`libvcs.cmd.git.Git.rebase` - - - {class}`libvcs.cmd.svn.Svn` - - - {meth}`libvcs.cmd.svn.Svn.run` - - {meth}`libvcs.cmd.svn.Svn.checkout` - - {meth}`libvcs.cmd.svn.Svn.update` - - {meth}`libvcs.cmd.svn.Svn.status` - - {meth}`libvcs.cmd.svn.Svn.auth` - - {meth}`libvcs.cmd.svn.Svn.blame` - - {meth}`libvcs.cmd.svn.Svn.commit` - - - {class}`libvcs.cmd.hg.Hg` - - - {meth}`libvcs.cmd.hg.Hg.run` - - {meth}`libvcs.cmd.hg.Hg.clone` - -- {class}`libvcs.projects.git.GitProject` now accepts remotes in `__init__` - - ```python - repo = GitProject( - url="https://github.com/vcs-python/libvcs", - repo_dir=checkout, - remotes={ - 'gitlab': 'https://gitlab.com/vcs-python/libvcs', - } - ) - ``` - - ```python - repo = GitProject( - url="https://github.com/vcs-python/libvcs", - repo_dir=checkout, - remotes={ - 'gitlab': { - 'fetch_url': 'https://gitlab.com/vcs-python/libvcs', - 'push_url': 'https://gitlab.com/vcs-python/libvcs', - }, - } - ) - ``` - -- {meth}`libvcs.projects.git.GitProject.update_repo` now accepts `set_remotes=True` - -### Compatibility - -- Python 3.7 and 3.8 dropped (#308) - - Maintenance and bug support exists in - [`v0.11.x`](https://github.com/vcs-python/libvcs/tree/v0.11.x) - -### Development - -- Add codeql analysis ({issue}`303`) -- git test suite: Lots of parametrization ({issue}`309`) -- CI: Use poetry caching from - [@actions/setup v3.1](https://github.com/actions/setup-python/releases/tag/v3.1.0), ({issue}`316`) -- New constants for `str` -> class mappings - - - {data}`libvcs.projects.constants.DEFAULT_VCS_CLASS_MAP` - - {data}`libvcs.projects.constants.DEFAULT_VCS_CLASS_UNION` - - {data}`libvcs.projects.constants.DEFAULT_VCS_LITERAL` - -- Remove tox and tox-poetry-installer. It turns out installing poetry inside a poetry project - doesn't work well. (`poetry update`, `poetry publish`, etc. commands would fail) -- Add [doctest](https://docs.python.org/3/library/doctest.html) w/ - [pytest + doctest](https://docs.pytest.org/en/7.1.x/how-to/doctest.html), ({issue}`321`). -- Publish to PyPI via CI when git tags are set. - -### Documentation - -- API: Split documentation of modules to separate pages -- Fix sphinx-issues ({issue}`321`) -- Experiment with sphinx-autoapi ({issue}`328`) for table of contents support - -## libvcs 0.11.1 (2022-03-12) - -### CVE-2022-21187: Command Injection with mercurial repositories - -- By setting a mercurial URL with an alias it is possible to execute arbitrary shell commands via - `.obtain()` or in the case of uncloned destinations, `.update_repo()`. - ([#306](https://github.com/vcs-python/libvcs/pull/306), credit: Alessio Della Libera) - - See also: [cve.mitre.org](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2022-21187), - [nvd.nist.gov](https://nvd.nist.gov/vuln/detail/CVE-2022-21187), - [snyk](https://security.snyk.io/vuln/SNYK-PYTHON-LIBVCS-2421204). - -### Development - -- Run pyupgrade formatting (#305) -- Tests: - - Move from pytest `tmp_dir` (`py.path.local`) to `tmp_path` (`pathlib.Path`) - - Text fixture updates: Use home directory via `tmp_path_factory`, generate config for git and hg. - -### Documentation - -- Move to furo theme -- Root: `make start_docs`, `make design_docs` -- docs/: `make start`, `make design` - -## libvcs 0.11.0, "Phebe" (2022-01-08) - -### Compatibility - -- Add python 3.10 (#300) -- Drop python 3.6 (#300) - -### Development - -- Poetry: 1.1.7 -> 1.1.12 (#300) -- Add `.pre-commit-config.yaml` - -## libvcs 0.10.1 (2021-11-30) - -- #295: Checkout remote branch before git rebase. Thank you @jensens! -- #293: Fix revision handling with pip-urls. Thank you @jensens! -- #279: Update poetry to 1.1 - - CI: Use poetry 1.1.7 and `install-poetry.py` installer - - Relock poetry.lock at 1.1 (w/ 1.1.7's fix) - -## libvcs 0.10 (2021-06-16) - -- #311: Convert to markdown - -## libvcs 0.9 (2021-06-14) - -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. - -[#271]: - -- Big version bump (0.5 -> 0.9) -- Remove Python 2.7 support -- Add annotations -- Change `libvcs.git.GitRepo.status()` to return `GitStatus` named tuple -- Breaking change: Repo objects now require `repo_dir` to be passed -- Update black to 21.6b0 - -[#271]: https://github.com/vcs-python/libvcs/pull/271 - -## libvcs 0.5 (2020-08-11) - -- [refactor] [#267] overhaul docs - - - Move sphinx api format to Numpy-style - - - Move from reStructuredText to Markdown (via recommonmark). The master plan is to eliminate - docutils and sphinx as a bottleneck completely in favor of something else (e.g. gatsby with a - source that inspects our modules and can source intersphinx) - - - 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`: - - 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 names with special characters - -## libvcs 0.4.2 (2020-08-01) - -- \[bug\] `libvcs.git.GitRepo.get_current_remote_name()` Handle case where upstream is unpushed -- \[feature\] `libvcs.git.GitRepo.status()` - Retrieve status of repo -- \[feature\] `libvcs.git.extract_status()` - Return structured info from `git status` - -## libvcs 0.4.1 (2020-08-01) - -- Remove log statement - -## libvcs 0.4 (2020-08-01) - -**Breaking changes** - -Internal functionality relating to remotes have been reorganized to avoid implicit behavior. - -- `~libvcs.git.GitRepo` methods have been renamed, they will be deprecated in 0.5: - - - `GitRepo.remotes_get` renamed to `libvcs.git.GitRepo.remotes()` - - `GitRepo.remote_get` renamed to `libvcs.git.GitRepo.remote()` - - `GitRepo.remote_set` renamed to `libvcs.git.GitRepo.set_remote()` - -- `~libvcs.git.GitRepo` the `remotes` argument is deprecated and no longer used. Use - `libvcs.git.GitRepo.set_remote` after repo is instantiated. - -- `libvcs.git.GitRepo.obtain` no longer set remotes based on a `dict` passed to - `~libvcs.git.GitRepo`. This was deemed to specialized / implicit. - -- `libvcs.git.GitRepo.set_remote()` (formerly `remote_set`) - - The new method accepts `name` and `url` (in that order). `name` no longer has a default value (was - `origin`). - -- `libvcs.git.GitRepo.remote()` (formerly `remote_get`): - - - `remote` argument renamed to `name`. It will be removed in 0.5.0 - - The default value of `'origin'` has been removed - - - Now returns `~libvcs.git.GitRemote` (a :py`collections.namedtuple` object) - - The tuple is similar to the old output, except there is an additional value at the beginning, - the name of the remote, e.g. `('origin', '', '')` - -- `libvcs.git.GitRepo.remotes()` (formerly `remotes_get`) are now methods instead of properties. - - Passing `flat=True` to return a `dict` of `tuple` instead of `dict` - -- New method: `libvcs.git.GitRepo.get_git_version()` - -- New method: `libvcs.git.GitRepo.get_current_remote_name()` - -## libvcs 0.3.3 (2020-07-29) - -- Remove f-string from test -- `libvcs.git.GitRepo.obtain` Overwrite remote if exists - -## libvcs 0.3.2 (2020-07-26) - -- `258` `libvcs.git.GitRepo.remote_set` - - Fix updating of remote URLs - - Add new param: `overwrite`, usage: `repo.remote_set(url, 'origin', overwrite=True)` - -## libvcs 0.3.1post1 (2020-07-26) - -- Fix version in pyroject.toml -- Update developer docs - -## libvcs 0.3.1 (2020-07-25) - -- Fix issue with subprocess.Popen loud warning on Python 3.8 -- [#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 -- Fix issue where VCS objects failed to set attribute in Ubuntu 18.04. - -## libvcs 0.2.3 (2016-12-22) - -- Update documentation to point to libvcs.git-pull.com -- Switch doc theme to alabaster -- Pin and update libraries via pyup - - update vulture 0.8.1 to 0.11 - - update flake8 from 2.5.4 to 3.2.1 - - update pytest-mock from 1.4.0 to 1.5.0 - - update pytest from 3.0.4 to 3.0.5 - - pin alabaster to 0.7.9 - - pin sphinx to 1.5.1 - -## libvcs 0.2.2 (2016-11-23) - -- 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) - -- Update pytest to 3.0.2, remove unused pytest-raisesregexp dependency. -- Fix bug in `which` when executable is not found. Allow specifying search paths manually. -- Better support for missing VCS when testing on git and subversion. - -## libvcs 0.2.0 (2016-06-24) - -- [#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]: https://github.com/vcs-python/libvcs/pull/9 -[#11]: https://github.com/vcs-python/libvcs/pull/11 - -## libvcs 0.1.7 (2016-06-21) - -- `7` Add `check_returncode` property to run, thanks @jcfr -- `8` Remove all cases of `run_buffered` / buffering from the library. - -## libvcs 0.1.6 (2016-06-21) - -- `5` Remove colorama dependency - -- `6` Remove log module. Logging defaults. - - The library user can still use formatters and set log levels, for an example, see the vcspull - logging setup. - - An example: - - import logging - - # your app - log.setLevel(level) - log.addHandler(logging.StreamHandler()) - - # vcslib logging options - vcslogger = logging.getLogger('libvcs') - vcslogger.propagate = False # don't pass libvcs settings up scope - vcslogger.addHandler(logging.StreamHandler()) - vcslogger.setLevel(level) - - You can also use `logging.Formatter` variables `repo_name` and `bin_name` with repos: - - repo_channel = logging.StreamHandler() - repo_formatter = logging.Formatter( - '[%(repo_name)s] (%(bin_name)s) %(levelname)1.1s: %(message)s' - ) - repo_channel.setFormatter(repo_formatter) - vcslogger = logging.getLogger('libvcs') - vcslogger.propagate = False # don't pass libvcs settings up scope - vcslogger.addHandler(repo_channel) - vcslogger.setLevel(level) - -## libvcs 0.1.5 (2016-06-21) - -- Fix issue where repo context wouldn't pass to repo logging adapter - -## libvcs 0.1.4 (2016-06-20) - -- Fix print_stdout_on_progress_end signature in git update - -## libvcs 0.1.3 (2016-06-20) - -- `create_repo` function for regular vcs urls -- API docs updated - -## libvcs 0.1.2 (2016-06-20) - -- change signature on `create_repo_from_pip_url` to accept `pip_url` instead of `url`. -- `Base` to accept `repo_dir` instead of `name` and `parent_dir`. - -## libvcs 0.1.1 (2016-06-20) - -- remove unneeded pyyaml, kaptan and click dependencies - -## libvcs 0.1.0 (2016-06-20) - -- libvcs split from [vcspull](https://github.com/vcs-python/vcspull) - - diff --git a/MANIFEST.in b/MANIFEST.in deleted file mode 100644 index 631356f7a..000000000 --- a/MANIFEST.in +++ /dev/null @@ -1,2 +0,0 @@ -include README.md LICENSE CHANGES pyproject.toml .tmuxp.yaml -recursive-include docs *.md diff --git a/assets/css/custom.css b/assets/css/custom.css deleted file mode 100644 index 8f578b18b..000000000 --- a/assets/css/custom.css +++ /dev/null @@ -1,47 +0,0 @@ -.mkapi-node { - font-size: 0.85em; -} - -.mkapi-node a.mkapi-src-link, a.mkapi-docs-link { - font-size: 0.8em; -} - -.mkapi-node .mkapi-object.code h3.mkapi-object-body { - font-size: 1.2em; -} - -.mkapi-node .mkapi-section-name .mkapi-section-name-body { - font-size: 1em; -} - -.mkapi-node .mkapi-base { - font-size: .9em; -} - -.mkapi-node code.mkapi-item-name, -.mkapi-node code.mkapi-object-signature, -.mkapi-node code.mkapi-object-parenthesis, -.mkapi-node span.mkapi-item-dash, -.mkapi-node span.mkapi-item-type { - font-size: 0.9em; -} - -.mkapi-node .mkapi-item-name, -.mkapi-node .mkapi-object, -.mkapi-node .mkapi-object code, -.mkapi-node .mkapi-object.code h2.mkapi-object-body, -.mkapi-node h2 .mkapi-object { - font-size: 1em; -} - -.mkapi-node ul.mkapi-items li::before { - font-size: 80%; -} - -.mkapi-section-name { - padding: 0px 8px 2px 8px; -} - -.mkapi-object.plain .mkapi-object-kind { - font-weight: normal; -} diff --git a/assets/images/favicon.ico b/assets/images/favicon.ico deleted file mode 120000 index c50b150ee..000000000 --- a/assets/images/favicon.ico +++ /dev/null @@ -1 +0,0 @@ -../../docs/_static/favicon.ico \ No newline at end of file diff --git a/assets/images/libvcs.svg b/assets/images/libvcs.svg deleted file mode 120000 index 9a858af61..000000000 --- a/assets/images/libvcs.svg +++ /dev/null @@ -1 +0,0 @@ -../../docs/_static/img/libvcs.svg \ No newline at end of file diff --git a/docs/_static/css/custom.css b/docs/_static/css/custom.css deleted file mode 100644 index 3bf24f5ef..000000000 --- a/docs/_static/css/custom.css +++ /dev/null @@ -1,37 +0,0 @@ -h2 { - margin-bottom: 1.25rem; - margin-top: 1.25rem; - scroll-margin-top: 0.5rem; -} - -h3 { - margin-bottom: 1.25rem; - margin-top: 1.25rem; - scroll-margin-top: 0.5rem; -} - -h4 { - margin-bottom: 1.25rem; - scroll-margin-top: 0.5rem; -} - -.sidebar-tree p.indented-block { - padding: var(--sidebar-item-spacing-vertical) var(--sidebar-item-spacing-horizontal) 0 - var(--sidebar-item-spacing-horizontal); - margin-bottom: 0; -} - -.sidebar-tree p.indented-block span.indent { - margin-left: var(--sidebar-item-spacing-horizontal); - display: block; -} - -.sidebar-tree p.indented-block .project-name { - font-size: var(--sidebar-item-font-size); - font-weight: bold; - margin-right: calc(var(--sidebar-item-spacing-horizontal) / 2.5); -} - -.sidebar-tree .active { - font-weight: bold; -} diff --git a/docs/_static/favicon.ico b/docs/_static/favicon.ico deleted file mode 100644 index d90c1606b8539ae8bb76dfbfc7ddfcfbee975f73..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 18686 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 diff --git a/docs/_static/img/icons/android-icon-72x72.png b/docs/_static/img/icons/android-icon-72x72.png deleted file mode 100644 index f7248e8ef14749010de1ac36c02a5bb2f770dcd2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6451 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 diff --git a/docs/_static/img/icons/android-icon-96x96.png b/docs/_static/img/icons/android-icon-96x96.png deleted file mode 100644 index 5821c1894f2d395873ddf771c09732d6dccd5c29..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8707 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 diff --git a/docs/_static/img/icons/browserconfig.xml b/docs/_static/img/icons/browserconfig.xml deleted file mode 100644 index c55414822..000000000 --- a/docs/_static/img/icons/browserconfig.xml +++ /dev/null @@ -1,2 +0,0 @@ - -#ffffff \ No newline at end of file diff --git a/docs/_static/img/icons/icon-128x128.png b/docs/_static/img/icons/icon-128x128.png deleted file mode 100644 index 1f571dcea8d455ce84313b7b5faa3d7feae3c55d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 14663 zcmV-NIk?7&P)pl07*naRCwC$T?cqnRrVjiUAMUk7DO^{!XyDg3M2tSAPop5p*KP4 z77(z|k*bLFuB+I^vdvzwyVk$G;jRViHp{w}-LAOxrzrUpm8Cudk=qn>EBQafP z9ewl09I$HXx{kgN z(K8{sw$Idpa*f~coJIHYvsQJQ#qX#ykt6(H%sKYbGdrn2!{|LnMD#Vlh=4Kp3MQ8M z2w8YsKOC;315HqRz%r2l?6if!)_+EA1bu%Eoj*v|)GYv~dqJJm4CH{HSUQ0009Xm2 zXhbbI@U?4cawE$>;qJU1US%L_HP>f_Y@-fG;xR2;7_2tj>c{AOc z>mYi2N0b@k{~ttzG=G=^Y{kysszb-1smKkc$+-ipSb!e1l{IF^VA%o)4RrM#H5MOf z!f|X4Q3Eby>mUJ}I|clA()U#|zTBhQFd{hO4#=PSKY$4N`T0JR!dX5Ndo&cNG4%P# zbj@0A_O2(?m}tKK?tmVHJD3OoUBXsI4JGs`>i^iVKI3me_p~%QV)^$K_`wJT&))(H zl0orR)SgUt*eA2o8ezGPTyAbakJ5qxLw~T5mXX*P-_r#ADnqetm8J>7v>v_}M@mXc zgyx%OX!Vef^m&gnF&4|yT2a7+nhqAg*Fyx$a=4Y&8)`8|gCpEdW6UuTA>+q~et%3y zQ^_Gfw!i@SI@LOqep^qJQL85c?6Ov<-InnOFW{r<3bsEXWSf~5bA&V-;WyCtKM9+T ze$5RIVzV)5X!tI6UqOR<&2g}>VrPXXr;!0qeK?@c#cpAarV*k>ltub&AAL6H?cTv-c+CJ54%61;c9<9+w+$7 zBAZ3FiBxMVOZx|SH^2pG_})6MooaXVQR=884p(gs`-N(IWESs25*&L0!9hx0-j> znX06BkqWdwP91glFI5WtzuBMt(m5gsBJ4k)x!PP033!FnYCf92bViiDjDYnc8pKV^ zj%^QK-Tr9zm{g&502@FDYpxtPKyBHyQ9b|MbLzj}eB%kk+S*!GQ&YnY*JyQhb@iJ3 zCimhyuj3o~pJ$$aT5VjvP7UZ=&K%+B)<uLE3 zvwKV=CKL);@18x>g*$hs4?g%H0tiCcv4H5N@>m=|K1U#d@Tt*fiIL#9SKn9-qp^H>SU-M6D1lq&Y-9s zdEL~mi+-j4L$cVUbT`nw0Nxmf7ebi-Cw-CQ(@#HD7wp)s@^W(+5hO50#+EP=IG#jX zIV6gIhkze&bAkh=7p^~WA{B(u=-&OKLs{PD*T)Goj< zfe;Pg_zue8d+)ucUVZgd^~^KRs7D@oMBRV?{p#+!?^bu+b(gw_&iMT3qmQa*pM93^ z!~J+J+B;2zkbdAhlPmn=!w=QU<;&R50CO~HZeZvIL9q~k1eX6e7Yv$yMKLusH5{K8 z@N2Wge-yk}^(o(<5b!}Im@LToaid4GCT{{hq=Dh4bT`}o=Rg0co`3#%b?2RTsw=Lz zLTx6tymswcwR-hxwQ}W3wPN{lwQ|J@zIGaY#`mk}8u#ITJcsA+yyFgj-$x&PR1YEC zh#=pYi0}eEJ8IZ49+%185_ctw2hkEUk;H-jNNp9g6mbAYT$3t&k-!i9D5w>_2;j$Q z=9yG~+%ZQp)$h9KqIwiBz%{AOJV3DzJ@k;e{PN4yIs%>m`rLEQQRkg^o;rWc8nyQP z^ZB=R>(J zZ{i}sh;Y(60iB;pvjRWTuxTmcxru!H;@1y{YEg%7GJ$Wz*(C&gP)7xsRD1WnQ- z)o6f+IR?tS>Z+?4Sj(3!Q>#|3vH?y&6hN+#M&CEs%=@X~dAth^@5TG^Kj#sb0C#{$ z`Rc2$JQ2avSLA@XT2|bLok~fH1amDx6vLa$_yX}0G_HSNn|nd4J%?>+MA)PwUaAe# zC6tJHhX&x!o;kyD+%UU$v2_#hxDRrC+qP|L836+n3bwsQQ!RjFw$;Wto)+zSZW>AO z9sU>pzjezN<_e#G{&`eHz_oA#D6^+bpT^@3FM}tD1a|Zh=2}d|O&TVx>}ac$#)~=3 zZQC|X{d!@C{`^E)#tkMIupz+58OqU?O`9TEel)7DuC7*(KmNGdME9S4_Swvq1>mbm zSv=RP5eq*@8c{FK_%7zX`o5U=Qd_MN0(t}bvvI=)M$B)&{WhvtFh#=JHRtjAggGAx zE+&bURi~dnQNu=H)Hv}3!cGiFPc{Ml8!eaW60!4Tuu%5k*!lH!*VO~GDMRIW{q@(? z1s7bPmMmV(3L7Rr0=NP=Y5)itz5`;c5&2ItURe3+b5}DE&(Q$JXAvE^Z|(VOStP91 z_c-q~ki$e0Q83ZJ9XocYSN`;;2yS4G%M=M$U2!?<1elM+k-+pA^7$KT*&6tcWzZ-} zpU9T1UXU$TRCr(tOM~+mLg9fU83Zuuv8C?4kPfDpVzXdh_@Aee}o? zeE;lOr>Q0MJl-QZ0p8CFrv5+vf9VgM(LeMP9O3uB|GoO+i!VGyf;gUV-0=I~F)<{A z1V*$`jehpU)RdG~jiL{f8yI9bd$wtrQ|%6Lh?nx=A-ikOo~ZI(KEM6;+iZ$0T)5By zG*7&4xL&SJH`dsRS{E-`q^3`ss)ke!R=s+3SD6{<{Qvk*EZn3V+m}y}KGRc(9r_Wr|uveL44>bHfTD{XeXY6-J+=uju#2jT_aQZ@yV?Y;L{a z=9_Nh|4u?2nDa0Cz&3$dmG7ra#0bVsDx$~bavTtj$@hoi)%eZ9fZbuRUcfh5{$r0m zs+JNZF$L0OVxpx%@e+++fDVc+FDX%(9W$7_U@`*)RCln4*_=QR*Z1kJpb;PgmYVV2 z%!~|GR#L1cop>VuFIYdg0{0F5GWsdH0oub4KkPY96A2&=p%W#%s;HH3(FZg~7#JZ6 z5;YB>Now}NY@~zV`UzdXE`gg7GAIt2v0&s=`F zyppXMFC>u93+Bz``4VSQ68b>39eHJKFr%>Jb`ZG(J4gg{)!|BZ2v=mReuKaVS?-Jq;XPtSbJ%I#pG-%a01Mp{@e!A*kUT#PK5a2~#Hbnqw2Y-78@Zf<1)reuk z)X3q(J=>@eBltX|vXYTt@}x;>{=9k47?$X9py4|p$*x_yJdwa8gb_oB@Onr_0!ZLW zcvU(VA=ix1N(%(yS?NoWoctC#I(3g$OllHg{dfkfxqv9-{rBImX9CH9@g0DF<{4)& z#VjVEqb(vCyG-i=qecwp_`RkAyxBncxmjJ*2n}QawxI?jK^t0C#m}64(n&l9a02KG zGA4`<j)BeNqVe$9sNplldku}-Yd##y;KmzmE|9Q3;BbOEjRaM3D}=JH++MQ^ zjOdcZUpF-om~%*$uzfaFrGxhS$e$lXuLdb`V8*yApzP= zC^B!??7rGD4T+s6#07%dETr=j4AZn!9nIz90$4QoX{DW(8Jm7JuKNH9q-Tnb086<7mI(;ka_^-{NkVa@+e)88Mj-7oAP zk+N>KCf5kVnsMr>Y937jlq5_7l)aqH%m`L@pn)$40K2}i5Wvkzpcjl8HHuk3kDtt5 zoG~Bw-FIKTITJ4M!2S0*0W-YUdn$(ozR6)0{Y9!hBjfDViZh$io z0Z5PWV;-0*5Fz~IAOG-F3UN#rH`cKVg08U&!MMK**Ee$NDCL;ZLz0Ecrh(!0+oUsh zYZ3|X66#0lm5IsbATHUpOPzYkDLiO2hyhTXl?3p`Pmd-p;Qd8{RC-tUygYXBG&TYV z@bT_`Wo4?MYge`ecrJ(&oI>-0C?hxV$UHu9|NZs20LChwP$`-vuIq@XY|EcP_HZfy8Vf?^~3Yvst6uUswykgaS}#xW;N=x{fSP z772g=n9xxpM>Z`25Wv{SLC6nefD0V+0uLerU);)|vtoGtbu4CO&ia;>a-0L+DgS}b zKn8dcH4;eOB5@3jknk}l;wLCkzLs^Z4m7MuMDYVQBO~UWcivW?eDVp)GK5j%{I7rg zi*5cHME$c)JB=y-c#>!FvTZl;2lnsJgLFG;@ZA9V4Nj9}kpKu#*u8ti`700C0h+Q>JiuyITy1C|$91DI@8)F=OgEoy=<&5;(B} zx*qc3PP9;3IM#2Nu24~DCL$zaKVuN5l1X!_ob@%Z8m7+dS+iAXpWbmPef5A}5eEK< zD6U#T0<7Y7PEU^u$;{t@07X4}HYoy#Pe9ze!a|-}9RBGy0aTmwe^_;e(htW2Txic`^sKx??4U8*JaUP4y>4 z9Tf#pqaZ*Ckpnsce-5x=JlcrBsCy^%WoT*KxYlr}_JqfmK zEXt2(;P_veX!n1i-}tXCge0i^;pM_@3gAoMa4zlBhZms4k1}lN5S}mSN`L#?-#o>@ z0}njFR+Opz$1xWn8wpq^__kAedWISMKiQ%FB+9o$=m47Xoim95AOb?GVzJ{0;FEkz z6!;CXK&&(1|HXNP|H{kB;V2`~9o)}0l?X83FHuEMUcmvn=XGP?PZ&R5-E+@95n@0P z0lARSQ)J0GK_sZn?a~DSx|7WK|Lr3GgGtok1<+u3GDdP6W}mfP+K(nVmh6wD{0@xW z$pAmrM6<7;w1k(bq3AIM8GeLl8g)}O_xneU7|H7d;8+MPJMn}Q)XtqdJr{`J7nnm9 z74(2uT)>0#gy{ZiT$9zd!%X~qSUU-7lda(+05tv5(qh^C`^)y@MFOF6Afz}?qFEA6 z4S4wv01y@n%tC3b+)>{qOqjq)Enn;8Q@0+ldE-Vx=u#)f31~>(7`ohb<)dO3-G&Y$mbED}{6C zs=xmAuMs{0(F1P1#bVSBa5_S8K@pIRn zJGo=8z51%^qV4a7IDwpD(uniryQ0Yb8#!u@b)JapP)~lMuKI>&m898D_v?ARK%a?A}-`uEN*!C!$D`4I;Ob2+N)w^Gt zc+uW@0x5a`65=6+c--ma@l-Q)$6ahDf`lRokD|w%LJz3X2yitJ;708Os7bTpkNyGM zhhHD7eWsJb%y7Z_H8?>uB!KdVrCs*|PjjGlGb0GVh0N|pqN=o{MD_07TNM@-svbRh zsP5gntAc_8KI3yCnV3aIMXH1lyDyo)vR2Qgo(mbk0RSW*(M7-dRn%ypSipA&j@)>| z4II{fBE1)ip&J3TBFL5iA;1Gz1bWj5ZS(t&ZClUc9 zv46k&&2Q=f-|eixaVKe_h+^>y`~U~Yqe=2|m3|k1$9DsXVgdAg0-77pd3kvWH#cJ7 zJ0Jtr^T&=EW1DQ$a1EfLE`l2gVzGX?4;56glssA^z&Ls*5G)D;uqilX@ZgW(2L2$P z$X`?GlT2T?(&9!0>D=mbR(a|JxbBjfsY-~gx+8H9ge%qrJc3EU)&*Fe04JmXVz_~8 zHuK&*<6iR_;Sj|nCIBQs1aJYwRDAvQ*D>`0cd#vp4M{aaNmK#&c;8rhuW4Di{Q(@M zTvb)=<4uzzce;w1>5Cfr?hZ86L3|!Fa)dh88W!0Wy2gD2VEivaIX zs2hkHXt}vLD!WS;mD#BiR}Sfzp2q%*482JOH|$Q57F3<+_smWmRTd$4PEK|hFrt`q#gxZb>MA+w!uqCP4x(s)u3+MNKF&l2Yyd z0N|Z7GC0=I3`h+|ad|t<*op?(JQ#1M^mImut^{;9a#fOE0IG#Kj5C0V3Z-89fO}r| z?AgQjkJUg&gC5`|QjPJ4`V->O7(>2TmA*_$1>hdjP7Al(Z%9dz`|rK`Zq?ohZD!;m zs*#Duq(f0^EF_4=@-bo1*mEOTy$z6@>}=J!V@5bZ#Q=7)8OP!G*lQx4hj{q*ceJWH(s;H!%M{X<%0#YO z^=r>}^Z}Wm%#IzIB7_=YZZ!rHcnuzyFUV$6eGUNx?ArwT{v@Ep3V4zC1Np&a(3hg3 z-V8|C?*M*fWhF1Ao0Z1Q^JkxZ#<3PvWUb(SUVSxIHlr<#52&aReIK&3LgDmZcYx%^QKNmi{=ss zGIR_ESs5;a2!weCZa_fA9H2(ASH)D6ovA>OEEGMAQ@0T@fDfO97CRx#byk-y)j)vH z-3TCZzui$ss)5uAsfXK;t1{YWw^aZ=0^!YmBPqm2g3b|00L@&GAQ1$p2YhOf_a^Xh zhC*kLH|2omA$o}kAR>ScYKBISGq@pK>rzSw2Qr9QRBB|A=8W4T`Us9J88^*wC_AeQ z{_{U@1btu@e-LL6oHxkXd;6`o8l?C{7Aph^9{R%{oRTl*BtTIzkpOnNi3G{8eVCcK z!tyoMbNw9`t3S{QsqX)S;s`MW%LD)g62Kux3z5;0X(xxnX zexo;d+O%PV?Ibd^Y(|1EnT}lAC^T|1Ne}+X&%Xy&4B|rc>cR^yR2w&JR8Kznq-QQ0kmh1i9DhYND$W;QbTPL}c3q-& zU3{^ijk5t6Oim)l&!H(r*Op_3PI2{hKy!bQ%x`&!ZNQi2#w}z+!Ag$3exT z8i>_*10Ozj5hb8}IA(&4ltp|XL;_$?+`BhZIVc{$2Ji>#^B|1~(b&F;03e`j9eFH! z7Hd=d25(CX2M5^X!2#qmkl`a;*uWjQ_~MH%GHbN5Nr9;rJiL^oLE6(g;KREmJZ;iesBztdCc|?65xBqN+M?gwmT5O zJP$Kie>C8m!LZ2PltfW*09{RVE+T?PxkJJn5wPkU1{^3IY}?%c%r)n&;jLA@^nlMk z{frR^&oleqAR=G`a}bnMjaBys9qv=q%ULdtmIY&;!4}221MbnBWq!Q+07}#X@X%=h ze8e17#AzZ6Q6LQ7++;#00gps}SdQ#fo95yG*k}O?AE*`SNNBj02E`EfckWqjyGLS<^~BNND|dbe+}!1ok2P?*!BVdXEMK|f*K2Jt@bptp@%>=;OP8FjmYuzn+o}~S`Mq8UAbtpxkBKK* z$n^1xqsMmZrW~}CZ_b4ck04tH@L$NvrQ2oRkQnG!ULGQ3s?&>9A9f(vOKR9dQVKp8 z-l;NND&1V&(hc_`EDUSTkm;|!@``6s1Ee`4-HDwX=F+KdUaM&mQ9LLCvIL65GkA5bH}jh5==dK3%vqD-q^Q~ zgFjInt3R1F75(}$fT5Ux$|XGt@_vZ6ZQa0+CF2~AA593Bat}u8H>;G~f8Tu^CH(0p zpQwL*_8G7IVQx`!X8_F|I4{gPUPUCGprO*XuFRksor5^rl^(8F1q1O{1s5uwKX)GI zvp?~~6ZN=&AOUg*0C4>I$l)VA>+g?nMa?Es4*;66c5@zdfOjgb9oa@roG>BkItunR z?nzuuvYTbyL;_74aFm72tRN!7d;`Z~k1Te8`jgm&vsq9- zs3K} zYnb@NfGixrre8xHy!^7uJvUO81tMg#Le3|$#M@A~7bc){$BqXj@FmXzn)y3ABpmxH zxudRref_W5G3Q2rj%jK2R!lw2!H}5~NF0-Q86~}|mANVO;o;Z-T_`dE)-`3)BzF12 zFYxl-y;1iGxclzA?HYGFd})6JJ>e2X;sy#!9E_U3gxX(3+%Z~t{kPtHORYZVT($1} zwY<@#yUH5e-VlQ^tN}AE{NLqerCchUbg~xq{y@&ALjG%XF~PXg#7r@;VcmMh(u*$q zl@q<<@q{>qRbg<|3j*(ZUwBTO`hC>5Wwei?I$zB*%Ug#t>E$8!uj*r?Yn&GGWF;qk4D`Y z>*J3<=FJzS#7VNda-*kQ<8tRVQZmYkkmYy#}UqP&b`mu6g>iopoRO{xOZYHW<#!KoTDy)qJJnAfh zBXlpw_wtVj_18emR8>}90vL}OJ-QWHW4_|vz3Xon5yXZOdY_;~Du#nI;k-P^7$G}$kXsDga?361?8QrX-fRL|!CTqIs3@^;Fk05l&^;$de{a&0UiM}P^Mw&h~^)))>3^A5YpE*VE<%o zO$SU#3@~iVii@M{9_qKZkL%DOAjqJ(fIp$FV=-{JCKt|MU=N0n0Qvw1_s~NR)yp$< zBLS8}*=0#K{%8-qz}zLIsArD`i%@@8EFYUZL20}G+G{<>X#)S*XP#9{&t9s|S+$CR z5801Ms(AJas@o@6MZiQ=j z6)7`lP-=h#k3aUfClZ(wf^Ab!4;LbV;{!a3IfDa~^y%F!bO2czm)*O-@+O)m%M9P{d`IT*8Y-2po~JYo-nW#j!c0c43Zy z_;Bt(5ni=oxl`v?mUg{>|NL{$bBv@A3QWKA&s)QB6aF}NR5P}^5$b2wPxJpMV7PkK zYF~M2iEqS+5xxcw;R4S3faT8(ivYjgfyy6>M+C@X%~@xh$rz2n0RdnpE?%@)-Fxr7 z^;n~ql7uB@)Xl~E0XT~wf}H_0=sR5o7Qn+3dQ6)mxHR6AIxvRE;mVyfksX{6!~jbP z^MXVfn9ZlnnCWTm#afXqEAA7bd5N_9D=PZvRX>JhzlNy4-cI7-rQ-GW#)Gkncj@f6}HKm@pv1reYD9|&iV z2?z;l1>lcveK>D8as74IMj&u3q(;`%BASyGJQph%_+bB-C&d1-)}O$Bih~AJgfw@Q zDxkXnyK$pOGYm%z9p;Ps2nrVnSS$w8Q~ie$GQ1YgZsKkZVD6p`(+~s3V8IQ51Pe$} z+;#CTj(dxy7nl==3R<_{b{kjPhP8lYQ0&5)rge|T+)CD~M4kj?qQC`;VD>95Raaec zh5GW#FC(=4Xk++_?%RFU)vO?c5O_XF{;$y2y?geIoAnFzXJ({_bfyrm_YWO1qmR(> z0xb#%@LMB9ffXGI`WhL%CK61YJlRG98Zj= z{P8NA>|sRBA`Be>gBC5~K@bA~#95kr7G%Nwcn%d(@E(|R*nH}QckObDIYtA# zyYD#Pckg|i7_)?Q9{?ZYmLwU3(hVVk5#T4ly+R#Q+K0+YxZZL#ulJ+=FCAoowd|OY z;iI|t6%`fjCjwZuC5=@&i)y94r{8Bv$%QYp; zn>$Z!*|eD>U`++lT|-w8!Cj36JCyH1R`Qzj)T9$8s9xO*7{H+5<48ltDqQQsey-Xa z_6ya9fQxhMU;Lao2sC(T)VRN}AYV)x2aY50FAEsHCYCuH=lX|5N_8`;Qx8Fy*cI|kl zX)Ov4(fYsyy-rYP06%070LhtB_6?P^QH`@#uU=e9TdHlNx&>UspnQk`ut+n15T+k~ zL)MW5mzZ|6S5YcKhG+ut#tMPzw-28YT`CCP}EE(Dyu8u~&(8H+6z73ovV{tHal>&tkqc z^gj0vAIO2+bLSp*eWSnda|m~n@nC!yCpbbe5rYlszD(EgLAi8c|F8&T;shZ?iw1>(y<)Wyj-;3OzRdA+(b%{EP>>^9 zGw+EeKH!IV{k7NCZMWV^`ojk1UI0A$yHr!V+3!XAdmspQ@`7n;?w^nd@FjDbp07sT zX43Fq?b*HiF9D0eI?Bh1^lgeGD=RDPC3KL$YD4W6jm`CtKpaCzW<>J|VQAafB&asPeytJhwAjdwC} zn~RAaK!ndproZvV8|vYQ9#Yrr-p#9Y3+Bz|vhFx9S-jW*y7UoeD6&8bjN{BR&VZ}d zF-enfU5CPH`zh5hS&7Qu8!>#iWk&eY*;mn&2*3bO^&6Ifv-5a6;s9^!mBR=mh$xtB z=}OzKW>(;~h&5t>h%m+^f*XK}WI`hvO|(otkO7o<`s_Ij7*HIXE{HF{9(#Xy@Im#= z(@%4(-M)SMI9KsqGSOhuzp?KPUT?sXES9U`i@4_M-DDkXab)%xbL=7+c=zH(2GCu7 zLO-S7_#HADyO<}b>?xPSjpw!?uiGbMMvuEk;fM=;fLkiZEe3-~SS z+}mE9AkoDYAOt21yLn^lGl!k($@OZE$XILx1waF50MJgKHAl^vHJd3B-vNmD-8MHD z@aK7&mE%6XS92D)s=!F%PUrCFGB zIy3NxRaJ4M&jCHKWE^xM0iBPf4!@G2Ie|Ed64{X2jGO21vMyb?CLVyYNCP=M;R_l> z3R9P0;4L(O77dAnoksz-Jc~X6c@}BFgDade{UlXFV$9wWzFopvewgw#%eV71t21op z+p9D$$6>C!=XGP?_bV$s@W79VBMe&yVji|3?(l>g3D{p?#h+=U9Zjqwz>fe&$Asg@ z^CFPVh8H=AuwcGT(Fda8zlDRa;zz6=*OMnsRDH;_lf4z}u_QH|TICq?y$vD-t@;idIZkPNv@fSi7hkhDY);^WleIJ)NE?jFsEIe(#4MDESbD7eo7<#Iv=Oec z%zP5*2@nwg6w7w#0E7?=TnK^R(dOy1*&y%bdpDJzt<6vTcIwHea9-1Q4;(;%F6CfM0J{^{8nhVLuu8z@9iSV4-;cnPkg;ELEi`_em-zw#I!hF6qlN>| zakDw7^wL?mZ1mPT#mfGI&!om@E z&>ZM+dTOMFpfS3F2Dwk~SRS!!IoBkhW(Sibx1D@L_emUKQO}-^s4?plMq}xX6kZmV z^E_r-*6U*3uhG0z81vN1PT%JRINw2e1Pu#;2Gl~VgtS!aCv?3&7_M6nOQ9CPC@(1i z@Hx75c#^dP;@LD3h=Ao-q_hjQH(@}jLGg?LwKVp+bg9M?u-2sqtV6|;3Q7PDs<#}h zz?UO6HPwkM(q>~T!%E2EOk^zh{LjFp_tJ=zmz@|CsVEKLD%fnO< zHI}y|g^UNTlxi_};K1p~WrL=!a{{@#1xlP42(aJC5Um)ca0HaK&CAVkk~^U&c4&A9 zQI}%pucK#bsD&KBTmC1IbZZbr3$g9Z7|ieeVcW7cmLJ{v2p>&!E92)Dg9i;7kF+KL zWh|GL9WGp1jJOQin_KSLTIVRHCYff#66hJ!`jHq z$UqUNd+C{hGC-?+TTS(T2k>cDitm5!C@L)Ujnld6CG6-iNgb4NT+c#8N+(#7^_6!vk6oh)@=hb!3>sCYO+QRPL zxm+G9sF#%#|C6klOZ%0TIWgH?v$I*whr{hth!6t4|M>%<%hM)K^!eJhghv293~=^mimaweT8{B9M^_0Cz{xZ zf<}GI%8#uaH1I^!yCshC4uAtd001}}YX-H{sx_ym^+Jvqtxn%xgLmk6@w+l1`H+U2j6!-?}bS7QUs0GrT zrcasD!o06%LBXMPUp@g~HvN7D0pocB%I5&0a0x*Sk?Rd{0Rgfgm2evERs4ef;|2T| z{pTF&SAO^W{6oz?O`SA}`-(EG{mSj&OmMXxJ$n2A*kq30y?Xghn=!+gNK7n>9CM{> z*Kz1if7-HNd3hVUr#Ia*l>o64sZ!J)B;Y+m=T8ZMHK1HK)oW_5!98^SES}NNuB3NO zq5tkvUQ%+@;fEhy?|+eog+37%XfaSHW1KZ}rmwiTxY^I|{{s;~+l(K72(thH002ov JPDHLkV1k5J{BHmN diff --git a/docs/_static/img/icons/icon-144x144.png b/docs/_static/img/icons/icon-144x144.png deleted file mode 100644 index 96c5ac7a96226b542d21af7b236c71412143da8b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 17059 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 bJ@EMdjaKM0SEt!}00000NkvXXu0mjfViM$w diff --git a/docs/_static/img/icons/icon-16x16.png b/docs/_static/img/icons/icon-16x16.png deleted file mode 100644 index 4081c90032063201dfdc784d6feeaf0d4b1005ec..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1397 zcmZ`(ZA?>F7(OVVXbH>y*lr-@bA{60d;8rBbhNb4PTN$dfH+()?QLnK6rl{LOzKbv z8?Xgy23i>c4iGe=%n3piaX;K(S;9Qj3kcV*A$%u39(K}5GDD$ANlHrQa5xDG0vv}_s$347kRmYb zJ*_rAHdct^Nr{PZ(b3V7krI)Jl*!~$sZ1gf5(JOS4W!uYSBkvk5Pj`1paxz$eHYO)03-a=`8qGjoUq*VmR3rj- z32|}YVxYf&d3kwoaPaH1XTR#~RI60yhlcWY?*?B}H*eZ$nwyjaZ{Um8){ge}#JIRq z9UU&GQ>jqgx^?TI#{<6VJRY#Wx3KWW_3NkoexqJ576@{U#!kOqtyHFyaiOn& zN!J!S%zVaN%P%kX>o)m&BJV>%Q1OmzbyFmjI1NEqxpq$_%-Xe)b$h=80Go7brHMIf zF`La+%fovQ78V|u?G`JlV2#$+gfm*2^^6xaS6M6;bM(*foio$Cl$7&B;V(v6tl%0( zY3b6_sL0d)nIc9_F!Ps?BIo>EIwNgje5S7M=ni00z#+ow+MEvzg2mErSs+~~{=EBmb^xYlr@BjnKsdE%;YJSlI^Pr#p zAn$Oxhws9>NpNcl+*Zm>la>k^CM3WGI1iWcaIuLXNFh#&2`-M4IIeAcnfadrr_1WF z)&75h{ElW73bFzUl`fmRnyR3Y&Pmy6J!N-T_Om5?DPP8uvjsRI0zDofVDBO%>=L)T zoW!u|>T13tfQA8RzN^AMcWem=5i`JODyec7lcd^ZsdCa~Zjv+tv=R}0tJkpCFl(A5 zSwcJPC2mB>1rey?C}6g&n^00LBPbhT6~TXo4;6gq@7%rTt)PH( L8iV?R%KY))3;NTS diff --git a/docs/_static/img/icons/icon-192x192.png b/docs/_static/img/icons/icon-192x192.png deleted file mode 100644 index 68802e72f8aba5fffa3f10bf772c332b91787e72..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 24164 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 diff --git a/docs/_static/img/icons/icon-32x32.png b/docs/_static/img/icons/icon-32x32.png deleted file mode 100644 index 5f017088241f18001cc8e68ddec4063fcf5eda9d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2850 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 zÞ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%0D* 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 z zL$-$r-uGjHJ*DRr?pOBjWF++P-7vmKsRATj0DyFC?vWI{O$!1f==!%3U!AfJZqU<*;!SBxj z^8;%8eF7ZKzpwlZJz$=I_Rll&1FJ$edFq^850MIj@}2!OgD|Mm-nOd$c0<8{&8>F0bOD|z-x8xA7;wCge*$vZ|6$aYmJYq! zI9je>gocHUTWIRI6d2f3I7*h!UVS>4QLExoQ!tPWSaxx5rTyCfFM&?65v#>dQpN;x zK_GsQ1>{T>mRIasU+4Ap+2dXR9muK1sCOiXF(pDrGq2E7(CB7~eC z_u$D87Dwl+5y7r2KQuJdlhZ+tmsy9?^5-MpZY}w>I75PUK!u_#pN@iT4^6ceQQ`#` zjmCX2a==3vt|-RJ?>BRWZ-DzIYF7m@_F6F1D5=dV`)pqCDfDQ$g^i7UEvo-hzXtR1 z$XvcFrPaZKu3+15>6b1J-PaWjVG7i~;;?H|RjsqDEk<=w06$Plx`;rWX>qaauW=Qw ze!?h=000)}IJnA;CxhT;A3L_eYq0QNYT@4!60z4*K2leJ2VnTkjWt zV2a~{56X&15UL0>#kH~^+@aYQ!vHazM<|ucg&xSx(|@7yKY&3Mp5qqeA|B{F71n!W zPM6g#rK!V{mqF!w>9SaQq^<@ox2&>M0Uj@w8oVxcG0a&q95Yj&{Phn>_-4xJQ0p+C zUdc^u^s3~W6v9CxLZbTqvOkm|;Be{N46L?0BiS*#d*5NqAVPI;7kaEmj@;4%%dfXt zyWYzH3pyfphP}`0Uz;WVF!=H#8nekqWY(MjK-7{T$AoqIeL^y&K7%iwwC$tYI<6MDAXTjZJWISH#s zQz1*pWefiHS5}@`1P!%2aekJ9Y2W36eYw__s4SKQQwcW2NZrp(>A%k<9=6NreQB%j zdQxvAqsh0Ar#IaIwHNudp4ODFf2O)srS?6VtHFB3isv_Q@34In=FV>Zx8!kqxO&Xg zRW`mr7?8t?Q=pGb(Eq`RD51oCLmi;QHCIdvSZ}6`A*~?|S(A zM7#Y_Mc2*khELOmbw}tw{jE@s7h|IChd?6zm)0+{6U6UzCIrGrhf6ht5w@>P2!6z& zNZ?Gf6!_IVyiYcNM6}NyzS)gIW_i2vQv7`R5jw_&II$OX;&ExcP|L58o?%_xKsB()b2q4EZWs-lKn|pYg@c z^*HTk7#kla{5|t{jkEaq&;gMw@b=`6FQ9rP>H^Fs(oe1y+{Kew4M^qSiRvP^ce16U zEn{anNit7&m`i9W)XasjY(4je+BJ`BEh@<0Lj5m<;Il+p5Ps)s7{d9p>LCRQH8XH) zblr9a&7L<&>FKYs)qV^}|Bs#wb_7Qpf6H`n}6 zqFRSVOs(;SR`|qOW+i4t2+-&#C?Hl5)pgYB!{G7n@VQ^98pOx^EyO6dFCUHtWm>OC zu=oeL42ud>z+&CpRzW;CBm{5xwHNH0J43p1NF~RBhBXI)pT4U7^^1rPwW<&iv<-gg6Z){rfCMM_7S4g$}%mb$vCAGW5qsAbRzaC)W-^uA6YCiJ^Y6O=_&rHGf0f;aYtkKW$ z3tHAGu6yfRpX$J0tFcqIk}GpvpT27gZ3d(RTq zwWA_qWMSFv^^^Z%Vq)?v7uZ@+Aqb(NlIS4$l{&NeEus#0>A|M84a8{v8FBn+`92jI z3V@DM`u(FJ@p3e*b#J>{45Y)vh;U9d0}0@9ga4gKtJ|t{p!Mko?+ZTL*+!K0EVwN~ zpnAj`kwe9?93ONqKRLRu;;hn5bWb4d9G_Eqh$AuYz}a#z!$DGwh+%8_(pf32L2xM` zxuC?3vSPzf!Rh>;+WpPQ2&y|Fv~-6D4=DG2*b9v5;MiA)2Cd1nq7fg|<)(9We46^6 zwt@n*5s?Sij`7--Ox<8H(6l$ zSL<;%+frv1#wa_H865wQ>DCTM%Q<(g{p{}9zr{@7VWI0z;x>|hB=-S98IWMoh$Z_q zE3i}@q(P_4oN}R-CxBgbEWe(dz!>tElKMQ;=8!XzKcbww3y+V-Ab#kV>2GDa!=<eT_fW9Q`7lDM%eMc{J>4Liko&c@h|>x$qOt5 zeWdmxGuXj$TL9JlKUsWft_m*I&ud`$bhfWh6LuNS+}E94Ob-q)O^;r1oUjuDWEj@+&IroFR~$BJIV_)nlgS@C3=3gHG;NcRc8dp-9KtP``wJURsR}i zf3X@3+<%Cjs})CA#?`K~>Hxy~NP)ny#s2;#fi|i;FI$Hew}AV9DkjS}hwey=H%RR~ zBO;&cmV8*UhDLC=$+qvO=f^*TYVnoJKhLqznP6a3Vt5xNoj;P(Y@yU&e2{!jHZEc} z*OL2>)tqW`0OotgDadJr(P`VRcpGV7(E7{tZ5nOo@CiUv;)$NCuE;YEi(cvL>wKpP zdV^n&5ug$8v#v+HHlLzTaJ|;HS<2?I)03jF?04DBzjWiUzPDL7=9tFhBRTGdzIrUH zFe@wH#s>tMv|j%n`o5p94;;bHdZUx^_Z0$gW^`Npk^UbGK*JHbd2Hg{rM`O;o;u8f zc16{mlY=wGgbxjioW1pd|5Yqu*Hyg;=gsVIk1f0AdQ==iV^5?4^uk!!>X=$vzN?@i z>}(ly;YOFI-<@(12QBBE$+6ZJ&4l|mC+gc`Pfji28Wm1FB)$ajpeHq&gUVviD?I)c z!SF!AsXHj zh9gt@tkjKaPA1JT*ew@$j`%m0nXd1Zqc{?8hL!CFu$Hs9iPI7Pub?Z5K9$m#4CPg(zADW*n;5v2{rl>^a;ptwhT&j;PapS1=X7e@ znwiP&?a$H)zH4HUFL=%Dlk!cUOyohbq-D&;g&;? z!$LG2@&}3?Gp%eh72BEDyh=cXrax>^eB~?T2+C}45Z))eK~0jl0@YtlzLuF+s+Q62 zB1Wm}Q3APVP4VU!;B^9?Taa*qHtHjlp7c@h){Buas2rZ@Y&n)EeciRLVx*OJKb7rs zD!*^Emt4<$=V2j~@`C3K?7W(HgY-Kp{K#vu`R1(8=EujzD(7QceOxFe!#ybIi=F{U z54os`wTta)3dUC@ASW1~%x0^VR*DXxgaVFa2K)v`Q~G4@S=C>_4x%#f6Iwc3xZd!j#JMYte7N%{t9hw^a6Y-fz zsZ>E83zNfIKgp!z-c>aw6Ja>2hdS8{Tn+4|v z_3g){y_WZehB?)2#xA5H)&#*0h{vq&E99P&QX+mQNKh;P!eq9dVbuK&QEn|>elaYa zmOKm=`QQO-*miywh_WJxd*%Pn@4mJ2wr87D(%loBoDMRiPyKW0uzIWaSUVVnr8d*q}8&zI2wxp;kj-Q&IzE+a^u9R2U> ztA`#-26>T9j(B$%mz;B$rfS6O?Cd=;tpE2VcEI$WsG*it()js}5Y?>?QlJCks6aP zI=T2K+M^JE=cJAzzo0~ktCEg6}+ShT-7DZahUJj%^*L4zQXrJFK2!Fyvw&5iplA=)e? zAZv+@iu?Sj;8GRn7-rs8z2P7A~u*s#LY@E1&S9nF0Et2^bw=-yZ;@Vr*}s%E0Ik*pSxip9zjHp zK~REn${($sDd__+8{^r2MJ>M=OlF2QY}>O% z$>=8+Y`Z`#I!ElrY>9QgCoLzZ?53C^!6d*u8vmfk=uh%I}?{wlDGV zt3Rh{##7(Uexw5N&G~KoOQHVTf)I8^pzpo3q|6}G$4(Fw`_DuISFR2jUlt$PksPh5 z3&Hc2RdS;!!1PG#E9_*HRN{u30AEhCv%$quO+zCxeJ-7K(*DMgJPb%InT{;A{1fse z70Xd^_(}lE`$AXg3)K+_)$XPe$K%_Ov z_dJIV7`LxhMPM38eRqxZT|>Vi58z{IOQyv@LYg*N<hk|2|zpEOVjSPf`Y>F4TlecKYX)%BV<>|Frkz)f-tNru-tzSLF9VzC=XZy zI=HAmj@3&%@hD&o_QsMuC**DLSxu<64I>prw&C0VSCm33`))NGmV-QNGB88D|u|C|q2x@+y3U z5bwu53AI{8B=K_a;_B}V{Wa&^tP78AyE4Ec8mLG3f$-SW8SDv+6qbrF)H8~Envs>`~j)0UqhhwerJQqQ!W zbV*(ikf^netDowLe5goe^JEZ2%rjPXXgZMrBEyeoVV$E$&T_0H<957Y)Qj&Rr3Km> z0>=$)*I2+qvSnz@%-NX$@8OuH-qQ5$*Aw$sNZ)G3PhZQKP`|*_{n3vdkVn0;x!g*m z^g=WDSR{5g{m;iDpyb>4$~&@4jX$|EvMjFI5!&6`+h*wNLxJk{>=fyBW58feuP_g= z0JC#~kGu#CE~O&$DJTOkQ8#YtzKRFJ6jLP7U%M!t?XskxkY=PGm$|o*xlrPjeP~EH zy9<*vzV^L!sQ$y~<97tRJ86O6B7FMfy0KYE1%-x&9_NFYuz94wN&qTc8V?>#9r(}} zUvQsPr-S^+K;q;o^A@jTR!~q>OYbmOxZ2f4>Ar34a70xStxkMsm%Zj4>GJwGdT85}snSjdZFg$o( zXHorJV8IdTa(^*W@gZep_&;t#B59AUsg0P)DC|n06%AG>yuD8h)>mQnnlGEFOur$h z&+n8GF;F6}6d~72Hg_zBcB$YE(`zS61jik9@!R3^t$K^Jg1jnB{tUL4)1arWZq8Y+ z>nwOGd6g`H8}PlwAf1GztfGBW7&K49gApWw8Yuxq^R4k$@rv*szqI%7K8UT#b(f<= zoQ!cr#m45hw1^&c#;s{;X|2|}FNXg8tDbqVHz+^s*!iUXM*%U%Z=*uaw71vy#Bfx@ zyIXSe8*EPBWJIq%~zU6$&d@nggQtGi@2z2o6|`_DF? zo_$6_nr)%7Z2!Ych{&DX=Sy`>;R6rDTiw#L@4w5UTlRRs0Zp)KwJ>3J%9!deqjFEq z%DoY1UV3_!Zsb4|s+1b_ z$J?Ef102~#oTQ1ye#Ii~=?Vrns8X2Hv45UJD<>X~umvHY^MRtR2UC7GXUpGwVCT>k zll6+r@qpCAvbvg80zI&AJy6x?qr&ssifU70*xB83Uzqr5eDl+r9+1PedELJASij)4 z_L=2xjp!B&X1t_V!;?tZrq}9Yh@t4Y)-f)>>suAXb#uEYnQ{X7znj@vycq?BQ)X$K zB_ZhI;^MIXK}B`NMXnk9#<*`KL#KW5w3c@JC55*>`hu zMivgk3pb0!!=>HEM)8pV`R8;;V5bRs-Cv&!oK|^5y#K%x>qLW7;S33MudMROFLEiZ z1F4lfigst4zKNa|243q*2$IVj?NEXT?o8XpA*BIko8^63?u#MC#mxHkjx_nkpI;=c zIPuU>zf4L}eH0*o_SZ2UJfsI4@m$ikZ<2;{h7bpD((yT1unb26J(`ROtBb-ea?_jj7%M_AI}431gfYzEoXZZCG4d;!P(-Z=MJq z7|LyJH8!y}`GdPc-(siBl;#Kpq%w}$hxMB&pg&AxI5JMatFBI?g*FC0+;BB?x?5SH zcS%XjRGBNj{?@nYN%`v2emjNx0tVs8`rq%9LWtyj#-FCN;>eOYxg#g7d*D}TBWrqi zerN)VJ}yfU<~4$zYqWls*D9vfri%WseE8rTQIbX+DZLyGI^u_$0|!oV!&Fb$xTK(9 z*02^%X!F@wev+2f(MYb=b2H6HgTJB)0TS`wdSg8u3M)$bgDLC0>DSvZ!^;86Y zniDb9yJ6DS%@<%AhG*K`{`J8MoK9-Gx;1NOC~Dt$*r#JaG~Ixmo}_j9spa$&cC$@w9n@X-*$~CbskLq`)yIEhH6>);K;mw@{=a=m90yTic zO~?Mx@rPez#B|jL02-DPfk}?2)2u5*e*cn0SPQSW3fJq zT%u=-6sjW=_u7#4IO`1A=y)my$E?gzfEcNsTxIR_^h7#X)V}bP)Y9U!E%|cjI5Z4v zpB+8^ik+V51RfU(n7a)P>_4fLfxORa&FLm4rp#?c4e*hX5j(8RB*<%u8JzTgT#sSS zhqq1t-Rq8t%=^;XDu#@R@Mzl*{Eta_;z>R3)q*z%zwJyw{HpPvA-16>+t_c>Dw1bL z7oyr=Ys)K!t(ScJ^KDcXE~|F(&IfaRBB!HWso@M&1MO!y9!j}F74@GEn3dhK|L9Ph zM!zp`=^4xw%NfyA)4i$1&Pa5^lpK=8>20IUb0iM9pC7h=@<#1Xp_P^2QY7%b;pHoR zCxh~v$}Fgx-5^2)p)#%c-$b@`ugV7*N_9pxPyiz8>Uw#-g67Zhl7_3H+m?SF+yx!c z0*k>**&jq6COV|+WVe*)Q~y}Jndy~~9%6Iwe+Aoy-x8HA*OljH>Ine_Z(&#T^83rp zZ}xPbNBp_Da`(NEQ!`WBPx57*wT3dgoXCH&WFipIVPxOjydw9c)W#ud$A%!lQV9Vz zU#PE-y}jnE^aog&dCEv}Q9n~7JI>_qot<{Hy|@yOODB}m5)x%93gLP zYy@e8hN>c>6FNq&oqrZmLHI2gnrhu#5@vZ^1{Xd)r%a5T~9 ze_xUfjhmGPbR)65z&Cf7CZ;Rz5bOPx#ejvPC<-BNQj8Jjm#+-UYiX8#-}MEgc~94N zlLm!#dw=sbeLCu;@;i?`KAd+LndxQsa=tk=7dh!BOuh1QxxGh2LTEnkbkUXXOj7x2 z^PXxk(Jt-!-Y+Nr+c(a{aYi6GEr?jJLKc_-z2}q~RZad859lJi6$#u4c+-BteliH>VRjNAnK=iqGNz5P8ne@DgNfDIa_=WO1oN zY2`7J{MfVoU*kLen@ovpJwt=;F!OQ%s35cN3|CfO9uO{ZQTRaiVA%&cl-4}P4 zPxpC?(*YjEnAmo6i1AYVR6ddJDdl|3%Jhu~0Y1e`hs#YXt}F08bCAHu4Q)TbB) zL0~iN>h{2Z4hviQ#2WHSyk) zFqf>+dT+D`-1kWKqpq&@ZUJ$i1k@Kx)mM&7*zV=;8QSQb56oC_b7rdXNiHgFuY_`9V%c?e>6=pcP zZ!Y=u({@uH$u*CfB7l%VdB&E0oe6WJC8+XO6()J#f0Z;%^Q0uv^uK=9w*Sd^ir4ra zB~v14LP~5t<@eoxZZAtmFpT*19FM#Ydkz+sKv`oEr46d%miy%}v_$e}11;D_QupVOxCHhrD+sU>_zu z{DbXa5ECW(%?npopXQo|hMV`7Kf&bhfc)Fg{fZLPi%8*&Bi`2*D>Cm_I zgzxp{jkwbi*Qgj@*-X0RyrCrcMjvgO>$lu$$AU{PsLJ^q`Q0Phv!UA3>EGnLM;Xc0 zxk(nUj9>IRZGNJMtyiM;H_3XSruMFbZdVr)3l!1vWki}F9M|%!q_yh7-Bv$hOTeZPjqwB#NRfaIzvV^^NvR?SAd`N z@~hUMo=m8$DJutxXzRF5n zo5>1o1(+4+&xc-cAl556=>1h=9;6#O6WO)4u3Gw{%leGB?pLSL3c-t;`=Gt@KvD1FN z!pPL2w|vXre9=o*2|U(q7k(8{^M4y40?s1cC+m-GC49^<8obTVKTTuB2P4QIsw{b8 z^f&4jw%ZDtyocNXw8iNxnQnv?MT(|l{UUj4a`NeZFAd58819DQVYj@%J%qRv#3=Pi z3j+QOoJk?{tZJQ~05={wX7!ezx?iZ<>^gS8`kKoVn^O}RKPP z7o7J>rN96Fzzm`cD@S}{c6|v46+C4y-5{ul6b>Iy2W9H{T7xiOfrS8rCii^bJ#CQc zTe7{UUvBtxK$g_ja2lPRxCvRYrr;*%n<= z5-kSL_&Az%)^I_Ut+qCk$N!EB_cp5Bw$XW9wh5593GRQ=OiZ!#rEdp?)rJNXnXgRG zacQaete8R&dVYVHy_WDS^Py4OV~Df*Q(Rnpyo7YblJ2oTi4UmFf}8=74z1xJxX9c& zc)gs)bL|C5yiZomhL0~AfOzPJ9EN%t7TWuRZkrDriZF8}gGFCmex^O55O6B{E*AJn zycR2~qp5pIfc;97s=7o!w{y?_KC6tZ3@5MP7sV8geE6EQext{ecjfHJb_R%BuiA958Y;y^GJiU7 zoYghl-teR(a5kWtOOpPdBXPW~P2FTBBC zkcV#K<3sTiwOPf!Ypyxwg1S^FYfQphdW}CAoGfHG5@VddpLRg%g9CEWq^g+liOQc9 zKE4g8`pdoG*GKVhX0nogVzJ=`Ic68tu@pWsAcX_wkt#I_ri@_;Xel)_kt*4&DOKpO zK7QVpHt@F;It|qyFSv}XF3eVA2@g0^#OV8EtOXBdx=PH)e+k28E@Nv-p_K<|&UHGT zxt+b89(ceg?UzN>cuddGW>XZ$%k``?9Y9SoqcI z4yaNpovWNn9uIEKK-CF9r0`k;_V5ntBXRmuRgrRQn%sS#!ff+WbV_+5r;X@oE@9z> znnq$onQYlR0u#7Fb@hm**1I+aH2Te`pcz~bp$XwEVo-|ngar2Nu%J}7WI7?B><4dk}msSP?ANcife_HI~GrNw$0qcy+W)yBg93Z`4Zga@i1Cq^P&!J0umIqbosw~ z7cuWNwGW5l<%RMY*Q?m^uOB9}7@i_Mz7ypyM|lFbi=|;qW`lNa5T|N2&OA)aLBH zM0=_aKRwp(;Q@Xr(FTf6e)rWg&jXF{%PG824rgbhrke1916^~oPX~90s$6Pn`kZE? zT!ZAdf636A>!(lJ>G@ue!FCcGKbeOjtn@p9WQFIM1t71pX!-62uT*xOGC~)JCIiaZ z0}d}DIpd<={>sDEyjsOZ-Ct-RJZe73Dl8rtB*McE1+8$PVSBuW#bILM<)yU@zy4<+ zBvpXjKk2%p^#oyn0uiH`67PffIp)^(cJ=){BlZAG$>_{X>ZOYs{z`h9r=Fcu*BE(v z5>JFZ2DLJffj07SKE?m<{3Ue$HJuQVu<5;#3K4Xa_v)rIcpk00Iz(EN=>T|mP$Aydt z`-fI?4J(lTWN*SveUdh?s+yFOo!$woBBCU6jR>dBGkbqrV1>dOeiXpVYX4gWkCvzr z0SYhy;5EaGDl1>(|4Xh2R3Nyf+l9{CMFr5xrz7Xm-#ents)sc5B)4dxCvIrHh~Q^B z@QlcL;~DO{)-@Kd_NV|&8H-lqR`WJ%_%{}Km+k(q9``3XYa9JvkB9EKVGq;Jm=l}H zf2*)@a957^%B$H*&1WcZ!Lj$_!N>&?GmNqv#*5swef=XE~+|= zINRg;K05k}QGvRXnubB?aj5y=SBwpu_xc~3b#!lRE=F9pi{lG}$Ks!m3po=3paNq# zqoM0TOvi6j09WmcrRXz_6^#HXD>7o>Pk;Eh!%R{mMx3z8_FD(M#wKN^lx-57>6t|S zwSiYhS!H1EOES4I3zYjCT zoUc8RA$*65jdA26YxA4Ekk0IhEBT23@`j$rFGeG#re({3!KioLAz;1&eK^tdJIGDl-l*z?wf7G5CFas-IP$}H9 z>@ZSAUM2O+#@n3vnW^#Xg#@3kZ=bbQusEVoKIK)Nu!7Nmx{p6S7YTN~{T?_-c_BFp zPsYCwl8Pkg((6B-mi+vqhl{hSVa=$yZ;_5;CvA>m-+UsY-{xRA<;=)A#SR8e(D@qO z%iAk2Jn?k@4o^#05*@U=V#xiF%F@y@AF?sSFUZo>-Y2JXu)jcewQxRtW~nhwCY+k& zG8Ofhsx>v$DddJBXl~pt1+T9#4#H3+(()=RpUltIG4E>~J!5=F!!Y5$D}yBm|G@u3 zUG}+zA6`$rOj5qYvk;?7-AcBxDpQaqwk$ zJr9?tXh?n--b)fQ6LGdb7Cij+O9_9UX()j2AByH~Z{hi0KMGkY2|{gvkn8Y6w(ANzeN?Awyz2QjBb zvj&_YvI>7-4)$e!#E3Ppzh6FccmIv0B?BTXz{1KPNaP-7*f2r0s2is+Sbk4x?CXN1 zps4t?kMVnITH4J>dSfH}`&Zq@imk`;tjq1hL+%C_tCB>98Y{o|(jLObj4l8E-0Xh~ zEh>vTOr-g|<&);-cE+bXo~A`kWfl#*<)+iXlKPSFuD5jhOwe?Y6gxCil`|Lst@27r zuu?b-lwCK{i+!j$+TcNqD--=+NyzJKjSQxR!FsVH6Zjqlvot81X11}mpX_H{)cFcx z%=4_nTW^Jvwu}0@$<^QU3($MeSG{CAu!^AjBZq6Neg%!1Fl}l~4pm(h_d0h}Va<$A z%zOcnuW{dS7Sl_pcMgPHC7|D4eMU5#xf6mPZl6F)^^4=$cQF5`ZF;X`>}43&_9qVO z!S|L@He?E#888o#?2f942pr+GZ!9)b2!bBR)F1WQU^MtXnz47=HlghyfUeu+HecIe z#{IExe{hPUW{G8BKwD$;zu<@~W`v|uA4X)g-MgZssnat-$w!A!+vNr%z*USqMC@gx zq-UUa+Iq{;*wn}+%JcQIDd}{vcTKr~av9zcX!B2avZ!J3rBwK$y{wB(#+t+0*^N(| z=gsC{P_g;h&-az@F>f0kjq4W`y|96f{;tF5v%`808A*((Az)y?Khuizw35W9hFX4c z=f}QlGP=8Zj8(21?k|*g1Gu70xeXCVF4V<1#so`|_BAWt^`g$Pb;(xYTRau2lTOM%}miz2UP zF6ev&1|sMS`XgA5WcQp;Xr6zThQToVxE8M%4Ho=x+u-0-?~5T1?c+&#FtmsVm8|gI zA3wV9YHAqVcop5Jn!)ZbP|309SKT3j7EStqGqp$LQ<-dz)aQZeyQH@B zwKx_$<*Jf4(V@IjDJIcojgIse7aIc~C7LRgaYhmZ+BMJoigKit3JZU>PnFJBxY@jV zKR-wCikG)=5r%m0rz-|~3VV3EEKmKNFa_(@`Qo8%!vBe-mp65U z3BP|<56WuA_ZHD7IJB6E77K@0)02}F6SLfl#<&tut%rxAMCayE(JYN~RQR?rZ(95F zs1-r>$|MId6JF9vK&0R;)2sV-$`t*duq*R_9)Hn&BU03;K17&!(QICJq9P>%cDB)3 z@{pB{jg*ZZ88fqUwn7jM2#mqSwtBib_zyrK{_CKTOX%gc4~4@BJcV3Q+W@mTj|-jFK&`(am+W61&{&d`H$l=ASuU4N=m|d zmt4sV5_te)VZXRq2khy3=L=@Zz+8KOI7oz@0W&`M+H!$Wt(b6qHe@Mrl;4A}tu$E~!~LOdKA+D*h5@T)xk zsD@1R;)Lk6<~=M@pTX15Ir|_qnEkj zC~<9f*IQiAB2iume=>f!#lZ?w?w3~nzml#xtjV_vj~WAM5Jm||IDVjvnxce+2$NP3 zMLI@G3DO;sQqm<8kY=DX(p@4Y(p`e2qxl}LZx{dU5B9$2dCz;|KKD82VZjl9q}=^) z^Uou9p5ce-++{~CI%BRi#7DZ9%WGZxrZqa>GZ3ytp0TQ_`yxCgg=GYcZU!V$@o(S0 zl$7YxSCD|Xhn}APDi=LEA_gD@5``k4t+!J>J5Ss@$M>Jw*Pb$TbasfG_8ORgJzj2` zsH6zRzFG|RbM5DidUmOMv?~z7D@f~u?;IDz=2xYhm6a9FV^BXn;iDyLEZ@i@pVI5M zq8KkBB<1h7k&*6T)*gJQ)3@hS4!eo&Aqq9;N(`zEncC+PQS#57uY-(1^SNH+Ub$m@ zVj{Mvp2Ez`tVgWRErLgR$GyS6=Cyr)^_*i3axulv+8kO@^3qlE#y`CJQy(;_>VFUX zF4`cNuMV}au#p3>@>E4d`t{M#(}T)e21Zm(HxHb_@(GgTk{K5U5l~wjUb+3tecBmm zAADde*uMFU>*Fi&bdl*oO~neE`WU_*#e2)r|9OmH8{fL*yj9^Jf2DsOsmKi&YjkRU z)7!qIRzdyd;pbmlvR&<-&|2PMLi77K8!i}teTGOHudV%l6Ym+)!6`Nn@XznM&ZTE| z){hrX3zwE(bQ@SZT%2Qa^M*zzx))AF1N-N}gdBmDm6ck7f`Wf*w(8QYY`(ldJZd)w zVeM51mDnE+@$rWEj0Qk~3y~aAE{suOcD|ikFlJ?#=%|0j@Tk+5*P5*W+bU$@`yzGW4>D*9RyR9 zE5t?Q2ku%{u8H^S(NWs(b;@sXg*v~wE&H;^Vd8xB zKj&yuQhFJoi#P?Dh;x;hr(RyiDfbF}97ce<$o>mLoBQf5n}@l-I=f&a#^28OPgYiB zeojWq1xP>yvPx#$tc*R+=m=&=8E;k_^C%PA;e2WQ!Hk>TP_pXjH#)bqb&AIhdbY({ ziWD$3>1YjD-AKB!F$0TGqK=B13t~_6%gM~{zU7}+yW%qphhFuI*j-25fZW(T?;YZ; zsQ06dI~yESAr9L%9QW1PLafdC+O-usXe5a6q5n23eV*FMlLJdp6n#H$zi(vCf*Mvs zE%@?B*gORrMaNR95DkU#TN{d!mrUTf8!q&RX{NZ3B&?|zcd?or<34Az@n>46KOVt{ zepixN#%|*m*fmo;_^)rTm&Uy^(7yC6Y2+lY2EP4P6i55W63{R;2MLptbYF}kL4{}UQsSu0<%Uq$%{zw%ZM!Cqg;Do=h`lFnDe#DBdthdb+)oP_a?N^gs&&Er&?2y_Ia!xehlJ(n{FbwIieEr$`Ulb8} z`@01vw|mT{>=7Ma-(0+h>2NulOCwz7{CLdac<}`&C!I6RwtXvnp|deFwZO;u&Th8h z^b3%TsE?qF(`$O#!{V*LynBN!KLRGJ?Dh!Vs`pZpAY{74Eo{O@(antnumrO`yyPWX z;=&t!4=6AE&CJr#Qv*TwgIr0O3^3XTLN9OhL?QdnnaYJ7UXL2#PB2v$-`#{}>g@^S z1Bk%Rt%x)cK8N5su%i@|Gd}A82N)~?rYfn4L}U1sLV($zW2|GZf06r{j$FUg7L{+(i-ov+yLw?<|-C-G8#`RNHO z{*_U@$>E^Ql?iqLbT7rn!O3On90TaI`3%r_MbJRW&zA({Y#k93bHz+KeL(wHvoz98 zV~bsWv+Lu>k2?dw*|UPPCj<+ijrMmJWe%Ukj}rYVtda_Xoq{C+iUl%ggNV&)iwYBV2TPs89}`F`8!O^ur|~ z3;T~Ynl~El&l~iG?xe|t48(O_srKICCRuyyvbZ?jZl->sw2HqSrc2l*(x9i8$xA%z zUv6n?VJMbtD8Nqw0b2I#`Lm)8cW3|sRS1!p*)meMFP}Z2zCsEAD*SDx&?-v}7y@W^ z_`)Yck`G4se-Pg{pP#WYlT<@)=i^r0zq1A)sHmWyYQjVfX0YnCwzdP&%nf1G|DnGK zi-GZI5(Cc98@&}ZKNe6KuBnj#eEw#e%B-Ry3aSw9nj%iS#pk8N`O{B(I;b^2E~NJi zj(Zmejd=}|P5(?!yvL{99fQ;MsqENP=Wp*D5raZYj7?pWf_9dvjpTMaC*S=&4h1*x zzy`|sIBk8SmX?^5;29uIN}DY7BT5V8^i)-~OVnY0{pKO9^S-U~O4|z6zGyb3t%%sp zkL-*IKVI?<=K!G`{~B!6y3T z{lUdnU5U)+DlTh+706PwXnHzpvqK}a8IXp$F{n3|>O2HJe43ahDBvFO^73jFP7GfV zi+$XD#g08;o9Gw+xEi|8w4OCeeiH9ka4K}*cJ?ktWZ_Qs$*GrgL}Vn84K6A=e9cn; z?k?+BNH-7qZmq{j03%5NNy^y?W`>P8#2!6?*o{smcz(_;0pzwCb!?LZ+n;}HeITlN zYRVV!4iQ==Jlds2i{g{7+mDY-VuJZR!Al!m6RXUPWPJ8^V8}#?cF}Tzx6}YFMP7EH zU&@5#ZiO>5cce|G|FawHx;Dd^yW=%k)o6yclOLn&BltmpZw}~~Upc%~;{Tpib^ACF z3o;9on6;YhDxDk*(6RowJow{6s=^nyP{DBhSkB0Tg}rp_TN8TadDFB8JM6H+7G zi*2~IZWivfgMXI&bW0xR{0MW*Yd8l->#sFLy*^{*3mO{FL1UrgVbxR=&OV&2l?}qa zzO{WpM0g?vK{eP8u@?3RuZ*GKV*iMLux6|pRXw-@*+Xp&illz3aSSBE0TVXC?Z$qi<^iL|szsQ*vUrW^>w&$u z9~mb0BJ02YGyQY{hA9HlvVDy?QdElMZt8C#jWy1XJAUaNc$W>^?pMJQ5VwaI3?^s7 z(3K(U-G=Rx65-T-3(LvsBE5?}vZ%%E0blX^4?qKk_&ZbtHm6)Yugu`T@bs!B7~~^+ z%I2YEThN}n;P_b3#$OPejxDzUG&wgf_t#f%hn-DWdkFr|glHkqN_L=?WMG>VPx0os zPX^7IsP9=S=^!Cr#$)SA#da1C;ii4_q<%@z?$B2+fwPIG`<^>A^xp@0TtexQN>1>L zcTP~MEo|r%ip9BE#6_5^We?NPh-pCk8vm;3z z-cFctx7Abx#JTN7kHgAuu%zEDD-yZJJ{}fhFeR%bbMm4hnx0#ku3ldVpzo3y5+GY} zU76ZBeOWnvvx6vF<~Pm*FLa0sj0psX+m$>p5Q%hbgtSwEHxUX9S~2V0=ClBvOV8lN z>LgJ^=-@tXoDUwE+s4?Lvf=ePs+PV}EdJCnvPEk^orx-`e(GinfiNL~46wpy(j1;R zAN|3r@P9(P)|&k16Q1?&TON4*u}QjMI&j4NFQRUII~80Zg?P%@>57nbI#^6s(=zsM zJUwR=1@$Wnv5t#m<2p7LBP1OB0p9jQn5Kc@MKQcvSPF2!XlsayRn9hk};fY|NLZaTn@D5w2Z0u(RQjSoC z*zxO+Ky{CcPFCSPC)oIH@c1STvEOnZMli@yZtYg(-`}V4Gr`E8AdMm9Op(%Xg>k-H zx9vr91sVdpkIkiSCYRxQycQrv8<~gkYM3lhHVUH;u)6qd_R&e2j+P>_Z*HGJ|DLde zo8j6G^ezTMuEwYeYd%TP9y`W>R;086sF)aPJwrAIw?d{F*7#i#=}NkJc8v%{q+xjA z?5y{g%#9-J!C|FYzLRLZl@ke|kB5B4G($0e!&P+FK zpjp1_54<+0(B1NoH1Ntlk~g6T<=aD)Nxv+AJ1`cxd3=YcAkC3ze)M|hyX}enh?xYW zHZ+w0VR&^${z}zS5Q#5Ux2-nP)W(iCiMfam)iAPoI_66f#Oh5JQv>%eTY|y8k$LIq zH9jFbzVp!fpfV@7D~^r>~iZ{GqMjdTA+@i3;$ zYcS*1&G__*n(Ur043a0nxc&Wg!QS0S(P>AWjw@0TmvFQ75dW!$V3fff&qj1 z{e$nt1IHptMClg=lc!Jb*mdh%l}JF81}jTDjWB!YdyTIB)|EuTGnIgz`l+Eo&yE$& zoC~rn8Da551L9c9ro*mg6?L~qBx5+8gZd5-sby!=wKZ|g;e|48CgH|HY5YrD+h!ZF z*u{dG4x|V*I2Ol~+B&?(kIV2c+|k$Ba?HRk9U|~p-`n%}4*}w%hm?D2OP6{rSr^c; zndzJ=u82R)Vvt7z|EBBeQlQXT^60^*O^NH95720w_xaURg4cJ)|A4|Npbh;-OVs;W zM}L<6nm1pr8l06e`-->ypB-|_1mS>|ZQPi&s=(HKyAF*yjtPoDge9e=8J?0Afh^Tq zO=8gi4AyeeurqS0a*Xwz-Io-5p~wl^jotCMf%^U zH-Vw6PL?e4k9m~+d&L7ncO5iVU<{JPt{srQbt&f*{7mfent?a%+xtFs5g$oi#Je$lU5;W(kOEp%$U_@hS%R9 z_932Qp;6@={#hC0d|?g84!s9s?A+9FvJ8 z^~E8;{;k`L;mbkgv9YRb;m4S+toRnuyCM1O{KOMCh-&2_Ot9}JNZm%9^QLy`%s=EF z>k0&!(6_W?%4&y{+(g`-Zi&4_js&(C_0_(%S5?P#`AseI5?^xpo{sC)xzrq@f;Hh+ zSF!+xNf?1Sf=MLS4rNp~kZuCjtklXRm=^WG{>mx8MO2XlA>5Lhd zX3Cb90;#ly7PK(pIhVnfWkof zS+IX?hh&*3c^JWf$N@!n`@tIFRY#mg%SX|N{NI;hK^Nh?yGBKfKoF7O$t@S9?4!@q z<{ozk_xr%5=-xqr16-K`*@~=P9J!yg#+k00YQN82adBMPHAO{3DhT%?P$4WQOy=vP z4PLj;JnrgTQUP(=t&|D4u`_AZm*=~>& z<>FBTtic|KW-QIl={){;F4>72PO)LDH8AfcO-CDaOW{AyZ`j2X{e~?g1|e`LOM#&= zF;%;ay&s;S(XS@%_($a2MAHEmM(8c$xvziZ<-JXIK?8x1*eNT>K6`JxE65CwRQ$!x zTlU)qWI43LbnD?7C##?jqjbZT6?h=$Y^L^4N$@w3^3i*EdK>!j&wx1Jt| zI$pg3wZampy<3ch=K?Nu4N=SVhDA^`Kj0*Q4hb+r7GQo?j*yC*j+~2)3M0M;C?_oz z3q~T$z|tBmxFxxXs+fzq#*u-bB9O-!m(9}*Vz48x@1-N9x_HAe3KJxwuLOi*8YsQv z@4l7HUw{7T{wjiS>ndF_Lpae|2YCp&cm>~^F*O>o3L4}zgbL|egmOyR`z!aT*tj^^ zNU=k(fM!V4B18JA9C3hb^D4fPg*@ca9*hiLoG1_oz%l5U^!`ZC&CL~tR1q{SEiG}R zxLt7AXm3I*7umSu?4d;W0=QNqGdN+eqjT=>hCAVEdHbE(byA&-NcitEW{9Hx&)M0* z#Kd^dX`64}ZAMjzx19sq4VQ@GwT_6q4G{4A2&JF5Ha9j1-6z`&zg#_wzsV^nR!EvX zsqoR0JK+;H<^vFJ4zR%iK=tQ-OF%;E7Y|^Uf;h&Rn%o>FY$;gI5wko~DKo@_k42(8s3{ zTmSXIz*Y3}fp%f>K${D~w8$4!yaJlD1mG0X>|qMh<0B(ts|fy~NkJ&L36ho*yT;6V zRhy9qQ2b*wQu9%`zeS=8N^+mG!ULBIF-!Y+xtF6RjL$k5V&*wU;+g>gK{jOV77iTv{#@BWa7>~8U=lSh32`xFh~f{4XBAM z_^zUe-BnlN8~zJS;uc>;jsM-`d#ESTK7i`P&p=_qf z_%Q(I;1OmE+kf8?KS4`dim?0@O;*u$i_4!f6=D9RBKrp5LNQ7T5rJ|}T(WB)0$Uqb zB079Z3k#jrZCL{}m4F>??xGo{r^ln?XD}kk|58mc|imW>8XT^YL2 zh_HF3cM1%d_lG8qhe2Ui$$hfZkl{WsL&);Jwyv)9Hq+|fhZG(WiYDPh7DY&wNJi{X zSMlLXBF$LN&};^>5P5$@EwOC%f9Mwe|CAaFbgQ;OEergH=+$q$HMOy^$qS9HdTJ;m z4F3(zB2Lu)Iy7L&7ztN_2Kd>RpRZjb(`4WZyLla~cH!kmgf65Z!m!z#2jQ`A)9Ci< zhu8m%PpUypid(WFa0>QNGvpt=FMVK&3FYa(t-5BVE-IRz1I!evY+TN1euWFL7wCJ& ze1VG+O$wll$`!bHFN#~a)DQkllyW1PR2iMF$;2C~g(mPtXCpMx`2h2U(ei3iXrj+! zdE9wI2eb@h(LWKNz8dg+UR@gkR0+0woMq79<}L$Z79yTnZAolCfPjzkBQ=E*IYa;d E0RTBUa{vGU diff --git a/docs/_static/img/icons/icon-72x72.png b/docs/_static/img/icons/icon-72x72.png deleted file mode 100644 index 17236cc3835a39b8b0e7bb0032f8e53f2d91e676..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7261 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 diff --git a/docs/_static/img/icons/ms-icon-144x144.png b/docs/_static/img/icons/ms-icon-144x144.png deleted file mode 100644 index 742a7fb1a8de9274c778b7200ecca4d0b2cfe298..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 13949 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 diff --git a/docs/_static/img/icons/ms-icon-310x310.png b/docs/_static/img/icons/ms-icon-310x310.png deleted file mode 100644 index f740c30071f815aa3bb3c33766fe4ac1b341055f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 39415 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 UKZcg$01F_TiS^kMV|>`Z0N+AwYybcN diff --git a/docs/_static/img/icons/ms-icon-70x70.png b/docs/_static/img/icons/ms-icon-70x70.png deleted file mode 100644 index a09239d8ba930d3b66fcd9153fafcd098541dfe4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6324 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 OfYg+<70VPXU;Piefbj$X diff --git a/docs/_static/img/libvcs-dark.svg b/docs/_static/img/libvcs-dark.svg deleted file mode 100644 index 5be4cd149..000000000 --- a/docs/_static/img/libvcs-dark.svg +++ /dev/null @@ -1,201 +0,0 @@ - - - - - logo (dark) - - - - - - - - - - - - - - - - - - Circle object (shape) - - - Gear object (Group) - - Gear Shadow object (Shape) - - - - Gear object (Shape) - - - - - Arrow 1 object (Group) - - Arrow 1 Shadow object (Shape) - - - Arrow 1 object (Shape) - - - - Arrow 2 object (Group) - - Arrow 2 Shadow object (Shape) - - - Arrow 2 object (Shape) - - - - - - - logo (dark) - - - - diff --git a/docs/_static/img/libvcs.svg b/docs/_static/img/libvcs.svg deleted file mode 100644 index cb071e705..000000000 --- a/docs/_static/img/libvcs.svg +++ /dev/null @@ -1,186 +0,0 @@ - - - - - libvcs - - - - - - - - - - - - - - Circle object (shape) - - - Gear object (Group) - - Gear Shadow object (Shape) - - - - Gear object (Shape) - - - - - Arrow 1 object (Group) - - Arrow 1 Shadow object (Shape) - - - Arrow 1 object (Shape) - - - - Arrow 2 object (Group) - - Arrow 2 Shadow object (Shape) - - - Arrow 2 object (Shape) - - - - - - - libvcs - - - - diff --git a/docs/_templates/layout.html b/docs/_templates/layout.html deleted file mode 100644 index 19a94fe47..000000000 --- a/docs/_templates/layout.html +++ /dev/null @@ -1,45 +0,0 @@ -{% extends "!layout.html" %} -{%- block extrahead %} - {{ super() }} - {%- if theme_show_meta_manifest_tag == true %} - - {% endif -%} - {%- if theme_show_meta_og_tags == true %} - - - - - - - - - - - - - - - - {% endif -%} - {%- if theme_show_meta_app_icon_tags == true %} - - - - - - - - - - - - - - - - - - - - {% endif -%} -{% endblock %} diff --git a/docs/_templates/sidebar/projects.html b/docs/_templates/sidebar/projects.html deleted file mode 100644 index 330d15930..000000000 --- a/docs/_templates/sidebar/projects.html +++ /dev/null @@ -1,45 +0,0 @@ -

- diff --git a/docs/conf.py b/docs/conf.py index 2b553684f..bab0c89db 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -23,18 +23,10 @@ "sphinx.ext.napoleon", # Should go first "autoapi.extension", "sphinx.ext.autodoc", - "sphinx_autodoc_typehints", - "sphinx.ext.intersphinx", "sphinx.ext.todo", - "sphinx.ext.linkcode", - "sphinx_inline_tabs", - "sphinx_issues", - "sphinx_copybutton", - "sphinxext.opengraph", - "sphinxext.rediraffe", + "sphinx.ext.intersphinx", "myst_parser", ] -myst_enable_extensions = ["colon_fence", "substitution", "replacements"] templates_path = ["_templates"] @@ -50,50 +42,12 @@ exclude_patterns = ["_build"] -pygments_style = "monokai" -pygments_dark_style = "monokai" - -html_css_files = ["css/custom.css"] -html_static_path = ["_static"] -html_extra_path = ["manifest.json"] -html_favicon = "_static/favicon.ico" -html_theme = "furo" html_theme_path: list = [] -html_theme_options: dict = { - "light_logo": "img/libvcs.svg", - "dark_logo": "img/libvcs-dark.svg", - "footer_icons": [ - { - "name": "GitHub", - "url": about["__github__"], - "html": """ - - - - """, - "class": "", - }, - ], -} -html_sidebars = { - "**": [ - "sidebar/scroll-start.html", - "sidebar/brand.html", - "sidebar/search.html", - "sidebar/navigation.html", - "sidebar/projects.html", - "sidebar/scroll-end.html", - ] -} # sphinx.ext.autodoc autoclass_content = "both" autodoc_member_order = "bysource" -# sphinx-autodoc-typehints -autodoc_typehints = "description" # show type hints in doc body instead of signature -simplify_optional_unions = True - # sphinx-autoapi autoapi_type = "python" autoapi_dirs = [project_root / "libvcs"] @@ -103,133 +57,11 @@ napoleon_google_docstring = True napoleon_include_init_with_doc = True -# sphinxext.opengraph -ogp_site_url = about["__docs__"] -ogp_image = "_static/img/icons/icon-192x192.png" -ogp_desscription_length = about["__description__"] -ogp_site_name = about["__title__"] - -# sphinx-copybutton -copybutton_prompt_text = ( - r">>> |\.\.\. |> |\$ |\# | In \[\d*\]: | {2,5}\.\.\.: | {5,8}: " -) -copybutton_prompt_is_regexp = True -copybutton_remove_prompts = True - # sphinx-issues issues_github_path = "vcs-python/libvcs" -# sphinxext-rediraffe -rediraffe_redirects = "redirects.txt" -rediraffe_branch = "master~1" - -htmlhelp_basename = "%sdoc" % about["__title__"] - -latex_documents = [ - ( - "index", - "{}.tex".format(about["__package_name__"]), - "{} Documentation".format(about["__title__"]), - about["__author__"], - "manual", - ) -] - -man_pages = [ - ( - "index", - about["__package_name__"], - "{} Documentation".format(about["__title__"]), - about["__author__"], - 1, - ) -] - -texinfo_documents = [ - ( - "index", - "{}".format(about["__package_name__"]), - "{} Documentation".format(about["__title__"]), - about["__author__"], - about["__package_name__"], - about["__description__"], - "Miscellaneous", - ) -] - intersphinx_mapping = { "py": ("https://docs.python.org/3", None), "pip": ("https://pip.pypa.io/en/latest/", None), "vcspull": ("https://vcspull.git-pull.com/", 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 "{}/blob/master/{}/{}{}".format( - about["__github__"], - about["__package_name__"], - fn, - linespec, - ) - else: - return "{}/blob/v{}/{}/{}{}".format( - about["__github__"], - about["__version__"], - about["__package_name__"], - fn, - linespec, - ) diff --git a/docs/contributing/index.md b/docs/contributing/index.md deleted file mode 100644 index 0bf04d5ea..000000000 --- a/docs/contributing/index.md +++ /dev/null @@ -1,12 +0,0 @@ -(contributing)= - -(developing)= - -# Contributing - -As an open source project, libvcs accepts contributions through GitHub. Below you will find -resources on the internals of the project. - -```{toctree} -workflow -``` diff --git a/docs/contributing/workflow.md b/docs/contributing/workflow.md deleted file mode 100644 index 744ba8308..000000000 --- a/docs/contributing/workflow.md +++ /dev/null @@ -1,208 +0,0 @@ -(workflow)= - -# Workflow - -## Development environment - -[poetry] is a required package to develop. - -```console -$ git clone https://github.com/vcs-python/libvcs.git -``` - -```console -$ cd libvcs -``` - -```console -$ poetry install -E "docs test coverage lint format" -``` - -Makefile commands prefixed with `watch_` will watch files and rerun. - -## Tests - -```console -$ poetry run py.test -``` - -Helpers: `make test` Rerun tests on file change: `make watch_test` (requires [entr(1)]) - -## Documentation - -Default preview server: http://localhost:8068 - -[sphinx-autobuild] will automatically build the docs, watch for file changes and launch a server. - -From home directory: `make start_docs` From inside `docs/`: `make start` - -[sphinx-autobuild]: https://github.com/executablebooks/sphinx-autobuild - -### Manual documentation (the hard way) - -`cd docs/` and `make html` to build. `make serve` to start http server. - -Helpers: `make build_docs`, `make serve_docs` - -Rebuild docs on file change: `make watch_docs` (requires [entr(1)]) - -Rebuild docs and run server via one terminal: `make dev_docs` (requires above, and a `make(1)` with -`-J` support, e.g. GNU Make) - -## Formatting - -The project uses [black] and [isort] (one after the other). Configurations are in `pyproject.toml` -and `setup.cfg`: - -- `make black isort`: Run `black` first, then `isort` to handle import nuances - -## Linting - -[flake8] and [mypy] run via CI in our GitHub Actions. See the configuration in `pyproject.toml` and -`setup.cfg`. - -### flake8 - -[flake8] provides fast, reliable, barebones styling and linting. - -````{tab} Command - -poetry: - -```console -$ poetry run flake8 -``` - -If you setup manually: - -```console -$ flake8 -``` - -```` - -````{tab} make - -```console -$ make flake8 -``` - -```` - -````{tab} Watch - -```console -$ make watch_flake8 -``` - -requires [`entr(1)`]. - -```` - -````{tab} Configuration - -See `[flake8]` in setup.cfg. - -```{literalinclude} ../../setup.cfg -:language: ini -:start-at: "[flake8]" -:end-before: "[isort]" - -``` - -```` - -### mypy - -[mypy] is used for static type checking. - -````{tab} Command - -poetry: - -```console -$ poetry run mypy . -``` - -If you setup manually: - -```console -$ mypy . -``` - -```` - -````{tab} make - -```console -$ make mypy -``` - -```` - -````{tab} Watch - -```console -$ make watch_mypy -``` - -requires [`entr(1)`]. -```` - -## Releasing - -Since this software used in production projects, we don't want to release breaking changes. - -Choose what the next version is. Assuming it's version 0.9.0, it could be: - -- 0.9.0post0: postrelease, if there was a packaging issue -- 0.9.1: bugfix / security / tweak -- 0.10.0: breaking changes, new features - -Let's assume we pick 0.9.1 - -`CHANGES`: Assure any PRs merged since last release are mentioned. Give a thank you to the -contributor. Set the header with the new version and the date. Leave the "current" header and -_Insert changes/features/fixes for next release here_ at the top:: - - current - ------- - - *Insert changes/features/fixes for next release here* - - libvcs 0.9.1 (2020-10-12) - ------------------------- - - :issue:`1`: Fix bug - -`libvcs/__init__.py` and `__about__.py` - Set version - -```console -$ git commit -m 'Tag v0.9.1' -``` - -```console -$ git tag v0.9.1 -``` - -After `git push` and `git push --tags`, CI will automatically build and deploy to PyPI. - -### Releasing (manual) - -As of 0.10, [poetry] handles virtualenv creation, package requirements, versioning, building, and -publishing. Therefore there is no setup.py or requirements files. - -Update `__version__` in `__about__.py` and `pyproject.toml`:: - - git commit -m 'build(libvcs): Tag v0.1.1' - git tag v0.1.1 - git push - git push --tags - poetry build - poetry publish - -[poetry]: https://python-poetry.org/ -[entr(1)]: http://eradman.com/entrproject/ -[`entr(1)`]: http://eradman.com/entrproject/ -[black]: https://github.com/psf/black -[isort]: https://pypi.org/project/isort/ -[flake8]: https://flake8.pycqa.org/ -[mypy]: http://mypy-lang.org/ diff --git a/docs/history.md b/docs/history.md deleted file mode 120000 index 3e8bc8c0c..000000000 --- a/docs/history.md +++ /dev/null @@ -1 +0,0 @@ -../CHANGES \ No newline at end of file diff --git a/docs/index.md b/docs/index.md index 621e378d2..c2d19720f 100644 --- a/docs/index.md +++ b/docs/index.md @@ -8,8 +8,6 @@ :maxdepth: 2 :hidden: -quickstart -parse/index cmd/index projects/index ``` @@ -18,9 +16,7 @@ projects/index :caption: Project :hidden: -contributing/index internals/index -history GitHub ``` diff --git a/docs/manifest.json b/docs/manifest.json deleted file mode 100644 index 7f34c012a..000000000 --- a/docs/manifest.json +++ /dev/null @@ -1,53 +0,0 @@ -{ - "name": "libvcs", - "short_name": "libvcs", - "description": "vcs abstraction layer", - "theme_color": "#2196f3", - "background_color": "#fff", - "display": "browser", - "Scope": "https://libvcs.git-pull.com/", - "start_url": "https://libvcs.git-pull.com/", - "icons": [ - { - "src": "_static/img/icons/icon-72x72.png", - "sizes": "72x72", - "type": "image/png" - }, - { - "src": "_static/img/icons/icon-96x96.png", - "sizes": "96x96", - "type": "image/png" - }, - { - "src": "_static/img/icons/icon-128x128.png", - "sizes": "128x128", - "type": "image/png" - }, - { - "src": "_static/img/icons/icon-144x144.png", - "sizes": "144x144", - "type": "image/png" - }, - { - "src": "_static/img/icons/icon-152x152.png", - "sizes": "152x152", - "type": "image/png" - }, - { - "src": "_static/img/icons/icon-192x192.png", - "sizes": "192x192", - "type": "image/png" - }, - { - "src": "_static/img/icons/icon-384x384.png", - "sizes": "384x384", - "type": "image/png" - }, - { - "src": "_static/img/icons/icon-512x512.png", - "sizes": "512x512", - "type": "image/png" - } - ], - "splash_pages": null -} diff --git a/docs/quickstart.md b/docs/quickstart.md deleted file mode 100644 index e9508b34f..000000000 --- a/docs/quickstart.md +++ /dev/null @@ -1,41 +0,0 @@ -(quickstart)= - -# Quickstart - -## Installation - -For latest official version: - -```console -$ pip install --user libvcs -``` - -Upgrading: - -```console -$ pip install --user --upgrade libvcs -``` - -(developmental-releases)= - -### Developmental releases - -New versions of libvcs are published to PyPI as alpha, beta, or release candidates. In their -versions you will see notification like `a1`, `b1`, and `rc1`, respectively. `1.10.0b4` would mean -the 4th beta release of `1.10.0` before general availability. - -- [pip]\: - - ```console - $ pip install --user --upgrade --pre libvcs - ``` - -via trunk (can break easily): - -- [pip]\: - - ```console - $ pip install --user -e git+https://github.com/vcs-python/libvcs.git#egg=libvcs - ``` - -[pip]: https://pip.pypa.io/en/stable/ diff --git a/docs/redirects.txt b/docs/redirects.txt deleted file mode 100644 index e023dc93f..000000000 --- a/docs/redirects.txt +++ /dev/null @@ -1,12 +0,0 @@ -"api.md" "projects/index.md" -"api/base.md" "projects/base.md" -"api/git.md" "projects/git.md" -"api/hg.md" "projects/hg.md" -"api/svn.md" "projects/svn.md" -"developing.md" "contributing/index.md" -"contributing/internals.md" "contributing/internals/index.md" -"contributing/internals/exc.md" "internals/exc.md" -"contributing/internals/index.md" "internals/index.md" -"contributing/internals/query_list.md" "internals/query_list.md" -"contributing/internals/subprocess.md" "internals/subprocess.md" -"contributing/internals/types.md" "internals/types.md" diff --git a/tests/__init__.py b/tests/__init__.py deleted file mode 100644 index e69de29bb..000000000 diff --git a/tests/_internal/subprocess/conftest.py b/tests/_internal/subprocess/conftest.py deleted file mode 100644 index fb301f7be..000000000 --- a/tests/_internal/subprocess/conftest.py +++ /dev/null @@ -1,8 +0,0 @@ -import pathlib - -import pytest - - -@pytest.fixture(autouse=True) -def cwd_default(monkeypatch: pytest.MonkeyPatch, tmp_path: pathlib.Path): - monkeypatch.chdir(tmp_path) diff --git a/tests/_internal/subprocess/test_SubprocessCommand.py b/tests/_internal/subprocess/test_SubprocessCommand.py deleted file mode 100644 index 493f67efa..000000000 --- a/tests/_internal/subprocess/test_SubprocessCommand.py +++ /dev/null @@ -1,139 +0,0 @@ -import pathlib -import subprocess -from typing import Any - -import pytest - -from libvcs._internal.subprocess import SubprocessCommand - - -def idfn(val: Any) -> str: - if isinstance(val, list): - if len(val): - return str(val[0]) - return "[]]" - - return str(val) - - -@pytest.mark.parametrize( - "args,kwargs,expected_result", - [ - [["ls"], {}, SubprocessCommand("ls")], - [[["ls", "-l"]], {}, SubprocessCommand(["ls", "-l"])], - [[], {"args": ["ls", "-l"]}, SubprocessCommand(["ls", "-l"])], - [["ls -l"], {"shell": True}, SubprocessCommand("ls -l", shell=True)], - [[], {"args": "ls -l", "shell": True}, SubprocessCommand("ls -l", shell=True)], - [ - [], - {"args": ["ls", "-l"], "shell": True}, - SubprocessCommand(["ls", "-l"], shell=True), - ], - ], - ids=idfn, -) -def test_init(args: list, kwargs: dict, expected_result: Any): - """Test SubprocessCommand via list + kwargs, assert attributes""" - cmd = SubprocessCommand(*args, **kwargs) - assert cmd == expected_result - - # Attributes in cmd should match what's passed in - for k, v in kwargs.items(): - assert getattr(cmd, k) == v - - proc = cmd.Popen() - proc.communicate() - assert proc.returncode == 0 - - -FIXTURES = [ - [["ls"], {}, SubprocessCommand("ls")], - [[["ls", "-l"]], {}, SubprocessCommand(["ls", "-l"])], -] - - -@pytest.mark.parametrize( - "args,kwargs,expected_result", - FIXTURES, - ids=idfn, -) -def test_init_and_Popen(args: list, kwargs: dict, expected_result: Any): - """Test SubprocessCommand with Popen""" - cmd = SubprocessCommand(*args, **kwargs) - assert cmd == expected_result - - cmd_proc = cmd.Popen() - cmd_proc.communicate() - assert cmd_proc.returncode == 0 - - proc = subprocess.Popen(*args, **kwargs) - proc.communicate() - assert proc.returncode == 0 - - -@pytest.mark.parametrize( - "args,kwargs,expected_result", - FIXTURES, - ids=idfn, -) -def test_init_and_Popen_run(args: list, kwargs: dict, expected_result: Any): - """Test SubprocessCommand with run""" - cmd = SubprocessCommand(*args, **kwargs) - assert cmd == expected_result - - cmd_proc = cmd.Popen() - cmd_proc.communicate() - assert cmd_proc.returncode == 0 - - proc = subprocess.run(*args, **kwargs) - assert proc.returncode == 0 - - -@pytest.mark.parametrize( - "args,kwargs,expected_result", - FIXTURES, - ids=idfn, -) -def test_init_and_check_call(args: list, kwargs: dict, expected_result: Any): - """Test SubprocessCommand with Popen.check_call""" - cmd = SubprocessCommand(*args, **kwargs) - assert cmd == expected_result - - return_code = cmd.check_call() - assert return_code == 0 - - proc = subprocess.check_call(*args, **kwargs) - assert proc == return_code - - -@pytest.mark.parametrize( - "args,kwargs,expected_result", - FIXTURES, -) -def test_init_and_check_output(args: list, kwargs: dict, expected_result: Any): - """Test SubprocessCommand with Popen.check_output""" - cmd = SubprocessCommand(*args, **kwargs) - assert cmd == expected_result - - return_output = cmd.check_output() - assert isinstance(return_output, bytes) - - proc = subprocess.check_output(*args, **kwargs) - assert proc == return_output - - -@pytest.mark.parametrize( - "args,kwargs,run_kwargs", - [ - [["ls"], {}, {}], - [[["ls", "-l"]], {}, {}], - [[["ls", "-al"]], {}, {"stdout": subprocess.DEVNULL}], - ], - ids=idfn, -) -def test_run(tmp_path: pathlib.Path, args: list, kwargs: dict, run_kwargs: dict): - kwargs["cwd"] = tmp_path - cmd = SubprocessCommand(*args, **kwargs) - response = cmd.run(**run_kwargs) - - assert response.returncode == 0 diff --git a/tests/_internal/test_query_list.py b/tests/_internal/test_query_list.py deleted file mode 100644 index 3af208fd9..000000000 --- a/tests/_internal/test_query_list.py +++ /dev/null @@ -1,240 +0,0 @@ -from typing import Optional - -import pytest - -from libvcs._internal.query_list import QueryList - - -@pytest.mark.parametrize( - "items,filter_expr,expected_result", - [ - [[{"test": 1}], None, [{"test": 1}]], - [[{"test": 1}], None, QueryList([{"test": 1}])], - [[{"fruit": "apple"}], None, QueryList([{"fruit": "apple"}])], - [ - [{"fruit": "apple", "banana": object()}], - None, - QueryList([{"fruit": "apple", "banana": object()}]), - ], - [ - [{"fruit": "apple", "banana": object()}], - dict(fruit__eq="apple"), - QueryList([{"fruit": "apple", "banana": object()}]), - ], - [ - [{"fruit": "apple", "banana": object()}], - dict(fruit__eq="notmatch"), - QueryList([]), - ], - [ - [{"fruit": "apple", "banana": object()}], - dict(fruit__exact="apple"), - QueryList([{"fruit": "apple", "banana": object()}]), - ], - [ - [{"fruit": "apple", "banana": object()}], - dict(fruit__exact="notmatch"), - QueryList([]), - ], - [ - [{"fruit": "apple", "banana": object()}], - dict(fruit__iexact="Apple"), - QueryList([{"fruit": "apple", "banana": object()}]), - ], - [ - [{"fruit": "apple", "banana": object()}], - dict(fruit__iexact="Notmatch"), - QueryList([]), - ], - [ - [{"fruit": "apple", "banana": object()}], - dict(fruit="notmatch"), - QueryList([]), - ], - [ - [{"fruit": "apple"}, {"fruit": "mango"}], - dict(fruit="apple"), - [{"fruit": "apple"}], - ], - [ - [{"fruit": "apple"}, {"fruit": "mango"}], - dict(fruit__in="app"), - [{"fruit": "apple"}], - ], - [ - [{"fruit": "apple"}, {"fruit": "mango"}], - dict(fruit__icontains="App"), - [{"fruit": "apple"}], - ], - [ - [{"fruit": "apple"}, {"fruit": "mango"}], - dict(fruit__contains="app"), - [{"fruit": "apple"}], - ], - [ - [{"fruit": "apple"}, {"fruit": "mango"}], - dict(fruit__regex=r"app.*"), - [{"fruit": "apple"}], - ], - [ - [{"fruit": "apple"}, {"fruit": "mango"}], - dict(fruit__iregex=r"App.*"), - [{"fruit": "apple"}], - ], - [ - [{"fruit": "apple"}, {"fruit": "mango"}], - dict(fruit__startswith="a"), - [{"fruit": "apple"}], - ], - [ - [{"fruit": "apple"}, {"fruit": "mango"}], - dict(fruit__istartswith="AP"), - [{"fruit": "apple"}], - ], - [ - [{"fruit": "apple"}, {"fruit": "mango"}], - dict(fruit__startswith="z"), - [], - ], - [ - [{"fruit": "apple"}, {"fruit": "mango"}], - dict(fruit__endswith="le"), - [{"fruit": "apple"}], - ], - [ - [{"fruit": "apple"}, {"fruit": "mango"}], - dict(fruit__iendswith="LE"), - [{"fruit": "apple"}], - ], - [ - [{"fruit": "apple"}, {"fruit": "mango"}], - dict(fruit__endswith="z"), - [], - ], - [ - [ - {"fruit": "apple"}, - {"fruit": "mango"}, - {"fruit": "banana"}, - {"fruit": "kiwi"}, - ], - dict(fruit__in=["apple", "mango"]), - [{"fruit": "apple"}, {"fruit": "mango"}], - ], - [ - [ - {"fruit": "apple"}, - {"fruit": "mango"}, - {"fruit": "banana"}, - {"fruit": "kiwi"}, - ], - dict(fruit__nin=["apple", "mango"]), - [{"fruit": "banana"}, {"fruit": "kiwi"}], - ], - [ - [ - {"place": "book store", "city": "Tampa", "state": "Florida"}, - {"place": "coffee shop", "city": "Tampa", "state": "Florida"}, - { - "place": "chinese restaurant", - "city": "ybor city", - "state": "Florida", - }, - { - "place": "walt disney world", - "city": "Lake Buena Vista", - "state": "Florida", - }, - ], - dict(city="Tampa", state="Florida"), - [ - {"place": "book store", "city": "Tampa", "state": "Florida"}, - {"place": "coffee shop", "city": "Tampa", "state": "Florida"}, - ], - ], - [ - [ - {"place": "book store", "city": "Tampa", "state": "Florida"}, - {"place": "coffee shop", "city": "Tampa", "state": "Florida"}, - { - "place": "chinese restaurant", - "city": "ybor city", - "state": "Florida", - }, - { - "place": "walt disney world", - "city": "Lake Buena Vista", - "state": "Florida", - }, - ], - dict(place__contains="coffee", state="Florida"), - [ - {"place": "coffee shop", "city": "Tampa", "state": "Florida"}, - ], - ], - [ - [ - { - "place": "Largo", - "city": "Tampa", - "state": "Florida", - "foods": {"fruit": ["banana", "orange"], "breakfast": "cereal"}, - }, - { - "place": "Chicago suburbs", - "city": "Elmhurst", - "state": "Illinois", - "foods": {"fruit": ["apple", "cantelope"], "breakfast": "waffles"}, - }, - ], - dict(foods__fruit__contains="banana"), - [ - { - "place": "Largo", - "city": "Tampa", - "state": "Florida", - "foods": {"fruit": ["banana", "orange"], "breakfast": "cereal"}, - }, - ], - ], - [ - [ - { - "place": "Largo", - "city": "Tampa", - "state": "Florida", - "foods": {"fruit": ["banana", "orange"], "breakfast": "cereal"}, - }, - { - "place": "Chicago suburbs", - "city": "Elmhurst", - "state": "Illinois", - "foods": {"fruit": ["apple", "cantelope"], "breakfast": "waffles"}, - }, - ], - dict(foods__breakfast="cereal"), - [ - { - "place": "Largo", - "city": "Tampa", - "state": "Florida", - "foods": {"fruit": ["banana", "orange"], "breakfast": "cereal"}, - }, - ], - ], - [[1, 2, 3, 4, 5], None, QueryList([1, 2, 3, 4, 5])], - [[1, 2, 3, 4, 5], [1], QueryList([1])], - [[1, 2, 3, 4, 5], [1, 4], QueryList([1, 4])], - [[1, 2, 3, 4, 5], lambda val: 1 == val, QueryList([1])], - [[1, 2, 3, 4, 5], lambda val: 2 == val, QueryList([2])], - ], -) -def test_filter(items: list, filter_expr: Optional[dict], expected_result: list): - qs = QueryList(items) - if filter_expr is not None: - if isinstance(filter_expr, dict): - assert qs.filter(**filter_expr) == expected_result - else: - assert qs.filter(filter_expr) == expected_result - else: - assert qs.filter() == expected_result diff --git a/tests/cmd/__init__.py b/tests/cmd/__init__.py deleted file mode 100644 index e69de29bb..000000000 diff --git a/tests/cmd/test_core.py b/tests/cmd/test_core.py deleted file mode 100644 index 5664a9f7a..000000000 --- a/tests/cmd/test_core.py +++ /dev/null @@ -1,23 +0,0 @@ -import pathlib - -import pytest - -from libvcs._internal.run import mkdir_p, which - - -def test_mkdir_p(tmp_path: pathlib.Path): - path = tmp_path / "file" - path.touch() - - with pytest.raises(Exception) as excinfo: - mkdir_p(path) - excinfo.match(r"Could not create directory %s" % path) - - # already exists is a noop - mkdir_p(tmp_path) - - -def test_which_no_hg_found(monkeypatch): - monkeypatch.setenv("PATH", "/") - which("hg") - which("hg", "/") diff --git a/tests/cmd/test_git.py b/tests/cmd/test_git.py deleted file mode 100644 index 5eb271399..000000000 --- a/tests/cmd/test_git.py +++ /dev/null @@ -1,13 +0,0 @@ -import pathlib -from typing import Callable - -import pytest - -from libvcs.cmd import git - - -@pytest.mark.parametrize("dir_type", [str, pathlib.Path]) -def test_run(dir_type: Callable, tmp_path: pathlib.Path): - repo = git.Git(dir=dir_type(tmp_path)) - - assert repo.dir == tmp_path diff --git a/tests/conftest.py b/tests/conftest.py deleted file mode 100644 index 47abacbc3..000000000 --- a/tests/conftest.py +++ /dev/null @@ -1 +0,0 @@ -from libvcs.conftest import * # noqa F40 diff --git a/tests/projects/test_base.py b/tests/projects/test_base.py deleted file mode 100644 index 957f28d96..000000000 --- a/tests/projects/test_base.py +++ /dev/null @@ -1,68 +0,0 @@ -"""tests for libvcs repo abstract base class.""" -import pathlib -import sys - -import pytest - -from libvcs._internal.shortcuts import create_project -from libvcs.projects.base import BaseProject, convert_pip_url - - -def test_repr(): - repo = create_project(url="file://path/to/myrepo", dir="/hello/", vcs="git") - - str_repo = str(repo) - assert "GitProject" in str_repo - assert "hello" in str_repo - assert "" == str_repo - - -def test_repr_base(): - repo = BaseProject(url="file://path/to/myrepo", dir="/hello/") - - str_repo = str(repo) - assert "Project" in str_repo - assert "hello" in str_repo - assert "" == str_repo - - -def test_ensure_dir_creates_parent_if_not_exist(tmp_path: pathlib.Path): - projects_path = tmp_path / "projects_path" # doesn't exist yet - dir = projects_path / "myrepo" - repo = BaseProject(url="file://path/to/myrepo", dir=dir) - - repo.ensure_dir() - assert projects_path.is_dir() - - -def test_convert_pip_url(): - url, rev = convert_pip_url(pip_url="git+file://path/to/myrepo@therev") - - assert url, rev == "therev" - assert url, rev == "file://path/to/myrepo" - - -def test_progress_callback( - capsys: pytest.CaptureFixture[str], - tmp_path: pathlib.Path, - git_remote_repo: pathlib.Path, -): - def progress_cb(output, timestamp): - sys.stdout.write(output) - sys.stdout.flush() - - class Project(BaseProject): - bin_name = "git" - - def obtain(self, *args, **kwargs): - self.ensure_dir() - self.run(["clone", "--progress", self.url, self.dir], log_in_real_time=True) - - r = Project( - url=f"file://{str(git_remote_repo)}", - dir=str(tmp_path), - progress_callback=progress_cb, - ) - r.obtain() - captured = capsys.readouterr() - assert "Cloning into" in captured.out diff --git a/tests/projects/test_conftest.py b/tests/projects/test_conftest.py deleted file mode 100644 index 38a495991..000000000 --- a/tests/projects/test_conftest.py +++ /dev/null @@ -1,30 +0,0 @@ -import pathlib - -import pytest - -from libvcs._internal.run import which -from libvcs.conftest import CreateProjectCallbackFixtureProtocol - - -@pytest.mark.skipif(not which("git"), reason="git is not available") -def test_create_git_remote_repo( - create_git_remote_repo: CreateProjectCallbackFixtureProtocol, - tmp_path: pathlib.Path, - projects_path: pathlib.Path, -): - git_remote_1 = create_git_remote_repo() - git_remote_2 = create_git_remote_repo() - - assert git_remote_1 != git_remote_2 - - -@pytest.mark.skipif(not which("svn"), reason="svn is not available") -def test_create_svn_remote_repo( - create_svn_remote_repo: CreateProjectCallbackFixtureProtocol, - tmp_path: pathlib.Path, - projects_path: pathlib.Path, -): - svn_remote_1 = create_svn_remote_repo() - svn_remote_2 = create_svn_remote_repo() - - assert svn_remote_1 != svn_remote_2 diff --git a/tests/projects/test_git.py b/tests/projects/test_git.py deleted file mode 100644 index 9d598257e..000000000 --- a/tests/projects/test_git.py +++ /dev/null @@ -1,777 +0,0 @@ -"""Tests for libvcs git repos.""" -import datetime -import os -import pathlib -import textwrap -from typing import Callable - -import pytest - -from pytest_mock import MockerFixture - -from libvcs import exc -from libvcs._internal.run import run, which -from libvcs._internal.shortcuts import create_project -from libvcs.conftest import CreateProjectCallbackFixtureProtocol -from libvcs.projects.git import ( - GitFullRemoteDict, - GitProject, - GitRemote, - GitStatus, - convert_pip_url as git_convert_pip_url, -) - -if not which("git"): - pytestmark = pytest.mark.skip(reason="git is not available") - - -ProjectTestFactory = Callable[..., GitProject] -ProjectTestFactoryLazyKwargs = Callable[..., dict] -ProjectTestFactoryRemotesLazyExpected = Callable[..., GitFullRemoteDict] - - -@pytest.mark.parametrize( - # Postpone evaluation of options so fixture variables can interpolate - "constructor,lazy_constructor_options", - [ - [ - GitProject, - lambda bare_dir, tmp_path, **kwargs: { - "url": f"file://{bare_dir}", - "dir": tmp_path / "obtaining a bare repo", - "vcs": "git", - }, - ], - [ - create_project, - lambda bare_dir, tmp_path, **kwargs: { - "url": f"git+file://{bare_dir}", - "dir": tmp_path / "obtaining a bare repo", - "vcs": "git", - }, - ], - ], -) -def test_repo_git_obtain_initial_commit_repo( - tmp_path: pathlib.Path, - constructor: ProjectTestFactory, - lazy_constructor_options: ProjectTestFactoryLazyKwargs, -): - """initial commit repos return 'initial'. - - note: this behaviors differently from git(1)'s use of the word "bare". - running `git rev-parse --is-bare-repository` would return false. - """ - repo_name = "my_git_project" - - run(["git", "init", repo_name], cwd=tmp_path) - - bare_dir = tmp_path / repo_name - git_repo: GitProject = constructor(**lazy_constructor_options(**locals())) - - git_repo.obtain() - assert git_repo.get_revision() == "initial" - - -@pytest.mark.parametrize( - # Postpone evaluation of options so fixture variables can interpolate - "constructor,lazy_constructor_options", - [ - [ - GitProject, - lambda git_remote_repo, tmp_path, **kwargs: { - "url": f"file://{git_remote_repo}", - "dir": tmp_path / "myrepo", - "vcs": "git", - }, - ], - [ - create_project, - lambda git_remote_repo, tmp_path, **kwargs: { - "url": f"git+file://{git_remote_repo}", - "dir": tmp_path / "myrepo", - "vcs": "git", - }, - ], - ], -) -def test_repo_git_obtain_full( - tmp_path: pathlib.Path, - git_remote_repo, - constructor: ProjectTestFactory, - lazy_constructor_options: ProjectTestFactoryLazyKwargs, -): - git_repo: GitProject = constructor(**lazy_constructor_options(**locals())) - git_repo.obtain() - - test_repo_revision = run(["git", "rev-parse", "HEAD"], cwd=git_remote_repo) - - assert git_repo.get_revision() == test_repo_revision - assert os.path.exists(tmp_path / "myrepo") - - -@pytest.mark.parametrize( - # Postpone evaluation of options so fixture variables can interpolate - "constructor,lazy_constructor_options", - [ - [ - GitProject, - lambda git_remote_repo, tmp_path, **kwargs: { - "url": f"file://{git_remote_repo}", - "dir": tmp_path / "myrepo", - "vcs": "git", - }, - ], - [ - create_project, - lambda git_remote_repo, tmp_path, **kwargs: { - "url": f"git+file://{git_remote_repo}", - "dir": tmp_path / "myrepo", - "vcs": "git", - }, - ], - ], -) -def test_repo_update_handle_cases( - tmp_path: pathlib.Path, - git_remote_repo: pathlib.Path, - mocker: MockerFixture, - constructor: ProjectTestFactory, - lazy_constructor_options: ProjectTestFactoryLazyKwargs, -): - git_repo: GitProject = constructor(**lazy_constructor_options(**locals())) - git_repo.obtain() # clone initial repo - mocka = mocker.spy(git_repo, "run") - git_repo.update_repo() - - mocka.assert_any_call(["symbolic-ref", "--short", "HEAD"]) - - mocka.reset_mock() - - # will only look up symbolic-ref if no rev specified for object - git_repo.rev = "HEAD" - git_repo.update_repo() - assert mocker.call(["symbolic-ref", "--short", "HEAD"]) not in mocka.mock_calls - - -@pytest.mark.parametrize( - # Postpone evaluation of options so fixture variables can interpolate - "constructor,lazy_constructor_options", - [ - [ - GitProject, - lambda git_remote_repo, tmp_path, progress_callback, **kwargs: { - "url": f"file://{git_remote_repo}", - "dir": tmp_path / "myrepo", - "progress_callback": progress_callback, - "vcs": "git", - }, - ], - [ - create_project, - lambda git_remote_repo, tmp_path, progress_callback, **kwargs: { - "url": f"git+file://{git_remote_repo}", - "dir": tmp_path / "myrepo", - "progress_callback": progress_callback, - "vcs": "git", - }, - ], - ], -) -def test_progress_callback( - tmp_path: pathlib.Path, - git_remote_repo: pathlib.Path, - mocker: MockerFixture, - constructor: ProjectTestFactory, - lazy_constructor_options: ProjectTestFactoryLazyKwargs, -): - def progress_callback_spy(output, timestamp): - assert isinstance(output, str) - assert isinstance(timestamp, datetime.datetime) - - progress_callback = mocker.Mock( - name="progress_callback_stub", side_effect=progress_callback_spy - ) - - run(["git", "rev-parse", "HEAD"], cwd=git_remote_repo) - - # create a new repo with the repo as a remote - git_repo: GitProject = constructor(**lazy_constructor_options(**locals())) - git_repo.obtain() - - assert progress_callback.called - - -@pytest.mark.parametrize( - # Postpone evaluation of options so fixture variables can interpolate - "constructor,lazy_constructor_options,lazy_remote_expected", - [ - [ - GitProject, - lambda git_remote_repo, projects_path, repo_name, **kwargs: { - "url": f"file://{git_remote_repo}", - "dir": projects_path / repo_name, - }, - lambda git_remote_repo, **kwargs: {"origin": f"file://{git_remote_repo}"}, - ], - [ - GitProject, - lambda git_remote_repo, projects_path, repo_name, **kwargs: { - "url": f"file://{git_remote_repo}", - "dir": projects_path / repo_name, - "remotes": {"origin": f"file://{git_remote_repo}"}, - }, - lambda git_remote_repo, **kwargs: {"origin": f"file://{git_remote_repo}"}, - ], - [ - GitProject, - lambda git_remote_repo, projects_path, repo_name, **kwargs: { - "url": f"file://{git_remote_repo}", - "dir": projects_path / repo_name, - "remotes": { - "origin": f"file://{git_remote_repo}", - "second_remote": f"file://{git_remote_repo}", - }, - }, - lambda git_remote_repo, **kwargs: { - "origin": f"file://{git_remote_repo}", - "second_remote": f"file://{git_remote_repo}", - }, - ], - [ - GitProject, - lambda git_remote_repo, projects_path, repo_name, **kwargs: { - "url": f"file://{git_remote_repo}", - "dir": projects_path / repo_name, - "remotes": { - "second_remote": f"file://{git_remote_repo}", - }, - }, - lambda git_remote_repo, **kwargs: { - "origin": f"file://{git_remote_repo}", - "second_remote": f"file://{git_remote_repo}", - }, - ], - [ - GitProject, - lambda git_remote_repo, projects_path, repo_name, **kwargs: { - "url": f"file://{git_remote_repo}", - "dir": projects_path / repo_name, - "remotes": { - "origin": GitRemote( - name="origin", - fetch_url=f"file://{git_remote_repo}", - push_url=f"file://{git_remote_repo}", - ), - "second_remote": GitRemote( - name="second_remote", - fetch_url=f"file://{git_remote_repo}", - push_url=f"file://{git_remote_repo}", - ), - }, - }, - lambda git_remote_repo, **kwargs: { - "origin": f"file://{git_remote_repo}", - "second_remote": f"file://{git_remote_repo}", - }, - ], - [ - GitProject, - lambda git_remote_repo, projects_path, repo_name, **kwargs: { - "url": f"file://{git_remote_repo}", - "dir": projects_path / repo_name, - "vcs": "git", - "remotes": { - "second_remote": GitRemote( - name="second_remote", - fetch_url=f"file://{git_remote_repo}", - push_url=f"file://{git_remote_repo}", - ), - }, - }, - lambda git_remote_repo, **kwargs: { - "second_remote": f"file://{git_remote_repo}", - }, - ], - [ - create_project, - lambda git_remote_repo, projects_path, repo_name, **kwargs: { - "url": f"git+file://{git_remote_repo}", - "dir": projects_path / repo_name, - "vcs": "git", - }, - lambda git_remote_repo, **kwargs: {"origin": f"file://{git_remote_repo}"}, - ], - ], -) -def test_remotes( - projects_path: pathlib.Path, - git_remote_repo: pathlib.Path, - constructor: ProjectTestFactory, - lazy_constructor_options: ProjectTestFactoryLazyKwargs, - lazy_remote_expected: ProjectTestFactoryRemotesLazyExpected, -): - repo_name = "myrepo" - remote_name = "myremote" - remote_url = "https://localhost/my/git/repo.git" - - git_repo: GitProject = constructor(**lazy_constructor_options(**locals())) - git_repo.obtain() - - expected = lazy_remote_expected(**locals()) - assert len(expected.keys()) > 0 - for expected_remote_name, expected_remote_url in expected.items(): - remote = git_repo.remote(expected_remote_name) - assert remote is not None - - if remote is not None: - assert ( - expected_remote_name, - expected_remote_url, - expected_remote_url, - ) == remote.to_tuple() - - -@pytest.mark.parametrize( - # Postpone evaluation of options so fixture variables can interpolate - "constructor,lazy_constructor_options,lazy_remote_dict,lazy_remote_expected", - [ - [ - GitProject, - lambda git_remote_repo, projects_path, repo_name, **kwargs: { - "url": f"file://{git_remote_repo}", - "dir": projects_path / repo_name, - "remotes": { - "origin": f"file://{git_remote_repo}", - }, - }, - lambda git_remote_repo, **kwargs: { - "second_remote": GitRemote( - **{ - "name": "second_remote", - "fetch_url": f"file://{git_remote_repo}", - "push_url": f"file://{git_remote_repo}", - } - ) - }, - lambda git_remote_repo, **kwargs: { - "origin": GitRemote( - name="origin", - push_url=f"file://{git_remote_repo}", - fetch_url=f"file://{git_remote_repo}", - ), - "second_remote": GitRemote( - name="second_remote", - push_url=f"file://{git_remote_repo}", - fetch_url=f"file://{git_remote_repo}", - ), - }, - ], - [ - GitProject, - lambda git_remote_repo, projects_path, repo_name, **kwargs: { - "url": f"file://{git_remote_repo}", - "dir": projects_path / repo_name, - "remotes": { - "origin": f"file://{git_remote_repo}", - # accepts short-hand form since it's inputted in the constructor - "second_remote": f"file://{git_remote_repo}", - }, - }, - lambda git_remote_repo, **kwargs: {}, - lambda git_remote_repo, **kwargs: { - "origin": GitRemote( - name="origin", - push_url=f"file://{git_remote_repo}", - fetch_url=f"file://{git_remote_repo}", - ), - "second_remote": GitRemote( - name="second_remote", - push_url=f"file://{git_remote_repo}", - fetch_url=f"file://{git_remote_repo}", - ), - }, - ], - [ - GitProject, - lambda git_remote_repo, projects_path, repo_name, **kwargs: { - "url": f"file://{git_remote_repo}", - "dir": projects_path / repo_name, - "remotes": { - "origin": f"file://{git_remote_repo}", - }, - }, - lambda git_remote_repo, second_git_remote_repo, **kwargs: { - "origin": GitRemote( - **{ - "name": "second_remote", - "fetch_url": f"{second_git_remote_repo!s}", - "push_url": f"{second_git_remote_repo!s}", - } - ) - }, - lambda git_remote_repo, second_git_remote_repo, **kwargs: { - "origin": GitRemote( - name="origin", - fetch_url=f"{second_git_remote_repo!s}", - push_url=f"{second_git_remote_repo!s}", - ), - }, - ], - ], -) -def test_remotes_update_repo( - projects_path: pathlib.Path, - git_remote_repo: pathlib.Path, - constructor: ProjectTestFactory, - lazy_constructor_options: ProjectTestFactoryLazyKwargs, - lazy_remote_dict: ProjectTestFactoryRemotesLazyExpected, - lazy_remote_expected: ProjectTestFactoryRemotesLazyExpected, - create_git_remote_repo: CreateProjectCallbackFixtureProtocol, -): - repo_name = "myrepo" - remote_name = "myremote" - remote_url = "https://localhost/my/git/repo.git" - - second_git_remote_repo = create_git_remote_repo() - - git_repo: GitProject = constructor(**lazy_constructor_options(**locals())) - git_repo.obtain() - - git_repo._remotes |= { - k: GitRemote(*v) if isinstance(v, dict) else v - for k, v in lazy_remote_dict(**locals()).items() - } - git_repo.update_repo(set_remotes=True) - - expected = lazy_remote_expected(**locals()) - assert len(expected.keys()) > 0 - for expected_remote_name, expected_remote_url in expected.items(): - assert expected_remote_url == git_repo.remote(expected_remote_name) - - -def test_git_get_url_and_rev_from_pip_url(): - pip_url = "git+ssh://git@bitbucket.example.com:7999/PROJ/repo.git" - - url, rev = git_convert_pip_url(pip_url) - assert "ssh://git@bitbucket.example.com:7999/PROJ/repo.git" == url - assert rev is None - - pip_url = "{}@{}".format( - "git+ssh://git@bitbucket.example.com:7999/PROJ/repo.git", - "eucalyptus", - ) - url, rev = git_convert_pip_url(pip_url) - assert "ssh://git@bitbucket.example.com:7999/PROJ/repo.git" == url - assert rev == "eucalyptus" - - # the git manual refers to this as "scp-like syntax" - # https://git-scm.com/docs/git-clone - pip_url = "{}@{}".format("git+user@hostname:user/repo.git", "eucalyptus") - url, rev = git_convert_pip_url(pip_url) - assert "user@hostname:user/repo.git" == url - assert rev == "eucalyptus" - - -@pytest.mark.parametrize( - # Postpone evaluation of options so fixture variables can interpolate - "constructor,lazy_constructor_options", - [ - [ - GitProject, - lambda git_remote_repo, dir, **kwargs: { - "url": f"file://{git_remote_repo}", - "dir": str(dir), - "vcs": "git", - }, - ], - [ - create_project, - lambda git_remote_repo, dir, **kwargs: { - "url": f"git+file://{git_remote_repo}", - "dir": dir, - "vcs": "git", - }, - ], - ], -) -def test_remotes_preserves_git_ssh( - projects_path: pathlib.Path, - git_remote_repo: pathlib.Path, - constructor: ProjectTestFactory, - lazy_constructor_options: ProjectTestFactoryLazyKwargs, -): - # Regression test for #14 - repo_name = "myexamplegit" - dir = projects_path / repo_name - remote_name = "myremote" - remote_url = "git+ssh://git@github.com/tony/AlgoXY.git" - git_repo: GitProject = constructor(**lazy_constructor_options(**locals())) - - git_repo.obtain() - git_repo.set_remote(name=remote_name, url=remote_url) - - assert ( - GitRemote(remote_name, remote_url, remote_url).to_dict() - in git_repo.remotes().values() - ) - - -@pytest.mark.parametrize( - # Postpone evaluation of options so fixture variables can interpolate - "constructor,lazy_constructor_options", - [ - [ - GitProject, - lambda bare_dir, tmp_path, **kwargs: { - "url": f"file://{bare_dir}", - "dir": tmp_path / "obtaining a bare repo", - "vcs": "git", - }, - ], - [ - create_project, - lambda bare_dir, tmp_path, **kwargs: { - "url": f"git+file://{bare_dir}", - "dir": tmp_path / "obtaining a bare repo", - "vcs": "git", - }, - ], - ], -) -def test_private_ssh_format( - tmpdir: pathlib.Path, - constructor: ProjectTestFactory, - lazy_constructor_options: ProjectTestFactoryLazyKwargs, -): - with pytest.raises(exc.LibVCSException) as excinfo: - create_project( - url=git_convert_pip_url( - "git+ssh://github.com:/tmp/omg/private_ssh_repo" - ).url, - dir=tmpdir, - vcs="git", - ) - excinfo.match(r".*is a malformed.*") - - -def test_ls_remotes(git_repo: GitProject): - remotes = git_repo.remotes() - - assert "origin" in remotes - assert "origin" in git_repo.remotes(flat=True) - - -def test_get_remotes(git_repo: GitProject): - assert "origin" in git_repo.remotes() - - -@pytest.mark.parametrize( - "repo_name,new_repo_url", - [ - ["myrepo", "file:///apples"], - ], -) -def test_set_remote(git_repo: GitProject, repo_name: str, new_repo_url: str): - mynewremote = git_repo.set_remote(name=repo_name, url="file:///") - - assert "file:///" in mynewremote.fetch_url, "set_remote returns remote" - - assert isinstance( - git_repo.remote(name=repo_name), GitRemote - ), "remote() returns GitRemote" - remote = git_repo.remote(name=repo_name) - assert remote is not None, "Remote should exist" - if remote is not None: - assert "file:///" in remote.fetch_url, "new value set" - - assert "myrepo" in git_repo.remotes(), ".remotes() returns new remote" - - with pytest.raises( - exc.CommandError, - match=f".*remote {repo_name} already exists.*", - ): - mynewremote = git_repo.set_remote(name="myrepo", url=new_repo_url) - - mynewremote = git_repo.set_remote(name="myrepo", url=new_repo_url, overwrite=True) - - remote = git_repo.remote(name="myrepo") - assert remote is not None - if remote is not None: - assert ( - new_repo_url in remote.fetch_url - ), "Running remove_set should overwrite previous remote" - - -def test_get_git_version(git_repo: GitProject): - expected_version = git_repo.run(["--version"]).replace("git version ", "") - assert git_repo.get_git_version() - assert expected_version == git_repo.get_git_version() - - -def test_get_current_remote_name(git_repo: GitProject): - assert git_repo.get_current_remote_name() == "origin" - - new_branch = "another-branch-with-no-upstream" - git_repo.run(["checkout", "-B", new_branch]) - assert ( - git_repo.get_current_remote_name() == new_branch - ), "branch w/o upstream should return branch only" - - new_remote_name = "new_remote_name" - git_repo.set_remote( - name=new_remote_name, url=f"file://{git_repo.dir}", overwrite=True - ) - git_repo.run(["fetch", new_remote_name]) - git_repo.run(["branch", "--set-upstream-to", f"{new_remote_name}/{new_branch}"]) - assert ( - git_repo.get_current_remote_name() == new_remote_name - ), "Should reflect new upstream branch (different remote)" - - upstream = "{}/{}".format(new_remote_name, "master") - - git_repo.run(["branch", "--set-upstream-to", upstream]) - assert ( - git_repo.get_current_remote_name() == upstream - ), "Should reflect upstream branch (differente remote+branch)" - - git_repo.run(["checkout", "master"]) - - # Different remote, different branch - remote = f"{new_remote_name}/{new_branch}" - git_repo.run(["branch", "--set-upstream-to", remote]) - assert ( - git_repo.get_current_remote_name() == remote - ), "Should reflect new upstream branch (different branch)" - - -def test_GitRemote_from_stdout(): - FIXTURE_A = textwrap.dedent( - """ - # branch.oid d4ccd4d6af04b53949f89fbf0cdae13719dc5a08 - # branch.head fix-current-remote-name - 1 .M N... 100644 100644 100644 91082f119279b6f105ee9a5ce7795b3bdbe2b0de 91082f119279b6f105ee9a5ce7795b3bdbe2b0de CHANGES - """ # NOQA: E501 - ) - assert { - "branch_oid": "d4ccd4d6af04b53949f89fbf0cdae13719dc5a08", - "branch_head": "fix-current-remote-name", - }.items() <= GitStatus.from_stdout(FIXTURE_A).to_dict().items() - - -@pytest.mark.parametrize( - "fixture,expected_result", - [ - [ - """ - # branch.oid de6185fde0806e5c7754ca05676325a1ea4d6348 - # branch.head fix-current-remote-name - # branch.upstream origin/fix-current-remote-name - # branch.ab +0 -0 - 1 .M N... 100644 100644 100644 91082f119279b6f105ee9a5ce7795b3bdbe2b0de 91082f119279b6f105ee9a5ce7795b3bdbe2b0de CHANGES - 1 .M N... 100644 100644 100644 302ca2c18d4c295ce217bff5f93e1ba342dc6665 302ca2c18d4c295ce217bff5f93e1ba342dc6665 tests/test_git.py - """, # NOQA: E501 - { - "branch_oid": "de6185fde0806e5c7754ca05676325a1ea4d6348", - "branch_head": "fix-current-remote-name", - "branch_upstream": "origin/fix-current-remote-name", - "branch_ab": "+0 -0", - "branch_ahead": "0", - "branch_behind": "0", - }, - ], - [ - "# branch.upstream moo/origin/myslash/remote", - {"branch_upstream": "moo/origin/myslash/remote"}, - ], - [ - """ - # branch.oid c3c5323abc5dca78d9bdeba6c163c2a37b452e69 - # branch.head libvcs-0.4.0 - # branch.upstream origin/libvcs-0.4.0 - # branch.ab +0 -0 - """, - { - "branch_oid": "c3c5323abc5dca78d9bdeba6c163c2a37b452e69", - "branch_head": "libvcs-0.4.0", - "branch_upstream": "origin/libvcs-0.4.0", - "branch_ab": "+0 -0", - "branch_ahead": "0", - "branch_behind": "0", - }, - ], - ], -) -def test_GitRemote__from_stdout_b(fixture: str, expected_result: dict): - assert ( - GitStatus.from_stdout(textwrap.dedent(fixture)).to_dict().items() - >= expected_result.items() - ) - - -@pytest.mark.parametrize( - "fixture,expected_result", - [ - [ - "# branch.ab +1 -83", - { - "branch_ab": "+1 -83", - "branch_ahead": "1", - "branch_behind": "83", - }, - ], - [ - """ - # branch.ab +0 -0 - """, - { - "branch_ab": "+0 -0", - "branch_ahead": "0", - "branch_behind": "0", - }, - ], - [ - """ - # branch.ab +1 -83 - """, - { - "branch_ab": "+1 -83", - "branch_ahead": "1", - "branch_behind": "83", - }, - ], - [ - """ - # branch.ab +9999999 -9999999 - """, - { - "branch_ab": "+9999999 -9999999", - "branch_ahead": "9999999", - "branch_behind": "9999999", - }, - ], - ], -) -def test_GitRemote__from_stdout_c(fixture: str, expected_result: dict): - assert ( - expected_result.items() - <= GitStatus.from_stdout(textwrap.dedent(fixture)).to_dict().items() - ) - - -def test_repo_git_remote_checkout( - create_git_remote_repo: CreateProjectCallbackFixtureProtocol, - tmp_path: pathlib.Path, - projects_path: pathlib.Path, -): - git_server = create_git_remote_repo() - git_repo_checkout_dir = projects_path / "my_git_checkout" - git_repo = GitProject(dir=str(git_repo_checkout_dir), url=f"file://{git_server!s}") - - git_repo.obtain() - git_repo.update_repo() - - assert git_repo.get_revision() == "initial" - - assert git_repo_checkout_dir.exists() - assert pathlib.Path(git_repo_checkout_dir / ".git").exists() diff --git a/tests/projects/test_hg.py b/tests/projects/test_hg.py deleted file mode 100644 index fa845758d..000000000 --- a/tests/projects/test_hg.py +++ /dev/null @@ -1,55 +0,0 @@ -"""Tests for libvcs hg repos.""" -import pathlib - -import pytest - -from libvcs._internal.run import run, which -from libvcs._internal.shortcuts import create_project - -if not which("hg"): - pytestmark = pytest.mark.skip(reason="hg is not available") - - -def test_repo_mercurial(tmp_path: pathlib.Path, projects_path, hg_remote_repo): - repo_name = "my_mercurial_project" - - mercurial_repo = create_project( - url=f"file://{hg_remote_repo}", - dir=projects_path / repo_name, - vcs="hg", - ) - - run(["hg", "init", mercurial_repo.repo_name], cwd=tmp_path) - - mercurial_repo.update_repo() - - test_repo_revision = run( - ["hg", "parents", "--template={rev}"], cwd=projects_path / repo_name - ) - - assert mercurial_repo.get_revision() == test_repo_revision - - -def test_vulnerability_2022_03_12_command_injection( - monkeypatch: pytest.MonkeyPatch, - user_path: pathlib.Path, - tmp_path: pathlib.Path, - hg_remote_repo, -): - """Prevent hg aliases from executed arbitrary commands via URLs. - - As of 0.11 this code path is/was only executed via .obtain(), so this only would - effect explicit invocation of .object() or update_repo() of uncloned destination. - """ - random_dir = tmp_path / "random" - random_dir.mkdir() - monkeypatch.chdir(str(random_dir)) - mercurial_repo = create_project( - url="--config=alias.clone=!touch ./HELLO", vcs="hg", dir="./" - ) - with pytest.raises(Exception): - mercurial_repo.update_repo() - - assert not pathlib.Path( - random_dir / "HELLO" - ).exists(), "Prevent command injection in hg aliases" diff --git a/tests/projects/test_svn.py b/tests/projects/test_svn.py deleted file mode 100644 index 3f67e3846..000000000 --- a/tests/projects/test_svn.py +++ /dev/null @@ -1,49 +0,0 @@ -"""tests for libvcs svn repos.""" -import os -import pathlib - -import pytest - -from libvcs._internal.run import which -from libvcs.conftest import CreateProjectCallbackFixtureProtocol -from libvcs.projects.svn import SubversionProject - -if not which("svn"): - pytestmark = pytest.mark.skip(reason="svn is not available") - - -def test_repo_svn(tmp_path: pathlib.Path, svn_remote_repo): - repo_name = "my_svn_project" - - svn_repo = SubversionProject( - url=f"file://{svn_remote_repo}", - dir=str(tmp_path / repo_name), - ) - - svn_repo.obtain() - svn_repo.update_repo() - - assert svn_repo.get_revision() == 0 - assert svn_repo.get_revision_file("./") == 0 - - assert os.path.exists(tmp_path / repo_name) - - -def test_repo_svn_remote_checkout( - create_svn_remote_repo: CreateProjectCallbackFixtureProtocol, - tmp_path: pathlib.Path, - projects_path: pathlib.Path, -): - svn_server = create_svn_remote_repo() - svn_repo_checkout_dir = projects_path / "my_svn_checkout" - svn_repo = SubversionProject( - dir=svn_repo_checkout_dir, url=f"file://{svn_server!s}" - ) - - svn_repo.obtain() - svn_repo.update_repo() - - assert svn_repo.get_revision() == 0 - assert svn_repo.get_revision_file("./") == 0 - - assert svn_repo_checkout_dir.exists() diff --git a/tests/test_exc.py b/tests/test_exc.py deleted file mode 100644 index ef95517b2..000000000 --- a/tests/test_exc.py +++ /dev/null @@ -1,33 +0,0 @@ -"""tests for libvcs exceptions.""" -import pytest - -from libvcs import exc - - -def test_command_error(): - with pytest.raises(exc.CommandError) as e: - returncode = 0 - command = ["command", "arg"] - raise exc.CommandError("this is output", returncode, command) - assert e.value.cmd == " ".join(command) - assert ( - str(e.value) - == exc.CommandError.message.format( - returncode=e.value.returncode, cmd=e.value.cmd - ) - + "\n%s" % e.value.output - ) - - with pytest.raises(exc.CommandError) as e: - returncode = 0 - command = ["command", "arg"] - raise exc.CommandError("", returncode, command) - assert e.value.cmd == " ".join(command) - assert str(e.value) == exc.CommandError.message.format( - returncode=e.value.returncode, cmd=e.value.cmd - ) - - with pytest.raises(exc.CommandError) as e: - command = "command arg" - raise exc.CommandError("this is output", 0, command) - assert e.value.cmd == command diff --git a/tests/test_shortcuts.py b/tests/test_shortcuts.py deleted file mode 100644 index 832693a0c..000000000 --- a/tests/test_shortcuts.py +++ /dev/null @@ -1,46 +0,0 @@ -import pathlib - -import pytest - -from libvcs import GitProject, MercurialProject, SubversionProject -from libvcs._internal.shortcuts import create_project -from libvcs.exc import InvalidVCS - - -@pytest.mark.parametrize( - "repo_dict,repo_class,raises_exception", - [ - ( - {"url": "https://github.com/freebsd/freebsd.git", "vcs": "git"}, - GitProject, - False, - ), - ( - {"url": "https://bitbucket.org/birkenfeld/sphinx", "vcs": "hg"}, - MercurialProject, - False, - ), - ( - {"url": "http://svn.code.sf.net/p/docutils/code/trunk", "vcs": "svn"}, - SubversionProject, - False, - ), - ( - {"url": "http://svn.code.sf.net/p/docutils/code/trunk", "vcs": "svna"}, - None, - InvalidVCS, - ), - ], -) -def test_create_project( - tmp_path: pathlib.Path, repo_dict, repo_class, raises_exception -): - # add parent_dir via fixture - repo_dict["dir"] = tmp_path / "repo_name" - - if raises_exception: - with pytest.raises(raises_exception): - create_project(**repo_dict) - else: - repo = create_project(**repo_dict) - assert isinstance(repo, repo_class) From 65b4ab6fb480df0daee35bb7e867b8051864e364 Mon Sep 17 00:00:00 2001 From: Tony Narlock Date: Sun, 3 Jul 2022 14:46:08 -0500 Subject: [PATCH 2/5] Update readme --- README.md | 149 ++++++++---------------------------------------------- 1 file changed, 20 insertions(+), 129 deletions(-) diff --git a/README.md b/README.md index 7376add91..dd9ef1b30 100644 --- a/README.md +++ b/README.md @@ -1,141 +1,32 @@ # `libvcs` · [![Python Package](https://img.shields.io/pypi/v/libvcs.svg)](https://pypi.org/project/libvcs/) [![License](https://img.shields.io/github/license/vcs-python/libvcs.svg)](https://github.com/vcs-python/libvcs/blob/master/LICENSE) [![Code Coverage](https://codecov.io/gh/vcs-python/libvcs/branch/master/graph/badge.svg)](https://codecov.io/gh/vcs-python/libvcs) -libvcs is a lite, [typed](https://docs.python.org/3/library/typing.html), pythonic tool box for -detection and parsing of URLs, commanding, and syncing with `git`, `hg`, and `svn`. Powers -[vcspull](https://www.github.com/vcs-python/vcspull/). +Example of [sphinx-autoapi] documenting imports, issue +https://github.com/readthedocs/sphinx-autoapi/issues/342 -## Overview +## Reproduction -Features for Git, Subversion, and Mercurial: +https://github.com/vcs-python/libvcs/tree/autoapi-duplicates -- **Detect and parse** VCS URLs -- **Command** VCS via python API -- **Sync** repos locally +### Versions -To **get started**, see the [quickstart](https://libvcs.git-pull.com/quickstart.html) for more. +sphinx 5.1.2 sphinx-autoapi 1.9.0 -```console -$ pip install --user libvcs -``` - -## URL Parsing (experimental) - -You can validate and parse Git, Mercurial, and Subversion URLs through -[`libvcs.parse`](https://libvcs.git-pull.com/parse/index.html): - -Validate: - -```python ->>> from libvcs.parse.git import GitUrl +### Configuration ->>> GitURL.is_valid(url='https://github.com/vcs-python/libvcs.git') -True -``` - -Parse and adjust a Git URL: +[conf.py](https://github.com/vcs-python/libvcs/blob/autoapi-duplicates/docs/conf.py) ``` -from libvcs.parse.git import GitUrl - ->>> git_location = GitURL(url='git@github.com:vcs-python/libvcs.git') +extensions = [ + "sphinx.ext.napoleon", + "autoapi.extension", + "sphinx.ext.autodoc", + "sphinx.ext.todo", + "sphinx.ext.intersphinx", + "myst_parser", +] ->>> git_location -GitURL(url=git@github.com:vcs-python/libvcs.git, - hostname=github.com, - path=vcs-python/libvcs, - user=git, - suffix=.git, - matcher=core-git-scp) +# sphinx-autoapi +autoapi_type = "python" +autoapi_dirs = [project_root / "libvcs"] +autoapi_generate_api_docs = False # when False, use directives ``` - -Switch repo libvcs -> vcspull: - -```python ->>> git_location.path = 'vcs-python/vcspull' - ->>> git_location.to_url() -'git@github.com:vcs-python/vcspull.git' - -# Switch them to gitlab: ->>> git_location.hostname = 'gitlab.com' - -# Export to a `git clone` compatible URL. ->>> git_location.to_url() -'git@gitlab.com:vcs-python/vcspull.git' -``` - -See more in the [parser document](https://libvcs.git-pull.com/parse/index.html). - -## Commands (experimental) - -Simple [`subprocess`](https://docs.python.org/3/library/subprocess.html) wrappers around `git(1)`, -`hg(1)`, `svn(1)`. Here is [`Git`](https://libvcs.git-pull.com/cmd/git.html#libvcs.cmd.git.Git) w/ -[`Git.clone`](http://libvcs.git-pull.com/cmd/git.html#libvcs.cmd.git.Git.clone): - -```python -import pathlib -from libvcs.cmd.git import Git - -git = Git(dir=pathlib.Path.cwd() / 'my_git_repo') -git.clone(url='https://github.com/vcs-python/libvcs.git') -``` - -## Projects - -Create a -[`GitProject`](https://libvcs.git-pull.com/projects/git.html#libvcs.projects.git.GitProject) object -of the project to inspect / checkout / update: - -```python -import pathlib -from libvcs.projects.git import GitProject - -repo = GitProject( - url="https://github.com/vcs-python/libvcs", - dir=pathlib.Path().cwd() / "my_repo", - remotes={ - 'gitlab': 'https://gitlab.com/vcs-python/libvcs' - } -) -``` - -Update / clone repo: - -```python ->>> r.update_repo() -``` - -Get revision: - -```python ->>> r.get_revision() -u'5c227e6ab4aab44bf097da2e088b0ff947370ab8' -``` - -## 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 value you get out of the project. - -See donation options at . - -## More information - -- Python support: 3.9+, pypy -- VCS supported: git(1), svn(1), hg(1) -- Source: -- Docs: -- Changelog: -- APIs for git, hg, and svn: - - [`libvcs.parse`](https://libvcs.git-pull.com/parse/): Detect and Parse - - [`libvcs.cmd`](https://libvcs.git-pull.com/cmd/): Commands - - [`libvcs.projects`](https://libvcs.git-pull.com/projects/): High-level synchronization commands -- Issues: -- Test Coverage: -- pypi: -- Open Hub: -- License: [MIT](https://opensource.org/licenses/MIT). - -[![Docs](https://github.com/vcs-python/libvcs/workflows/docs/badge.svg)](https://libvcs.git-pull.com/) -[![Build Status](https://github.com/vcs-python/libvcs/workflows/tests/badge.svg)](https://github.com/vcs-python/libvcs/actions?query=workflow%3A%22tests%22) From 87e4d3f4f67f7f98450576bd585862e16824e023 Mon Sep 17 00:00:00 2001 From: Tony Narlock Date: Sun, 3 Jul 2022 14:49:50 -0500 Subject: [PATCH 3/5] docs: Remove exclude-members workaround --- docs/cmd/git.md | 1 - docs/cmd/hg.md | 1 - docs/cmd/svn.md | 1 - docs/internals/run.md | 1 - docs/internals/shortcuts.md | 2 -- docs/internals/subprocess.md | 8 -------- docs/projects/base.md | 1 - docs/projects/git.md | 1 - docs/projects/hg.md | 1 - docs/projects/index.md | 1 - docs/projects/svn.md | 1 - 11 files changed, 19 deletions(-) diff --git a/docs/cmd/git.md b/docs/cmd/git.md index 978c2a098..a9eaeffdc 100644 --- a/docs/cmd/git.md +++ b/docs/cmd/git.md @@ -11,5 +11,4 @@ Compare to: [`fabtools.git`](https://fabtools.readthedocs.io/en/0.19.0/api/git.h :members: :show-inheritance: :undoc-members: - :exclude-members: StrOrBytesPath, StrPath, run ``` diff --git a/docs/cmd/hg.md b/docs/cmd/hg.md index da3346e76..0d13ad53f 100644 --- a/docs/cmd/hg.md +++ b/docs/cmd/hg.md @@ -7,5 +7,4 @@ For mercurial, aka `hg(1)`. :members: :show-inheritance: :undoc-members: - :exclude-members: StrOrBytesPath, StrPath, run ``` diff --git a/docs/cmd/svn.md b/docs/cmd/svn.md index 2cae80e01..3919935af 100644 --- a/docs/cmd/svn.md +++ b/docs/cmd/svn.md @@ -7,5 +7,4 @@ For subversion, aka `svn(1)` :members: :show-inheritance: :undoc-members: - :exclude-members: StrOrBytesPath, StrPath, run ``` diff --git a/docs/internals/run.md b/docs/internals/run.md index 5473d8bcd..d4c8bc58b 100644 --- a/docs/internals/run.md +++ b/docs/internals/run.md @@ -5,5 +5,4 @@ :members: :show-inheritance: :undoc-members: - :exclude-members: StrOrBytesPath, StrPath, logger ``` diff --git a/docs/internals/shortcuts.md b/docs/internals/shortcuts.md index b30314da3..2ce1d934f 100644 --- a/docs/internals/shortcuts.md +++ b/docs/internals/shortcuts.md @@ -5,6 +5,4 @@ :members: :show-inheritance: :undoc-members: - :exclude-members: GitProject, MercurialProject, SubversionProject, - InvalidVCS, VCSLiteral, ProgressCallbackProtocol ``` diff --git a/docs/internals/subprocess.md b/docs/internals/subprocess.md index 80a9d5f7f..646b0fd0a 100644 --- a/docs/internals/subprocess.md +++ b/docs/internals/subprocess.md @@ -3,12 +3,4 @@ ```{eval-rst} .. autoapimodule:: libvcs._internal.subprocess :members: - :exclude-members: - StrOrBytesPath, F, args, bufsize, - executable, stdin, stdout, stderr, preexec_fn, cwd, - close_fds, shell, cmd, env, text, universal_newlines, - startupinfo, creationflags, restore_signals, start_new_session, - group, extra_groups, user, umask, pass_fds, encoding, errors, - SkipDefaultFieldsReprMixin - ``` diff --git a/docs/projects/base.md b/docs/projects/base.md index aa4527843..adc2e8b49 100644 --- a/docs/projects/base.md +++ b/docs/projects/base.md @@ -8,5 +8,4 @@ Adding your own VCS / Extending libvcs can be done through subclassing `BaseProj .. autoapimodule:: libvcs.projects.base :members: :show-inheritance: - :exclude-members: run, CmdLoggingAdapter, mkdir_p, StrPath, logger ``` diff --git a/docs/projects/git.md b/docs/projects/git.md index 0ce216c2f..7b97816da 100644 --- a/docs/projects/git.md +++ b/docs/projects/git.md @@ -12,5 +12,4 @@ Compare to: :members: :show-inheritance: :undoc-members: - :exclude-members: BaseProject, StrOrBytesPath, StrPath ``` diff --git a/docs/projects/hg.md b/docs/projects/hg.md index a7615e803..3c3464245 100644 --- a/docs/projects/hg.md +++ b/docs/projects/hg.md @@ -7,5 +7,4 @@ For mercurial, aka `hg(1)`. :members: :show-inheritance: :undoc-members: - :exclude-members: BaseProject, StrOrBytesPath, StrPath ``` diff --git a/docs/projects/index.md b/docs/projects/index.md index f45fa7ea2..19539af81 100644 --- a/docs/projects/index.md +++ b/docs/projects/index.md @@ -28,5 +28,4 @@ base ```{eval-rst} .. autoapimodule:: libvcs.projects.constants :members: - :exclude-members: GitProject, MercurialProject, SubversionProject ``` diff --git a/docs/projects/svn.md b/docs/projects/svn.md index 1d37e8433..fd7c242d2 100644 --- a/docs/projects/svn.md +++ b/docs/projects/svn.md @@ -7,5 +7,4 @@ For subversion, aka `svn(1)` :members: :show-inheritance: :undoc-members: - :exclude-members: BaseProject, StrOrBytesPath, StrPath ``` From 9cef41393b8ab1300792abfc2f8603ccaec15379 Mon Sep 17 00:00:00 2001 From: Tony Narlock Date: Sun, 3 Jul 2022 15:15:22 -0500 Subject: [PATCH 4/5] docs(projects.hg): Use __all__ --- libvcs/projects/hg.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/libvcs/projects/hg.py b/libvcs/projects/hg.py index 9ea6ee751..f524f2a91 100644 --- a/libvcs/projects/hg.py +++ b/libvcs/projects/hg.py @@ -16,6 +16,9 @@ logger = logging.getLogger(__name__) +__all__ = ["MercurialProject"] + + class MercurialProject(BaseProject): bin_name = "hg" schemes = ("hg", "hg+http", "hg+https", "hg+file") From a329f4b001db85217d8f786e04b6127603149ff4 Mon Sep 17 00:00:00 2001 From: Tony Narlock Date: Sun, 3 Jul 2022 15:15:36 -0500 Subject: [PATCH 5/5] libvcs/__init__.py: Remove root level imports --- libvcs/__init__.py | 17 ----------------- 1 file changed, 17 deletions(-) diff --git a/libvcs/__init__.py b/libvcs/__init__.py index 24a263a0b..8b1378917 100644 --- a/libvcs/__init__.py +++ b/libvcs/__init__.py @@ -1,18 +1 @@ -"""Project package for libvcs.""" -import logging -from ._internal.run import CmdLoggingAdapter -from .projects.base import BaseProject -from .projects.git import GitProject -from .projects.hg import MercurialProject -from .projects.svn import SubversionProject - -__all__ = [ - "GitProject", - "MercurialProject", - "SubversionProject", - "BaseProject", - "CmdLoggingAdapter", -] - -logger = logging.getLogger(__name__)