# MARK: Project info [project] name = "corelibs" version = "0.46.0" description = "Collection of utils for Python scripts" readme = "README.md" requires-python = ">=3.13" dependencies = [ "corelibs-datetime>=1.0.1", "corelibs-enum-base>=1.0.0", "corelibs-text-colors>=1.0.0", "corelibs-var>=1.0.0", "cryptography>=46.0.3", "jmespath>=1.0.1", "jsonpath-ng>=1.7.0", "psutil>=7.0.0", "requests[socks]>=2.32.5", ] # MARK: build system [build-system] requires = ["hatchling"] build-backend = "hatchling.build" # set this to disable publish to pypi (pip) # classifiers = ["Private :: Do Not Upload"] # MARK: build target [[tool.uv.index]] name = "opj-pypi" url = "https://git.egplusww.jp/api/packages/PyPI/pypi/simple/" publish-url = "https://git.egplusww.jp/api/packages/PyPI/pypi" [tool.uv.sources] corelibs-enum-base = { index = "opj-pypi" } corelibs-datetime = { index = "opj-pypi" } corelibs-var = { index = "opj-pypi" } corelibs-text-colors = { index = "opj-pypi" } [dependency-groups] dev = [ "deepdiff>=8.6.1", "pytest>=8.4.1", "pytest-cov>=6.2.1", "typing-extensions>=4.15.0", ] # MARK: Python linting [tool.pyright] typeCheckingMode = "strict" reportMissingImports = "information" reportMissingTypeStubs = "information" reportUnknownMemberType = "information" [tool.ruff] line-length = 120 [tool.black] # set 10 short for better formatting line-length = 110 # to avoid " ... " " ... " string sets # experimental-string-processing = true preview = true enable-unstable-feature = ["string_processing"] [tool.pylint.format] max-line-length = 120 [tool.pylint.miscellaneous] notes = ["FIXME", "TODO"] notes-rgx = '(FIXME|TODO)(\((TTD-|#)\[0-9]+\))' [tool.flake8] max-line-length = 120 ignore = [ "E741", # ignore ambigious variable name "W504" # Line break occurred after a binary operator [wrong triggered by "or" in if] ] [tool.pylint.MASTER] # this is for the tests/etc folders init-hook='import sys; sys.path.append("src/")' # MARK: Testing [tool.pytest.ini_options] testpaths = [ "tests", ] [tool.coverage.run] omit = [ "*/tests/*", "*/test_*.py", "*/__init__.py" ] [tool.coverage.report] exclude_lines = [ "pragma: no cover", "def __repr__", "def __str__", "raise AssertionError", "raise NotImplementedError", "if __name__ == .__main__.:" ] exclude_also = [ "def __.*__\\(", "def __.*\\(", "def _.*\\(", ]