
[build-system]
requires = ["hatchling"]
build-backend = "hatchling.build"


[project]
name = "rattail"
version = "0.17.2"
description = "Retail Software Framework"
readme = "README.rst"
authors = [{name = "Lance Edgar", email = "lance@edbob.org"}]
license = {text = "GNU GPL v3+"}
classifiers = [
        "Development Status :: 4 - Beta",
        "Environment :: Console",
        "Environment :: Web Environment",
        "Environment :: Win32 (MS Windows)",
        "Environment :: X11 Applications",
        "Intended Audience :: Developers",
        "License :: OSI Approved :: GNU General Public License v3 or later (GPLv3+)",
        "Natural Language :: English",
        "Operating System :: OS Independent",
        "Programming Language :: Python",
        "Programming Language :: Python :: 3",
        "Programming Language :: Python :: 3.8",
        "Programming Language :: Python :: 3.9",
        "Programming Language :: Python :: 3.10",
        "Programming Language :: Python :: 3.11",
        "Topic :: Office/Business",
        "Topic :: Software Development :: Libraries :: Python Modules",
]
requires-python = ">= 3.8"
dependencies = [
        "bcrypt",
        "colander",
        "humanize",
        "importlib_resources ; python_version < '3.9'",
        "lockfile",
        "makefun",
        "Mako",
        "MarkupSafe",
        "openpyxl",
        "packaging",
        "progress",
        "pyinotify ; sys_platform != 'win32'",
        "pytz",
        "requests",
        "texttable",
        "typer",
        "typing-extensions",
        "WuttJamaican>=0.8.0",
        "xlrd",
]


[project.optional-dependencies]
bouncer = [
        # until we support PY3K we must stick with older flufl.bounce
        "flufl.bounce<3.0",
]
db = [
        "alembic",
        "beaker",
        "passlib",
        "SQLAlchemy>=1.4,<1.5",
        "SQLAlchemy-Continuum",
]
memcached = ["pylibmc"]
supervisor = ["supervisor"]
docs = ["Sphinx", "sphinx-paramlinks", "sphinxcontrib-programoutput", "furo"]
tests = ["coverage", "mock", "pytest", "pytest-cov"]


[project.scripts]
rattail = "rattail.commands.base:rattail_typer"
rattail-dev = "rattail.commands.dev:rattail_dev_typer"
trainwreck = "rattail.trainwreck.commands:trainwreck_typer"


[project.gui-scripts]
rattailw = "rattail.commands.base:rattail_typer"


[project.entry-points."rattail.config.extensions"]
"rattail.db" = "rattail.db:ConfigExtension"
"rattail.trainwreck" = "rattail.trainwreck.config:TrainwreckConfig"


[project.entry-points."rattail.emails"]
rattail = "rattail.emails"


[project.entry-points."rattail.features"]
new-report = "rattail.features.newreport:NewReportFeature"
new-table = "rattail.features.newtable:NewTableFeature"


[project.entry-points."rattail.importing"]
"to_csv.from_rattail.export" = "rattail.importing.exporters:FromRattailToCSV"
"to_rattail.from_csv.import" = "rattail.importing.csv:FromCSVToRattail"
"to_rattail.from_ifps.import" = "rattail.importing.ifps:FromIFPSToRattail"
"to_rattail.from_rattail.export" = "rattail.importing.rattail:FromRattailToRattailExport"
"to_rattail.from_rattail.import" = "rattail.importing.rattail:FromRattailToRattailImport"
"to_rattail.from_versions.import" = "rattail.importing.versions:FromRattailToRattailVersions"
"to_trainwreck.from_trainwreck.export" = "rattail.trainwreck.importing.trainwreck:FromTrainwreckToTrainwreckExport"
"to_trainwreck.from_trainwreck.import" = "rattail.trainwreck.importing.trainwreck:FromTrainwreckToTrainwreckImport"


[project.entry-points."rattail.projects"]
byjove = "rattail.projects.byjove:ByjoveProjectGenerator"
fabric = "rattail.projects.fabric:FabricProjectGenerator"
rattail = "rattail.projects.rattail:RattailProjectGenerator"
rattail_integration = "rattail.projects.rattail_integration:RattailIntegrationProjectGenerator"
rattail_shopfoo = "rattail.projects.rattail_shopfoo:RattailShopfooProjectGenerator"
tailbone_integration = "rattail.projects.tailbone_integration:TailboneIntegrationProjectGenerator"
tailbone_shopfoo = "rattail.projects.tailbone_shopfoo:TailboneShopfooProjectGenerator"


[project.entry-points."rattail.reports"]
customer_mailing = "rattail.reporting.customer_mailing:CustomerMailing"


[project.entry-points."rattail.sil.column_providers"]
rattail = "rattail.sil.columns:provide_columns"


[project.entry-points."rattail.vendors.catalogs.parsers"]
"rattail.contrib.generic" = "rattail.contrib.vendors.catalogs.generic:GenericCatalogParser"
"rattail.contrib.dutchvalley" = "rattail.contrib.vendors.catalogs.dutchvalley:DutchValleyCatalogParser"
"rattail.contrib.equalexchange" = "rattail.contrib.vendors.catalogs.equalexchange:EqualExchangeCatalogParser"
"rattail.contrib.kehe" = "rattail.contrib.vendors.catalogs.kehe:KeheCatalogParser"
"rattail.contrib.lotuslight" = "rattail.contrib.vendors.catalogs.lotuslight:LotusLightCatalogParser"
"rattail.contrib.unfi" = "rattail.contrib.vendors.catalogs.unfi:UNFICatalogParser"
"rattail.contrib.unfi.2" = "rattail.contrib.vendors.catalogs.unfi:UNFICatalogParser2"
"rattail.contrib.unfi.tsv" = "rattail.contrib.vendors.catalogs.unfi:UNFITabSeparatedCatalogParser"


[project.entry-points."rattail.vendors.invoices.parsers"]
"rattail.contrib.alberts" = "rattail.contrib.vendors.invoices.alberts:AlbertsInvoiceParser"
"rattail.contrib.kehe" = "rattail.contrib.vendors.invoices.kehe:KeheInvoiceParser"
"rattail.contrib.unfi" = "rattail.contrib.vendors.invoices.unfi:UnfiInvoiceParser"


[project.urls]
Homepage = "https://rattailproject.org"
Repository = "https://kallithea.rattailproject.org/rattail-project/rattail"
Issues = "https://redmine.rattailproject.org/projects/rattail/issues"
Changelog = "https://kallithea.rattailproject.org/rattail-project/rattail/files/master/CHANGELOG.md"


[tool.commitizen]
version_provider = "pep621"
tag_format = "v$version"
update_changelog_on_bump = true


[tool.hatch.build.targets.sdist]
exclude = [
  "htmlcov/",
]
