numdaplot 0.1.0__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- numdaplot/__init__.py +506 -0
- numdaplot/arrays/__init__.py +5 -0
- numdaplot/arrays/array.py +92 -0
- numdaplot/arrays/array_arithmetic.py +404 -0
- numdaplot/arrays/array_calculation.py +143 -0
- numdaplot/arrays/array_conversion.py +150 -0
- numdaplot/arrays/array_creation.py +371 -0
- numdaplot/arrays/array_data.py +281 -0
- numdaplot/arrays/array_layout.py +179 -0
- numdaplot/arrays/array_logic.py +227 -0
- numdaplot/arrays/array_reflected_arithmetic.py +334 -0
- numdaplot/arrays/array_refusals.py +339 -0
- numdaplot/arrays/array_selection.py +195 -0
- numdaplot/arrays/array_sorting.py +59 -0
- numdaplot/arrays/axis_number.py +58 -0
- numdaplot/arrays/calculation/__init__.py +5 -0
- numdaplot/arrays/calculation/counting_statistics.py +325 -0
- numdaplot/arrays/calculation/location_statistics.py +268 -0
- numdaplot/arrays/calculation/math_function_values.py +183 -0
- numdaplot/arrays/calculation/statistic_values.py +209 -0
- numdaplot/arrays/calculation/time_function_values.py +419 -0
- numdaplot/arrays/conversion/__init__.py +5 -0
- numdaplot/arrays/conversion/array_text.py +62 -0
- numdaplot/arrays/conversion/equality_check.py +72 -0
- numdaplot/arrays/conversion/python_values.py +70 -0
- numdaplot/arrays/conversion/time_text.py +290 -0
- numdaplot/arrays/creation/__init__.py +5 -0
- numdaplot/arrays/creation/date_parts.py +89 -0
- numdaplot/arrays/creation/date_parts_values.py +437 -0
- numdaplot/arrays/creation/distribution.py +54 -0
- numdaplot/arrays/creation/filled_values.py +58 -0
- numdaplot/arrays/creation/list_conversion.py +311 -0
- numdaplot/arrays/creation/list_shape.py +97 -0
- numdaplot/arrays/creation/normal.py +65 -0
- numdaplot/arrays/creation/numpy_conversion.py +149 -0
- numdaplot/arrays/creation/random_integers.py +104 -0
- numdaplot/arrays/creation/random_values.py +97 -0
- numdaplot/arrays/creation/range_values.py +73 -0
- numdaplot/arrays/creation/spacing.py +84 -0
- numdaplot/arrays/creation/spacing_values.py +63 -0
- numdaplot/arrays/creation/uniform.py +63 -0
- numdaplot/arrays/equality.py +68 -0
- numdaplot/arrays/layout/__init__.py +5 -0
- numdaplot/arrays/layout/sorting_values.py +113 -0
- numdaplot/arrays/layout/unique_values.py +49 -0
- numdaplot/arrays/mapping/__init__.py +5 -0
- numdaplot/arrays/mapping/mapped_values.py +286 -0
- numdaplot/arrays/mapping/unmatched.py +50 -0
- numdaplot/arrays/mapping/value_change.py +55 -0
- numdaplot/arrays/mapping/value_mapping.py +161 -0
- numdaplot/arrays/math_functions/__init__.py +5 -0
- numdaplot/arrays/math_functions/absolute.py +27 -0
- numdaplot/arrays/math_functions/cosine.py +28 -0
- numdaplot/arrays/math_functions/exponential.py +27 -0
- numdaplot/arrays/math_functions/logarithm.py +72 -0
- numdaplot/arrays/math_functions/math_function.py +58 -0
- numdaplot/arrays/math_functions/round.py +58 -0
- numdaplot/arrays/math_functions/sine.py +28 -0
- numdaplot/arrays/math_functions/square_root.py +27 -0
- numdaplot/arrays/operations/__init__.py +5 -0
- numdaplot/arrays/operations/boolean_operands.py +48 -0
- numdaplot/arrays/operations/combination.py +157 -0
- numdaplot/arrays/operations/float_errors.py +170 -0
- numdaplot/arrays/operations/integer_bounds.py +175 -0
- numdaplot/arrays/operations/integer_rules.py +397 -0
- numdaplot/arrays/operations/operand.py +139 -0
- numdaplot/arrays/operations/time_arithmetic.py +479 -0
- numdaplot/arrays/operations/time_bounds.py +286 -0
- numdaplot/arrays/operations/time_result_bounds.py +397 -0
- numdaplot/arrays/operations/transformation.py +54 -0
- numdaplot/arrays/operations/type_requirements.py +94 -0
- numdaplot/arrays/replacement.py +66 -0
- numdaplot/arrays/selection/__init__.py +5 -0
- numdaplot/arrays/selection/comparison_masks.py +131 -0
- numdaplot/arrays/selection/membership_masks.py +118 -0
- numdaplot/arrays/selection/missing_mask.py +50 -0
- numdaplot/arrays/selection/region_index.py +178 -0
- numdaplot/arrays/selection/replaced_values.py +120 -0
- numdaplot/arrays/selection/rule_mask.py +83 -0
- numdaplot/arrays/selection/time_reference.py +172 -0
- numdaplot/arrays/shape.py +74 -0
- numdaplot/arrays/type_match.py +51 -0
- numdaplot/data_types/__init__.py +5 -0
- numdaplot/data_types/library.py +57 -0
- numdaplot/data_types/numpy_mapping.py +207 -0
- numdaplot/data_types/pandas_mapping.py +114 -0
- numdaplot/data_types/time_of_day.py +292 -0
- numdaplot/data_types/type.py +224 -0
- numdaplot/data_types/value_family.py +149 -0
- numdaplot/data_types/value_type.py +147 -0
- numdaplot/dates/__init__.py +5 -0
- numdaplot/dates/custom_date_format.py +83 -0
- numdaplot/dates/date_format.py +120 -0
- numdaplot/dates/date_part.py +59 -0
- numdaplot/dates/date_part_unit.py +153 -0
- numdaplot/dates/date_period.py +57 -0
- numdaplot/dates/duration_in.py +58 -0
- numdaplot/dates/duration_unit.py +90 -0
- numdaplot/dates/period_unit.py +101 -0
- numdaplot/dates/time_function.py +56 -0
- numdaplot/dates/time_zone.py +68 -0
- numdaplot/dates/time_zone_change.py +71 -0
- numdaplot/dates/time_zone_mode.py +81 -0
- numdaplot/dates/to_duration.py +58 -0
- numdaplot/errors/__init__.py +7 -0
- numdaplot/errors/broadcast_warning.py +36 -0
- numdaplot/errors/calculation_warning.py +35 -0
- numdaplot/errors/cell_out_of_range_error.py +77 -0
- numdaplot/errors/column_not_found_error.py +64 -0
- numdaplot/errors/conflicting_settings_error.py +60 -0
- numdaplot/errors/dimension_error.py +62 -0
- numdaplot/errors/display_warning.py +32 -0
- numdaplot/errors/duplicate_column_error.py +82 -0
- numdaplot/errors/duplicate_label_error.py +55 -0
- numdaplot/errors/duplicate_statistic_error.py +55 -0
- numdaplot/errors/duplicate_value_error.py +54 -0
- numdaplot/errors/empty_array_error.py +55 -0
- numdaplot/errors/empty_list_error.py +52 -0
- numdaplot/errors/empty_region_error.py +34 -0
- numdaplot/errors/empty_text_error.py +34 -0
- numdaplot/errors/empty_total_error.py +62 -0
- numdaplot/errors/empty_values_error.py +34 -0
- numdaplot/errors/file_access_error.py +70 -0
- numdaplot/errors/file_exists_error.py +62 -0
- numdaplot/errors/file_not_found_error.py +56 -0
- numdaplot/errors/incompatible_charts_error.py +80 -0
- numdaplot/errors/incompatible_types_error.py +104 -0
- numdaplot/errors/integer_overflow_error.py +61 -0
- numdaplot/errors/invalid_base_error.py +52 -0
- numdaplot/errors/invalid_bin_width_error.py +66 -0
- numdaplot/errors/invalid_bounds_error.py +58 -0
- numdaplot/errors/invalid_chart_data_error.py +81 -0
- numdaplot/errors/invalid_color_count_error.py +63 -0
- numdaplot/errors/invalid_color_error.py +51 -0
- numdaplot/errors/invalid_column_name_error.py +52 -0
- numdaplot/errors/invalid_conversion_error.py +119 -0
- numdaplot/errors/invalid_count_error.py +61 -0
- numdaplot/errors/invalid_date_format_error.py +51 -0
- numdaplot/errors/invalid_deviation_error.py +52 -0
- numdaplot/errors/invalid_fraction_error.py +51 -0
- numdaplot/errors/invalid_label_count_error.py +61 -0
- numdaplot/errors/invalid_limits_error.py +111 -0
- numdaplot/errors/invalid_opacity_error.py +52 -0
- numdaplot/errors/invalid_point_size_error.py +52 -0
- numdaplot/errors/invalid_position_error.py +106 -0
- numdaplot/errors/invalid_resolution_error.py +51 -0
- numdaplot/errors/invalid_rotation_error.py +53 -0
- numdaplot/errors/invalid_seed_error.py +53 -0
- numdaplot/errors/invalid_separator_error.py +52 -0
- numdaplot/errors/invalid_shape_error.py +52 -0
- numdaplot/errors/invalid_sheet_name_error.py +54 -0
- numdaplot/errors/invalid_size_error.py +58 -0
- numdaplot/errors/invalid_step_error.py +77 -0
- numdaplot/errors/invalid_suffixes_error.py +61 -0
- numdaplot/errors/invalid_time_zone_change_error.py +63 -0
- numdaplot/errors/invalid_type_error.py +79 -0
- numdaplot/errors/irregular_list_error.py +36 -0
- numdaplot/errors/join_relation_error.py +183 -0
- numdaplot/errors/missing_dependency_error.py +58 -0
- numdaplot/errors/missing_type_error.py +36 -0
- numdaplot/errors/missing_value_error.py +62 -0
- numdaplot/errors/not_single_value_error.py +53 -0
- numdaplot/errors/numdaplot_error.py +25 -0
- numdaplot/errors/numdaplot_warning.py +34 -0
- numdaplot/errors/occupied_cell_error.py +63 -0
- numdaplot/errors/out_of_domain_error.py +70 -0
- numdaplot/errors/readability_warning.py +35 -0
- numdaplot/errors/refused_operation_error.py +64 -0
- numdaplot/errors/refused_setting_error.py +60 -0
- numdaplot/errors/rejected_dates.py +60 -0
- numdaplot/errors/repeated_key.py +36 -0
- numdaplot/errors/shape_mismatch_error.py +67 -0
- numdaplot/errors/time_overflow_error.py +131 -0
- numdaplot/errors/time_zone_mismatch_error.py +83 -0
- numdaplot/errors/unknown_time_zone_error.py +51 -0
- numdaplot/errors/unmatched_value_error.py +81 -0
- numdaplot/errors/unsupported_image_format_error.py +56 -0
- numdaplot/errors/unsupported_index_error.py +38 -0
- numdaplot/errors/unsupported_missing_error.py +129 -0
- numdaplot/errors/unsupported_type_error.py +62 -0
- numdaplot/errors/value_conversion_error.py +215 -0
- numdaplot/ordering/__init__.py +5 -0
- numdaplot/ordering/missing_position.py +46 -0
- numdaplot/ordering/order.py +46 -0
- numdaplot/package_version.py +36 -0
- numdaplot/plots/__init__.py +5 -0
- numdaplot/plots/chart_layer.py +47 -0
- numdaplot/plots/charts/__init__.py +5 -0
- numdaplot/plots/charts/bar_chart.py +98 -0
- numdaplot/plots/charts/bar_layout.py +58 -0
- numdaplot/plots/charts/bin_count.py +61 -0
- numdaplot/plots/charts/bin_width.py +78 -0
- numdaplot/plots/charts/box_chart.py +97 -0
- numdaplot/plots/charts/cell_values.py +61 -0
- numdaplot/plots/charts/chart.py +59 -0
- numdaplot/plots/charts/chart_settings.py +105 -0
- numdaplot/plots/charts/color_scale.py +147 -0
- numdaplot/plots/charts/heatmap_chart.py +92 -0
- numdaplot/plots/charts/histogram_chart.py +93 -0
- numdaplot/plots/charts/line_chart.py +100 -0
- numdaplot/plots/charts/line_type.py +75 -0
- numdaplot/plots/charts/marker_shape.py +113 -0
- numdaplot/plots/charts/missing_chart.py +60 -0
- numdaplot/plots/charts/missing_map_chart.py +27 -0
- numdaplot/plots/charts/orientation.py +58 -0
- numdaplot/plots/charts/outliers.py +49 -0
- numdaplot/plots/charts/percentages.py +55 -0
- numdaplot/plots/charts/pie_chart.py +87 -0
- numdaplot/plots/charts/scatter_chart.py +159 -0
- numdaplot/plots/charts/value_axis.py +66 -0
- numdaplot/plots/data/__init__.py +5 -0
- numdaplot/plots/data/array_values.py +128 -0
- numdaplot/plots/data/chart_data.py +143 -0
- numdaplot/plots/data/chart_values.py +109 -0
- numdaplot/plots/data/column_reading.py +468 -0
- numdaplot/plots/data/heatmap_values.py +63 -0
- numdaplot/plots/data/missing_cells.py +165 -0
- numdaplot/plots/data/pie_values.py +215 -0
- numdaplot/plots/data/point_values.py +249 -0
- numdaplot/plots/data/position_kind.py +83 -0
- numdaplot/plots/data/renamed_layers.py +340 -0
- numdaplot/plots/data/sample_values.py +160 -0
- numdaplot/plots/data/shown_columns.py +248 -0
- numdaplot/plots/data/table_values.py +256 -0
- numdaplot/plots/data/unique_labels.py +45 -0
- numdaplot/plots/drawing/__init__.py +5 -0
- numdaplot/plots/drawing/bar_drawing.py +316 -0
- numdaplot/plots/drawing/box_drawing.py +344 -0
- numdaplot/plots/drawing/cell_merging.py +237 -0
- numdaplot/plots/drawing/chart_texts.py +124 -0
- numdaplot/plots/drawing/color_bar.py +57 -0
- numdaplot/plots/drawing/color_scale_values.py +120 -0
- numdaplot/plots/drawing/default_labels.py +41 -0
- numdaplot/plots/drawing/drawn_chart.py +50 -0
- numdaplot/plots/drawing/grid_axes.py +75 -0
- numdaplot/plots/drawing/heatmap_drawing.py +313 -0
- numdaplot/plots/drawing/histogram_drawing.py +350 -0
- numdaplot/plots/drawing/label_room.py +344 -0
- numdaplot/plots/drawing/label_thinning.py +216 -0
- numdaplot/plots/drawing/layer_alignment.py +319 -0
- numdaplot/plots/drawing/layer_colors.py +123 -0
- numdaplot/plots/drawing/line_drawing.py +85 -0
- numdaplot/plots/drawing/marker_codes.py +20 -0
- numdaplot/plots/drawing/missing_drawing.py +360 -0
- numdaplot/plots/drawing/moment_period_formatter.py +253 -0
- numdaplot/plots/drawing/pie_drawing.py +185 -0
- numdaplot/plots/drawing/plot_axes.py +38 -0
- numdaplot/plots/drawing/plot_drawing.py +288 -0
- numdaplot/plots/drawing/plot_theme.py +45 -0
- numdaplot/plots/drawing/position_axis.py +278 -0
- numdaplot/plots/drawing/scatter_drawing.py +364 -0
- numdaplot/plots/drawing/series_colors.py +177 -0
- numdaplot/plots/drawing/size_inches.py +45 -0
- numdaplot/plots/drawing/style_drawing.py +410 -0
- numdaplot/plots/drawing/text_contrast.py +44 -0
- numdaplot/plots/drawing/tick_rotation.py +354 -0
- numdaplot/plots/drawing/time_axis.py +212 -0
- numdaplot/plots/drawing/whole_numbers.py +72 -0
- numdaplot/plots/figure/__init__.py +5 -0
- numdaplot/plots/figure/cell.py +95 -0
- numdaplot/plots/figure/figure.py +256 -0
- numdaplot/plots/figure/figure_drawing.py +99 -0
- numdaplot/plots/figure/figure_style.py +60 -0
- numdaplot/plots/figure/layout.py +71 -0
- numdaplot/plots/figure/placement.py +150 -0
- numdaplot/plots/layer_reading.py +166 -0
- numdaplot/plots/output/__init__.py +5 -0
- numdaplot/plots/output/image_saving.py +187 -0
- numdaplot/plots/output/plot_display.py +181 -0
- numdaplot/plots/output/shown_object.py +45 -0
- numdaplot/plots/overlay_checks.py +245 -0
- numdaplot/plots/plot.py +31 -0
- numdaplot/plots/plot_data.py +140 -0
- numdaplot/plots/plot_distribution_creation.py +237 -0
- numdaplot/plots/plot_output.py +124 -0
- numdaplot/plots/plot_overlays.py +273 -0
- numdaplot/plots/plot_overview_creation.py +195 -0
- numdaplot/plots/plot_series_creation.py +213 -0
- numdaplot/plots/style/__init__.py +5 -0
- numdaplot/plots/style/axis_settings.py +60 -0
- numdaplot/plots/style/color.py +168 -0
- numdaplot/plots/style/custom_color.py +65 -0
- numdaplot/plots/style/grid_lines.py +49 -0
- numdaplot/plots/style/image_options.py +71 -0
- numdaplot/plots/style/legend_position.py +149 -0
- numdaplot/plots/style/plot_style.py +136 -0
- numdaplot/plots/style/size.py +70 -0
- numdaplot/plots/style/size_unit.py +62 -0
- numdaplot/positions/__init__.py +5 -0
- numdaplot/positions/axis.py +54 -0
- numdaplot/positions/index.py +51 -0
- numdaplot/positions/range.py +90 -0
- numdaplot/positions/region.py +92 -0
- numdaplot/py.typed +0 -0
- numdaplot/ratios/__init__.py +5 -0
- numdaplot/ratios/fraction.py +40 -0
- numdaplot/ratios/measure.py +48 -0
- numdaplot/rules/__init__.py +5 -0
- numdaplot/rules/between.py +78 -0
- numdaplot/rules/bounds.py +83 -0
- numdaplot/rules/case.py +48 -0
- numdaplot/rules/contains.py +63 -0
- numdaplot/rules/equal.py +43 -0
- numdaplot/rules/greater.py +39 -0
- numdaplot/rules/greater_or_equal.py +38 -0
- numdaplot/rules/is_in.py +67 -0
- numdaplot/rules/is_missing.py +25 -0
- numdaplot/rules/is_present.py +25 -0
- numdaplot/rules/less.py +39 -0
- numdaplot/rules/less_or_equal.py +38 -0
- numdaplot/rules/not_equal.py +45 -0
- numdaplot/rules/rule.py +62 -0
- numdaplot/rules/rule_values.py +44 -0
- numdaplot/rules/value_rule.py +110 -0
- numdaplot/settings/__init__.py +5 -0
- numdaplot/settings/argument_types.py +327 -0
- numdaplot/settings/field_types.py +593 -0
- numdaplot/statistics/__init__.py +5 -0
- numdaplot/statistics/count.py +71 -0
- numdaplot/statistics/count_distinct.py +27 -0
- numdaplot/statistics/counted_missing.py +46 -0
- numdaplot/statistics/maximum.py +27 -0
- numdaplot/statistics/mean.py +27 -0
- numdaplot/statistics/median.py +27 -0
- numdaplot/statistics/minimum.py +27 -0
- numdaplot/statistics/most_frequent.py +27 -0
- numdaplot/statistics/most_frequent_count.py +27 -0
- numdaplot/statistics/quantile.py +61 -0
- numdaplot/statistics/standard_deviation.py +29 -0
- numdaplot/statistics/statistic.py +63 -0
- numdaplot/statistics/sum.py +27 -0
- numdaplot/tables/__init__.py +5 -0
- numdaplot/tables/aggregation/__init__.py +5 -0
- numdaplot/tables/aggregation/aggregated_frame.py +189 -0
- numdaplot/tables/aggregation/aggregation.py +97 -0
- numdaplot/tables/aggregation/calculation.py +123 -0
- numdaplot/tables/aggregation/result_column.py +108 -0
- numdaplot/tables/aggregation/row_groups.py +96 -0
- numdaplot/tables/aggregation/statistic_name.py +122 -0
- numdaplot/tables/columns/__init__.py +5 -0
- numdaplot/tables/columns/added_column.py +89 -0
- numdaplot/tables/columns/boolean_conversion.py +144 -0
- numdaplot/tables/columns/boolean_rule.py +59 -0
- numdaplot/tables/columns/bracket_end.py +50 -0
- numdaplot/tables/columns/bracket_names.py +346 -0
- numdaplot/tables/columns/bracketed_column.py +179 -0
- numdaplot/tables/columns/brackets.py +234 -0
- numdaplot/tables/columns/chosen_columns.py +55 -0
- numdaplot/tables/columns/column_choice.py +84 -0
- numdaplot/tables/columns/column_mode.py +64 -0
- numdaplot/tables/columns/column_names.py +186 -0
- numdaplot/tables/columns/conversion.py +103 -0
- numdaplot/tables/columns/converted_column.py +669 -0
- numdaplot/tables/columns/date_conversion.py +526 -0
- numdaplot/tables/columns/date_range.py +135 -0
- numdaplot/tables/columns/name_change.py +67 -0
- numdaplot/tables/columns/new_column.py +79 -0
- numdaplot/tables/columns/number_conversion.py +281 -0
- numdaplot/tables/columns/renamed_columns.py +60 -0
- numdaplot/tables/columns/renaming.py +81 -0
- numdaplot/tables/columns/text_conversion.py +70 -0
- numdaplot/tables/columns/time_conversion.py +313 -0
- numdaplot/tables/columns/time_zone_conversion.py +128 -0
- numdaplot/tables/conflict.py +68 -0
- numdaplot/tables/description/__init__.py +5 -0
- numdaplot/tables/description/described_frame.py +335 -0
- numdaplot/tables/description/description.py +155 -0
- numdaplot/tables/duplicates/__init__.py +5 -0
- numdaplot/tables/duplicates/deduplicated_frame.py +66 -0
- numdaplot/tables/duplicates/deduplication.py +88 -0
- numdaplot/tables/duplicates/keep.py +81 -0
- numdaplot/tables/files/__init__.py +5 -0
- numdaplot/tables/files/column_names.py +60 -0
- numdaplot/tables/files/csv_file.py +265 -0
- numdaplot/tables/files/csv_read_options.py +89 -0
- numdaplot/tables/files/csv_separator.py +41 -0
- numdaplot/tables/files/csv_write_options.py +79 -0
- numdaplot/tables/files/decimal_count.py +42 -0
- numdaplot/tables/files/encoding.py +82 -0
- numdaplot/tables/files/excel_file.py +171 -0
- numdaplot/tables/files/excel_read_options.py +79 -0
- numdaplot/tables/files/excel_sheet.py +50 -0
- numdaplot/tables/files/excel_time_cells.py +146 -0
- numdaplot/tables/files/excel_write_options.py +63 -0
- numdaplot/tables/files/file_access.py +152 -0
- numdaplot/tables/files/file_paths.py +106 -0
- numdaplot/tables/files/json_decimals.py +387 -0
- numdaplot/tables/files/json_file.py +203 -0
- numdaplot/tables/files/json_layout.py +63 -0
- numdaplot/tables/files/json_read_options.py +64 -0
- numdaplot/tables/files/json_write_options.py +71 -0
- numdaplot/tables/files/missing_texts.py +63 -0
- numdaplot/tables/files/optional_package.py +42 -0
- numdaplot/tables/files/pandas_backend.py +11 -0
- numdaplot/tables/files/parquet_file.py +91 -0
- numdaplot/tables/files/parquet_read_options.py +56 -0
- numdaplot/tables/files/sas_file.py +94 -0
- numdaplot/tables/files/sas_read_options.py +67 -0
- numdaplot/tables/files/stata_file.py +83 -0
- numdaplot/tables/files/stata_read_options.py +56 -0
- numdaplot/tables/files/xpt_read_options.py +65 -0
- numdaplot/tables/filtering/__init__.py +5 -0
- numdaplot/tables/filtering/checked_frame.py +60 -0
- numdaplot/tables/filtering/column_mask.py +71 -0
- numdaplot/tables/filtering/column_match.py +62 -0
- numdaplot/tables/filtering/condition.py +94 -0
- numdaplot/tables/filtering/filter.py +74 -0
- numdaplot/tables/filtering/filter_mode.py +67 -0
- numdaplot/tables/filtering/row_mask.py +152 -0
- numdaplot/tables/filtering/rule_moments.py +164 -0
- numdaplot/tables/frames/__init__.py +5 -0
- numdaplot/tables/frames/array_frame.py +95 -0
- numdaplot/tables/frames/cleaned_names.py +132 -0
- numdaplot/tables/frames/column.py +15 -0
- numdaplot/tables/frames/column_values.py +273 -0
- numdaplot/tables/frames/frame_equality.py +130 -0
- numdaplot/tables/frames/frame_normalization.py +459 -0
- numdaplot/tables/frames/named_column_errors.py +85 -0
- numdaplot/tables/frames/pandas_decimals.py +113 -0
- numdaplot/tables/frames/region_positions.py +113 -0
- numdaplot/tables/frames/table_text.py +222 -0
- numdaplot/tables/frames/time_columns.py +345 -0
- numdaplot/tables/frames/time_range_errors.py +117 -0
- numdaplot/tables/frames/time_zones.py +271 -0
- numdaplot/tables/joining/__init__.py +5 -0
- numdaplot/tables/joining/join.py +110 -0
- numdaplot/tables/joining/join_keys.py +367 -0
- numdaplot/tables/joining/join_mode.py +93 -0
- numdaplot/tables/joining/join_relation.py +149 -0
- numdaplot/tables/joining/join_suffixes.py +71 -0
- numdaplot/tables/joining/joined_frame.py +166 -0
- numdaplot/tables/joining/joined_names.py +107 -0
- numdaplot/tables/joining/joined_rows.py +235 -0
- numdaplot/tables/joining/key_types.py +57 -0
- numdaplot/tables/joining/relation.py +78 -0
- numdaplot/tables/missing/__init__.py +5 -0
- numdaplot/tables/missing/missing_count.py +59 -0
- numdaplot/tables/missing/missing_counts.py +214 -0
- numdaplot/tables/missing/missing_drop.py +98 -0
- numdaplot/tables/missing/missing_mode.py +63 -0
- numdaplot/tables/missing/missing_ratio.py +71 -0
- numdaplot/tables/missing/missing_removal.py +257 -0
- numdaplot/tables/missing/missing_summary.py +174 -0
- numdaplot/tables/missing/ratio_comparison.py +70 -0
- numdaplot/tables/pivot/__init__.py +5 -0
- numdaplot/tables/pivot/pivot_table.py +104 -0
- numdaplot/tables/pivot/pivoted_frame.py +244 -0
- numdaplot/tables/preview/__init__.py +5 -0
- numdaplot/tables/preview/notebook_display.py +238 -0
- numdaplot/tables/preview/preview.py +100 -0
- numdaplot/tables/preview/preview_rows.py +55 -0
- numdaplot/tables/preview/shown_columns.py +62 -0
- numdaplot/tables/preview/side.py +82 -0
- numdaplot/tables/sorting/__init__.py +5 -0
- numdaplot/tables/sorting/sort_key.py +71 -0
- numdaplot/tables/sorting/sorted_frame.py +81 -0
- numdaplot/tables/sorting/sorting.py +82 -0
- numdaplot/tables/table.py +71 -0
- numdaplot/tables/table_calculation.py +172 -0
- numdaplot/tables/table_columns.py +214 -0
- numdaplot/tables/table_conversion.py +351 -0
- numdaplot/tables/table_data.py +321 -0
- numdaplot/tables/table_display.py +56 -0
- numdaplot/tables/table_joining.py +80 -0
- numdaplot/tables/table_layout.py +105 -0
- numdaplot/tables/table_missing.py +146 -0
- numdaplot/tables/table_reading.py +451 -0
- numdaplot/tables/table_refusals.py +295 -0
- numdaplot/tables/table_selection.py +163 -0
- numdaplot/tables/table_writing.py +269 -0
- numdaplot-0.1.0.dist-info/METADATA +176 -0
- numdaplot-0.1.0.dist-info/RECORD +474 -0
- numdaplot-0.1.0.dist-info/WHEEL +4 -0
- numdaplot-0.1.0.dist-info/licenses/LICENSE +28 -0
|
@@ -0,0 +1,334 @@
|
|
|
1
|
+
"""
|
|
2
|
+
Arithmetic operators of an Array, with a single value on the left.
|
|
3
|
+
|
|
4
|
+
.. versionadded:: 0.1.0
|
|
5
|
+
"""
|
|
6
|
+
|
|
7
|
+
from typing import Self
|
|
8
|
+
|
|
9
|
+
import numpy
|
|
10
|
+
|
|
11
|
+
from numdaplot.arrays.array_arithmetic import (
|
|
12
|
+
ADDITION_SYMBOL,
|
|
13
|
+
DIVISION_SYMBOL,
|
|
14
|
+
FLOOR_DIVISION_SYMBOL,
|
|
15
|
+
MULTIPLICATION_SYMBOL,
|
|
16
|
+
POWER_SYMBOL,
|
|
17
|
+
REMAINDER_SYMBOL,
|
|
18
|
+
SUBTRACTION_SYMBOL,
|
|
19
|
+
)
|
|
20
|
+
from numdaplot.arrays.array_data import ArrayData
|
|
21
|
+
from numdaplot.rules.rule_values import ScalarValue
|
|
22
|
+
from numdaplot.settings.argument_types import checked_arguments
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
class ArrayReflectedArithmetic(ArrayData):
|
|
26
|
+
"""
|
|
27
|
+
Arithmetic operators of an Array with a single value on the left, such as ``100 - array``.
|
|
28
|
+
|
|
29
|
+
.. versionadded:: 0.1.0
|
|
30
|
+
"""
|
|
31
|
+
|
|
32
|
+
@checked_arguments
|
|
33
|
+
def __radd__(self, other: ScalarValue) -> Self:
|
|
34
|
+
"""
|
|
35
|
+
Return the sum of a single value and each value, written ``value + array``.
|
|
36
|
+
|
|
37
|
+
.. versionadded:: 0.1.0
|
|
38
|
+
|
|
39
|
+
Parameters
|
|
40
|
+
----------
|
|
41
|
+
other
|
|
42
|
+
A ``ScalarValue``, such as ``10`` or ``2.5``, on the left of the operator.
|
|
43
|
+
|
|
44
|
+
Returns
|
|
45
|
+
-------
|
|
46
|
+
Self
|
|
47
|
+
A new Array.
|
|
48
|
+
|
|
49
|
+
Warns
|
|
50
|
+
-----
|
|
51
|
+
CalculationWarning
|
|
52
|
+
When values of decimals become NaN or an infinite value.
|
|
53
|
+
|
|
54
|
+
Raises
|
|
55
|
+
------
|
|
56
|
+
InvalidTypeError
|
|
57
|
+
When an argument is not of the type its annotation names.
|
|
58
|
+
IncompatibleTypesError
|
|
59
|
+
When the operation does not apply to the types, such as a number and a text.
|
|
60
|
+
IntegerOverflowError
|
|
61
|
+
When a result does not fit its integer type, which refuses to wrap around to a wrong number.
|
|
62
|
+
TimeOverflowError
|
|
63
|
+
When a date or a datetime leaves 1677 to 2262, a duration exceeds about 292 years, or a time of day moves
|
|
64
|
+
past midnight.
|
|
65
|
+
|
|
66
|
+
Examples
|
|
67
|
+
--------
|
|
68
|
+
>>> import numdaplot as ndp
|
|
69
|
+
>>> prices = ndp.Array.from_list([10, 20])
|
|
70
|
+
>>> 5 + prices
|
|
71
|
+
Array([15, 25], dtype=INT64)
|
|
72
|
+
"""
|
|
73
|
+
combined_array = self._combine_reflected(other, numpy.add, ADDITION_SYMBOL)
|
|
74
|
+
|
|
75
|
+
return combined_array
|
|
76
|
+
|
|
77
|
+
@checked_arguments
|
|
78
|
+
def __rsub__(self, other: ScalarValue) -> Self:
|
|
79
|
+
"""
|
|
80
|
+
Return the difference of a single value and each value, written ``value - array``.
|
|
81
|
+
|
|
82
|
+
.. versionadded:: 0.1.0
|
|
83
|
+
|
|
84
|
+
Parameters
|
|
85
|
+
----------
|
|
86
|
+
other
|
|
87
|
+
A ``ScalarValue``, such as ``10`` or ``2.5``, on the left of the operator.
|
|
88
|
+
|
|
89
|
+
Returns
|
|
90
|
+
-------
|
|
91
|
+
Self
|
|
92
|
+
A new Array.
|
|
93
|
+
|
|
94
|
+
Warns
|
|
95
|
+
-----
|
|
96
|
+
CalculationWarning
|
|
97
|
+
When values of decimals become NaN or an infinite value.
|
|
98
|
+
|
|
99
|
+
Raises
|
|
100
|
+
------
|
|
101
|
+
InvalidTypeError
|
|
102
|
+
When an argument is not of the type its annotation names.
|
|
103
|
+
IncompatibleTypesError
|
|
104
|
+
When the operation does not apply to the types, such as a number and a text.
|
|
105
|
+
IntegerOverflowError
|
|
106
|
+
When a result does not fit its integer type, which refuses to wrap around to a wrong number.
|
|
107
|
+
TimeOverflowError
|
|
108
|
+
When a date or a datetime leaves 1677 to 2262, a duration exceeds about 292 years, or a time of day moves
|
|
109
|
+
past midnight.
|
|
110
|
+
|
|
111
|
+
Examples
|
|
112
|
+
--------
|
|
113
|
+
>>> import numdaplot as ndp
|
|
114
|
+
>>> prices = ndp.Array.from_list([10, 20])
|
|
115
|
+
>>> 100 - prices
|
|
116
|
+
Array([90, 80], dtype=INT64)
|
|
117
|
+
"""
|
|
118
|
+
combined_array = self._combine_reflected(other, numpy.subtract, SUBTRACTION_SYMBOL)
|
|
119
|
+
|
|
120
|
+
return combined_array
|
|
121
|
+
|
|
122
|
+
@checked_arguments
|
|
123
|
+
def __rmul__(self, other: ScalarValue) -> Self:
|
|
124
|
+
"""
|
|
125
|
+
Return the product of a single value and each value, written ``value * array``.
|
|
126
|
+
|
|
127
|
+
.. versionadded:: 0.1.0
|
|
128
|
+
|
|
129
|
+
Parameters
|
|
130
|
+
----------
|
|
131
|
+
other
|
|
132
|
+
A ``ScalarValue``, such as ``10`` or ``2.5``, on the left of the operator.
|
|
133
|
+
|
|
134
|
+
Returns
|
|
135
|
+
-------
|
|
136
|
+
Self
|
|
137
|
+
A new Array.
|
|
138
|
+
|
|
139
|
+
Warns
|
|
140
|
+
-----
|
|
141
|
+
CalculationWarning
|
|
142
|
+
When values of decimals become NaN or an infinite value.
|
|
143
|
+
|
|
144
|
+
Raises
|
|
145
|
+
------
|
|
146
|
+
InvalidTypeError
|
|
147
|
+
When an argument is not of the type its annotation names.
|
|
148
|
+
IncompatibleTypesError
|
|
149
|
+
When the operation does not apply to the types, such as a number and a text.
|
|
150
|
+
IntegerOverflowError
|
|
151
|
+
When a result does not fit its integer type, which refuses to wrap around to a wrong number.
|
|
152
|
+
TimeOverflowError
|
|
153
|
+
When a date or a datetime leaves 1677 to 2262, or a duration exceeds about 292 years.
|
|
154
|
+
|
|
155
|
+
Examples
|
|
156
|
+
--------
|
|
157
|
+
>>> import numdaplot as ndp
|
|
158
|
+
>>> prices = ndp.Array.from_list([10, 20])
|
|
159
|
+
>>> 2 * prices
|
|
160
|
+
Array([20, 40], dtype=INT64)
|
|
161
|
+
"""
|
|
162
|
+
combined_array = self._combine_reflected(other, numpy.multiply, MULTIPLICATION_SYMBOL)
|
|
163
|
+
|
|
164
|
+
return combined_array
|
|
165
|
+
|
|
166
|
+
@checked_arguments
|
|
167
|
+
def __rtruediv__(self, other: ScalarValue) -> Self:
|
|
168
|
+
"""
|
|
169
|
+
Return the quotient of a single value and each value, written ``value / array``.
|
|
170
|
+
|
|
171
|
+
.. versionadded:: 0.1.0
|
|
172
|
+
|
|
173
|
+
Parameters
|
|
174
|
+
----------
|
|
175
|
+
other
|
|
176
|
+
A ``ScalarValue``, such as ``10`` or ``2.5``, on the left of the operator.
|
|
177
|
+
|
|
178
|
+
Returns
|
|
179
|
+
-------
|
|
180
|
+
Self
|
|
181
|
+
A new Array.
|
|
182
|
+
|
|
183
|
+
Warns
|
|
184
|
+
-----
|
|
185
|
+
CalculationWarning
|
|
186
|
+
When values of decimals become NaN or an infinite value.
|
|
187
|
+
|
|
188
|
+
Raises
|
|
189
|
+
------
|
|
190
|
+
InvalidTypeError
|
|
191
|
+
When an argument is not of the type its annotation names.
|
|
192
|
+
IncompatibleTypesError
|
|
193
|
+
When the operation does not apply to the types, such as a number and a text.
|
|
194
|
+
|
|
195
|
+
Examples
|
|
196
|
+
--------
|
|
197
|
+
>>> import numdaplot as ndp
|
|
198
|
+
>>> prices = ndp.Array.from_list([10, 20])
|
|
199
|
+
>>> 100 / prices
|
|
200
|
+
Array([10., 5.], dtype=FLOAT64)
|
|
201
|
+
"""
|
|
202
|
+
combined_array = self._combine_reflected(other, numpy.true_divide, DIVISION_SYMBOL)
|
|
203
|
+
|
|
204
|
+
return combined_array
|
|
205
|
+
|
|
206
|
+
@checked_arguments
|
|
207
|
+
def __rfloordiv__(self, other: ScalarValue) -> Self:
|
|
208
|
+
"""
|
|
209
|
+
Return the whole quotient of a single value and each value, written ``value // array``.
|
|
210
|
+
|
|
211
|
+
.. versionadded:: 0.1.0
|
|
212
|
+
|
|
213
|
+
Parameters
|
|
214
|
+
----------
|
|
215
|
+
other
|
|
216
|
+
A ``ScalarValue``, such as ``10`` or ``2.5``, on the left of the operator.
|
|
217
|
+
|
|
218
|
+
Returns
|
|
219
|
+
-------
|
|
220
|
+
Self
|
|
221
|
+
A new Array.
|
|
222
|
+
|
|
223
|
+
Warns
|
|
224
|
+
-----
|
|
225
|
+
CalculationWarning
|
|
226
|
+
When values of decimals become NaN or an infinite value.
|
|
227
|
+
|
|
228
|
+
Raises
|
|
229
|
+
------
|
|
230
|
+
InvalidTypeError
|
|
231
|
+
When an argument is not of the type its annotation names.
|
|
232
|
+
IncompatibleTypesError
|
|
233
|
+
When the operation does not apply to the types, such as a number and a text.
|
|
234
|
+
OutOfDomainError
|
|
235
|
+
When integers are divided by 0: convert them to ``FLOAT64`` first.
|
|
236
|
+
IntegerOverflowError
|
|
237
|
+
When a result does not fit its integer type, which refuses to wrap around to a wrong number.
|
|
238
|
+
|
|
239
|
+
Examples
|
|
240
|
+
--------
|
|
241
|
+
>>> import numdaplot as ndp
|
|
242
|
+
>>> prices = ndp.Array.from_list([10, 20])
|
|
243
|
+
>>> 100 // prices
|
|
244
|
+
Array([10, 5], dtype=INT64)
|
|
245
|
+
"""
|
|
246
|
+
combined_array = self._combine_reflected(other, numpy.floor_divide, FLOOR_DIVISION_SYMBOL)
|
|
247
|
+
|
|
248
|
+
return combined_array
|
|
249
|
+
|
|
250
|
+
@checked_arguments
|
|
251
|
+
def __rmod__(self, other: ScalarValue) -> Self:
|
|
252
|
+
"""
|
|
253
|
+
Return the remainder of a single value and each value, written ``value % array``.
|
|
254
|
+
|
|
255
|
+
.. versionadded:: 0.1.0
|
|
256
|
+
|
|
257
|
+
Parameters
|
|
258
|
+
----------
|
|
259
|
+
other
|
|
260
|
+
A ``ScalarValue``, such as ``10`` or ``2.5``, on the left of the operator.
|
|
261
|
+
|
|
262
|
+
Returns
|
|
263
|
+
-------
|
|
264
|
+
Self
|
|
265
|
+
A new Array.
|
|
266
|
+
|
|
267
|
+
Warns
|
|
268
|
+
-----
|
|
269
|
+
CalculationWarning
|
|
270
|
+
When values of decimals become NaN or an infinite value.
|
|
271
|
+
|
|
272
|
+
Raises
|
|
273
|
+
------
|
|
274
|
+
InvalidTypeError
|
|
275
|
+
When an argument is not of the type its annotation names.
|
|
276
|
+
IncompatibleTypesError
|
|
277
|
+
When the operation does not apply to the types, such as a number and a text.
|
|
278
|
+
OutOfDomainError
|
|
279
|
+
When integers are divided by 0: convert them to ``FLOAT64`` first.
|
|
280
|
+
|
|
281
|
+
Examples
|
|
282
|
+
--------
|
|
283
|
+
>>> import numdaplot as ndp
|
|
284
|
+
>>> prices = ndp.Array.from_list([10, 20])
|
|
285
|
+
>>> 25 % prices
|
|
286
|
+
Array([5, 5], dtype=INT64)
|
|
287
|
+
"""
|
|
288
|
+
combined_array = self._combine_reflected(other, numpy.remainder, REMAINDER_SYMBOL)
|
|
289
|
+
|
|
290
|
+
return combined_array
|
|
291
|
+
|
|
292
|
+
@checked_arguments
|
|
293
|
+
def __rpow__(self, other: ScalarValue) -> Self:
|
|
294
|
+
"""
|
|
295
|
+
Return the power of a single value and each value, written ``value ** array``.
|
|
296
|
+
|
|
297
|
+
.. versionadded:: 0.1.0
|
|
298
|
+
|
|
299
|
+
Parameters
|
|
300
|
+
----------
|
|
301
|
+
other
|
|
302
|
+
A ``ScalarValue``, such as ``10`` or ``2.5``, on the left of the operator.
|
|
303
|
+
|
|
304
|
+
Returns
|
|
305
|
+
-------
|
|
306
|
+
Self
|
|
307
|
+
A new Array.
|
|
308
|
+
|
|
309
|
+
Warns
|
|
310
|
+
-----
|
|
311
|
+
CalculationWarning
|
|
312
|
+
When values of decimals become NaN or an infinite value.
|
|
313
|
+
|
|
314
|
+
Raises
|
|
315
|
+
------
|
|
316
|
+
InvalidTypeError
|
|
317
|
+
When an argument is not of the type its annotation names.
|
|
318
|
+
IncompatibleTypesError
|
|
319
|
+
When the operation does not apply to the types, such as a number and a text.
|
|
320
|
+
OutOfDomainError
|
|
321
|
+
When integers are raised to a negative power: convert them to ``FLOAT64`` first.
|
|
322
|
+
IntegerOverflowError
|
|
323
|
+
When a result does not fit its integer type, which refuses to wrap around to a wrong number.
|
|
324
|
+
|
|
325
|
+
Examples
|
|
326
|
+
--------
|
|
327
|
+
>>> import numdaplot as ndp
|
|
328
|
+
>>> prices = ndp.Array.from_list([10, 20])
|
|
329
|
+
>>> 2 ** prices
|
|
330
|
+
Array([ 1024, 1048576], dtype=INT64)
|
|
331
|
+
"""
|
|
332
|
+
combined_array = self._combine_reflected(other, numpy.power, POWER_SYMBOL)
|
|
333
|
+
|
|
334
|
+
return combined_array
|
|
@@ -0,0 +1,339 @@
|
|
|
1
|
+
"""
|
|
2
|
+
Python operations refused by an Array, each pointing to the numdaplot way of doing it.
|
|
3
|
+
|
|
4
|
+
.. versionadded:: 0.1.0
|
|
5
|
+
"""
|
|
6
|
+
|
|
7
|
+
from collections.abc import Iterator
|
|
8
|
+
from typing import NoReturn
|
|
9
|
+
|
|
10
|
+
from numdaplot.arrays.array_data import ArrayData
|
|
11
|
+
from numdaplot.errors.refused_operation_error import RefusedOperationError
|
|
12
|
+
from numdaplot.rules.greater import Greater
|
|
13
|
+
from numdaplot.rules.greater_or_equal import GreaterOrEqual
|
|
14
|
+
from numdaplot.rules.less import Less
|
|
15
|
+
from numdaplot.rules.less_or_equal import LessOrEqual
|
|
16
|
+
|
|
17
|
+
COMPARISON_OPERATION = "Comparing an Array with {symbol}"
|
|
18
|
+
EQUALITY_ALTERNATIVE = "is_equal with ndp.Equality, or check with ndp.Equal for each value"
|
|
19
|
+
ORDER_ALTERNATIVE = "select or check with a rule such as ndp.{rule_name}"
|
|
20
|
+
BRACKETS_OPERATION = "Brackets on an Array"
|
|
21
|
+
BRACKETS_ALTERNATIVE = "take, replace, select or check"
|
|
22
|
+
ITERATION_OPERATION = "Iterating over an Array with for"
|
|
23
|
+
ITERATION_ALTERNATIVE = "for value in array.to_list()"
|
|
24
|
+
MEMBERSHIP_OPERATION = "Testing membership in an Array with in"
|
|
25
|
+
MEMBERSHIP_ALTERNATIVE = "check with ndp.Equal or ndp.IsIn"
|
|
26
|
+
LENGTH_OPERATION = "len of an Array"
|
|
27
|
+
LENGTH_ALTERNATIVE = "the shape attribute"
|
|
28
|
+
TRUTH_OPERATION = "Testing an Array as a boolean"
|
|
29
|
+
TRUTH_ALTERNATIVE = "compute with ndp.Count, or is_equal"
|
|
30
|
+
MATRIX_PRODUCT_OPERATION = "The matrix product @ of an Array"
|
|
31
|
+
MATRIX_PRODUCT_ALTERNATIVE = "to_numpy and numpy"
|
|
32
|
+
EQUAL_SYMBOL = "=="
|
|
33
|
+
NOT_EQUAL_SYMBOL = "!="
|
|
34
|
+
LESS_SYMBOL = "<"
|
|
35
|
+
LESS_OR_EQUAL_SYMBOL = "<="
|
|
36
|
+
GREATER_SYMBOL = ">"
|
|
37
|
+
GREATER_OR_EQUAL_SYMBOL = ">="
|
|
38
|
+
|
|
39
|
+
|
|
40
|
+
class ArrayRefusals(ArrayData):
|
|
41
|
+
"""
|
|
42
|
+
Python operations refused by an Array, each raising ``RefusedOperationError`` with the numdaplot way of doing it.
|
|
43
|
+
|
|
44
|
+
``==``, ``!=``, ``<``, ``<=``, ``>``, ``>=``, brackets, ``for``, ``in``, ``len``, ``bool`` and ``@`` are refused.
|
|
45
|
+
|
|
46
|
+
.. versionadded:: 0.1.0
|
|
47
|
+
"""
|
|
48
|
+
|
|
49
|
+
def __eq__(self, other: object) -> NoReturn:
|
|
50
|
+
"""
|
|
51
|
+
Refuse ``array == other``; use ``is_equal`` or ``check(ndp.Equal(...))``.
|
|
52
|
+
|
|
53
|
+
.. versionadded:: 0.1.0
|
|
54
|
+
|
|
55
|
+
Parameters
|
|
56
|
+
----------
|
|
57
|
+
other
|
|
58
|
+
Any value.
|
|
59
|
+
|
|
60
|
+
Raises
|
|
61
|
+
------
|
|
62
|
+
RefusedOperationError
|
|
63
|
+
Always.
|
|
64
|
+
"""
|
|
65
|
+
refuse_comparison(EQUAL_SYMBOL, EQUALITY_ALTERNATIVE)
|
|
66
|
+
|
|
67
|
+
def __ne__(self, other: object) -> NoReturn:
|
|
68
|
+
"""
|
|
69
|
+
Refuse ``array != other``; use ``is_equal`` or ``check(ndp.NotEqual(...))``.
|
|
70
|
+
|
|
71
|
+
.. versionadded:: 0.1.0
|
|
72
|
+
|
|
73
|
+
Parameters
|
|
74
|
+
----------
|
|
75
|
+
other
|
|
76
|
+
Any value.
|
|
77
|
+
|
|
78
|
+
Raises
|
|
79
|
+
------
|
|
80
|
+
RefusedOperationError
|
|
81
|
+
Always.
|
|
82
|
+
"""
|
|
83
|
+
refuse_comparison(NOT_EQUAL_SYMBOL, EQUALITY_ALTERNATIVE)
|
|
84
|
+
|
|
85
|
+
def __lt__(self, other: object) -> NoReturn:
|
|
86
|
+
"""
|
|
87
|
+
Refuse ``array < other``; use ``select`` or ``check`` with ``ndp.Less``.
|
|
88
|
+
|
|
89
|
+
.. versionadded:: 0.1.0
|
|
90
|
+
|
|
91
|
+
Parameters
|
|
92
|
+
----------
|
|
93
|
+
other
|
|
94
|
+
Any value.
|
|
95
|
+
|
|
96
|
+
Raises
|
|
97
|
+
------
|
|
98
|
+
RefusedOperationError
|
|
99
|
+
Always.
|
|
100
|
+
|
|
101
|
+
Examples
|
|
102
|
+
--------
|
|
103
|
+
>>> import numdaplot as ndp
|
|
104
|
+
>>> try:
|
|
105
|
+
... ndp.Array.from_list([1, 2]) < 2
|
|
106
|
+
... except ndp.RefusedOperationError as error:
|
|
107
|
+
... print(error)
|
|
108
|
+
Comparing an Array with < is not available, use select or check with a rule such as ndp.Less instead.
|
|
109
|
+
"""
|
|
110
|
+
alternative = ORDER_ALTERNATIVE.format(rule_name=Less.__name__)
|
|
111
|
+
refuse_comparison(LESS_SYMBOL, alternative)
|
|
112
|
+
|
|
113
|
+
def __le__(self, other: object) -> NoReturn:
|
|
114
|
+
"""
|
|
115
|
+
Refuse ``array <= other``; use ``select`` or ``check`` with ``ndp.LessOrEqual``.
|
|
116
|
+
|
|
117
|
+
.. versionadded:: 0.1.0
|
|
118
|
+
|
|
119
|
+
Parameters
|
|
120
|
+
----------
|
|
121
|
+
other
|
|
122
|
+
Any value.
|
|
123
|
+
|
|
124
|
+
Raises
|
|
125
|
+
------
|
|
126
|
+
RefusedOperationError
|
|
127
|
+
Always.
|
|
128
|
+
"""
|
|
129
|
+
alternative = ORDER_ALTERNATIVE.format(rule_name=LessOrEqual.__name__)
|
|
130
|
+
refuse_comparison(LESS_OR_EQUAL_SYMBOL, alternative)
|
|
131
|
+
|
|
132
|
+
def __gt__(self, other: object) -> NoReturn:
|
|
133
|
+
"""
|
|
134
|
+
Refuse ``array > other``; use ``select`` or ``check`` with ``ndp.Greater``.
|
|
135
|
+
|
|
136
|
+
.. versionadded:: 0.1.0
|
|
137
|
+
|
|
138
|
+
Parameters
|
|
139
|
+
----------
|
|
140
|
+
other
|
|
141
|
+
Any value.
|
|
142
|
+
|
|
143
|
+
Raises
|
|
144
|
+
------
|
|
145
|
+
RefusedOperationError
|
|
146
|
+
Always.
|
|
147
|
+
"""
|
|
148
|
+
alternative = ORDER_ALTERNATIVE.format(rule_name=Greater.__name__)
|
|
149
|
+
refuse_comparison(GREATER_SYMBOL, alternative)
|
|
150
|
+
|
|
151
|
+
def __ge__(self, other: object) -> NoReturn:
|
|
152
|
+
"""
|
|
153
|
+
Refuse ``array >= other``; use ``select`` or ``check`` with ``ndp.GreaterOrEqual``.
|
|
154
|
+
|
|
155
|
+
.. versionadded:: 0.1.0
|
|
156
|
+
|
|
157
|
+
Parameters
|
|
158
|
+
----------
|
|
159
|
+
other
|
|
160
|
+
Any value.
|
|
161
|
+
|
|
162
|
+
Raises
|
|
163
|
+
------
|
|
164
|
+
RefusedOperationError
|
|
165
|
+
Always.
|
|
166
|
+
"""
|
|
167
|
+
alternative = ORDER_ALTERNATIVE.format(rule_name=GreaterOrEqual.__name__)
|
|
168
|
+
refuse_comparison(GREATER_OR_EQUAL_SYMBOL, alternative)
|
|
169
|
+
|
|
170
|
+
def __getitem__(self, key: object) -> NoReturn:
|
|
171
|
+
"""
|
|
172
|
+
Refuse ``array[...]``; use ``take``, ``select`` or ``check``.
|
|
173
|
+
|
|
174
|
+
.. versionadded:: 0.1.0
|
|
175
|
+
|
|
176
|
+
Parameters
|
|
177
|
+
----------
|
|
178
|
+
key
|
|
179
|
+
Any value.
|
|
180
|
+
|
|
181
|
+
Raises
|
|
182
|
+
------
|
|
183
|
+
RefusedOperationError
|
|
184
|
+
Always.
|
|
185
|
+
"""
|
|
186
|
+
raise RefusedOperationError(BRACKETS_OPERATION, BRACKETS_ALTERNATIVE)
|
|
187
|
+
|
|
188
|
+
def __setitem__(self, key: object, value: object) -> NoReturn:
|
|
189
|
+
"""
|
|
190
|
+
Refuse ``array[...] = value``; use ``replace``, which returns a new Array.
|
|
191
|
+
|
|
192
|
+
.. versionadded:: 0.1.0
|
|
193
|
+
|
|
194
|
+
Parameters
|
|
195
|
+
----------
|
|
196
|
+
key
|
|
197
|
+
Any value.
|
|
198
|
+
value
|
|
199
|
+
Any value.
|
|
200
|
+
|
|
201
|
+
Raises
|
|
202
|
+
------
|
|
203
|
+
RefusedOperationError
|
|
204
|
+
Always.
|
|
205
|
+
"""
|
|
206
|
+
raise RefusedOperationError(BRACKETS_OPERATION, BRACKETS_ALTERNATIVE)
|
|
207
|
+
|
|
208
|
+
def __iter__(self) -> Iterator[object]:
|
|
209
|
+
"""
|
|
210
|
+
Refuse ``for value in array``; iterate over ``array.to_list()`` instead.
|
|
211
|
+
|
|
212
|
+
.. versionadded:: 0.1.0
|
|
213
|
+
|
|
214
|
+
Raises
|
|
215
|
+
------
|
|
216
|
+
RefusedOperationError
|
|
217
|
+
Always.
|
|
218
|
+
|
|
219
|
+
Examples
|
|
220
|
+
--------
|
|
221
|
+
>>> import numdaplot as ndp
|
|
222
|
+
>>> for price in ndp.Array.from_list([10, 20]).to_list():
|
|
223
|
+
... print(price)
|
|
224
|
+
10
|
|
225
|
+
20
|
|
226
|
+
"""
|
|
227
|
+
raise RefusedOperationError(ITERATION_OPERATION, ITERATION_ALTERNATIVE)
|
|
228
|
+
|
|
229
|
+
def __contains__(self, value: object) -> NoReturn:
|
|
230
|
+
"""
|
|
231
|
+
Refuse ``value in array``; use ``check`` with ``ndp.Equal`` or ``ndp.IsIn``.
|
|
232
|
+
|
|
233
|
+
.. versionadded:: 0.1.0
|
|
234
|
+
|
|
235
|
+
Parameters
|
|
236
|
+
----------
|
|
237
|
+
value
|
|
238
|
+
Any value.
|
|
239
|
+
|
|
240
|
+
Raises
|
|
241
|
+
------
|
|
242
|
+
RefusedOperationError
|
|
243
|
+
Always.
|
|
244
|
+
"""
|
|
245
|
+
raise RefusedOperationError(MEMBERSHIP_OPERATION, MEMBERSHIP_ALTERNATIVE)
|
|
246
|
+
|
|
247
|
+
def __len__(self) -> NoReturn:
|
|
248
|
+
"""
|
|
249
|
+
Refuse ``len(array)``; read the ``shape`` attribute instead.
|
|
250
|
+
|
|
251
|
+
.. versionadded:: 0.1.0
|
|
252
|
+
|
|
253
|
+
Raises
|
|
254
|
+
------
|
|
255
|
+
RefusedOperationError
|
|
256
|
+
Always.
|
|
257
|
+
"""
|
|
258
|
+
raise RefusedOperationError(LENGTH_OPERATION, LENGTH_ALTERNATIVE)
|
|
259
|
+
|
|
260
|
+
def __bool__(self) -> NoReturn:
|
|
261
|
+
"""
|
|
262
|
+
Refuse ``if array:`` and ``bool(array)``, whose meaning would be unclear.
|
|
263
|
+
|
|
264
|
+
.. versionadded:: 0.1.0
|
|
265
|
+
|
|
266
|
+
Raises
|
|
267
|
+
------
|
|
268
|
+
RefusedOperationError
|
|
269
|
+
Always.
|
|
270
|
+
"""
|
|
271
|
+
raise RefusedOperationError(TRUTH_OPERATION, TRUTH_ALTERNATIVE)
|
|
272
|
+
|
|
273
|
+
def __matmul__(self, other: object) -> NoReturn:
|
|
274
|
+
"""
|
|
275
|
+
Refuse ``array @ other``; numdaplot has no linear algebra.
|
|
276
|
+
|
|
277
|
+
.. versionadded:: 0.1.0
|
|
278
|
+
|
|
279
|
+
Parameters
|
|
280
|
+
----------
|
|
281
|
+
other
|
|
282
|
+
Any value.
|
|
283
|
+
|
|
284
|
+
Raises
|
|
285
|
+
------
|
|
286
|
+
RefusedOperationError
|
|
287
|
+
Always.
|
|
288
|
+
"""
|
|
289
|
+
raise RefusedOperationError(MATRIX_PRODUCT_OPERATION, MATRIX_PRODUCT_ALTERNATIVE)
|
|
290
|
+
|
|
291
|
+
def __rmatmul__(self, other: object) -> NoReturn:
|
|
292
|
+
"""
|
|
293
|
+
Refuse ``other @ array``; numdaplot has no linear algebra.
|
|
294
|
+
|
|
295
|
+
.. versionadded:: 0.1.0
|
|
296
|
+
|
|
297
|
+
Parameters
|
|
298
|
+
----------
|
|
299
|
+
other
|
|
300
|
+
Any value.
|
|
301
|
+
|
|
302
|
+
Raises
|
|
303
|
+
------
|
|
304
|
+
RefusedOperationError
|
|
305
|
+
Always.
|
|
306
|
+
"""
|
|
307
|
+
raise RefusedOperationError(MATRIX_PRODUCT_OPERATION, MATRIX_PRODUCT_ALTERNATIVE)
|
|
308
|
+
|
|
309
|
+
|
|
310
|
+
def refuse_comparison(symbol: str, alternative: str) -> NoReturn:
|
|
311
|
+
"""
|
|
312
|
+
Raise the error refusing a comparison operator.
|
|
313
|
+
|
|
314
|
+
.. versionadded:: 0.1.0
|
|
315
|
+
|
|
316
|
+
Parameters
|
|
317
|
+
----------
|
|
318
|
+
symbol
|
|
319
|
+
The comparison operator, such as ``"<"``.
|
|
320
|
+
alternative
|
|
321
|
+
What to use instead.
|
|
322
|
+
|
|
323
|
+
Raises
|
|
324
|
+
------
|
|
325
|
+
RefusedOperationError
|
|
326
|
+
Always.
|
|
327
|
+
|
|
328
|
+
Examples
|
|
329
|
+
--------
|
|
330
|
+
>>> import numdaplot as ndp
|
|
331
|
+
>>> from numdaplot.arrays.array_refusals import refuse_comparison
|
|
332
|
+
>>> try:
|
|
333
|
+
... refuse_comparison("<", "select")
|
|
334
|
+
... except ndp.RefusedOperationError as error:
|
|
335
|
+
... print(error)
|
|
336
|
+
Comparing an Array with < is not available, use select instead.
|
|
337
|
+
"""
|
|
338
|
+
operation = COMPARISON_OPERATION.format(symbol=symbol)
|
|
339
|
+
raise RefusedOperationError(operation, alternative)
|