<commit_before>#!/usr/bin/env python
from __future__ import unicode_literals
import codecs
from io import open
import os
import re
import setuptools
from setuptools import setup, find_packages
import sys

# Borrowed from pip at https://github.com/pypa/pip/blob/62c27dee45625e1b63d1e023b0656310f276e050/setup.py#L11-L15
here = os.path.abspath(os.path.dirname(__file__))


def read(*parts):
    # intentionally *not* adding an encoding option to open, See:
    #   https://github.com/pypa/virtualenv/issues/201#issuecomment-3145690
    with open(os.path.join(here, *parts), "r") as fp:
        return fp.read()


def get_version():
    version_file = read("moto", "__init__.py")
    version_match = re.search(
        r'^__version__ = [\'"]([^\'"]*)[\'"]', version_file, re.MULTILINE
    )
    if version_match:
        return version_match.group(1)
    raise RuntimeError("Unable to find version string.")


install_requires = [
    "boto3>=1.9.201",
    "botocore>=1.12.201",
    "cryptography>=3.3.1",
    "requests>=2.5",
    "xmltodict",
    "six>1.9",
    "werkzeug",
    "pytz",
    "python-dateutil<3.0.0,>=2.1",
    "responses>=0.9.0",
    "MarkupSafe<2.0",  # This is a Jinja2 dependency, 2.0.0a1 currently seems broken
]

#
# Avoid pins where they are not necessary.  These pins were introduced by the
# following commit for Py2 compatibility.  They are not required for non-Py2
# users.
#
#   https://github.com/mpenkov/moto/commit/00134d2df37bb4dcd5f447ef951d383bfec0903c
#
install_requires += [
    #
    # This is an indirect dependency. Version 5.0.0 claims to be for
    # Py2.6+, but it really isn't.
    #
    # https://github.com/jaraco/configparser/issues/51
    #
    "configparser<5.0; python_version < '3'",
    "Jinja2>=2.10.1",
    "Jinja2<3.0.0; python_version < '3'",
    "mock",
    "mock<=3.0.5; python_version < '3'",
    "more-itertools",
    "more-itertools==5.0.0; python_version < '3'",
    "setuptools",
    "setuptools==44.0.0; python_version < '3'",
    "zipp",<commit_msg>Pin RSA dependency for Py2 (#3697)<commit_after>#!/usr/bin/env python
from __future__ import unicode_literals
import codecs
from io import open
import os
import re
import setuptools
from setuptools import setup, find_packages
import sys

# Borrowed from pip at https://github.com/pypa/pip/blob/62c27dee45625e1b63d1e023b0656310f276e050/setup.py#L11-L15
here = os.path.abspath(os.path.dirname(__file__))


def read(*parts):
    # intentionally *not* adding an encoding option to open, See:
    #   https://github.com/pypa/virtualenv/issues/201#issuecomment-3145690
    with open(os.path.join(here, *parts), "r") as fp:
        return fp.read()


def get_version():
    version_file = read("moto", "__init__.py")
    version_match = re.search(
        r'^__version__ = [\'"]([^\'"]*)[\'"]', version_file, re.MULTILINE
    )
    if version_match:
        return version_match.group(1)
    raise RuntimeError("Unable to find version string.")


install_requires = [
    "boto3>=1.9.201",
    "botocore>=1.12.201",
    "cryptography>=3.3.1",
    "requests>=2.5",
    "xmltodict",
    "six>1.9",
    "werkzeug",
    "pytz",
    "python-dateutil<3.0.0,>=2.1",
    "responses>=0.9.0",
    "MarkupSafe<2.0",  # This is a Jinja2 dependency, 2.0.0a1 currently seems broken
]

#
# Avoid pins where they are not necessary.  These pins were introduced by the
# following commit for Py2 compatibility.  They are not required for non-Py2
# users.
#
#   https://github.com/mpenkov/moto/commit/00134d2df37bb4dcd5f447ef951d383bfec0903c
#
install_requires += [
    #
    # This is an indirect dependency. Version 5.0.0 claims to be for
    # Py2.6+, but it really isn't.
    #
    # https://github.com/jaraco/configparser/issues/51
    #
    "configparser<5.0; python_version < '3'",
    "Jinja2>=2.10.1",
    "Jinja2<3.0.0; python_version < '3'",
    "mock",
    "mock<=3.0.5; python_version < '3'",
    "more-itertools",
    "more-itertools==5.0.0; python_version < '3'",
    # Indirect - Py2 works with 4.5, breaks with 4.7, but officially only supported by 4.0
    "rsa<=4.0; python_version < '3'",
    "setuptools",
    "setuptools==44.0.0; python_version < '3'",
    "zipp",
{'fraction_non_alphanumeric': 0.15115163147792707, 'fraction_numerical': 0.06885796545105566, 'mean_word_length': 3.374606505771249, 'pattern_counts': {'":': 0, '<': 25, '<?xml version=': 0, '>': 19, 'https://': 8, 'lorem ipsum': 0, 'www.': 0, 'xml': 2}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '387128', 'n_tokens_mistral': 1680, 'n_tokens_neox': 1568, 'n_words': 335}