pyproject.toml
[tool.poetry]
name = "fhir-kindling"
version = "1.0.3"
description = "Python library to simplify working with FHIR servers and resources."
authors = ["Michael Graf <michael.graf3110@gmail.com>"]
# todo add changelog when multiple readme bug is fixed
readme = "README.md"
packages = [{ include = "fhir_kindling" }]
homepage = "https://migraf.github.io/fhir-kindling/"
repository = "https://github.com/migraf/fhir-kindling"
license = "MIT"
classifiers = [
"Development Status :: 4 - Beta",
"Intended Audience :: Developers",
"License :: OSI Approved :: MIT License",
"Natural Language :: English",
"Programming Language :: Python :: 3.8",
"Programming Language :: Python :: 3.9",
"Programming Language :: Python :: 3.10",
"Programming Language :: Python :: 3.11",
]
keywords = [
"python",
"fhir",
"hl7",
"client",
"medical records",
"healthcare",
"data",
]
[tool.poetry.dependencies]
python = "^3.8"
"fhir.resources" = "^6.0.0"
tqdm = "*"
orjson = "*"
xmltodict = "*"
pydantic = "^1.10.0"
networkx = "*"
httpx = "*"
pandas = { version = "*", optional = true }
plotly = { version = "*", optional = true }
faker = { version = "*", optional = true }
matplotlib = { version = "*", optional = true }
notebook = { version = "*", optional = true }
RISE = { version = "*", optional = true }
ipywidgets = { version = "*", optional = true }
kaleido = { version = "0.2.1", optional = true }
[tool.poetry.extras]
ds = ["pandas", "plotly", "faker", "matplotlib", "kaleido"]
demo = ["pandas", "plotly", "faker", "matplotlib", "notebook", "RISE", "ipywidgets", "kaleido"]
[tool.poetry.group.dev.dependencies]
pytest = "^7.2.0"
pytest-cov = "*"
coverage = "*"
tox = "*"
mkdocs = "*"
mkdocs-material = "*"
mkdocstrings = { extras = ["python-legacy"], version = "*" }
pytest-asyncio = "*"
rise = "*"
python-dotenv = "*"
black = "*"
ruff = "*"
pre-commit = "*"
poethepoet = "^0.21.1"
[tool.poe.tasks]
test = "pytest"
test-lf = "pytest --lf"
test-cov = "pytest --cov=fhir_kindling fhir_kindling/"
cov-xml = "coverage xml"
lint = "ruff . --fix"
format = "black ."
[tool.ruff]
line-length = 120
# Enable Pyflakes `E` and `F` codes by default.
select = ["E", "F", "I001", "C90", "I002"]
ignore = []
per-file-ignores = { "**/__init__.py" = ["F401"] }
# Exclude a variety of commonly ignored directories.
exclude = [
".bzr",
".direnv",
".eggs",
".git",
".hg",
".mypy_cache",
".nox",
".pants.d",
".ruff_cache",
".svn",
".tox",
".venv",
"__pypackages__",
"_build",
"buck-out",
"build",
"dist",
"node_modules",
"venv",
]
# Allow unused variables when underscore-prefixed.
dummy-variable-rgx = "^(_+|(_+[a-zA-Z0-9_]*[a-zA-Z0-9]+?))$"
# Assume Python 3.10.
target-version = "py311"
[tool.ruff.mccabe]
# Unlike Flake8, default to a complexity level of 10.
max-complexity = 10
[build-system]
requires = ["poetry-core"]
build-backend = "poetry.core.masonry.api"