composition_configs package

Submodules

composition_configs.core_config module

class composition_configs.core_config.WorkFileConfig(root_file: str, write_to_memory: bool = False, keep_files: bool = False)[source]

Bases: object

Configuration object for work file management behavior.

Parameters:
  • root_file (str) – The core file name used to generate unique file names.

  • write_to_memory (bool) – If True, files are written to memory, if False, written to disk.

  • keep_files (bool) – If True, work files are kept after execution; if False, they are deleted when done.

root_file: str
write_to_memory: bool = False
keep_files: bool = False
class composition_configs.core_config.InputType(*values)[source]

Bases: Enum

PROCESSING = 'processing'
CONTEXT = 'context'
class composition_configs.core_config.DataType(*values)[source]

Bases: Enum

VECTOR = 'vector'
class composition_configs.core_config.InputEntry(object: str, input_type: composition_configs.core_config.InputType, data_type: composition_configs.core_config.DataType, tag: Literal['input'], path: str)[source]

Bases: object

object: str
input_type: InputType
data_type: DataType
tag: Literal['input']
path: str

Represents a single input feature used in partitioned processing.

Users should prefer the factory methods processing_input() or context_input() over manual initialization to ensure correct and future-proof configuration.

object

Unique identifier used across the partitioning logic.

input_type

Indicates whether the input is for processing or context.

data_type

Describes the data format (e.g., vector).

tag

Should always be ‘input’ for now. Set automatically by factory methods.

path

Path to the input dataset.

classmethod processing_input(object: str, path: str) InputEntry[source]

Create a processing input (vector) entry with default tag.

classmethod context_input(object: str, path: str) InputEntry[source]

Create a context input (vector) entry with default tag.

class composition_configs.core_config.OutputEntry(object: str, data_type: composition_configs.core_config.DataType, tag: str, path: str)[source]

Bases: object

object: str
data_type: DataType
tag: str
path: str

Represents a single output feature to be produced in partitioned processing.

Users should prefer the factory method vector_output() for correct setup, and to allow future support for other data types (e.g., raster).

object

Unique identifier used across the partitioning logic.

data_type

Describes the data format (e.g., vector).

tag

Identifier for the output version (e.g., ‘after_rbc’).

path

Path where the output dataset will be written.

classmethod vector_output(object: str, tag: str, path: str) OutputEntry[source]

Create a vector output entry.

class composition_configs.core_config.InjectIO(object: str, tag: str)[source]

Bases: object

object: str
tag: str
class composition_configs.core_config.ResolvedInputEntry(object: str, tag: str, path: str, input_type: str, data_type: str)[source]

Bases: object

object: str
tag: str
path: str
input_type: str
data_type: str
class composition_configs.core_config.ResolvedOutputEntry(object: str, tag: str, path: str, data_type: str)[source]

Bases: object

object: str
tag: str
path: str
data_type: str
class composition_configs.core_config.PartitionInputConfig(entries: List[composition_configs.core_config.InputEntry])[source]

Bases: object

entries: List[InputEntry]
class composition_configs.core_config.PartitionOutputConfig(entries: List[composition_configs.core_config.OutputEntry])[source]

Bases: object

entries: List[OutputEntry]
class composition_configs.core_config.PartitionIOConfig(input_config: composition_configs.core_config.PartitionInputConfig, output_config: composition_configs.core_config.PartitionOutputConfig, documentation_directory: composition_configs.type_defs.SubdirectoryPath)[source]

Bases: object

input_config: PartitionInputConfig
output_config: PartitionOutputConfig
documentation_directory: SubdirectoryPath
class composition_configs.core_config.PartitionMethod(*values)[source]

Bases: Enum

FEATURES = 'FEATURES'
VERTICES = 'VERTICES'
class composition_configs.core_config.FuncMethodEntryConfig(func: Callable[..., Any], params: Any | Sequence[Any] | None = None)[source]

Bases: object

func: Callable[[...], Any]
params: Any | Sequence[Any] | None = None
class composition_configs.core_config.ClassMethodEntryConfig(class_: type, method: Callable[..., Any], init_params: Any | Sequence[Any] | None = None, method_params: Any | Sequence[Any] | None = None)[source]

Bases: object

class_: type
method: Callable[[...], Any]
init_params: Any | Sequence[Any] | None = None
method_params: Any | Sequence[Any] | None = None
class composition_configs.core_config.MethodEntriesConfig(entries: list[composition_configs.core_config.FuncMethodEntryConfig | composition_configs.core_config.ClassMethodEntryConfig])[source]

Bases: object

entries: list[FuncMethodEntryConfig | ClassMethodEntryConfig]
class composition_configs.core_config.PartitionRunConfig(max_elements_per_partition: int, context_radius_meters: int, run_partition_optimization: bool = True, partition_method: composition_configs.core_config.PartitionMethod = <PartitionMethod.FEATURES: 'FEATURES'>, object_id_column: str = 'OBJECTID')[source]

Bases: object

max_elements_per_partition: int
context_radius_meters: int
run_partition_optimization: bool = True
partition_method: PartitionMethod = 'FEATURES'
object_id_column: str = 'OBJECTID'

composition_configs.io_types module

composition_configs.logic_config module

class composition_configs.logic_config.SymbologyLayerSpec(unique_name: str, input_feature: composition_configs.type_defs.GdbFilePath | composition_configs.core_config.InjectIO, input_lyrx: str, grouped_lyrx: bool, target_layer_name: str | None = None)[source]

Bases: object

unique_name: str
input_feature: GdbFilePath | InjectIO
input_lyrx: str
grouped_lyrx: bool
target_layer_name: str | None = None
class composition_configs.logic_config.BarrierRule(name: str, gap_meters: int, use_turn_orientation: bool = False)[source]

Bases: object

name: str
gap_meters: int
use_turn_orientation: bool = False
class composition_configs.logic_config.BarrierDefault(gap_meters: int, use_turn_orientation: bool = False)[source]

Bases: object

gap_meters: int
use_turn_orientation: bool
class composition_configs.logic_config.BarrierOverride(gap_meters: int | None = None, use_turn_orientation: bool | None = None)[source]

Bases: object

gap_meters: int | None
use_turn_orientation: bool | None
class composition_configs.logic_config.RbcPolygonInitKwargs(input_data_structure: list[composition_configs.logic_config.SymbologyLayerSpec], output_building_polygons: composition_configs.type_defs.GdbFilePath | composition_configs.core_config.InjectIO, output_collapsed_polygon_points: composition_configs.type_defs.GdbFilePath | composition_configs.core_config.InjectIO, work_file_manager_config: composition_configs.core_config.WorkFileConfig, building_unique_name: str, barrier_default: composition_configs.logic_config.BarrierDefault, barrier_overrides: List[composition_configs.logic_config.BarrierRule] | None = None)[source]

Bases: object

input_data_structure: list[SymbologyLayerSpec]
output_building_polygons: GdbFilePath | InjectIO
output_collapsed_polygon_points: GdbFilePath | InjectIO
work_file_manager_config: WorkFileConfig
building_unique_name: str
barrier_default: BarrierDefault
barrier_overrides: List[BarrierRule] | None = None
class composition_configs.logic_config.RbcPointsInitKwargs(input_data_structure: List[composition_configs.logic_config.SymbologyLayerSpec], building_points_unique_name: str, building_polygons_unique_name: str, building_gap_distance_m: int, output_points_after_rbc: composition_configs.type_defs.GdbFilePath | composition_configs.core_config.InjectIO, output_polygons_after_rbc: composition_configs.type_defs.GdbFilePath | composition_configs.core_config.InjectIO, work_file_manager_config: composition_configs.core_config.WorkFileConfig, building_symbol_dimension: dict[int, tuple], barrier_default: composition_configs.logic_config.BarrierDefault, barrier_overrides: List[composition_configs.logic_config.BarrierRule] | None = None, map_scale: str = '100000')[source]

Bases: object

input_data_structure: List[SymbologyLayerSpec]
building_points_unique_name: str
building_polygons_unique_name: str
building_gap_distance_m: int
output_points_after_rbc: GdbFilePath | InjectIO
output_polygons_after_rbc: GdbFilePath | InjectIO
work_file_manager_config: WorkFileConfig
building_symbol_dimension: dict[int, tuple]
barrier_default: BarrierDefault
barrier_overrides: List[BarrierRule] | None = None
map_scale: str = '100000'
class composition_configs.logic_config.BegrensningskurveLandWaterKwargs(input_begrensningskurve: composition_configs.type_defs.GdbFilePath | composition_configs.core_config.InjectIO, input_land_cover_features: composition_configs.type_defs.GdbFilePath | composition_configs.core_config.InjectIO, output_begrensningskurve: composition_configs.type_defs.GdbFilePath | composition_configs.core_config.InjectIO, water_feature_buffer_width: int, water_barrier_buffer_width: int, work_file_manager_config: composition_configs.core_config.WorkFileConfig)[source]

Bases: object

input_begrensningskurve: GdbFilePath | InjectIO
input_land_cover_features: GdbFilePath | InjectIO
output_begrensningskurve: GdbFilePath | InjectIO
water_feature_buffer_width: int
water_barrier_buffer_width: int
work_file_manager_config: WorkFileConfig
class composition_configs.logic_config.LineToBufferSymbologyKwargs(input_line: composition_configs.type_defs.GdbFilePath | composition_configs.core_config.InjectIO, output_line: composition_configs.type_defs.GdbFilePath | composition_configs.core_config.InjectIO, sql_selection_query: dict, work_file_manager_config: composition_configs.core_config.WorkFileConfig, buffer_distance_factor: int | float = 1, buffer_distance_addition: int | float = 0)[source]

Bases: object

input_line: GdbFilePath | InjectIO
output_line: GdbFilePath | InjectIO
sql_selection_query: dict
work_file_manager_config: WorkFileConfig
buffer_distance_factor: int | float = 1
buffer_distance_addition: int | float = 0
class composition_configs.logic_config.BufferDisplacementKwargs(input_road_line: composition_configs.type_defs.GdbFilePath | composition_configs.core_config.InjectIO, input_building_points: composition_configs.type_defs.GdbFilePath | composition_configs.core_config.InjectIO, input_line_barriers: Dict[str, Any], output_building_points: composition_configs.type_defs.GdbFilePath | composition_configs.core_config.InjectIO, sql_selection_query: dict, building_symbol_dimension: Dict[int, Tuple[int, int]], displacement_distance_m: int, work_file_manager_config: composition_configs.core_config.WorkFileConfig)[source]

Bases: object

input_road_line: GdbFilePath | InjectIO
input_building_points: GdbFilePath | InjectIO
input_line_barriers: Dict[str, Any]
output_building_points: GdbFilePath | InjectIO
sql_selection_query: dict
building_symbol_dimension: Dict[int, Tuple[int, int]]
displacement_distance_m: int
work_file_manager_config: WorkFileConfig
class composition_configs.logic_config.ThinRoadNetworkKwargs(input_road_line: composition_configs.type_defs.GdbFilePath | composition_configs.core_config.InjectIO, output_road_line: composition_configs.type_defs.GdbFilePath | composition_configs.core_config.InjectIO, work_file_manager_config: composition_configs.core_config.WorkFileConfig, minimum_length: int, invisibility_field_name: str, hierarchy_field_name: str, special_selection_sql: str | None = None)[source]

Bases: object

input_road_line: GdbFilePath | InjectIO
output_road_line: GdbFilePath | InjectIO
work_file_manager_config: WorkFileConfig
minimum_length: int
invisibility_field_name: str
hierarchy_field_name: str
special_selection_sql: str | None = None
class composition_configs.logic_config.RemoveRoadTrianglesKwargs(input_line_feature: str, work_file_manager_config: composition_configs.core_config.WorkFileConfig, maximum_length: int, root_file: str, output_processed_feature: str, hierarchy_field: str = None, write_to_memory: bool = False, keep_work_files: bool = False)[source]

Bases: object

input_line_feature: str
work_file_manager_config: WorkFileConfig
maximum_length: int
root_file: str
output_processed_feature: str
hierarchy_field: str = None
write_to_memory: bool = False
keep_work_files: bool = False
class composition_configs.logic_config.CollapseRoadDetailsKwargs(input_road_line: composition_configs.type_defs.GdbFilePath | composition_configs.core_config.InjectIO, output_road_line: composition_configs.type_defs.GdbFilePath | composition_configs.core_config.InjectIO, merge_distnace_m: int, collapse_field_name: str | None = None)[source]

Bases: object

input_road_line: GdbFilePath | InjectIO
output_road_line: GdbFilePath | InjectIO
merge_distnace_m: int
collapse_field_name: str | None = None
class composition_configs.logic_config.RrcInitKwargs(input_data_structure: List[composition_configs.logic_config.SymbologyLayerSpec], work_file_manager_config: composition_configs.core_config.WorkFileConfig, primary_road_unique_name: str, output_road_feature: composition_configs.type_defs.GdbFilePath | composition_configs.core_config.InjectIO, output_displacement_feature: composition_configs.type_defs.GdbFilePath | composition_configs.core_config.InjectIO, map_scale: str = '100000', hierarchy_field: str = 'hierarchy')[source]

Bases: object

input_data_structure: List[SymbologyLayerSpec]
work_file_manager_config: WorkFileConfig
primary_road_unique_name: str
output_road_feature: GdbFilePath | InjectIO
output_displacement_feature: GdbFilePath | InjectIO
map_scale: str = '100000'
hierarchy_field: str = 'hierarchy'
class composition_configs.logic_config.DissolveInitKwargs(input_line_feature: GdbFilePath | InjectIO, output_processed_feature: GdbFilePath | InjectIO, work_file_manager_config: WorkFileConfig, dissolve_fields: List[str] | None = None, sql_expressions: List[str] | None = None)[source]

Bases: object

Configuration for DissolveWithIntersections.

input_line_feature: path or InjectIO to the input line feature output_processed_feature: path or InjectIO for the final merged intersections (or single) work_file_manager_config: WorkFileManager behavior (root_file, in-memory, keep_files) dissolve_fields: optional list of fields to dissolve on; if None -> dissolve all (single-part) sql_expressions: optional list of SQL where-clauses to split/segment, each produces its own FTL result

input_line_feature: GdbFilePath | InjectIO
output_processed_feature: GdbFilePath | InjectIO
work_file_manager_config: WorkFileConfig
dissolve_fields: List[str] | None = None
sql_expressions: List[str] | None = None

composition_configs.type_defs module

class composition_configs.type_defs.GdbFilePath[source]

Bases: str

Path to a feature class or table inside a .gdb.

class composition_configs.type_defs.GeneralFilePath[source]

Bases: str

Path to a feature class or table inside a .gdb.

class composition_configs.type_defs.LyrxFilePath[source]

Bases: str

Path to a .lyrx file.

class composition_configs.type_defs.SubdirectoryPath[source]

Bases: str

Absolute path to a directory we control (safe to delete/reset).

composition_configs.wrapper_config module

Module contents