-
-
Notifications
You must be signed in to change notification settings - Fork 1.7k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Fix input types #2344
Fix input types #2344
Conversation
Reviewer's Guide by SourceryThis pull request focuses on improving type safety and code clarity by updating type hints throughout the albumentations library. It introduces more specific type annotations using Updated class diagram for Perspective transformclassDiagram
class Perspective {
-border_mode (OpenCV flag)
-fill (tuple[float, ...] | float)
-fill_mask (tuple[float, ...] | float)
}
Updated class diagram for Affine transformclassDiagram
class Affine {
-scale: tuple[float, float] | float | dict[str, float | tuple[float, float]]
-translate_percent: tuple[float, float] | float | dict[str, float | tuple[float, float]] | None
-translate_px: tuple[float, float] | float | dict[str, float | tuple[float, float]] | None
-rotate: tuple[float, float] | float
-shear: tuple[float, float] | float | dict[str, float | tuple[float, float]]
-fill (tuple[float, ...] | float)
-fill_mask (tuple[float, ...] | float)
}
Updated class diagram for ShiftScaleRotate transformclassDiagram
class ShiftScaleRotate {
-fill (tuple[float, ...] | float)
-fill_mask (tuple[float, ...] | float)
-shift_limit_x: tuple[float, float] | float | None
-shift_limit_y: tuple[float, float] | float | None
}
Updated class diagram for PiecewiseAffine transformclassDiagram
class PiecewiseAffine {
-nb_rows: tuple[int, int] | int
-nb_cols: tuple[int, int] | int
}
Updated class diagram for D4 transformclassDiagram
class D4 {
-group_element: Literal["e", "r90", "r180", "r270", "v", "hvt", "h", "t"]
}
Updated class diagram for Pad transformclassDiagram
class Pad {
-fill (tuple[float, ...] | float)
-fill_mask (tuple[float, ...] | float)
}
Updated class diagram for PadIfNeeded transformclassDiagram
class PadIfNeeded {
-position: Literal["center", "top_left", "top_right", "bottom_left", "bottom_right", "random"]
-fill (tuple[float, ...] | float)
-fill_mask (tuple[float, ...] | float)
}
Updated class diagram for Normalize transformclassDiagram
class Normalize {
-mean (tuple[float, ...] | float | None)
-std (tuple[float, ...] | float | None)
}
Updated class diagram for Rain transformclassDiagram
class Rain {
-rain_type: Literal["drizzle", "heavy", "torrential", "default"]
}
Updated class diagram for HueSaturationValue transformclassDiagram
class HueSaturationValue {
-hue_shift_limit: tuple[float, float] | float
-sat_shift_limit: tuple[float, float] | float
-val_shift_limit: tuple[float, float] | float
}
Updated class diagram for RandomBrightnessContrast transformclassDiagram
class RandomBrightnessContrast {
-brightness_limit: tuple[float, float] | float
-contrast_limit: tuple[float, float] | float
}
Updated class diagram for CLAHE transformclassDiagram
class CLAHE {
-clip_limit: tuple[float, float] | float
}
Updated class diagram for RandomGamma transformclassDiagram
class RandomGamma {
-gamma_limit: tuple[float, float] | float
}
Updated class diagram for MultiplicativeNoise transformclassDiagram
class MultiplicativeNoise {
-multiplier: tuple[float, float] | float
}
Updated class diagram for ColorJitter transformclassDiagram
class ColorJitter {
-brightness: tuple[float, float] | float
-contrast: tuple[float, float] | float
-saturation: tuple[float, float] | float
-hue: tuple[float, float] | float
}
Updated class diagram for GridReplace transformclassDiagram
class GridReplace {
-p_replace: tuple[float, float] | float
-n_segments: tuple[int, int] | int
}
Updated class diagram for RingingOvershoot transformclassDiagram
class RingingOvershoot {
-blur_limit: tuple[int, int] | int
}
Updated class diagram for UnsharpMask transformclassDiagram
class UnsharpMask {
-blur_limit: tuple[int, int] | int
-alpha: tuple[float, float] | float
}
Updated class diagram for PixelDropout transformclassDiagram
class PixelDropout {
-drop_value: tuple[float, ...] | float | None
-mask_drop_value: tuple[float, ...] | float | None
}
Updated class diagram for GaussNoise transformclassDiagram
class GaussNoise {
-mean: tuple[float, float] | float
-std: tuple[float, float] | float
-gauss_sigma: tuple[float, float] | float
-cutout_threshold: tuple[float, float] | float
-intensity: tuple[float, float] | float
}
Updated class diagram for ChromaticAberration transformclassDiagram
class ChromaticAberration {
-primary_distortion_limit: tuple[float, float] | float
-secondary_distortion_limit: tuple[float, float] | float
-mode: Literal["green_purple", "red_blue", "random"]
}
Updated class diagram for Morphological transformclassDiagram
class Morphological {
-scale: tuple[int, int] | int
-operation: Literal["erosion", "dilation"]
}
Updated class diagram for RGBShift transformclassDiagram
class RGBShift {
-r_shift_limit: tuple[float, float] | float
-g_shift_limit: tuple[float, float] | float
-b_shift_limit: tuple[float, float] | float
}
Updated class diagram for Pad3D transformclassDiagram
class Pad3D {
-fill: tuple[float, ...] | float
-fill_mask: tuple[float, ...] | float
}
Updated class diagram for PadIfNeeded3D transformclassDiagram
class PadIfNeeded3D {
-fill: tuple[float, ...] | float
-fill_mask: tuple[float, ...] | float
}
Updated class diagram for CenterCrop3D transformclassDiagram
class CenterCrop3D {
-fill: tuple[float, ...] | float
-fill_mask: tuple[float, ...] | float
}
Updated class diagram for RandomCrop3D transformclassDiagram
class RandomCrop3D {
-fill: tuple[float, ...] | float
-fill_mask: tuple[float, ...] | float
}
Updated class diagram for CoarseDropout3D transformclassDiagram
class CoarseDropout3D {
-fill: tuple[float, ...] | float
-fill_mask: tuple[float, ...] | float | None
}
Updated class diagram for RandomCrop transformclassDiagram
class RandomCrop {
-fill: tuple[float, ...] | float
-fill_mask: tuple[float, ...] | float
}
Updated class diagram for CenterCrop transformclassDiagram
class CenterCrop {
-fill: tuple[float, ...] | float
-fill_mask: tuple[float, ...] | float
}
Updated class diagram for Crop transformclassDiagram
class Crop {
-fill: tuple[float, ...] | float
-fill_mask: tuple[float, ...] | float
}
Updated class diagram for CropAndPad transformclassDiagram
class CropAndPad {
-fill: tuple[float, ...] | float
-fill_mask: tuple[float, ...] | float
}
Updated class diagram for RandomScale transformclassDiagram
class RandomScale {
-scale_limit: tuple[float, float] | float
}
Updated class diagram for FDA transformclassDiagram
class FDA {
-beta_limit: tuple[float, float] | float
}
Updated class diagram for TemplateMatching transformclassDiagram
class TemplateMatching {
-img_weight: tuple[float, float] | float
}
Updated class diagram for CoarseDropout transformclassDiagram
class CoarseDropout {
-hole_height_range: tuple[float, float] | tuple[int, int]
-hole_width_range: tuple[float, float] | tuple[int, int]
-fill: tuple[float, ...] | float | Literal["random", "random_uniform", "inpaint_telea", "inpaint_ns"]
-fill_mask: tuple[float, ...] | float | None
}
Updated class diagram for Erasing transformclassDiagram
class Erasing {
-fill: tuple[float, ...] | float | Literal["random", "random_uniform", "inpaint_telea", "inpaint_ns"]
-fill_mask: tuple[float, ...] | float | None
}
Updated class diagram for ConstrainedCoarseDropout transformclassDiagram
class ConstrainedCoarseDropout {
-fill: tuple[float, ...] | float | Literal["random", "random_uniform", "inpaint_telea", "inpaint_ns"]
-fill_mask: tuple[float, ...] | float | None
}
Updated class diagram for MaskDropout transformclassDiagram
class MaskDropout {
-fill: float | Literal["inpaint_telea", "inpaint_ns"]
-fill_mask: float
}
Updated class diagram for XYMasking transformclassDiagram
class XYMasking {
-fill: tuple[float, ...] | float | Literal["random", "random_uniform", "inpaint_telea", "inpaint_ns"]
-fill_mask: tuple[float, ...] | float | None
}
Updated class diagram for GridDropout transformclassDiagram
class GridDropout {
-fill: tuple[float, ...] | float | Literal["random", "random_uniform", "inpaint_telea", "inpaint_ns"]
-fill_mask: tuple[float, ...] | float | None
}
Updated class diagram for Blur transformclassDiagram
class Blur {
-blur_limit: tuple[int, int] | int
}
Updated class diagram for Defocus transformclassDiagram
class Defocus {
-blur_limit: tuple[int, int] | int
}
Updated class diagram for MedianBlur transformclassDiagram
class MedianBlur {
-blur_limit: tuple[int, int] | int
}
Updated class diagram for GaussianBlur transformclassDiagram
class GaussianBlur {
-sigma_limit: tuple[float, float] | float
-blur_limit: tuple[int, int] | int
}
Updated class diagram for ZoomBlur transformclassDiagram
class ZoomBlur {
-blur_limit: tuple[int, int] | int
-sigma_x_limit: tuple[float, float] | float
-sigma_y_limit: tuple[float, float] | float
-rotate_limit: tuple[int, int] | int
-beta_limit: tuple[float, float] | float
-noise_limit: tuple[float, float] | float
}
Updated class diagram for RicianNoise transformclassDiagram
class RicianNoise {
-radius: tuple[int, int] | int
-alias_blur: tuple[float, float] | float
}
Updated class diagram for MotionBlur transformclassDiagram
class MotionBlur {
-max_factor: tuple[float, float] | float
-step_factor: tuple[float, float] | float
}
Updated class diagram for Rotate transformclassDiagram
class Rotate {
-limit: tuple[float, float] | float
-fill: tuple[float, ...] | float
-fill_mask: tuple[float, ...] | float | None
}
Updated class diagram for SafeRotate transformclassDiagram
class SafeRotate {
-limit: tuple[float, float] | float
-fill: tuple[float, ...] | float
-fill_mask: tuple[float, ...] | float
}
Updated class diagram for TextImage transformclassDiagram
class TextImage {
-fraction_range: tuple[float, float]
-font_size_fraction_range: tuple[float, float]
-font_color: list[tuple[float, ...] | float | str] | tuple[float, ...] | float | str
}
File-Level Changes
Tips and commandsInteracting with Sourcery
Customizing Your ExperienceAccess your dashboard to:
Getting Help
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Hey @ternaus - I've reviewed your changes - here's some feedback:
Overall Comments:
- Consider adding a changelog entry to document the changes to the input types.
- It looks like you've replaced
ColorType
withtuple[float, ...] | float
in many places, which is good, but you might want to double-check that you've covered all instances whereColorType
was used.
Here's what I looked at during the review
- 🟡 General issues: 2 issues found
- 🟢 Security: all looks good
- 🟡 Testing: 1 issue found
- 🟡 Complexity: 2 issues found
- 🟢 Documentation: all looks good
Help me be more useful! Please click 👍 or 👎 on each comment and I'll use the feedback to improve your reviews.
Summary by Sourcery
Refine type hints across various augmentations, functions, and schemas for enhanced type safety and clarity. Update tests accordingly to maintain type consistency.
Bug Fixes:
fill
,fill_mask
,scale
,translate_percent
,translate_px
,rotate
,shear
,shift_limit
,shift_limit_x
,shift_limit_y
,scale_limit
,rotate_limit
,nb_rows
,nb_cols
,mean
,std
,p_replace
,n_segments
,distort_limit
,multiplier
,brightness
,contrast
,saturation
,hue
,gamma_limit
,r_shift_limit
,g_shift_limit
,b_shift_limit
,max_part_shift
,clip_limit
,quality_range
,img_weight
,beta_limit
,radius
,alias_blur
,max_factor
,step_factor
,scale_limit
,padding
,rain_type
,drop_color
,blur_value
,brightness_coefficient
,hue_shift_limit
,sat_shift_limit
,val_shift_limit
,brightness_limit
,contrast_limit
,position
,font_color
,operation
,group_element
across multiple augmentations and schemas.Perspective
,Affine
,ShiftScaleRotate
,PiecewiseAffine
,Pad
,PadIfNeeded
,Normalize
,RandomRain
,RandomCropFromBorders
,CLAHE
,RandomBrightnessContrast
,ImageCompression
,ColorJitter
,TemplateTransform
,RingingOvershoot
,UnsharpMask
,PixelDropout
,AdvancedBlur
,RandomFog
,ChromaticAberration
,Morphological
,ChannelShuffle
,Pad3D
,PadIfNeeded3D
,CenterCrop3D
,RandomCrop3D
,CoarseDropout3D
,BaseCropAndPad
,RandomCrop
,CenterCrop
,Crop
,CropAndPad
,RandomScale
,FDA
,SafeRotate
,Rotate
,TextImage
,Erasing
,CoarseDropout
,ConstrainedCoarseDropout
,Blur
,MotionBlur
,MedianBlur
,GaussianBlur
,GlassBlur
,ZoomBlur
,MaskDropout
,GridDropout
,XYMasking
classes and their respective schemas.d4
,bboxes_d4
,keypoints_d4
,warp_affine_with_value_extension
,warp_affine
,keypoints_affine
,create_affine_transformation_matrix
,pad
,extend_value
,copy_make_border_with_value_extension
,pad_with_params
,remap
,validate_rotate_method
,is_rgb_image
,is_grayscale_image
,is_multispectral_image
,_maybe_process_in_chunks
,clip
,clip_image
,clip_bboxes_v2
,get_random_crop_coords
,random_crop
,center_crop
,crop_bbox_by_coords
,bbox_rot90
,keypoint_rot90
,try_add_depth
,adjust_rotation_matrix
,safe_rotate
,keypoints_rotation_matrix
,affine
,adjust_keypoint_by_scale
,flip_keypoints
,from_distance_maps
,get_num_channels
,get_center_crop_coords
,get_random_crop_coords3d
,center_crop3d
,random_crop3d
,generate_holes
,cutout3d
,generate_binary_mask
,get_multichannel_color
,cutout
,generate_gaussian_noise_xy
,generate_grid_dropout_mask
,grid_dropout
,channel_dropout
,random_shadow
functions to ensure accurate type information and prevent potential runtime errors.