knitout_interpreter.knitout_execution_structures.Carriage_Pass module
Module containing the Carriage Pass class.
- class knitout_interpreter.knitout_execution_structures.Carriage_Pass.Carriage_Pass(first_instruction, rack, all_needle_rack)[source]
Bases:
object
Manages knitout operations that are organized in a single carriage pass.
- instruction_set()[source]
Get an unordered set of the instructions in the carriage pass.
- Returns:
An unordered set of the instructions in the carriage pass.
- Return type:
- rightward_sorted_needles()[source]
Get needles sorted from left to right.
- Returns:
List of needles in the carriage pass sorted from left to right.
- Return type:
list[Needle]
- leftward_sorted_needles()[source]
Get needles sorted from right to left.
- Returns:
List of needles in the carriage pass sorted from right to left.
- Return type:
list[Needle]
- sorted_needles()[source]
Get needles sorted by carriage pass direction.
- Returns:
List of needles in carriage pass sorted by direction of carriage pass or from left to right if no direction is given.
- Return type:
list[Needle]
- instructions_by_needles(needles)[source]
Get instructions ordered by the given needle list.
- Parameters:
needles (list[Needle]) – Ordered list of needles involved in the carriage pass.
- Returns:
The ordered set of instructions that start from the given needles.
- Return type:
- carriage_pass_range()[source]
Get the leftmost and rightmost needle positions in the carriage pass.
- rack_instruction(comment='Racking for next carriage pass.')[source]
Create a racking instruction to set up this carriage pass.
- Parameters:
comment (str) – Comment to include with the racking instruction.
- Returns:
Racking instruction to set up this carriage pass.
- Return type:
- property direction: Carriage_Pass_Direction | None
Get or set the direction of the carriage pass.
Setting the direction will reorder the instructions to the given direction. Should only be used to reorder Xfer Passes.
- Returns:
The direction of the carriage pass.
- property needles: list[Needle]
Get needles in the order given by instruction set.
- Returns:
Needles in order given by instruction set.
- property first_instruction: Needle_Instruction
Get the first instruction given to carriage pass.
- Returns:
First instruction given to carriage pass.
- property last_instruction: Needle_Instruction
Get the last instruction executed in the carriage pass.
- Returns:
Last instruction executed in the given carriage pass.
- property last_needle: Needle
Get the needle at the end of the ordered instructions.
- Returns:
Needle at the end of the ordered instructions.
- contains_instruction_type(instruction_type)[source]
Check if the carriage pass contains a specific instruction type.
- Parameters:
instruction_type (Knitout_Instruction_Type) – Instruction type to consider.
- Returns:
True if the instruction type is used at least once in this carriage pass.
- Return type:
- add_instruction(instruction, rack, all_needle_rack)[source]
Attempt to add an instruction to the carriage pass.
- Parameters:
instruction (Needle_Instruction) – The instruction to attempt to add to the carriage pass.
rack (int) – The required racking of this instruction.
all_needle_rack (bool) – The all_needle racking requirement for this instruction.
- Returns:
True if instruction was added to pass. Otherwise, False implies that the instruction cannot be added to this carriage pass.
- Return type:
- compatible_with_pass_type(instruction)[source]
Check if an instruction is compatible with this type of carriage pass.
- Parameters:
instruction (Needle_Instruction) – The instruction to consider compatibility with.
- Returns:
True if instruction is compatible with this type of carriage pass.
- Return type:
- can_add_instruction(instruction, rack, all_needle_rack)[source]
Check if an instruction can be added to this carriage pass.
- Parameters:
instruction (Needle_Instruction) – The instruction to consider adding to the carriage pass.
rack (int) – The required racking of this instruction.
all_needle_rack (bool) – The all_needle racking requirement for this instruction.
- Returns:
True if the instruction can be added to this carriage pass. Otherwise, False.
- Return type:
- can_merge_pass(next_carriage_pass)[source]
Check if this carriage pass can be merged with the next one.
- Parameters:
next_carriage_pass (Carriage_Pass) – A carriage pass that happens immediately after this carriage pass.
- Returns:
True if these can be merged into one carriage pass.
- Return type:
- merge_carriage_pass(next_carriage_pass, check_compatibility=False)[source]
Merge the next carriage pass into this carriage pass.
- Parameters:
next_carriage_pass (Carriage_Pass) – A carriage pass that happens immediately after this carriage pass.
check_compatibility (bool) – If true, checks compatibility before merging.
- Returns:
True if the merge was successful.
- Return type:
- execute(knitting_machine)[source]
Execute carriage pass with an implied racking operation on the given knitting machine.
Will default to ordering xfers in a rightward ascending direction.
- Parameters:
knitting_machine (Knitting_Machine) – The knitting machine to execute the carriage pass on.
- Returns:
A list of executed instructions from the carriage pass.
- Return type:
- __str__()[source]
Return string representation of the carriage pass.
- Returns:
String representation showing direction, instruction types, and details.
- Return type:
- __list__()[source]
Convert carriage pass to list of knitout lines.
- Returns:
List of knitout lines from this carriage pass.
- Return type:
- __len__()[source]
Get the number of instructions in the carriage pass.
- Returns:
Number of instructions in the carriage pass.
- Return type:
- __repr__()[source]
Return detailed representation of the carriage pass.
- Returns:
String representation of the internal instructions list.
- Return type:
- __iter__()[source]
Iterate over the instructions in the carriage pass.
- Returns:
Iterator over the instructions.
- Return type: