Scene_Foundry_Demo / pyproject.toml
Chunteng's picture
Initial commit (Fresh Start)
a03fc9e
[build-system]
requires = ["setuptools", "numpy", "Cython"]
build-backend = "setuptools.build_meta"
[project]
name = "infinigen"
readme = "README.md"
license = {file = "LICENSE"}
dynamic = ["version"]
description = "Infinite Photorealistic Worlds using Procedural Generation"
keywords = [
"computer vision",
"data generation",
"procedural"
]
classifiers = [
"Framework :: Blender",
"Programming Language :: Python :: 3",
"Programming Language :: Python :: 3.10"
]
requires-python = "==3.10.*"
dependencies = [
"bpy==3.6.0",
"frozendict", # TODO remove
"geomdl", # used only for creatures
"gin_config>=0.5.0",
"gradio>=4.0.0", # for web interface
"imageio",
"matplotlib",
"networkx",
"numpy<2",
"openai>=1.0.0", # for web interface
"opencv-python",
"pandas",
"psutil",
"python-dotenv>=1.0.0", # for web interface
"pyyaml>=6.0", # for web interface
"scikit-image",
"scikit-learn",
"scipy",
"shapely",
"submitit",
"tqdm",
"trimesh",
# used by trimesh, we could specify "trimesh[easy]" but this brings more packages
"python-fcl",
"rtree",
]
[project.optional-dependencies]
terrain = [
"landlab==2.6.0",
"pyrender",
]
vis = [
"einops",
"flow_vis",
"numba", # for ground truth visuals
"pyglet<2" # for trimesh_scene.show()
]
dev = [
"pytest",
"pytest-ordering",
"pytest-cov",
"pytest-xdist",
"pytest-timeout",
"pytype",
"ruff",
"isort",
"tabulate",
"rapidfuzz",
"pre-commit"
]
wandb = [
"wandb"
]
[tool.setuptools]
# include-package-data is terribly named. package-data is still included if false,
# just not the package-data setuptools would otherwise autogenerate from MANIFEST.in or version control
include-package-data = false
[tool.setuptools.packages.find]
include = ["infinigen*"]
# must be specified as module paths with ., using classic filepaths with / will silently not do anything
exclude = [
"infinigen.datagen.customgt.dependencies*",
"infinigen.datagen.customgt.build*",
]
[tool.setuptools.package-data]
"*" = ["*.gin", "*.txt", "*.json"]
# Must be specified as paths relative to infinigen/
"infinigen" = [
"terrain/**/*.soil", # extra files for SoilMachine
"terrain/lib/**/*.so", # created by terrain compilation
"terrain/lib/**/*.o", # created by terrain compilation
"datagen/customgt/build/customgt", # created during opengl compilation
"assets/objects/creatures/parts/nurbs_data/*.npy", # stores creature nurbs centroids data, ideally will be deprecated
]
[tool.setuptools.dynamic]
version = {attr = "infinigen.__version__"}
[tool.pytest.ini_options]
testpaths = "tests"
junit_family = "xunit2"
markers = ["nature", "indoors", "skip_for_ci"]
timeout = 240
filterwarnings = [
"ignore:The value of the smallest subnormal for <class 'numpy.float:UserWarning",
# ignore warnings from landlab, not our problem
"ignore:pkg_resources is deprecated as an API:DeprecationWarning",
"ignore:Importing from numpy.matlib is deprecated since 1.19.0:PendingDeprecationWarning",
"ignore:Please import `label` from the `scipy.ndimage` namespace; the `scipy.ndimage.measurements` namespace is deprecated and will be removed in SciPy 2.0.0:DeprecationWarning"
]
[tool.cibuildwheel]
test-extras = ["dev"]
test-command = "pytest tests"
[tool.ruff]
target-version = "py310"
exclude = [
"*.ipynb",
# exclude known submodules
"infinigen/datagen/customgt/dependencies/",
"infinigen/OcMesher",
"infinigen/infinigen_gpl",
# exclude copied-in external code
"infinigen/terrain/mesh_to_sdf",
"infinigen/terrain/mesher/_marching_cubes_lewiner*"
]
[tool.ruff.lint]
select = [
"E",
"I",
"F",
"S102", # no exec(),
"TID252", # relative imports only allowed for siblings
]
ignore = [
"E501", # over-length lines, formatter should handle it
"E741", # ambigous variable name
]
[tool.ruff.lint.per-file-ignores]
"**/__init__.py" = [
"F401",
"CPY001", # runs during PRs, but no need for copyright on boilerplate/often-empty __init__.py
]
"infinigen/assets/*" = ["F841"] #transpiler currently creates lots of unused variables
[tool.pytype]
inputs = ['infinigen', 'infinigen_examples']