Metadata-Version: 2.4
Name: easylink
Version: 0.2.5
Summary: A tool that allows users to build and run highly configurable record linkage/entity resolution pipelines.
Home-page: https://github.com/ihmeuw/easylink
Author: The EasyLink developers
Author-email: vivarium.dev@gmail.com
License: BSD-3-Clause
Description-Content-Type: text/x-rst
License-File: LICENSE
Requires-Dist: vivarium_build_utils<3.0.0,>=2.0.2
Requires-Dist: click
Requires-Dist: docker
Requires-Dist: graphviz
Requires-Dist: loguru
Requires-Dist: layered_config_tree>=3.0.0
Requires-Dist: networkx
Requires-Dist: pandas
Requires-Dist: pyyaml
Requires-Dist: pyarrow
Requires-Dist: requests
Requires-Dist: snakemake>=8.0.0
Requires-Dist: tqdm
Requires-Dist: snakemake-interface-executor-plugins<9.0.0
Requires-Dist: snakemake-executor-plugin-slurm
Requires-Dist: pandas-stubs
Requires-Dist: pyarrow-stubs
Requires-Dist: types-PyYAML
Provides-Extra: docs
Requires-Dist: sphinx<8.2.0; extra == "docs"
Requires-Dist: sphinx-rtd-theme; extra == "docs"
Requires-Dist: sphinx-autodoc-typehints; extra == "docs"
Requires-Dist: sphinx-click; extra == "docs"
Requires-Dist: sphinx-autobuild; extra == "docs"
Requires-Dist: typing_extensions; extra == "docs"
Provides-Extra: test
Requires-Dist: pytest; extra == "test"
Requires-Dist: pytest-cov; extra == "test"
Requires-Dist: pytest-mock; extra == "test"
Provides-Extra: dev
Requires-Dist: sphinx<8.2.0; extra == "dev"
Requires-Dist: sphinx-rtd-theme; extra == "dev"
Requires-Dist: sphinx-autodoc-typehints; extra == "dev"
Requires-Dist: sphinx-click; extra == "dev"
Requires-Dist: sphinx-autobuild; extra == "dev"
Requires-Dist: typing_extensions; extra == "dev"
Requires-Dist: pytest; extra == "dev"
Requires-Dist: pytest-cov; extra == "dev"
Requires-Dist: pytest-mock; extra == "dev"
Requires-Dist: black==22.3.0; extra == "dev"
Requires-Dist: isort; extra == "dev"
Requires-Dist: mypy; extra == "dev"
Dynamic: author
Dynamic: author-email
Dynamic: description
Dynamic: description-content-type
Dynamic: home-page
Dynamic: license
Dynamic: license-file
Dynamic: provides-extra
Dynamic: requires-dist
Dynamic: summary

========
EasyLink
========

.. _intro:

EasyLink is a tool that allows users to build and run highly configurable record linkage/entity resolution pipelines.
Its configurability enables users to "mix and match" different pieces of record 
linkage software by ensuring that each piece of the pipeline conforms to standard patterns. 

For example, users at the Census Bureau could easily evaluate whether using a more sophisticated "blocking" 
method would improve results in a certain pipeline, without having to rewrite the entire pipeline.

In its current state, EasyLink provides only one or two implementations for each step, does not yet have documentation 
to support users in creating their own implementations, and is not yet stable enough to be recommended as a tool for production pipelines.

.. _end_intro:

.. _python_support:

**Supported Python versions: 3.11, 3.12**

.. _end_python_support:

Installation
============

.. _installation:

**NOTE: This package requires AMD64 CPU architecture - it is not compatible with
Apple's ARM64 architecture (e.g. M1 and newer Macs).**

There are a few things to install in order to use this package:

- Set up Linux.

  Singularity (and thus EasyLink) requires Linux to run. If you are not already
  using Linux, you will need to set up a virtual machine; refer to the 
  `Singularity documentation for installing on Windows or Mac <https://docs.sylabs.io/guides/4.1/admin-guide/installation.html#installation-on-windows-or-mac>`_. 

- Install Singularity.

  First check if you already have Singularity installed by running the command
  ``singularity --version``. For an existing installation, your Singularity version
  number is printed.

  If Singularity is not yet installed, you will need to install it;
  refer to the `Singularity docs for installing on Linux <https://docs.sylabs.io/guides/4.1/admin-guide/installation.html#installation-on-linux>`_.

  Note that this requires administrator privileges; you may need to request installation
  from your system admin if you are working in a shared computing environment.

- Install conda. 
  
  We recommend `miniforge <https://github.com/conda-forge/miniforge>`_. You can
  check if you already have conda installed by running the command ``conda --version``.
  For an existing installation, a version will be displayed.

- Create a conda environment with python and graphviz installed.

  ::

  $ conda create --name easylink -c conda-forge python=3.12 graphviz 'gcc<14' -y
  $ conda activate easylink

- Install easylink in the environment.

  Option 1 - Install from PyPI with pip::

    $ pip install easylink

  Option 2 - Build from source with pip::
    
    $ pip install git+https://github.com/ihmeuw/easylink.git

.. _end_installation:

Documentation
=============

You can view documentation at https://easylink.readthedocs.io/en/latest/
