[project] name = "xhiveframework" authors = [ { name = "XhiveFramework Technologies Pvt Ltd", email = "developers@xhiveframework.io"} ] description = "Metadata driven, full-stack low code web framework" requires-python = ">=3.10" readme = "README.md" dynamic = ["version"] dependencies = [ # core dependencies "Babel~=2.12.1", "Click~=8.1.7", "filelock~=3.8.0", "filetype~=1.2.0", "GitPython~=3.1.34", "Jinja2~=3.1.2", "Pillow~=10.2.0", "PyJWT~=2.8.0", # We depend on internal attributes, # do NOT add loose requirements on PyMySQL versions. "PyMySQL==1.1.0", "pypdf~=3.17.0", "PyPika==0.48.9", "PyQRCode~=1.2.1", "PyYAML~=6.0.1", "RestrictedPython~=6.2", "WeasyPrint==59.0", "Werkzeug~=3.0.1", "Whoosh~=2.7.4", "beautifulsoup4~=4.12.2", "bleach-allowlist~=1.0.3", "bleach[css]~=6.0.0", "cairocffi==1.5.1", "chardet~=5.1.0", "croniter~=1.4.1", "cryptography~=42.0.0", "email-reply-parser~=0.5.12", "git-url-parse~=1.2.2", "gunicorn~=21.2.0", "html5lib~=1.1", "ipython~=8.15.0", "ldap3~=2.9", "markdown2~=2.4.8", "MarkupSafe>=2.1.0,<3", "maxminddb-geolite2==2018.703", "num2words~=0.5.12", "oauthlib~=3.2.2", "openpyxl~=3.1.2", "passlib~=1.7.4", "pdfkit~=1.0.0", "phonenumbers==8.13.13", "premailer~=3.10.0", "psutil~=5.9.5", "psycopg2-binary~=2.9.1", "pyOpenSSL~=24.0.0", "pydantic==2.3.0", "pyotp~=2.8.0", "python-dateutil~=2.8.2", "pytz==2023.3", "rauth~=0.7.3", "redis~=4.5.5", "hiredis~=2.2.3", "requests-oauthlib~=1.3.1", "requests~=2.31.0", "rq~=1.15.1", "rsa>=4.1", "semantic-version~=2.10.0", "sentry-sdk~=1.37.1", "sqlparse~=0.4.4", "tenacity~=8.2.2", "terminaltables~=3.1.10", "traceback-with-variables~=2.0.4", "typing_extensions>=4.6.1,<5", "xlrd~=2.0.1", "zxcvbn~=4.4.28", "markdownify~=0.11.6", # integration dependencies "boto3~=1.28.10", "dropbox~=11.36.2", "google-api-python-client~=2.2.0", "google-auth-oauthlib~=0.4.4", "google-auth~=1.29.0", "posthog~=3.0.1", ] [build-system] requires = ["flit_core >=3.4,<4"] build-backend = "flit_core.buildapi" [tool.bench.dev-dependencies] coverage = "~=6.5.0" Faker = "~=18.10.1" pyngrok = "~=6.0.0" unittest-xml-reporting = "~=3.2.0" watchdog = "~=3.0.0" hypothesis = "~=6.77.0" responses = "==0.23.1" freezegun = "~=1.2.2" [tool.ruff] line-length = 110 target-version = "py310" [tool.ruff.lint] select = [ "F", "E", "W", "I", "UP", "B", "RUF", ] ignore = [ "B017", # assertRaises(Exception) - should be more specific "B018", # useless expression, not assigned to anything "B023", # function doesn't bind loop variable - will have last iteration's value "B904", # raise inside except without from "E101", # indentation contains mixed spaces and tabs "E402", # module level import not at top of file "E501", # line too long "E741", # ambiguous variable name "F401", # "unused" imports "F403", # can't detect undefined names from * import "F405", # can't detect undefined names from * import "F722", # syntax error in forward type annotation "W191", # indentation contains tabs "RUF001", # string contains ambiguous unicode character ] typing-modules = ["xhiveframework.types.DF"] [tool.ruff.format] quote-style = "double" indent-style = "tab" docstring-code-format = true