[build-system] requires = ["setuptools>=64", "wheel"] build-backend = "setuptools.build_meta" [project] name = "generalresearch" version = "3.5.6" description = "Python Utilities for General Research" readme = "README.md" requires-python = ">=3.14" dependencies = [ "Faker", "PyMySQL", "psycopg", "cachetools", "decorator", "email-normalize", "influxdb", "limits", "more-itertools", "numpy", "pandas", "pandera", "protobuf", "pyarrow", "pycountry", "pydantic-extra-types[phonenumbers]", "pydantic-settings", "pydantic[email]", "pytest", "pylibmc", "pymemcache", "pytz", "redis", "requests", "scipy", "sentry-sdk", "slackclient", "grip-client", "tldextract", "ua-parser", "user-agents", "wrapt", ] [project.optional-dependencies] django = ["Django>=5.2", "psycopg>=3.1"] dask = ["dask>=2026.7.1", "distributed>=2026.7.1"] [tool.setuptools.packages.find] where = ["."] include = ["generalresearch", "generalresearch.*", "test_utils", "test_utils.*"] [tool.setuptools.package-data] "generalresearch" = ["locales/*.json", "resources/*.csv"] "test_utils" = ["managers/upk/*.gz"] [tool.pytest.ini_options] testpaths = ["tests"] addopts = "-v --tb=short" [tool.ruff] target-version = "py314" exclude = [ "generalresearch/thl_django", ] [tool.pylint.messages_control] disable = ["all"] enable = ["cyclic-import"]