Hans C. Graber

15 papers C 9Journal 6
YearRankTypeTitle / Venue / Authors
2021 C conf
IGARSS
Samantha Furtney, Roland Romeiser, Hans C. Graber
2018 C conf
IGARSS
Roland Romeiser, Hans C. Graber
2018 C conf
IGARSS
Björn Lund, Lisa Nyman, Neil J. Williams, Hans C. Graber, Jochen Horstmann
2015 J jnl
IEEE Trans. Geosci. Remote. Sens.
Roland Romeiser, Hans C. Graber, Michael J. Caruso, Robert E. Jensen, David T. Walker, Andrew T. Cox
2015 J jnl
IEEE Trans. Geosci. Remote. Sens.
Roland Romeiser, Hans C. Graber
2015 J jnl
IEEE Trans. Geosci. Remote. Sens.
Jochen Horstmann, Silvia Falchetti, Christopher C. Wackerman, Salvatore Maresca, Michael J. Caruso, Hans C. Graber
2014 J jnl
IEEE Trans. Geosci. Remote. Sens.
Jingshuang Xue, Hans C. Graber, Roland Romeiser, Björn Lund
2013 J jnl
IEEE Trans. Geosci. Remote. Sens.
Roland Romeiser, Jochen Horstmann, Michael J. Caruso, Hans C. Graber
2013 J jnl
IEEE Trans. Geosci. Remote. Sens.
Björn Lund, Hans C. Graber, Jingshuang Xue, Roland Romeiser
2013 C conf
IGARSS
Björn Lund, Hans C. Graber, Jingshuang Xue, Roland Romeiser, Emily L. Shroyer, James N. Moum
2013 C conf
IGARSS
Jingshuang Xue, Hans C. Graber, Björn Lund, Roland Romeiser
2006 C conf
IGARSS
Jochen Horstmann, Wolfgang Koch, Donald R. Thompson, Hans C. Graber
2004 C conf
IGARSS
Naoto Ebuchi, Hans C. Graber, Michael J. Caruso
2004 C conf
IGARSS
Naoto Ebuchi, Hans C. Graber, Michael J. Caruso
2004 C conf
IGARSS
Douglas C. Vandemark, William M. Drennan, J. Sun, Jeffrey R. French, Hans C. Graber
pyproject.toml
← Index pyproject.toml ini
[tool.black]
line-length = 120
target-version = ['py38']
include = '\.pyi?$'
extend-exclude = '''
/(
  # directories
  \.eggs
  | \.git
  | \.hg
  | \.mypy_cache
  | \.tox
  | \.venv
  | build
  | dist
  | venv
)/
'''

[tool.isort]
profile = "black"
line_length = 120
multi_line_output = 3
include_trailing_comma = true
force_grid_wrap = 0
use_parentheses = true
ensure_newline_before_comments = true

[tool.flake8]
max-line-length = 120
ignore = ["E501", "W503", "E203", "F401"]
exclude = [
    "__pycache__",
    ".git",
    "venv",
    "build",
    "dist",
    "*.egg-info",
]

[tool.pylint.messages_control]
disable = [
    "C0114",  # missing-module-docstring
    "C0115",  # missing-class-docstring
    "C0116",  # missing-function-docstring
    "C0103",  # invalid-name
    "R0903",  # too-few-public-methods
    "R0913",  # too-many-arguments
    "R0914",  # too-many-locals
    "R0915",  # too-many-statements
]

[tool.pylint.format]
max-line-length = 120

# ============================================================================
# Pytest Configuration
# ============================================================================
[tool.pytest.ini_options]
testpaths = ["tests/unit", "tests/integration"]
python_files = ["test_*.py"]
python_classes = ["Test*"]
python_functions = ["test_*"]

# Default options: verbose, show locals on failure, strict markers
addopts = [
    "-v",
    "--strict-markers",
    "--tb=short",
]

# Custom markers for selective test execution
markers = [
    "unit: Pure unit tests - no external deps, no disk I/O, fast (< 1s each)",
    "integration: Integration tests - use real test binaries on disk",
    "slow: Tests that take > 5s (e.g. entropy on large files, full extraction pipelines)",
    "pe: Tests specific to PE binary analysis",
    "elf: Tests specific to ELF binary analysis",
    "macho: Tests specific to Mach-O binary analysis",
    "apk: Tests specific to APK binary analysis",
    "exporters: Tests for database exporters (ClickHouse, Elasticsearch, Print)",
    "dataclass: Tests for dataclass construction and field validation",
    "binja: Tests for Binary Ninja decompiler extractors (mocked, no license needed)",
]