[build-system] requires = ["hatchling"] build-backend = "hatchling.build" [project] name = "csaxs_bec" version = "0.0.0" description = "The cSAXS plugin repository for BEC" requires-python = ">=3.11" classifiers = [ "Development Status :: 3 - Alpha", "Programming Language :: Python :: 3", "Topic :: Scientific/Engineering", ] dependencies = [ "bec_ipython_client", "bec_lib", "bec_server", "ophyd_devices~=1.29", "std_daq_client", "jfjoch-client==1.0.0rc148", "rich", "pyepics", "pyueye", # for the IDS uEye camera "bec_widgets", "zmq", "opencv-python", "dectris-compression", # for JFJ preview stream decompression "cbor2~=5.9.0", ] [project.optional-dependencies] allied_vision = [ "pygobject<3.52", # for the AlliedVision Alvium camera (native Aravis/GenICam, no EPICS IOC) # pinned below 3.52: that version switched to requiring # girepository-2.0 (GLib >=2.80/gobject-introspection >=1.80), # which RHEL9's system packages don't provide (only the older # girepository-1.0 via gobject-introspection 1.68) -- unpin once # deployment hosts are upgraded past that. # # Kept out of the default dependency set: pygobject ships no # PyPI wheels, so `pip install` always builds it from source, # which needs the OS gobject-introspection dev package present # at *install* time. As a hard dependency this broke plain # `pip install csaxs_bec` on CI and on Read the Docs (neither # has that OS package, and RTD's build image isn't ours to # change) -- see csaxs_bec/devices/allied_vision_cameras/README.md. ] dev = [ "black", "copier", "isort", "coverage", "pylint", "pytest", "pytest-random-order", "pytest-bec-e2e", "ophyd_devices", "bec_server", ] [project.entry-points."bec"] plugin_bec = "csaxs_bec" [project.entry-points."bec.deployment.device_server"] plugin_ds_startup = "csaxs_bec.deployments.device_server.startup:run" [project.entry-points."bec.file_writer"] plugin_file_writer = "csaxs_bec.file_writer" [project.entry-points."bec.scans"] plugin_scans = "csaxs_bec.scans" [project.entry-points."bec.scans.scan_modifier"] plugin_scan_modifier = "csaxs_bec.scans.scan_customization.scan_modifier" [project.entry-points."bec.scans.metadata_schema"] plugin_metadata_schema = "csaxs_bec.scans.metadata_schema" [project.entry-points."bec.ipython_client_startup"] plugin_ipython_client_pre = "csaxs_bec.bec_ipython_client.startup.pre_startup" plugin_ipython_client_post = "csaxs_bec.bec_ipython_client.startup" [project.entry-points."bec.widgets.auto_updates"] plugin_widgets_update = "csaxs_bec.bec_widgets.auto_updates" [project.entry-points."bec.widgets.user_widgets"] plugin_widgets = "csaxs_bec.bec_widgets.widgets" [tool.hatch.build.targets.wheel] include = ["*"] [tool.isort] profile = "black" line_length = 100 multi_line_output = 3 include_trailing_comma = true [tool.black] line-length = 100 skip-magic-trailing-comma = true [tool.pylint.basic] # Good variable names regexes, separated by a comma. If names match any regex, # they will always be accepted good-names-rgxs = [ ".*scanID.*", ".*RID.*", ".*pointID.*", ".*ID.*", ".*_2D.*", ".*_1D.*", ]