%global _empty_manifest_terminate_build 0 Name: python-three-merge Version: 0.1.1 Release: 1 Summary: Simple library for merging two strings with respect to a base one License: MIT URL: https://github.com/spyder-ide/three-merge Source0: https://mirrors.nju.edu.cn/pypi/web/packages/4d/d1/86f4a088f2ebdc3ff1a9cb653aab91e588a8d0930b41c2e066e6a2920ae7/three-merge-0.1.1.tar.gz BuildArch: noarch Requires: python3-diff-match-patch Requires: python3-pytest Requires: python3-pytest-cov Requires: python3-flaky Requires: python3-pytest-timeout %description # three-merge [![Project License - MIT](https://img.shields.io/pypi/l/three-merge.svg)](https://raw.githubusercontent.com/spyder-ide/three-merge/master/LICENSE) [![pypi version](https://img.shields.io/pypi/v/three-merge.svg)](https://pypi.org/project/three-merge/) [![conda version](https://img.shields.io/conda/vn/conda-forge/three-merge.svg)](https://www.anaconda.com/download/) [![download count](https://img.shields.io/conda/dn/conda-forge/three-merge.svg)](https://www.anaconda.com/download/) [![Downloads](https://pepy.tech/badge/three-merge)](https://pepy.tech/project/three-merge) [![PyPI status](https://img.shields.io/pypi/status/three-merge.svg)](https://github.com/spyder-ide/three-merge) ![Linux tests](https://github.com/spyder-ide/three-merge/workflows/Linux%20tests/badge.svg) ![MacOS tests](https://github.com/spyder-ide/three-merge/workflows/MacOS%20tests/badge.svg) ![Windows tests](https://github.com/spyder-ide/three-merge/workflows/Windows%20tests/badge.svg) *Copyright © 2020– Spyder Project Contributors* ## Overview Simple Python library to perform a 3-way merge between strings, based on [diff-match-patch](https://github.com/google/diff-match-patch). This library performs merges at a character level, as opposed to most VCS systems, which opt for a line-based approach. ## Installing To install three-merge, you can use both conda or pip package managers: ```bash # Using conda (Recommended) conda install three-merge -c spyder-ide # Using pip pip install three-merge ``` ## Dependencies This package depends on [diff-match-patch](https://github.com/google/diff-match-patch) to compute and track the differences across the source and target strings with respect to the base one. ## Installing locally To install and develop three-merge locally, you will need to install diff-match-patch: ```bash # Using conda conda install diff-match-patch # Using pip pip install diff-match-patch ``` Then, you can install the package locally using pip: ```bash pip install -U -e . ``` ## Running tests We use pytest to run tests as it follows: ```bash pytest -x -v three_merge/tests ``` ## Package usage Three-merge provides a ``merge`` function to merge changes from two strings (source, target) with respect a original string (base). This library is able to handle additions, deletions and preserved sections across both strings, while detecting and highlighting possible merge conflicts (like Git). ```python # Package import from three_merge import merge # Strings have non-conflicting additions base = '123456789101112' source = '0123456789101112' target = '12345678910111213' # merged = '012345678910111213' merged = merge(source, target, base) # Strings have an addition conflict base = '123456789101112' source = '123a456789101112' target = '123b456789101112' # merged = '123<<<<<<< ++ a ======= ++ b >>>>>>>456789101112' merged = merge(source, target, base) # Strings have non-conflicting addition/deletions base = '123456789101112' source = '123456789ab101112' target = '123789101112' # merged = '123789ab101112' merged = merge(source, target, base) ``` For more examples, please take a look at our [tests](https://github.com/spyder-ide/three-merge/blob/master/three_merge/tests/test_merge.py). ## Changelog Please see our [CHANGELOG](https://github.com/spyder-ide/three-merge/blob/master/CHANGELOG.md) file to learn more about our new features and improvements. ## Contribution guidelines We follow PEP8 and PEP257 for all Python modules. We use MyPy type annotations for all functions and classes declared on this package. Feel free to send a PR or create an issue if you have any problem/question. %package -n python3-three-merge Summary: Simple library for merging two strings with respect to a base one Provides: python-three-merge BuildRequires: python3-devel BuildRequires: python3-setuptools BuildRequires: python3-pip %description -n python3-three-merge # three-merge [![Project License - MIT](https://img.shields.io/pypi/l/three-merge.svg)](https://raw.githubusercontent.com/spyder-ide/three-merge/master/LICENSE) [![pypi version](https://img.shields.io/pypi/v/three-merge.svg)](https://pypi.org/project/three-merge/) [![conda version](https://img.shields.io/conda/vn/conda-forge/three-merge.svg)](https://www.anaconda.com/download/) [![download count](https://img.shields.io/conda/dn/conda-forge/three-merge.svg)](https://www.anaconda.com/download/) [![Downloads](https://pepy.tech/badge/three-merge)](https://pepy.tech/project/three-merge) [![PyPI status](https://img.shields.io/pypi/status/three-merge.svg)](https://github.com/spyder-ide/three-merge) ![Linux tests](https://github.com/spyder-ide/three-merge/workflows/Linux%20tests/badge.svg) ![MacOS tests](https://github.com/spyder-ide/three-merge/workflows/MacOS%20tests/badge.svg) ![Windows tests](https://github.com/spyder-ide/three-merge/workflows/Windows%20tests/badge.svg) *Copyright © 2020– Spyder Project Contributors* ## Overview Simple Python library to perform a 3-way merge between strings, based on [diff-match-patch](https://github.com/google/diff-match-patch). This library performs merges at a character level, as opposed to most VCS systems, which opt for a line-based approach. ## Installing To install three-merge, you can use both conda or pip package managers: ```bash # Using conda (Recommended) conda install three-merge -c spyder-ide # Using pip pip install three-merge ``` ## Dependencies This package depends on [diff-match-patch](https://github.com/google/diff-match-patch) to compute and track the differences across the source and target strings with respect to the base one. ## Installing locally To install and develop three-merge locally, you will need to install diff-match-patch: ```bash # Using conda conda install diff-match-patch # Using pip pip install diff-match-patch ``` Then, you can install the package locally using pip: ```bash pip install -U -e . ``` ## Running tests We use pytest to run tests as it follows: ```bash pytest -x -v three_merge/tests ``` ## Package usage Three-merge provides a ``merge`` function to merge changes from two strings (source, target) with respect a original string (base). This library is able to handle additions, deletions and preserved sections across both strings, while detecting and highlighting possible merge conflicts (like Git). ```python # Package import from three_merge import merge # Strings have non-conflicting additions base = '123456789101112' source = '0123456789101112' target = '12345678910111213' # merged = '012345678910111213' merged = merge(source, target, base) # Strings have an addition conflict base = '123456789101112' source = '123a456789101112' target = '123b456789101112' # merged = '123<<<<<<< ++ a ======= ++ b >>>>>>>456789101112' merged = merge(source, target, base) # Strings have non-conflicting addition/deletions base = '123456789101112' source = '123456789ab101112' target = '123789101112' # merged = '123789ab101112' merged = merge(source, target, base) ``` For more examples, please take a look at our [tests](https://github.com/spyder-ide/three-merge/blob/master/three_merge/tests/test_merge.py). ## Changelog Please see our [CHANGELOG](https://github.com/spyder-ide/three-merge/blob/master/CHANGELOG.md) file to learn more about our new features and improvements. ## Contribution guidelines We follow PEP8 and PEP257 for all Python modules. We use MyPy type annotations for all functions and classes declared on this package. Feel free to send a PR or create an issue if you have any problem/question. %package help Summary: Development documents and examples for three-merge Provides: python3-three-merge-doc %description help # three-merge [![Project License - MIT](https://img.shields.io/pypi/l/three-merge.svg)](https://raw.githubusercontent.com/spyder-ide/three-merge/master/LICENSE) [![pypi version](https://img.shields.io/pypi/v/three-merge.svg)](https://pypi.org/project/three-merge/) [![conda version](https://img.shields.io/conda/vn/conda-forge/three-merge.svg)](https://www.anaconda.com/download/) [![download count](https://img.shields.io/conda/dn/conda-forge/three-merge.svg)](https://www.anaconda.com/download/) [![Downloads](https://pepy.tech/badge/three-merge)](https://pepy.tech/project/three-merge) [![PyPI status](https://img.shields.io/pypi/status/three-merge.svg)](https://github.com/spyder-ide/three-merge) ![Linux tests](https://github.com/spyder-ide/three-merge/workflows/Linux%20tests/badge.svg) ![MacOS tests](https://github.com/spyder-ide/three-merge/workflows/MacOS%20tests/badge.svg) ![Windows tests](https://github.com/spyder-ide/three-merge/workflows/Windows%20tests/badge.svg) *Copyright © 2020– Spyder Project Contributors* ## Overview Simple Python library to perform a 3-way merge between strings, based on [diff-match-patch](https://github.com/google/diff-match-patch). This library performs merges at a character level, as opposed to most VCS systems, which opt for a line-based approach. ## Installing To install three-merge, you can use both conda or pip package managers: ```bash # Using conda (Recommended) conda install three-merge -c spyder-ide # Using pip pip install three-merge ``` ## Dependencies This package depends on [diff-match-patch](https://github.com/google/diff-match-patch) to compute and track the differences across the source and target strings with respect to the base one. ## Installing locally To install and develop three-merge locally, you will need to install diff-match-patch: ```bash # Using conda conda install diff-match-patch # Using pip pip install diff-match-patch ``` Then, you can install the package locally using pip: ```bash pip install -U -e . ``` ## Running tests We use pytest to run tests as it follows: ```bash pytest -x -v three_merge/tests ``` ## Package usage Three-merge provides a ``merge`` function to merge changes from two strings (source, target) with respect a original string (base). This library is able to handle additions, deletions and preserved sections across both strings, while detecting and highlighting possible merge conflicts (like Git). ```python # Package import from three_merge import merge # Strings have non-conflicting additions base = '123456789101112' source = '0123456789101112' target = '12345678910111213' # merged = '012345678910111213' merged = merge(source, target, base) # Strings have an addition conflict base = '123456789101112' source = '123a456789101112' target = '123b456789101112' # merged = '123<<<<<<< ++ a ======= ++ b >>>>>>>456789101112' merged = merge(source, target, base) # Strings have non-conflicting addition/deletions base = '123456789101112' source = '123456789ab101112' target = '123789101112' # merged = '123789ab101112' merged = merge(source, target, base) ``` For more examples, please take a look at our [tests](https://github.com/spyder-ide/three-merge/blob/master/three_merge/tests/test_merge.py). ## Changelog Please see our [CHANGELOG](https://github.com/spyder-ide/three-merge/blob/master/CHANGELOG.md) file to learn more about our new features and improvements. ## Contribution guidelines We follow PEP8 and PEP257 for all Python modules. We use MyPy type annotations for all functions and classes declared on this package. Feel free to send a PR or create an issue if you have any problem/question. %prep %autosetup -n three-merge-0.1.1 %build %py3_build %install %py3_install install -d -m755 %{buildroot}/%{_pkgdocdir} if [ -d doc ]; then cp -arf doc %{buildroot}/%{_pkgdocdir}; fi if [ -d docs ]; then cp -arf docs %{buildroot}/%{_pkgdocdir}; fi if [ -d example ]; then cp -arf example %{buildroot}/%{_pkgdocdir}; fi if [ -d examples ]; then cp -arf examples %{buildroot}/%{_pkgdocdir}; fi pushd %{buildroot} if [ -d usr/lib ]; then find usr/lib -type f -printf "/%h/%f\n" >> filelist.lst fi if [ -d usr/lib64 ]; then find usr/lib64 -type f -printf "/%h/%f\n" >> filelist.lst fi if [ -d usr/bin ]; then find usr/bin -type f -printf "/%h/%f\n" >> filelist.lst fi if [ -d usr/sbin ]; then find usr/sbin -type f -printf "/%h/%f\n" >> filelist.lst fi touch doclist.lst if [ -d usr/share/man ]; then find usr/share/man -type f -printf "/%h/%f.gz\n" >> doclist.lst fi popd mv %{buildroot}/filelist.lst . mv %{buildroot}/doclist.lst . %files -n python3-three-merge -f filelist.lst %dir %{python3_sitelib}/* %files help -f doclist.lst %{_docdir}/* %changelog * Thu Mar 09 2023 Python_Bot - 0.1.1-1 - Package Spec generated